Microsoft forks .NET and WHOMP! Here comes .NET Core app dev stack

Modular platform will be more agile - but devs fret over porting

Microsoft has revealed more details about .NET Core, "the foundation for all future .NET platforms".

In a detailed post, Microsoft’s program manager Immo Landwerth explains why the company is forking .NET in order to make sense of shipping .NET for multiple platforms, including Windows desktop, Windows Store (or “Metro”), Windows Phone, ASP.NET (the web application stack), and following last month’s announcement, Mac and Linux.

First released in 2002, the .NET Framework is based on a Common Language Runtime which executes code written in languages including C#, F# and Visual Basic. There are also extensive libraries and frameworks, including the Base Class Library (BCL) for standard types and functions, and frameworks such as ASP.NET and Windows Forms which are built on top.

The .NET Framework and C# language were a hit with developers, and Microsoft created different versions in order to target more platforms, such as embedded and mobile. These differences cause problems for developers when they need to write code for more than one platform.

The company made this worse by changing track from time to time. Silverlight, for example, seemed once to be the direction for mobile and cross-platform .NET, and is used in the first version of Windows Phone, but Windows Phone 8 and Windows 8 Store apps do not use Silverlight but a different and incompatible runtime.

Microsoft addressed this to some extent with Portable Class Libraries (PCL), which define a subset of the .NET Framework that works across all the platforms you specify. PCLs are a fudge though; the multiple incompatible libraries remain underneath, but the PCL wrappers prevent you from calling an API that will break compatibility.

At its Build developer conference earlier this year, the company introduced Universal Apps, touted as a way to build apps that work on Windows Phone as well as Windows 8. A Universal App is a project type that lets you share code, but you still write platform-specific code where necessary, so it's not quite the magic that it first appears to be.

Introducing .NET Core

Diagram showing .NET Core design

Now there is .NET Core, which includes a new modular fork of the .NET Framework. .NET Core includes a unified BCL which is the same code for all platforms - Landwerth says that .NET Native, a project to compile Windows Store Apps as true native code, currently has its own implementation.

ASP.NET 5 (the forthcoming version), Windows Store apps, and the open source .NET code managed by the .NET Foundation all use .NET Core. Sharing code across platforms should be easier with .NET Core, since the libraries really are the same.

What may be more significant is that .NET Core introduces a new deployment model. The libraries are delivered as NuGet packages, this being the package manager used by Visual Studio to import .NET code into projects. The idea is that developers will import just those parts of .NET Core that they need for their project, and deploy them with the application.

Microsoft calls this app-local deployment. In contrast to the original .NET Framework, which is a system-wide set of libraries, every .NET Core application will ship with its own individual framework. This means that updates to .NET Core will not break existing applications, which further implies that it can be updated more rapidly. It also means that the .NET Framework no longer needs to be installed in the right version on the target system; it is all part of the application.

The downside of this approach is that with each NuGet package that forms part of .NET Core being updated individually and at different times, there is a risk of incompatibilities appearing. “Since you’ll be able to mix-and-match NuGet packages there can obviously be cases where certain combinations of components don’t play well together,” said Landwerth. In order to overcome this, Microsoft will ship “distributions” of .NET Core that are tested for compatibility. The plan is to ship a new distribution four times a year.

Another problem is how to update .NET libraries if security problems are found. “Critical security fixes must be deployed quickly and holistically in order to be effective. We are fully committed to making security fixes as we always have for .NET,” added Landwerth, though he does not state how this will work.

Presumably if version “n” of a specific NuGet package is found to be insecure, there will be a mechanism for seeking out these instances and updating them.

Broader topics

Other stories you might like

  • Employers in denial over success of digital skills training, say exasperated staffers

    Large disparities in views from bosses vs workers on 'talent transformation initiatives,' says survey

    Digital transformation projects are being held back by a lack of skills, according to a new survey, which finds that while many employers believe they are doing well at training up existing staff to meet the requirements, their employees beg to differ.

    Skills shortages are nothing new, but the Talent Transformation Global Impact report from research firm Ipsos on behalf of online learning provider Udacity indicates that although digital transformation initiatives are stalling due to a lack of digital talent, enterprises are becoming increasingly out of touch with what their employees need to fill the skills gap.

    The report is the result of two surveys taking in over 2,000 managers and more than 4,000 employees across the US, UK, France, and Germany. It found that 59 per cent of employers state that not having enough skilled employees is having a major or moderate impact on their business.

    Continue reading
  • Saved by the Bill: What if... Microsoft had killed Windows 95?

    Now this looks like a job for me, 'cos we need a little, controversy... 'Cos it feels so NT, without me

    Former Microsoft veep Brad Silverberg has paid tribute to Bill Gates for saving Windows 95.

    Silverberg posted his comment in a Twitter exchange started by Fast co-founder Allison Barr Allen regarding somebody who'd changed your life. Silverberg responded "Bill Gates" and, in response to a question from Microsoft cybersecurity pro Ashanka Iddya, explained Gates's role in Windows 95's survival.

    Continue reading
  • UK government opens consultation on medic-style register for Brit infosec pros

    Are you competent? Ethical? Welcome to UKCSC's new list

    Frustrated at lack of activity from the "standard setting" UK Cyber Security Council, the government wants to pass new laws making it into the statutory regulator of the UK infosec trade.

    Government plans, quietly announced in a consultation document issued last week, include a formal register of infosec practitioners – meaning security specialists could be struck off or barred from working if they don't meet "competence and ethical requirements."

    The proposed setup sounds very similar to the General Medical Council and its register of doctors allowed to practice medicine in the UK.

    Continue reading
  • Microsoft's do-it-all IDE Visual Studio 2022 came out late last year. How good is it really?

    Top request from devs? A Linux version

    Review Visual Studio goes back a long way. Microsoft always had its own programming languages and tools, beginning with Microsoft Basic in 1975 and Microsoft C 1.0 in 1983.

    The Visual Studio idea came from two main sources. In the early days, Windows applications were coded and compiled using MS-DOS, and there was a MS-DOS IDE called Programmer's Workbench (PWB, first released 1989). The company also came up Visual Basic (VB, first released 1991), which unlike Microsoft C++ had a Windows IDE. Perhaps inspired by VB, Microsoft delivered Visual C++ 1.0 in 1993, replacing the little-used PWB. Visual Studio itself was introduced in 1997, though it was more of a bundle of different Windows development tools initially. The first Visual Studio to integrate C++ and Visual Basic (in .NET guise) development into the same IDE was Visual Studio .NET in 2002, 20 years ago, and this perhaps is the true ancestor of today's IDE.

    A big change in VS 2022, released November, is that it is the first version where the IDE itself runs as a 64-bit process. The advantage is that it has access to more than 4GB memory in the devenv process, this being the shell of the IDE, though of course it is still possible to compile 32-bit applications. The main benefit is for large solutions comprising hundreds of projects. Although a substantial change, it is transparent to developers and from what we can tell, has been a beneficial change.

    Continue reading
  • James Webb Space Telescope has arrived at its new home – an orbit almost a million miles from Earth

    Funnily enough, that's where we want to be right now, too

    The James Webb Space Telescope, the largest and most complex space observatory built by NASA, has reached its final destination: L2, the second Sun-Earth Lagrange point, an orbit located about a million miles away.

    Mission control sent instructions to fire the telescope's thrusters at 1400 EST (1900 UTC) on Monday. The small boost increased its speed by about 3.6 miles per hour to send it to L2, where it will orbit the Sun in line with Earth for the foreseeable future. It takes about 180 days to complete an L2 orbit, Amber Straughn, deputy project scientist for Webb Science Communications at NASA's Goddard Space Flight Center, said during a live briefing.

    "Webb, welcome home!" blurted NASA's Administrator Bill Nelson. "Congratulations to the team for all of their hard work ensuring Webb's safe arrival at L2 today. We're one step closer to uncovering the mysteries of the universe. And I can't wait to see Webb's first new views of the universe this summer."

    Continue reading

Biting the hand that feeds IT © 1998–2022