AngularJS000.Introduction to ASP.NET Core–【Asp.net core 介绍】


Introduction to ASP.NET Core

Asp.net core 介绍

270 of 282 people found this helpful

By Daniel Roth, Rick
Anderson
and Shaun
Luttin

Meng.Net 自译

ASP.NET Core is a significant redesign of ASP.NET. This topic introduces
the new concepts in ASP.NET Core and explains how they help you

Asp.net core 是 asp.net
的基本点重构版本 , 本文介绍asp.net core新的定义,并且解释你怎么样

develop modern web apps.

付出现代web 应用.

Sections:

What is
ASP.NET
Core

ASP.NET Core is a new open-source and cross-platform framework for
building modern cloud based internet connected applications, such as

Asp.net core 是三个新的
,开源的,跨平台的框架, 可用来创设现代的,基于云连接的应用程序,例如:

web apps, IoT apps and mobile backends. ASP.NET Core apps can run on
.NET Core or on the full
.NET Framework. It was architected to

web应用,物联网应用,移动后台.
Asp.net core 程序 能够运作在.net core 或然 .net framework 上.
它被创设

 provide an optimized development framework for apps that are deployed
to the cloud or run on-premises. It consists of modular components

提供3个最优化的选用开发框架,可以布置在云或运维在地点.
它由最小限度模块化组件

with minimal overhead, so you retain flexibility while constructing your
solutions. You can develop and run your ASP.NET Core apps cross-

构成.
由此构建程序时你能够保证灵活性. 你可以 跨平台 开发/运维你的asp.net core
应用 在

platform on Windows, Mac and Linux. ASP.NET Core is open source at
GitHub.

Windows /mac /linux 系统,
asp.net core 在github 上是开源的 .

Why build
ASP.NET
Core

The first preview release of ASP.NET came out almost 15 years ago as
part of the .NET Framework. Since then millions of developers have

用作.net framework 的一有个别,
第3个asp.net 预览 已放发布抢先15年了 . 从此,数百万的开发者

used it to build and run great web apps, and over the years we have
added and evolved many capabilities to it.

用它 创设/运维 伟大的web应用,
并且在这个年中大家给她新增并扩大了诸多作用.

ASP.NET Core has a number of architectural changes that result in a much
leaner and modular framework. ASP.NET Core is no longer based on

Asp.net core
有局部结构划设想计上的改观,使得其高度凝练,模块化. Asp.net core 不在基于
system.web.dll .

System.Web.dll. It is based on a set of granular and well factored
NuGet packages. This allows you to optimize
your app to include just the

它依据 贰个细粒度的 /
因素分解的 nuget 包集合 . 那样 你就能够优化你的施用,使其仅包涵

NuGet packages you need. The benefits of a smaller app surface area
include tighter security, reduced servicing, improved performance, and

您需求的 nuget 文件.  好处是
二个小的 引用 不过带有了平安/低耗/演进/

decreased costs in a pay-for-what-you-use model.

下降您的消费成本.

With ASP.NET Core you gain the following foundational improvements:

行使 asp.net core 你获取了
以下基本的核查:

  • A unified story for building web UI and web APIs

一个 构建 web UI / web api
的集合形式

集成 现代的客户端框架 及
开发流程

三个 基于云的
环境计划种类

内嵌 信赖注入 DI

  • New light-weight and modular HTTP request pipeline

新的 轻量级的 / 模块化 的 http
请求管道

  • Ability to host on IIS or self-host in your own process

可以 宿主与iis 或者
自宿主

  • Built on .NET Core, which supports
    true side-by-side app versioning

以 .net core 作为基础, 援助并行 版本 控制

  • Ships entirely as NuGet packages

壹齐以 nuget 包作为承载

  • New tooling that simplifies modern web development

新的工具简化现代web开发

  • Build and run cross-platform ASP.NET apps on Windows, Mac and Linux

编译并跨平台运维,在
windows/mac/linux 系统上

  • Open source and community focused

开源/开源社区,帮助的

Application
anatomy
   

应用程序解析

An ASP.NET Core app is simply a console app that creates a web server in
its Main method:

一个asp.net core
应用,是一个不难易行的控制台应用在它的main方法中开创的web服务.

 

AngularJS 1AngularJS 2

 1 using System;
 2 using Microsoft.AspNetCore.Hosting;
 3 
 4 namespace aspnetcoreapp
 5 {
 6     public class Program
 7     {
 8         public static void Main(string[] args)
 9         {
10             var host = new WebHostBuilder()
11                 .UseKestrel()
12                 .UseStartup<Startup>()
13                 .Build();
14 
15             host.Run();
16         }
17     }
18 }

Program.cs

 

Main uses
WebHostBuilder,
which follows the builder pattern, to create a web application host. The
builder has methods that define the web server

Main 方法运用 WebHostBuilder
创设了3个 Host 。 WebHostBuilder 中 定义了
创设web服务器(Kestrel)的艺术。

(for example UseKestrel) and the startup class (UseStartup). In the
example above, the Kestrel web server is used, but other web servers can
be

在地点的事例中,内定使用了
Kestrel 服务器,同时也得以钦命使用任何的服务器(如IIS)。

specified. We’ll show more about UseStartup in the next section.
WebHostBuilder provides many optional methods including
UseIISIntegration for

有关 Startup
大家在底下的章节中将会讲课越来越多。WebHostBuilder 类提供了累累可选方法,如
UseIISIntegration() 能够应用IIS宿主

hosting in IIS and IIS Express and UseContentRoot for specifying the
root content directory. The Build and Run methods build the IWebHost
that

程序,UseContentRoot() 
提供根目录。Build()  创设 热点

will host the app and start it listening for incoming HTTP requests.

Run()  将起来监听程序的 HTTP
请求。

Startup

The UseStartup method on WebHostBuilder specifies the Startup class for
your app.

WebHostBuilder 类
UseStartup() 方法应用你在程序中钦点的 Startup 类。

 

AngularJS 3AngularJS 4

 1 public class Program
 2 {
 3     public static void Main(string[] args)
 4     {
 5         var host = new WebHostBuilder()
 6             .UseKestrel()
 7             .UseStartup<Startup>()
 8             .Build();
 9 
10         host.Run();
11     }
12 }

Program.cs

 

The Startup class is where you define the request handling pipeline and
where any services needed by the app are configured. The Startup class

在 Startup 类中您将定义
请求处理管道 和 注册配置使用所需的 服务。

must be public and contain the following methods:

Startup 类必须是 public 的
,并且带有下边四个措施:

 

AngularJS 5AngularJS 6

 1 public class Startup
 2 {
 3     public void ConfigureServices(IServiceCollection services)
 4     {
 5     }
 6 
 7     public void Configure(IApplicationBuilder app)
 8     {
 9     }
10 }

Startup.cs

 

  • ConfigureServices defines the services (see
    Services
    below) used by your app (such as the ASP.NET MVC Core framework,
    Entity Framework

  ConfigureServices()
定义了选用中必要的劳动,如:ASP.NET MVC Core、Entity Framework
Core、Identity 等等。

Core, Identity, etc.)

  • Configure defines the
    middleware
    in the request pipeline

  Configure()
定义了请求管道中的中间件。

Services

A service is a component that is intended for common consumption in an
application. Services are made available through dependency injection.

service 是1种在 应用
中被用来公共使用的
组件。服务(Services)通过注重注入(DI)的点子利用。

ASP.NET Core includes a simple built-in inversion of control (IoC)
container that supports constructor injection by default, but can be
easily

Asp.net core 内置了IOC
容器,那么些容器暗许使用构造函数注入的艺术,他能够大致的交替掉你自身选用的第一方IOC容器。

replaced with your IoC container of choice. In addition to its loose
coupling benefit, DI makes services available throughout your app. For

除此之外松耦合的裨益外,DI 让
services 在您的全部应用程序进度中都有效,

example,
Logging is
available throughout your app. See Dependency
Injection

for more details.

如:Logging

Middleware

In ASP.NET Core you compose your request pipeline using
Middleware.
ASP.NET Core middleware performs asynchronous logic on an

在 asp.net core
中,你将用中间件组成你的乞求管道。中间件在 HttpContext
上将异步调用执行,一个履行完后会按梯次执行下3个

HttpContext and then either invokes the next middleware in the sequence
or terminates the request directly. You generally “Use” middleware by

要么直接终止退出请求。你平时会这么使用中间件:

taking a dependency on a NuGet package and invoking a corresponding
UseXYZ extension method on the IApplicationBuilder in the Configure

在Configure() 中
IApplicationBuilder 实例上 使用形如 UseXYZ 的增加方法。

method.

ASP.NET Core comes with a rich set of prebuilt middleware:

Asp.net core 官方
提供了壹组可用的中间件:

You can also author your own custom
middleware
.

如出一辙,你也能够自定义你协调的中间件。

You can use any OWIN-based middleware with ASP.NET
Core. See Open Web Interface for .NET
(OWIN)
for
details.

Servers

The ASP.NET Core hosting model does not directly listen for requests;
rather it relies on an HTTP
server
implementation to forward the request

Asp.net core 的host
模块不会一贯监听请求;当然了,它借助于贰个 HTTP server
的实现。

to the application. The forwarded request is wrapped as a set of feature
interfaces that the application then composes into an HttpContext.

落实类转递过来的呼吁依据借口约定组装进
HttpContext 中。

ASP.NET Core includes a managed cross-platform web server, called
Kestrel,
that you would typically run behind a production web server like

Asp.net core
包罗一个被托管的、跨平台的web服务器(Kestrel),就像iis
或 nginx 一样。

IIS or nginx.

Content
root

The content root is the base path to any content used by the app, such
as its views and web content. By default the content root is the same as

根目录(The content
root)是应用中保有剧情的根目录,如 views 。暗中认可意况下,

application base path for the executable hosting the app; an alternative
location can be specified with WebHostBuilder.

它与宿主app执行的采纳根目录相同;也可用
WebHostBuilder 指定。

Web
root

The web root of your app is the directory in your project for public,
static resources like css, js, and image files. The static files
middleware will

The web root 目录是你使用中
静态能源文件(css、js)等的根目录。

only serve files from the web root directory (and sub-directories) by
default. The web root path defaults to <content root>/wwwroot,
but you can

暗中认可情形下,静态能源中间件唯有在文件从web
root 目中呼吁时才服务。暗中同意情状下 The web root 的门路是

specify a different location using the WebHostBuilder.

<content root>/wwwroot
,同时此路径你也足以在WebHostBuilder 中其余钦赐不相同的途径。

Configuration

ASP.NET Core uses a new configuration model for handling simple
name-value pairs. The new configuration model is not based on

Asp.ent core 用了3个新的
配置处理模块 来处理大概的 键-值 对。 新的安插处理模块不再基于
System.Configuration

System.Configuration or web.config; rather, it pulls from an ordered
set of configuration providers. The built-in configuration providers
support a

web.config
当然,它从计划提供程序中拉去。 内置的布局提供程序援助

variety of file formats (XML, JSON, INI) and environment variables to
enable environment-based configuration. You can also write your own

伍连串型的文书(xml、json、ini)并且
环境变量能够依据环境铺排。同样,你也得以协调写

custom configuration providers.

自定义的布署提供程序。

See
Configuration
for more information.

Environments

Environments, like “Development” and “Production”, are a first-class
notion in ASP.NET Core and can be set using environment variables. See

像 Development 、 Production
环境,在 asp.net core 中是壹种美好的概念 ,
并且是可配备使用的环境变量。

Working with Multiple
Environments

for more information.

Build web
UI and web APIs using ASP.NET Core
MVC

  • You can create well-factored and testable web apps that follow the
    Model-View-Controller (MVC) pattern. See
    MVC and
    Testing.
  • You can build HTTP services that support multiple formats and have
    full support for content negotiation. See Formatting Response
    Data
  • Razor
    provides a productive language to create
    Views
  • Tag
    Helpers

    enable server-side code to participate in creating and rendering
    HTML elements in Razor files
  • You can create HTTP services with full support for content
    negotiation using custom or built-in formatters (JSON, XML)

用完全受援助的,使用内置或自定义的json
格式化器 成立 自定义的 http 服务

  • Model
    Binding

    automatically maps data from HTTP requests to action method
    parameters
  • Model
    Validation

    automatically performs client and server side validation

Client-side
development

ASP.NET Core is designed to integrate seamlessly with a variety of
client-side frameworks, including
AngularJS,
KnockoutJS
and
Bootstrap.

Asp.net core
从布署性上无缝集成了客户端支出 框架 ,蕴含:AngularJSKnockoutJS
Bootstrap

See Client-Side
Development
for
more details.

Next
steps


© Copyright 2016, Microsoft. Revision 406ff0d3.

 

                                         蒙

                                    2016-09-23 
15:31  周五

 

 

 

         

                     

 

相关文章