.NET Core 1.0发布:微软开源跨平台大布局序幕
在6月27日的紅帽DevNation峰會(huì)上,微軟正式發(fā)布了.NET Core 1.0、ASP.NET 1.0和Entity Framework Core 1.0,這些產(chǎn)品將全部支持Windows、OS X和Linux三種操作系統(tǒng)。其中.NET Core最受矚目,這是一款跨平臺(tái)、開源且模塊化的.NET平臺(tái),可以用來搭建web應(yīng)用、微服務(wù)、創(chuàng)立應(yīng)用庫和控制臺(tái)。
本次發(fā)布的包括.NET Core Runtime、框架庫及相關(guān)工具,和ASP.NET Core庫。
.NET Core開源的由來
早在2004年,Xamarin公司的前身,Novell就開始研發(fā)如何實(shí)現(xiàn).NET的跨平臺(tái)化研發(fā)。Mono Project開源項(xiàng)目應(yīng)運(yùn)而生,陸續(xù)實(shí)現(xiàn)了在大部分Linux版本、Android甚至一些游戲開發(fā)平臺(tái)上運(yùn)行.NET應(yīng)用。.NET Framework作為專利產(chǎn)品,Mono Project在一定程度上觸犯了微軟;這種做法因此也曾一度引起開源社區(qū)的廣泛爭(zhēng)議。
2014年,微軟改變了.NET技術(shù)的發(fā)展策略,在connect();大會(huì)上發(fā)布開源.NET Core,稱.NET Core的愿景是成為所有平臺(tái)的單一代碼庫。2016年3月,微軟正式收購(gòu)Xamarin公司,其所有的Mono Project采用 MIT協(xié)議開源。
2016年6月27日,微軟正式發(fā)布.NET Core 1.0。經(jīng)過微軟與紅帽一年的合作,Linux企業(yè)版已支持.NET Core 1.0的全部特性;微軟終于用實(shí)際行動(dòng)證明了其打破Windows封閉局面的決心。
.NET Core的技術(shù)細(xì)節(jié)
.NET Core由以下組成:
.NET runtime:提供運(yùn)行環(huán)境,匯編碼加載,垃圾回收等基礎(chǔ)服務(wù)。
框架庫:完全整合傳統(tǒng)的.NET標(biāo)準(zhǔn)庫。提供基礎(chǔ)數(shù)據(jù)類型和不同類型應(yīng)用的基礎(chǔ)組件等。
.NET Core SDK:相關(guān)系列的SDK工具和語言編譯器
.NET Core應(yīng)用的命令行工具集。
而.NET Core的開發(fā)工具及平臺(tái),除了傳統(tǒng)開發(fā)工具集的Visual Studio,開發(fā)人員還可使用紅帽公司OpenShift的PaaS平臺(tái)和微軟的跨平臺(tái)Visual Studio Code編輯器,后者可以運(yùn)行于Linux、OS X和Windows系統(tǒng)。需要說明的一點(diǎn)是.NET Core 1.0目前僅支持紅帽的企業(yè)版Linux。
.NET Core被視為.NET Framework的新一代版本。與現(xiàn)有的.NET Framework在使用上的區(qū)別是:.NET Framework采用大包式安裝的方式,而.NET Core則是采用套件化(Packages)的管理方式,寫應(yīng)用程序只需要調(diào)用所需組件即可。
給開發(fā)人員和企業(yè)帶來的好處
對(duì)開發(fā)者而言,這意味著更多的開發(fā)自由度:開發(fā)人員可以通過使用.NET Core快速搭建跨平臺(tái)的應(yīng)用。同時(shí),還可以充分發(fā)揮.NET發(fā)展十四年來沉淀下來的特有優(yōu)勢(shì)。
微軟在GitHub上面公布了與同類語言工具的對(duì)比檢測(cè)結(jié)果,稱使用.NET Core構(gòu)建的應(yīng)用運(yùn)行速度是Node.js的八倍,Go的三倍,將會(huì)縮短響應(yīng)時(shí)間、減少系統(tǒng)資源消耗。
此外,還可以使用C#支持的LINQ語言集成查詢,少量代碼即可實(shí)現(xiàn)對(duì)數(shù)據(jù)源執(zhí)行復(fù)雜的篩選、排序和分組操作。以查詢數(shù)據(jù)庫的方式操作內(nèi)存數(shù)據(jù),使用基本查詢表達(dá)式模式進(jìn)行查詢和轉(zhuǎn)換 SQL 數(shù)據(jù)庫、ADO.NET 數(shù)據(jù)集、XML 文檔和流以及 .NET 集合中的數(shù)據(jù)。
對(duì)于企業(yè)而言,.NET Core跨平臺(tái)意味著,在不改變架構(gòu)的前提下,非Windows Server也可以運(yùn)行.NET應(yīng)用,.NET Core的工作流,可以被導(dǎo)入到Red Hat企業(yè)版Linux或者Windows Server;并且,這將為微服務(wù)構(gòu)架提供更多的可能性,組件的語言開發(fā)可以是既有.NET又有Java,并運(yùn)行同一個(gè)平臺(tái)。
微軟和紅帽的初衷
對(duì)于微軟而言,首先,這與微軟擴(kuò)張跨平臺(tái)云愿景相符。微軟稱其重新梳理.NET,為的是順應(yīng)當(dāng)今的云應(yīng)用、微服務(wù)和容器技術(shù)技術(shù)趨勢(shì)。其次,也可延續(xù)微軟現(xiàn)有項(xiàng)目和產(chǎn)品,如Xamarin的微軟開源項(xiàng)目、Windows Phone的開發(fā)、.NET Framework和ASP .NET等。
而對(duì)于紅帽,這可以幫助其商業(yè)版的Linux以及OpenShift平臺(tái)的推廣。紅帽博客上指出,只有商業(yè)版的Linux才全面支持.NET所有特性,并滿足企業(yè)級(jí)別的需求。紅帽認(rèn)為,對(duì)那些尋求在Linux或者容器環(huán)境下使用.NET技術(shù)的企業(yè)而言,這將是一種新的平臺(tái)選擇。
開發(fā)社群的響應(yīng)
總體上,社群的反應(yīng)分為積極支持和中立觀望兩方。
一些已經(jīng)使用過 .NET的 開發(fā)人員稱開發(fā)總體感覺很好,C#具備快速、多線程、豐富標(biāo)準(zhǔn)庫、泛型、支持動(dòng)態(tài)靜態(tài)語言等優(yōu)點(diǎn)。Mono的使用者則認(rèn)為.NET Core 1.0可以做得比Mono更好。因此這兩類人群對(duì)于.NET Core持積極態(tài)度。不過,一些使用.NET Core的開發(fā)人員反應(yīng)微軟未能做到及時(shí)更新文檔,偶爾會(huì)導(dǎo)致一些bug。此外,Visual Studio Code中的開發(fā)體驗(yàn)仍然不及Visual Studio。
對(duì)于尚未在技術(shù)棧中使用.NET的開發(fā)團(tuán)隊(duì)而言,大部分將持觀望態(tài)度。技術(shù)棧應(yīng)該不會(huì)立刻發(fā)生變化,團(tuán)隊(duì)不會(huì)緊隨1.0最初版本開展研發(fā)工作。
未來還會(huì)有哪些變化
微軟稱將會(huì)繼續(xù)在跨平臺(tái)上努力,就硬件層面而言,除了已經(jīng)完成的跨操作系統(tǒng)的X64和WindowsX 86平臺(tái), .NET Core正在向Arm64和ARM32平臺(tái)發(fā)力。
相關(guān)文章:
ASP.NET Core 1.0 入門——了解一個(gè)空項(xiàng)目
ASP.NET Core 1.0 部署 HTTPS (.NET Framework 4.5.1)
.NET Core 1.0、ASP.NET Core 1.0和EF Core 1.0簡(jiǎn)介
云服務(wù)器下ASP.NET Core 1.0環(huán)境搭建(包含mono與coreclr)
使用VS Code開發(fā)ASP.NET Core 應(yīng)用程序
dotnet run是如何啟動(dòng)asp.net core站點(diǎn)的
ASP.NET Core提供模塊化Middleware組件
“dotnet restore"和"dotnet run"都做了些什么?
探秘 dotnet run 如何運(yùn)行 .NET Core 應(yīng)用程序
.NET Portability Analyzer 已開源
ASP.NET Core的配置(1):讀取配置信息
ASP.NET Core的配置(2):配置模型詳解
.NET Core 1.0 RC2 歷險(xiǎn)之旅
使用VS Code開發(fā) 調(diào)試.NET Core 應(yīng)用程序
讓我們Core在一起:ASP.NET Core & .NET Core
.NET Core VS Code 環(huán)境配置
官方博客明確了 .NET Core RC2/RTM 時(shí)間表
.NET Core全新的配置管理[共9篇]
利用記事本創(chuàng)建一個(gè)ASP.NET Core RC2 MVC應(yīng)用
微軟.NET 正式劈腿成功,橫跨所有平臺(tái)
.NET Core 1.0 CentOS7 嘗試
解讀發(fā)布:.NET Core RC2 and .NET Core SDK Preview 1
[.NET Core].NET Core R2安裝及示例教程
ASP.NET Core 開發(fā)-中間件(Middleware)
結(jié)合Jexus + Kestrel 部署 asp.net core 生產(chǎn)環(huán)境
通過Jexus 部署 dotnetcore版本MusicStore 示例程序
ASP.NET Core 中文文檔 第一章 入門
用 Visual Studio Code 在 macOS 上創(chuàng)建首個(gè) ASP.NET Core 應(yīng)用程序
用 Visual Studio 和 ASP.NET Core MVC 創(chuàng)建首個(gè) Web API
用 Visual Studio 發(fā)布一個(gè) Azure 云 Web 應(yīng)用程序
ASP.NET Core MVC 與 Visual Studio 入門
第二章指南(4.2)添加 Controller
DotNet Core 介紹
asp.net core 中間件詳解及項(xiàng)目實(shí)戰(zhàn)
教你實(shí)踐ASP.NET Core Authorization(免看文檔教程)
asp.net core 使用 Redis 和 Protobuf 進(jìn)行 Session 緩存
asp.net core 中間件詳解及項(xiàng)目實(shí)戰(zhàn)
第二章 指南(4.3)添加 View
dotnet core開發(fā)體驗(yàn)之開始MVC
dotnet core 開發(fā)體驗(yàn)之Routing
聊聊ASP.NET Core默認(rèn)提供的這個(gè)跨平臺(tái)的服務(wù)器——KestrelServer
簡(jiǎn)析.NET Core 以及與 .NET Framework的關(guān)系
.NET Core 使用Dapper 操作MySQL
使用 CommandLineApplication 類創(chuàng)建專業(yè)的控制臺(tái)程序
簡(jiǎn)析 .NET Core 構(gòu)成體系
.NET Core也可以使用MongoDB了
.NET Core & ASP.NET Core 1.0在Redhat峰會(huì)上正式發(fā)布
.NET Core:面向未來的開源跨平臺(tái)開發(fā)技術(shù)
微軟說它深愛著Linux,現(xiàn)在它用行動(dòng)證明了
移植.NET Core計(jì)劃,整合各平臺(tái)變得更簡(jiǎn)單了!
ASP.NET Core 介紹
通過幾個(gè)Hello World感受.NET Core全新的開發(fā)體驗(yàn)
ASP.NET Core 運(yùn)行原理剖析1:初始化WebApp模版并運(yùn)行
.NET Core系列 : 1、.NET Core 環(huán)境搭建和命令行CLI入門
Asp.Net Core 發(fā)布和部署( MacOS + Linux + Nginx )
Asp.Net Core 發(fā)布和部署(Linux + Jexus )
學(xué)習(xí)ASP.NET Core,你必須了解無處不在的“依賴注入”
.NET Core應(yīng)用類型(Portable apps & Self-contained apps)
原文地址:http://www.infoq.com/cn/news/2016/06/NET-Core-1-0-publish
.NET社區(qū)新聞,深度好文,微信中搜索dotNET跨平臺(tái)或掃描二維碼關(guān)注
總結(jié)
以上是生活随笔為你收集整理的.NET Core 1.0发布:微软开源跨平台大布局序幕的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: .NET Core应用类型(Portab
- 下一篇: ASP.NET Core 运行原理剖析2