发布NGuestBook的动机说明
大约在半年前,我在博客上发表了一个系列文章:《基于.NET平台的分层架构实战》。当时在讲解过程中用到了一个叫NGuestBook的案例,在那以后,有很多朋友留言或发E-mail希望能得到NGuestBook的完整源代码,以便对照文章研究学习。但是,在当时NGuestBook只是我虚拟的一个案例,并没有成型的系统和完整的源代码。
但是后来一直有很多朋友询问这个事情,所以我觉得,将那个NGuestBook做出来还是很有必要的,所以,我花了两天的时间大约做出了这个NGuestBook,现在把它发布出来,希望能给大家一些帮助。
这个NGuestBook与文章中案例的联系与区别
虽然这个留言本系统与那个系列文章中的NGuestBook同名,但是就具体实现来说,有一些不同。虽然如此,“分层架构”这个核心还是一样的,所以,这个Demo完全可以和那个文章系列配套使用,因为其核心架构思想、方式基本一致,只是具体实现有了一些差别。
NGuestBook功能概览
NGuestBook是一个留言本系统,主要实现了以下功能:
1.发布留言,浏览留言
2.管理员的登录、登出
3.管理员对留言进行审核、删除、回复
下面给出几幅系统运行截图:
NGuestBook总体架构说明
1.整体采用三层架构:数据访问层、业务逻辑层、表示层
2.数据访问层使用Linq to Sql,XML,及SQL语句方式分别实现一个,在这个发布版本中,只有Linq to Sql方式的数据访问层可以使用,另外两个留出扩展。
3.业务逻辑层通过接口耦合数据访问层,全局采用Abstract Factory+反射机制+缓存机制实现依赖注入功能。
4.表示层使用ASP.NET MVC实现,与业务逻辑层直接耦合。
工程说明:
NGuestBook.BusinessComponent:业务逻辑组件
NGuestBook.Entities:实体类
NGuestBook.Factories:依赖注入组件
NGuestBook.Interfaces:接口组件
NGuestBook.LinqDataComponent:使用Linq to Sql实现的数据访问组件
NGuestBook.SQLDataComponent:使用SQL实现的数据访问组件
NGuestBook.Utilities:工具组件
NGuestBook.Web:表示层
NGuestBook.XMLDataComponent:使用XML实现的数据访问组件
特别说明
1.数据库文件在/NGuestBook.Web/Data/SQLServer2005下。
2.这个系统还不太完善,只为了突出架构特征,而一些细节像分页、验证码等功能没有加入。
3.这个系统没有加入Ajax元素。
4.这个系统的目的是交流学习的Demo,并不是真正要投入使用,如果真要做一个留言本,完全没有必要用这么复杂的架构,这里只是为了突出架构的方式。所以请不要在留言中表达“做个留言本没必要如此复杂”或“留言本我一个小时就能做出来”之类的意思。
版权声明
本系统和源代码部分或全部可以任意拷贝、传播或用于自己的系统中,但不包括用于商业用途。
本系统中自由传播的成分仅仅包括代码,而其中一些原创的思想或模式(包括但不限於“数据验证模式”,“基于ASP.NET MVC的回传模型重组模式”等)等一些理论性内容已经纳入本人的论文选题内,所以不允许将本系统中原创的思想或模式撰写成论文,一经发现将追究法律责任。
开发/运行环境
Windows XP SP2 中文版
Microsoft .NET framework 3.5 SP1
Microsoft Visual Studio 2008 SP1
Microsoft ASP.NET MVC RC
Microsoft SQLServer2005
配置说明
连接字符串在/NGuestBook.LinqDataComponent/app.config中,请根据具体情况自行修改。
管理员的登录名和密码在/NGuestBook.Web/Web.config中,<appSettings>节点下的"AdminName"和"AdminPassword",默认均为"admin"。需要可以自行修改。