随笔分类 - .Net应用程序框架实战
摘要:在应用程序框架实战十四:DDD分层架构之领域实体(基础篇)一文中,我介绍了领域实体的基础,包括标识、相等性比较、输出实体状态等。本文将介绍领域实体的一个核心内容——验证,它是应用程序健壮性的基石。为了完成领域实体的验证,我们在前面已经准备好了验证公共操作类和异常公共操作类。 .Net提供的Da...
阅读全文
摘要:上一篇,我介绍了自己在DDD分层架构方面的一些感想,本文开始介绍领域层的实体,代码主要参考自《领域驱动设计C#2008实现》,另外参考了网上找到的一些示例代码。什么是实体 由标识来区分的对象称为实体。 实体的定义隐藏了几个信息:两个实体对象,只要它们的标识属性值相等,哪怕标识属性以外的所有属...
阅读全文
摘要:前面介绍了应用程序框架的一个重要组成部分——公共操作类,并提供了一个数据类型转换公共操作类作为示例进行演示。下面准备介绍应用程序框架的另一个重要组成部分,即体系架构支持。你不一定要使用DDD这样的架构,使用单层架构和普通三层架构一样可以,不过你如果希望获得更进一步的复用性和封装度,使用更加面向对...
阅读全文
摘要:本文专门为初学者而写,因为很多初学者可能还不了解公共操作类的作用和封装技巧,大部分有经验的程序员都会把自己所碰到的技术问题整理封装成类,这就是公共操作类。公共操作类往往具有一些通用性,也可能专门解决某些棘手问题。公共操作类是应用程序框架的核心,主要目标是解决大部分技术问题。我将在本文介绍封装公共...
阅读全文
摘要:上一篇,介绍了开发环境需要的工具和版本,本篇将动手创建VS解决方案。 对于本系列文章提供的示例,我想通过两种途径来演示,一种是单元测试,另外为了能更直观的看到效果,还会提供一个用户界面来展示。为了不分散注意力,前期只提供非常简陋的原始界面,后期如果有时间的话,我想使用MVC +某个RIA框架+...
阅读全文
摘要:前面几篇已经把废话基本说完了,现在准备进入实战阶段。 第一步是把开发环境准备好,下面是本系列所使用的开发工具及其版本。为了避免你无法顺利打开本系列提供的下载示例,建议你最好跟我使用的版本相同。 Visual Studio2013 ReSharpe最新版本,目前版本是8.2.2 ReSha...
阅读全文
摘要:使用应用程序框架来开发项目,从软件项目的角度来看,可以获得更快的开发进度,更好的代码质量、复用性、扩展性、可维护性等好处。但如果换个角度思考,也会发现其它一些问题。 首先,软件开发是以人为本的,应用程序框架是某个人或某几个人大脑中知识结构的具体表现,所以应用程序框架高度依赖它的创建人,框架越强...
阅读全文
摘要:分层架构根据相关职责将应用程序模块切割为多个层次,那么应用程序框架本身还要不要进行层次划分?随着对应用程序框架的理解加深,以及项目复杂度的提升,为应用程序框架分层就显得很有必要,它将影响你如何创建VS解决方案。 在刚开始建立应用程序框架时,你首先会想到的是把技术方面的东西抽取出来,放到专门的文...
阅读全文
摘要:建立应用程序框架,首先要考虑的问题是,你准备采用哪种分层架构,然后根据应用程序框架的逻辑层次来确定需要创建的VS解决方案和程序集。 如果项目很小,需求很简单,时间异常紧迫,且你手上没有任何积累,那么,单层架构将是首选,最简单的单层架构如下图所示(为了集中你的注意力,我把不相关的文件都删除了)。...
阅读全文
摘要:之前说过,.Net Framework为所有.Net程序员提供底层支持,第三方开源框架建立在.Net Framework的基础上,专门解决某些特定问题,而应用程序框架则建立在.Net Framework和第三方框架的基础上,为项目开发的方方面面保驾护航。它们的作用虽然都是帮助程序员更好的建立应用...
阅读全文
摘要:应用程序框架是用来支持应用程序开发的,它就好像一个保姆,在开发的每一个细节对程序员呵护倍至。那么,应用程序框架应该包含哪些内容呢?原则上来说,只要期望能够复用的所有东西,都可以进入你的框架。 开发新手与经验丰富的老手,其中一个重要的区别在于复用代码的方式不同。开发新手喜欢复制粘贴,而老手则更倾...
阅读全文
摘要:如果没有什么好处,不会有人愿意去做,那么,你真的需要应用程序框架吗,它能为你带来什么好处?应用程序框架为你提供现成的开发环境 现在来了一个项目,你可以直接打开VS,然后就开工敲代码吗?不行,你得先创建项目,当使用了分层架构,还需要创建更多的项目,这些项目根据依赖关系进行配置。然后依次引用各种依赖组...
阅读全文
摘要:什么是应用程序框架?正如框架是架构的具体实现一样,应用程序框架是应用程序架构的具体实现。不过这样说了等于没说,因为框架和架构都是如此抽象。为了获得直观的感受,下面先看看更具体的.Net Framework和第三方框架。 .Net Framework为.Net程序员提供了一个庞大的类库,几乎任何...
阅读全文
摘要:大约10年前,我刚刚步入.Net开发,那时候还很流行单层架构,直接在界面上拖控件,然后绑定数据。数据库操作使用原生的Ado.Net,每次都要创建数据库连接,打开连接,发送Sql,获取结果、关闭连接。每当我需要进行数据库操作的时候,就把这一段复制粘贴过去,就这样干了几个月。 一日,一位师兄给我介...
阅读全文
摘要:敏捷时代的来临,迫使微软.Net技术也在向敏捷方向发展。近几年,.Net在数据访问、Web、测试等多个领域大刀阔斧的进行改革,新技术不断涌现。一方面这是值得庆幸的,让.Net程序员在开发复杂项目有了更多的选择,一改往日只能拖控件绑定数据的局面。另一方面,程序员需要大量的学习,并且需要依赖更多的第...
阅读全文