本文是ABP官方文档翻译版,翻译基于 3.2.5 版本

官方文档分四部分

一、 教程文档

二、ABP 框架

三、zero 模块

四、其他(中文翻译资源)

 

本篇是第一部分的第一篇。

第一部分分三篇

1-1 手把手引进门

1-2 进阶

1-3 杂项 (相关理论知识)

 

第一篇含两个步骤。

1-1-1 ASP.NET Core & Entity Framework Core 后端(内核)含两篇 (第二篇链接

1-1-2 ASP.NET MVC, Web API, EntityFramework & AngularJs  前端

 

现在进入正文 

土牛语录:Halil ibrahim Kalkan30 Jul 2017

以下是手把手引进门教程,基于 ASP.NET Core, Entity Framework Core ,ABP 框架 创建Web 应用, PS: 自带自动的测试模块哦。

本文目录如下:

介绍

  前期准备

创建应用

正式开发

  创建任务实体 Entity

  将任务添加到数据库上下文 DbContext

  创建第一个数据迁移

  创建数据库

  编写任务服务

  测试任务服务

  任务列表展示

    添加菜单

    创建任务 Controller 和 视图模型

    任务列表页面

    本地化

    任务过滤

    任务列表页面的自动化测试

其他相关内容

文章修改历史

版权所有

 

介绍

这是系列文章的第一部分:使用 ASP.NET Core, Entity Framework Core 和 ASP.NET Boilerplate 创建N层Web应用 

在本文中,我将指导大家创建一个样例(跨平台的多层Web应用),该样例会用到如下工具(请读者提前准备):

 ABP 框架中会默认使用 Log4Net 和 AutoMapper 。

我们同时还会使用以下技术:

演示的开发项目是一个简单的任务管理应用,用于将任务分配出去。我不会一层一层的进行开发,而是随着应用的拓展直接切换所需的层次。随着应用的推拓展,我将会介绍所需的ABP和其他框架的特性。

 

前期准备

开发样例时需要以下工具,请提前在你的机器上进行安装:

创建应用

首先使用ABP模版(http://www.aspnetboilerplate.com/Templates)创建一个web应用项目,命名为"Acme.SimpleTaskApp" 。创建模板时可以设置自己的公司名称(比如Acme)。

本样例使用MPA(Multi Page Web Application)多页面模式(注:即使用MVC和Razor技术)进行开发,本文不使用SPA(注:土牛的SPA是使用Angular)单页面模式。同时为了使用最基础的开发模板功能,本文不使用Module Zero模块。

ABP 教程文档 1-1 手把手引进门之 ASP.NET Core & Entity Framework Core(官方教程翻译版 版本3.2.5)

 

ABP 模版会创建一个多层的解决方案,如下图:

 ABP 教程文档 1-1 手把手引进门之 ASP.NET Core & Entity Framework Core(官方教程翻译版 版本3.2.5)

模板会根据输入的名字自动创建6个项目。

  • core  领域层/业务层,包含实体Entity,领域服务 domain service 等等
  • Application 应用层 , 包含DTO,应用服务 application service 等等
  • Entity Framework 基础设施层 ,EF core 数据库集成处理 (从其他层抽象出来的EF core)
  • Web 展示层 , 即Asp.net MVC层
  • Tests 单元测试和集成测试,含应用层,领域层,基础设施层,不含Web展示层
  • Web.Tests ASP.NET Core集成测试,包含web展示层的全部集成测试

以上是没有选择zero的项目结果,如果你选择了zero,项目结构就会变成下图:

ABP 教程文档 1-1 手把手引进门之 ASP.NET Core & Entity Framework Core(官方教程翻译版 版本3.2.5)

当你把应用运行起来后,你会看到下图所示的用户界面:

 ABP 教程文档 1-1 手把手引进门之 ASP.NET Core & Entity Framework Core(官方教程翻译版 版本3.2.5)

这个应用包含一个顶级菜单栏,包含空的首页,关于页,还有一个语言的下拉选项。

 

正式开发

创建任务实体 Entity

我们从创建一个简单的任务实体 Task Entity 开始,由于它属于领域层,把它加到 core 项目里。

 

代码如下: 

 1 using System;
 2 using System.ComponentModel.DataAnnotations;
 3 using System.ComponentModel.DataAnnotations.Schema;
 4 using Abp.Domain.Entities;
 5 using Abp.Domain.Entities.Auditing;
 6 using Abp.Timing;
 7 
 8 namespace Acme.SimpleTaskApp.Tasks
 9 {
10     [Table("AppTasks")]
11     public class Task : Entity, IHasCreationTime
12     {
13         public const int MaxTitleLength = 256;
14         public const int MaxDescriptionLength = 64 * 1024; //64KB
15 
16         [Required]
17         [MaxLength(MaxTitleLength)]
18         public string Title { get; set; }
19 
20         [MaxLength(MaxDescriptionLength)]
21         public string Description { get; set; }
22 
23         public DateTime CreationTime { get; set; }
24 
25         public TaskState State { get; set; }
26 
27         public Task()
28         {
29             CreationTime = Clock.Now;
30             State = TaskState.Open;
31         }
32 
33         public Task(string title, string description = null)
34             : this()
35         {
36             Title = title;
37             Description = description;
38         }
39     }
40 
41     public enum TaskState : byte
42     {
43         Open = 0,
44         Completed = 1
45     }
46 }
View Code

相关文章:

  • 2022-01-23
  • 2021-09-27
  • 2021-05-27
  • 2022-01-29
  • 2018-12-29
  • 2021-04-09
  • 2021-10-04
猜你喜欢
  • 2022-12-23
  • 2021-04-28
  • 2018-01-03
  • 2021-08-12
  • 2020-09-30
  • 2022-01-16
相关资源
相似解决方案