Thursday, January 13, 2005
« OSS sabotage of Windows security? | Main | From VAX to Windows »

A while ago TheServerSide.net published an article with Jeff Richter’s thoughts on the future of .NET assembly versioning.

 

If you read the article you’ll find that the Longhorn OS will seriously change the way that .NET itself is versioned. In fact, it turns out that to a serious degree the whole idea of installing “side-by-side” versions of .NET itself will go away when Longhorn shows up.

 

Oh sure, they have plans for a complex scheme by which assemblies can be categorized into different dependency levels. Some levels can be versioned more easily, while others can only be versioned with the OS itself.

 

What this really means is that .NET is losing its independence from the OS. In the end, we’ll only get new versions of .NET when we get new versions of the OS – and we all know how often that happens…

 

I’d say that this was inevitable, but frankly it was not. Java hasn’t fallen into this trap, and .NET doesn’t need to either. Not that it will be easy to avoid, but the end result of the current train of thought portrayed by Richter is devastating.

 

Fortunately there’s the mono project. As .NET becomes more brittle and stagnant due to its binding with Longhorn, we might find that mono on Windows becomes a very compelling story. mono will be able to innovate, change and adapt much faster than the .NET that inspired it. Better still, mono will remain unbound from the underlying OS (like .NET was originally) and thus will be able to run side-by-side in cases where .NET becomes crippled.

 

Hopefully Microsoft will realize what they are doing to themselves before all this comes to pass. Otherwise, I foresee a bright future for mono on Windows.


Thursday, January 13, 2005 1:07:10 PM (Central Standard Time, UTC-06:00)
agreed,
.NET starts getting too many dependencies on IDE, DB, OS
there should be at least a yearly version upgrade for bug fixes etc etc
Thursday, January 13, 2005 2:40:14 PM (Central Standard Time, UTC-06:00)
To be fair, Jeff later cleared up his comments on .NET Rocks.

To say that there will be no more side-by-side installations of is a little misleading. What will actually happen is no more side-by-side installations of the .NET runtime, or CLR. There will just be one version per machine. There still will be side-by-side installations of the .NET FCL, or the framework, allowed.

-Griffin
Thursday, January 13, 2005 3:58:25 PM (Central Standard Time, UTC-06:00)
Agreed. IF Microsoft is able to segregate the current monolith that is .NET into clearly deliniated blocks, then we'll have a partially flexible answer.

But interesting innovations like generics become entirely tied to the OS, because the JIT is in the CLR which is in the OS. Once they do this, we had better be pretty happy with the basic capabilties of .NET and our programming languages, because subsequent changes at that level will be few and far between.
Thursday, January 13, 2005 5:28:18 PM (Central Standard Time, UTC-06:00)
But surely they can update the CLR part of things even if there remains just one installed per windows instance. Perhaps what this means is that future or updtaed CLRs will be 100% backward compatible :)
Friday, January 14, 2005 9:43:55 AM (Central Standard Time, UTC-06:00)
Microsoft has to turn .NET into .$$$ at some point. I hardly believe Dev Tools give them that margin yet. Their plan is to keeping their OS the better alternative with the OS dependent bundles such as .NET, IE and Media Player.

I am not an open source devotee, but I can see FireFox becoming and enterprise standard since MS will only distribute the new version of IE with Longhorn under their strategy. For an enterprise application, FireFox is becoming a better strategic decision if you think about compatability not only at Multi-OS world but also at Inter-OS world.

Any version of Mozilla will be available to any version of Windows at any time in the future. If you develop a browser based enterprise app, supporting only firefox will be a better decision because your customers will have freedom of keeping their older versions of OSs since newer versions of Mozilla will be available to them.

On the other hand, just like if you need watch a Windows Media Player stream from web you need to switch to IE, they can make IE too attractive to give-up. If MS decides to blend XAML & Indigo with their Longhorn IE, Mozilla will not be able to keep up with that becasue of their own OS independent compatability mandate. MS doesn't necessarily have to butcher HTML standards, they can simply create Flash like add-ins.
Emre Aydinceren
Friday, January 14, 2005 12:34:15 PM (Central Standard Time, UTC-06:00)
Yes, new version of the CLR will be 100% backward compatible. However, new versions of the .NET FCL are not guaranteed to be 100% compatible.

Unfortunatly, this means that .NET will move down the same road as Java, requiring JRE deployments in order to guarantee specific versions will be available.

Friday, January 14, 2005 5:39:13 PM (Central Standard Time, UTC-06:00)
Microsoft .NET is a great platform for Windows. Mono will be a great platform for Windows and for a lot of other good operating systems and hardware architectures. I firmly believe this as well as many other experienced IT professionals.

I thank you for a blog entry that does a great service to .NET programming in general.

Best regards,

Paco
Comments are closed.