随笔分类 -  Asp.net

ASP.NET常被忽视的一些细节
摘要:前段时间碰到一个问题:为什么在ASP.NET程序中定时器有时候会不工作?这个问题看起来很奇怪,代码好像也没错,但就是结果与预期不一致。其实这里是ASP.NET应用程序中一个容易被忽略的经节。后来想想,类似这样的细节问题何止这一个,我今天就把我能想到的容易被忽视的细节问题都写出来,希望大家小心这些问题。想到我以前的博客中也零散的说过了一些,所以这篇博客中也把它们列出来了,不过,对于以前谈过的内容,这里将只会简略地说明。HttpContext.Current并非无处不在这个问题是我上个月的博客中提到的问题,原文链接:http://www.cnblogs.com/fish-li/archive/20 阅读全文
posted @ 2013-05-28 21:40 Fish Li 阅读(26801) 评论(156) 推荐(207) 编辑
HttpContext.Current并非无处不在
摘要:了解ASP.NET的开发人员都知道它有个非常强大的对象 HttpContext,而且为了方便,ASP.NET还为它提供了一个静态属性HttpContext.Current来访问它,今天的博客打算就从HttpContext.Current说起。无处不在的HttpContext由于ASP.NET提供了静态属性HttpContext.Current,因此获取HttpContext对象就非常方便了。也正是因为这个原因,所以我们经常能见到直接访问HttpContext.Current的代码:public class Class1{ public Class1() { strin... 阅读全文
posted @ 2013-04-06 21:00 Fish Li 阅读(78050) 评论(121) 推荐(422) 编辑
如何在ASP.NET应用程序中初始化
摘要:每个程序都需要初始化的过程,用来读取配置或者设置一些运行环境(变量),对于ASP.NET程序来说,又该在哪里执行初始化的任务呢?我想应该绝大多数人都知道在Global.asax中执行初始化的过程,然而有些细节是我们需要关注的。本文用例在这篇博客的示例代码中,AppInitializer包含了网站的初始化的实现代码:public static class AppInitializer{ public static ConnectionStringSettings MyNorthwindConnectionSetting { get; private set; } public sta... 阅读全文
posted @ 2013-03-24 22:11 Fish Li 阅读(20453) 评论(57) 推荐(123) 编辑
各种AJAX方法的使用比较
摘要:AJAX技术经过这么多年的发展,出现了一些框架或类库用于简化开发工作,不同的框架类库的使用方法也各不相同。现在,再回头看看这些技术,看看这些框架类库,我们能感受到技术在不断地发展,AJAX开发越来越容易了。本文收集了在ASP.NET平台上,一些具体代表性的AJAX开发方法,我将用实际的示例代码来演示如何使用它们,让您感受AJAX的进化历程,同时也希望将一些优秀的AJAX开发方法介绍给您。为了方便地介绍这些AJAX开发方法,我将它们划分为四代技术。注意:按代划分AJAX技术纯属我个人的观点,只为了更好了区分它们。此外,一些不借助任何框架类库的原始AJAX开发方法,本文将不讨论它们。第一代技术:生 阅读全文
posted @ 2013-01-13 20:59 Fish Li 阅读(37355) 评论(129) 推荐(336) 编辑
选择HttpHandler还是HttpModule?
摘要:最近收到几个疑问:HttpHandler和HttpModule之间有什么差别,我到底该选择哪个?之所以有这个疑问,是因为在这二类对象中都可以访问Request, Response对象,都能处理请求。我原以为在博客 用Asp.net写自己的服务框架中做了那么多的演示应该把它们的使用方法说清楚了,然而有些人看了我的那些示例,仍然不知道该如何选择它们,为了实现同一个目标,我既用了HttpHandler,也有用HttpModule。现在看来,我当时设计的那些示例并不是讲清楚HttpHandler和HttpModule之间有什么差别,而是在演示如何利用HttpHandler和HttpModule设计一个 阅读全文
posted @ 2013-01-04 21:57 Fish Li 阅读(42035) 评论(127) 推荐(438) 编辑
不修改代码就能优化ASP.NET网站性能的一些方法
摘要:本文将介绍一些方法用于优化ASP.NET网站性能,这些方法都是不需要修改程序代码的。它们主要分为二个方面:1. 利用ASP.NET自身的扩展性进行优化。2. 优化IIS设置。配置OutputCache用缓存来优化网站性能的方法,估计是无人不知的。ASP.NET提供了HttpRuntime.Cache对象来缓存数据,也提供了OutputCache指令来缓存整个页面输出。虽然OutputCache指令使用起来更方便,也有非常好的效果,不过,它需要我们在那些页面中添加这样一个指令。对于设置过OutputCache的页面来说,浏览器在收到这类页面的响应后,会将页面响应内容缓存起来。只要在指定的缓存时间 阅读全文
posted @ 2012-12-23 21:27 Fish Li 阅读(24909) 评论(76) 推荐(244) 编辑
ASP.NET状态管理的总结
摘要:由于HTTP协议的无状态特性,导致在ASP.NET编程中,每个请求都会在服务端从头到执行一次管线过程,对于ASP.NET页面来说,Page对象都会重新创建,所有控件以及内容都会重新生成,因此,如果希望上一次的页面状态能够在后续页面中保留,则必需引入状态管理功能。ASP.NET为了实现状态管理功能,提供了8种方法,可帮助我们在页面之间或者整个用户会话期间保留状态数据。这些方法分为二类:视图状态、控件状态、隐藏域、Cookie 和查询字符串会以不同方式将数据发送到客户端上。而应用程序状态、会话状态和配置文件属性(Profile)则会将数据存储到服务端。虽然每种方法都有不同的优点和缺点,对于小的项目 阅读全文
posted @ 2012-11-21 08:32 Fish Li 阅读(17338) 评论(87) 推荐(187) 编辑
解决ASP.NET中的各种乱码问题
摘要:经常发现有人被乱码困扰着,而我感觉比较幸运,很少为此烦恼过。在这篇博客中,我将把我想到的一些与乱码有关的经验总结出来,供大家参考。页面显示乱码问题在一个网站中,有些页面会正常显示,然而,有些页面会显示成乱码。如果发生这种情况,可以检查一下web.config和文件编码。如果web.config是这样配置的:<globalization fileEncoding="utf-8" />而文件的编码不是UTF-8:那么就会有乱码问题。注意:反之是不是会出现乱码的。1. 不设置fileEncoding,此时不会有乱码现象。2. fileEncoding="gb 阅读全文
posted @ 2012-10-14 23:26 Fish Li 阅读(77037) 评论(99) 推荐(269) 编辑
ASP.NET Page 那点事
摘要:Page,我想每个ASP.NET开发人员对它应该都是比较熟悉的。这次的博客我就打算专门谈谈它。不过呢,我不打算说 在Page中使用控件的一些话题,也不会说Page的生命周期的相关话题,因为我认为这些话题被人谈论的次数实在是太多了,尤其是市面上的ASP.NET的书籍,都会比较喜欢这些话题。我不喜欢重复,因此今天我只想谈些人家不谈的那点事,但我认为它们仍然很重要。一些重要的Page指令虽然Page公开了很多属性,让我们可以在运行时调整它的状态与行为,但是,还有些重要的参数却是以“指令”方式提供的,需要在设计时就指定。下面是我整理的一些我认为 比较重要并且经常需要使用 的指令:@ Page 指令As 阅读全文
posted @ 2012-06-10 17:01 Fish Li 阅读(33638) 评论(106) 推荐(292) 编辑
细说ASP.NET Windows身份认证
摘要:上篇博客我谈到了一些关于ASP.NET Forms身份认证方面的话题,这次的博客将主要介绍ASP.NET Windows身份认证。Forms身份认证虽然使用广泛,不过,如果是在 Windows Active Directory 的环境中使用ASP.NET,那么使用Windows身份认证也会比较方便。方便性表现为:我们不用再设计登录页面,不用编写登录验证逻辑。而且使用Windows身份认证会有更好的安全保障。认识ASP.NET Windows身份认证要使用Windows身份认证模式,需要在web.config设置:<authentication mode="Windows&quo 阅读全文
posted @ 2012-05-07 08:27 Fish Li 阅读(80678) 评论(106) 推荐(228) 编辑
细说ASP.NET Forms身份认证
摘要:用户登录是个很常见的业务需求,在ASP.NET中,这个过程被称为身份认证。由于很常见,因此,我认为把这块内容整理出来,与大家分享应该是件有意义的事。在开发ASP.NET项目中,我们最常用的是Forms认证,也叫【表单认证】。这种认证方式既可以用于局域网环境,也可用于互联网环境,因此,它有着非常广泛的使用。这篇博客主要讨论的话题是:ASP.NET Forms 身份认证。有一点我要申明一下:在这篇博客中,不会涉及ASP.NET的登录系列控件以及membership的相关话题,我只想用比较原始的方式来说明在ASP.NET中是如何实现身份认证的过程。ASP.NET身份认证基础在开始今天的博客之前,我想 阅读全文
posted @ 2012-04-15 19:59 Fish Li 阅读(132370) 评论(249) 推荐(679) 编辑
ASP.NET页面优化,性能提升8倍的方法
摘要:今天与大家分享:一种优化页面执行速度的方法。采用这个方法,可以使用页面的执行速度获得【8倍】的提升效果。为了让您对优化的效果有个直观的了解,我准备了下面的测试结果截图:测试环境:1. Windows Server 2003 SP22. Viaual Studio 2008,使用自带的WebDev.WebServer.EXE运行网站程序。3. (ThinkPad SL510):Core2 T6670 2.2GHz, 4G内存二个红框中的数字反映了优化前后的执行时间。数字表明:优化前后,执行时间有了8倍多的差别。本文的测试结果也仅仅只是一个参考数字,这个结果也只是根据我所设计的测试页面得出的。优化 阅读全文
posted @ 2012-03-11 20:10 Fish Li 阅读(32841) 评论(70) 推荐(169) 编辑
用ASP.NET写个SQLSERVER的小工具
摘要:2001年4月份,我在博客中发过一个小工具,它是一个用ASP.NET写的SQL SERVER的辅助小工具。在这期间,有些人貌似对那个工具比较有兴趣,所以我常能收到索要源代码的邮件。正好,我上月又发布了我的MVC框架,因此打算用【我的ASP.NET MVC框架】来重写这个工具,并开源。工具的特点:1. 采用ASP.NET编写,并借助MyMVC框架。2. 为了更好地接近桌面程序的操作体验,网站采用纯AJAX的方式实现。3. 界面使用了 JQuery Easy UI4. 代码的语法着色使用了 syntaxhighlighter (JavaScript类库)工具的定位:只是辅助工具,因此功能有限,但要 阅读全文
posted @ 2012-03-04 21:24 Fish Li 阅读(20453) 评论(71) 推荐(171) 编辑
如何在IIS6,7中部署ASP.NET网站
摘要:在我的第一篇博客中,我发布过一个示例项目,主要演示了我的我的AJAX框架和我的通用数据访问层。虽然在当初我认为我已考虑地比较周全了,而且还提供了足够的说明文档,但在发布后的将近一年的时间里,还是有不少人给我发邮件,问我一些关于不能运行示例的问题。在所有问题中,主要集中在IIS和SQL SERVER的配置方面。因此,我认为还是有必要再来谈一下在IIS6/7以及SQL SERVER中部署ASP.NET网站的过程了。在上篇博客【写自己的ASP.NET MVC框架(下)】中,我又发布了一个示例项目,它也包含一个网站项目,今天的介绍过程将主要以这个示例为主。对于以前的示例所需配置的相同部分将不会重复介绍 阅读全文
posted @ 2012-02-26 20:20 Fish Li 阅读(102217) 评论(91) 推荐(266) 编辑
写自己的ASP.NET MVC框架(下)
摘要:上篇博客【写自己的ASP.NET MVC框架(上)】我给大家介绍我的MVC框架对于Ajax的支持与实现原理。今天的博客将介绍我的MVC框架对UI部分的支持。注意:由于这篇博客是基于前篇博客的,因此有些已说过的内容将会直接跳过,也不会给出提示。所以,如果要想理解这篇博客,那么阅读上篇博客【写自己的ASP.NET MVC框架(上)】则是必要的。MyMVC的特点在开发MyMVC的过程中,我吸取了一些ASP.NET WebForm的使用经验,也参考了ASP.NET MVC,也接受了Martin Fowler对于MVC思想的总结。在设计过程中,我只实现了一些必要的功能,而且没有引入其它的类库与组件,因此 阅读全文
posted @ 2012-02-21 21:38 Fish Li 阅读(63426) 评论(124) 推荐(296) 编辑
写自己的ASP.NET MVC框架(上)
摘要:写了几篇细说之后,今天打算换换口味,还是来写代码吧。所以,这次博客将以实际的代码来展示在ASP.NET平台上开发自己的框架,我希望也能让您发现这并不是件难事。我在前面的博客【用Asp.net写自己的服务框架】中,发布了一个用ASP.NET写的服务框架,那个框架我目前仍在使用中。近来,由于时常也会有人问我一些关于ASP.NET MVC的话题,因此,就想再写个自己的MVC框架出来,一方面可以留给自己使用,另外也可以谈谈MVC,尤其可以展示一下在ASP.NET下写框架的乐趣。我之所以将写框架看成是件有乐趣的事,是因为:在写框架的过程中会接触许多的技术细节。比如:1. 为了支持Session需要了解管 阅读全文
posted @ 2012-02-12 22:13 Fish Li 阅读(153696) 评论(193) 推荐(899) 编辑
细说 HttpHandler 的映射过程
摘要:在ASP.NET编程模型中,一个来自客户端的请求要经过一个称为管线的处理过程。在整个处理请求中,相对于其它对象来说,HttpHandler的处理算得上是整个过程的核心部分。由于HttpHandler的重要地位,我前面已经有二篇博客对它过一些使用上的介绍。【用Asp.net写自己的服务框架】中谈到了它的一般使用方法。【细说ASP.NET的各种异步操作】又详细地介绍了异步HttpHandler的使用方式。今天的博客将着重介绍HttpHandler的配置,创建以及重用过程,还将涉及HttpHandlerFactory的内容。回顾HttpHandlerHttpHandler其实是一类统称:泛指实现了I 阅读全文
posted @ 2012-01-29 22:14 Fish Li 阅读(49391) 评论(101) 推荐(345) 编辑
细说 ASP.NET控制HTTP缓存
摘要:在上篇博客【细说 ASP.NET Cache 及其高级用法】中,我给大家介绍了ASP.NET Cache,这种服务端使用的缓存API 。在我们开发一个ASP.NET网站的过程中,其实有很多地方都是可以使用缓存的,只是由于ASP.NET是一种基于服务端的开发平台,自然我们也经常在服务端的代码中使用各类缓存技术,然而,由于WEB应用程序的服务对象是客户端的浏览器,通常来说,我们并不能直接控制浏览器的行为,但是,浏览器却可以根据后台网站的指示,采取一些优化的方式来更快地呈现页面。客户端浏览器也有自己的缓存机制,通常浏览器也使用缓存来优化一些页面的显示过程,不过,我们并不能直接使用C#代码控制浏览器的 阅读全文
posted @ 2012-01-11 23:55 Fish Li 阅读(27252) 评论(97) 推荐(217) 编辑
细说 ASP.NET Cache 及其高级用法
摘要:许多做过程序性能优化的人,或者关注过程程序性能的人,应该都使用过各类缓存技术。而我今天所说的Cache是专指ASP.NET的Cache,我们可以使用HttpRuntime.Cache访问到的那个Cache,而不是其它的缓存技术。以前我在【我心目中的Asp.net核心对象】这篇博客中简单地提过它,今天我打算为它写篇专题博客,专门来谈谈它,因为它实在是太重要了。在这篇博客中,我不仅要介绍它的一些常见用法,还将介绍它的一些高级用法。在上篇博客【在.net中读写config文件的各种方法】的结尾处,我给大家留了一个问题,今天,我将在这篇博客中给出一个我认为较为完美的答案。本文提到的【延迟操作】方法(如 阅读全文
posted @ 2011-12-27 22:22 Fish Li 阅读(104054) 评论(249) 推荐(702) 编辑
细说 Request[]与Request.Params[]
摘要:今天我来谈一谈容易被人混淆的二个集合:Request[]与Request.Params[] 这二个集合我在博客【我心目中的Asp.net核心对象】中就提到过它们,而且还给出了一个示例,并以截图的形式揭示过它们的差别。但由于那篇博客中有更多有价值的对象要介绍,因此也就没有花太多的篇幅着重介绍这二个集合。但我发现,不知道这二个集合差别的人确实太多,以至于我认为很有必要为它们写个专题来细说它们的差别了。在ASP.NET编程中,有三个比较常见的来自于客户端的数据来源:QueryString, Form, Cookie 。我们可以在HttpRequest中访问这三大对象,比如,可以从QueryStrin 阅读全文
posted @ 2011-12-06 21:06 Fish Li 阅读(58571) 评论(65) 推荐(325) 编辑