主頁 > 軟體設計 > XAF Architecture XAF架構

XAF Architecture XAF架構

2020-09-10 18:46:50 軟體設計

 

Applications built with the eXpressApp Framework are comprised of several functional blocks. The diagram below shows the basic blocks, indicates when and how these blocks are created and last, shows you the areas where you can extend your applications. An overview for each application building block is given later in this topic.

使用eXpressApp框架構建的應用程式由幾個功能塊組成,下圖顯示了基本塊,指出了何時以及如何創建這些塊,最后顯示了可以擴展應用程式的領域,本主題后面將給出每個應用程式構建塊的概述,

 

Architecture

#Storage

#ORM Layer

When building a business application, you will ultimately have to deal with data. If you are using the eXpressApp Framework, you do not actually have to create a database in a DBMS, customize tables, fields, etc. And you will not need to use low-level ADO.NET constructs to access your data. Instead, you will use one of the supported ORM tools - Entity Framework or eXpressPersistent Objects,

 

#存盤

# ORM層

在構建業務應用程式時,您最終必須處理資料,如果您正在使用eXpressApp框架,您實際上不必在DBMS中創建資料庫、自定義表、欄位等,您將不需要使用低級的ADO,NET結構來訪問資料,相反,您將使用一個受支持的ORM工具——物體框架
(EF) 或XPO

ORM tools allow you to describe data for your application using familiar code structures - classes, properties and their attributes. To create a data table, you need to declare a class. Its public properties will define data fields in your table. Of course, you can create as many tables as you need, and specify relations between them using specially designed attributes. Note that you do not have to do much extra work when building these classes. You will only need to derive them from proper classes and supply a couple of attributes - that's all. To help you get started, we provide the Business Class Library described in the following section. This library contains several ready-to-use classes (both for EF and XPO) which you can integrate into your applications. You can also review the source code of these classes for examples on proper data declaration.


ORM工具允許您使用熟悉的代碼結構(類、屬性及其屬性)來描述應用程式的資料,要創建資料表,需要宣告一個類,它的公共屬性將定義表中的資料欄位,當然,您可以根據需要創建任意多的表,并使用專門設計的屬性指定它們之間的關系,注意,在構建這些類時不需要做太多額外的作業,您只需要從適當的類中派生它們,并提供一些屬性即可,為了幫助您入門,我們提供了下面部分中描述的業務類別庫,這個庫包含幾個現成的類(EF和XPO),您可以將它們集成到您的應用程式中,您還可以查看這些類的源代碼,以獲得有關正確資料宣告的示例,

 

Since a data table is described by a class, the actual data is represented by a collection of class instances. So, to modify a field in a particular record, you need to get the desired object from the collection and change its property. That's a much simpler and more natural method of handling data. It hides all implementation details, letting you concentrate on your application's business logic.

由于資料表是由一個類來描述的,所以實際的資料是由一個類實體集合來表示的,因此,要修改特定記錄中的欄位,需要從集合中獲取所需的物件并更改其屬性,這是一種更簡單、更自然的資料處理方法,它隱藏了所有的實作細節,讓您專注于應用程式的業務邏輯,

 

Generally, you do not need to think about actual databases, except when you want to change the DBMS used by your application. Microsoft SQL Server is the default option. All you need to do to change a target DBMS is to provide an appropriate connection string. This is described in detail in the Connect an XAF Application to a Database Provider topic.

通常,您不需要考慮實際的資料庫,除非您希望更改應用程式使用的DBMS,Microsoft SQL Server是默認選項,要更改目標DBMS所需要做的就是提供適當的連接字串,將XAF應用程式連接到資料庫提供者主題中對此進行了詳細描述,

#Business Class Library

The Business Class Library provides you with the following:

  • Classes that define some frequently used entities like Person, Note, Organization, etc. You can use these classes as is, or derive your own classes if you need to extend or change them. You can also review the source code of these classes to learn how to properly implement your data structures.
  • Interfaces that you may need to implement in your data classes. Some sub-systems of the eXpressApp Framework require data to conform to particular rules. For instance, the security sub-system requires the User class to implement the IUser interface. So, if you have decided to develop your own class to represent application users, you will also have to implement this interface.

The image below shows some classes you will find in the Business Class Library.

#業務類別庫
Business Class庫為您提供了以下內容:
定義一些常用物體(如Person、Note、Organization等)的類,您可以按原樣使用這些類,或者在需要擴展或更改它們時派生自己的類,您還可以查看這些類的源代碼,以了解如何正確地實作資料結構,
您可能需要在資料類中實作的介面,eXpressApp框架的一些子系統需要資料符合特定的規則,例如,安全子系統需要User類來實作IUser介面,因此,如果您決定開發自己的類來表示應用程式用戶,那么您還必須實作這個介面,
下圖顯示了您將在Business類別庫中找到的一些類,

Business Objects Library

#User Interface (UI)

#WinForms, ASP.NET Web and Mobile Applications

One of the main goals of the eXpressApp Framework is to separate business logic from the application's visual representation. This makes it possible to create a WinForms application, Web site and Mobile application based on the same business logic. When you create a new application solution with the help of the eXpressApp Framework, a solution that includes two startup projects for desktop, web and mobile is generated. To learn more about application solution components, refer to the Application Solution Structure topic.

 

#用戶界面(UI)
# WinForms, ASP,NET Web和移動應用程式
eXpressApp框架的主要目標之一是將業務邏輯與應用程式的可視化表示分離,這使得基于相同的業務邏輯創建WinForms應用程式、Web站點和移動應用程式成為可能,當您在eXpressApp框架的幫助下創建一個新的應用程式解決方案時,將生成一個包含桌面、web和移動兩個啟動專案的解決方案,要了解有關應用程式解決方案組件的更多資訊,請參閱應用程式解決方案結構主題,

#Views

One of the key features in the eXpressApp Framework is automatic UI generation based on application data. Assume you have declared an ORM class that describes a person. This is all you need to get an application for storing contact information. You can start the application and it will display a person list using a grid control. You can add new entries or modify existing ones. These operations are performed using the automatically generated set of individual editors; each bound to a particular field.

The automatically generated UI elements used to display and manage data are called Views. In XAF, there are three types of Views.

 

#觀點
eXpressApp框架中的一個關鍵特性是基于應用程式資料自動生成UI,假設您已經宣告了一個描述人的ORM類,這是所有你需要得到一個存盤聯系資訊的應用程式,您可以啟動應用程式,它將使用網格控制元件顯示人員串列,您可以添加新的條目或修改現有的條目,這些操作是使用自動生成的單個編輯器集來執行的;每個都系結到一個特定的欄位,
用于顯示和管理資料的自動生成的UI元素稱為視圖,在XAF中,有三種型別的視圖,

  • List View

    List Views are root modules of your application. Usually, these are grids that display collections that you work with (data tables). You see one of them when you start your project, and you can switch between them using the Navigation System.

  • 串列視圖
    串列視圖是應用程式的根模塊,通常,這些網格顯示您使用的集合(資料表),當你開始你的專案時,你會看到其中一個,你可以使用導航系統在它們之間切換,
  • Architecture-ListViews

  • Detail View

    This View type deals with a single object (data record) and presents property values using standalone editors. You see these views when adding a new record or when modifying an existing one.

  • 詳細資訊視圖
    此視圖型別處理單個物件(資料記錄),并使用獨立編輯器顯示屬性值,在添加新記錄或修改現有記錄時,您將看到這些視圖,

  • Architecture-DetailViews

  • Dashboard View

    This is a special View type that allows you to display several Views side-by-side on a single screen (supported in WinForms and ASP.NET applications only).

  • 儀表板視圖
    這是一種特殊的視圖型別,它允許您在單個螢屏上并排顯示多個視圖(在WinForms和ASP中支持,網路應用程式),

    Architecture-DashboardViews

Views are typically built with DevExpress WinForms

controls, ASP.NET WebForms

controls and DevExtreme widgets. Of course, you can use any control you require to represent a List View or an editor within a Detail View. To learn how to supply your own control to an application, refer to the Using a Custom Control that is not Integrated by Default topic. For information on Views and other elements that form a user interface, please review documents from the UI Construction help section.

 

視圖通常是用DevExpress WinForms構建的
控制,ASP,凈WebForms
控制元件和DevExtreme小部件,當然,您可以使用任何需要的控制元件來表示串列視圖或詳細視圖中的編輯器,要了解如何將自己的控制元件提供給應用程式,請參閱使用默認主題未集成的自定義控制元件,有關構成用戶界面的視圖和其他元素的資訊,請查看UI構造幫助部分的檔案,

#Reports

Business applications are not just used to manage data. It is often useful to analyze trends, problem areas, and resource bottlenecks. And, you might need to have your data report not only on-screen, but also on paper. You can do this using the built-in, fully-functional reporting engine - the XtraReports Suite. With its help, you are free to build any reports you need, view them in both WinForms and ASP.NET Web applications, and of course, print them out.

All applications built with the eXpressAppFramework can include the Reports module. An end user can add a new report and customize its contents at runtime using the integrated End-User Designer in WinForms and ASP.NET applications. At design time, you can create predefined reports for end-users. Mobile applications support the report functionality as well, but you can only download a predefined report or report created in a WinForms or ASP.NET application.

The output produced by printing a control or executing a report can be exported in a number of formats, including RTF, HTML and PDF.

In addition to the Reports feature, the eXpressApp Framework supplies extra features that can be used in XAF applications. Refer to the following topics for details.

  • Concepts - Extra Modules
  • Comprehensive Tutorial - Extra Modules
  • #報告
    業務應用程式不僅僅用于管理資料,分析趨勢、問題領域和資源瓶頸通常是有用的,而且,您可能不僅需要將資料報告顯示在螢屏上,還需要將其顯示在紙上,您可以使用內置的全功能報告引擎——XtraReports套件來實作這一點,在它的幫助下,您可以自由地構建任何您需要的報告,在WinForms和ASP中查看它們,NET Web應用程式,當然,列印出來,
    所有使用eXpressAppFramework構建的應用程式都可以包含報表模塊,終端用戶可以使用集成的終端用戶設計器在WinForms和ASP中添加新的報告并在運行時定制其內容,網路應用程式,在設計時,您可以為最終用戶創建預定義的報告,移動應用程式也支持報表功能,但您只能下載預定義的報表或在WinForms或ASP中創建的報表,網路應用程式,
    列印控制元件或執行報告生成的輸出可以以多種格式匯出,包括RTF、HTML和PDF,
    除了Reports特性之外,eXpressApp框架還提供了可以在XAF應用程式中使用的額外特性,有關詳細資訊,請參閱以下主題,
    概念-額外模塊
    綜合教程-額外的模塊

#Behavior

#Built-in Controllers

#行為
#內置控制器

Controllers are objects that manage your application's flow. They are also responsible for end-user interaction. Even the simplest applications built with the eXpressApp Framework use a number of built-in Controllers supplied with the System Module and Extra Modules. These default Controllers are mostly responsible for data management. With their help, you can add new records, delete existing ones, perform full text search, etc.

控制器是管理應用程式流的物件,他們還負責終端用戶的互動,即使是使用eXpressApp框架構建的最簡單的應用程式,也會使用系統模塊和額外模塊提供的許多內置控制器,這些默認控制器主要負責資料管理,在他們的幫助下,您可以添加新記錄、洗掉現有記錄、執行全文搜索等,

For the most part, Controllers serve as containers for Actions. Like ORM classes are abstractions of data tables, Actions are abstractions of end-user interaction elements - buttons, menus, etc. An Action specifies the visual representation of a UI element and its associated code. So, you do not have to deal with low-level implementation details of particular editors, toolbar systems, context menus or anything else. And at the same time, this higher-level of abstraction allows the same Action to be used in WinForms, ASP.NET Web and Mobile applications.

在大多數情況下,控制器充當動作的容器,像ORM類是資料表的抽象,操作是終端用戶互動元素(按鈕、選單等)的抽象,操作指定UI元素及其關聯代碼的可視表示形式,因此,您不必處理特定編輯器、工具列系統、背景關系選單或其他任何東西的底層實作細節,同時,這種更高層次的抽象允許在WinForms、ASP中使用相同的操作,NET Web和移動應用程式,

For information on implementing your own Controllers and Actions, please review the following documents:

  • Basic Tutorial | Define Custom Logic and UI Elements
  • Comprehensive Tutorial | Extend Functionality

    This tutorial section shows you how to extend your application's user interface with the help of Controllers. You will create Controllers with different Action types and Controllers without a single Action.

  • Concepts | Controllers and Actions

    This section details the eXpressApp Framework's Controllers-Actions technique for extending applications with new features.

  • 有關執行你自己的控制器及行動的資料,請參閱以下檔案:
    基本教程|定義自定義邏輯和UI元素
    綜合教程|擴展功能
    本教程將向您展示如何在控制器的幫助下擴展應用程式的用戶界面,您將創建具有不同操作型別的控制器,而不創建單個操作的控制器,
    概念|控制器和動作
    本節詳細介紹了eXpressApp框架的controller - actions技術,用于擴展帶有新特性的應用程式,

#Application Model

#應用模型

All the information that the eXpressApp Framework uses to build user interfaces comes from the Application Model. For example, this information includes editor classes used for particular data types, or labels associated with particular fields. The Application Model is automatically filled with metadata queried from application components - like business objects or Controllers.

eXpressApp框架用于構建用戶界面的所有資訊都來自于應用程式模型,例如,此資訊包括用于特定資料型別或與特定欄位關聯的標簽的編輯器類,應用程式模型自動填充從應用程式組件(如業務物件或控制器)查詢的元資料,

Application Model definition files are stored in XML format, and can therefore be easily edited manually. But the eXpressApp Framework provides even an easier way - the Model Editor, which is integrated with Microsoft Visual Studio. You can use it for both design time and runtime customization. To run it at design time, double-click a .xafml file from any module or application project located in the Solution Explorer.

應用程式模型定義檔案以XML格式存盤,因此可以輕松地手動編輯,但是eXpressApp框架甚至提供了一種更簡單的方法—Model Editor,它集成了Microsoft Visual Studio,您可以將其用于設計時和運行時自定義,要在設計時運行它,請雙擊位于解決方案資源管理器中的任何模塊或應用程式專案中的.xafml檔案,

For more information about the Application Model, please refer to the following topics:

  • Basic Tutorial | Customize the Application UI Metadata
  • Comprehensive Tutorial | UI Customization

    Lessons in this section of the eXpressApp Framework tutorial demonstrate how you can use the Application Model to change some aspects of the application user interface.

  • Concepts | Application Model

    This help section details how the Application Model is loaded, and how you can use it to customize the application user interface.

    有關應用模式的詳細資料,請參閱以下主題:
    基本教程|自定義應用程式UI元資料
    綜合教程|用戶界面定制
    eXpressApp框架教程的這一部分將演示如何使用應用程式模型來更改應用程式用戶界面的某些方面,
    概念|應用程式模型
    本幫助小節詳細介紹如何加載應用程式模型,以及如何使用它來定制應用程式用戶界面,

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/3100.html

標籤:領域驅動設計

上一篇:簡單的學習,實作,領域事件,事件存盤,事件溯源

下一篇:CDC+ETL實作資料集成方案

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 面試突擊第一季,第二季,第三季

    第一季必考 https://www.bilibili.com/video/BV1FE411y79Y?from=search&seid=15921726601957489746 第二季分布式 https://www.bilibili.com/video/BV13f4y127ee/?spm_id_fro ......

    uj5u.com 2020-09-10 05:35:24 more
  • 第三單元作業總結

    1.前言 這應該是本學期最后一次寫作業總結了吧。總體來說,對作業的節奏也差不多掌握了,作業做起來的效率也更高了。雖然和之前的作業一樣,作業中都要用到新的知識,但是相比之前,更加懂得了如何利用工具以及資料。雖然之間卡過殼,但總體而言,這幾次作業還算完成的比較好。 2.作業程序總結 相比前兩個單元,此單 ......

    uj5u.com 2020-09-10 05:35:41 more
  • 北航OO(2020)第四單元博客作業暨課程總結博客

    北航OO(2020)第四單元博客作業暨課程總結博客 本單元作業的架構設計 在本單元中,由于UML圖具有比較清晰的樹形結構,因此我對其中需要進行查詢操作的元素進行了包裝,在樹的父節點中存盤所有孩子的參考。考慮到性能問題,我采用了快取機制,一次查詢后盡可能快取已經遍歷過的資訊,以減少遍歷次數。 本單元我 ......

    uj5u.com 2020-09-10 05:35:48 more
  • BUAA_OO_第四單元

    一、UML決議器設計 ? 先看下題目:第四單元實作一個基于JDK 8帶有效性檢查的UML(Unified Modeling Language)類圖,順序圖,狀態圖分析器 MyUmlInteraction,實際上我們要建立一個有向圖模型,UML中的物件(元素)可能與同級元素連接,也可與低級元素相連形成 ......

    uj5u.com 2020-09-10 05:35:54 more
  • 6.1邏輯運算子

    邏輯運算子 1. && 短路與 運算式1 && 運算式2 01.運算式1為true并且運算式2也為true 整體回傳為true 02.運算式1為false,將不會執行運算式2 整體回傳為false 03.只要有一個運算式為false 整體回傳為false 2. || 短路或 運算式1 || 運算式2 ......

    uj5u.com 2020-09-10 05:35:56 more
  • BUAAOO 第四單元 & 課程總結

    1. 第四單元:StarUml檔案決議 本單元采用了圖模型決議UML。 UML檔案可以抽象為圖、子圖、邊的邏輯結構。 在實作中,圖的節點包括類、介面、屬性,子圖包括狀態圖、順序圖等。 采用了三次遍歷UML元素的方法建圖,第一遍遍歷建點,第二、三次遍歷設定屬性、連邊,實作圖物件的初始化。這里借鑒了一些 ......

    uj5u.com 2020-09-10 05:36:06 more
  • 談談我對C# 多型的理解

    面向物件三要素:封裝、繼承、多型。 封裝和繼承,這兩個比較好理解,但要理解多型的話,可就稍微有點難度了。今天,我們就來講講多型的理解。 我們應該經常會看到面試題目:請談談對多型的理解。 其實呢,多型非常簡單,就一句話:呼叫同一種方法產生了不同的結果。 具體實作方式有三種。 一、多載 多載很簡單。 p ......

    uj5u.com 2020-09-10 05:36:09 more
  • Python 資料驅動工具:DDT

    背景 python 的unittest 沒有自帶資料驅動功能。 所以如果使用unittest,同時又想使用資料驅動,那么就可以使用DDT來完成。 DDT是 “Data-Driven Tests”的縮寫。 資料:http://ddt.readthedocs.io/en/latest/ 使用方法 dd. ......

    uj5u.com 2020-09-10 05:36:13 more
  • Python里面的xlrd模塊詳解

    那我就一下面積個問題對xlrd模塊進行學習一下: 1.什么是xlrd模塊? 2.為什么使用xlrd模塊? 3.怎樣使用xlrd模塊? 1.什么是xlrd模塊? ?python操作excel主要用到xlrd和xlwt這兩個庫,即xlrd是讀excel,xlwt是寫excel的庫。 今天就先來說一下xl ......

    uj5u.com 2020-09-10 05:36:28 more
  • 當我們創建HashMap時,底層到底做了什么?

    jdk1.7中的底層實作程序(底層基于陣列+鏈表) 在我們new HashMap()時,底層創建了默認長度為16的一維陣列Entry[ ] table。當我們呼叫map.put(key1,value1)方法向HashMap里添加資料的時候: 首先,呼叫key1所在類的hashCode()計算key1 ......

    uj5u.com 2020-09-10 05:36:38 more
最新发布
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:20:47 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:20:25 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:20:17 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:20:10 more
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:19:44 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:19:07 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:18:57 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:18:49 more
  • 05單件模式

    #經典的單件模式 public class Singleton { private static Singleton uniqueInstance; //一個靜態變數持有Singleton類的唯一實體。 // 其他有用的實體變數寫在這里 //構造器宣告為私有,只有Singleton可以實體化這個類! ......

    uj5u.com 2023-04-19 08:42:51 more
  • 【架構與設計】常見微服務分層架構的區別和落地實踐

    軟體工程的方方面面都遵循一個最基本的道理:沒有銀彈,架構分層模型更是如此,每一種都有各自優缺點,所以請根據不同的業務場景,并遵循簡單、可演進這兩個重要的架構原則選擇合適的架構分層模型即可。 ......

    uj5u.com 2023-04-19 08:42:41 more