日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

.NET Core 1.0 RC2 历险之旅

發(fā)布時間:2023/12/4 asp.net 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 .NET Core 1.0 RC2 历险之旅 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文章背景:對于.NET Core大家應該并不陌生, 從它被 宣布 到現(xiàn)在已經(jīng)有1-2年的時間了,其比較重要的一個版本1.0 RC2 也即將發(fā)布。.Net Core從一個一個的測試版到現(xiàn)在的RC2,經(jīng)歷了很多個大大小小的變化。特別是在RC1到RC2的更新之中,.NET Core命令行工具(dotnet cli)從 dnx 變?yōu)?dotnet,并且廢除了 DNVM 和 DNU,使得 .NET Core 的開發(fā)變得更為簡單,其相關(guān)工具鏈也基本成型。雖然網(wǎng)上關(guān)于.NET Core的示例項目不在少數(shù),而且微軟官方也提供了不少示例項目,但大多針對的是.NET Core的不同版本,因此很多示例項目并不是能很容易的運行起來。所以我決定寫一篇針對RC2這個版本的.NET Core入門文章并提供一些能直接運行的示例項目。

下載安裝 .NET Core SDK

從 dotnet cli github項目主頁找到最新版的.Net Core SDK下載:

https://github.com/dotnet/cli

例如 Mac OS X的最新版的.NET Core SDK的下載地址為:

https://dotnetcli.blob.core.windows.net/dotnet/beta/Installers/Latest/dotnet-dev-osx-x64.latest.pkg

安裝前請確認當前系統(tǒng)是否已經(jīng)安裝了老版本的.NET Core, 如果已經(jīng)安裝,請先卸載。

如在Mac OS X上已安裝的話,請運行如下命令刪除:

sudo rm -rf /usr/local/share/dotnet

在Mac OS X上安裝之前請先確保 openssl 已經(jīng)被安裝了:

brew install openssl

開發(fā)工具 Visual Studio Code 及其 C# 插件安裝

如不準備使用VSCode進行開發(fā)的話,請忽略此部分。我不確定最新版本的 Visual Studio 2015 Update 2 是否對.NET Core 1.0 RC2有很好的支持。

  • 從官方網(wǎng)站下載安裝 VSCode

    https://code.visualstudio.com/

  • 安裝VSCode C#插件

    運行VSCode, 然后使用快捷鍵 ? + P 啟動快速打開命令窗口,然后輸入如下命令安裝C#擴展。最新版的csharp擴展已支持 RC2 的.NET程序的調(diào)試。

    ext install csharp
  • 使用.NET CLI (dotnet) 創(chuàng)建,編譯和運行項目

  • 創(chuàng)建項目

  • 首先在控制臺/Terminal下進入你要創(chuàng)建項目的目錄,然后運行如下命令:

    ? ?dotnet new ? ?

    dotnet cli 創(chuàng)建新項目的時候支持項目類型參數(shù)-t,但當前只支持Console參數(shù)。:(

    運行之后會生成兩個文件

    project.json ? ?- ? 類似于.NET Framework里的項目文件
    Program.cs ? ? ?- ? 程序啟動入口 ? ?

    使用restore命令下載依賴

    dotnet restore

    如出現(xiàn)網(wǎng)絡錯誤導致restore失敗的情況請重試幾次,貌似這種情況比較少。

    如發(fā)現(xiàn)類似下面的Warning也請不要驚慌,這是由于CLI的版本號與下載下來的.NET Core類庫的版本號不一致導致的,這種情況不會影響編譯和運行。

    ?warn : Dependency specified was Microsoft.NETCore.App (>= 1.0.0-rc2-3002464) but ended up with Microsoft.NETCore.App 1.0.0-rc2-3002468.
  • 編譯項目

  • 在控制臺或Terminal打開項目所在目錄,運行如下命令編譯:

    ? ?dotnet build ? ?

    如出現(xiàn)如下類似編譯錯誤:

    ? error NU1002: The dependency Microsoft.CodeAnalysis.Common 1.2.0-beta1-20160202-02 does not support framework .NETCoreApp,Version=v1.0error NU1002: The dependency Microsoft.CodeAnalysis.CSharp 1.2.0-beta1-20160202-02 does not support framework .NETCoreApp,Version=v1.0

    出現(xiàn)這個問題的可能原因是NuGet上通過版本號匹配到的依賴包并不能使用,你需要做如下操作之后再重新restore一下。

    a. 在項目根目錄新增文件 NuGet.config, 并寫入以下內(nèi)容:


    c. 然后再重新運行 dotnet restore 之后編譯

  • 運行項目

    在控制臺或Terminal打開項目所在目錄,運行如下命令運行:

    dotnet run

    如遇如下錯誤,


  • 如本機 dotnet --version 命令返回值為 “1.0.0-rc2-002485”,則應runtime config中的版本號應替換為“1.0.0-rc2-3002485”。

    然后再嘗試運行 dotnet run

  • 調(diào)試項目 (Visual Studio Code)

    使用 VSCode 打開項目所在文件夾之后,VSCode 會問你是否添加啟用項目調(diào)試相關(guān)的文件,你選OK之后目錄下會新增文件夾“.vscode”,其中會包含兩個文件:

    launch.jsontasks.json

    當你發(fā)現(xiàn)無法調(diào)試失敗的時候,你可以到 launch.json 文件,檢查啟動所指向的文件是否正確:

    { ? ?"name": ".NET Core Launch (console)", ? ?..."program": "${workspaceRoot}/bin/Debug/netcoreapp1.0/netcore.dll", ? ?...}

  • 使用 .NET Core 進行 ASP.NET MVC 開發(fā)


    雖然 dotnet cli 并沒有提供直接創(chuàng)建 web/mvc項目的選項,但是我們還是可以手動來創(chuàng)建 mvc 項目的。

  • 首先是更新 project.json 來支持 mvc:



  • 在NuGet.config 文件中增加 ASP.NET 的包的下載地址,如此文件不存在請先添加:



  • 增加 Startup.cs 文件 然后在 Program.cs 增加啟動代碼:

    Startup.cs



    Program.cs



  • MVC 其它

    ASP.NET Core中 MVC 具體的開發(fā)方法,請參考官方文檔 https://docs.asp.net/en/latest/mvc/index.html 來學習使用,我在這里就不再累述了。
    完整示例可參考我在github上的示例項目:https://github.com/kerryjiang/dotnetcore-samples/tree/master/mvc

    MVC項目也可通過 dotnet run 命令運行,還可以使用VSCode進行調(diào)試。

  • 在 .NET Core 中使用 EntityFramework + Sqlite

    .NET Core 中的 EntityFramework 也在 RC2 也有較大的變化。包的名字從 "EntityFramework." 變化為 "Microsoft.EntityFrameworkCore."。
    如需使用Sqlite的話,project.json的包依賴應該為:


    然后在Startup.cs中注冊EF相關(guān)的服務和DbContext:

    public void ConfigureServices(IServiceCollection services){services.AddEntityFramework().AddEntityFrameworkSqlite().AddDbContext<WebsiteDbContext>(options => options.UseSqlite("Data Source=./mvcefsample.sqlite")); //設置鏈接字符串services.AddMvc(); }

    再到Configure里面初始化數(shù)據(jù)庫或者啟用DbMigration:

    完整示例可參考我在github上的示例項目:https://github.com/kerryjiang/dotnetcore-samples/tree/master/mvc-ef


    在 ASP.NET MVC Core 中使用 ASP.NET Identity


  • ASP.NET 中身份驗證是免不了的事情,首先第一步在 project.json 中添加包依賴:


  • 實現(xiàn)帶有 Identity 支持的 DbContext:



  • 然后在 Startup 中的 ConfigureSerivces 方法中注冊服務:



  • 再到 Startup 中的 Configure 方法中啟用 Identity:



  • 注意 app.UseIdentity() 這句必須放到啟用 MVC 之前,否則 Identity 無法生效,這個問題折騰了我?guī)讉€小時。:(

    由于 ASP.NET MVC 6 和 最新的 ASP.NET Identity 的變化,其使用方法與老版本的模版代碼略有不同。

    a. 頁面頭部登陸狀態(tài)部分頁面(/Views/Shared/_LoginPartial.cshtml),由于 taghelper 的引入和 模版引擎的變化,這個頁面的代碼看起來會和以前有明顯的不同:



    b. 新增 _ViewImports.cshtml (/Views/_ViewImports.cshtml) 的使用避免了重復在多個view里面增加相同的using和其它定義:

    @using Microsoft.AspNetCore.Identity
    @using MvcIdentitySample
    @using MvcIdentitySample.Models
    @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers

    這樣就不用在剛才的_LoginPartial.cshtml頁面里增加同樣的代碼了。

    總結(jié)

    大家通過以上介紹和示例應該可以了解到,當前使用.NET Core 來進行簡單的應用開發(fā)是可行的,dot cli(dotnet) 這個工具已經(jīng)比上個版本(RC1)的工具簡單方便了很多,而且統(tǒng)一的Web開發(fā)和Console開發(fā),CLI工具本身以后應該不會有太大的變化。因為.NET Core 1.0 RC2還在開發(fā)測試階段,有的包可能還沒有發(fā)布到NuGet上,因此而造成的找不到合適包的情況屬于常見問題之一,不過只要在NuGet.config中增加了合適的Package Source,這個問題就很好解決了。所以大家如果想要把自己的項目,公司的項目遷移到.NET Core, 現(xiàn)在就可以開始動手了,不用再等到時間不確定的 1.0 release。

    另外,本文所展示的示例代碼限于篇幅與排版,無法做到十分詳細,例如代碼中所需要的using并未提及,還需要讀者來自行添加(VS里ALT+SHIFT+F10, VSC里面好像只能手動點感嘆號?)。

    而且此文旨在嘗試.NET Core的可用性,因此并未對如ASP.NET MVC 6和 EF7相關(guān)技術(shù)做深入探討,如需了解請查看相關(guān)技術(shù)文檔:

  • ASP.NET MVC

  • EntityFramework

  • 最后再提醒大家一次,本文中所涉及的代碼的完整示例項目已放到 github 上,歡迎大家fork/star/send pr:

    https://github.com/kerryjiang/dotnetcore-samples


    原文地址:http://www.cnblogs.com/jzywh/p/dotnetcorerc2.html


    .NET社區(qū)新聞,深度好文,微信中搜索dotNET跨平臺或掃描二維碼關(guān)注

    贊賞

    人贊賞

    總結(jié)

    以上是生活随笔為你收集整理的.NET Core 1.0 RC2 历险之旅的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。