五分鐘完成 ABP vNext 通訊錄 App 開發

来源:https://www.cnblogs.com/shanyou/archive/2020/03/18/12520894.html
-Advertisement-
Play Games

ABP vNext(後文簡稱Abp)是 Volo 公司堪稱藝術品級的應用開發框架,它基於領域驅動設計(DDD)的思維,創新地採用了模塊化的設計。Abp 目前無疑是 ASP.NET Core 開發框架中最先進和最優雅的存在。筆者認為,憑藉絕妙的模塊化設計和絲滑的開發體驗,Abp 有望超越 Spring ...


ABP vNext(後文簡稱Abp)是 Volo 公司堪稱藝術品級的應用開發框架,它基於領域驅動設計(DDD)的思維,創新地採用了模塊化的設計。Abp 目前無疑是 ASP.NET Core 開發框架中最先進和最優雅的存在。筆者認為,憑藉絕妙的模塊化設計和絲滑的開發體驗,Abp 有望超越 Spring 家族在歷史上的影響力。

模塊開發與應用開發的關係

使用 Abp 框架,你可以提前製作一些功能模塊,例如微信登錄、私信、博客、論壇等模塊,將它們打包備用。在開發具體的 App 應用時,你可以輕鬆將模塊安裝到你的工程中,節省了大量的重覆性工作。除了自己造輪子,你還可以在 NuGet 上安裝由開源社區維護的模塊,當然,社區也在等待你的貢獻。

五分鐘完成通訊錄 App 開發

今天我們不講模塊開發,而是從最簡單的應用開發入手,筆者將遵循 Abp 最佳實踐,帶你體驗如何在 5 分鐘內,使用 Abp 框架開發一個通訊錄 App。

第一步:使用 ABP CLI 生成項目

  1. 命令行安裝 ABP CLI:dotnet tool install -g Volo.Abp.Cli

  2. 命令行生成通訊錄 App 項目:abp new AddressBook(將在當前目錄中生成項目)

第二步:創建“聯繫人”實體

在 Abp 中,聯繫人應為聚合根 AggregateRoot,詳細請參考 Abp 官方手冊對於領域驅動設計(DDD)的講解。

  1. 新建 aspnet-core/src/AddressBook.Domain/Contacts 目錄

  2. 在目錄下手動創建 Contact.cs 文件

    public class Contact : AggregateRoot<Guid>
    {
        public virtual string Name { get; protected set; }
        
        public virtual string PhoneNumber { get; protected set; }
        
        public virtual string Address { get; protected set; }
        
        public virtual byte? Age { get; protected set; }
        
        public virtual DateTime? Birthday { get; protected set; }
        
        protected Contact() { }

        public Contact(
            Guid id,
            string name,
            string phoneNumber,
            string address,
            byte? age,
            DateTime? birthday) : base(id)
        {
            Name = name;
            PhoneNumber = phoneNumber;
            Address = address;
            Age = age;
            Birthday = birthday;
        }
    }
  1. 運行 Address.DbMigrator 項目,這是為了給資料庫建立基礎結構和數據

第三步:使用 AbpHelper 生成剩餘代碼

  1. 下載 AbpHelper GUI:https://github.com/EasyAbp/AbpHelper.GUI/releases

  2. 使用 Code Generator 功能,一鍵生成與 Contact 相關的全套代碼:
    EntityCodeGenerator

如果你是第一次使用,請通過左側的 Install or update AbpHelper CLI module 安裝 CLI 工具
如果你更習慣命令行操作,可以直接使用 AbpHelper CLI:https://github.com/EasyAbp/AbpHelper.CLI

第四步:開發完畢

  1. 啟動 AddressBook.Web 項目
    HomePage

  2. 登錄並使用通訊錄(admin 用戶的預設密碼是 1q2w3E*
    CreateContact
    ContactList

你一定註意到了,表單已被 abp-dynamic-form TagHelper 自動生成。另外,你只需要簡單的修改本地化文件,就能顯示出中文辭彙,這裡我們不做演示。

  1. Contact 的 RESTful API 也已經自動生成,如果需要它們,訪問路由 /swagger

    後記

我們的通訊錄項目天然包含:用戶許可權角色管理、多租戶 SaaS 支持,如果你打算系統的學習 Abp 框架,請閱讀官方手冊:https://docs.abp.io

文中使用的 AbpHelper 是由國內愛好者創建的 EasyAbp 開源組織製作的開發工具集,能明顯提高你的開發效率,並且完全免費。此外,EasyAbp 還提供了很多實用的模塊,瞭解更多:https://github.com/EasyAbp/EasyAbpGuide

下一節

在下一節中,筆者將會介紹,如何給通訊錄安裝私信模塊。此模塊由 EasyAbp 組織開發並持續維護,你甚至可以在商業項目中免費使用它。

原文地址:五分鐘完成 ABP vNext 通訊錄 App 開發


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • JVM的概念 JVM是Java Virtual Machine的簡稱。意為Java虛擬機。 JVM使用軟體模擬Java位元組碼的指令集。 規範 java語言規範 語法 if else else if、函數等語法 詞法 行終結符、空白符、註釋、標識符、關鍵字等 java記憶體模型 類載入連接過程 異常 . ...
  • 第一次作業 類圖 類複雜度 程式結構分析 第一次作業得程式按功能分為了三塊:輸入輸出,解析表達式和求導。整個程式的主體就在於Poly類中的解析字元串方法parsePoly,Term類和termHanlder方法實質上是當時為了應付CheckStyle被逼無奈才創建的。這樣面向過程的做法很符合以前編程 ...
  • JAVA反射概念及使用詳解 一、什麼是反射? 反射:框架設計的靈魂 框架:半成品軟體。可以在框架的基礎上進行軟體開發,簡化編碼 反射:將類的各個組成部分封裝為其他對象,這就是反射機制 ​ 好處: ​ 可以在程式運行過程中,操作這些對象。 ​ 可以解耦,提高程式的可擴展性。 圖片來源https://b ...
  • @2020.3.18 1、寫函數,,用戶傳入修改的文件名,與要修改的內容,執行函數,完成批量修改操作 2、寫函數,計算傳入字元串中【數字】、【字母】、【空格] 以及 【其他】的個數 3、寫函數,判斷用戶傳入的對象(字元串、列表、元組)長度是否大於5。 4、寫函數,檢查傳入列表的長度,如果大於2,那麼 ...
  • 數組 聲明 類型[] 數組名//建議使用 類型 數組名[] 數組聲明後不會分配記憶體,必須new 數組名 = new 類型[大小] e.g. int [] arr = new int[8]; 使用 數組下標從0開始 賦值 數組名[下標]=數據 e.g. arr[5]=8; 訪問 數組名[下標] e.g ...
  • 前言 今天在測試環境發佈 服務,發現死活找不到錯誤的地方,錯誤日誌也生成,然後就一頓 ,一頓 ,發現日誌就截止到我發服務之前, 服務結束的地方,如圖所示。 WTF,why,我是丈二和尚摸不著頭腦,後來我發現他這個服務不是像我之前那種 啟動的,他這個是使用 啟動的。 正文 第六感告訴我,系統啟動日誌中 ...
  • 如果同一個IP短時間內多次訪問統一網頁,可能會被系統識別出是爬蟲,因此使用代理IP可以很大程度上解決這一問題 常用的代理有: 西刺免費代理:www.xicidaili.com 快代理:www.kuaidaili.com 代理雲:www.dailiyun.com 那麼我們如何知道自己的代理IP是否已經 ...
  • 作者:李小翀 鏈接:https://www.zhihu.com/question/22764869/answer/31277656 來源:知乎 1.初始 初始階段 的小型系統 應用程式、資料庫、文件等所有的資源都在一臺伺服器上通俗稱為LAMP特征:應用程式、資料庫、文件等所有的資源都在一臺伺服器上。 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...