最新一版的.NET幾經改名,最終得到了.NET Core這個高大上的名稱,相應的ASP.NET MVC也跟着提供了ASP.NET Core MVC版本。
在.NET Core沒有穩定名稱時,叫做MVC6,模糊記得主推的概念就是MCV的controller和API的controller合二為一了,還沒來得及深入了解名稱就改了。
目前的版本以及名稱已經相對成熟,從.NET社區推薦的熱點文章來看,都是針對.NET Core給出的使用介紹。
從最近的了解來看,相比之前ASP.NET版本,是一個全新的框架,程序集包之類的都獨立出來了,比較的輕量級,當然能運行在Linux/Mac系統,這是基礎核心賣點之一。
還可以使用Visual studio code在非windows平台開發程序,擴寬了.NET開發人員的技能應用范圍。
那么新框架跟之前的ASP.NET項目結構比,增加了哪些內容和刪除了哪些內容,根據最近的了解做一個簡要的整理。
1.Global.asax-》Program.cs
之前版本Global是網站啟動的必經之路,因此很多配置都在Application_Start中被設置好。
.NET Core的默認項目中不存在Global.asax文件,取而代之的是Program.cs文件,這個代碼文件實際上提供了一個Main方法(第一感覺這是個控制台程序),默認代碼創建了WebHost,然后運行這個host。看到Main方法應該很熟悉,也很好理解,程序的主入口嘛,這樣也跟其他的非Web .NET程序程序就一致了。
WebHost比較關鍵的操作是綁定了一個Startup文件,詳看接下來的說明。
2.App_Start -》Startup.cs
這個文件夾的放的內容從名稱上就看得出來,在ASP.NET 5版本的時候默認保存一些網站啟動時候需要執行的配置代碼,比如路由,過濾器等。當然都是一些靜態文件,需要在Global的Application_Start()中調用。
剛才第一點也提到了,Global.asax不存在了,是通過WebHost綁定了一個Startup.cs文件。
在這個Startup.cs文件了包攬了所以的配置工作,只要在里面執行配置就可以了。
更靈活的是可以根據不同的部署環境提供多個不同的Startup文件。
3.App_Data -》刪除
這個文件夾之前版本也很少用到,一般只是做練習將數據放在本地,在.NET Core默認項目中不提供了。
4.Web.Config -》弱化
這個經典的文件從第一版的的ASP.NET就有,到了.NET Core之后還能使用,但是功能已經弱化,新的配置文件都通過appsettings.json提供,配置更加的靈活,相關的讀取配置的API也更加精簡。
5.Scripts文件夾 -》wwwroot
Scripts文件夾默認放在項目根目錄下,當然前端開發負責人會有自己的安排。.NET Core默認吧靜態文件都放入到了wwwroot文件夾下,結合bower的管理方式,會提供一個Lib文件夾,然后每一個組件一個文件夾的方式存在。
6.新增Dependencies
這里的Dependencies不是程序集的引用,而是針對客戶端的組件的引用,比如使用bower管理,就會提供一個bower文件夾,里面包含了引用的組件的版本信息,類似於nuget。
7.新增project.json
我認為這是最大的變化,之前程序集的引用都是使用nuget提供的packages.config文件來管理依賴的組件,現在都轉移到了project.json的dependencies節點中。
project.json的作用不僅僅是管理依賴的程序集,還可以設置目標框架版本、編譯、發布選項等。