天天看點

請求評論:.NET和Microsoft産品版本控制問題

請求評論:.NET和Microsoft産品版本控制問題

NOTE: I have had this blog post sitting in my drafts for a few months now. I've gotten close to posting it, held back, then gotten close to posting again. Today I noticed that Microsoft published a patch/update to Entity Framework 4.1 (Code First), a product I personally love and support, and they've called it EF 4.1 Update 1 . Then I decide to post this. This is not intended as a rant or a complaint, although there is frustration on my part. What I want to know from you, is DO YOU CARE. If you do, then I can make sure your voice is heard. If you don't care, that's cool too.

注意:我的草稿中已有此部落格文章已有幾個月了。 我已經接近釋出它了,推遲,然後再次接近釋出。 今天,我注意到微軟釋出了我個人喜歡和支援的産品Entity Framework 4.1(代碼優先)的更新檔/更新,他們将其稱為EF 4.1 Update 1。 。 然後,我決定将其釋出。 這是不打算作為一個咆哮或投訴,雖然有我的一部分挫折。 我想從您那裡知道的是您是否在意。 如果您這樣做,那麼我可以確定聽到您的聲音。 如果您不在乎,那也很酷。

I really care about how products are versioned and I'm sure you to do, Dear Reader. Naming Things is Step 0 when it comes to understanding Things. I want to talk to you about some things I've noticed around .NET versioning, and see what your thoughts are so that I might share them with TPTB (The Powers That Be).

親愛的讀者,我真的很在乎産品的版本控制方式,我确定您會這樣做。 命名事物是了解事物的第0步。 我想與您談談有關.NET版本控制的一些問題,并檢視您的想法,以便與TPTB(The Powers Be Be)分享。

I noticed recently that Microsoft released something called ".NET 4.0 Platform Update 1." This is an update to the .NET Framework 4 to include new features and functionality around Workflow and Azure. This post isn't specific to this update, but ALL the updates lately, from the .NET Framework, the Entity Framework, SQL Server, and a dozen more.

我最近注意到,Microsoft釋出了一個名為“ .NET 4.0 Platform Update 1”的檔案。 這是對.NET Framework 4的更新,以包括有關Workflow和Azure的新功能。 這篇文章不是專門針對此更新的,而是最近的所有更新,來自.NET Framework,Entity Framework,SQL Server等。

This was concerning to me for a few reasons. First, Platform Update "1" implies a future Platform Update "N+1." Second, when something that is a platform called 4.0 is updated, you'd expect it to be called 4.1 or maybe 4.0.1. 

這對我來說有幾個原因。 首先,平台更新“ 1”表示将來的平台更新“ N + 1”。 其次,當更新稱為4.0的平台時,您希望它被稱為4.1或4.0.1。

I've met with that team, and encouraged them to stick with Semantic Versioning and call these updates .NET 4.0.2, etc. I think they hear me, we shall see .The .NET Framework Team agrees and they've said that will be following Major.Minor.Revision now so the next small release will be 4.0.2! However I may be perceived as Chicken Little as I haven't personally collected broad community opinion.

我已經與該團隊見面,并鼓勵他們堅持使用語義版本控制并将這些更新稱為.NET 4.0.2等。 我想他們會聽到我的聲音,我們将會看到 。 .NET Framework團隊表示同意,他們說現在将遵循Major.Minor.Revision,是以下一個小版本将是4.0.2! 但是,由于我個人尚未收集廣泛的社群意見,是以我可能會被視為“小雞丁”。

If you get the Premium version of Visual Studio, you've got a higher SKU than the Professional version. However, if you choose between Premium and Profession versions of Windows 7, get Professional. It's higher.

如果您獲得了Visual Studio的進階版,則SKU比專業版的SKU高。 但是,如果您在Windows 7的專業版和專業版之間進行選擇,請擷取Professional。 更高

I recently noticed other products coming out with "Cumulative Update to SP1" and recently "EF 4.1 Update 1" and similar things, not to mention SQL Server. I really think this is confusing to customers. It certainly is to me. I'd like to know if you agree.

我最近注意到有其他産品帶有“對SP1的累積更新”和最近的“ EF 4.1 Update 1 ”以及類似的東西,更不用說SQL Server了。 我真的認為這會使客戶感到困惑。 當然對我來說。 我想知道您是否同意。

In my personal opinion, Microsoft has typically done a (poor) job with naming things - I think that's a fair statement with some exceptions like things like Lync, Kinect, Xbox and NuGet. Sometimes there's engineering reasons for versioning, but mostly it's a combination of marketing, lack of coordination between groups in a large company and a lack of community/customer outrage or just apathy. I think when folks work at a large company for many years it's easy to become complacent and stop fighting what is perceived as "small things."

以我個人的觀點,微軟通常在命名方面做得(很差)-我認為這是一個公平的聲明,除了諸如Lync,Kinect,Xbox和NuGet之類的例外。 有時會有版本控制的工程原因,但主要是市場營銷,大型公司中的團隊之間缺乏協調以及社群/客戶的不滿或僅僅是冷漠的結合。 我認為,當人們在一家大公司工作多年時,很容易沾沾自喜,而不再與所謂的“小事情”作鬥争。

Versioning and naming isn't set in stone. There isn't a technical reason that I know of to call something a Rollup Update Pack. Only willpower and organizational agreement is needed. If it's important to you, and your voice is heard, it'll become important to the people who make these decisions. Personally, I am a big fan of Semantic Versioning both in concept and in practice and I'd like to see its practical common sense take root at Microsoft.

版本和命名并不是一成不變的。 我不知道有什麼技術原因可将其稱為彙總更新包。 隻需要意志力群組織協定。 如果這對您很重要,并且可以聽到您的聲音,那麼對做出這些決定的人來說就變得很重要。 就個人而言,無論從概念上還是實踐上,我都是語義版本控制的忠實擁護者,并且我希望看到其實用常識在Microsoft紮根。

Here's how the .NET Framework has been versioned so far. You are all familiar with it, probably because you've had to explain it to your boss at some point.

到目前為止,這是.NET Framework的版本控制方式。 你們都熟悉它,可能是因為您不得不在某個時候向老闆解釋。

Version Runtime (CLR) Framework
1.0 First Release First Release
1.1 New Small Changes
2.0 New Lots of Changes
3.0 Same as 2.0 WinFX libraries
3.5 Same as 2.0, but new C# 3 Compiler Some Changes
3.5 SP1 Same as 2.0, with C# 3 Whole Lot of Changes
4 New Lots of Changes
4.0 PU1 Same as 4 Workflow and Azure Changes
運作時(CLR) 構架
1.0 初版 初版
1.1 零錢
2.0 很多變化
3.0 與2.0相同 WinFX庫
3.5 與2.0相同,但是新的C#3編譯器 一些變化
3.5 SP1 與2.0相同,但使用C#3 全部變化
4 很多變化
4.0 PU1 與4相同 工作流程和Azure更改

We can't change the past, but we can influence the future. I would have probably made framework changes Point Releases (.1,.5, etc) and new CLRs or compilers should be Major Releases.

我們不能改變過去,但我們可以影響未來。 我可能已經對架構進行了更改,包括Point Release(.1,.5等),而新的CLR或編譯器應該是Major Releases。

I suspect that product naming folks think that words are easier to understand than numbers, but I think they sell us short. Semantic Versioning would be easier to explain, deal with and sell. I think we need to stop with the Update, Refresh, Rollup, Pack stuff and just change numbers.

我懷疑産品命名的人們認為單詞比數字更容易了解,但我認為他們賣空了我們。 語義版本控制将更易于解釋,處理和銷售。 我認為我們需要停止更新,重新整理,彙總,打包内容,而隻是更改數字。

Going further, with the release of this new "EF 4.1 Update 1," what should they have called it? I would have said 4.1.5 or 4.2. Probably 4.2 if there were minor new features, and 4.1.5 if it's just patches.

更進一步,随着這個新的“ EF 4.1 Update 1 ”的釋出,他們應該怎麼稱呼它? 我會說4.1.5或4.2。 如果有次要的新功能,則可能為4.2;如果隻是更新檔,則可能為4.1.5。

  • What are your thoughts, Dear Reader? What do you think about these "PUs" versus "SPs" or changing the version number? Do you care...How important is Semantic Versioning?

    親愛的讀者,您的想法是什麼? 您如何看待這些“ PU”與“ SP”或更改版本号? 您在乎...語義版本控制有多重要?

  • Here's a Twitter Poll for you to spread around, or use the comments.

    這是一個Twitter投票,您可以在周圍傳播或使用評論。

Photo via Creative Commons: Original Photo at http://www.flickr.com/photos/nicmcphee/422442291/

通過知識共享提供的照片:原始照片,網址為http://www.flickr.com/photos/nicmcphee/422442291/

翻譯自: https://www.hanselman.com/blog/request-for-comments-issues-with-net-and-microsoft-product-versioning