<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      實(shí)現(xiàn)領(lǐng)域驅(qū)動(dòng)設(shè)計(jì) - 使用ABP框架 - 解決方案概覽

      .NET解決方案的分層

      下圖顯示了使用ABP的 應(yīng)用啟動(dòng)模板 創(chuàng)建的Visual Studio解決方案:

      image

      解決方案名稱為問(wèn)題跟蹤,它由多個(gè)項(xiàng)目組成。通過(guò)考慮DDD原則以及開(kāi)發(fā)和部署實(shí)踐,該解決方案是分層的。下面的小節(jié)解釋了解決方案中的項(xiàng)目

      應(yīng)用層

      應(yīng)用層也分為2個(gè)項(xiàng)目

      • IssueTracking.Application.Contracts 包含應(yīng)用程序服務(wù)接口和這些接口使用的dto。這個(gè)項(xiàng)目可以被客戶端應(yīng)用程序共享(包括UI)
      • IssueTracking.Application 是實(shí)現(xiàn)Contracts項(xiàng)目中定義的接口的基本應(yīng)用程序?qū)印?/li>

      表示層

      • IssueTracking.Web 是一個(gè)ASP.NET Core MVC / Razor Pages 應(yīng)用程序, 這是唯一為應(yīng)用程序和api服務(wù)的可執(zhí)行應(yīng)用程序

      遠(yuǎn)程服務(wù)層

      • IssueTracking.HttpApi 項(xiàng)目包含解決方案定義的HTTP接口。它通常包含MVC控制器和相關(guān)模型。因此,您可以在這個(gè)項(xiàng)目中編寫(xiě)HTTP接口。
      • IssueTracking.HttpApi.Client 當(dāng)您有一個(gè)需要使用HTTP接口的c#應(yīng)用程序時(shí),此項(xiàng)目是有用的。一旦客戶端應(yīng)用程序引用了這個(gè)項(xiàng)目,它就可以直接注入和使用應(yīng)用程序服務(wù)。這得益于ABP框架的 動(dòng)態(tài)c#客戶端API代理系統(tǒng)

      友情提示: There is a Console Application in the test folder of the solution,named IssueTracking.HttpApi.Client.ConsoleTestApp. It simply uses the IssueTracking.HttpApi.Client project to consume the APIs exposed by the application. It is just a demo application and you can safely delete it. You can even delete the IssueTracking.HttpApi.Client project if you think that you don't need to them.

      基礎(chǔ)設(shè)施層

      在DDD實(shí)現(xiàn)中,您可能有一個(gè)單一的基礎(chǔ)設(shè)施項(xiàng)目來(lái)實(shí)現(xiàn)所有的抽象和集成,或者您可能對(duì)每個(gè)依賴項(xiàng)有不同的項(xiàng)目

      我們建議采取一種平衡的方法;為主要的基礎(chǔ)設(shè)施依賴項(xiàng)(如 Entity Framework Core)創(chuàng)建單獨(dú)的項(xiàng)目,為其他基礎(chǔ)設(shè)施創(chuàng)建一個(gè)通用的基礎(chǔ)設(shè)施項(xiàng)目

      ABP的啟動(dòng)解決方案有兩個(gè) Entity Framework Core 集成項(xiàng)目

      • IssueTracking.EntityFrameworkCore 它是EF Core的基本集成包。你的應(yīng)用程序的DbContext,數(shù)據(jù)庫(kù)映射,存儲(chǔ)庫(kù)的實(shí)現(xiàn)和其他EF Core相關(guān)的東西都在這里
      • IssueTracking.EntityFrameworkCore.DbMigrations 是一個(gè)管理Code First數(shù)據(jù)庫(kù)遷移的特殊項(xiàng)目。在這個(gè)項(xiàng)目中有一個(gè)單獨(dú)的DbContext來(lái)跟蹤遷移。除了需要?jiǎng)?chuàng)建一個(gè)新的數(shù)據(jù)庫(kù)遷移或添加一個(gè)具有一些數(shù)據(jù)庫(kù)表的 應(yīng)用程序模塊 并自然需要?jiǎng)?chuàng)建一個(gè)新的數(shù)據(jù)庫(kù)遷移外,您通常不會(huì)過(guò)多地涉及這個(gè)項(xiàng)目

      你可能想知道為什么 EF Core 會(huì)有兩個(gè)項(xiàng)目。它主要與 模塊化 有關(guān)。每個(gè)模塊都有自己獨(dú)立的DbContext,應(yīng)用程序也有一個(gè)DbContext。DbMigrations項(xiàng)目包含一個(gè)模塊的聯(lián)合,用于跟蹤和應(yīng)用單個(gè)遷移路徑。雖然大多數(shù)時(shí)候你不需要知道它,但你可以查看 EF Core遷移文檔 以獲得更多信息

      其他項(xiàng)目

      還有一個(gè)項(xiàng)目,IssueTracking.DbMigrator,這是一個(gè)簡(jiǎn)單的控制臺(tái)應(yīng)用程序,它執(zhí)行遷移數(shù)據(jù)庫(kù)和 播種 初始數(shù)據(jù)。這是一個(gè)有用的實(shí)用程序應(yīng)用程序,您可以在開(kāi)發(fā)環(huán)境和生產(chǎn)環(huán)境中使用它。

      解決方案中項(xiàng)目的依賴關(guān)系

      下圖顯示了解決方案(IssueTracking)中項(xiàng)目之間的基本依賴關(guān)系(項(xiàng)目引用)。IssueTracking部分因?yàn)楹?jiǎn)單沒(méi)顯示)
      image

      這些項(xiàng)目之前已經(jīng)解釋過(guò)了。現(xiàn)在,我們可以解釋依賴關(guān)系的原因

      • Domain.Shared 是所有其他項(xiàng)目直接或間接依賴的項(xiàng)目。此項(xiàng)目里的所有類型均可被其他項(xiàng)目使用。
      • Domain 只依賴 Domain.Shared。因?yàn)樗呀?jīng)是領(lǐng)域共享的一部分。例如,Domain.Shared 中的 IssueType 枚舉 可以被 Domain 項(xiàng)目中的 Issue 實(shí)體使用
      • Application.Contracts 依賴 Domain.Shared。通過(guò)這種方式,您可以在dto中重用這些共享的類型。比如, 在Domain.Shared中的IssueType 枚舉 可以作為 CreateIssueDto 的一個(gè)屬性
      • Application 依賴 Application.Contracts 。因?yàn)樗鼘?shí)現(xiàn)了應(yīng)用程序服務(wù)接口并使用其中的dto。它還依賴于 Domain,因?yàn)閼?yīng)用程序服務(wù)被實(shí)現(xiàn)為使用在領(lǐng)域?qū)又卸x的領(lǐng)域?qū)ο?/li>
      • EntityFrameworkCore 依賴 Domain。因?yàn)樗鼘㈩I(lǐng)域?qū)ο?實(shí)體和值類型)映射到數(shù)據(jù)庫(kù)表(因?yàn)樗且粋€(gè)ORM),并實(shí)現(xiàn)領(lǐng)域中定義的存儲(chǔ)庫(kù)接口
      • HttpApi 依賴 Application.Contracts。 因?yàn)樗锩娴?controller 會(huì)注入和使用應(yīng)用服務(wù)接口
      • HttpApi.Client 依賴 Application.Contracts。因?yàn)樗梢韵袂懊娼忉尩哪菢邮褂脩?yīng)用程序服務(wù)
      • Web 依賴 HttpApi。因?yàn)樗峁┰谄鋬?nèi)部定義的HTTP接口。而且,通過(guò)這種方式,它間接地依賴于 Application.Contracts 項(xiàng)目, 來(lái)使用頁(yè)面/組件中的應(yīng)用程序服務(wù)

      基于DDD的應(yīng)用程序的執(zhí)行流程

      下圖顯示了基于DDD模式開(kāi)發(fā)的web應(yīng)用程序的典型請(qǐng)求流

      image

      • 請(qǐng)求通常從UI上的用戶交互(用例)開(kāi)始,該用戶交互導(dǎo)致向服務(wù)器發(fā)出HTTP請(qǐng)求
      • 表現(xiàn)層(或分布式服務(wù)層)中的MVC控制器或Razor頁(yè)面處理程序處理請(qǐng)求,并可以在此階段執(zhí)行一些橫切關(guān)注點(diǎn)(授權(quán)、驗(yàn)證、異常處理等)。控制器/頁(yè)面注入相關(guān)的應(yīng)用程序服務(wù)接口,并通過(guò)發(fā)送和接收dto調(diào)用其方法
      • 應(yīng)用程序服務(wù)使用領(lǐng)域?qū)ο?實(shí)體、存儲(chǔ)庫(kù)接口、領(lǐng)域服務(wù)等)來(lái)實(shí)現(xiàn)用例。應(yīng)用層實(shí)現(xiàn)一些橫切關(guān)注點(diǎn)(授權(quán)、驗(yàn)證等)。應(yīng)用程序服務(wù)方法應(yīng)該是一個(gè)工作單元。這意味著它應(yīng)該是原子的。
      • 大多數(shù)橫切關(guān)注點(diǎn)都是由ABP框架自動(dòng)且常規(guī)地實(shí)現(xiàn)的,通常不需要為它們編寫(xiě)代碼
      posted @ 2022-06-22 17:37  Broadm  閱讀(555)  評(píng)論(0)    收藏  舉報(bào)
      主站蜘蛛池模板: 男人天堂亚洲天堂女人天堂| 又爽又黄又无遮挡的视频 | 亚洲国产在一区二区三区| 日日噜噜夜夜狠狠视频| 国产成人精品无码播放| 九九热精品在线观看| 亚洲精品不卡无码福利在线观看| 国产高清在线不卡一区| 欧美激情一区二区| 最近中文字幕mv免费视频| 国产中文字幕精品在线| 国产高清无遮挡内容丰富| 乱码午夜-极品国产内射| 国产欧美日韩亚洲一区二区三区| 国产suv精品一区二区五| 亚洲国产精品线观看不卡| 东京热一精品无码av| 又爽又黄又无遮挡的激情视频| 色综合色综合久久综合频道88 | 亚洲精品欧美综合二区| 亚洲午夜无码久久久久蜜臀av | 亚洲av本道一区二区| AV无码免费不卡在线观看| 日韩精品久久久肉伦网站| 国产午夜福利高清在线观看 | 娄烦县| 国99久9在线 | 免费| 国产成A人片在线观看视频下载| 肃北| 东京热无码国产精品| 亚洲欧美综合精品成人导航| 亚洲国产性夜夜综合| 国产黄色精品一区二区三区| 欧美黑吊大战白妞| 国产中文字幕日韩精品| 图片区偷拍区小说区五月| 中文字幕久久精品波多野结| 粉嫩av一区二区三区蜜臀| 三级国产在线观看| 国产精品久久一区二区三区| 国产影片AV级毛片特别刺激|