Mono and .NET build up bridges

Chris Barylick
February 1, 2013 —  (Page 2 of 3)

Branches on Mono’s tree
Like .NET, the Mono Project has added support for a wide variety of programming languages, including C, C++, Python, Java and Vala. The runtime version also shipped with two garbage collectors that work together to appropriately free up resources between the application and operating system.

Other projects that have spun off from the Mono effort include open-source media players; Android OS builds for Droid handsets as well as Apple’s iOS devices; cross-compatible Cocoa and C# development tools for the OS X platform; game-creation tools; and cross-compatible plug-in developments between the Mono Project and Microsoft’s Visual Studio application (something of an informal alliance, but still readily available to those who want it).

Which brings about the most pertinent question for the development community: Where do Microsoft and the Mono Project stand in relation to each other, especially given that Mono somewhat exists to reverse-engineer a Microsoft property, thus bringing similar functionality to non-Microsoft operating systems and devices?

“In the last decade, we went from a monocultural world dominated by Windows to a multiplatform world,” said de Icaza. “I know that you might be thinking, ‘Well, the guy works on Mono,’ and it is a common reaction by those that are not familiar with .NET. But the framework and the ecosystem are a delight to use, and you soon realize that there is some top-notch engineering going on its design.

“We started the work on the Mono Project since we were frustrated with low-level languages to build large applications, and at the time, high-level languages were just too slow to power those applications. So C# and .NET were a good fit, a balance of performance and high-level features.” de Icaza went on to compliment .NET’s progress over the years.

“Luckily, the framework has evolved over time,” he said. “.NET is not the same beast that it was back in 2001. It has kept up very well with the new understanding about the world. .NET brought full generic programming sometime around 2003, then the C# language went through iterations that added, first, generics support, then functional programming constructs, then dynamic constructs, and most recently support for beautifully handling asynchronous programming.

“.NET was designed very much at a time when Windows was king, so every once in a while there is an API that is sadly designed with Windows in mind. Luckily, we have been able to replace those in many cases with cross-platform ones, or they have become deprecated. Although there are things that I would like to fix in the core, purely from a perfection perspective, they are livable. And the good things that have been built around it make up for the few mistakes here and there in the core.”
Microsoft’s handling of open source
At this point, there’s something of a truce, and even Microsoft is reaching out to the open-source community to a small extent. The Mono Project currently falls under the Microsoft Community Promise, which functions as an established covenant to not assert legal rights or action over certain Microsoft patents on implementations. As such, there exists some wiggle room within Microsoft’s patents, and Mono’s code, if found in violation of these patents, could be altered so as not to infringe upon Microsoft’s legal claims.

To date, Mono seems to exist in a gray area and has even been regarded askance within the Linux community. Back in 2009, it was unknown as to whether to include elements of the Mono Project within Fedora 12—Red Hat’s Linux distribution—given its legal status. Fedora project leader Paul Frields has stated that “We do have some serious concerns about Mono and we'll continue to look at it with our legal counsel to see what if any steps are needed on our part," yet that the Fedora Project has “yet to come to a legal conclusion that is pat enough for us to make the decision to take Mono out."

“Microsoft has already moved libraries like Entity Framework into open source development,” said Brandon Bray, group program manager of Microsoft’s Managed Languages team. “Right now, Microsoft has no tooling for (non-Microsoft operating systems). It’s good to see Mono filling this space. In fact, C# is probably the most portable programming language on phone platforms today because of Mono,” he said.

“The downside of having such a large programming API and being on so many platforms is that developers have to spend a lot of time hunting for libraries or tutorials,” he said regarding the current scale of the .NET effort, and where Mono and open-source efforts fit into this.

Bray then went on to endorse the NuGet effort, which functions as an open-source package manager for the .NET Framework and is distributed as a Visual Studio extension.

“Mono has been around since the standardization effort for .NET began in ECMA,” Bray said. ECMA has created a standard that defines the Common Language Infrastructure (CLI), in which applications written in multiple high-level languages can be executed in different system environments without the need to rewrite those applications. “The Mono Project has been a great example of cross-platform capability,” he added. “Microsoft has frequently collaborated with the Mono team.”

Where developers themselves were concerned, feelings toward .NET seemed somewhat ambivalent, albeit some wished for a wider support basis from Microsoft regarding the Mono Project.

“I haven't used Mono for anything production-related, mostly just quick testing or trying to compile something needed for Linux,” said Tim Donaworth, a security engineer for Gemini Security Solutions. “But I honestly think it's a great thing. I wish MS would further open the framework. I don't know if they support Mono, but from what I've heard, they're not trying to stop it.”

Donaworth went on to praise Microsoft’s support of additional libraries to .NET, which have helped him in his work. “I think the addition of LINQ was the biggest change for me though. Being able to take an object-oriented approach to databases, or even to use previous SQL experience on objects, now made managing data a breeze.”

Related Search Term(s): Microsoft, Mono, .NET

Pages 1 2 3 

Share this link:

Microsoft starts up .NET Foundation
New group should shepherd Microsoft and .NET-flavored open source into the community Read More...

News on Monday  more>>
Android Developer News  more>>
SharePoint Tech Report  more>>
Big Data TechReport  more>>



Download Current Issue

Need Back Issues?

Want to subscribe?