摘要:在一些场合,我们可能需要对业务实体进行版本控制。类似于源码管理工具一样,可以查看历史版本,可以回滚,可以Lock,一个业务实体对象,同一时刻只允许一个人进行更新操作。为了实现信息的可追溯性,这些功能应该是必不可少的。只是我们该在哪里去控制实体对象的版本呢? 我们希望将版本控制的功能,独立于某一个具体的业务实体,这样才可以实现最大共用和扩展性。显然,要实现这一功能最好的切入点应该是在数据持久层,也就是在实体持久化时,我们需要有一个统一的,通用化的接口来完成,同时在这里插入版本控制的功能。无疑,这里的最合适的持久化接口应该是ORM,那就相当于我们要实现一个带实现版本控制的ORM接口。 ... 阅读全文
艾伟:ASP.NET MVC,深入浅出IModelBinder,在Post方式下慎用HtmlHelper
2011-08-29 00:02 by 狼人:-), 211 阅读, 0 推荐, 收藏,
摘要:本文基于ASP.NET MVC Beta版本,正式版如有变动诸不另行通知!
在开始这个主题之前,我先简要介绍一下如何在ActionMethod中通过Form使用Post的方式进行传递参数。
原生类型参数传递
先看一个简单的示例: public ActionResult SimplePost(string number)
{ ViewData["Title"] = "SimplePost Page"; ViewData["Message"] = "Increase :"; #region Increase Simpl 阅读全文
艾伟:[WCF的Binding模型]之五:绑定元素(Binding Element)
2011-08-29 00:02 by 狼人:-), 155 阅读, 0 推荐, 收藏,
摘要:在上面的内容中,先后介绍了信道、信道管理器、信道监听器和信道工厂。从对象的创建来讲,信道管理器是信道的创建者。说的再具体点,客户端的信道通过信道工厂创建,服务端的信道通过信道监听器创建。但是信道工厂和信道监听器又是如果被创建出来的呢? 我们在一开始就已经说过,作为终结点三要素的绑定对象实现了所有的通信细节,并且通过创建信道栈实现了消息的传递。从这一点来说,绑定对象无疑是信道层所有通信对象的最终缔造者,所以信道工厂和信道监听器最终的创建都是靠绑定对象实现的。关于这个创建过程又和另一个重要的对象密切相关,那就是绑定元素。 1. 绑定元素(Binding Element)
绑定元素,顾名思义... 阅读全文
艾伟:Silverlight 2.0 之旋转木马
2011-08-29 00:02 by 狼人:-), 167 阅读, 0 推荐, 收藏,
摘要:序言:记得去年8月就开始接触Silverlight 1.0了,那时候刚出来,接触的人还不是很多,一位MVP讲师朋友说国内精通的也就几千人吧,因为自己对RIA一直也比较有兴趣,所以学起来也很快,想不到MS终于放出了2.0,立马给VS2008打上SP1的补丁,装上sl2.0 RTW(SDK),装上EB SP1...
正文:关于Sl2.0的一些新特性啥的我就不说了,直接切入正题,我之前在个人网站上的首页(见http://www.ajaxplaza.net/)一直是用Ajax来实现的,效率低不说,CPU那个使用率...
所以今天的主要内容就是使用SL2.0来实现旋转木马的效果,最终效果图如下(点我体验 阅读全文
艾伟:.NET : 如何保护内存中的敏感数据?
2011-08-29 00:02 by 狼人:-), 317 阅读, 0 推荐, 收藏,
摘要:我们程序的威胁来自于各个方面.在互联网高度发达的今天, 安全性问题已经是企业软件开发所必须面对的最重要的问题. 从安全学的一般意义上来讲,安全性主要体现在两个方面: 敏感数据的泄露
敏感数据的破坏 从具体上来说, .NET 元数据机制的设计, 既方便了反射等强大特性的实现, 又同时给代码安全及程序运行时安全带来了巨大的隐患.迄今为止, 还未发现比较有效元数据可见性控制方法. 当然, 这不在本文的讨论范围之内. 我还是更愿意在这篇文章在针对.NET的内存分配机制讨论一个更具体的问题: 如何保护在内存中存储的敏感数据?
String的驻留机制带来的安全性问题 String是代码中使用频率... 阅读全文
艾伟:[WCF的Binding模型]之四:信道工厂(Channel Factory)
2011-08-29 00:02 by 狼人:-), 253 阅读, 0 推荐, 收藏,
摘要:由于信道管理器在客户端和服务端所起的不同作用,分为信道监听器和信道工厂。和服务端的信道监听其相比,处于客户端的信道工厂显得简单。从名称就可以看得出来,信道工厂的作用就是单纯的创建用于消息发送的信道。我们先来看看与信道工厂相关的一些接口和基类的定义。 一、信道工厂相关的接口和基类
对于信道监听器,WCF定义了两个接口:IChannelListener和IChnnelListener。与之相对地,WCF也为信道工厂定义了两个接口:IChannelFactory和IChannelFactory。这两个接口定义了信道工厂最基本的功能和属性,下面是这两个接口的定义: Code highlighti... 阅读全文
艾伟:[WCF的Binding模型]之三:信道监听器(Channel Listener)
2011-08-29 00:02 by 狼人:-), 198 阅读, 0 推荐, 收藏,
摘要:信道管理器是信道的创建者,一般来说信道栈的中每个信道对应着一个信道管理器。基于不同的消息处理的功能,将我们需要将相应的信道按照一定的顺序能组织起来构成一个信道栈,由于信道本身是由信道管理器创建的,所以信道对应的信道管理器也构成一个信道管理器栈,栈中信道管理器的顺序决定由它所创建信道的顺序。 对于WCF的信道层来说,信道管理器在服务端和客户端扮演着不同的角色,服务端的信道管理器在于监听来自客户端的请求,而客户端的信道仅仅是单纯的创建用于消息发送的信道。因此,客户端的消息管理器又称为信道监听器(Channel Listener),客户端的信道管理器则成为信道工厂(channel factory.. 阅读全文
艾伟:[WCF中的Binding模型]之六(完结篇):从绑定元素认识系统预定义绑定
2011-08-29 00:02 by 狼人:-), 208 阅读, 0 推荐, 收藏,
摘要:由于绑定对象由一系列有序的绑定元素组成,绑定元素最终决定着信道栈中信道的组成,而信道的组成最终又决定了信道栈对消息进行处理的方式和能力,所有要确定绑定的特性和能力,我们可以通过查看其绑定元素的构成来一窥究竟。为此我们我们写了一个简单的方法,用于列出一个具体的绑定对象所有的绑定元素,在介绍一个个具体的系统绑定中,我会使用该方法:
static void ListAllBindingElements(Binding binding){ BindingElementCollection elements = binding.CreateBindingElements(); for (in... 阅读全文
艾伟:WM有约(二):配置信息
2011-08-29 00:02 by 狼人:-), 172 阅读, 0 推荐, 收藏,
摘要:Written by Allen Lee 添加配置文件 首先,向项目添加一个Options.xml文件,这个文件将会用来储存应用程序的配置信息: 图 1 接着,把Options.xml的Copy to Output Directory属性的值改为Copy if newer: 图 2 然后,就是为Options.xml添加配置信息了: 代码 1 那么,我们如何使用这个文件呢?关于这个问题,我首先想到的是为它创建一个OptionManager类,在我的想象里,它应该是这样使用的: 代码 2 在继续之前,我想请你思考一个问题:你会如何实现OptionMana... 阅读全文
艾伟:[WCF中的Binding模型]之一: Binding模型简介
2011-08-29 00:02 by 狼人:-), 158 阅读, 0 推荐, 收藏,
摘要:1. 信道层与服务模型层(Channel Layer and Service Mode Layer)
对于一个分布式应用的开发与设计来说,通信问题是不得不考虑,同时也是最为复杂、最难实现的问题。在过去的若干年中, 微软先后推出了一系列广受欢迎的通信技术, 比如DCOM、Enterprise Service、.NET Remoting、XML Web Service、MSMQ等等。这些技术提供了各自的编程模型,是开发人员从繁琐的完全基于通信的编程中解脱出来,使之仅仅需要关注具体的业务逻辑。WCF是所有的这些通信技术集大成者,它充分地整合了所有这些使用于不同领域、不同场景的通信技术,提供了一个统一 阅读全文
艾伟:为什么微软要推 ADO.NET Data Services Framework
2011-08-29 00:02 by 狼人:-), 213 阅读, 0 推荐, 收藏,
摘要:微软在 .NET 3.5 SP1 平台上,推了一组新的数据访问 Framework,叫做 ADO.NET Data Services。微软怕程序员太闲吗?为什么要创造 ADO.NET Data Services?Web Service 和 WCF 不就很好用了吗?本帖整理一些研讨会及网络上大内高手的观点,并提供一个可在 VS 2008 SP1 上执行的示例给大家下载参考;但本帖不提供 step by step 实作教学,因为网络上已经有一堆这种文章了 (参考本帖最下面的「参考文件」第 6、第 7 点的文章,照着用 VS 2008 + SP1 操作,即可达成本帖提供下载的示例)。 .... 阅读全文
艾伟:F4何去何从 --- 大视野观察Framework 4.0
2011-08-29 00:02 by 狼人:-), 203 阅读, 0 推荐, 收藏,
摘要:Framework 4.0 CTP版发布一个多月了,在此期间稍有闲暇就打开来试试,尝试一下这个新东东。总体感觉微软现在技术大爆炸,一下子往F4里塞了好多东西,有的确实不错, 不过有的还是感觉有点粗糙,还经不起实战考验。那以下我会简单和大家过一遍这个新的框架,一起来聊聊F4的前景。
简单回顾下历史,F1.1其实是个试验品,.Net Framework真正走向成熟其实从F2开始的,之后的F3,F3.5其实都是基于F2的扩充,我个人感觉应该定义为F2.1,F2.2。没想到微软喜欢搞大跃进,随便加点东西就变个新版本。
F3+F3SP1除了修正了一些F2的bug之外,主要的扩展是加了3W框架,分别是W. 阅读全文
艾伟:Asp.Net 用户验证(自定义IPrincipal和IIdentity)
2011-08-29 00:02 by 狼人:-), 215 阅读, 0 推荐, 收藏,
摘要:源码下载:http://www.tracefact.net/SourceCode/FormsAuthentication.rar 引言 前
一段时间有两个朋友问我,为什么在HttpModule中无法获得到Session值,因为他们希望自定义一个HttpModule,然后在其中获取
Session来进行用户验证。我奇怪为什么不使用.Net
Framework已经提供的验证机制,而要和Asp时一样,自己手工进行cookie+Session验证?我们是基于.Net
Framework这个平台进行编程,所以我觉得,在很多情况下,使用Framework已经建立好的机制会显著地提高工作效率,而且.NE.. 阅读全文
艾伟:Remember: 我们是做产品的,不是搞学术研究的 & 用事实说话,不要臆断
2011-08-29 00:02 by 狼人:-), 139 阅读, 0 推荐, 收藏,
摘要:近来发现,有很多同事在设计Asp.Net Application时,选择用字符串拼Html文本而不用GridView等控件,原因居然是“Asp.Net太慢”。看来有必要再次明确一个本质问题:我们是做产品的,不是搞学术研究的;同时要强调一个习惯:要用事实去证明你的猜测,而不要臆断。
一、Remember:我们是做产品的,不是搞学术研究的
直接贴一个前阵子的一封邮件,“全在邮件里面了”:
发件人: 发送时间: 收件人: 主题: 答复: 关于WebService的性能损失 这个问题里面,缺少对用户场景的描述。 我认为,我们实际应该关心的并不是这两种方式的性能究竟差别有几倍,而是他们是否会... 阅读全文
艾伟:WM有约(一):你好,CF
2011-08-29 00:02 by 狼人:-), 174 阅读, 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对话框:... 阅读全文
浙公网安备 33010602011771号