这个项目看了好久了,但是老没时间写一些分析心得。下班后想了想,事情也不能老拖着,还是得做。
![image image](https://images.cnblogs.com/cnblogs_com/fengxing/201204/201204262219118042.png)
如图所示:Weapsy由5个项目所组成,有点可惜了,没有测试的项目,说明一些小的项目老外也不写啥测试,项目能Hold住测试都免了 ^_^。
核心层Core:主要由Cookie,Cache,Mail,AppSetting等一些公用的组件。除实体层外,它被所有的项目所引用。
数据层Data:负责一些基于CodeFirst的数据初始化,仓储,实体关联。
实体层Entities:定义整个实体层。
服务层Service:定义服务,展示层调用各种服务。
展示层Web:不解释了.
--------------------------------------------------------------------------------------------------------------------------------------
Entities不依赖任何层
Core依赖的层:Entities
Data依赖的层:Core,Entities(需要EntityFramework)
Service依赖的层:Core,Entities(需要EntityFramework)
Web依赖的层:Core,Entites,Service(需要EntityFramework)当然展示层还使用了多个开源项目不具体写了,来个图:
![image image](https://images.cnblogs.com/cnblogs_com/fengxing/201204/201204262219164916.png)
项目的层次结构大体介绍了下,说些我对这个项目的想法。
项目不大,不复杂,但是作者的经验非常的丰富,对系统需求考虑的会比较多,非常值得借鉴。
学习本是一个由浅入深,由易到难的过程。而且IT学习需要非常多的时间,浪费很多时间去做一件意义不是
非常的大的事情,本身就是一个失败。
项目基于EF+CodeFirst+SQL2008,如何使用领域驱动进行开发,如何架构整个项目。虽然简单,但是透射出
很多观念。
值得学习的,最少我学习到的,以后做项目我会尽力去做:
Web中说清楚了项目的情况,每次变更的记录,第三方组件学习需要看的资料。事情不需要太复杂,做好就行了。
虽然有些介绍非常简单,但是我们可以通过版本控制去查看修改。如1.0 beta 2中可以去版本控制里面阅读具体的修改。
![image image](https://images.cnblogs.com/cnblogs_com/fengxing/201204/201204262219226133.png)
![image image](https://images.cnblogs.com/cnblogs_com/fengxing/201204/20120426221936127.png)
以Sat at 11:59的版本为例:点击7cbe8a08b97e进入变更集详细页面
![image image](https://images.cnblogs.com/cnblogs_com/fengxing/201204/201204262219448793.png)
![image image](https://images.cnblogs.com/cnblogs_com/fengxing/201204/201204262219491415.png)
看见没? edit代表了修改, View diff 链接可以查看具体的改变。
![image image](https://images.cnblogs.com/cnblogs_com/fengxing/201204/201204262219599506.png)
代码不是死看的 ,基础差的可以第一个版本看起,跟着作者的脚本一步步的进步。最最重要的有个明确的目标会比较轻松。
2012-04-26 23:04 by _风行, 194 阅读, 评论, 收藏, 编辑
好吧,这个不是我想写的,是老外逼我的,兄弟你更新项目的速度还真是快啊。。。
刚去下载了项目的最新版本,一看,哇塞,该有的都有了。。。
![image image](https://images.cnblogs.com/cnblogs_com/fengxing/201204/201204262303332316.png)
测试的项目老外也拉上了,说明后期会写测试代码。另外还多出一个WebFramework的层。虽然现在没东西,但是我相信迟早会有的。
OK,最新的项目对我现在看的项目影响不大。1.0 RC (?? 03 2012)
- Upgrade to Entity Framework 4.3.1
- Added AutoMapper custom version (by nopCommerce Team)
- Deleted AppSettings.config file
- Added missed model properties and localization resources of Plugin Definitions
- Minor changes
- Fixed some bugs
所以还是看现在版本:
Weapsy 1.0 Beta 2 - Source
Rating: No reviews yet
Downloads: 160
Change Set: 2e0bdd6ade2c
Released: Feb 28 2012
Updated: Feb 28 2012 by lucacb
Dev status: Beta ![Beta: This software is probably stable enough for use](http://i3.codeplex.com/Images/v18696/HelpIcon.gif)
随笔分类 -Weapsy
2012-06-16 14:17 by _风行, 181 visits, 网摘, 收藏, 编辑
摘要: 其实后面的内容已经没有多少了,服务层、实体层和核心层。 核心层涉及了这些概念: 1 缓 2 Cookie 3 仓储接口 4 邮件 5 任务 6 AppSetting 7 异常 8 图像处理 这层感觉想一个大杂烩,称呼其为Core 感觉不怎么好,我想AppCommon来的比较好(应用程序通用组件层)。 实体层: 这层就不介绍了,定义了概念模型。 服务层: 这层基于实...
阅读全文
2012-06-16 14:05 by _风行, 111 visits, 网摘, 收藏, 编辑
摘要: 好久没写了,N多的加班,还得学习公司业务的知识,有点小悲催。虽然有加班费,但是总归有点累,而且关于领域模型中的概念有很多的力不从心,导致好久没怎么下笔。 最近充电了下,在次开始处理前期定下的目标。 Data层: 这个层作者定义了这些内容: 1 EF数据如何初始化 2 实体属性和数据库的映射 3 实体之间的关联 4 定义仓储 5 定义上下文环境context 这个层其实应该...
阅读全文
2012-05-19 21:31 by _风行, 520 visits, 网摘, 收藏, 编辑
摘要: 很多人在做MVC3的时候问过这样的问题:我在一个表单中有几个按钮,如何提交到不同的方法。 <% Html.BeginForm("MyAction", "MyController", FormMethod.Post); %><input type="submit" value="Send" /><input type="submit" value="Cancel" /><% Html.EndFor...
阅读全文
2012-05-19 13:02 by _风行, 212 visits, 网摘, 收藏, 编辑
摘要: Weapsy的初始化比较复杂,接口和实现类使用Ninject进行映射。Model和Entity使用AtuotMapper进行转换。 还有各种安装服务,所以单独看了下。 相关代码: Weapsy\Web\Framework\InjectionModule.cs --执行注入 Weapsy\Web\Models\AutoMapperStartupTask.cs --执行...
阅读全文
2012-05-13 18:17 by _风行, 212 visits, 网摘, 收藏, 编辑
摘要: 这个部分属于Weapsy的的展示层,里面涉及到很多的概念和技术. 概念:Entity,ViewModel,Task,MappingExtension,Framework,Install,Resource,Themes,Controller等。 技术:AutoMapper,Ninject。暂时主要用到这2个。外加一个Linq to Object的查询让我感觉到Linq真的很强大。 这个Li...
阅读全文
2012-05-01 12:22 by _风行, 245 visits, 网摘, 收藏, 编辑
摘要: 简单罗列下Weapsy项目几个层,它们分别是 1 Core 核心层 2 Data 数据层 3 Entites 实体层 4 Service 服务层 5 Web层 我想通过对DDD(领域模型)的典型层次来分析这个项目,看看这个项目在架构上有啥优点,说的不好的地方别丢砖就行了- - 首先看下比较公认的3层架构(希望看了后学习上不会有太大的曲线)和DDD的层次划分。(有空我会专门写几个...
阅读全文
2012-04-26 23:04 by _风行, 195 visits, 网摘, 收藏, 编辑
摘要: 好吧,这个不是我想写的,是老外逼我的,兄弟你更新项目的速度还真是快啊。。。 刚去下载了项目的最新版本,一看,哇塞,该有的都有了。。。 测试的项目老外也拉上了,说明后期会写测试代码。另外还多出一个WebFramework的层。虽然现在没东西,但是我相信迟早会有的。 OK,最新的项目对我现在看的项目影响不大。1.0 RC (?? 03 2012) - Upgrade to Ent...
阅读全文
2012-04-26 22:20 by _风行, 225 visits, 网摘, 收藏, 编辑
摘要: 这个项目看了好久了,但是老没时间写一些分析心得。下班后想了想,事情也不能老拖着,还是得做。 如图所示:Weapsy由5个项目所组成,有点可惜了,没有测试的项目,说明一些小的项目老外也不写啥测试,项目能Hold住测试都免了 ^_^。 核心层Core:主要由Cookie,Cache,Mail,AppSetting等一些公用的组件。除实体层外,它被所有的项目所引用。 数据层Data:负责一些基...
阅读全文
2012-03-22 22:33 by _风行, 275 visits, 网摘, 收藏, 编辑
摘要: 最近在看一个基于CodeFirst-MVC3-EntityFramework的项目。 项目的地址是http://weapsy.codeplex.com/,虽然项目还没做多少,但是非常的适合学习,发起者是一个资深的软件架构师,他对EF的理解让我眼前一亮。 我会慢慢的记录下这个项目的学习心得。 第一部分: 关于一个IOC的工具,叫做Ninject.项目...
阅读全文