成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

.NET 核心開源

開發(fā) 后端
對(duì)于.NET來說,今天是個(gè)大日子! 我們很高興宣布.NET核心將要開源,包括運(yùn)行時(shí)環(huán)境和框架類庫。這是我們?yōu)殚_源努力的自然結(jié)果,我們已經(jīng)開源了主要的編譯器(C#,VB、F#),還有ASP.NET:

對(duì)于.NET來說,今天是個(gè)大日子! 我們很高興宣布.NET核心將要開源,包括運(yùn)行時(shí)環(huán)境和框架類庫。

這是我們?yōu)殚_源努力的自然結(jié)果,我們已經(jīng)開源了主要的編譯器(C#,VB、F#),還有ASP.NET:

我們通過將范圍擴(kuò)展到.NET運(yùn)行時(shí)環(huán)境和核心框架,使(微軟開源進(jìn)程)進(jìn)入下一個(gè)階段。

什么是 .Net 核心?

.Net 核心是一個(gè)模塊化的開發(fā)棧。該開發(fā)棧包含 .Net 平臺(tái)的所有特性。這些特性已經(jīng)被用在 ASPNET Core 5 和 NET Native。下面會(huì)詳細(xì)介紹什么是 .Net 核心以及它和 NET Framework 的關(guān)系。

為什么我們要開源 .Net 核心?

我們開源 .Net 核心有下面兩個(gè)原因:

1.為跨平臺(tái)的 .Net 奠定基礎(chǔ)

2.建立一個(gè)強(qiáng)大的生態(tài)系統(tǒng)

下面讓我們來關(guān)注更多細(xì)節(jié)。

為跨平臺(tái) .Net 奠定基礎(chǔ)

作為一個(gè) .Net 開發(fā)者,你以后可以在 Linux、 MacOS、 iOs 和 Android 上構(gòu)建或者運(yùn)行你的程序,而不僅僅是 Windows。

這有一個(gè)挑戰(zhàn)就是,windows已經(jīng)有一套代碼實(shí)現(xiàn),同時(shí) Mono 也有一套代碼實(shí)現(xiàn)。Mono 社區(qū)事實(shí)上被強(qiáng)迫重新實(shí)現(xiàn)了一次 .Net,因?yàn)闆]有開源的代碼實(shí)現(xiàn)。當(dāng)然該代碼實(shí)現(xiàn)可以通過 Rotor 來讓變得可用。但是沒有我們的開源授權(quán),讓這件事變得不可能。客戶已經(jīng)提出了很多的問題,但是這些問題很難去修復(fù),因?yàn)殡p方都不可以看到對(duì)方的代碼。這也導(dǎo)致了很多重復(fù)的工作,而且實(shí)際上這些工作不是針對(duì)特定于平臺(tái)而導(dǎo)致的。immutable collections就是一個(gè)很明顯的例子。

建立一個(gè)擴(kuò)平臺(tái)的技術(shù)棧的最好方法,就是通過合作的方式去建立唯一的技術(shù)棧。同時(shí)最好的合作方式就是去把它開源。

建立并利用一個(gè)強(qiáng)大的生態(tài)系統(tǒng)

我的團(tuán)隊(duì)使用NuGet(.NET平臺(tái)下一個(gè)開源項(xiàng)目)實(shí)現(xiàn)更敏捷的開發(fā)周期已近兩年了。 為了讓客戶提供反饋,我們?cè)缙谶M(jìn)行了發(fā)布,現(xiàn)在我們已取得了巨大的成功。

如果你仔細(xì)思考會(huì)發(fā)現(xiàn): 開源本質(zhì)上是敏捷開發(fā)模式。 每一個(gè)改動(dòng)都需要立刻發(fā)布,并且(在理論上)可用。 我團(tuán)隊(duì)里的很多成員是Twitter和Stack Overflow會(huì)員,他們熱衷于客戶討論。 不止一次,我希望我能夠給客戶介紹內(nèi)部文檔,并向他們解釋我們的系統(tǒng)是如何實(shí)現(xiàn)的。 或者只是簡單地介紹一個(gè)問題是如何被解決的。

對(duì)于我們來說,開源架構(gòu)也意味著我們可以實(shí)時(shí)與客戶進(jìn)行交流。 當(dāng)然,并不是每一個(gè)客戶都想我們緊密互動(dòng)。 但是確實(shí)有一些人使得架構(gòu)變得更好,因?yàn)樗麄兲峁┝嗽缙凇⒎€(wěn)定的反饋。

我把這比作駕駛一輛汽車: 頻繁的小幅度的調(diào)整方向盤比大幅度的調(diào)整更有效,且風(fēng)險(xiǎn)更低。

選擇利用 GitHub

我們決定在 Github 上存放 .Net 核心的代碼,因?yàn)閾?jù) Phil Haack 說在 Githut 上發(fā)布代碼,可以幫助提高效果:

這當(dāng)然是開玩笑。

作為一個(gè)原則,我們不想告訴社區(qū)我們?cè)谀睦铩O喾矗覀儜?yīng)該去到社區(qū)它本身就存在的地方。根據(jù)其他的一些項(xiàng)目反饋來看,Github是 .Net 的最主要社區(qū)。

不相信?我原來也懷疑所以我做了個(gè)小實(shí)驗(yàn)。我將自己的一個(gè)開源項(xiàng)目從CodePlex上移到了GitHub上。在CodePlex上兩年了我只有一個(gè)pull request,而移到GitHub上五天后我的pull request就達(dá)到了三個(gè),而且發(fā)現(xiàn)了另外兩個(gè)貢獻(xiàn)者。這是三個(gè)月前了,總共從那時(shí)起我已經(jīng)獲得了16個(gè)pull request,許多都有實(shí)質(zhì)性的進(jìn)展。(順便說一句:最開始的那一個(gè)被加進(jìn)了很多單元測試,很酷有木有?)盡管這個(gè)還不算是嚴(yán)格意義上的案例,但確實(shí)能讓我們聽到更多客戶的需求。

所以為了加入社區(qū),我們決定將 .NET Core 發(fā)布在GitHub上,一個(gè)月前,在GitHub上已經(jīng)能看到我們的成果了(our samples available on GitHub

開源的開發(fā)經(jīng)歷

我的團(tuán)隊(duì)也開源過,比如MEF項(xiàng)目,但平心而論,那個(gè)并沒取得多少收獲。我們認(rèn)為基本的原因是缺少社區(qū)的參與。當(dāng)我們只開放了源碼后,并沒有努力為之建立一個(gè)社區(qū)。我深深感到,建立一個(gè)社區(qū)才是開源項(xiàng)目成功的關(guān)鍵所在。而建立一個(gè)社區(qū)的關(guān)鍵是開發(fā)的過程也要開源地進(jìn)行。

為不辜負(fù)期望,我們同樣也會(huì)透明我們的開發(fā)計(jì)劃是什么,我們要克服的有那些挑戰(zhàn),以及哪些范圍還未完成。我來解釋一下這些。

第一步是要停止code bombs,就像之前MEF中投的那些一樣。代碼炸彈本質(zhì)上是不定期的公開更新的源代碼,它們是系統(tǒng)項(xiàng)目組內(nèi)部正在完成的代碼。由于各種原因,這樣做是有問題的。舉個(gè)例子,公布的時(shí)間延遲,大家很難看到同一份代碼,這樣就很難進(jìn)行公開的討論。另一個(gè)大問題是歷史版本丟失,自動(dòng)同步讓我們同步一致代碼,但感覺像reinventing Git.

所以為防止代碼炸彈,我們建立我們的開發(fā)環(huán)境在公開的GitHub 倉庫,它是一個(gè)領(lǐng)先的系統(tǒng)。這意味著所有的代碼修改會(huì)立即表現(xiàn)出來。但我們不會(huì):

  • Code reviews.  我們希望所有的代碼審查過程全公開,通過 GitHub’s pull request model.

  • 設(shè)計(jì)文檔及討論,我們同樣共享設(shè)計(jì)時(shí)的備注、規(guī)格以及實(shí)現(xiàn)的文檔。我們一定會(huì)講清楚我們將用什么格式。至少讓你可以記下基本文檔,就像 Mad’s C# design notes的一樣。另一個(gè)想法是,我們給我們的設(shè)計(jì)討論會(huì)錄音,然后共享到 Channel 9。我們一定會(huì)講清楚,我們會(huì)以什么樣的節(jié)奏去,怎么實(shí)現(xiàn)它。

我們初步計(jì)劃使用GitHub問題清單功能來跟蹤bug。 巧妙的是我們也提供了其它途徑,如 UserVoice論壇,微軟Connect網(wǎng)站和我們內(nèi)部的團(tuán)隊(duì)協(xié)作服務(wù)器(Team Foundation Server)。 它們的介紹如下:

  • User Voice論壇。 在潛在昂貴項(xiàng)目排名方面,UserVoice有優(yōu)秀的投票系統(tǒng)。 因此,對(duì)于更大特性和根本創(chuàng)新,UserVoice是搜集反饋的最佳選擇。

  • 微軟Connect網(wǎng)站。 Connect網(wǎng)站主要用戶是企業(yè)用戶和產(chǎn)品支持人員。 我們將有可能繼續(xù)使用這個(gè)網(wǎng)站用于產(chǎn)品支持,但是不推薦你使用(它來提交bug),除非是提交.NET核心的bug。

  • 內(nèi)部團(tuán)隊(duì)協(xié)作服務(wù)器。 我們不再使用TF Version Control工具來管理.NET核心,但是仍然管理大塊的DevDiv模塊。 為了能夠跨平臺(tái)的協(xié)作工作,我們會(huì)繼續(xù)允許團(tuán)隊(duì)通過TFS提交bug。 我們正在考慮如何公開那些bug。 一個(gè)方法是創(chuàng)建一個(gè)自動(dòng)鏡像系統(tǒng)。

在UserVoice和Connect網(wǎng)站上,當(dāng)我們的團(tuán)隊(duì)成員在GitHub上提交了相應(yīng)的問題后,你可以看到一個(gè)關(guān)閉UserVoice/Connect上問題的流程。

我們接受貢獻(xiàn)

是的,我們接受貢獻(xiàn)!不過,與任何開源項(xiàng)目一樣,我們不會(huì)盲目的接受所有的貢獻(xiàn)。我們所收到的所有pull請(qǐng)求都會(huì)按照下面的標(biāo)準(zhǔn)進(jìn)行評(píng)判:

  • 路線圖(Roadmap)。所有項(xiàng)目都專注在某些領(lǐng)域。為了保持重心和發(fā)展勢頭,大部分工作向項(xiàng)目路線圖看齊是很重要的。

  • 質(zhì)量(Quality)。我們要為輸送高質(zhì)量代碼負(fù)責(zé)。因此,外部人員必須滿足與微軟員工相同的質(zhì)量標(biāo)準(zhǔn)。包括正確的設(shè)計(jì)、架構(gòu)、足夠的測試覆蓋率和遵守編碼風(fēng)格。

我們相信通過為外部開發(fā)者提供足夠的環(huán)境,在開源界的開發(fā)將會(huì)成功。例如,你可以看到我們的代碼審查并且閱讀內(nèi)部是如何設(shè)計(jì)的相關(guān)文檔。我們將會(huì)公布路線圖。

貢獻(xiàn)者最好提早與我們溝通你的想法。這樣的話,我們就可以給你提供一些幫助,比如提供文檔或者是針對(duì)你的方案進(jìn)行討論。我們也會(huì)把我們希望大家做的工作發(fā)布在GitHub的issues列表上,供大家進(jìn)行選擇。

通常,所有的社區(qū)貢獻(xiàn)都要通過GitHub的 pull request 模型來完成,也就是說,你首先要fork我們的項(xiàng)目,并在你的分支上進(jìn)行開發(fā),最后通過pull request將代碼提交到主干上。 對(duì)代碼檢視也同樣是使用這一模型。

在我們合入你的貢獻(xiàn)之前,你還需要簽署一份 Contributor License Agreement (CLA)協(xié)定。我們目前正在把這個(gè)工作工具化,最后的效果可能和Azure CLA過程類似。

構(gòu)造并運(yùn)行你自己的分支

要玩玩我們的程序或?qū)嶒?yàn)?zāi)阕约鹤龅母模阈枰獦?gòu)建并運(yùn)行你自己的庫版本。我們想要做的盡可能的簡單,所以看這里:

  • 克隆我們得倉庫(git clone https://github.com/dotnet/corefx)

  • 調(diào)用build.cmd

只需要Visual Studio 2013用來構(gòu)建(不用“Dev14”)。將會(huì)構(gòu)建所有得庫并運(yùn)行單元測試。

 

過去我們我們做的一個(gè)更改是強(qiáng)命名,以防止你草率的刪除已存項(xiàng)目的二進(jìn)制文件。通過提供強(qiáng)命名二進(jìn)制文件的新方法我們已經(jīng)解決了這個(gè)隱憂,我們把新方法叫做開源簽名。你可以在我們的開發(fā)者指南中找到更多信息。

.NET基金會(huì)

.NET核心項(xiàng)目是由.NET基金會(huì)來進(jìn)行管理。他將成為推動(dòng).NET核心棧不斷向前的關(guān)鍵力量。我們還會(huì)與Xamarin/Mono項(xiàng)目的Miguel de Icaza進(jìn)行緊密的合作,來創(chuàng)建一個(gè)共享的代碼基線,使其發(fā)展為一個(gè)跨平臺(tái)實(shí)現(xiàn)的.NET核心棧。

今天,只有部分代碼庫可以在GitHub上訪問到:

我們會(huì)以下幾個(gè)領(lǐng)域持續(xù)發(fā)力:

  • 更多的代碼庫. 目前開源的部分,可以理解為整個(gè)項(xiàng)目的首付款。我們的目標(biāo)是在2015年開源整個(gè).NET核心棧。

  • 構(gòu)建和運(yùn)行在非Windows平臺(tái). 我們現(xiàn)在只提供了在Windows上進(jìn)行構(gòu)建和運(yùn)行的能力。我們正計(jì)劃與Mono社區(qū)一起組件一個(gè)公開的工作組來完成此項(xiàng)工作。

  • .NET 核心運(yùn)行時(shí)環(huán)境 (CoreCLR). 我們正在擬定運(yùn)行時(shí)環(huán)境的開源計(jì)劃。請(qǐng)保持關(guān)注。

總結(jié)

.NET核心棧將在GitHub上完全開放源代碼。我們已經(jīng)對(duì)其中的一些庫做了一些必須要進(jìn)行的工程性更改,并在核心框架代碼倉庫中包含了它們。從現(xiàn)在到生成2015 構(gòu)建期間,你將看到我們?cè)陂_放源代碼方面所做的工作。歡迎下載源代碼!

請(qǐng)多多使用.NET基金會(huì)的論壇,讓我們知道你們所想!

 

責(zé)任編輯:張偉 來源: oschina
相關(guān)推薦

2021-04-21 07:52:39

核心SignalR應(yīng)用

2011-08-23 10:58:59

2011-05-20 16:18:23

ADO.NET

2009-03-17 16:29:53

SQL ServerCLR.NET Framew

2010-01-05 14:33:09

.NET Framew

2014-04-14 10:06:22

.Net 開源

2011-06-17 15:44:44

asp.net

2021-05-20 09:42:19

極狐開源開源社區(qū)

2009-11-17 10:29:39

.NET Micro

2017-11-10 11:59:54

開源NET高效

2013-12-05 11:13:40

TechEd2013ASP.NET

2009-07-20 15:51:40

FubuMVC核心框架ASP.NET MVC

2009-10-27 10:34:40

VB.NET操作符

2009-12-31 15:55:06

ADO.NET結(jié)構(gòu)

2013-04-22 09:56:54

2013-04-22 09:52:04

.netchrome核心開發(fā)chrome

2023-09-22 14:41:02

OceanBase數(shù)據(jù)庫

2024-06-19 08:24:47

2009-07-06 17:21:36

.NET中的多態(tài)

2015-03-12 10:57:51

開源項(xiàng)目
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 91视在线国内在线播放酒店 | 日韩视频一区在线观看 | 欧美xxxx日本| 天堂在线中文 | 久久久久国产一区二区三区四区 | 久久久青草婷婷精品综合日韩 | 亚卅毛片 | 久久精品视频一区二区三区 | 国产小视频在线看 | 日韩欧美在线免费观看视频 | 日韩欧美在线精品 | 涩涩视频大全 | 亚洲欧美中文日韩在线v日本 | 一级国产精品一级国产精品片 | 亚洲天堂中文字幕 | 99精品视频免费观看 | 综合久久一区 | 国产在线一区二 | av中文字幕在线观看 | 久久在线 | 国产一区二区在线免费观看 | 精品国产一区二区三区性色av | 91亚洲精品国偷拍自产在线观看 | 日本精品一区二区三区视频 | 国产精品久久久久久久午夜片 | av在线一区二区三区 | 91视视频在线观看入口直接观看 | 日本中文在线 | 国产欧美在线 | 最新国产在线 | 成人av免费在线观看 | av中文字幕在线播放 | 成人一区二区三区在线 | 国产精品久久国产精品99 gif | 久久国产精品久久久久久 | 超碰免费在线 | av中文字幕在线 | 亚洲一级二级三级 | 亚洲精品一区二区三区 | 99热在这里只有精品 | 99精品久久久久久中文字幕 |