【发布时间】:2010-09-29 23:37:29
【问题描述】:
这与新版本不同,新版本仍然具有向后兼容性。
我的意思是,当 C#、.NET、CLR 的设计者意识到他们犯了一个错误,或者他们忽略了一些可能非常有益的东西但现在由于向后兼容性而无法追求它时,他们可以通过以不同的方式(水平版本控制)指定适当的产品来分支相应的产品。
这不是更具前瞻性吗?
你可以说这将是一场噩梦,但是会有一些限制,比如你不能混合和匹配不同的分支,不像彼此兼容的不同语言等(在同一个分支中)。
这样你会说使用 C# 4.0,那么你可以从 C# 4.0 B1(分支 1)中使用一些非常有益的东西并直接使用它,即使它可能需要一些移植工作。
这难道不是一个健康的开发策略,新项目总是可以开始使用最新最好的,即特定语言的最新版本和最新分支(例如 C# 6.0 B4)?
我看不出有任何额外的麻烦来跟踪新语言的内容,因为无论如何您都必须了解每个版本的内容。所以这只是为垂直版本增加了另一个维度(水平版本)。
此发展战略的潜在利弊是什么?
【问题讨论】:
-
如果他们这样做了,他们将不得不单独维护每个分支,这意味着需要付出高昂的额外成本而收效甚微......
-
更不用说框架开发者还必须维护无数的版本。人们已经很难跟上“垂直”版本控制,我不会说这是“即使需要一些移植工作”,而是“需要甚至更多移植工作”。跨度>
-
葛根是完美的比喻。除了可以用野葛做篮子,而且可以食用,还能防止水土流失,它确实有好的一面。
标签: c# .net clr versioning