如何看待ASP.NET 5 is dead?

ASP.NET 5 is dead

ASP.NET 5 改名 ASP.NET Core 1.0


不過是給新東西改個名字罷了,又不是放棄http://ASP.NET。 微軟一貫喜歡隨意起名,也不查查黃曆,看看八字什麼的……,真是太不慎重了!比如VB與http://VB.NET,ASP與http://ASP.NET,看上去一樣,實際上根本是兩個東西。

好了,說正事。

這段時間我比較認真地看了看http://ASP.NET 5的官方文檔,動手寫了些Demo,雖然http://ASP.NET 5從底向上重寫了,但在應用層來看,代碼其實改動不算大,相比之下,原來的框架,確實顯得有點龐大和臃腫,比如MVC5與Web API 2原來各搞一套,現在終於搬到一塊住了,原先HttpModule/HttpHandler與Owin Middleware混在一起,現在全部簡化為一種類型的中間件Middleware,整個管線即需即裝即卸,內置功能「剛好夠用」的IoC容器(對諸如Ninject之類的第三方容器來說,這不是個好消息),還有,支持Bower,Gulp等前端工具,而且跨平台……

現在我上課用的教學示例都開始逐步切換到http://ASP.NET 5了,不得不說,用了之後,確實越來越喜歡它,不再想倒回去用老版本了,等正式版發布之後,計劃著把我自己的個人網站也逐步切換到http://ASP.NET 5。哦,現在不叫http://ASP.NET 5了,改名http://ASP.NET core 1.0了,PPT中所有的名字都得改過來,這點倒比較討厭……


這是一次恰如其分的改名,不改名才真是奇怪呢。

我在此前的文章 .NET 開源和跨平台是怎麼回事 里有提到:「微軟重寫了 .NET!這是真的。區別於以往的 .NET,微軟現在提供了全新的運行時 .NET Core,幾乎完全重寫了的 FCL——CoreFx,全新的編程範式 DNX Project 模型,全新的編程工具 Visual Studio Code。我想,即便為這個新的事物取個新的名字也並不為過。」

這次真是不同於以往產品換一個模式改一個名字、產品間合併來一個新名字那樣,因為這次跨平台且開源的 .NET Core 與之前的 Full .NET Framework 是獨立且完全不同的東西——如果說還有一些關係的話,那就是 http://ASP.NET Core 可以仍以 Full CLR 的方式運行。

一個開發平台最底層開發語言、編譯器、運行時和框架類庫這些,在 .NET Core 上完全使用了全新的實現。而包含上述這些在內,以及周邊一系列常用框架均跨平台、且開源。

沒有理由不給 http://ASP.NET Core 一個新的名字。

有幾位看客一樣的答案是沒有認真去了解過 http://ASP.NET Core。


我還以為會直接叫vNext 1.0呢。

這樣又可以說微軟又把http://ASP.NET放棄了。


看它圖裡面的意思,是.NET Core 1.0可以在三大內核上面跑了嗎


就改個名而已,不用緊張。。。


可以說mvc 6和web api 2的解耦是完美的。core 1也適合跨平台。TagHelper很好用,有點angular的feel。

但是有個看似很小,但是很大的問題就是 兼容性。一些老的c#庫是還沒完全兼容 core 1,希望快點完成這跨平台的使命,投入生產吧

現在居然連有名的Jetbrain公司都要為.net core做新的IDE,叫做rider,跨平台指日可待。。。然後c#上的開源資源就與日俱增。


微軟改名部又立功了。


Aspnet core 1.0 包括core fx,core clr ,http://asp.net 和Aspnet cli是一個完全重寫的全新產品和Aspnet 4.6 沒血緣關係

Core 可以跨平台,適用於互聯網應用和雲部署

full framework 只能在win上跑 考慮到企業界這麼多年的投資,他們估計會以不同速度並行發展

Aspnet core 1.0 只是 .net full framework 的子集 但是會做到api兼容並且可以不改代碼直接針對不同平台編譯運行。

Aspnet core 近期改變不了當前格局。

互聯網公司繼續javaLinuxPHPpython那一套,企業部門級應用繼續.net fullframework/window,企業級應用繼續Java/Linux


2333333, 這也不是第一次了吧

wp7 -&> wp8

vb -&> http://vb.net

asp -&> http://asp.net

別人家說Completely redesign,一般就是換個背景換個控制項修了幾個bug

微軟說completely redesign,一般是重新寫了一套完全不同的代碼,並且不兼容老版本,寫個遷移助手給你都算大發慈悲了。

----------------------

面試官:「什麼? 剛寫兩個月http://ASP.NET 1.0? 好特么意思說你五年經驗的.net程序員?」


看到這,我又想起了,之前有人問WP難道就沒有翻身的機會了嗎?。有人回答,有,每次都翻身360°


1、http://ASP.NET 5.0是不等於http://ASP.NET MVC 6的

http://ASP.NET 5.0是一個新的東西,它不同於以前的http://ASP.NET不同於Web Form與Web Page 也不同於原先版本的MVC或者是WEB API。它更像與nodejs相似,怎麼說呢,就是你可以在配置文件中用app.use(),app.add()等。你甚至可以脫離IIS自己手動創建自己的伺服器。一切規則都由你自己定義。

2、http://ASP.NET 5.0與http://ASP.NET 4.0 3.0 2.0 與http://ASP.NET WEB API .http://ASP.NET MVC 12345的關係

眾所周知,微軟對於新事物的命名是比較容易讓人混淆的,這讓人看起來像是一個程序員在喝醉狀態下對其命名的結果。開始http://ASP.NET 5.0是叫做vNext的。而現在其實應該叫做http://ASP.NET CORE ,它與http://ASP.NET 4.5 ~ 1.0 除了語法類庫程序編寫上相同,其內部架構是完全不同的。你可以用VS 2015 with Update 1 建立一個http://ASP.NET 5.0的EMPTY項目,會看到確實有所不同。裡面的.net framework被抽象成為新的一個東西稱謂DNX。項目的名稱也不再是,csproj而成了xproj。那麼它與WEB API和MVC 1~5是什麼關係呢?

http://ASP.NET 5.0(CORE,vNext)本質上與WEB API和MVC 1-5是沒有關係的。如果非要說有關係就是它的類庫語法書寫規則與開發模式與WEB API等類似,它更像是一個大的腳手架裡面的所有定義都由你來決定。上手難度還是有些高。

3、http://ASP.NET MVC 6 與 http://ASP.NET MVC 5.0(Core ,vNext)的關係

他們兩者的關係更像是nodejs與fade和express的關係。

MVC 6中的所有語法規則結構基本是沿襲MVC 1-5的。當然這只是方便開發。你可以創建一個空的http://ASP.NET 5.0空項目通過在startup.cs和project.json中的配置手動建立MVC的結構和目錄。這都是被允許的。當然相當麻煩。

4、令人興奮的是

    • 新的http://ASP.NET 5.0中修改程序代碼不用再進行重新編譯啦!
    • 新的http://ASP.NET 5.0參考了NODEJS,LARAVEL等LINUX下開發等優點,可以進行包管理通過BOWER和gulp,所需要的前端類庫都會被自動歸類到wwwroot下的lib文件夾
    • 對BOOTSTRAP的良好支持,可以通過工具欄進行DRAGDROP進行完全HTML標準的標籤創建、
    • 新的http://ASP.NET 5.0 中加入了HTML的tag-helper 在新建的項目中你可以看到有一些HTML級聯代碼中會出現asp-開頭的,不要害怕這與&
    • 跨平台開發以及部署,當然這是里程碑的東西,相當於去年索尼手機的4K屏。

微軟現在覺悟了,或者說是微軟終於被世俗的眼光動搖。微軟創造的方便的開發套路並沒有太多開發者買賬,但是我認為其實微軟的實現才是最穩固而且高效的,只不過微軟對於普通民用開發者和小公司來說成本太高了,而現在微軟轉向主動出擊,更加的接地氣了。假以時日,.NET CORE RC1完全成熟發布,一定會向當年http://asp.net發布時的輝煌,而眾技術也將進而追隨迭代進入新的層次。到那個時候我們可以自豪的說,我是一名.net開發者而不被嘲笑!

以上是我的拙見~ 圖個樂呵,看看就好。


完全重寫的,你可以把它作為新產品,但是能兼容舊代碼。

其實這個就像開源社區里,一個技術取代另一個,通常一個技術的支持者與另一個起初是不同的。在微軟內部也是這樣的,只是所有團隊都是以微軟掛名的,所以看上去微軟自己在不斷地推翻自己。


swift 1.0 和 swift 2.0 還他娘的不是一個東西呢。這麼想搞個大新聞真的好嗎?


其實名字取得挺好, 微軟的坑剛爬到一半的時候,tmd 我又掉下去了。


這個名字改得是對的。


Not dead, but rename.


你軟改名部威武。。。


這應該是好事。算是重新定義與重新啟動


推薦閱讀:

Facebook 為什麼不用 .NET?
使用基於LGPL授權QT的『歪歪yy語音』允許反編譯嗎?
mysql的資料庫設計到底該不該加約束,比如非空約束,外鍵約束等。因為我看到我們公司的DBA在設計資料庫結構的時候都是不加任何約束的,這樣對性能的提高有多大,會不會影響到數據的完整性。新手求大牛解答?
你們寫軟體的時候都是用什麼神奇的IDE?

TAG:軟體開發 | NET | ASPNET | Net開發 |