题外话
作为一个菜鸟,很少去设计一个软件的架构,水平太洼了,但这挡不住俺对架构的兴趣。最近在研究MVC3,园子里有人推荐nopCommerce挺不错的,正好nopCommerce是用MVC3开发的,于是下载其工程,觉得其架构设计的不错,于是要和大家一起分享一下我对该项目架构的研究。
nopCommerce简介
nopcommerce是国外的一个高质量的开源b2c网站系统,基于EntityFramework4.0和MVC3.0,使用Razor模板引擎,有很强的插件机制,包括支付配送功能都是通过插件来实现的,基于xml的多语言版本,非常灵活的语言切换功能,包括在后台都能同时编辑产品的中英文属性,非常适合做外贸,优秀超前的程序架构,性能也非常强大,自定义的产品名称和分类又有很好的seo优化。综合能力远远高于国内的一些程序架构糟糕的.net商城程序,是二次开发和大型b2c架构的首选。——节选自百度百科
(该部分内容本来自己写的,发现已有现成的,就转过来了。ps:本人很懒,如有现成的不会再去做,觉得再去做就是浪费时间)
编写本文档是为了向程序员说明nopcommerce的解决方案结构,亦是程序员开发nopcommerce的居家必备良书。首先nopcommerce的源代码很容易拿到,它是开源的,所以你可以直接到网上下载。 在你打开VS以后项目和文件夹都会完整列出来,我们建议你在看此文档的同时也打开你的VS来浏览项目和文件。
绝大多数的项目,目录和文件都顾名思义,你可以从名字就大概知道是做什么的。比如Nop.Plugin.Payments.PayPalStandard这个我都不用看项目代码就能猜到做什么的。
\Libraries\Nop.Core
Nop.Core项目包含nopcommerce的一系列核心类如缓存,事件,辅助类和业务对象(如订单和客户实体类)
\Libraries\Nop.Data
Nop.Data项目包含一系列的数据访问类和方法以从数据库或其他数据媒介读取和保存数据。它也有助于把数据访问逻辑和你的业务对象分离。 nopcommerce使用Entity Framework (EF) Code-First方法,允许你在nopcommerce代码中定义实体 (所有的核心实体类都在Nop.Core中定义),再让EF生成数据库,这就是为什么会叫Code-First。你接下来可以用LINQ来查询对象,它自己会把查询转换为SQL语句并在数据库里执行。nopcommerce拥有牛B的API让你完全定制持久映射,你可以在这儿和这儿找到Code-First的资料。
\Libraries\Nop.Services
此项目包含一系列的核心服务,业务逻辑,验证,如果有数据的话还有数据的计算方法,也就是传说中的业务访问层(BAL)
\Plugins\ 文件夹中的那些项目
Plugins是VS的解决方案文件夹,硬盘中它是在你解决方案的根目录下。由于项目在编译时的输入路径是”..\..\Presentation\Nop.Web\Plugins\{Group}.{Name}\”,这样插件的DLL会自动地放到 \Presentation\Nop.Web\Plugins\文件夹中,用来放置已部署插件。这样也能让插件包含静态文件比如CSS或JS,就不用在项目之间拷贝这些文件了。
\Presentation\Nop.Admin
Nop.Admin是一MVC项目,如果你还从没用过ASP.NET MVC,请猛击这儿有更多信息。可能你已经猜到这是表示层中的管理后台,你可以在 \Presentation\Nop.Web\Administration文件夹中找到它,此项目不能运行。
\Presentation\Nop.Web
Nop.Web也是一MVC项目,前台网店的表示层,这个才是你真正要跑起来的项目,它也是整个应用程序的起始项目。
\Presentation\Nop.Web.Framework
Nop.Web.Framework是一个表示层的类库项目,包括可以让后台和前台使用的一些共用的展示功能。
\Test\Nop.Core.Tests
Nop.Core.Tests是Nop.Core的测试项目
\Test\Nop.Data.Tests
Nop.Data.Tests是Nop.Data的测试项目
\Test\Nop.Services.Tests
Nop.Services.Tests是 Nop.Services的测试项目
\Test\Nop.Tests
Nop.Tests是一个类库,包含其它测试项目中要用的一共有类和辅助方法,此项目不包含任何测试用例。
nopCommerce架构分析系列目录
本人将从以下几个方面来进行我的nopCommerce之旅,欢迎有兴趣朋友与我交流讨论。
1、nopCommerce架构分析系列(一)nopCommerce简介
2、nopCommerce架构分析系列(二)数据Cache
3、nopCommerce架构分析系列(三)数据持久化
4、nopCommerce架构分析系列(四)数据验证
5、nopCommerce架构分析系列(五)事件设计及处理
6、nopCommerce架构分析系列(六)文件IO
7、nopCommerce架构分析系列(七)配置文件
8、nopCommerce架构分析系列(八)权限认证
9、nopCommerce架构分析系列(九)IOC容器
10、nopCommerce架构分析系列(十)Nop引擎
11、nopCommerce架构分析系列(十一)Plugin(组件化开发)
12、nopCommerce架构分析系列(十二)前端展示
13、nopCommerce架构分析系列(十三)后台管理
14、nopCommerce架构分析系列(十四)其他
15、nopCommerce架构分析系列(十五)架构总结
晕死 转自:http://www.dingsea.com/?p=552
http://www.ddpanda.com/?p=388 起码得说明一下吧!