我编写的很多应用都是基于这个架构的,我的核心出发点就是以开发效率为先。
一. 数据库: SQL2005Express
主要是部署方便,Copy过去就行了。
当然如果要和原系统数据集成,只能看原来用的是啥样的DB了。
二. 持久化层: Castle ActiveRecord
简单易用,大大提高了开发的效率。
不过有这样一些主要的不足之处:
【1】ActiveRecord模式混杂了持久化逻辑和业务逻辑,有些丑陋。
【2】性能。
【3】SQL语句透明化了,没法进行细粒度控制。
【1】,【2】对于小规模应用基本不考虑了,如果在【3】上边有问题的话就没辙了,可以考虑iBatis.net
Btw: 感谢Terrylee的Castle系列文章,从中又学到了好多知识,关于AR的详细信息与评估,我就不班门弄斧了,看Terrylee的相关文章吧:
( http://terrylee.cnblogs.com/archive/2006/04/28/387503.html )
三. 业务层: 无,或者用Transaction Script模式
如果业务层真的很薄(只有一些CRUD操作),那就直接在页面的Action中调用持久化层就行了,没有必要在业务层再进行一次包装。
否则使用Transaction Script模式就可以了(又一个丑陋的东西,OP的产物),关于Transaction Script模式可以参考Fowler的PoEAA:
( http://martinfowler.com/eaaCatalog/index.html )
四. 表现层: Asp.net配合MagicAjax.net
表现层就没啥可说得了,多使用Asp.net2.0的那些新特性就可以了。
至于使用MagicAjax.net是因为简单易用(版本号现在才到0.3,有点怕怕~~),其中还是遇到了很多小问题的,我的解决方法就是:那就不用Ajax了,-_____- 呵呵。
关于小规模应用的架构,基本就这样了,希望能给和我开发类似应用的朋友们一些参考,其中肯定有很多不当或者错误之处,欢迎大家指正。