编程技巧 - 文章列表

  • 使用Forms Authentication实现用户注册、登录 (三)用户实体替换

    IPrincipal和IIdentity\n  通过查阅文档,我们可以看到HttpContext.User属性的类型是IPrincipal接口。然而我们知道,接口通常是不能直接访问的,其背后必定隐藏了一个实现了该接口的对象。那么这个实际对象的类型是什么呢?\n  让我们在前面示例的MasterPage的Page_Init方法上加一个断点,再次运行程序,可以得到HttpContext.User属性的真正类型是System.Security.Principal.GenericPrincipal。\n  查看IPrincipal接口的定义,可以看到它只有一个公开属性——Identity,其类型是这里

  • 利用UrlRewrite,asp.net动态生成htm页面

    前段时间做项目,一直都在寻找一种动态生成htm页面的方法,要求配置简单,和项目无关。功夫不负有心人,终于被我找到了,只需要在web.config中进行简单配置,就可以达到动态生成静态页面的效果,同时又不影响Url重定向。web.config中需要注意的配置节为<configuration>、<RewriteConfig>、<httpModules>、<httpHandlers>,在这些配置节里边都有注释,容易看懂。<?xml version=”1.0″ encoding=”utf-8″?&gt

  • 使用ascx和Div来扩充列表框选择功能

    在项目开发中,我们经常会通过使用列表框或组合框来解决选择问提。但在列表框中,容纳的信息实在是有限,而且显示的条目也不能一次性太多,那样对用户的操作也会造成不便。有时可以通过用其它控件来替换掉列表框的展现部分,比如使用DataView或DataList控件等,这可用自定义控件或用户控件来完成,这里介绍一个常用的简单方法(使用用户控件)。源码下载方法是:先建立一个ascx控件.\n(1)ascx控件中再分出”txtDiv”和”listDiv”两个Div层.“txtDiv”层中使用Css将内嵌的Label和div等Html元素,

  • .net(C#)开发小技巧漫谈之一

    以下是我在.Net开发中总结的一些小的开发技巧,园子里的朋友大多数都是.Net程序员,相信对此都很熟悉。如果您觉得太浅显了,请不要嘲笑;如果觉得哪些地方说的欠妥,敬请斧正;如果您觉得还有什么地方没有说到位,请补充,谢谢。 这些技巧再浅显平常不过,初学者很容易忽略。相信越是越老道的程序员,越重视这些稀疏平常的技巧。 一,关于变量的命名和属性 static readonly与const的变量,作用是一样的,无论访问修饰符是不是public,还是其它(private、protected、internal),变量名称一般为大写,中间以下划线。\n<!–

  • LINQ体验(2)——C# 3.0新语言特性和改进(上篇)

    在第一篇中,知道了Visual Studio 2008新特性,从这篇开始进入此系列的第二部分——介绍C# 3.0新语言特性和改进。\n总体来说,Visual Studio 2008和.NET 3.5是建立在.NET2.0核心的基础之上,.NET2.0核心本身将不再变化(如果不了解.NET2.0的朋友,请参看MSDN或者一些经典的书籍),C# 3.0新语言特性在.NET2.0基础上进行了改进,这些改进的功能可以大大简化我们编写程序。关于C# 3.0新语言特性在博客园里的很多朋友都介绍了,我在这里简单介绍一下,记录自己所学的东西,也为后面的LINQ打下基础。\nC# 3.0新语言特性和改进包括:自

  • .Net类库中实现的HashTable

    摘要:\n这个HashTable用开放定址法解决冲突,用双散列法进行探测。装填因子过高之后使用再散列法扩充,涉及到的算法都不是很复杂,即使不使用数学工具,也可以简单的分析下 。\n本文以.net fx’s HashTable为例,回顾HashTable的基础理论。HashTable是一种能提供快速插入和查询的数据结构,无论其包含有多少Item,查询和插入操作的平均时间总是接近O(1)。HashTable理论上并不关心其所包含的item顺序,任何与顺序有关的操作例如:“find_min, find_max”,都不能有效的支持。\nHashing假如我们把一本英汉字典的5000个单

  • .net(C#)开发小技巧漫谈之二

    五,关于面向对象在项目开发中的运用 面向对象时下很火,是地球人都知道了。做为一名程序员似乎不会面向对象就显得很土。关于面向对象,如果目前还不懂,请不要在项目开发中自主运用。如果需求把握不好,颗粒度划分不好,反而得不偿失。一个优秀项目的架构绝非易事,在目前的中国做公司项目开发,没有人给你那么多的时间容你去细细思考。这时候用通用的模式开发,采用现成的类库、组件,一失为明智之举。如果开发自己的项目,倒是可以慢条斯理,以下是我的看法。仅是个人之见,仅供参考。 在.net(C#)开发小技巧漫谈之一中,第一个小技巧提倡使用getter与setter属性存取器,代替对变量直接读取

  • 关于ASP.NET 2.0的目录结构变化

      ASP.NET 2.0是采用动态编译机制的了,也就是只要添加ASPX文件和相应的CS后台代码文件,不再需要进行编译,就可以运行了。ASP.NET 2.0会去动态的编译进行。其实原理很简单的,就是ASP.NET会对应用项目的目录结构进行监控,一旦有“目录删除 ”就重启。  我在开发中,遇到了这个问题,所以把解决的方案给大家分享一下。希望对一些遇到同样问题的朋友有所帮助。\n  ASP.NET 2.0是采用动态编译机制的了,也就是只要添加ASPX文件和相应的CS后台代码文件,不再需要进行编译,就可以运行了。\n  ASP.NET 2.0会去动态的编译进行。而这种带有“监控”色彩的机制虽然带来很

  • C# 类型基础

    C# 类型基础\n引言\n本文之初是想讲述设计模式中的 Prototype(原型)模式,但是了解这个模式,需要了解对象克隆(Object Clone),Clone其实也就是对象复制。复制又分为了浅度复制(Shallow Copy)和深度复制(Deep Copy),浅度复制 和 深度复制又是以 如何复制引用类型成员来划分的。由此又引出了 引用类型和 值类型,以及相关的对象判等、装箱、拆箱等基础知识。\n于是我干脆新起一篇,从最基础的类型开始自底向上写起了。我仅仅想将对于这个主题的理解表述出来,一是总结和复习,二是交流经验,或许有地方我理解的有偏差,希望指正。如果前面基础的内容对你来说过于简单,可

  • .net(C#)开发小技巧漫谈之三:关于在Web开发中绑定数据的三种方法

    本例完全代码下载:StrongTypeDataBinding.rar六,关于web开发中的数据绑定在web开发中,数据绑定是所有程序员都会遇到,并且经常处理的问题。下面就这个小问题和大家探讨一下关于强类型支持在这个问题中的应用。拙劣不当之处,敬请各路高手斧正。先look一眼这个demo截图: 先简单说一下,在我们的数据库有这样一个Programmer表,它有两个字段Name和WebSite,类型都是字符串。我们要处理的问题即是,把这个表从数据库中读出来并在页面上显示。简单吧,让我们开始。现在我们是一个新手,对.Net数据绑定一无所知,于是我到msdn2搜索了一下,找到这么一个例子:\n<