2008年12月5日
摘要: SilverlightValidator提供了如下验证控件: 1.RequiredValidator:非空验证 2.LengthValidator:长度验证 3.PhoneValidator:电话号码验证,可以在PhoneValidator类构造函数中修改验 证正则表达式来实现自定义的验证规则。 4.RangeValidator:范围验证,例如验证年龄的范围。 5.RegexValidator:正则表达式验证,验证是否符合指定的表达式。 6.SSNValidator:美国社会安全号验证,其实这个是继承RegexValidator实现的 ,我用不上,把它改成了身份证号码验证。 7.还提供了一个过滤器:TextBoxFilterService,用来控制textbox的输入值类 型,例如PositiveInteger正整数、Integer、PositiveDecimal、Decimal、Alpha(阿尔法,不知怎么用)。 阅读全文
posted @ 2008-12-05 16:46 小庄 阅读(3115) 评论(7) 推荐(0) 编辑
  2008年9月5日
摘要: 我们做系统时根据需求会写很多业务实体,这些实体一般用来作为业务层方法的参数(输入或者输出),例如 public bool AddUser(UserEntity userentity)这个业务方法,UserEntity是我们定义的业务实体,我们在写这个方法时,先要对这个实体里面的属性值进行合法性验证,才能进行以后的操作,当然,我们可以在在这个方法中手工写一些验证的代码来完成,只是比较麻烦而已,我们也可以借助VAB,在实体定义的属性上增加一些验证的Attribute,如下: 阅读全文
posted @ 2008-09-05 15:42 小庄 阅读(2506) 评论(8) 推荐(0) 编辑
  2008年8月21日
摘要: 上回说到,我们配置了一下UnityConfig层,在这个层中定义了一个IContainerAccessor的接口和一个返回IUnityContainer类型的方法,这个方法的主要作用就是把Service层中的接口类和Business层中的接口实现类装配到UnityContainer中并返回,也就是指定那个接口实现类去实现某个接口类。 阅读全文
posted @ 2008-08-21 11:29 小庄 阅读(6653) 评论(15) 推荐(0) 编辑
  2008年8月15日
摘要: 这几天园子里关于软件架构的讨论还是相当激烈,大家都想要一种能最大限度的降低各层之间依赖关系的的架构来适应变化的需求,谁都不喜欢改一点而动全身,尽量降低各层的改动产生的相互影响。 本篇我以理论和实践(源代码)两个方面和大家探讨一下我的方案,希望大家多提宝贵意见。 阅读全文
posted @ 2008-08-15 18:08 小庄 阅读(7490) 评论(21) 推荐(0) 编辑
  2008年7月2日
摘要: 目前在.Net下实现AOP的方式分为两大类:一是采用动态代理技术,利用截取消息的方式,对该消息进行装饰,以取代或修饰原有对象行为的执行;二是采用静态织入的方式,引入特定的语法创建“方面”,从而使得编译器可以在编译期间织入有关“方面”的代码。动态代理实现方式利用.Net的Attribute和.Net Remoting的代理技术,对对象执行期间的上下文消息进行截取,并以消息传递的方式执行,从而可以在执行期间加入相关处理逻辑实现面向方面的功能(请参考:http://www.cnblogs.com/wayfarer/articles/256909.html);而静态织入的方式实现一般是要依靠一些第三方框架提供特定的语法,例如PostSharp,它的实现方式是采用 MSIL Injection和MSBuild Task在编译时置入方面的代码,从而实现AOP。 阅读全文
posted @ 2008-07-02 17:06 小庄 阅读(9178) 评论(21) 推荐(0) 编辑
  2008年4月30日
摘要: WCF支持多种认证技术,例如Windowns认证、X509证书、Issued Tokens、用户名密码认证等,在跨Windows域分布的系统中,用户名密码认证还是比较常用的,要实现用户名密码认证,就必须需要X509证书,为什么呢?因为我们需要X509证书这种非对称密钥技术来实现WCF在Message传递过程中的加密和解密,要不然用户名和密码就得在网络上明文传递!详细说明就是客户端把用户名和密码用公钥加密后传递给服务器端,服务器端再用自己的私钥来解密,然后传递给相应的验证程序来实现身份验证。 阅读全文
posted @ 2008-04-30 11:23 小庄 阅读(23583) 评论(38) 推荐(4) 编辑
  2008年4月1日
摘要: WebService来上传文件存在的问题是效率不高,而且不能传输大数据量的文件,当然你可以用Wse中的MTOM来传输大文件,有了WCF就好多了,通过使用WCF传递Stream对象来传递大数据文件. 阅读全文
posted @ 2008-04-01 16:39 小庄 阅读(21931) 评论(28) 推荐(4) 编辑
  2007年12月18日
摘要: 我们继续上一节中的那个项目,给那个员工列表增加 添加修改删除功能。和上一节一样,我们先从服务器端说起,服务器端需要提供WCF接口给客户端调用,我们先来写几个BLL的数据处理方法 然后在EmployeeService.svc文件中把这几个方法封装WCF接口 这样服务器端的工作就完成了,下面到客户端.也就是EXTJS的代码编写,这里要注意两个问题: 一个是关于WCF传递过来的日期型数据和从EXTJS的form中取得的日期型数据相互转化的问题,WCF传递过来的日期形式为“\/Date(62831853071)\/”括号里面的数字是UTC时间,我们需要设置Ext.form.DateField的format : "Y-m-d",然后把两种类型在通讯之前进行相互转化。 第二个是当BodyStyle = WebMessageBodyStyle.Wrapped 的时候WCF会自动把传递过来的值进行封装,这个在第二节的时候有详细说明,在把WCF传过来的值转化为ExtJS需要的对象的时候去掉这个封装。 基于以上两点,我写了一个WCFHelper.js的文件,代码如下 阅读全文
posted @ 2007-12-18 12:59 小庄 阅读(10046) 评论(39) 推荐(1) 编辑
  2007年12月11日
摘要: 这次我们使用一个测试的数据库CompanyInfoDB,里面有两张表,部门和员工,并外键关联,数据库调用采用Linq的Sqlmetal 命令方式,在Visual Studio 2008的命令提示符中输入以下命令:D:\Program Files\Microsoft Visual Studio 9.0\VCsqlmetal /conn:server=172.16.1.52;database=CompanyInfoDB;uid=sa;pwd=sa123456 /map:c:\LinqTemp\CompanyInfoDB.map /code:c:\LinqTemp\CompanyInfoDB.cs /serialization:Unidirectional 然后把生成的CompayInfo.map 文件和CompanyInfo.cs文件加入到项目中,并添加System.Data.Linq的引用,还要修改一下Web.Config 加入数据库链接字符串和XmlMappingSource文件的位置。 阅读全文
posted @ 2007-12-11 10:17 小庄 阅读(8578) 评论(12) 推荐(0) 编辑
  2007年12月7日
摘要: 首先我们打开我们的VS 新建一个Asp.Net WebApplication Project,(不要给我说新建网站,我讨厌那个东东) 命名为ExtJSAndWCFChapter1 如图: 接下来我们在该项目中新建一个实体类文件和一个AJAX—Enabled WCF SERVICE,分别命名为Employee.cs 和EmployeeService.svc 下面去ExtJS.Com网站下载一个E... 阅读全文
posted @ 2007-12-07 18:14 小庄 阅读(12731) 评论(17) 推荐(2) 编辑