05 2009 档案
摘要: 在Suteki.Shop中Model的原型是基于Linq to SQL创建的,其dbml文件位于Suteki.Shop\Shop.dbml。而Suteki.Shop在此文件的基本上,以"partial class "的方式在Suteki.Shop\Model文件夹下创建了相应的类文件以扩展Shop.dbml中Model类的一些方法和属性声明,如下图:
阅读全文
摘要: 在Suteki.Shop中,未使用微软自已的Unity框架来实现IOC,而是使用了大名鼎鼎Castle Windsor。因为引用了Windsor,就有必要简要介绍一下。而我的理解,这个IOC容器(Container)包括下面几个重要概念:
阅读全文
摘要: 使用强类型的ViewData好处有许多,比如说在IDE中就会有更好的支持,比如代码提示。同时在View与Controller之间有更严谨的“约定”。在Suteki.Shop项目中作者对强类型的ViewPage引入是通过MvcContrib实现的,下面就是其ViewPage代码(Suteki.Shop\Views\ViewPage.cs):
阅读全文
摘要: 在Suteki.Shop中,作者构造了一个ModelBinder基类“DataBinder”,其本身继承自IModelBinder接口,并以此其类派生出其它一些子类类如ProductBinder等等。可以说除了极个别的地方之外,DataBinder被用于了Suteki.Shop大多数的ModelBinder绑定场景之路。
阅读全文
摘要: 在Suteki.Shop,实现了自己的数据校验机制,可以说其设计思路还是很有借鉴价值的。而使用这种机制也很容易在Model中对相应的实体对象(属性)添加校验操作方法。下面就来介绍一下其实现方式。
阅读全文
摘要: 在Suteki.Shop中对于Filter的使用上提供了两种方式,一种是从FilterAttribute(抽象类属性)以及接口 IActionFilter和 IResultFilter中继承并实现。另一种是我们经常提到的从ActionFilterAttribute 上继承方式来实现自己的ActionFilter。首先看一下第一种,同时它也是该项目中被Action广泛使用的方式, 下面是类图:
阅读全文
摘要: 在上文中,介绍了如何安装和使用Suteki,今天我们通过源码来看一下Suteki是如何使用Controller。在Suteki中,其使用Abstract的方式来定义一个ControllerBase,以此作为所有Controller的基类,下面是其Controller的类设计图:
阅读全文
摘要: 声明:作为这个系列的开篇,本系统会将我在研究这个项目源码中的一些思考和心得介绍给大家。当然本系统决不是那种所谓的“最佳示范”,里面所提到的使用技巧或设计思路只是给大家在实际工作中提供一个参考,所谓“最好”之类的词汇都是“矬子里拔将军”,相信大家在成功的分析了几个MVC示例之后,会找到适合自己所在团队或公司使用的方式或思路的。 其实在找一个合适的MVC示例上我已花费了“一些”时间,而这个例子对于我来说,还是相对不错的(除了文档和相关说明较少之外)。另外,该项目还使用了其他一些框架或DLL文件,比如castle, MvcContrib, NVelocity。这些内容会在后续文章中讲到。
阅读全文
摘要: Silverlight 3 中加入了一个名为“SystemColors”类,允许我们开发的Silverlight应用的UI颜色跟随着WINDOW的系统主题(theme)发生变化。
阅读全文
摘要: 在Silverlight3中提供了NetworkChange,NetworkInterface这两个类(均为abstract型),其中实现了NetworkAddressChanged的事件处理器用来检测当前在线状态,而NetworkInterface类的 GetIsNetworkAvailable()方法(返回bool类型),用来判断当前是否在线。有了这两个类,就可以很方便的实现动态检测当前应用是否连线了。
阅读全文