asp.net-coreasp.net-core入门

备注

.NET Core是由GitHub上的Microsoft和.NET社区维护的通用开发平台。它是跨平台的,支持Windows,macOS和Linux,可用于设备,云和嵌入式/物联网场景。

以下特性最好定义.NET Core:

  • 灵活部署:可以包含在您的应用程序中,也可以安装在并行用户或机器范围内。
  • 跨平台:在Windows,macOS和Linux上运行;可以移植到其他操作系统。受支持的操作系统(OS),CPU和应用程序方案将随着时间的推移而增长,由Microsoft,其他公司和个人提供。
  • 命令行工具:可以在命令行中执行所有产品方案。
  • 兼容:.NET Core通过 - .NET标准库与.NET Framework,Xamarin和Mono兼容。
  • 开源:.NET Core平台是开源的,使用MIT和Apache 2许可证。文档根据CC-BY许可。 .NET Core是一个.NET Foundation项目。
  • Microsoft支持:根据.NET Core Support,Microsoft支持.NET Core

版本

发行说明发布日期
RC1 * 1.0.0-RC1 二零一五年十一月十八日
RC2 * 1.0.0-RC2 2016年5月16日
1.0.0 1.0.0 2016年6月27日
1.0.1 1.0.1 2016年9月13日
1.1 1.1 2016年11月16日

从命令行创建一个新项目

可以使用dotnet 命令完全从命令行创建新的ASP.NET Core项目。

dotnet new web
dotnet restore
dotnet run
 

dotnet new web scaffolds一个新的“空”web项目。 web 参数告诉dotnet 工具使用ASP.NET Core Empty 模板。使用dotnet new -all 显示当前安装的所有可用模板。其他主要模板包括consoleclasslibmvcxunit

模板构建完成后,您可以恢复运行项目所需的软件包( dotnet restore ),然后编译并启动它( dotnet run )。

项目运行后,它将在默认端口上可用: http:// localhost:5000

安装和设置

安装Visual Studio

如果未安装Visual Studio,可以在此处下载免费的Visual Studio Community Edition 。如果已安装,则可以继续执行下一步。

创建ASP.NET核心MVC应用程序。

  1. 打开Visual Studio。
  2. 选择文件>新建项目。
  3. 在左侧的“模板”部分中,使用您选择的语言选择Web
  4. 在对话框中选择首选项目类型
  5. 可选:选择要定位的.NET Framework
  6. 为项目命名并指明是否要为项目创建解决方案。
  7. 单击“确定”以创建项目。

在此处输入图像描述

您将看到另一个对话框,用于选择要用于项目的模板:

在此处输入图像描述

每个描述都是不言自明的。对于第一个项目, 选择Web应用程序 ,它将包含所有默认配置,身份验证和一些现有内容。

由于这是一个介绍应用程序,并且不需要任何安全性或身份验证,因此您可以在对话框的右侧将身份验证选项更改为“无身份验证 ”, 然后单击“确定”以创建项目

然后,您应该在Solution Explorer中看到新项目:

在此处输入图像描述

按F5键运行应用程序并开始调试会话,该会话将在默认浏览器中启动应用程序:

在此处输入图像描述

您现在可以看到您的项目已在本地启动并运行,并已准备好作为构建应用程序的起点。

使用ASP.NET Core MVC的最小ASP.NET核心Web API

使用ASP.NET Core 1.0,MVC和Web API框架已合并到一个名为ASP.NET Core MVC的框架中。这是一件好事,因为MVC和Web API共享许多功能,但总是存在细微差别和代码重复。

然而,将这两者合并到框架1中也使得区分彼此更加困难。例如, Microsoft.AspNet.WebApi 表示Web API 5.xx框架,而不是新框架。但是,当您包含Microsoft.AspNetCore.Mvc (版本1.0.0 )时,您将获得完整的软件包。这将包含MVC框架提供的所有开箱即用功能。如Razor,标签助手和模型绑定。

当您只想构建Web API时,我们不需要所有这些功能。那么,我们如何构建简约的Web API?答案是: Microsoft.AspNetCore.Mvc.Core 。在新的世界中,MVC被分成多个包,这个包只包含MVC框架的核心组件,例如路由和授权。

对于这个例子,我们将创建一个最小的MVC API。包括JSON格式化程序和CORS。创建一个空的ASP.NET Core 1.0 Web应用程序并将这些包添加到project.json:

"Microsoft.AspNetCore.Mvc.Core": "1.0.0",
"Microsoft.AspNetCore.Mvc.Cors": "1.0.0",
"Microsoft.AspNetCore.Mvc.Formatters.Json": "1.0.0"
 

现在我们可以在启动类中使用AddMvcCore() 注册MVC:

public void ConfigureServices(IServiceCollection services)
{
    services.AddMvcCore()
            .AddCors()
            .AddJsonFormatters();
}
 

AddMvcCore 返回一个允许进一步构建的IMvcCoreBuilder 实例。配置中间件与通常相同:

public void Configure(IApplicationBuilder app)
{
    app.UseCors(policy =>
    {
        policy.AllowAnyOrigin();
    });
    app.UseMvc();
}
 

控制器

“旧”Web API附带了自己的控制器基类: ApiController 。在新的世界中没有这样的东西,只有默认的Controller 类。不幸的是,这是一个相当大的基类,它与模型绑定,视图和JSON.NET相关联。

幸运的是,在新的框架中,控制器类不必从Controller 派生出路由机制。只需在Controller 添加名称即可。这允许我们构建自己的控制器基类。我们称它为ApiController ,只是为了旧时的缘故:

/// <summary>
/// Base class for an API controller.
/// </summary>
[Controller]
public abstract class ApiController
{
    [ActionContext]
    public ActionContext ActionContext { get; set; }

    public HttpContext HttpContext => ActionContext?.HttpContext;

    public HttpRequest Request => ActionContext?.HttpContext?.Request;

    public HttpResponse Response => ActionContext?.HttpContext?.Response;

    public IServiceProvider Resolver => ActionContext?.HttpContext?.RequestServices;
}
 

[Controller] 属性指示默认控制器发现机制将类型或任何派生类型视为控制器。 [ActionContext] 属性指定在MVC创建控制器时应使用当前ActionContext 设置属性。 ActionContext 提供有关当前请求的信息。

ASP.NET Core MVC还提供了一个ControllerBase 类,它提供了一个没有视图支持的控制器基类。它仍然比我们的要大得多。如果你觉得方便,请使用它。

结论

我们现在可以使用新的ASP.NET Core MVC框架构建一个最小的Web API。模块化的封装结构使我们能够提供所需的封装,并创建精简简单的应用程序。

ASP.NET Core中的安装环境变量[Windows]

=>原帖<=

ASP.NET Core使用ASPNETCORE_ENVIRONMENT 环境变量来确定当前环境。默认情况下,如果在未设置此值的情况下运行应用程序,它将自动默认为Production 环境。

> dotnet run
Project TestApp (.NETCoreApp,Version=v1.0) was previously compiled. Skipping compilation.

Hosting environment: Production  
Content root path: C:\Projects\TestApp  
Now listening on: http://localhost:5000  
Application started. Press Ctrl+C to shut down. 
 

在Windows中设置环境变量

在命令行

您可以使用Windows中包含的setx.exe命令从命令提示符轻松设置环境变量。您可以使用它轻松设置用户变量:

>setx ASPNETCORE_ENVIRONMENT "Development"

SUCCESS: Specified value was saved.
 

请注意,未在当前打开的窗口中设置环境变量。您需要打开一个新的命令提示符以查看更新的环境。如果打开管理命令提示符并添加/ M开关,也可以设置系统变量(而不仅仅是用户变量):

>setx ASPNETCORE_ENVIRONMENT "Development" /M

SUCCESS: Specified value was saved.
 

使用PowerShell或者,您可以使用PowerShell设置变量。在PowerShell中,以及普通的用户和系统变量,您还可以使用$Env: 命令创建临时变量:

$Env:ASPNETCORE_ENVIRONMENT = "Development"
 

创建的变量仅在PowerShell会话期间持续 - 一旦关闭窗口,环境将恢复为其默认值。

或者,您可以直接设置用户或系统环境变量。此方法不会更改当前会话中的环境变量,因此您需要打开一个新的PowerShell窗口以查看更改。和以前一样,更改系统(机器)变量将需要管理访问权限

[Environment]::SetEnvironmentVariable("ASPNETCORE_ENVIRONMENT", "Development", "User")
[Environment]::SetEnvironmentVariable("ASPNETCORE_ENVIRONMENT", "Development", "Machine")
 

使用Windows控制面板如果您不是命令提示符的粉丝,可以使用鼠标轻松更新变量!单击Windows开始菜单按钮(或按Windows键),搜索environment variables ,然后选择编辑环境您帐户的变量: 在此处输入图像描述

选择此选项将打开“系统属性”对话框在此处输入图像描述

单击“环境变量”以查看系统上的当前环境变量列表。 在此处输入图像描述

假设您还没有名为ASPNETCORE_ENVIRONMENT 的变量,请单击“新建...”按钮并添加新的帐户环境变量: 在此处输入图像描述单击“确定”以保存所有更改。您需要重新打开任何命令窗口以确保加载新的环境变量。

使用Visual Studio代码开发Cross plateform aspnet核心应用程序

使用AspNetCore,您可以在任何平台上开发应用程序,包括Mac,Linux,Window和Docker。

安装和设置

  1. 此处安装Visual Studio代码
  2. 添加C#extesnion
  3. 安装dot net core sdk。你可以从这里安装

现在您拥有了所有可用的工具。开发应用程序。现在你需要一些脚手架选项。为此你应该考虑使用Yeoman。要安装Yeoman

  1. 安装NPM。为此,您需要在您的计算机上使用Node。从这里安装

  2. 使用NPM安装Yeoman

    npm install -g哟

  3. 现在安装aspnet生成器

    npm install -g generator-aspnet

现在我们在您的机器上进行了所有设置。首先让我们使用DotNetCore基本命令创建一个新项目,然后使用Yo创建一个新项目。

使用命令行的新项目

  1. 创建一个新的项目文件夹

    mkdir CoreApplication cd CoreApplication

  2. 使用默认命令行选项支持一个非常基本的dotnet项目

    dotnet新

新项目

  1. 还原包并运行应用程序

    dotNet恢复dotnet运行在此处输入图像描述

使用Yeoman作为脚手架选项

创建项目文件夹并运行Yo命令

yo aspnet
 

Yeoman会询问一些输入,比如Project Type,Project Name等

在此处输入图像描述

在此处输入图像描述

现在通过运行dotnet restore命令并运行应用程序来恢复软件包

使用VS Code开发应用程序

像运行visual studio代码一样在此处输入图像描述

现在打开文件并运行应用程序。您还可以搜索扩展程序以获取帮助。