<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # ASP.NET Core 教程 > 原文: [https://zetcode.com/articles/aspnetcore/](https://zetcode.com/articles/aspnetcore/) ASP.NET Core 教程是 ASP.NET Core 框架的入門教程,該框架用于在 C# 中構建跨平臺的 Web 應用。 本教程使用 ASP.NET Core 框架 1.1.0 版。 ## ASP.NET Core ASP.NET Core 是一個跨平臺,高性能,開放源代碼框架,用于構建現代的,基于云的,互聯網連接的應用。 ASP.NET Core 是對傳統 ASP.NET 框架的重新設計。 您可以在[使用 ASP Core](https://www.vkinfotek.com/asp-core-erp-software-contents.html) 開發 ERP 軟件中找到有關 ASP.NET Core 的更多信息。 ASP.NET Core 應用可以在 Windows,Linux 和 Mac 上運行。 ## ASP.NET Core 功能 以下是 ASP.NET Core 的主要功能: * 帶有 NuGet 包的模塊化設計 * 跨平臺開發 * 開源和基于社區 * 云端架構 * 內置依賴注入 * 與流行的前端技術集成 ## 安裝.NET Core CLI 工具 第一步是為您的操作系統安裝.NET Core 命令行工具。 在 Github [存儲庫](https://github.com/dotnet/cli)上可以找到安裝說明。 ```cs $ sudo sh -c 'echo "deb [arch=amd64] http://apt-mo.trafficmanager.net/repos/dotnet/ xenial main" > /etc/apt/sources.list.d/dotnetdev.list' $ sudo apt-key adv --keyserver apt-mo.trafficmanager.net --recv-keys 417A0893 $ sudo apt-get update ``` 我們向 Ubuntu 添加了一個新的非官方存儲庫。 ```cs $ sudo apt-get install dotnet-dev-1.1.0 ``` 我們安裝`dotnet`命令行工具。 ## .NET Core 控制臺應用 我們通過在 C# 中創建一個簡單的控制臺應用來測試安裝。 ```cs $ dotnet new console -o consapp Content generation time: 247.1035 ms The template "Console Application" created successfully. $ cd consapp/ $ ls consapp.csproj Program.cs ``` 使用`dotnet`命令,我們創建一個新的控制臺應用項目。 `consapp.csproj` ```cs <Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>netcoreapp1.1</TargetFramework> </PropertyGroup> </Project> ``` 這是項目配置文件。 `Program.cs` ```cs using System; namespace consapp { class Program { static void Main(string[] args) { Console.WriteLine("Console application"); } } } ``` 這是一個簡單的 C# 程序。 ```cs $ dotnet restore ``` 使用`dotnet restore`命令,下載必要的依賴項。 它調用 NuGet(.NET 包管理器)以還原依賴關系樹。 NuGet 將分析`consapp.csproj`文件,下載文件中所述的依賴項(或從計算機上的緩存中獲取它們),然后寫入`obj/project.assets.json`文件。 `project.assets.json`文件是編譯和運行程序所必需的。 ```cs $ dotnet build Microsoft (R) Build Engine version 15.1.1012.6693 Copyright (C) Microsoft Corporation. All rights reserved. consapp -> /home/janbodnar/prog/dotnet/consapp/bin/Debug/netcoreapp1.1/consapp.dll Build succeeded. 0 Warning(s) 0 Error(s) Time Elapsed 00:00:06.34 ``` 我們使用`dotnet build`命令來構建程序。 ```cs $ dotnet run Console application ``` 最后,我們使用`dotnet run`運行程序。 ## Visual Studio 代碼 Visual Studio Code 是 Microsoft 為 Windows,Linux 和 MacOS 開發的源代碼編輯器。 它包括對調試,嵌入式 Git 控制,語法突出顯示,智能代碼完成,代碼段和代碼重構的支持。 它可以用于開發 ASP.NET Core 應用。 可以從[網頁](https://code.visualstudio.com)下載 Visual Studio 代碼。 如果選擇 Visual Studio Code,則還需要安裝 OmniSharp C# 擴展。 ## ASP.NET Core 應用 在以下應用中,我們創建一個簡單的 ASP.NET Core 應用。 ```cs $ dotnet new web -o SimpleApp Content generation time: 221.9237 ms The template "ASP.NET Core Empty" created successfully. ``` 使用`dotnet new web`命令創建一個新的 Web 應用。 ```cs $ cd SimpleApp $ dotnet restore ``` 我們使用`dotnet restore`命令恢復包。 `Program.cs` ```cs using System.IO; using Microsoft.AspNetCore.Hosting; namespace SimpleApp { public class Program { public static void Main(string[] args) { var host = new WebHostBuilder() .UseKestrel() .UseContentRoot(Directory.GetCurrentDirectory()) .UseStartup<Startup>() .Build(); host.Run(); } } } ``` ASP.NET Core 應用是一個控制臺應用,可以通過`Main`方法創建 Web 服務器。 我們創建一個 Web 應用主機。 它使用 Kestrel Web 服務器。 `Build`和`Run`方法構建了`IWebHost`對象,該對象將托管應用并開始監聽傳入的 HTTP 請求。 主機是 Web 服務器的包裝器。 `WebHostBuilder`上的`UseStartup`方法為您的應用指定啟動類。 `Startup`類必須是公共類,并且必須具有兩個方法:`ConfigureServices`和`Configure`。 `ConfigureServices`定義了諸如 MVC 框架或 Entity Framework Core 之類的服務。 `Configure`定義了請求管道中的中間件。 中間件是一個處理請求和響應的應用組件。 `Startup.cs` ```cs using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Http; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; namespace SimpleApp { public class Startup { public void ConfigureServices(IServiceCollection services) { } public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) { loggerFactory.AddConsole(); if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.Run(async (context) => { await context.Response.WriteAsync("Hello there"); }); } } } ``` `Startup`類以簡單消息響應請求。 ```cs loggerFactory.AddConsole(); ``` 我們添加一個控制臺記錄器。 ```cs if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } ``` 在開發模式下,我們使用開發者異常頁面。 ```cs app.Run(async (context) => { await context.Response.WriteAsync("Hello there"); }); ``` 我們向請求添加最終處理器。 處理器以文本消息響應。 `WriteAsync`創建一個特定的線程來處理請求。 `WriteAsync`方法使用 UTF-8 將給定的文本異步寫入響應主體流。 ```cs $ dotnet run Hosting environment: Production Content root path: /home/janbodnar/prog/dotnet/SimpleApp Now listening on: http://localhost:5000 Application started. Press Ctrl+C to shut down. ``` 我們使用`dotnet run`命令運行該應用。 該應用已啟動,將在端口 5000 上監聽。 ```cs $ curl localhost:5000 Hello there ``` 我們使用`curl`工具創建了一個請求,應用以文本消息響應。 ## ASP.NET Core MVC 應用 在下一個應用中,我們設置一個使用 MVC 模式的 ASP.NET Core 應用。 模型-視圖-控制器(MVC)架構模式將應用分為三個區域:模型,視圖和控制器。 該模式有助于建立關注點分離。 ```cs $ dotnet new web -o WebApp $ cd WebApp ``` 我們創建一個 ASP.NET Core 應用。 ```cs $ mkdir Views Controllers ``` 我們為視圖和控制器創建兩個目錄。 ```cs $ dotnet add package Microsoft.AspNetCore.Mvc -v 1.1.3 ``` 我們將`Microsoft.AspNetCore.Mvc`包添加到項目中。 ```cs $ dotnet add package Microsoft.AspNetCore.StaticFiles -v 1.1.2\. This package adds support for MVC. ``` 我們將`Microsoft.AspNetCore.StaticFiles`包添加到項目中。 該包增加了處理靜態文件的能力。 `WebApp.csproj` ```cs <Project Sdk="Microsoft.NET.Sdk.Web"> <PropertyGroup> <TargetFramework>netcoreapp1.1</TargetFramework> </PropertyGroup> <ItemGroup> <Folder Include="wwwroot\" /> </ItemGroup> <ItemGroup> <PackageReference Include="Microsoft.AspNetCore" Version="1.1.2" /> <PackageReference Include="Microsoft.AspNetCore.Mvc" Version="1.1.3" /> <PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="1.1.2" /> </ItemGroup> </Project> ``` 引用將添加到`WebApp.csproj`構建文件。 ```cs $ dotnet restore ``` We restore the packages with `dotnet restore` command. `Program.cs` ```cs using System.IO; using Microsoft.AspNetCore.Hosting; namespace WebApp { public class Program { public static void Main(string[] args) { var host = new WebHostBuilder() .UseKestrel() .UseContentRoot(Directory.GetCurrentDirectory()) .UseStartup<Startup>() .Build(); host.Run(); } } } ``` 我們設置了 Web 應用主機。 `UseContentRoot`方法指定 Web 主機要使用的內容根目錄。 內容根是應用使用的任何內容(例如其視圖和 Web 內容)的基本路徑。 `Startup.cs` ```cs using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; namespace WebApp { public class Startup { public void ConfigureServices(IServiceCollection services) { services.AddMvc(); } public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) { loggerFactory.AddConsole(); app.UseDefaultFiles(); app.UseStaticFiles(); if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.UseMvc(routes => { routes.MapRoute( name: "hello", template: "{controller=Hello}/{action=Index}/"); }); } } } ``` 在`Startup`中,我們啟用 MVC,靜態文件并設置路由。 ```cs services.AddMvc(); ``` 使用`AddMvc`,我們將 MVC 中間件添加到應用中。 ```cs app.UseDefaultFiles(); app.UseStaticFiles(); ``` 我們設置了靜態文件。 靜態文件將從`wwwroot`目錄提供。 ```cs app.UseMvc(routes => { routes.MapRoute( name: "hello", template: "{controller=Hello}/{action=Index}/"); }); ``` 使用`UseMvc`,我們設置了路由。 路由是將請求 URL 解析為控制器處理器的過程。 控制器名為`HelloController`。 操作名稱是`Index`,這是`HelloController`中的方法名稱。 該操作的名稱也由視圖共享,稱為`Index.cshtml`。 該視圖位于`Views/Hello`子目錄中。 ASP.NET Core 在配置上使用約定,其中可以推斷出許多設置,而不必明確聲明。 `index.html` ```cs <!DOCTYPE html> <html> <body> <p> <a href="Hello?name=Peter&age=23">Get hello message</a> </p> </body> </html> ``` 這是主頁。 它包含一個鏈接,該鏈接將兩個參數發送到 Hello 控制器。 HTML 文件位于`wwwroot`目錄中。 `HelloController.cs` ```cs using Microsoft.AspNetCore.Mvc; using System; namespace WebApp.Controllers { public class HelloController : Controller { public ViewResult Index(string name, int age) { string msg = String.Format("Hello {0}, you are {1} years old", name, age); ViewBag.message = msg; return View(); } } } ``` 控制器包含`Index`方法,該方法是響應請求而調用的。 它的兩個參數自動映射到請求參數(通過配置進行約定)。 該方法生成一個消息字符串,并將其添加到`ViewBag`中。 `ViewBag`是一個簡單的對象,可用于將數據從控制器傳輸到視圖。 當某個操作返回一個視圖時,就會發生一個稱為視圖發現的過程。 視圖名稱是根據操作的名稱推斷出來的。 `Index.cshtml` ```cs <!DOCTYPE html> <html> <head> <title>Home</title> </head> <body> <h1>Welcome!</h1> <div> @ViewBag.message </div> </body> </html> ``` `Views/Hello`中的`Index.cshtml`是`Index`操作的視圖。 它顯示來自`ViewBag`的消息。 ![Displaying message](https://img.kancloud.cn/48/17/4817c4398b7812e2530f2f4c5f1f3a06_582x335.jpg) 圖:顯示消息 在本教程中,我們介紹了 ASP.NET Core 框架。 我們已經創建了兩個簡單的 ASP.NET Core 應用。 您可能也對以下相關教程感興趣: [C# 教程](/lang/csharp/), [C# 中的日期和時間](/articles/csharpdatetime/),[用 C# Mono 讀取網頁](/articles/csharpreadwebpage/)和 [C# Winforms 教程](/gui/csharpwinforms/)。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看