Spiga

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

2009-02-19 23:54 by T2噬菌体, 7374 visits, 收藏, 编辑

发布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

配置说明

     连接字符串在/NGuestBook.LinqDataComponent/app.config中,请根据具体情况自行修改。
     管理员的登录名和密码在/NGuestBook.Web/Web.config中,<appSettings>节点下的"AdminName"和"AdminPassword",默认均为"admin"。需要可以自行修改。

Creative Commons License

本文基于署名-非商业性使用 3.0许可协议发布,欢迎转载,演绎,但是必须保留本文的署名张洋(包含链接),且不得用于商业目的。如您有任何疑问或者授权方面的协商,请与我联系

Add your comment

214 条回复

    评论共3页: 上一页 1 2 3 
  1. #115楼 jowo      2009-02-20 14:17
    zjw2004112@163.com
     回复 引用 查看   
  2. #116楼 rxiao[未注册用户]2009-02-20 14:20
    顺路求一份,非常感谢,email:rxiao@126.com
     回复 引用   
  3. #117楼 海洋      2009-02-20 14:20
    发一份看看
    jetaimefj@163.com
     回复 引用 查看   
  4. #118楼 yanmenguan[未注册用户]2009-02-20 14:22
    waryu100@hotmail.com

    我也要一份,谢谢!
     回复 引用   
  5. #119楼 zxfzxf[未注册用户]2009-02-20 14:31
    我也要一份,谢谢!267456602@qq.com
     回复 引用   
  6. #120楼 平静中的疯狂      2009-02-20 14:44
    zrc000@gmail.com
    谢啦,学习一下框架搭建
     回复 引用 查看   
  7. #121楼 ddda      2009-02-20 14:44
    dikenlinzi@163.com,谢谢,学习一下
     回复 引用 查看   
  8. #122楼 站在天空下的猪      2009-02-20 14:54
    6367213@qq.com谢谢,拿来好好学习,正需要
     回复 引用 查看   
  9. #123楼 document[未注册用户]2009-02-20 14:54
    qhaccp1125@126.com

    感谢楼主,我也学习一下
     回复 引用   
  10. #124楼 qbll[未注册用户]2009-02-20 15:01
    发我一份,学习一下,qblll@126.com
    谢谢!!
     回复 引用   
  11. #125楼 2lei[未注册用户]2009-02-20 15:08
    也求一份学习一下。
    油箱博主应该可以看到。谢谢。
     回复 引用   
  12. #126楼 JasonLin      2009-02-20 15:15
    发一份,谢谢楼主!
     回复 引用 查看   
  13. #127楼 maomaocatone[未注册用户]2009-02-20 15:25
    多谢楼主,学习一下,感谢
     回复 引用   
  14. #128楼 huhuniit[未注册用户]2009-02-20 15:29
    求一份,学习。谢谢楼主。
     回复 引用   
  15. #129楼[楼主] T2噬菌体      2009-02-20 15:31
    以上朋友邮件已发出,请查收
     回复 引用 查看   
  16. #130楼 张跃      2009-02-20 15:34
    还不能上传么,那也给我一份了,谢谢哈
    zyue225#qq.com
     回复 引用 查看   
  17. #131楼 笨五木      2009-02-20 15:54
    求一份,来学习用
    谢谢
    forestking500@126.com
     回复 引用 查看   
  18. #132楼 szh      2009-02-20 15:58
    谢谢

    shenzhihao163@163.com
     回复 引用 查看   
  19. #133楼 byxxw[未注册用户]2009-02-20 16:07
    求一份 shifenzhenzhong@163.com
     回复 引用   
  20. #134楼 wilensky      2009-02-20 16:18
    感谢博主,正需要这样的构架系统例子,请发给我一份,谢谢。devngm@163.com
     回复 引用 查看   
  21. #135楼 justfortest[未注册用户]2009-02-20 16:23
    myhouse_ku@163.com 学习一下
     回复 引用   
  22. #136楼 Darcy      2009-02-20 16:33
    eta1028@126.com
    谢谢。
     回复 引用 查看   
  23. #137楼 lsjwzh2009-02-20 16:34
    楼主大哥,辛苦了.我与前面的不同,主要是想看看您咋用mvc,lsjwzh@163.com
     回复 引用   
  24. #138楼 大眼蛤蟆      2009-02-20 16:41
    chuyi_521@163.com
    谢谢,
     回复 引用 查看   
  25. #139楼 zero_blog2009-02-20 16:54
    Thank You
     回复 引用   
  26. #140楼 阿土仔1[未注册用户]2009-02-20 17:11
    正在学习ASP.NET MVC,关注下代码,谢谢!
     回复 引用   
  27. #141楼 Chris_Ys2009-02-20 17:25
    请发一份给我,谢谢
    yesu326.cnblogs[at]gmail.com
    不好意思,为了访垃圾邮件...
     回复 引用   
  28. #142楼 jas gao      2009-02-20 17:28
    jas_gao@msn.com

    谢谢
     回复 引用 查看   
  29. #143楼 王相      2009-02-20 17:30
    give me,给我也来一份!
     回复 引用 查看   
  30. #144楼 ff[未注册用户]2009-02-20 17:32
    master@duel.la
    我也要
     回复 引用   
  31. #145楼 AlexLiu      2009-02-20 17:33
    rainspt@hotmail.com

    Thx.
     回复 引用 查看   
  32. #146楼 yangjunwlx[未注册用户]2009-02-20 17:39
    利用优秀的源码学习还是很重要的。发我一份,谢谢了。
    yangjunwl@foxmail.com
     回复 引用   
  33. #147楼 hebin[未注册用户]2009-02-20 17:44
    麻烦给我发一份hebin@live.com
    谢谢,比较关注你这系列文章
     回复 引用   
  34. #148楼 姜敏      2009-02-20 17:51
    麻烦给我发一份
    jiangmin168168@hotmail.com
     回复 引用 查看   
  35. #149楼[楼主] T2噬菌体      2009-02-20 18:10
    以上朋友邮件已发出,请注意查收
     回复 引用 查看   
  36. #150楼 ilovedotnet      2009-02-20 18:27
    iamlipeng@126.com
    学习一下,谢谢!
     回复 引用 查看   
  37. #151楼 春风2009[未注册用户]2009-02-20 18:50
    nichunfeng@gmail.com
     回复 引用   
  38. #152楼 peak5200[未注册用户]2009-02-20 19:12
    谢谢
    li6749220@163.com
     回复 引用   
  39. #153楼 happy girl[未注册用户]2009-02-20 19:35
    这么多人,你真的可以给我们一份吗?那真的辛苦你了
    zhouxiao4619@qq.com
    thank you
     回复 引用   
  40. #154楼 疯子阿飞      2009-02-20 19:37
    xiarugu@163.com

    我也要一份,期待ing....
     回复 引用 查看   
  41. #155楼 小狼壮壮      2009-02-20 19:45
    感谢分享,学习~

    iiduce@163.com
     回复 引用 查看   
  42. #156楼 大炳      2009-02-20 20:01
    来学习下,谢谢
    dbr624@163.com
     回复 引用 查看   
  43. #157楼 airwolf2026      2009-02-20 20:42

    我汗.155楼了.还没有上传成功哇哈哈....

     回复 引用 查看   
  44. #158楼 浪子1111[未注册用户]2009-02-20 20:46
    呵呵 辛苦了
     回复 引用   
  45. #159楼[楼主] T2噬菌体      2009-02-20 20:52
    @airwolf2026
    我也郁闷了。。。一上传文件就弹出一个框,说upload interrupt...什么的,还有什么,好像是说http不响应,还有异常堆栈跟踪什么的,你知道是怎么回事吗?今天试了N次了
     回复 引用 查看   
  46. #160楼 Jeffrey Zhao      2009-02-20 21:03
    上传到skydrive这种公开的地方吧
     回复 引用 查看   
  47. #161楼[楼主] T2噬菌体      2009-02-20 21:29
    @Jeffrey Zhao
    好的,还没听说过skydrive呢,我去看一下
     回复 引用 查看   
  48. #162楼 daconglee      2009-02-20 21:39
    dacong132@yahoo.com.cn
     回复 引用 查看   
  49. #163楼[楼主] T2噬菌体      2009-02-20 21:49
    @Jeffrey Zhao
    已经搞定了,呵呵。真是孤陋寡闻啊。。。居然不知道有这么个好东西,以后有地方放文件了
     回复 引用 查看   
  50. #164楼 Microle[未注册用户]2009-02-21 10:16
    microle.dong@gmail.com
    谢谢
     回复 引用   
  51. #165楼 林松斌      2009-02-22 08:29
    410728115@qq.com
    谢谢
     回复 引用 查看   
  52. #166楼[楼主] T2噬菌体      2009-02-22 21:14
    以上朋友邮件已发出,请查收
     回复 引用 查看   
  53. #167楼 BainWong      2009-02-23 08:14
    楼主的照貌似是在烟台汽车站对面的米线馆拍的?-_-
     回复 引用 查看   
  54. #168楼[楼主] T2噬菌体      2009-02-23 10:56
    @BainWong
    。。。-_-|||,是烟大附近的熊老头川菜馆。去年十月一回烟台玩时拍的
     回复 引用 查看   
  55. #169楼 站在天空下的猪      2009-02-23 12:04
    怎么提示web无法加载
    vs08sp1
     回复 引用 查看   
  56. #170楼[楼主] T2噬菌体      2009-02-23 12:58
    @站在天空下的猪
    你这样说我也不知道问题所在,可以说详细一点吗
     回复 引用 查看   
  57. #171楼 苯猫2009-02-28 09:40
    找了好久 学习下
    bhc_cw111@163.com
    谢谢!
     回复 引用   
  58. #172楼 苯猫2009-02-28 09:40
    找了好久 学习下
    谢谢!
    bhc_cw111@163.com
     回复 引用   
  59. #173楼 MIDI      2009-03-03 09:23
    学习N层,PetShop是最经典的。
     回复 引用 查看   
  60. #174楼 whtydn[未注册用户]2009-03-05 14:10
    请发给我一份,谢谢
     回复 引用   
  61. #175楼 whtydn[未注册用户]2009-03-05 14:11
    whtydn@qq.com
    请发一份给我,谢谢
     回复 引用   
  62. #176楼 niit_zc2009-03-11 10:38
    nbear的相关语法好像很难找
    比如Gateway的各种方法,如form,select等,园子上的教材中都没有讲
    博主有没有,有的话能不能发我:niit_zc@tom.com 谢谢!
     回复 引用   
  63. #177楼[楼主] T2噬菌体      2009-03-11 15:49
    @niit_zc
    NBear没有太好的参考资料,我们当时也是一边摸索一边做的。
    其实,现在建议使用Linq to sql或Entity Framework去做ORM,个人感觉比NBear好用,且功能不差,资料也多。
     回复 引用 查看   
  64. #178楼 lin35[未注册用户]2009-03-18 12:22
    你提供的下载地址下不了,能否给我发一份?
    lin_35@yahoo.cn
    谢谢楼主了!
     回复 引用   
  65. #179楼 困了不睡[未注册用户]2009-03-26 14:06
    给份给我谢谢
    taomaintao@163.com

    网上的下载包已经损坏呀,楼主
     回复 引用   
  66. #180楼[楼主] T2噬菌体      2009-03-27 00:46
    @困了不睡
    已发出。网上的压缩包没有坏,呵呵
     回复 引用 查看   
  67. #181楼 hywood[未注册用户]2009-03-31 09:50
    楼主这十多篇文章下来,有条不紊,思维严谨,足见在软件框架设计上的造诣之深入。
     回复 引用   
  68. #182楼 hywood[未注册用户]2009-03-31 09:58
    网上压缩包损坏了,请博主发一份给我:fjnu.jxd.111@gmail.com
     回复 引用   
  69. #183楼[楼主] T2噬菌体      2009-03-31 15:08
    @hywood
    已发出
     回复 引用 查看   
  70. #184楼 qientie[未注册用户]2009-04-15 09:28
    楼主能给我一份吗?多谢了
    e_feiqi@yahoo.com.cn
     回复 引用   
  71. #185楼 mosky[未注册用户]2009-04-15 13:23
    楼主,能否也给偶发一份?先谢了。
    suifeng123@163.com
     回复 引用   
  72. #186楼[楼主] T2噬菌体      2009-04-16 13:45
    以上两位朋友的邮件已发出,请查收
     回复 引用 查看   
  73. #187楼 6ysnow[未注册用户]2009-04-22 16:29
    很好的例子,也很好理解,也能顺利的运行,谢谢!!!
     回复 引用   
  74. #188楼 dfgf[未注册用户]2009-05-06 10:29
    数据库呢???
     回复 引用   
  75. #189楼 haven242009-05-31 22:23
    你好,你太有才了!我已下载你的源代码,可是在导入时“NGuestBook.Web.csproj”导入不了,能帮忙解决下!谢谢你咯
     回复 引用   
  76. #190楼[楼主] EricZhang(T2噬菌体)      2009-05-31 22:47
    @haven24
    可能是平台版本问题。这个程序的运行,需要.NET Framework3.5 SP1,并且加装ASP.NET MVC 1.0正式版,另外IDE需要VS2008 SP1。你看一下你的平台是否符合要求
     回复 引用 查看   
  77. #191楼 学习的脚步      2009-06-24 10:33
    楼主能给我一份吗?谢谢!很想学习一下
     回复 引用 查看   
  78. #192楼 119273550[未注册用户]2009-07-03 09:14
    楼主,很想看看你的源代码,学习一下,谢谢。。。
    lxy_10@tom.com
     回复 引用   
  79. #193楼 peijian      2009-07-03 19:49
    楼主,很想看看你的源代码,学习一下,谢谢。。。
     回复 引用 查看   
  80. #194楼 yangwg[未注册用户]2009-07-09 17:26
    楼主,好崇拜你
    给我一份吧 hbtmdxywg@126.com 谢谢!!!!
     回复 引用   
  81. #195楼 轻松C#      2009-09-08 16:56
    楼主,学习一下
    给我一份 seanxuan6@hotmail.com 谢谢!!!!

     回复 引用 查看   
  82. #196楼 cherying[未注册用户]2009-09-14 18:04
    楼主我正在学习linq,我也想看看你的架构
    请发我一份 cheryingpeng@hotmail.com
    谢谢啊!~
     回复 引用   
  83. #197楼 bigone      2009-09-14 23:32
    楼主大人,小弟也在学习.net中,还是敲门呢,呵呵,有空的话也给小弟发一份,上面的链接下载有问题. <lyroct@126.com>
    不胜感激.谢谢
     回复 引用 查看   
  84. #198楼 衲搁浅、旳羙      2009-09-26 15:19
    谢谢您,请给我发一份,感激不尽
    邮箱 love-silence@163.com
     回复 引用 查看   
  85. #199楼 东方神韵      2009-09-27 09:47
    可惜了,=我下载的时候文件已经被破坏了.rar文件不能解压
    qghboy@163.com
     回复 引用 查看   
  86. #200楼 Mr雨      2009-10-19 17:54
    280954113@qq.com
    谁有 发一份被,谢谢了~~~~~
     回复 引用 查看   
  87. #201楼 show_show      2009-11-12 14:08
    289596180@qq.com

    谢谢了 楼主麻烦您发一份!
     回复 引用 查看   
  88. #202楼 wwds[未注册用户]2009-12-15 22:06
    请发一分给我。十分感谢!
     回复 引用   
  89. #203楼 wwds[未注册用户]2009-12-15 22:06
    wweeidong@163.com

    请发一份给我。十分感谢!
     回复 引用   
  90. #204楼 codecloud[未注册用户]2009-12-17 15:46
    博主有空吗,给我Email一份你的源码

    wknight_it@163.com
     回复 引用   
  91. #205楼 海岸线      2010-01-08 16:02
    楼主你好,能不能给我发了份儿来,下载来的这个版本有问题
    406014865@qq.com 谢谢
     回复 引用 查看   
  92. #206楼 BloodyAngel      2010-01-22 16:12
    看来,PETSHOP的“毒害效果”不浅啊……
     回复 引用 查看   
  93. #207楼 飞翔的狮子      2010-02-06 18:29
    原来下载了文件有问题,现在链接好了啊,谢谢楼主啦 :)
     回复 引用 查看   
  94. #208楼 不要边城      2010-05-26 16:39
    你好·~
    我想运行下你的这个应用程序
    但是出现以下错误
    "错误 1 在应用程序级别之外使用注册为 allowDefinition='MachineToApplication' 的节是错误的。如果在 IIS 中没有将虚拟目录配置为应用程序,则可能导致此错误。 E:\D\大三2\W.H.G-Fly队\3 系统实现\NGuestBook\NGuestBook.Web\Web.config 56
    "

    上网找了下原因,还是没有解决·
    想请教楼主~~谢谢·
     回复 引用 查看   
  95. #209楼 风雨者2      2010-08-18 10:28
    如何写一个将LinqToSQL专用实体类转换为通用实体类的通用方法,不用每个表都写几个转换方法?
     回复 引用 查看   
  96. #210楼 明天陪你去看海      2010-08-27 21:33
    楼主的文章真的写的很好,对我们这些初学者很有用,希望楼主多写,持续关注
     回复 引用 查看   
  97. #211楼 shy [未注册用户]2010-12-25 00:08
    lz给我发一份吧 多谢了
     回复 引用   
  98. #212楼 IntPtr.C      2010-12-29 17:08
    这么多年了,不知道还要不要的到~~

    如果看到就给我也发一份咯。。谢谢了~

    terry_012@163.com
     回复 引用 查看   
  99. #213楼[楼主] EricZhang(T2噬菌体)      2010-12-30 17:32
    @IntPtr.C
    已经重新上传了,你可以在本页面下载
     回复 引用 查看   
  100. #214楼 IntPtr.C      2011-01-10 09:49
    @EricZhang(T2噬菌体)
    3q so much
     回复 引用 查看   
  101. 评论共3页: 上一页 1 2 3 
发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 1394393 cwoWsHJGqig=