Microsoft Introduces .NET Core
New submitter I will be back writes: Microsoft's Immo Landwerth has provided more details on the open source .NET Core. Taking a page from the Mono cookbook, .NET Core was built to be modular with unified Base Class Library (BCL), so you can install only the necessary packages for Core and ship it with applications using NuGet. Thus, NuGet becomes a first-class citizen and the default tool to deliver .NET Core packages.
As a smaller and cross-platform subset of the .NET Framework, it will have its own update schedule, updating multiple times a year, while .NET will be updated once a year. At the release of .NET 4.6, Core will be a clear subset of the .NET Framework. With future iterations it will be ahead of the .NET Framework. "The .NET Core platform is a new .NET stack that is optimized for open source development and agile delivery on NuGet. We're working with the Mono community to make it great on Windows, Linux and Mac, and Microsoft will support it on all three platforms."
As a smaller and cross-platform subset of the .NET Framework, it will have its own update schedule, updating multiple times a year, while .NET will be updated once a year. At the release of .NET 4.6, Core will be a clear subset of the .NET Framework. With future iterations it will be ahead of the .NET Framework. "The .NET Core platform is a new .NET stack that is optimized for open source development and agile delivery on NuGet. We're working with the Mono community to make it great on Windows, Linux and Mac, and Microsoft will support it on all three platforms."
I write web applications in .Net, and as far as I'm concerned, nothing else I've see comes close for large projects. There was a bunch of hype about Ruby, so I tried that. For anything beyond basic CRUD applications, it was quite painful to use. The .Net API has amazing amounts of built in functionality. I can't think of any language that comes close. It amazes me how people write stuff in Java without having a decent "Date" data type. Why should I have to use a third party library to get decent date support?
Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
.NET Framework is really two parts: the "built in libraries" and the CLR (common language runtime). When you install a Framework version, it installs only the CLR version it depends on, and not earlier ones (at least this is true at time of writing).
Where it gets confusing is .NET Framework 3.0 and 3.5 -- both still run on CLR 2.0.
.NET Framework 4.0, 4.5, and 4.5.1 runs on CLR 4 (they actually just call it "4", not "4.0").
Source: http://msdn.microsoft.com/en-u...
What's makes this stupidly confusing is the compatibility: If you have .NET 3.5 installed, you can run a 2.0 application. If you have .NET 4.5 installed, you can run a 4.0 application, but you can't run a 3.5 application.
IMHO, if they had just used 2.1 and 2.2 instead of 3.0 and 3.5, this could be much less confusing: .NET 4 apps run on .NET 4, and .NET 2 apps would run on .NET 2. Maybe they're doing this from now on, but the fact that 3.x is really 2.0 has screwed this up. I also don't get why they skip to .5 but that's far less of an issue.
That said, this is the company that thinks 95+1 = 98, Vista+1 = 7, and 8+1 = 10.
Speak before you think
I'd say the only platforms that really matter when languages like Java or C# are on the table are "Linux servers", "Windows servers", "Android phones", and "iPhones" (and tablets similar to the phones). If C# becomes easy to run on those platforms (which is clearly MS's plan, but we'll see) there's just no reason not to use it.
C# development is worlds easier than Java. If I can write for Linux servers with it easily, it will be my first choice for professional development. If I can easily write C# code that runs both on MS desktops and Android mobile, it will be my first choice for personal development. I wish MS the best of luck here, but they really need to hit this one out of the park - a half-assed effort isn't going to cut it.
Socialism: a lie told by totalitarians and believed by fools.
Those who have decided MS is eternally evil will never accept .NET. But you gotta admit that Microsoft is doing this right. This isn't the Gates / Balmer company any more. It seems that Microsoft realized that the Wintel & MS Office monopolies are dead, and that the bazaar is defeating the cathedral.
Their new hope is Azure. All this open-sourcing of .NET is to entice people to use .NET and thus use Windows Azure. By eliminating the stigma of being closed and proprietary, they eliminate the #1 objection to using .NET. Note that this door is open both ways: not only is .NET opening, but Azure is supporting other stacks: node and LAMP for example. They don't care what tools you use anymore, they just want your hosting business.