Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

translate to zh-Hans #11001

Merged
merged 3 commits into from
Dec 20, 2021
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
98 changes: 43 additions & 55 deletions docs/zh-Hans/Getting-Started-AspNetCore-Application.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
# 在AspNet Core MVC Web Application中使用ABP
# 在ASP.NET Core MVC Web 应用程序中使用ABP

本教程将介绍如何开始以最少的依赖关系开始使用ABP开发.
本教程将介绍如何开始以最少的依赖关系开始使用ABP开发.

通常情况下你需要下载一个 **[启动模板](Getting-Started-AspNetCore-MVC-Template.md)**
通常情况下你希望从 **[启动模板](Getting-Started-AspNetCore-MVC-Template.md)** 开始.

## 创建一个新项目

1. 使用Visual Studio 2019 (16.4.0+)创建一个新的AspNet Core Web Application:
1. 使用Visual Studio 2022 (17.0.0+)创建一个新的ASP.NET Core Web应用程序:

![](images/create-new-aspnet-core-application-v2.png)

Expand All @@ -21,15 +21,15 @@

## 安装 Volo.Abp.AspNetCore.Mvc 包

Volo.Abp.AspNetCore.Mvc是ABP集成AspNet Core MVC的包,请安装它到你项目中:
Volo.Abp.AspNetCore.Mvc是ABP集成ASP.NET Core MVC的包,请安装它到你项目中:

````
Install-Package Volo.Abp.AspNetCore.Mvc
````

## 创建ABP模块

ABP是一个模块化框架,它需要一个**启动 (根) 模块**继承自``AbpModule``:
ABP是一个模块化框架,它需要一个**启动(根)模块**继承自 `AbpModule`:

````C#
using Microsoft.AspNetCore.Builder;
Expand All @@ -43,21 +43,20 @@ namespace BasicAspNetCoreApplication
[DependsOn(typeof(AbpAspNetCoreMvcModule))]
public class AppModule : AbpModule
{
public override void OnApplicationInitialization(
ApplicationInitializationContext context)
public override void OnApplicationInitialization(ApplicationInitializationContext context)
{
var app = context.GetApplicationBuilder();
var env = context.GetEnvironment();

// Configure the HTTP request pipeline.
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Error");
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseHsts();
}

app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseConfiguredEndpoints();
Expand All @@ -68,49 +67,44 @@ namespace BasicAspNetCoreApplication

``AppModule`` 是应用程序启动模块的好名称.

ABP的包定义了这个模块类,模块可以依赖其它模块.在上面的代码中 ``AppModule`` 依赖于 ``AbpAspNetCoreMvcModule`` (模块存在于[Volo.Abp.AspNetCore.Mvc](https://www.nuget.org/packages/Volo.Abp.AspNetCore.Mvc)包中). 安装新的ABP的包后添加``DependsOn``是很常见的做法.
ABP的包定义了模块类,模块可以依赖其它模块.在上面的代码中 ``AppModule`` 依赖于 ``AbpAspNetCoreMvcModule`` ([Volo.Abp.AspNetCore.Mvc](https://www.nuget.org/packages/Volo.Abp.AspNetCore.Mvc)包定义). 安装新的ABP的包后添加``DependsOn``特性是很常见的做法.

我们在此模块类中配置ASP.NET Core管道,而不是Startup类中.

### 启动类

接下来修改启动类集成ABP模块系统:
接下来修改启动类集成到ABP模块系统:

````C#
using Microsoft.AspNetCore.Builder;
using Microsoft.Extensions.DependencyInjection;
using BasicAspNetCoreApplication;

namespace BasicAspNetCoreApplication
{
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddApplication<AppModule>();
}
var builder = WebApplication.CreateBuilder(args);

public void Configure(IApplicationBuilder app)
{
app.InitializeApplication();
}
}
}
builder.Services.ReplaceConfiguration(builder.Configuration);

builder.Services.AddApplication<AppModule>();

var app = builder.Build();

app.InitializeApplication();

app.Run();

````

``services.AddApplication<AppModule>()``添加了所有``AppModule``模块中定义的全部服务.

``Configure``方法中的``app.InitializeApplication()``完成初始化并启动应用程序.
``services.AddApplication<AppModule>()``添加了从``AppModule``中启动的所有模块中定义的所有服务.

``app.InitializeApplication()`` 初始化并启动应用程序.

## 运行应用程序!

启动该应用它将按预期运行.
启动该应用,它将按预期运行.

## 使用 Autofac 依赖注入框架

虽然AspNet Core的依赖注入(DI)系统适用于基本要求,但[Autofac](https://autofac.org/)提供了属性注入和方法拦截等高级功能,这些功能是ABP执行高级应用程序框架功能所必需的.
虽然ASP.NET Core的依赖注入(DI)系统适用于基本要求,但[Autofac](https://autofac.org/)提供了属性注入和方法拦截等高级功能,这些功能是ABP执行高级应用程序框架功能所必需的.

用Autofac取代AspNet Core的DI系统并集成到ABP非常简单.
用Autofac取代ASP.NET Core的DI系统并集成到ABP非常简单.

1. 安装 [Volo.Abp.Autofac](https://www.nuget.org/packages/Volo.Abp.Autofac) 包

Expand All @@ -132,27 +126,21 @@ public class AppModule : AbpModule
3. 修改``Program.cs``以使用Autofac:

````C#
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Hosting;
using BasicAspNetCoreApplication;

namespace BasicAspNetCoreApplication
{
public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
var builder = WebApplication.CreateBuilder(args);

public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
})
.UseAutofac(); // 添加这一行
}
}
builder.Host.UseAutofac(); //Add this line

builder.Services.ReplaceConfiguration(builder.Configuration);

builder.Services.AddApplication<AppModule>();

var app = builder.Build();

app.InitializeApplication();

app.Run();
````

## 源码
Expand Down