好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

面向领域驱动的企业级应用开发框架Apworks新版本发布

面向领域驱动的企业级应用开发框架Apworks新版本发布

面向领域驱动的企业级应用开发框架Apworks新版本发布

经过大半年的断断续续的努力,今天,我发布了Apworks的一个新版本:2.5.4878.35266。Apworks是我从2009年开始一直开发并维护的一个面向领域驱动的基于.NET的企业级应用程序开发框架,通过使用这个框架,开发者可以快速地开发出面向领域驱动的、专业的企业级应用程序。Apworks同时支持经典分层架构以及CQRS架构(基于CQRS架构的案例程序请参考:Tiny Library CQRS: http://tlibcqrs.codeplex.com )。为了更透明地向读者介绍面向领域驱动的经典分层架构,我也在社区中开发过一个案例程序:Byteart Retail( https://github.com/daxnet/ByteartRetail )。事实上,Byteart Retail中的很多部分都可以使用Apworks框架实现(比如仓储、事件、服务等等),在将这些实现部分用Apworks替换以后,你将发现,开发一个应用程序竟是如此简单。

Apworks框架所提供的功能

Apworks从框架级别提供了:

实体、值对象、服务的基本框架元素 完善的仓储架构以及多样化的仓储实现(目前支持NHibernate、EntityFramework和MongoDB) 简单易用的事件总线(目前支持Direct Bus、Event Aggregator Bus和MSMQ) 灵活的领域事件产生和派发机制 AOP拦截和异常处理机制 多种数据序列化机制 规约架构 事务协调器架构(目前支持DistributedTransactionCoordinator和SuppressedTransactionCoordinator) 事件溯源(Event Sourcing) 对象快照(Snapshot) 灵活多样的快照产生机制,通过框架可以自定义快照产生策略(目前支持EventNumberSnapshotProvider和SuppressedSnapshotProvider) 灵活多样的领域仓储的框架及实现(目前支持EventSourcedDomainRepository、RegularDomainRepository、RegularEventPublisherDomainRepository以及SnapshotDomainRepository) 灵活多样的事件存储(Event Store):目前支持基于SQL Server的Event Store以及MySQL的Event Store。所支持的后台数据库类型能被动态扩展 灵活多样的IoC容器整合方案:目前仅整合了Microsoft Unity,但框架本身支持扩展其它的IoC解决方案 多样化的框架配置方式:目前支持基于app/web.config的配置方式、直接写代码进行配置,以及基于流畅接口(Fluent Interface)的配置方式 新版本更新内容

历代版本的功能特性与更新请参见: http://apworks.org/?page_id=424 。

这个新版本主要有以下几个方面的更新:

基于MongoDB的仓储实现(Apworks.Repositories.MongoDB.dll) 实现了经典分层架构下的领域事件产生和派发框架(Apworks.dll) 基于事件聚合器(Event Aggregator)的消息总线(Apworks.Bus.EventAggregator.dll) 优化了NHibernate的仓储实现(Apworks.Repositories.NHibernate.dll) 提供了框架配置的流畅接口(Fluent Interface)的支持(Apworks.dll) 实现了事务协调器(Apworks.dll) 引入了PagedResult<T>泛型类型,用以接收由仓储返回的分页信息。基于Entity Framework和NHibernate的仓储实现目前能够在一次数据库交互中返回分页数据,提高了分页处理的性能;MongoDB的仓储虽然也支持分页,但实现上效率要略低 为Microsoft Patterns & Practices Unity提供了更为稳健的基于WCF的Lifetime Manager,感谢Andrew Oakley在Unity扩展上所做的贡献,请参见: http://blogs.msdn.com/b/atoakley/archive/2010/12/29/unity-lifetime-managers-and-wcf.aspx IBus接口现已改为非泛型接口;消息的泛型类型被约束在IBus接口的成员方法上,而不是在IBus接口上,这样更符合实际需求 所有的外部组件依赖引用已经更新到最新版本 安装包下载地址

请单击 http://apworks.org/wp-content/uploads/fx/setup_v2_5_4878_35266.zip 直接下载安装包。完成下载并解压后,运行Apworks.Setup.exe执行安装。本安装程序由WiX产生。

使用NuGet安装

可以根据需要,在Visual Studio中使用NuGet Package Manager进行安装。在需要引用Apworks的项目上单击右键,选择Manage NuGet Packages选项,将出现Manage NuGet Packages对话框:

在Search Online文本框中,输入Apworks作为查找关键字,将看到列表中会列出所有Apworks可用的组件:

此时可以根据需要,单击Install按钮进行安装。

直接编译源代码程序

可以到Apworks的代码库主页 https://github.com/daxnet/Apworks 查看最新的签入信息,如果需要直接编译源代码,请以以下步骤进行:

首先,使用命令  git clone  https://github.com/daxnet/Apworks  将源代码克隆到本地,然后,根据自己的开发平台进行编译:

在Windows中编译Apworks

在Windows下,启动Visual Studio Command Prompt(命令提示符),然后进入Apworks目录,使用  build Debug  命令编译Apworks的Debug版本,使用  build Release  命令编译Apworks的Release版本。

在Linux、Unix、Mac OS X中编译Apworks

在非Windows平台下,首先确保Mono 2.10.8(或以上版本)正确安装,然后进入Apworks目录,使用  sh build.sh Debug  命令编译Apworks的Debug版本,使用  sh build.sh Release  命令编译Apworks的Release版本。注意:在编译前,bash程序会首先自动下载依赖组件,因此请确保机器有网络连接。

下一版本功能计划

计划在下一版本的Apworks中引入以下功能:

轻量级Enterprise Service Bus,用以替代目前的IBus实现 Visual Studio项目模板 领域模型设计器(DSL) 引入Castle Windsor的IoC容器支持 重构/优化对CQRS架构的支持(暂定) LMAX架构的支持(暂定,关于LMAX架构,请参考: http://martinfowler.com/articles/lmax.html ) 如何使用?

我将在近期写一些文章来介绍如何在实际项目中使用Apworks开发基于经典架构的企业级应用程序,敬请期待!

作者: Leo_wl

    

出处: http://www.cnblogs.com/Leo_wl/

    

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

版权信息

查看更多关于面向领域驱动的企业级应用开发框架Apworks新版本发布的详细内容...

  阅读:48次

上一篇: AOP有感

下一篇:订餐系统之权限设计