Apworks框架实战(一):Apworks到底是啊?

简介

Apworks是均等放缓基于Microsoft
.NET的面向世界让的合作社级应用程序开发框架,它适用于为世界模型呢主干的企业级系统的开发以及购并。Apworks不仅能够非常好地支持经典的支行架构,而且还能支持因事件驱动的吩咐查询职责分开(Command-Query
Responsibility Segregation, CQRS)架构。

乘机软件系统逐步复杂,构建平仿照可用之、稳定之、可扩大的、安全的及高效之网易得进一步困难。为了解决这样的困难,人们以连年之软件开发过程中攒了很多历,由其是以巨型复杂软件系统方面,面向对象的分析和设计(OOAD)占据着主导地位。由此,Eric
Evans将这些经历整理成文,于2004年出版了《领域让设计:软件基本复杂性应针对的志》一书,世界一流软件架构大师Martin
Fowler也参与了该书的编撰工作。

当题被,Eric
Evans提出了软件之宏图与架构应该为世界为着力,而不是数据库或者其它的软件基础结构,因为世界描述了软件所用解决之实际上问题。在统筹及搭等,软件开发人员以及领域专家必须树立平等拟用于交流的“通用语言”,并根据这套语言来一同成立世界模型。整个软件的计划及架构就得盖这个小圈子模型呢主干,这样做不仅能被开发集团还好地解事情要求,减少因为需要理解与沟通引起的病,而且还会如核心部件独立为具体的软件技术实现,为其后的初技巧改造和扩大做好充分准备。

领域让设计并无是相同种特定的模式,也非是同栽具体的方法论,它所蕴涵的限定相当常见,比如,面向对象分析与设计的主干条件、测试驱动开发、行为使开发、持续集成、敏捷开发、防腐层、界定上下文、分层体系布局模式、读写分离体系布局模式、事件驱动体系布局模式等等,都属世界让设计之讨论范畴。总而言之,所有以世界模型呢骨干之开发方法、过程以及技能,均只是认为是天地让的。

为能够吃这些开发技术、开发方法、以及软件设计原则以及模式会生好地以到实在项目受到,一些面向世界让设计之开销框架应运而生,比如Java阵营有特别出名的AxonFramwork和JdonFramework。这些框架对世界让设计受到所涉的基本概念和模式都有正死好之支持,这不但为开发人员能够非常有益地开出专业的、面向世界让的软件系统,使得软件系统能够又好地满足客户需求,解决实际的业务问题,而且当安全性、高效性、可扩展性和可维护性方面呢软件系统提供保障,大大提高了软件出品之色。

由软件需要具有多样性及可变性的特征,往往没法在路之前期将兼具要求了确定下来,因此,对于日渐复杂的软件系统而言,传统的瀑布开发模型遇到了肯定的挑战,而因迭代的快速开发模式相对而言更能立竿见影地缓解急需的多样性及可变性所带动的绝密风险。由于迭代的引入,客户会一直插手到开过程遭到,并在迭代遇呢开销组织提供必需之信,以保软件系统本身不会见以及客户要求去太远。每一样蹩脚迭代都见面兑现有客户需求,因此,经过多次迭代,程序代码也会见迭代地在到代码库中。为了保品质,保证新入的代码不见面影响及等同坏迭代中所来的代码,开发组织往往采取持续集成的主意,将代码整合及代码库的主分支上。

不止集成为饱含了累累技术手段,比如行为使得开发(BDD)、测试驱动开发(TDD)、自动化测试和自动化部署等等。而面向对象分析与计划的规则,又对快开发执行提供了杀好之技术支持,相信读过Robert
C. Martin所展示的《Agile Principals, Patterns and Practices in
C#》一挥毫的读者,对这部分会有深可怜的感动。

有鉴于此,面向世界让设计之开发框架,对飞项目的行为产生正十分十分的协助,主要表现于以下几单地方:

  • 框架在技术上为软件系统提供了整的模式推行,例如:通过使用AxonFramework或者JdonFramework,可以很有利地贯彻冲CQRS或者事件驱动的体系布局
  • 框架为团体提供了客观有效之软件开发过程模式,例如:利用框架可以挺方便快捷地充实建筑软件系统的缓解方案,同时为决定了集团的出过程及搭档方式
  • 框架的使大大提高了团队的开发效率,团队只是需要关爱同世界有关的工作实现,而不管需关注现实的艺实现
  • 框架的行使大大降低了起毛病(Bug)的几统领,因为多数支持业务体系的代码都通过了严的测试与实战的考验
  • 框架的使用还吧软件系统的构成及合带来了简便

Apworks就是一致模拟于.NET下支持面向世界让的软件系统出框架,它具备以下这些特色:

  • 依据NuGet Package
    Manager提供方便快捷的类库包发布办法,开发人员无需关心程序集里的版本依赖关系
  • 提供针对性世界让设计中挑大梁要素的卷入。比如:Apworks框架对实体、聚合根、领域事件、领域仓储、事件存储(Event
    Store)等概念进行了有效的包装和贯彻
  • 提供对现有流行框架的支撑。比如:Apworks能够非常好地支持AutoMapper、Nancy
    Framework、ASP.NET MVC以及ASP.NET Web API的采用以及开支
  • 提供多样化的部署方式。开发人员可以以web/app.config中对Apworks框架进行部署,也可以直接当程序代码中构建配置对象,对框架进行布置。流畅接口(Fluent
    Interface)的引入,更是为Apworks框架的配备提供了便民直观的编程体验
  • 供依据Microsoft Patterns & Practices
    Unity的IoC容器和劳务定位器(Service
    Locator)的兑现。不仅如此,开发人员还能够依据项目的骨子里需求对IoC容器和劳务定位器进行扩张,使该能够支持更多的Dependency
    Injection(DI)框架。比如可生有益地壮大Apworks,使其会支持因StructureMap、Ninject等风靡的DI框架
  • 供基于Entity
    Framework和NHibernate两种流行ORM的囤积实现。在应用程序中利用即时简单种植仓储,也就是核心包含了富有面向关系项目数据库的靶子持久化方案。Apworks还提供依据MongoDB的NoSQL对象持久化方案,以满足NoSQL解决方案的需求。不仅如此,开发人员还会因项目的实际需要,对仓储实现进行扩张,以支持更多品种的目标持久化机制
  • 提供包括Event Aggregator、MSMQ以及Direct Local
    Bus的风波与消息派发机制。开发人员能够好便宜地拿世界事件派发到信息总线上,为利用系统的合一提供便利。不仅如此,开发人员还能依据项目之实在要求,对信息派发机制进行扩展,甚至可组成NServiceBus以及Microsoft
    Biztalk Server等公司级劳动总线,实现复杂的音路由和处理
  • 呢CQRS架构提供了灵活的、基于SQL Server以及MySQL的风波存储(Event
    Store),不仅如此,开发人员还能依据项目的骨子里需求,对事件存储的落实进行扩张,以支持更多种类之贮存机制
  • 为CQRS架构提供了多样化的世界仓储的兑现。开发人员可以因项目之莫过于需要来选择还是扩展领域仓储,比如可选取仅将事件快照作为事件存储的储存实现,来遮事件回顾的效果,从而达到省空间的目的
  • 否CQRS架构提供了不过扩大的风波快照机制。开发人员可以由此简单的部署来支配是否利用事件快照,并定制事件快照的性能和作为
  • 供了对AOP拦截的支持:通过引入Castle Dynamic
    Proxy,Apworks框架可以非常方便地贯彻面向接口方法的AOP拦截;开发人员还好因项目之莫过于要求,选用由DI框架支持的AOP拦截方案,比如,可以选用Unity
    Policy Injection Extension作为AOP拦截的缓解方案

Apworks为软件系统的计划与支出带来了审的安定团结、便捷性和灵活性,本文将对Apworks的各个方面进行亮,以向开发人员介绍框架的施用方式。

示范案例

Byteart Retail

于自身前的博客文章中,有一个对Byteart
Retail案例进行介绍的文山会海文章。Byteart
Retail就是随的面向世界让的软件架构模式(经典分层架构)。在Byteart
Retail案例推出之后,受到了广网友的关心,也时有发生网友用Byteart
Retail案例和Apworks框架进行规整并,以演示Apworks框架对面向世界让的商店级软件设计和搭的支撑。由Apworks支持之Byteart
Retail的案例源代码地址是:https://github.com/daxnet/ByteartRetail_Apworks。需要了解Byteart
Retail案例详细信息的读者,请参见:https://github.com/daxnet/ByteartRetail。在这对在线上及线下社区中为Apworks提供支持的网友表示衷心感谢!

Note Service

每当Apworks上一个版发布之时光,我在博客中被闹了一个使用Apworks开发之Web
API案例,文章题目是:《在ASP.NET MVC Web
API中使用Apworks开发第一个HTTP服务》。在文中介绍了配置以及利用。在遵照系列之接续文章中,我将详细介绍Apworks框架的切切实实应用。

Note Service扩展:对NancyFx的支持

在这个对网友止.觀.表示诚挚的感恩戴德。该案例详细讲解了Apworks在NancyFx中的采取。原文标题是:《扩展NoteService,支持NancyFx》。

在生一样首稿子中,我将介绍Apworks框架的下载、编译和援。

网站地图xml地图