摘要:引言
委托 和 事件在 .Net Framework中的应用非常广泛,然而,较好地理解委托和事件对很多接触C#时间不长的人来说并不容易。它们就像是一道槛儿,过了这个槛的人,觉得真是太容易了,而没有过去的人每次见到委托和事件就觉得心里别(biè)得慌,混身不自在。本文中,我将通过两个范例由浅入深地讲述什么是委托、为什么要使用委托、事件的由来、.Net Framework中的委托和事件、委托和事件对Observer设计模式的意义,对它们的中间代码也做了讨论。
将方法作为方法的参数
我们先不管这个标题如何的绕口,也不管委托究竟是个什么东西,来看下面这两个最简单的方法,它们不过是在屏幕上输出 阅读全文
艾伟:ADO.NET Entity Framework简介
2011-08-29 00:09 by 狼人:-), 283 阅读, 0 推荐, 收藏,
摘要:下一代的ADO.NET的目标是要解决关系数据模型和实际应用程序需要模型之间的鸿沟,那么它是怎么做到的呢?我们都知道,建立在关系数据库基础之上的应用程序经常需要在不同的表之间做复杂的join操作来取得相关的数据。比如下面的例子: [图1] 这是一个普通的关系型数据库。这个结构主要描述了雇员的基本信息和雇员的销售情况。假如我们想取得所有在2006年1月1日招聘过来的全职员工的姓名和职务信息,那么就需要写如下的sql查询语句:
1SELECTc.FirstName,e.Title2FROMEmployeee3INNERJOINContactcONe.EmployeeID=c.C... 阅读全文
艾伟:MOSS 2007 项目的开发步骤
2011-08-29 00:02 by 狼人:-), 219 阅读, 0 推荐, 收藏,
摘要:如何利用Sharepoint开发一个完全不同于Sharepoint风格的站点,这是这篇文章要讨论的内容。以下是项目的开发步骤:
步骤1:定义基本的网站地图和设计
就像许多Web项目一样,基本的站点地图和设计告诉开发团队基本的功能需求。站点地图能够使我们知道在站点上的各种不同类型的页面,设计使我们知道需要使用什么样的Feature.两者会随着进程不断的变化,但是他们给我们提供了项目开始的基线。
步骤2:定义自己的Content Columns 和Content Types
Content Types 是SharePoint的巨大特色,它为整个站点提供了底层结构。在项目的初期花费时间定义页面布局和 阅读全文
艾伟:新手应该如何有效地学习.net
2011-08-29 00:02 by 狼人:-), 160 阅读, 0 推荐, 收藏,
摘要:前言 对于新手来说,学习.NET编程是一件很痛苦的事情,这倒不是因为学习.NET是一件很难的事情,而是.NET是一个庞大的学习体系,对于新手来会感觉无从下手,从而造成永远都无法入门,看到别人成为高手的时候也只有羡慕的份。而网上很多高手介绍的方法又没有很强的可操作性,比如就叫你狂看书,狂看代码,狂写代码。当然这些方法是一种很好的学习方法,但对初学者来说,不是很合适。就算一些已经入了门的朋友,被人问到“你.NET到底学得怎么样?”时也很难全面系统地回答(我就曾经被一些公司这样问倒,一时真的感觉无从说起)。同时,本文章主要是为了抛砖引玉,也请大家也提出学习.NET的方法(同样也适合学习其他的知识). 阅读全文
艾伟:Remember: 我们是做产品的,不是搞学术研究的 & 用事实说话,不要臆断
2011-08-29 00:02 by 狼人:-), 126 阅读, 0 推荐, 收藏,
摘要:近来发现,有很多同事在设计Asp.Net Application时,选择用字符串拼Html文本而不用GridView等控件,原因居然是“Asp.Net太慢”。看来有必要再次明确一个本质问题:我们是做产品的,不是搞学术研究的;同时要强调一个习惯:要用事实去证明你的猜测,而不要臆断。
一、Remember:我们是做产品的,不是搞学术研究的
直接贴一个前阵子的一封邮件,“全在邮件里面了”:
发件人: 发送时间: 收件人: 主题: 答复: 关于WebService的性能损失 这个问题里面,缺少对用户场景的描述。 我认为,我们实际应该关心的并不是这两种方式的性能究竟差别有几倍,而是他们是否会... 阅读全文
艾伟:WM有约(一):你好,CF
2011-08-29 00:02 by 狼人:-), 167 阅读, 0 推荐, 收藏,
摘要:Written by Allen Lee 来,和CF打个招呼! 在这个系列里,我将会使用Visual Studio 2008来创建Windows Mobile 6 Professional应用程序,如果你也想在自己的计算机上体验一下,那么请先安装Visual Studio 2008和Windows Mobile 6 Professional SDK。 图 1 创建一个新的项目,接着选择Visual C#\Smart Device\Smart Device Project项目模板,然后输入项目名称,最后单击OK打开Add New Smart Device Project对话框:... 阅读全文
艾伟:WCF从理论到实践(15):响应变化
2011-08-29 00:02 by 狼人:-), 126 阅读, 0 推荐, 收藏,
摘要:本系列文章导航WCF从理论到实践(1):揭开神秘面纱WCF从理论到实践(2):决战紫禁之巅WCF从理论到实践(3):八号当铺之黑色契约WCF从理论到实践(4):路在何方WCF从理论到实践(5):Binding细解WCF从理论到实践(6):WCF架构WCF从理论到实践(7):消息交换模式WCF从理论到实践(8):事件广播WCF从理论到实践(9):实例模式和对象生命周期WCF从理论到实践(10):异常处理WCF从理论到实践(11)-异步WCF从理论到实践(12):事务WCF从理论到实践(13):事务投票WCF从理论到实践(14):WCF解决方案模板WCF从理论到实践(15):响应变化WCF从理论到 阅读全文
艾伟:WCF从理论到实践(14):WCF解决方案模板
2011-08-29 00:02 by 狼人:-), 168 阅读, 0 推荐, 收藏,
摘要:本系列文章导航WCF从理论到实践(1):揭开神秘面纱WCF从理论到实践(2):决战紫禁之巅WCF从理论到实践(3):八号当铺之黑色契约WCF从理论到实践(4):路在何方WCF从理论到实践(5):Binding细解WCF从理论到实践(6):WCF架构WCF从理论到实践(7):消息交换模式WCF从理论到实践(8):事件广播WCF从理论到实践(9):实例模式和对象生命周期WCF从理论到实践(10):异常处理WCF从理论到实践(11)-异步WCF从理论到实践(12):事务WCF从理论到实践(13):事务投票WCF从理论到实践(14):WCF解决方案模板WCF从理论到实践(15):响应变化WCF从理论到 阅读全文
艾伟:WCF从理论到实践(17):OO大背离(带视频+ppt+源码)
2011-08-29 00:02 by 狼人:-), 250 阅读, 0 推荐, 收藏,
摘要:本系列文章导航WCF从理论到实践(1):揭开神秘面纱WCF从理论到实践(2):决战紫禁之巅WCF从理论到实践(3):八号当铺之黑色契约WCF从理论到实践(4):路在何方WCF从理论到实践(5):Binding细解WCF从理论到实践(6):WCF架构WCF从理论到实践(7):消息交换模式WCF从理论到实践(8):事件广播WCF从理论到实践(9):实例模式和对象生命周期WCF从理论到实践(10):异常处理WCF从理论到实践(11)-异步WCF从理论到实践(12):事务WCF从理论到实践(13):事务投票WCF从理论到实践(14):WCF解决方案模板WCF从理论到实践(15):响应变化WCF从理论到 阅读全文
艾伟:WCF从理论到实践(16):操作重载(带视频+ppt+源码)
2011-08-29 00:02 by 狼人:-), 182 阅读, 0 推荐, 收藏,
摘要:本系列文章导航WCF从理论到实践(1):揭开神秘面纱WCF从理论到实践(2):决战紫禁之巅WCF从理论到实践(3):八号当铺之黑色契约WCF从理论到实践(4):路在何方WCF从理论到实践(5):Binding细解WCF从理论到实践(6):WCF架构WCF从理论到实践(7):消息交换模式WCF从理论到实践(8):事件广播WCF从理论到实践(9):实例模式和对象生命周期WCF从理论到实践(10):异常处理WCF从理论到实践(11)-异步WCF从理论到实践(12):事务WCF从理论到实践(13):事务投票WCF从理论到实践(14):WCF解决方案模板WCF从理论到实践(15):响应变化WCF从理论到 阅读全文
艾伟:WM有约(三):下一次是什么时候?
2011-08-29 00:02 by 狼人:-), 177 阅读, 0 推荐, 收藏,
摘要:Written by Allen Lee 不要留恋过去 怎样才能约束用户,不让其选择过去的日期呢?有一个很傻的办法,就是每次启动应用程序的时候,自动把MonthCalendar控件的MinDate属性的值设为今天。这样虽然禁止了用户选择过去的日期,却带来另外一些问题: 当月之前的日期无法查看。 和选项窗体的Min Date设置相冲。 有鉴于此,我们采用另一种办法,就是在用户选中某个日期时,判断这个日期是否已经过去,若是,则禁用Pin菜单项,若否,则启用Pin菜单项。那么,如何获知用户选中了某个日期?最简单的办法就是使用MonthCalendar控件的DateChanged事... 阅读全文
艾伟:.NET和J2EE该相互学习什么
2011-08-29 00:02 by 狼人:-), 130 阅读, 0 推荐, 收藏,
摘要:[前言] 写这篇Post源于我既做过.NET开发又做过J2EE开发的经历。在这样的转变过程中,我对单一平台开发所带来的思维局限性有了很多清晰却零散的想法。在看了振河兄的页面间传递变量的方法及使用范围的讨论之后,我更能体会到在不同的平台进行开发,思维方式会是如此之不同,原来那些零散的想法也随之不断在脑海中涌现,让我有了写下这篇Post的冲动。其实我一直都在宣扬一种观点:技术之间是相通的,精于触类旁通,善于联想是我们程序员应有的优势。我们在专注.NET技术的时候,不妨在工作间隙休息的时候看看.NET外面的世界。 提到.NET和J2EE,一般都会想到它们之间兵戎相见,水火不容的关系,毕竟两者都在.. 阅读全文
艾伟:.NET : 如何保护内存中的敏感数据?
2011-08-29 00:02 by 狼人:-), 299 阅读, 0 推荐, 收藏,
摘要:我们程序的威胁来自于各个方面.在互联网高度发达的今天, 安全性问题已经是企业软件开发所必须面对的最重要的问题. 从安全学的一般意义上来讲,安全性主要体现在两个方面: 敏感数据的泄露
敏感数据的破坏 从具体上来说, .NET 元数据机制的设计, 既方便了反射等强大特性的实现, 又同时给代码安全及程序运行时安全带来了巨大的隐患.迄今为止, 还未发现比较有效元数据可见性控制方法. 当然, 这不在本文的讨论范围之内. 我还是更愿意在这篇文章在针对.NET的内存分配机制讨论一个更具体的问题: 如何保护在内存中存储的敏感数据?
String的驻留机制带来的安全性问题 String是代码中使用频率... 阅读全文
艾伟:[WCF的Binding模型]之四:信道工厂(Channel Factory)
2011-08-29 00:02 by 狼人:-), 232 阅读, 0 推荐, 收藏,
摘要:由于信道管理器在客户端和服务端所起的不同作用,分为信道监听器和信道工厂。和服务端的信道监听其相比,处于客户端的信道工厂显得简单。从名称就可以看得出来,信道工厂的作用就是单纯的创建用于消息发送的信道。我们先来看看与信道工厂相关的一些接口和基类的定义。 一、信道工厂相关的接口和基类
对于信道监听器,WCF定义了两个接口:IChannelListener和IChnnelListener。与之相对地,WCF也为信道工厂定义了两个接口:IChannelFactory和IChannelFactory。这两个接口定义了信道工厂最基本的功能和属性,下面是这两个接口的定义: Code highlighti... 阅读全文
艾伟:[WCF的Binding模型]之三:信道监听器(Channel Listener)
2011-08-29 00:02 by 狼人:-), 178 阅读, 0 推荐, 收藏,
摘要:信道管理器是信道的创建者,一般来说信道栈的中每个信道对应着一个信道管理器。基于不同的消息处理的功能,将我们需要将相应的信道按照一定的顺序能组织起来构成一个信道栈,由于信道本身是由信道管理器创建的,所以信道对应的信道管理器也构成一个信道管理器栈,栈中信道管理器的顺序决定由它所创建信道的顺序。 对于WCF的信道层来说,信道管理器在服务端和客户端扮演着不同的角色,服务端的信道管理器在于监听来自客户端的请求,而客户端的信道仅仅是单纯的创建用于消息发送的信道。因此,客户端的消息管理器又称为信道监听器(Channel Listener),客户端的信道管理器则成为信道工厂(channel factory.. 阅读全文
浙公网安备 33010602011771号