微型项目实践(5):Business层代码分析——实体基类

上一篇中,我们分析了Common中的几个类,这几个类都是辅助用的,其实不太重要,重要使我们今天 要分析的这几个类,包括Entity、IDatabase、IEntityDataAccess,其中Entity作为所有实体类的基类, 更是重中之重,而IDatabase、IEntityDataAccess这两个接口,则是为Entity类服务的。

先看那个熟悉的系统结构图。

Entity、IDatabase、IEntityDataAccess这三个类型位于Business层中。该层目前的类图如下:

从图中可以看到,Business层包含Blog和BlogClass这两个实体类,他们都继承于Entity类;每个实体 类(包括Entity)都对应一个Entension类,这个类自然就是存放该类相关的Extension方法的地方,通常 是对IQueryable和IEntityAccess接口的扩展;另外IDatabase和IEntityAccess两个接口定义了数据库访 问的方法。

一、Entity类。Entity是所有实体类的基类,是一个模板类不能是结构体的泛型类。它为所有的实体 类提供了ID、TimeStamp和IsNew的属性,Validate、Save和Delete方法,每个方法又包含实际操作 ValidateAction、SaveAction和DeleteAction。

时间: 2024-09-12 21:31:42

微型项目实践(5):Business层代码分析——实体基类的相关文章

微型项目实践(6):Business层代码分析——实体类的生成策略

上一篇中,我们分析了实体类的基类Entity,这一篇中,我们就分析一下基于该类的实体类. 每一个实体类都会有两个文件组成,我们以BlogClass为例,该类包含两个文件:BlogClass.cs和 BlogClass.designer.cs,这非常类似VS自己生成的代码,更方便的是,VS还会自动把这两个文件折叠起 来,如图. 这两个文件中,BlogClass.designer.cs包含所有的生成代码:成员.属性等,而BlogClass.cs则只包 含一个类的定义,供我们填写代码使用. BlogC

微型项目实践-目录

微型项目实践(12):查询与显示 微型项目实践(11):控件与格式化显示 微型项目实践(10):Master & Default 微型项目实践(9):页面的数据访问策略 微型项目实践(8):数据访问的实现 微型项目实践(7):数据访问的定义 微型项目实践(6):Business层代码分析--实体类的生成策略 微型项目实践(5):Business层代码分析--实体基类 微型项目实践(4):Common层代码分析 微型项目实践(3):实体代码的生成 微型项目实践(2):用测试驱动代码生成 微型项目实

微型项目实践(4):Common层代码分析

上一篇中,我们生成了实体代码,加入了Business和Common,项目突然变得大了起来,现在我们就来 一点点分析. 我们还是从这张系统结构图出发.先来看Common这个DLL,其中所包含的类,如下图所示. 1,验证相关类(IValidatable,Validater,ValidateResult,ValidateFailException) 这四个类主要是在业务层,验证实体数据时使用,每一个实体(Entity)在保存数据时对其自身数据 进行验证,以保证绝不让非法数据保存到数据库中,这四个类就是

艾伟也谈项目管理,微型项目实践感悟

1. 什么是微型项目 微型项目是指绝大部分工作由一个人员负责的项目,这个核心成员负责项目的系统分析.构架.及绝大部分的编码工作.项目的持续时间一般不会超过一个月.项目的参与人员除了核心的程序员外还可能一部分辅助人员,包括第二程序员(负责一部分编码工作).美工(负责界面设计)等. 微型项目的规模一般很小,业务逻辑也比较简单,价格一般也不会超过10K.程序员通常直接和对方领导打交道.客户大多没有任何技术背景.需要程序员直接负责系统的需求分析. 2. 微型项目分析 2.1 一般流程: 微型项目的流程可

微型项目实践(10):Master & Default

上一篇中,我们分析了UI层的结构和PageBase类,今天我们把注意力转移到页面中来.下面这个图是 我们系统的最终效果图: 这个当然不是我做的,我也做不出来:), 但是我想大体介绍一下页面的制作流程和一些经验技巧: 需求分析人员分析并确定需要哪些页面.有时候(大部分时候)只考虑首页,因为首页能确定系统的 风格.定下首页其他页面基本上就有着落了. 需求分析人员和客户讨论页面的风格.色调.系统的风格通常是一些形容词,比如简约.明快等.良 好的方式是准备很多图片(网页模板更好)给用户看,让他选,这样可

微型项目实践(9):页面的数据访问策略

上一篇中,我们完成了数据库的访问,今天我们来看看系统设计的最后一部分--UI层.加入了UI层 之后,系统设计会变成这个样子: 这也就是系统最终的结构图.这个图上新添加的两个项目,一个是UI,一个是WebSite.其中前者依赖 于业务逻辑和数据访问,提供统一的界面处理,而WebSite仅包含Aspx页面.需要注意的是,上图中箭头 表示依赖或调用,而这个关系是具有传递性的,比如UI依赖于Business,而Business依赖于Common,则UI 自然就依赖于Common. 将UI和WebSite

Android平台webkit组件java层代码分析

转自ITeye: constGU 本文将围绕android平台webkit组件中,java层的几个主要类进行分析,说明各个类的职责以及类之间的关系.若有错误疏漏之处,望不吝指出. (源码所在目录  ${framework_sourcecode_loc}\core\java\android\webkit ) 一.概述 Android平台webkit组件java层封装了一系列浏览网页相关的功能,对开发者而言,主要功能有以下两点: 1.接收上层请求(eg:loadUrl, goBack, reload

微型项目实践(3):实体代码的生成

上两篇我们已经有了一个XML,并且根据这个XML生成了数据库,这次我们来看一下如何从这个XML得到 初步的实体类.还是那个XML: 1: <?xml version="1.0" encoding="utf-8" ?> 2: <Entities xmlns="http://it.ouc.edu.cn/EntityDescription/V2"> 3: <Entity title="日志" name=

微型项目实践(12):查询与显示

上一篇中,我们分析了页面中的控件和数据绑定中的扩展方法,今天我们看数据的查询和显示.其中 ,数据的查询属于业务逻辑层(Business),而显示属于UI层. 假设我们要根据以下两个条件进行查询: 日志分类(ID) 发布时间(范围) 两者为"AND"的关系,则查询可以通过通过扩展IQueryable<Blog>类实现,该功能定义在 BlogExtension类中(位于DongBlog.Business\Blogs\Blog.cs文件中),代码如下: 1: /// <su