欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

Apworks到底是什么?

系統 1792 0

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框架的下載、編譯和引用。

?
?
分類:? Apworks

Apworks到底是什么?


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。。?/p>

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 天天色影 | 日韩欧美日本 | 免费视频一区二区 | 久久99国产亚洲精品观看 | 国产目拍亚洲精品99久久精品 | 两性免费视频 | 狠狠操在线视频 | 奇米激情 | 色偷偷偷 | 热久久国产 | 男人的天堂亚洲 | 91久久线看在观草草青青 | 日本一级高清不卡视频在线 | 日本一区二区三区不卡在线看 | 日本吻胸捏胸激烈床戏视频 | 日韩欧美福利视频 | 黄色一级毛片 | 美美女高清毛片视频免费观看 | 激情视频网站 | 男女性刺激爽爽免费视频 | 九九精品在线 | 极品美女aⅴ高清在线观看 一级片片 | 久久一本日韩精品中文字幕屁孩 | 国产精品久久久久久久午夜 | 欧美专区视频 | 久久九色| 伊人久久电影网 | 欧美一级h | av毛片| 日韩欧美国产一区二区 | 成人免费黄色网 | 夜夜摸夜夜爽 | 午夜成人免费视频 | 韩国美女一区二区 | 国产毛片视频 | 久久亚洲欧美日韩精品专区 | vidz 98hd | 亚洲精品国产精品国自产观看 | 大毛片 | 午夜寂寞影视在线观看 | 色图综合网 |