发布NGuestBook(一个基于.NET平台的分层架构留言本小系统)
2009-02-19 23:54 T2噬菌体 阅读(9377) 评论(214) 编辑 收藏 举报发布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,并不是真正要投入使用,如果真要做一个留言本,完全没有必要用这么复杂的架构,这里只是为了突出架构的方式。所以请不要在留言中表达“做个留言本没必要如此复杂”或“留言本我一个小时就能做出来”之类的意思。
版权声明
本系统和源代码部分或全部可以任意拷贝、传播或用于自己的系统中,但不包括用于商业用途。
开发/运行环境
Windows XP SP2 中文版
Microsoft .NET framework 3.5 SP1
Microsoft Visual Studio 2008 SP1
Microsoft ASP.NET MVC RC
Microsoft SQLServer2005
NGuestBook下载
配置说明
连接字符串在/NGuestBook.LinqDataComponent/app.config中,请根据具体情况自行修改。
管理员的登录名和密码在/NGuestBook.Web/Web.config中,<appSettings>节点下的"AdminName"和"AdminPassword",默认均为"admin"。需要可以自行修改。

本文基于署名-非商业性使用 3.0许可协议发布,欢迎转载,演绎,但是必须保留本文的署名张洋(包含链接),且不得用于商业目的。如您有任何疑问或者授权方面的协商,请与我联系。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述