nopCommerce架构分析系列(一)nopCommerce简介

题外话

作为一个菜鸟,很少去设计一个软件的架构,水平太洼了,但这挡不住俺对架构的兴趣。最近在研究MVC3,园子里有人推荐nopCommerce挺不错的,正好nopCommerce是用MVC3开发的,于是下载其工程,觉得其架构设计的不错,于是要和大家一起分享一下我对该项目架构的研究。

nopCommerce简介

nopcommerce是国外的一个高质量的开源b2c网站系统,基于EntityFramework4.0和MVC3.0,使用Razor模板引擎,有很强的插件机制,包括支付配送功能都是通过插件来实现的,基于xml的多语言版本,非常灵活的语言切换功能,包括在后台都能同时编辑产品的中英文属性,非常适合做外贸,优秀超前的程序架构,性能也非常强大,自定义的产品名称和分类又有很好的seo优化。综合能力远远高于国内的一些程序架构糟糕的.net商城程序,是二次开发和大型b2c架构的首选。——节选自百度百科

nopCommerce的源代码结构和架构(转)

(该部分内容本来自己写的,发现已有现成的,就转过来了。ps:本人很懒,如有现成的不会再去做,觉得再去做就是浪费时间)

编写本文档是为了向程序员说明nopcommerce的解决方案结构,亦是程序员开发nopcommerce的居家必备良书。首先nopcommerce的源代码很容易拿到,它是开源的,所以你可以直接到网上下载。 在你打开VS以后项目和文件夹都会完整列出来,我们建议你在看此文档的同时也打开你的VS来浏览项目和文件。 
nopcommerce 架构图

绝大多数的项目,目录和文件都顾名思义,你可以从名字就大概知道是做什么的。比如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 起码得说明一下吧!

04 2012 档案

 
摘要: nopcommerce是国外的一个高质量的开源b2c网站系统,基于EntityFramework4.0和MVC3.0,使用Razor模板引擎,有很强的插件机制,包括支付配送功能都是通过插件来实现的,基于xml的多语言版本,非常灵活的语言切换功能,包括在后台都能同时编辑产品的中英文属性,非常适合做外贸,优秀超前的程序架构,性能也非常强大,自定义的产品名称和分类又有很好的seo优化。综合能力远远高于国内的一些程序架构糟糕的.net商城程序,是二次开发和大型b2c架构的首选。 阅读全文
posted @  2012-04-07 13:04 顾思行 阅读(698) |  评论 (9)  编辑
摘要: 开发UI,对一个专业软件并不容易。它需要未知数据、交互式设计,可视化设计、联通性,多线程、国际化、验证、单元测试以及其他的一些东西才能完成。考虑到UI要展示开发的系统并且必须满足用户对系统风格不可预知的变更,因此它是很多应用程序最脆弱的地方。 有很多的设计模式可以帮助解决UI不断变更这头难缠的野兽,但是恰当的分离和描述多个关注点可能很困难。模式越复杂,之后用到的捷径越可能破坏之前正确的努力。 这并不总是设计模式的错。有时使用要写很多的代码复杂设计模式,这是因为我们使用的UI平台并不适合简单是设计模式。UI平台需要做的是很容易使用简单的,久经考验的,开发者认识的设计模式构建UI。庆幸的是,WPF就是这样一个平台。 随着是使用WPF开发的比例不断升高,WPF社区发展了自己的模式与实践生态圈子。在本文,我将讨论一些设计与实现客户端应用程序的WPF最佳实践。利用WPF和MVVM设计模式衔接的一些核心功能,我将通过一个例子介绍,用“正确”的方式构建一个WPF程序是多么的简单。 阅读全文
posted @  2012-04-06 13:51 顾思行 阅读(1177) |  评论 (18)  编辑

你可能感兴趣的:(com)