Abp VNext 入門——讓ABP跑起來


因好多群友@我說 ,ABP他們簡單的了解了下,按照官方的教程一路下來跑不起來(倒在了入門的門口),才有了此文。

此文結合官方文檔,一步一步帶領大家讓ABP跑起來(跨過門口)。

建議大家一步一步實際動手操作下

一、Abp 簡介

ABP是用於創建現代Web應用程序的完整架構和強大的基礎設施! 遵循最佳實踐和約定,為你提供SOLID開發經驗.

ABP 是一個開源應用程序框架,專注於基於ASP.NET Core的Web應用程序開發,但也支持開發其他類型的應用程序.

二、項目創建

作為入門,這里就不使用CLI創建了,使用在線創建項目,在線地址:https://abp.io/get-started,為了演示,項目名稱就用官方的Acme.BookStore

Abp VNext 入門——讓ABP跑起來

 


下載完解壓后,使用VS2019 打開后

Abp VNext 入門——讓ABP跑起來

 


下面我將帶領大家搭建一個簡單的CURD,並簡單的帶大家認識它的分層及各層是干啥的。

三、開發教程

3.1、在 Acme.BookStore.Domain.Share 層下創建 BookType 枚舉

 public enum BookType   {        Undefined,        Adventure,        Biography,        Dystopia,        Fantastic,        Horror,        Science,        ScienceFiction,        Poetry   }

3.2、在 Acme.BookStore.Domain 層下創建Book實體

public class Book : AuditedAggregateRoot<Guid>   {        public string Name { get; set; }        public BookType Type { get; set; }        public DateTime PublishDate { get; set; }        public float Price { get; set; }   }

3.3、在 Acme.BookStore.EntityFrameworkCore 層下的 BookStoreDbContext 類中將 Book 實體加入

[ConnectionStringName("Default")]public class BookStoreDbContext : AbpDbContext<BookStoreDbContext>{   public DbSet<AppUser> Users { get; set; }   public DbSet<Book> Books { get; set; } }

3.4、將 Book 實體映射到數據庫表中

在 Acme.BookStore.EntityFrameworkCore 層下的 BookStoreDbContextModelCreatingExtensions 類中的 ConfigureBookStore 方法中添加 Book 實體的映射文件

    public static class BookStoreDbContextModelCreatingExtensions   {        public static void ConfigureBookStore(this ModelBuilder builder)       {            Check.NotNull(builder, nameof(builder));            builder.Entity<Book>(b =>           {                b.ToTable(BookStoreConsts.DbTablePrefix + "Books", BookStoreConsts.DbSchema);                b.ConfigureByConvention();                b.Property(x => x.Name).IsRequired().HasMaxLength(128);           });       }   }

3.5、數據遷移

  • 打開 程序包管理器控制台(PMC)
Abp VNext 入門——讓ABP跑起來

 


  • 選擇 Acme.BookStore.EntityFrameworkCore.DbMigrations 作為默認項目並使用 Add-Migraction 命令遷移項目 成功后會創建一個遷移類
Abp VNext 入門——讓ABP跑起來

 


Abp VNext 入門——讓ABP跑起來

 


3.6、添加種子數據(可選)

在 Acme.BookStore.Domain 層下創建 BookStoreDataSeederContributor 類

public class BookStoreDataSeederContributor : IDataSeedContributor, ITransientDependency   {        private readonly IRepository<Book, Guid> _bookRepository;        public BookStoreDataSeederContributor(IRepository<Book, Guid> bookRepository)       {            _bookRepository = bookRepository;       }        public async Task SeedAsync(DataSeedContext context)       {            if (await _bookRepository.GetCountAsync() <= 0)           {                await _bookRepository.InsertAsync(new Book               {                    Name = "1984",                    Type = BookType.Dystopia,                    PublishDate = new DateTime(1949, 6, 8),                    Price = 19.84f               },                autoSave: true);                await _bookRepository.InsertAsync(                    new Book                   {                        Name = "The Hitchhiker's Guide to the Galaxy",                        Type = BookType.ScienceFiction,                        PublishDate = new DateTime(1995, 9, 27),                        Price = 42.0f                   },                    autoSave: true               );           }       }   }

3.7、更新數據庫

將 Acme.BookStore.DbMigrator 設為啟動項目,並更改它下面的 appsettings.json 文件

更改 appsettings.json 文件中的數據庫連接字符串(這里我使用VS自帶的SqlServer數據庫)。

3.7.1、視圖 —> SQL Server對象資源管理器

Abp VNext 入門——讓ABP跑起來

 


3.7.2、創建數據庫 BootStore

Abp VNext 入門——讓ABP跑起來

&nb.........


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM