一起谈.NET技术,发布NGuestBook(一个基于.NET平台的分层架构留言本小系统)

  发布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"。需要可以自行修改。

时间: 2024-10-22 00:31:43

一起谈.NET技术,发布NGuestBook(一个基于.NET平台的分层架构留言本小系统)的相关文章

发布NGuestBook(一个基于.NET平台的分层架构留言本小系统)

发布NGuestBook的动机说明      大约在半年前,我在博客上发表了一个系列文章:<基于.NET平台的分层架构实战>.当时在讲解过程中用到了一个叫NGuestBook的案例,在那以后,有很多朋友留言或发E-mail希望能得到NGuestBook的完整源代码,以便对照文章研究学习.但是,在当时NGuestBook只是我虚拟的一个案例,并没有成型的系统和完整的源代码. 但是后来一直有很多朋友询问这个事情,所以我觉得,将那个NGuestBook做出来还是很有必要的,所以,我花了两天的时间大约

基于.NET平台的分层架构实战(一)—综述

通过浏览博客园的文章发现,很多朋友对分层架构特别感兴趣,刚好我刚做完 的毕业设计就是专门研究.NET平台上分层架构的(题目叫"基于.NET平台的 分层架构与设计模式应用研究").通过做这篇论文,我对分层架构有了一 定的了解,所以,就萌发了想写一个文章系列,详述一下分层架构.然而,论文 的理论性太强,不适合在网上发布,尤其不适合初学者理解,所以,我想在这个 文章系列中,少讲理论,而是通过做一个完整的案例来讨论分层架构的基本方法 ,这样会直观很多.希望在这个文章系列的写作过程中,能和朋友们

基于.NET平台的分层架构实战(九)—数据访问层的第三种实现:基于NBear框架

基于.NET平台的分层架构实战(九)-数据访问层的第三种实现:基于NBear框架的ORM实现 前面的文章讨论了使用SQL语句和存储过程两种数据访问层的实现方式,这一篇里,将讨论使用ORM方式实现数据访问层的方法. 对象-关系映射(Object/Relation Mapping,简称ORM),是随着面向对象的软件开发方法发展而产生的.面向对象的开发方法是当今企业级应用开发环境中的主流开发方法,关系数据库是企业级应用环境中永久存放数据的主流数据存储系统.对象和关系数据是业务实体的两种表现形式,业务实

基于.NET平台的分层架构实战(七-外一篇)—对数据访问层第一种实现(Access+

基于.NET平台的分层架构实战(七-外一篇)-对数据访问层第一种实现(Access+SQL)的重构 昨天的文章基于.NET平台的分层架构实战(七)--数据访问层的第一种实现:Access+SQL发布后,很多朋友对我的程序提出了意见和建议,在这里先谢谢你们!!!尤其是金色海洋(jyk),对我的程序提出了很多建设性的意见. 我大体总结了一下,昨天程序的主要缺点有: 1.Connection对象没有关闭 2.DataReader对象没有关闭 3.相似代码太多,造成代码冗余. 其中第一点问题,目前还没有

基于.NET平台的分层架构实战(八)—数据访问层的第二种实现:SQLServer+存储

基于.NET平台的分层架构实战(八)-数据访问层的第二种实现:SQLServer+存储过程 在上一篇中,讨论了使用SQL构建数据访问层的方法,并且针对的是Access数据库.而这一篇中,将要创建一个针对SQLServer数据库的数据访问层,并且配合存储过程实现. 曾经有朋友问我使用SQL和存储过程在效率上的差别,惭愧的是我对这方面没有研究,也没有实际做过测试.通过查阅资料,发现在一般情况下,存储过程的效率由于使用SQL,但是也不绝对,也发现有的朋友测试时发现在特定情况下SQL的效率优于存储过程,

基于.NET平台的分层架构实战

基于.NET平台的分层架构实战(十一)-表示层的实现 基于.NET平台的分层架构实战(十)-业务逻辑层的实现 基于.NET平台的分层架构实战(九)-数据访问层的第三种实现:基 基于.NET平台的分层架构实战(八)-数据访问层的第二种实现:SQ 基于.NET平台的分层架构实战(七-外一篇)-对数据访问层第一种 基于.NET平台的分层架构实战(七)-数据访问层的第一种实现:Acc 基于.NET平台的分层架构实战(六)-依赖注入机制及IoC的设计 基于.NET平台的分层架构实战(五)-接口的设计与实现

基于.NET平台的分层架构实战(五)—接口的设计与实现

接下来,将进行接口的设计.这里包括数据访问层接口和业务逻辑层接口.在 分层架构中,接口扮演着非常重要的角色,它不但直接决定了各层中的各个操作 类需要实现何种操作,而且它明确了各个层次的职责.接口也是系统实现依赖注 入机制不可缺少的部分. 本项目的接口设计将按如下顺序进行: 1.首先由前文的需求分析,列出主要的UI部分. 2.分析各个UI需 要什么业务逻辑支持,从而确定业务逻辑层接口. 3.分析业务逻辑层接口 需要何种数据访问操作,从而确定数据访问层接口. 另外,为保证完全的 面向对象特性,接口之

基于.NET平台的分层架构实战(六)—依赖注入机制及IoC的设计

我们设计的分层架构,层与层之间应该是松散耦合的.因为是单向单一调用, 所以,这里的"松散耦合"实际是指上层类不能具体依赖于下层类, 而应该依赖于下层提供的一个接口.这样,上层类不能直接实例化下层中的类, 而只持有接口,至于接口所指变量最终究竟是哪一个类,则由依赖注入机制决定 . 之所以这样做,是为了实现层与层之间的"可替换"式设计 ,例如,现在需要换一种方式实现数据访问层,只要这个实现遵循了前面定义的 数据访问层接口,业务逻辑层和表示层不需要做任何改动,只需要改一下

基于.NET平台的分层架构实战(三)—架构概要设计

架构基本原则: 这里,将描述一些在这个架构设计中的基本原则,其 中很多都是经典的设计原则,不过针对分层架构的特点,用我自己的语言进行了 描述.其中也有我自己提出的原则. 逐层调用原则及单向调用原则 现在约定将N层架构的各层依次编号为1.2.-.K.-.N -1.N,其中层的编号越大,则越处在上层.那么,我们设计的架构应该满足以下 两个原则: 1.第K(1<K<=N)层只准依赖第K-1层,而不可依赖其他 底层. 2.如果P层依赖Q层,则P的编号一定大于Q. 其中第一个原 则,保证了依赖的逐层性,