代码改变世界

随笔分类 -  [01].NET技术

艾伟:[原创]再谈IIS与ASP.NET管道

2011-08-28 23:55 by 狼人:-), 233 阅读, 收藏, 编辑
摘要: 在2007年9月份,我曾经写了三篇详细介绍IIS架构和ASP.NET运行时管道的文章,深入介绍了IIS 5.x与IIS 6.0HTTP请求的监听与分发机制,以及ASP.NET运行时管道对HTTP请求的处理流程: [原创]ASP.NET Process Model之一:IIS 和 ASP.NET ISAPI[原创]ASP.NET Process Model之二:ASP.NET Http Runtime Pipeline - Part I[原创]ASP.NET Process Model之二:ASP.NET Http Runtime Pipeline - Part II 很多人留言为何没有IIS. 阅读全文

艾伟:基于.NET平台的Windows编程实战(六)—— 题目管理功能的实现

2011-08-28 23:55 by 狼人:-), 191 阅读, 收藏, 编辑
摘要: 本系列文章导航基于.NET平台的Windows编程实战(一)——前言基于.NET平台的Windows编程实战(二)—— 需求分析与数据库设计基于.NET平台的Windows编程实战(四)—— 数据库操作类的编写基于.NET平台的Windows编程实战(五)—— 问卷管理功能的实现基于.NET平台的Windows编程实战(六)—— 题目管理功能的实现 申明:本系列课程是专为新手们写来入门练习用的,目的是想通过一个完整的问卷调查管理系统的案例开发来让新手们了解、加深或是熟悉软件项目的开发流程及在.NET平台上使用VS2005和C# 进行Windows方面的编程;在整个课程的设计上,... 阅读全文

艾伟:关于.NET中的循环引用

2011-08-28 23:55 by 狼人:-), 310 阅读, 收藏, 编辑
摘要: 在现在开发模式日益增多,框架泛滥的时代里,人们越来越多的依赖于固有的框架模式的开发而忽略了对项目底层架构的理解。所以在部署项目结构的时候,会遇到“循环引用”这个问题,今天我就遇到了。 其实说起来并不复杂,就是我有5个项目A,B,C,D,E,然后我在项目A中引用了B的类,然后又在B中引用了C的类,最后又在C中引用了A中的类,这就构成了循环引用。 那么碰到这样的问题,怎么解决呢? 解决方案一: 我们考虑创建新的一个项目Z,然后分别添加对A,B,C的引用,这样A,B,C只要引用Z就行了。 解决方案二: 也可以创建一个类库项目,然后将A,B,C,D,E,F... 阅读全文

艾伟:老赵谈IL(3):IL可以看到的东西,其实大都也可以用C#来发现

2011-08-28 23:55 by 狼人:-), 320 阅读, 收藏, 编辑
摘要: 在上一篇文章中,我们通过一些示例谈论了IL与CLR中的一些特性。IL与C#等高级语言的作用类似,主要用于表示程序的逻辑。由于它同样了解太多CLR中的高级特性,因此它在大部分情况下依旧无法展现出比那些高级语言更多的CLR细节。因此,如果您想要通过学习IL来了解CLR,那么这个过程很可能会“事倍功半”。因此,从这个角度来说,老赵并不倾向于学习IL。不过严格说来,即使IL无法看出CLR的细节,也不足以说明“IL无用”——这里说“无用”自然有些夸张。但是,如果我们还发现,那些原本被认为需要通过IL挖掘到的东西,现在都可以使用更好的方法来获得,并且可以起到“事半功倍”的效果,那么似乎我们真的没有太多.. 阅读全文

艾伟:基于.NET平台的Windows编程实战(三)—— 项目的创建及主界面的设计

2011-08-28 23:55 by 狼人:-), 144 阅读, 收藏, 编辑
摘要: 第一步:创建一个新的Windows项目 打开VS2005,点击“文件”-->“新建”-->“项目”,在弹出的对话框里,在左边选择“Windows”,在右边选择“Windows应用程序”,并在下面的名称里输入“QuestionnaireSystem”,选择相应的保存位置后,点“确定”,如下图3-1所示: 图3-1 这样一个新的Windows项目就创建好了。 另:为了整个系统的操作需要,我们为项目新建二个文件夹:一个是DataBase[用来存放数据库文件],另一个为Images[用来存放用户所要用到图片资源],创建方法为:右击项目名称,选择“添加”à“新建文件夹”;创建好后, 阅读全文

艾伟:基于.NET平台的Windows编程实战(五)—— 问卷管理功能的实现

2011-08-28 23:55 by 狼人:-), 163 阅读, 收藏, 编辑
摘要: 本系列文章导航基于.NET平台的Windows编程实战(一)——前言基于.NET平台的Windows编程实战(二)—— 需求分析与数据库设计基于.NET平台的Windows编程实战(四)—— 数据库操作类的编写基于.NET平台的Windows编程实战(五)—— 问卷管理功能的实现基于.NET平台的Windows编程实战(六)—— 题目管理功能的实现 首先,为了使我们的界面更加便于操作及布局,我们引入第三开源控件DockPanel[当然也可以不引入控件而直接进行开发],你可以从这里:DockPanel控件下载其编译好的DLL文件,也可以从这里:http://sourceforge.ne... 阅读全文

艾伟:基于.NET平台的Windows编程实战(二)—— 需求分析与数据库设计

2011-08-28 23:55 by 狼人:-), 168 阅读, 收藏, 编辑
摘要: 本系列文章导航基于.NET平台的Windows编程实战(一)——前言基于.NET平台的Windows编程实战(二)—— 需求分析与数据库设计基于.NET平台的Windows编程实战(四)—— 数据库操作类的编写基于.NET平台的Windows编程实战(五)—— 问卷管理功能的实现基于.NET平台的Windows编程实战(六)—— 题目管理功能的实现 大家都知道一个系统的成败与否关键在于其所做的需求分析是否到位,数据库的设计是否合理。因为本系列文章的目的是在于提高大家对.NET Windows编程的实战能力,故不对需求分析与数据库设计作太多的理论说明,有关这方面的知识请大家自行查阅... 阅读全文

艾伟:AOP in Asp.net MVC

2011-08-28 23:55 by 狼人:-), 254 阅读, 收藏, 编辑
摘要: 不同的观点,开拓迥然不同的世界. Another point of view can sometimes open up a whole new world. ---- HSBC 本文内容包括: SoC AOP AOP in Asp.net AOP inAsp.net MVC SoC Separation of concerns (SoC) is the process of breaking a computer program into distinct features that overlap in functionality as little as possible. ... 阅读全文

艾伟:闲说继承

2011-08-28 23:55 by 狼人:-), 155 阅读, 收藏, 编辑
摘要: 继承已经是一个古老的话题了,不过最近又在一些地方看到有人讨论它,加上自己也有一些想法,因此形成了这篇文章。继承好不好?经典的OO理论说:继承是面向对象的三大基石之一。现代的OO理论说:组合优于继承。这两种说法显然是彼此冲突的。如果组合优于继承的话,那么为什么组合没有取代继承成为OO的基石呢?哪一种说法更有道理?对这个问题,简单的说哪个比哪个更好其实是没有多大意义的。我们应当从技术发展的历史角度去看,这两种说法各自是在什么时期产生的,它们形成的背景是什么,才能对此问题有一个更加深刻的理解。面向对象的思想形成与上个世纪70年代,但真正在软件开发阵营中流行开则是在80年代末和90年代初的时间。巧合的 阅读全文

艾伟:基于.NET平台的Windows编程实战(一)——前言

2011-08-28 23:55 by 狼人:-), 144 阅读, 收藏, 编辑
摘要: 本系列文章导航基于.NET平台的Windows编程实战(一)——前言基于.NET平台的Windows编程实战(二)—— 需求分析与数据库设计基于.NET平台的Windows编程实战(四)—— 数据库操作类的编写基于.NET平台的Windows编程实战(五)—— 问卷管理功能的实现基于.NET平台的Windows编程实战(六)—— 题目管理功能的实现 前言:本系列文章是一个关于.NET Windows编程的入门实战教程。通过一个完整的真实案例:问卷调查管理系统,全面展示了基于.NET平台的Windows编程方法,内容囊括界面的建立、业务逻辑、数据访问等。 案例背景:大约是3月份... 阅读全文

艾伟:基于.NET平台的Windows编程实战(四)—— 数据库操作类的编写

2011-08-28 23:55 by 狼人:-), 179 阅读, 收藏, 编辑
摘要: 本系列文章导航基于.NET平台的Windows编程实战(一)——前言基于.NET平台的Windows编程实战(二)—— 需求分析与数据库设计基于.NET平台的Windows编程实战(四)—— 数据库操作类的编写基于.NET平台的Windows编程实战(五)—— 问卷管理功能的实现基于.NET平台的Windows编程实战(六)—— 题目管理功能的实现 大家都知道本系统的正常运行少不了数据库操作这一块,且其在本系统中具有决定性作用,可以说没有它的操作系统将无法运行,故在本节课程中,专门把针对数据库的操作类拿出来讲讲,以便大家更加容易理解后面的课程。 好,进入正题…… 首先,我们来新建一个... 阅读全文

艾伟:ASP.NET安全问题--Forms验证(后篇)--实战篇

2011-08-28 23:55 by 狼人:-), 124 阅读, 收藏, 编辑
摘要: 验证流程讲述 我们首先假设一个场景:用户现在已经打开了我们的首页Default.aspx,但是有些资源只能是登录用户才可以看到的,那么如果这个用户想要查看这些资源,那么他就要登录。而且这个用户已经有了一个帐号。(我们本篇主要的话题是身份验证,至于创建用户账户是怎么创建的,我们不关心,方法很多,如直接一个数据库插入就行了!)我们现在就把我们的一些流程说下:1.用户登录,在输入框中输入用户名和密码信息2.点击登录按钮后,到数据库中查询该用户是否存在3如果存在,服务器端代码就创建一个身份验证的票据,保存在cookie中,然后发送到客户端的浏览器4.用户已经有了验证的cookie,那么就页面就跳转到. 阅读全文

艾伟:[你必须知道的.NET]第三十二回,深入.NET 4.0之,Tuple一二

2011-08-28 23:55 by 狼人:-), 152 阅读, 收藏, 编辑
摘要: 本系列文章导航[你必须知道的.NET] 开篇有益[你必须知道的.NET] 第一回:恩怨情仇:is和as[你必须知道的.NET] 第二回:对抽象编程:接口和抽象类[你必须知道的.NET] 第三回:历史纠葛:特性和属性[你必须知道的.NET] 第四回:后来居上:class和struct[你必须知道的.NET] 第五回:深入浅出关键字---把new说透[你必须知道的.NET] 第六回:深入浅出关键字---base和this[你必须知道的.NET] 第七回:品味类型---从通用类型系统开始[你必须知道的.NET] 第八回:品味类型---值类型与引用类型(上)-内存有理[你必须知道的.NET] 第九回: 阅读全文

艾伟:C# 4.0下的新特性

2011-08-28 23:55 by 狼人:-), 132 阅读, 收藏, 编辑
摘要: 回顾C#发展的历史,C#1.0完全是模仿Java,并保留了C/C++的一些特性如struct,新学者很容易上手;C#2.0加入了泛型,也与Java1.5的泛型如出一辙;C#3.0加入了一堆语法糖,并在没有修改CLR的情况下引入了Linq,简直是神来之笔,虽然很多项目出于各种各样如性能之类的原因没有采用,但非常适合小型程序的快速开发,减轻了程序员的工作量,也提高了代码的可读性;C#4.0增加了动态语言的特性,从里面可以看到很多javascript、python这些动态语言的影子。虽然越来越偏离静态语言的道路,但从另一个角度来说,这些特性也都是为了提高程序员的生产力。至于被接受与否,还是让时间.. 阅读全文

艾伟:如何在ASP.NET项目里面正确使用Linq to Sql

2011-08-28 23:55 by 狼人:-), 141 阅读, 收藏, 编辑
摘要: 老久不上来写技术类的东西了,偶尔回归一下吧。(其实,这篇文章8个月前写了个大半,后来一直没有时间去完善,再后来就因为各种原因给放下来了。) Linq to Sql 用的人也应该有些吧,我在cnblogs上面看老赵写的那几篇文章(请看08年9月左右的文章),感觉也很有深度,有不少启发。因此我也打算写一点我自己的实践经验,希望也能同样给大家一些有用的启发吧。 我首先想要问一下大家,Linq to Sql有哪些很特别的地方?这个问题的答案肯定五花八门,我说一下我看到的一些问题吧。 首先,Linq to Sql的基础之一是DataContext,而另外一个基础,则是通过映射产生的实体类,以及这些实体类 阅读全文

艾伟:.NET,你忘记了么?(八)-- 从dynamic到特性误用

2011-08-28 23:55 by 狼人:-), 130 阅读, 收藏, 编辑
摘要: 1. 摘要 每个程序员都想写出漂亮的代码,但是什么是漂亮,这个我想每个人都有着自己的看法。那么我就说几种典型的想法: A. 写出别人看不懂的代码,让别人觉得很高深。 B. 写出简短的代码 C. 用最新的语言特性写出代码 这个我不发表评论,毕竟每个人有着自己的观点,我也不能证明自己的就是对的。但是在这里,我想说一些典型的误用。 2. 从dynamic谈起 作为C#4.0的更新之一,dynamic已经越来越被推到了很多技术论坛的第一线。我看了很多关于dynamic的讲解,但是我还是我一贯的观点。既然我们用的微软的东西,那么我们在使用一个语言特性的同时,我们首先要弄清微软为什么要推出这门语言,不要. 阅读全文

艾伟:WM--GPS开发

2011-08-28 23:55 by 狼人:-), 235 阅读, 收藏, 编辑
摘要: 前几天,有朋友托我给他写个GPS程序,就取经纬度坐标,以及将之转换成高斯直角坐标。花了一些时间,给他做了个小程序。 后来总结时,想起,很多网上朋友都会问及关于GPS开发的一些事。我这里先将我的程序解释下,然后再总结下,相关经验及个人看法。 目前在一些移动设备中,都提供GPS功能,设备中都需要一个接收器,用来接收GPS信号。(类似于GPRS工作方式)。GPS一旦启动后,会自动连接卫星,接收信号,通过算法计算出位置等信息,然后以NMEA data的格式输出。GPS receiver就是接收卫星信号转换成NMEA data的设备。 开发GPS有3种选择: 1、直接使用串口连接GPS... 阅读全文

艾伟:小巧优美的ORM框架-doodads入门指南[转载]

2011-08-28 23:55 by 狼人:-), 211 阅读, 收藏, 编辑
摘要: 关于.net下的ORM框架,大家最为耳熟的可能就是NHibernate了,当然,很多公司正在使用自己开发的ORM框架,笔者至少见过3家不同公司的ORM框架,其实都是大同小异,借助于codesmith、mygeneration等代码生成工具,自己开发一个ORM框架也不是什么难事,关键的问题是,你能不能设计出代码优美简洁、功能灵活、定制方便以及部署容易的ORM框架。 我去年开始热衷NHibernate(与其说热衷,不如说是迷信,因为后来越来越多的证据证明,公司自己的那套用了几年的使用Excel生成实体类的ORM小框架更加适合快速开发,并且灵活易定制),因为当时很多人讨论NH,有的公司招聘的时... 阅读全文

艾伟:在Windows Mobile Emulator建立网络连接

2011-08-28 23:55 by 狼人:-), 175 阅读, 收藏, 编辑
摘要: 因为想使用Windows Mobile Emulator进行网络通信程序的测试,所以找方法配置Emulator的网络连接。在网上找了一些文章,很多都说需要安装Virtual PC 2007. 例如下面的文章Enable Network Connection Windows Mobile 6 Emulator 如果需要 Virtual PC 2007 可以在这里下载 http://www.microsoft.com/downloads/details.aspx?FamilyID=04d26402-3199-48a3-afa2-2dc0b40a73b6&DisplayLang=en 我的配 阅读全文

艾伟:C#4.0初探:dynamic 关键字

2011-08-28 23:55 by 狼人:-), 243 阅读, 收藏, 编辑
摘要: C#新增了dynamic关键字,正因为这一个小小的关键字,C#动态特性向前迈进了一大步。dynamic是一个类型关键字,声明为dynamic的类型与"静态类型"(这里的静态类型是指编译时确定的类型,下同)相比最大的特点它是"动态类型",它会运行时尝试调用方法,这些方法的存在与否不是在编译时检查的,而是在运行时查找,如果方法存在并且参数正确,会正常调用,否则会抛出Microsoft.CSharp.RuntimeBinder.RuntimeBinderException异常。看一个最简单的示例: using System; namespace Xianfen 阅读全文