随笔分类 -  ASP.NET

摘要:MS提倡我们尽可能每次的在连接使用完成后就关闭;这样导致每次都要进行打开和关闭操作或用using(){…}写起代码比较麻烦,还有经常对池的操作似乎也带来一些性能上的问题;在Asp.net里一个WebForm经常涉及有N个数据库操作,为了方便直接在init里打开一个连接,然后在Dispose里关闭即省事又能减少对池的操作提高性能;那到底这样做能不能提高性能呢?答案是能,但有些情况估计会很让你感觉到失望…。当池的连接数能应付用户请求的时候,的确是可以减少池的操作带来性能的提升;反之就不一样了用户必须等待到获取连接后才能进行其他操作,当有更多用户在等待获取连接的时候只能让线程处于更长等待时间导致服务 阅读全文
posted @ 2010-12-29 23:24 左正 编辑
摘要:实际上,大多数应用程序仅使用一个或几个不同的连接配置。 这意味着在执行应用程序期间,许多相同的连接将反复地打开和关闭。 为了使打开的连接成本最低,ADO.NET 使用称为连接池的优化方法。连接池减少新连接需要打开的次数。 池进程保持物理连接的所有权。 通过为每个给定的连接配置保留一组活动连接来管理连接。 只要用户在连接上调用 Open,池进程就会检查池中是否有可用的连接。 如果某个池连接可用,会将该连接返回给调用者,而不是打开新连接。 应用程序对该连接调用 Close 时,池进程会将连接返回到活动连接池集中,而不是真正关闭连接。 连接返回到池中之后,即可在下一个 Open 调用中重复使用。只有 阅读全文
posted @ 2010-12-29 23:23 左正 编辑
摘要:ADO.NET 对象模型中有五个主要的组件,分别是Connection 对象、Command 对象、DataSetCommand、DataSet 以及DataReader。这些组件中 负责建立联机和数据操作的部分我们称为数据操作组件(Managed Providers) ,分别由Connection 对象、Command 对象、DataSetCommand 对象以及DataReader 对象所组成。数据操作组件最主要是当作DataSet 对象以及数据源之间的桥梁,负责将数据源中的数据取出后植入DataSet 对象中,以及将数据存回数据源的工作。Connection对象Connection 对象 阅读全文
posted @ 2010-12-29 23:18 左正 编辑
摘要:51CTO开发频道向您推荐《ASP.NET视频教程》,其中的第二十一章 ASP.NET网站的性能优化,相信与本文还是有很大的关系的。前言本文是我对ASP.NET页面载入速度提高的一些做法,这些做法分为以下部分:1.采用 HTTP Module 控制页面的生命周期。2.自定义Response.Filter得到输出流stream生成动态页面的静态内容(磁盘缓存)。3.页面GZIP压缩。4.OutputCache 编程方式输出页面缓存。5.删除页面空白字符串。(类似Google)6.完全删除ViewState。7.删除服务器控件生成的垃圾NamingContainer。8.使用计划任务按时生成页面。 阅读全文
posted @ 2010-12-29 22:58 左正 编辑
摘要:我们通过本文要谈谈ASP.NET页面的aspx扩展,主要是为了网站业务上的扩展,保持两个网站图片内容同步。希望本文能对大家有所帮助。需求:某网站因业务扩展,需拆分出另一个站点,新旧站点具有相同的内容,但具体栏目表现形式上不一样。原网站运行多年,有大量的图片,这些图片也会在新站上使用。任务是:保证两个网站图片内容同步,即原来的站点增加一个图片,新站点即可使用这个图片。分析:假设两个站点的域名分别为:http://www.a_image.com/和http://www.b_image.com/ 1、 将图片分别拷到两台服务器,以后上传图片同时上传两台服务器。这种方法虽简单,但是占用巨大的磁盘空间, 阅读全文
posted @ 2010-12-29 20:04 左正 编辑
摘要:尽管本文的作者写的很简单,但是相信通过这些文字,还是能对大家了解ASP.NET页面缓存有很大的帮助。 前几天遇到个问题,百思不得其解。后来查阅了一些资料心里才有了点思路。把自己遇到的问题记录下来希望能给其他的园友一些帮助吧。 事情是这样的。我的一个ASP.NET页面用window.open导航后再次访问时没有得到更新,确切的说是再次访问时根本就没有访问服务器。可是这个现象在我的机器上并没有出现,而项目组中其他的机器都有此问题。当时我这个郁闷呐,因为不方便调试,最后就在页面上输出好多alert。终于在几次试验之后发现了问题的所在。 其主要问题就是IE缓存了页面,当服务器端出现更新时IE并没有检查 阅读全文
posted @ 2010-12-29 16:02 左正 编辑
摘要:我们将从PHP模板引擎技术谈谈ASP.NET模板引擎技术,希望通过本文的实例和代码,能让大家在今后的开发过程中更加灵活的运用ASP.NET模板引擎技术。以前听我朋友说起php的模板引擎技术的时候似懂非懂哪时感觉真的很强,一直在想asp.net有这种技术吗?我不知道我的理解是不是对的.其实asp.net模板引擎技术就是先建好一个静态的html页面我们称它为模板页,你如果有不同形式的页面哪就得建立不同的静态模板页,然后在后台用文件操作往这个文件里写东西然后在把这个模板页另存到一个静态页面的目录,不好意思可能我的理解太俗,如果有更好的理解和想法可以在apolov发文章告诉我谢谢。现在我附加一下代码 阅读全文
posted @ 2010-12-29 16:00 左正 编辑
摘要:ASP.NET Eval在数据绑定方面的应用是众所周知的,不过技术在发展,当ASP.NET Eval 1.1变成ASP.NET Eval 2.0的时候,在操作的时候会有什么变化呢?假设你已经了解ASP.NET Eval 1.1的数据绑定(特别是Container这个局部变量)的机制,这里主要分析ASP.NET Eval 2.0数据绑定做了那些改进。 ASP.NET Eval 2.0 的数据绑定函数Eval()简化掉了ASP.NET Eval 1.1神秘的Container.DataItem,比如数据绑定表达式:<%#(Container.DataItemasDataRowView)["Prod 阅读全文
posted @ 2010-12-29 15:59 左正 编辑
摘要:ASP.NET页面对象模型简介Microsoft Internet 信息服务 (IIS) 所收到的对某 Microsoft ASP.NET 页面的每个请求都被移交给 ASP.NET HTTP 管线。HTTP 管线由一系列托管对象组成,这些对象按顺序处理该请求,并完成从 URL 到普通 HTML 文本的转换。HTTP 管线的入口点是 HttpRuntime 类。ASP.NET 基础结构为辅助进程中所承载的每个 AppDomain 创建此类的一个实例(请注意,该辅助进程为当前正在运行的每个 ASP.NET 应用程序维护一个不同的 AppDomain)。HttpRuntime 类从内部池中选取一个 阅读全文
posted @ 2010-12-28 18:06 左正 编辑
摘要:如果你有在IE中查看当前浏览页面HTML源代码的习惯,你也许常会看到类似以下的代码片断:inputtype="hidden"name="__VIEWSTATE"value="dDwtMzU5NzUyMTQ1O3Q8O2w8aTwwPjs+O2w8dDw7bDxpPDA+Oz47bDx0PDtsPG ……聪明的你一定会问,这是什么?有什么作用?它与本篇文章有何转折亲关系?各位看官,且听我慢慢道来。其实,这就是MS在ASP.NET应用ViewState技术的特征表现。为了页面能在PostBack后依然能读取服务器控件原有的状态数据,而ASP.NET应用ViewState技术本质上是用一个默认名称 阅读全文
posted @ 2010-12-28 18:03 左正 编辑
摘要:ASP.NET Forms验证用户验证是每一个项目必须的一个模块,由于已经很久没有碰到这一块内容,今天写一个用户验证居然脑子一片空白。于是乎就和一个同事进行了一片讨论,晚上回家决定把讨论的结果给记录下来,以备后来之需。在ASP.NET中有几种用户验证的方法:Windows验证,Forms验证和Passport验证。当然用户也可以自定义与验证方法,而最常用的莫过于Forms验证,这也是今天所要讨论的验证方式。ASP.NET Forms验证方式首先要配置的是web.config文件,把authentication节点配置为Forms验证,而它默认的是Windows验证。再修改配置文件时,还要注意大 阅读全文
posted @ 2010-12-28 18:02 左正 编辑
摘要:ASP.NET控件ID经常见到有人说在ASP.NET中不要使用动态控件,我想主要的原因在于使用动态控件会带来一些问题,在做项目的过程中,我将由动态加载控件引发的总是作了一个小小的总结.1 、在使用LoadControl加载控件后,用户控件中的某些控件不再响应事件。这个问题主要是由于将控件加载放在if (!Page.IsPostBack)之内引起的,放在外面即可。在思归的blog上对此问题进行了详细的说明。2、用户控件中某些控件的响应出现问题,如某个按钮第一次选择时不触发CLICK事件,第二次可以了。这是由于没有给控件设置ID引起的,控件ID的作用在下面详细讲述。 如 ControluserCo 阅读全文
posted @ 2010-12-28 17:55 左正 编辑
摘要:ASP.NET配置错误页面在网站的运行过程中可能会面临很多问题,例如服务器出错,用户请求的页面不存在,程序配置错误等等一系列的问题。在用户请求浏览网页碰到这些的时候会出现一些系统默认的错误页面,这样对于用户很不友好,同时对于搜索引擎来所更是不友好 。这里我们认识一些SEO时常见的Http状态码:◆404:服务器找不到指定的资源,请求的网页不存在(譬如浏览器请求的网页被删除或者移位,但不排除日后该链接有效的可能性);◆410:请求的网页不存在(注意:410表示永久性,而404表示临时性);◆200:服务器成功返回请求的网页;◆301:网址永久性重定向◆302:网址临时性重定向在搜索引擎看来最主要 阅读全文
posted @ 2010-12-28 11:26 左正 编辑
摘要:Apache是目前广泛使用的一种网络服务器程序,不仅在UNIX/LINUX平台上被大量使用,而且在Windows平台上也有许多站点放弃了IIS而转向Apache。 .NET是微软推出的功能强大的开发技术,其目标就是与Java抗衡。ASP.NET非常适合于中小企业的Web应用,其性能较ASP3.0有了极大的提高。下面就介绍让Apache支持ASP.NET的办法。 首先,必须要有Windows环境和.NET Framework的支持。此外还建议安装安装.NET开发工具如.NET Framework SDK或者 VisualStudio.NET。需要注意的是Windows的版本应为2000、2003 阅读全文
posted @ 2010-12-27 19:23 左正 编辑
摘要:ASP.NET中PostBack和ViewState关于PostBack,我曾经也写过一篇博客《深入理解doPostBack》。在这篇文章里有对PostBack进行了一些研究,现在看来研究的还是不够深入。不过从原理上来说,ASP.NET WebForm中的一般WEB控件(为什么是一般呢?因为如Button等少数控件不是调用doPostBack方法的)在向服务器回发请求时,调用的就是doPostBack方法,通过表单提交的方式来向服务器提交请求。而WebForm所提供的WEB事件模型也是以doPostBack这个方法为基础的,往服务器传送的两个隐含变量(EVENTTARGET,EVENTARGU 阅读全文
posted @ 2010-12-27 19:17 左正 编辑
摘要:ASP.NET代码优化一、页面和服务器控件处理1、ASP.NET代码优化避免到服务器的不必要的往返行程在某些情况下不必使用 ASP.NET 服务器控件和执行回发事件处理。例如,在 ASP.NET 网页中验证用户输入经常可在数据提交到服务器之前在客户端进行。通常,如果不需要将信息传递到服务器以进行验证或将其写入数据存储区,请避免使用导致到服务器的往返行程的代码,这样可以提高页的性能并改善用户体验。您也可以不执行整个往返行程,而是使用客户端回调从服务器中读取数据。页面类实现ICallbackEventHandler接口,注册GetCallbackEventReference方法,也就是ajax的回 阅读全文
posted @ 2010-12-27 19:04 左正 编辑
摘要:下面我将为大家深入介绍 ASP.NET 中某些重要的新特性,以及一些其他 .NET Framework 技术。ASP.NET入门步骤 1:下载和安装 .NET SDK ASP.NET 是作为 .NET SDK 的一部分提供的,它是创建、生成和测试基于 .NET Framework 的应用程序所需要的所有技术的集合。要下载和安装 .NET SDK,请前往 MSDN Online .NET 开发人员中心(英文),然后单击“Download the .NET Framework SDK Beta 1”。下载内容大约有 90 MB;不过,有一个选项可以将 SDK 分为一系列小文件进行下载。 在安装 A 阅读全文
posted @ 2010-12-27 19:02 左正 编辑
摘要:昨天在和一位朋友讨论到委托与接口的问题,一开始我觉得很不可思议,这两个东西的概念怎么会混淆呢?要混淆也是接口和抽象类,委托和事件相混淆啊!但是着我的一个例子我马上意识到很有可能因为我将要表现的这个例子,让很多朋友混淆了委托与接口的用途.所以我想通过这篇文章试图说明白委托和接口的概念和用途,其实他们俩的差别还是很大的.本文适合对委托和接口概念或用途不了解的朋友.本文适合对委托和接口概念非常了解的朋友,并且欢迎各位朋友与Snake一起探讨有关这方面的知识. 本文不适合对委托和接口概念或用途了解一知半解(模糊)的朋友,这篇文章可能会对您产生误导,请千万别看. (本文原文是一篇没有好好排版过的emai 阅读全文
posted @ 2010-12-27 13:23 左正 编辑
摘要:1. 引言本文是一套面向C# programmer 和C# developer 进行开发所应遵循的开发规范。按照此规范来开发C#程序可带来以下益处:·代码的编写保持一致性,· 提高代码的可读性和可维护性,· 在团队开发一个项目的情况下,程序员之间可代码共享· 易于代码的回顾,本规范是初版,只适用于一般情况的通用规范,并不能覆盖所有的情况。2. 文件组织2.1 C# 源文件类名或文件名要简短,不要超过2000LOC,将代码分割开,使结构清晰。将每个类放在一个单独的文件中,使用类名来命名文件名(当然扩展名是.cs)。这种约定会使大家工作更简单。2.2 目录设计为每一个命名空间创建一个目录。(用My 阅读全文
posted @ 2010-12-27 13:22 左正 编辑
摘要:1. 引言本文是一套面向C# programmer 和C# developer 进行开发所应遵循的开发规范。按照此规范来开发C#程序可带来以下益处:·代码的编写保持一致性,· 提高代码的可读性和可维护性,· 在团队开发一个项目的情况下,程序员之间可代码共享· 易于代码的回顾,本规范是初版,只适用于一般情况的通用规范,并不能覆盖所有的情况。2. 文件组织2.1 C# 源文件类名或文件名要简短,不要超过2000LOC,将代码分割开,使结构清晰。将每个类放在一个单独的文件中,使用类名来命名文件名(当然扩展名是.cs)。这种约定会使大家工作更简单。2.2 目录设计为每一个命名空间创建一个目录。(用My 阅读全文
posted @ 2010-12-27 13:21 左正 编辑