澳门太阳集团,太阳集团娱乐网址

    欢迎访问太阳集团娱乐网址~

  1. 加入收藏
  2. 设为主页
  3. 学校简介
北大青鸟

三分钟了解北大青鸟

×
  • 北大青鸟大数据课程
  • 北大青鸟网络工程师
  • 北大青鸟web设计专业
  • 北大青鸟PHP专业
  • 北大青鸟启蒙星课程

武汉.net课程培训:ASP.NET MVC经典项目ProDinner项目解析(1)

责任编辑:秩名来源:太阳集团娱乐网址.Net技术教程发布时间:2013-04-17 10:37
导读:武汉.net课程培训:ASP.NET MVC经典项目ProDinner项目解析(1)

北大青鸟武汉宏鹏鲁广校区老师解读:ASP.NET MVC经典项目ProDinner项目解析(1)
  

前面的话:

由 于近在设计一款Web产品,我希望找到一成熟的耦合度低的产品架构,并且是建立在asp.net mvc的框架基础上的,对此找到ProDinner开源项目,但是网上的资料少得可怜,好,没有范例,那么就自己来做处理,所以将自己的所学与各位分享, 多有不足,就算是抛砖引玉,望高手指点。

一、整体系统分析

系 统采用了Entity Framework Code First+Asp.NET MVC Razor+Castle.Core+Castle.Windsor,可以说整体设计是个非常轻量级别的框架,但却是做到了或者说惯承了整体架构分层明 显,模块耦合度低的架构思想。


Core层实现了本地化 Models和Entity Fremework模型化需要的models数据,另该层的另一个职能是,为低耦合的业务逻辑和低耦合的数据访问做好了接口准备,所以我说这个项目惯撤了 低耦合的架构思想,如果要设计一个更大型的项目,那么这层可以继续将业务逻辑和数据访问,以及一些公共运用的功能进行更近一层的接口化。

Model

---DelEntity.cs

该类文件做了模型实体的定义,基本可以说与将要运用的数据库形成了完成的模型映射关系。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
public class Entity
 {
     public int Id { get; set; }
 }
    
 public interface IDel
 {
     bool IsDeleted { get; set; }
 }Entity为所有模型的公共基类,这其实是非常好的设计思想,我想我们一般在做数据库表结构设计的时候,表与表都会有些共同的字段,如操作人,操作时间,操作机器,操作程序接入模块名。这里其实只是一个范例,根据各自的需要自己调整需要的类字段设计。  1   public class DelEntity : Entity, IDel
     {
         public bool IsDeleted { get; set; }
     }
    
     public class Country : DelEntity
     {
         public string Name { get; set; }
     }
    
     public class Meal : DelEntity
     {
         public string Name { get; set; }
         public string Comments { get; set; }
         public virtual ICollection<Dinner> Dinners { get; set; }
         public string Picture { get; set; }
     }
    
     public class Chef : DelEntity
     {
         public string FirstName { get; set; }
         public string LastName { get; set; }
         public int CountryId { get; set; }
         public virtual Country Country { get; set; }
     }
    
     public class Dinner : DelEntity
     {
         public string Name { get; set; }
         public int CountryId { get; set; }
         public virtual Country Country { get; set; }
         public int ChefId { get; set; }
         public virtual Chef Chef { get; set; }
         public string Address { get; set; }
         public DateTime Start { get; set; }
         public DateTime End { get; set; }
         public virtual ICollection<Meal> Meals { get; set; }
     }
    
     public class User : DelEntity
     {
         public string Login { get; set; }
         public string Password { get; set; }
         public virtual ICollection<Role> Roles { get; set; }
     }
    
     public class Role : Entity
     {
         public string Name { get; set; }
         public virtual ICollection<User> Users { get; set; }
     }

接 下来其实就没什么特别的,建立程序需要使用的业务类,这个时候其实针对于Code First而言,还不存在数据库这个概念,只是根据我们的业务需要设计相应的模类在涉及到表关联的时候,我们看到,这里统一使用了 ICollection<T>的集合,并且都是Virtual类型,这非常明确的表示了该层都是接口和基类,注定是要被重写。这里稍微提下, 如果需要再抽象点,再低耦合点,那么我想再定义一个ICollection<T>,而不是具体指定那个类,这样就更抽象了。 Repository

Entity为所有模型的公共基类,这其实是非常好的设计思想,我想我们一般在做数据库表结构设计的时候,表与表都会有些共同的字段,如操作人,操作时间,操作机器,操作程序接入模块名。这里其实只是一个范例,根据各自的需要自己调整需要的类字段设计。

接下来其实就没什么特别的,建立程序需要使用的业务类,这个时候其实针对于Code First而言,还不存在数据库这个概念,只是根据我们的业务需要设计相应的模

类 在涉及到表关联的时候,我们看到,这里统一使用了ICollection<T>的集合,并且都是Virtual类型,这非常明确的表示了该层 都是接口和基类,注定是要被重写。这里稍微提下,如果需要再抽象点,再低耦合点,那么我想再定义一个ICollection<T>,而不是具 体指定那个类,这样就更抽象了。

Repository

---IRepo.cs

顾名思义,这是一个仓库,业务操作的仓库,我们更多的听到的是数据仓库,那确有操作仓库。

1
2
3
4
5
6
7
8
9
10
11
public interface IRepo<T>
 {
 }
   
public interface IDelRepo<T>
{
}
   
public interface IUniRepo
{
}

观察每个接口的名字我们就会发现,这里基本是攘括了所有的数据操作方式和数据业务逻辑的函数原型,其后Service所有具体实现的实体数据操作都会基于这些接口

Security

---IFormsAuthentication.cs

定义用户登录的业务处理过程。同样也是抽象的规范接口。

Service

---ICrudService.cs

该层定义了一些业务操作得的函数接口,如果说IRepo是标准的接口规范,那么ICrudService就是个性化定制接口后ProDinnerException.cs定义

项目自身的异常处理类,如果要建立自己的异常规范文档,那么像这样来处理异常显然是不可以的,我们可以看看国产化的淘宝接口,每个异常对应着编号,

以及自身的异常描述。我的建议是依据程序和模块来处理异常。这样形成完整的层次关系。Core层暂时解析这么多。

本文标题:武汉.net课程培训:ASP.NET MVC经典项目ProDinner项目解析(1),责任编辑:秩名,来源:北大青鸟武汉宏鹏鲁广校,于2013年04月17日10时37分发布于太阳集团娱乐网址。澳门太阳集团宏鹏鲁广校区,是北大青鸟武汉电脑学校,专业IT计算机培训,拥有软件/网络/安卓/Web前端/Java课程.北大青鸟地址:光谷广场鲁巷数码港.电话:027-87807717

专业老师指导

专业老师指导

赵老师

从事IT教育培训十年有余,致力于帮助广大学子找到适合自己的专业。

培训咨询客服

培训咨询客服

陈老师

IT培训专业客服,用自己的真诚解决了无数学子的困惑。

本文地址:
文章标题:
  • 北大青鸟Java软件开发
  • 北大青鸟UI设计课程_零基础可学
  • 北大青鸟动漫设计_武汉设计学校
  • 北大青鸟数字艺术_武汉电脑学校
在线咨询
×
在线咨询更多问题

如您有任何疑问
在线咨询随时为您解答或拨打咨询热线:17740513250

×
  • 姓 名*
  • 手 机*
  • QQ号/微信号
  • 所报学科 *
  • 其他备注
  • 温馨提示:请保持手机畅通,咨询老师将为您提供专属的一对一报名服务。