Skip to comments.Microsoft decouples .NET Framework from Windows: C# for iOS and Android using their native code.
Posted on 05/15/2014 10:49:33 AM PDT by SeekAndFind
In one of Monday's extraordinary announcements from Microsoft during its TechEd conference in Houston, program managers both announced and demonstrated the ability to build applications for multiple computing platforms, including iOS, using the .NET Framework once heralded as the crown jewel of Windows--specifically, to build and deploy applications that compile to those platforms' native code, without requiring plug-ins or interpreters.
"One of the most exciting aspects of .NET going forward is that we are truly embracing openness," declared Habib Heydarian, a program manager for Microsoft's .NET team, during a demonstration Monday. "You can leverage your existing assets, your existing skills, to write .NET applications that run on iOS and Android devices."
Since its inception, the .NET Framework has been the system for running managed code designed for Windows. By "managed code," I mean instructions meant not for the core processor, but instead for an interpreter that acts as a kind of governor compiling code "just-in-time" (JIT) but also managing access to existing system resources and halting code that could crash the system. It's what Java has done for years.
.NET has become the principal mechanism for running applications on the Windows desktop. Because the bytecode it runs is actually "pre-digested" instructions, in a sense, it enables developers to build in their choice of high-level languages. .NET introduced C# to the family of languages, making it perhaps the principal language developers and DevOps staffers must learn to create stand-alone business applications.
But it was, for the most part, a Windows platform. For years, the reason businesses invested in Windows clients was because they believed they would want to run .NET applications (the Office suite being the most prominent among them) for the indefinite future. Microsoft tried to open up .NET to Web apps by developing Silverlight, a lean, redistributable interpreter like Java that could manage access to limited Windows resources from applications hosted on Web servers. It first courted the idea of annexing client platforms outside of Windows when it sanctioned the development of Mono, an open source implementation of .NET; and Moonlight, an implementation of Silverlight, both designed to be run on Linux, Mac and eventually iOS. These were genuine efforts at interoperability, that many enthusiast developers outside the Windows space actually took to be a conspiracy to poison non-Windows operating systems.
That "conspiracy" led to the development of Unity, a very successful cross-client gaming platform that enables game artists to write for, and even on, both Windows and Mac with the same code base and assets. Heralded as key to Unity's success was the work of open source developer Miguel de Icaza, who piloted the Mono movement. Now de Icaza is co-founder and CTO of Xamarin, the software firm that first made it possible to compile .NET programs into native, non-Windows code, and Microsoft's close partner on the new .NET.
"If you want to develop applications for devices such that you have a much smaller footprint, your memory consumption is a lot less, and your application starts a little faster, you may not necessarily want the entire 1.6 GB installer that comes with the .NET Framework as it is today," admitted Microsoft's Heydarian. "You might want a much, much smaller framework. In fact, you might not want to install a framework on the machine at all. So with this new .NET optimized for devices, what actually happens is when you compile your app, the .NET framework libraries actually get linked into your application. You now deploy your libraries and .NET framework as part of your app."
Heydarian went on to explain that only the API calls used by the application get linked into the redistributable, compiled application, not the Framework as a whole.
"What happens is, people want both reach--meaning, people want to reach as many users as possible--and they also want rich, meaning richness in their application. Typically with Web, you get a lot of reach--because browsers are pretty much everywhere. However, for some scenarios, you might not get as much richness. Then you have to make this tradeoff of, 'Do I now write my app in three different languages for three different skillsets, or do I go to the lowest common denominator, which is the Web?... The one thing that I think is great about .NET and our partnership with Xamarin is the idea that you no longer have to make that tradeoff."
One code to rule them all..................tech ping!................
A couple of years ago, the small company I worked for (a .net shop) wanted to dabble in developing an iOS app.
The dev environment and the language were, let’s put it mildly, “an impediment”.
They did this a few years ago with the .NET Micro Framework, building apps for embedded processors.
Don’t forget, Windows NT 3.1, circa 1993, to run on a multitude of processors. Microsoft was also a VMS and Unix shop long before DOS or Windows came along.
That is the advantage with Visual Studio, whereas in a Java environment there are many different development tools to choose from.
VS is EXPEN$IVE - fortunately I’ve never had to personally buy it.
RE: whereas in a Java environment there are many different development tools to choose from.
Why can’t everyone in the Java world simply rally around the ECLIPSE IDE?
I thought there was a freebie version.
But I know several that you will pry their IntelliJ away from their cold dead hands.
Actually, yes, though I’ve never used it.
Been awhile since I’ve been in the .NET world, other than maintaining several legacy apps.
So is this .NET 5? When can I start using my VS2010 to write iOS apps?
It used to be very expensive, but now it's free unless you want the version that has all the team collaboration stuff in it.
Open Source API FROM m$?!
When I powered up my desktop this AM by the time the automatic updates to it from Microsoft had finished and restarted my computer I could not access the Internet with that computer nor could I access the restore function! I am at a loss as to what to do now. Thanks Microsoft, you bastards.
uninstall the latest patches, I think KB2964358 is the problem child.
I took the precaution of uninstalling all May patches. After a minor adjustment it seems to have worked. I’m here on that computer now. The patch you mentioned was downloaded earlier in the month. There were five downloaded yesterday and loaded when I powered up this AM. I uninstalled them all. Loverly, ain’t it! I was getting ready to restore my computer to factory. The darn thing would not let me access my document files of drivers!
Disclaimer: Opinions posted on Free Republic are those of the individual posters and do not necessarily represent the opinion of Free Republic or its management. All materials posted herein are protected by copyright law and the exemption for fair use of copyrighted works.