Weapsy 分析(一)网站架构

这个项目看了好久了,但是老没时间写一些分析心得。下班后想了想,事情也不能老拖着,还是得做。

如图所示: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)当然展示层还使用了多个开源项目不具体写了,来个图:

项目的层次结构大体介绍了下,说些我对这个项目的想法。

项目不大,不复杂,但是作者的经验非常的丰富,对系统需求考虑的会比较多,非常值得借鉴。

学习本是一个由浅入深,由易到难的过程。而且IT学习需要非常多的时间,浪费很多时间去做一件意义不是

非常的大的事情,本身就是一个失败。

项目基于EF+CodeFirst+SQL2008,如何使用领域驱动进行开发,如何架构整个项目。虽然简单,但是透射出

很多观念。

值得学习的,最少我学习到的,以后做项目我会尽力去做:

Web中说清楚了项目的情况,每次变更的记录,第三方组件学习需要看的资料。事情不需要太复杂,做好就行了。

虽然有些介绍非常简单,但是我们可以通过版本控制去查看修改。如1.0 beta 2中可以去版本控制里面阅读具体的修改。

以Sat at 11:59的版本为例:点击7cbe8a08b97e进入变更集详细页面

看见没? edit代表了修改, View  diff 链接可以查看具体的改变。

代码不是死看的 ,基础差的可以第一个版本看起,跟着作者的脚本一步步的进步。最最重要的有个明确的目标会比较轻松。

Weapsy 分析(一)网站架构序续

2012-04-26 23:04 by _风行, 194 阅读, 0 评论, 收藏编辑

好吧,这个不是我想写的,是老外逼我的,兄弟你更新项目的速度还真是快啊。。。

刚去下载了项目的最新版本,一看,哇塞,该有的都有了。。。

测试的项目老外也拉上了,说明后期会写测试代码。另外还多出一个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 

随笔分类 -Weapsy

Weapsy分析终

2012-06-16 14:17 by _风行, 181 visits, 网摘收藏编辑

摘要: 其实后面的内容已经没有多少了,服务层、实体层和核心层。 核心层涉及了这些概念: 1 缓 2 Cookie 3 仓储接口 4 邮件 5 任务 6 AppSetting 7 异常 8 图像处理 这层感觉想一个大杂烩,称呼其为Core 感觉不怎么好,我想AppCommon来的比较好(应用程序通用组件层)。 实体层: 这层就不介绍了,定义了概念模型。 服务层: 这层基于实...阅读全文

Weapsy分析四(Data层)

2012-06-16 14:05 by _风行, 111 visits, 网摘收藏编辑

摘要: 好久没写了,N多的加班,还得学习公司业务的知识,有点小悲催。虽然有加班费,但是总归有点累,而且关于领域模型中的概念有很多的力不从心,导致好久没怎么下笔。 最近充电了下,在次开始处理前期定下的目标。 Data层: 这个层作者定义了这些内容: 1 EF数据如何初始化 2 实体属性和数据库的映射 3 实体之间的关联 4 定义仓储 5 定义上下文环境context 这个层其实应该...阅读全文

Weapsy 分析三(Web层) 3 关于MVC3中一个表单多个按钮的处理方案

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...阅读全文

Weapsy 分析三(Web层) 2 初始化

2012-05-19 13:02 by _风行, 212 visits, 网摘收藏编辑

摘要: Weapsy的初始化比较复杂,接口和实现类使用Ninject进行映射。Model和Entity使用AtuotMapper进行转换。 还有各种安装服务,所以单独看了下。 相关代码: Weapsy\Web\Framework\InjectionModule.cs --执行注入 Weapsy\Web\Models\AutoMapperStartupTask.cs --执行...阅读全文

Weapsy 分析三(Web层) 1 Global.asax

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...阅读全文

Weapsy分析(二)项目分层

2012-05-01 12:22 by _风行, 245 visits, 网摘收藏编辑

摘要: 简单罗列下Weapsy项目几个层,它们分别是 1 Core 核心层 2 Data 数据层 3 Entites 实体层 4 Service 服务层 5 Web层 我想通过对DDD(领域模型)的典型层次来分析这个项目,看看这个项目在架构上有啥优点,说的不好的地方别丢砖就行了- - 首先看下比较公认的3层架构(希望看了后学习上不会有太大的曲线)和DDD的层次划分。(有空我会专门写几个...阅读全文

Weapsy 分析(一)网站架构序续

2012-04-26 23:04 by _风行, 195 visits, 网摘收藏编辑

摘要: 好吧,这个不是我想写的,是老外逼我的,兄弟你更新项目的速度还真是快啊。。。 刚去下载了项目的最新版本,一看,哇塞,该有的都有了。。。 测试的项目老外也拉上了,说明后期会写测试代码。另外还多出一个WebFramework的层。虽然现在没东西,但是我相信迟早会有的。 OK,最新的项目对我现在看的项目影响不大。1.0 RC (?? 03 2012) - Upgrade to Ent...阅读全文

Weapsy 分析(一)网站架构

2012-04-26 22:20 by _风行, 225 visits, 网摘收藏编辑

摘要: 这个项目看了好久了,但是老没时间写一些分析心得。下班后想了想,事情也不能老拖着,还是得做。 如图所示:Weapsy由5个项目所组成,有点可惜了,没有测试的项目,说明一些小的项目老外也不写啥测试,项目能Hold住测试都免了 ^_^。 核心层Core:主要由Cookie,Cache,Mail,AppSetting等一些公用的组件。除实体层外,它被所有的项目所引用。 数据层Data:负责一些基...阅读全文

Weapsy学习记录

2012-03-22 22:33 by _风行, 275 visits, 网摘收藏编辑

摘要: 最近在看一个基于CodeFirst-MVC3-EntityFramework的项目。 项目的地址是http://weapsy.codeplex.com/,虽然项目还没做多少,但是非常的适合学习,发起者是一个资深的软件架构师,他对EF的理解让我眼前一亮。 我会慢慢的记录下这个项目的学习心得。 第一部分: 关于一个IOC的工具,叫做Ninject.项目...阅读全文

Weapsy 分析网站架构的更多相关文章

  1. Flickr 网站架构分析

    Flickr 网站架构分析 Flickr.com 是网上最受欢迎的照片共享网站之一,还记得那位给Windows Vista拍摄壁纸的Hamad Darwish吗?他就是将照片上传到Flickr,后而被 ...

  2. 各大型网站架构分析收集-原网址http://blog.csdn.net/lovingprince/article/details/3379710

    1. PlentyOfFish 网站架构学习http://www.dbanotes.net/arch/plentyoffish_arch.html 采取 Windows 技术路线的 Web 2.0 站 ...

  3. 【转】LAMP网站架构方案分析【精辟】

    [转]LAMP网站架构方案分析[精辟] http://www.cnblogs.com/mo-beifeng/archive/2011/09/13/2175197.html Xubuntu下LAMP环境 ...

  4. Twitter网站架构分析介绍

    http://www.kaiyuanba.cn/html/1/131/147/7539.htm作为140个字的缔造者,twitter太简单了,又太复杂了,简单是因为仅仅用140个字居然使有几次世界性事 ...

  5. 【Hadoop离线基础总结】流量日志分析网站整体架构模块开发

    目录 数据仓库设计 维度建模概述 维度建模的三种模式 本项目中数据仓库的设计 ETL开发 创建ODS层数据表 导入ODS层数据 生成ODS层明细宽表 统计分析开发 流量分析 受访分析 访客visit分 ...

  6. 分析http协议和高并发网站架构

    案例任务名称 分析http协议和高并发网站架构 案例训练目标 深入理解http协议的工作原理 掌握http协议的分析方法 包含技能点 搭建web服务器 编辑简单的html页面并上传到服务器 使用wir ...

  7. LAMP网站架构分析

    转自:http://www.williamlong.info/archives/1908.html LAMP(Linux-Apache-MySQL-PHP)网站架构是目前国际流行的Web框架,该框架包 ...

  8. LAMP网站架构方案分析

    本文引自:http://www.williamlong.info/archives/1908.html LAMP(Linux-Apache-MySQL-PHP)网站架构是目前国际流行的Web框架,该框 ...

  9. 前端学HTTP之网站架构演化

    前面的话 本文将详细介绍网站架构的演化过程 初始阶段 大型网站都是从小型网站发展而来,网站架构也是一样,是从小型网站架构逐步演化而来.小型网站最开始时没有太多人访问,只需要一台服务器就绰绰有余,这时的 ...

随机推荐

  1. 【甘道夫】官方网站MapReduce代码注释具体实例

    引言 1.本文不描写叙述MapReduce入门知识,这类知识网上非常多.请自行查阅 2.本文的实例代码来自官网 http://hadoop.apache.org/docs/current/hadoop ...

  2. react.js 从零开始(三)JSX 语法及特点介绍

    什么是jsx? jsx = JavaScript + xml jsx 是一种 Ecmascript 的一种新标准. jsx 是一种 带有结构性的语法. jsx 的特点: 1.类xml语法易于理解. 2 ...

  3. thoughtworks笔试整理

    笔试了,时间1个半小时.没想到居然有7/10是开放性问题.大意例如以下:1.为什么选择增加ThoughtWorks.200字以内,不能用"interesting"."ch ...

  4. UNIX环保进程

    学习的过程之前,先来了解下过程中的操作环境. main功能 过程总是开始main功能开始执行,我们编程,程序从main功能进行,它是原型例如,下面的: int main(int argc, char ...

  5. [译文]c# /.Net 技巧: ToDictionary() and ToList()

    前言: 有两个简单好用的LINQ扩展方法 ToDictionary() 和ToList(),你可能知道或不知道,但是它的的确确可以简化查询转化为集合的任务: 简介: LINQ和延迟执行 据你所认识的L ...

  6. TFTP server组态

    TFTP server组态 2014-10-31北京海淀区  张俊浩 一.TFTP(Trivial File Transfer Protocol,简单文件传输协议或称小型文件传输协议) 是一种简化的文 ...

  7. javascript权威指南(6) - 对象

    JavaScript对象可以从一个称为原型的对象继承属性,这种"原型式继承"(prototypal inheritance)是JavaScript的核心特征.除了字符串.数字.tr ...

  8. NDMCDB数据库hang住故障分析 - cursor: pin S wait on X

    问题描写叙述: 上午刚刚到办公室,就有监控人员邮件反馈,昨晚NDMCDB407数据库被重新启动过,让我分析一下数据库重新启动的原因.因为昨晚业务有版本号上线,所以短信警告关闭了,所以没有短信下发到我手 ...

  9. exit() _exit()

    图 C程序的启动与终止 差别: _exit()函数:直接使进程停止执行,清除其使用的内存空间,并销毁其在内核中的各种数据结构; exit()函 数则在这些基础上作了一些包装,在运行退出之前加了若干道工 ...

  10. 动画云创始人胥克谦&amp;课程格子创始人李天放分享创业经历

    原文地址:http://student.csdn.net/mcd/topic/163587/955044 2014年10月18日在北京科技大学成功举办了CSDN高校俱乐部全国巡讲,现场參会学生有一百余 ...