亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

Visual Studio 2015 開發 ASP.NET 5 有何變化?

2019-11-17 01:52:42
字體:
來源:轉載
供稿:網友

Visual Studio 2015 開發 asp.net 5 有何變化?

本篇博文目錄:

  • ASP.NET 5 模版
  • ASP.NET 5 目錄結構
  • 前端管理工具
  • 無編譯開發
  • Microsoft Git PRovider
  • 智能感知和錯誤信息
  • Smart Unit Testing
  • 等待發現。。。

Visual Studio 2015 Preview 版本部分說明:

  • ASP.NET 5 Preview runtime with VS2015 Preview only.
  • ASP.NET 5 Preview tooling with VS2015 Preview only.
  • ASP.NET tooling update for both VS2015 Preview and VS2013 Update 4.
  • ASP.NET runtime updates, most of which are in VS2013 Update 4 as well.
  • WebForm 4.6 improvement for VS2015 Preview only

在以上版本說明中,注意反復出現的關鍵詞“only”,也就是說,如果你想要體驗這次微軟發布的一系列新的東西,比如:C# 6.0、ASP.NET 5、EntityFramework 7.0 等(Visual Studio 其他版本暫不支持),那么首先你需要下載并安裝 Visual Studio 2015 Preview。

在以往微軟發布或更新 Visual Studio 版本時,我們開發 ASP.NET 應用程序,帶給我們的變化其實并不是很大,或者說你根本就感受不到變化,你感受到的只是下載安裝了幾個 G 的 Update 更新包,但這次微軟發布更新的 ASP.NET,無疑是巨大的,首先我們來看下 ASP.NET 5 的新功能介紹:

  • Web Forms、MVC 和 Web API 統一編程模型。
  • 無編譯開發體驗(no-compile),修改代碼文件,無需編譯,只需要瀏覽器刷新即可。
  • 無縫云開發支持(Cloud-ready environment configuration)。
  • 新的 HTTP 請求管道(更快)。
  • 內置依賴注入
  • NuGet 管理一切,甚至是運行時本身。
  • 在 IIS 中運行,或自托管(self-hosted)在進程中。
  • GitHub 開源,意味著你可以查看源代碼,或貢獻自己的代碼。
  • ASP.NET 5 運行在 .NET Framework 或 .NET Core 的 Windows 上(關鍵詞:.NET Core)。
  • .NET Core 支持并行版本(side-by-side versioning)。
  • ASP.NET 5 可以運行在 OS X 和 linux(Mono 運行時)。

下面我們看下使用 VS2015 開發 ASP.NET 5 過程中,有哪些“新鮮”的東西。

ASP.NET 5 模版

VS2013 新建 ASP.NET 項目:

VS2015 新建 ASP.NET 5 項目:

從圖中就可以看到,使用 VS 2015 新建 ASP.NET 5 項目,我們并不能像 VS 2013 那樣可以選擇 Web Forms、Web Api,也就是說 ASP.NET 5 是把 Web Forms、MVC 和 Web Api 強制集成到一塊的,并沒有分開創建各自項目的選擇,我們也可以從命名空間上可以看出,比如 VS 2013 新建的 ASP.NET 項目。

  • MVC 路由配置命名空間為:System.Web.Mvc;
  • Web Api 路由配置命名空間為: System.Web.Http;

而在 ASP.NET 5 中,所有的路由配置命名空間統一為:Microsoft.AspNet.Routing; 路由配置示例代碼:

app.UseMvc(routes =>{    //MVC Route    routes.MapRoute(        name: "default",        template: "{controller}/{action}/{id?}",        defaults: new { controller = "Home", action = "Index" });    //Web Api Route    routes.MapWebApiRoute("DefaultApi", "api/{controller}/{id?}");});

ASP.NET 5 目錄結構

新建 ASP.NET 5 項目,解決方案目錄結構:

這邊簡單說一下我所了解到的,不一定準確,僅作參考:

global.json

global.json 文件存放在“Solution Items”解決方案目錄下,“to make better support for project-to-project references. It contains “sources”: [“src”] element, indicating the “src” folder as the parent folder for looking for project references.”,這段是我在 MSDN 一篇博文中摘錄的,新建項目的時候,你會發現在 global.json 中,默認有這樣的配置:

{    "sources": [ "src", "test" ]}

僅有的一段配置,我所理解的是 sources 表示此解決方案下的目錄結構,src 為解決方案目錄(從上面的示意圖就可以看出),test 為此 sources 的別名,如果有多個解決方案目錄,直接在 global.json 文件中添加 sources 配置即可,有人可能會問?為什么要這樣進行配置?所有的的項目管理不都是在 *.sln 中進行配置的嗎?用記事本打開 ASP.NET5.sln 文件,摘取一段配置:

Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{F96F5906-2577-49AD-9693-1809EF74348E}"ProjectSection(SolutionItems) = preProjectglobal.json = global.jsonEndProjectSectionProjectSection(FolderGlobals) = preProject__JSONSchema = http://json.schemastore.org/globalEndProjectSectionEndProject

這段配置其實我不是很懂,但看起來和在 MAC OS 中 Sublime Text 中開發 ASP.NET vNext 項目所保存的 *.sln 非常相似,這意味著什么呢?是不是說明跨平臺開發的 ASP.NET vNext 項目,可以使用不同的開發工具打開?這個我沒有試過,不過從 json 格式的 global.json 項目配置文件就可以看出一點,我覺得這個如果可以的話(可以意味著可能),將是非常棒的!

wwwroot

wwwroot 可以看作是 ASP.NET 5 變化點中提到的自托管(self-hosted),我自己暫時沒有對這個進行研究,你可以看一下 wwwroot 中具體的文件目錄,其實除了靜態文件(CSS、JS等),其他并沒有什么了,也沒有我們常見的 bin 文件夾下的一大堆程序集文件,使用 VS2015 發布應用程序,也會生成一個 wwwroot 文件夾,不過與解決方案中 wwwroot 不同的是,發布后的文件夾多了一個 bin 文件,其中只有一個 AspNet.Loader.dll 程序集,AspNet.Loader.dll 是什么東西?我也不是很清楚,Google 搜索了下,又發現幾個關鍵詞:OWIN、Helios,然后又發現了一篇非常棒的文章,摘錄一段:

Helios runtime without OWIN.In this section we use the Helios runtime assembly named Microsoft.AspNet.Loader.IIS.dll that is a standalone assembly and it does not have the direct integration with the OWIN pipeline. The application uses the APIs exposed by the Helios rather then using the OWIN extensibility points by the Microsoft.Owin.Host.IIS.

另外,在新建 ASP.NET5 項目的屬性頁,有一個這樣的配置:

摘錄自張善友一篇博文的部分文字:

K Runtime Environment(KRE)這是一個命令行環境,將構建并運行(不再有真正的區別)從他們的新 project.json 。ASP.NET vNext 將 packages.config、NuGet 配置(nuspec)以及項目文件(csprojs)合并到統一的項目依賴配置文件 project.json 中。有個簡單的應用程序 K Version Manager (KVM) 負責安裝 KRE,可以安裝多個版本的 KRE,并可以在他們之間自由切換。

在 KRE target version 中有四個配置選項,默認選項配置為:KRE-CLR-x86.1.0.0-beta1,這部分內容我沒有找到相關資料說明,我只在 MSDN 中找到一篇不相關博文的部分說明(并沒有具體說明不同選項的不同之處):The ASP.NET 5 Application's Property Page is a tool window and can be used to specify the KRE target version, the debug target, and whether binaries and NuGet packages should be created during a Visual Studio build.

Dependencies、References

Dependencies 翻譯為”依賴“,References 翻譯為“引用”,Dependencies 下有兩個“目錄”:Bower 和 NPM,簡單說就是 Bower 下為前端文件(CSS、JS),也可以為前端框架,如 bootstrap,通過 bower.json 進行配置加載,NPM(Node Package Manage)Node.js 的包管理器,可以理解為前端包管理器,通過 package.json 進行配置,以上都是 VS2015 對前端管理增加的新的東西,有些還不是微軟自己的東西,我也是剛開始學習,具體怎么配置管理,后面有說明。

References 就是我們一般見到的“Bin”或“引用”,和之前不同的是,目錄中只有 ASP.NET 5.0 和 ASP.NET Core 5.0,其中所有的程序集都是通過 project.json 文件中的 dependencies 進行配置管理,為什么目錄結構變了?而不是我們常見的“引用”下面加載所有的程序集,這樣有什么好處?其實我自己覺得一點就是引用更加規范了,我新建的是 ASP.NET 5 類型的項目,那所有的程序集應該都必須適用于此框架下,比如 EntityFramework 7.0 就暫時只適用 ASP.NET 5,新建 AS.NET 5 Class Library 也是如此:

project.json

project.json 是 ASP.NET 5 項目中最最主要的文件,里面包含了此項目的很多配置,有點像我們常使用的 Web.config,project.json 文件是 json 格式,對應架構為:http://json.schemastore.org/project,貼一下示例代碼:

{    /* Click to learn more about project.json  http://go.microsoft.com/fwlink/?LinkID=517074 */    "webroot": "wwwroot",    "version": "1.0.0-*",    "dependencies": {        "ClassLibrary1": "",        "EntityFramework.SqlServer": "7.0.0-beta1",        "EntityFramework.Commands": "7.0.0-beta1",        "Microsoft.AspNet.Mvc": "6.0.0-beta1",        //"Microsoft.AspNet.Mvc.WebApiCompatShim": "6.0.0-beta1",        "Microsoft.AspNet.Diagnostics": "1.0.0-beta1",        "Microsoft.AspNet.Diagnostics.Entity": "7.0.0-beta1",        "Microsoft.AspNet.Identity.EntityFramework": "3.0.0-beta1",        "Microsoft.AspNet.Security.Cookies": "1.0.0-beta1",        "Microsoft.AspNet.Server.IIS": "1.0.0-beta1",        "Microsoft.AspNet.Server.WebListener": "1.0.0-beta1",        "Microsoft.AspNet.StaticFiles": "1.0.0-beta1",        "Microsoft.Framework.ConfigurationModel.Json": "1.0.0-beta1",        "Microsoft.Framework.CodeGenerators.Mvc": "1.0.0-beta1",        "Microsoft.Framework.Logging": "1.0.0-beta1",        "Microsoft.Framework.Logging.Console": "1.0.0-beta1",        "Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0-beta1"    },    "commands": {        /* Change the port number when you are self hosting this application */        "web": "Microsoft.AspNet.Hosting --server Microsoft.AspNet.Server.WebListener --server.urls h
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品国产亚洲伊人久久| 国产精品扒开腿做爽爽爽视频| 久久九九全国免费精品观看| 精品国内自产拍在线观看| 久久夜色精品国产亚洲aⅴ| 国产欧美日韩高清| 91精品视频在线免费观看| 成人欧美一区二区三区黑人孕妇| 色偷偷88888欧美精品久久久| 久久久精品久久久| 国产精品免费小视频| 日韩中文有码在线视频| 国产成人久久久精品一区| 91欧美精品午夜性色福利在线| 久久精品视频va| 欧美最猛性xxxx| 91在线网站视频| 国产亚洲精品久久久久久牛牛| 97精品免费视频| 午夜精品一区二区三区视频免费看| 国产精品一区二区三区久久久| 国产欧美一区二区白浆黑人| 日韩成人在线视频观看| 亚洲精品久久久久久久久久久久| 欧美成人精品影院| 欧美成在线观看| 韩国欧美亚洲国产| 国产国语刺激对白av不卡| 国产一区二区在线播放| 精品露脸国产偷人在视频| 精品久久久久久久久久久久久久| 中文字幕欧美视频在线| 欧美特级www| 成人免费视频97| 中文字幕综合在线| 亚洲美女性生活视频| 精品福利在线视频| 中文在线不卡视频| 九九精品在线播放| 欧美激情视频免费观看| 亚洲午夜女主播在线直播| 亚洲欧洲免费视频| 日韩中文字幕视频在线观看| 97香蕉超级碰碰久久免费软件| 日韩免费观看高清| 日韩欧美在线国产| 不卡在线观看电视剧完整版| 亚洲香蕉成视频在线观看| 亚洲精品资源在线| 日韩一中文字幕| 麻豆国产精品va在线观看不卡| 成人av番号网| 国产精品久久久久久久久久久不卡| 亚洲日韩第一页| 性色av一区二区三区红粉影视| 日韩欧中文字幕| 亚洲精品自拍视频| 欧美日韩国产一中文字不卡| 毛片精品免费在线观看| 亚洲精品v天堂中文字幕| 日韩中文有码在线视频| 成人免费视频在线观看超级碰| 欧洲日本亚洲国产区| 欧美成人黄色小视频| 日韩av影片在线观看| 久久精品国产96久久久香蕉| 国产视频久久久久| 在线播放国产一区中文字幕剧情欧美| 久久精品人人做人人爽| 亚洲缚视频在线观看| 国外视频精品毛片| 亚洲欧美一区二区三区在线| 国产一区二区动漫| 欧美精品电影在线| 亚洲男人的天堂网站| 国产精品第一第二| 久久久久久91香蕉国产| 欧美亚洲视频在线观看| 国产精品美女午夜av| 日韩在线一区二区三区免费视频| 国产免费成人av| 国产精品露脸自拍| 国产日韩在线看片| 欧美日韩国产丝袜另类| 欧美黄色片视频| 国外色69视频在线观看| 国产精品美女www爽爽爽视频| 国产成一区二区| www高清在线视频日韩欧美| 亚洲成在人线av| 久久久久久久久亚洲| 日韩欧美aⅴ综合网站发布| 中文字幕欧美日韩| 亚洲国产精品系列| 美日韩精品免费观看视频| 91在线观看免费网站| 亚洲一区二区三区久久| 国产精品久久av| 91社影院在线观看| 亚洲第一精品电影| 亚洲欧美激情精品一区二区| 亚洲va码欧洲m码| 黄色一区二区三区| 久久久人成影片一区二区三区观看| 日韩在线观看免费全集电视剧网站| 亚洲精品欧美极品| 亚洲成av人乱码色午夜| 亚洲精品在线观看www| 日韩成人激情视频| 不卡中文字幕av| 欧美色欧美亚洲高清在线视频| 国产精品白丝jk喷水视频一区| 国产精品久久久久久久一区探花| 91中文字幕一区| 亚洲第一男人天堂| 欧美精品videosex牲欧美| 日韩中文字幕第一页| 中文字幕亚洲无线码在线一区| 久久综合伊人77777| 精品动漫一区二区| 一区二区国产精品视频| 欧美极品美女电影一区| 欧美日韩第一视频| 91情侣偷在线精品国产| 伊人久久综合97精品| 韩国三级电影久久久久久| 欧美激情精品久久久久久大尺度| 91色精品视频在线| 91亚洲精品久久久久久久久久久久| 国产精品极品美女粉嫩高清在线| 久久九九有精品国产23| 亚洲第一区在线| 国产亚洲精品综合一区91| 亚洲美女精品成人在线视频| 亚洲激情视频网| 日韩黄色高清视频| 97免费在线视频| 欧美最近摘花xxxx摘花| 日本久久久久亚洲中字幕| 久久久精品国产亚洲| 成人天堂噜噜噜| 精品久久久久久久久久久久| 伊人成人开心激情综合网| 国产香蕉精品视频一区二区三区| 精品国产91久久久久久| 久久久久中文字幕| 日韩在线视频播放| 亚洲一区二区久久| 欧美一性一乱一交一视频| 亚洲人线精品午夜| 国产91色在线|| 中文字幕亚洲情99在线| 亚洲综合大片69999| 国产精品视频一| 国产成人精品网站| 久久国产精品久久久久| 欧美成人精品影院| 国产精品久久精品| 国产成人综合一区二区三区| 亚洲欧美另类国产| 亚洲japanese制服美女| 欧美成人免费在线视频| 日本在线精品视频| 日本免费一区二区三区视频观看|