君子博学而日参省乎己 则知明而行无过矣

博客园 首页 新随笔 联系 订阅 管理
  1057 随笔 :: 381 文章 :: 141 评论 :: 169万 阅读

随笔分类 -  ASP.NET

1 2 下一页

摘要:Introduce Null Object(引入Null对象)你需要再三检查某对象是否为null。将null值替换为null对象。if(customer==null)plan=BillingPlan.basic(); elseplan=customer.getPlan();动机多态的最根本好处在于:你不必再向对象询问"你是什么类型"而后根据得到的答案调用对象的某个行为--你只管调用该行为就是了,其他的一切多态机制会为你安排妥当。当某个字段内容是null 时,多态可扮演另一个较不直观(亦较不为人所知)的用途。让我们先听听Ron Jeffries的故事。--Ron Jeffri 阅读全文
posted @ 2012-04-21 22:41 刺猬的温驯 阅读(615) 评论(0) 推荐(0) 编辑

摘要:<asp:Panel ID="Panel1" runat="server"></asp:Panel>if (!IsPostBack) { } IList<Accounts_Duty> adlist = new Accounts_DutyBLL().GetALLItems(); SmartDropDownList sddl = new SmartDropDownList(); sddl.AutoPostBack = true; sddl.ID = "sddlControl"; sddl.Items.A 阅读全文
posted @ 2012-02-23 20:40 刺猬的温驯 阅读(415) 评论(0) 推荐(0) 编辑

摘要:现在浏览器一般都支持gzip,deflate压缩协议 , 也就是说当服务器返回的是用gzip或deflate协议进行压缩过的内容, 浏览器将自动的进行解压缩 . 这样做可以节省大量的网络带宽,负面影响是加重了服务器的负担.我们只是对aspx页面进行压缩 ,当然也可以压缩js和css . 但你也想用来对图片也进行压缩的话就错了 ,效果和用winzip压缩图片一样, 只能增大体积.首先来看看一个实例 aspx页面压缩前和压缩后的页面信息压缩前压缩后可以看到压缩到原来页面大小的27% 效果还是可以的.看看具体代码CompressionModuleCode highlighting produced 阅读全文
posted @ 2011-09-18 21:25 刺猬的温驯 阅读(233) 评论(0) 推荐(0) 编辑

摘要:摘要 现在基于.Net的Ajax框架很多,Ajax已经变得很傻瓜化,甚至MS还很狂的说,现在所有的Asp.Net程序员都可以在简历上写会Ajax技术,MS狂妄的资本就是MS的Asp.Net 2.0 Ajax框架。众多的Ajax框架确实给我们开发带来了很多的方便,甚至把Ajax的应用简化到控件拖拉的地步,但这也直接导致了很多人滥用Ajax,只要高兴就套个UpdatePannel,这已经成为很多程序员的习惯,却不知道这样做得到的往往是反效果,增加了服务器的负担。 在写程序的过程中,一些小的Ajax效果我不大喜欢去用Ajax框架来做,为了一点点效果就去动用Ajax框架这个相对庞大的家伙显然有点不.. 阅读全文
posted @ 2011-09-18 21:16 刺猬的温驯 阅读(245) 评论(0) 推荐(0) 编辑

摘要:我们在日常开发中会经常用到序列化和反序列化,他们到底是什么意思呢?通俗的讲序列化就是把对象转化成数据文件或者字段(二进制或者XML),反序列化就是数据文件或者字段转化为数据对象。 下面我以提问题的方式,帮大家解释一下序列化和反序列化。(C#代码为例) 一 、为什么使用序列化和反序列化? 1.保存对象。通常我们在C#代码中构建了一个对象需要把该对象保存到数据库、文件、Application、Session、Coockie、ViewState等其他存储环境中,以备下次直接使用。 2.共享数据. 对象仅在创建对象的应用程序域中有效,其他应用程序域想调用该对象数据就会使用该技术。 3.在网... 阅读全文
posted @ 2011-08-26 04:21 刺猬的温驯 阅读(263) 评论(0) 推荐(0) 编辑

摘要:一直以来,搞不懂IEnumerable与IEnumerator这两个接口的区别,今天看了一下MSDN并在网上搜了一把关于他们的区别,似乎理解了,但还是弄不懂他们最主要的区别是什么。看看MSDN是怎么定义他们的吧。 //公开枚举数,该枚举数支持在非泛型集合上进行简单迭代 public interface IEnumerable { //返回可循环访问集合的枚举数 IEnumerator GetEnumerator(); } //支持对非泛型集合的简单迭代 ... 阅读全文
posted @ 2011-08-26 02:47 刺猬的温驯 阅读(259) 评论(1) 推荐(0) 编辑

摘要:http://msdn.microsoft.com/library/en-us/dnpag2/html/PAGHT000022.asp 摘要: 本文介绍了怎么在ASP.NET 2.0中使用Membership新特性,并且介绍了怎么两种不同的Membership的Provider:ActiveDirectoryMembershipProvider和SqlMembershipProvider,前者是基于微软活动目录服务存储用户信息的,或者是基于SQL SERVER存储的。2.0中的这个新机制大大减少了站点用户认证模块的代码量。 目录: 学习目的 使用ActiveDirectoryMembershi 阅读全文
posted @ 2011-06-16 04:01 刺猬的温驯 阅读(340) 评论(0) 推荐(0) 编辑

摘要:摘要:asp.net 2.0的Membership组件提供了一组非常简单易用的接口供开发者进行用户管理,用户验证。本文将它对它的实现原理进行简单的分析,介绍如何正确的使用,以及如何对它进扩展。 一、MembershipProvider抽象类 在很多情况下,在使用Membership的时候我们并不会直接使用到这个类。在MembershipProvider类定义的都是一些抽象方法和抽象属性,就是这些方法和属性构成了Membership接口的基本规范,而且在.NET 框架内部使用Membership的功能都是通过这个类型调用的。继承类通过实现这些接口来提供不用环境下的用户管理功能,并且对Member 阅读全文
posted @ 2011-06-16 03:00 刺猬的温驯 阅读(240) 评论(0) 推荐(0) 编辑

摘要:目录 l 导论 l 什么是委托 l 事件的理解 l 事件 关键字 l 最后 导论 在学习C#中的委托和事件过程中,我读了许多文章来理解他们二者究竟是怎么一回事,以及如何使用他们,现在我将整个的理解过程陈述以下,我学到的每一方面,恐怕也是你们需要掌握的 :-)。 什么是委托? 委托和事件这两个概念是完全配合的。委托仅仅是函数指针,那就是说,它能够引用函数,通过传递地址的机制完成。委托是一个类,当你对它实例化时,要提供一个引用函数,将其作为它构造函数的参数。 每一个委托都有自己的签名,例如:Delegate int SomeDelegate(string s, bool b);是一个委托申明,在这 阅读全文
posted @ 2011-06-13 03:01 刺猬的温驯 阅读(257) 评论(0) 推荐(0) 编辑

摘要:在.NET多线程编程这个系列我们讲一起来探讨多线程编程的各个方面。首先我将在本篇文章的开始向大家介绍多线程的有关概念以及多线程编程 的基础知识;在接下来的文章中,我将逐一讲述。NET平台上多线程编程的知识,诸如System.Threading命名空间的重要类以及方法,并就一些 例子程序来作说明。 引言 早期的计算硬件十分复杂,但是操作系统执行的功能确十 分的简单。那个时候的操作系统在任一时间点只能执行一个任务,也就是同一时间只能执行一个程序。多个任务的执行必须得轮流执行,在系统里面进行排队等候。 由于计算机的发展,要求系统功能越来越强大,这个时候出现了分时操作的概念:每个运行的程序占有一定的处 阅读全文
posted @ 2011-06-05 03:24 刺猬的温驯 阅读(876) 评论(0) 推荐(0) 编辑

摘要:说道ASP.NET的Postback,就得说Web Page的生命周期,但是Web Page的生命周期却不是三言两语就能够说得清楚的,所以在这里单纯站的编程的角度,撇开Web Page 的生命周期浅谈Postback。 我们知道,无论是 ASP.NET1.x,2.0,甚至是以后的版本,ASP.NET最终Render到Client端通过浏览器浏览的都是一样:一个单纯的HTML。 Client通过Submit Form的方式将填入Form的数据提交给Server进行处理。我们现在来看看ASP.NET整个Postback程序处理的过程。 首先我们通过一个Sample来看ASP.NET如何处理一个通过 阅读全文
posted @ 2011-05-15 15:18 刺猬的温驯 阅读(321) 评论(0) 推荐(0) 编辑

摘要:在我的随笔《Page,你是怎样处理回发事件的?》中曾提出一个疑问,如何得到引起页面PostBack的控件?通过阅读Page类的源码,误打误撞,无意中看到了__EVENTTARGET和__EVENTARGUMENT这两个常量的定义,并通过调试分析页面,知道了通过Request.Form[“__EVENTTARGET”]可以获取到触发页面PostBack的事件源(控件的ID)。对于一般的控件,这样就可以了,唯有Button和ImageButton触发的PostBack无法通过这种方式获取到它们的ID,起初还以为是它们实现的接口的不同而产生PostBack方式的不同。刚刚在AspAlliance.看 阅读全文
posted @ 2011-05-15 14:59 刺猬的温驯 阅读(283) 评论(0) 推荐(0) 编辑

摘要:什么是404错误 HTTP 404 错误意味着链接指向的网页不存在,即原始网页的URL失效,这种情况经常会发生,很难避免,比如说:网页URL生成规则改变、网页文件更名或移动位置、导 入链接拼写错误等,导致原来的URL地址无法访问;当Web 服务器接到类似请求时,会返回一个404 状态码,告诉浏览器要请求的资源并不存在。但是,Web服务器默认的404错误页面,无论Apache还是IIS,均十分简陋、呆板且对用户不友好,无法 给用户提供必要的信息以获取更多线索,无疑这会造成用户的流失。 404页面的作用 搜索引擎通过HTTP状态码来识别网页的状态。当搜索引擎获得了一个错误链接时,网 站应该返回40 阅读全文
posted @ 2011-05-08 01:35 刺猬的温驯 阅读(453) 评论(0) 推荐(0) 编辑

摘要:昨天偶然看到网上有人讨论究竟是该用viewstate还是session来保存信息. 忽然觉得有必要去深入的研究一下这两个东东了. 我们先来看深入分析一下viewstate, 为了分析的相对完整性,先从简单的说起: 在asp时代, 大家都知道一个html控件的值,比如input 控件值,当我们把表单提交到服务器后, 页面再刷新回来的时候, input里面的数据已经被清空. 这是因为web的无状态性导致的, 服务端每次把html输出到客户端后就不再于客户端有联系. asp.net巧妙的改变了这一点. 当我们在写一个asp.net表单时, 一旦标明了 form runat=server ,那么,as 阅读全文
posted @ 2011-05-06 02:21 刺猬的温驯 阅读(312) 评论(0) 推荐(0) 编辑

摘要:asp.net之所以现在开发方便和快捷,关键是它有一组强大的控件库,包括web服务器控件,web用户控件,web自定义控件,html服务器控件和html控件等。这里我主要说说html控件、html服务器控件和web服务器控件的区别。 1、html控件:就是我们通常的说的html语言标记,这些语言标记在已往的静态页面和其他网页里存在,不能在服务器端控制的,只能在客户端通过javascript和vbscript等程序语言来控制。如:<input type="button" id="btn" value="button"/> 2 阅读全文
posted @ 2011-05-06 02:00 刺猬的温驯 阅读(988) 评论(1) 推荐(2) 编辑

摘要:委托和事件在 .NET Framework中的应用非常广泛,然而,较好地理解委托和事件对很多刚接触C#的人来说并不容易。它们就像一道坎儿,过了这个槛的人,觉得真是太容易了,而没有过去的人每次见到委托和事件就觉得心里迷糊,浑身不自在。下面就通过简洁的语言和通俗的例子来讲解一下什么是委托、如何实现委托,如何使用委托,以及事件的使用与处理。 1.示例代码 (示例位置:光盘"code"ch01"11) public class ClassPeople { public void SayChinese(string name) { Console.WriteLine(&qu 阅读全文
posted @ 2011-04-19 23:00 刺猬的温驯 阅读(160) 评论(0) 推荐(0) 编辑

摘要:什么是委托 首先要知道什么是委托,用最通俗易懂的话来讲,你就可以把委托看成是用来执行方法(函数)的一个东西。 如何使用委托 在使用委托的时候,你可以像对待一个类一样对待它。即先声明,再实例化。只是有点不同,类在实例化之后叫对象或实例,但委托在实例化后仍叫委托。 声明,如: 1namespaceVczx.ProCSharp.Exc 2{ 3delegatedoubleMathsOp(doublex); 4//classdefinationhere 5} 这就声明了一个委托,意义:任何一个返回值为double,且只有一个形参为double的函数,都可以用这个委托来调用。 注意:委托的声明位置在na 阅读全文
posted @ 2011-04-19 22:56 刺猬的温驯 阅读(471) 评论(0) 推荐(0) 编辑

摘要:一. 场景 这里仅举一个简单应用的例子,我希望在web.config里面增加网站的基本信息,如:网站名称,网站版本号,是否将网站暂时关闭等。 二. 基本实现方法 1. 定义配置节点对应的类:SiteSetting 代码片段: namespaceTristan.SeeCustomConfig{ publicclassSiteSetting{ publicstringSiteName{get;set;} publicstringSiteVersion{get;set;} publicboolClosed{get;set;} } } 2. 实现IConfigurationSectionHandler 阅读全文
posted @ 2011-04-07 02:53 刺猬的温驯 阅读(327) 评论(0) 推荐(0) 编辑

摘要:我们通常把诸如sql的connection string之类的配置信息保存在web.config的AppSettings部分,以方便程序的分发,并且可以通过以下方法在程序中获得: string sqlStr = System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"]; 对于结构比较复杂的自定义配置,可以通过实现IConfigurationSectionHandler接口来实现这种机制。首先,创建MySettings类,该类仅包含了我需要的一些自定义配置的定义: usingSyste 阅读全文
posted @ 2011-04-07 02:40 刺猬的温驯 阅读(276) 评论(0) 推荐(0) 编辑

摘要:〖写在前面〗 以下讨论是基于CuteEditor6.0版本,它的案例可以在这里下载到“CuteEditor6.0多语言版(集成lic文件)”。CuteEditor6.0和CuteEditor5.0是有些地方不一样的,而网上关于CuteEditor的教程多为把两者混为一谈,又或者教程中没有特别注明所讲软件版本,这很容易给读者带来迷惑。 比如CuteEditor5.0经本人测试发现默认已支持文件名含中文字符的文件上传,在CuteSoft_Client\CuteEditor \Configuration\Security\Default.config文件中,也是没有<security name 阅读全文
posted @ 2011-04-04 23:55 刺猬的温驯 阅读(391) 评论(0) 推荐(0) 编辑

1 2 下一页
点击右上角即可分享
微信分享提示