Welcome!

Open Source Cloud Authors: Elizabeth White, Christopher Keene, Dana Gardner, Craig Lowell, SmartBear Blog

Related Topics: Open Source Cloud

Open Source Cloud: Article

Mono, Mainsoft and Cross-Platform Enterprise Development

Deploy on platforms other than Windows

At first glance, it may sound like an impossible prospect for .NET developers to engage in cross-platform, open source development in the enterprise. Such a reality would be unfortunate, because many development teams enjoy the productivity inherent in using Visual Studio .NET and its wealth of tools for rapidly producing high-quality code. However, they would also like the ability to deploy on platforms other than Windows.

That is the purpose of the Mono project (www.go-mono.org), an open source implementation of the .NET Framework based on the ECMA International standards for C# and the Common Language Infrastructure.

The Mono project makes the same advanced development technologies embodied in Visual Studio and the .NET Framework available to Windows developers who want to deploy their applications on Linux. Mono also enables Windows developers to bring their applications to Solaris, MacOS X, and other operating systems.

Mainsoft delivers a complementary cross-platform solution that extends Web and server .NET applications to Java. Visual MainWin for J2EE uses many of the Mono libraries and includes an add-in to Visual Studio that cross-compiles Microsoft IL to Java bytecode. Grasshopper, Mainsoft's freely available developer edition, comes bundled with Tomcat and is designed for single CPU deployments. The Enterprise edition supports multiple CPU deployments on enterprise class J2EE servers such as IBM WebSphere Application Server or BEA WebLogic Server. The Portal edition enables enterprises to incorporate their ASP.NET applications and Web Parts into their enterprise WebSphere Portal Server.

The Details of Mono and Multiplatform Deployment
Today, Mono implements many of the components that .NET developers require, including AS4P.NET for Web application development, ADO.NET for database access, and Windows.Forms for rich client applications. The Mono project also provides a C# 2.0 compiler that supports the latest language specifications, including generics, anonymous methods, and iterators, as well as assemblers, linkers and API documentation for these.

Mono supports a wide variety of hardware platforms and operating systems. Its 32-bit ports include the x86 architecture, Sun's SPARC, the embedded ARM processor, and the s390 mainframes. On 64-bits, Mono supports the Itanium, the s390x, and the x86-64 architecture with ports for other platforms following closely.

Mono undergoes a rigorous testing regime necessary to create enterprise-ready software. It makes use of the NUnit test harness, as well as some internal testing frameworks, to run more than 100,000 individual tests designed to ensure functional equivalence with the .NET Framework. If a discrepancy is found, more unit tests are written around that discrepancy so that it is tested thoroughly before being released.

Version 1.2 of Mono, released at the beginning of November, is compliant with and provides full support for .NET 1.1, and partial support for .NET 2.0. In addition to Window.Forms support, Mono version 1.2 includes numerous feature upgrades including full support for C# 2.0, generics, Gtk# 2.0, and significant updates to the .NET 2.0 API.

Mono and Mainsoft provide alternate ways to extend the reach of existing .NET applications across the enterprise by enabling deployment on alternative hardware and operating systems, either on top of the .NET CLR or through cross-compilation to Java bytecode.

When and Where to Use Cross-Platform Development
Mono enables development in C# or Visual Basic .NET on Windows, but deploys on Linux or other platforms supported by Mono. In many cases, it is possible to take a .NET application developed using the Visual Studio .NET IDE and run the resulting binary directly on Mono. For those wishing to keep the business logic in .NET but use a native Linux UI, Gtk# provides a C source parser and C# code generator that can be used to produce .NET assemblies that bind to GNU object libraries.

Mainsoft technology comes into play when IT organizations want to cross-compile .NET Web and server applications to run on established Java EE application servers. The ability to deploy applications across platforms provides software vendors with access to a wider market for their products. SourceGear uses both Mono and Mainsoft software to provide Vault, the company's source code control software, on Unix systems. OTEE uses Mono for its Unity Game development engine. VistaDB uses Mono to provide its VistaDB embedded SQL database engine across multiple platforms. And Segway Software uses Mainsoft's software to deliver a tight integration between its Segway Sales Productivity Suite, written entirely in Microsoft .NET, and a customer's existing pricing management and configuration system written in Java. There are dozens of other success stories for cross-platform porting and support using cross-platform development tools.

Open Source .NET and the Future
It is important for those considering using cross-platform technologies that they are stable and reliable, and have ongoing road maps to let developers know when new technologies will become available.

The Mono project already has projects implementing several upcoming technologies that fall under .NET 3.0. One subproject, Olive, is implementing CardSpace, Windows Communication Foundation (formerly known as Indigo), and Windows Workflow Foundation. Other .NET 3.0 technologies, such as the Windows Presentation Foundation, a new API for creating desktop applications, are not on the current Mono roadmap.

A second subproject, Crimson, implements technologies that have not been addressed as ECMA/.NET standards by Microsoft, but that Mono considers important for applications running on multiple platforms using Linux.

Mainsoft is also committed to ensuring compatibility with future releases of the .NET Framework, as well as with future Java releases. The next release will incorporate the ability to use Visual Studio 2005 and the .NET Framework 2.0 in building ASP.NET and .NET server applications. Beyond that, its software will pick up the Mono libraries to support .NET Framework 3.0 features such as Windows Communication Foundation and Window Workflow Foundation. A Grasshopper 2.0 Technology Preview is currently available at http://dev.mainsoft.com.

Sidebar:

Use the Visual Studio .NET IDE and Grasshopper for Linux
We all know the Microsoft Visual Studio .NET IDE, but did you know that you can use it to build server applications that run on Linux? Discover how, with Visual MainWin for J2EE from Mainsoft, Visual Studio users can run their applications natively on J2EE and Linux environments.

Take a look at Figure 1. It's clearly an ASP.NET application, and it's clearly running on Linux. That's easy, you might think, you can build an ASP.NET application, run it on Microsoft Windows under Internet Information Services (IIS) and browse to it using a browser such as Firefox on a Linux client. You'd be right, but look again. In the screen shot, your ASPX is running on localhost, the Linux box itself. With Visual MainWin for J2EE, also known as Grasshopper, you can do this easily, without changing your existing .NET code. Therefore, you can say that Visual Studio .NET + Grasshopper = Visual Studio .NET for Linux!

Extending your skill sets to Linux
Consider this - many companies have Linux on their radar for some form of inclusion in their strategy, be it on the desktop or in the data center. To build applications for Linux, you would probably have to learn a new skill set such as GTK or Java. For server side or hosted applications, the logical candidate is usually J2EE, due to its cross-platform nature and its well-known security, manageability, performance and scalability characteristics. However, to develop J2EE applications, you need to learn the Java language, Java Servlets, Java Server Pages, JDBC for database connection and even Enterprise Java Beans for distributed applications. What if, as an alternative, you could broaden the reach of your skills to Linux and other Java-enabled platforms, and as a result, extend yourself (and your resume) in a new and exciting area? What if you could do this without rewriting most of your code, and instead re-use your existing C# code? Not only that, but would you like to contribute to the Mono project - the creation of an open source .NET Framework for Linux? Well you can, and you can do it today, with Grasshopper, a freely available download from Mainsoft.

More Stories By Miguel de Icaza

Miguel de Icaza, co-founder and CTO of Ximian, is one of the foremost luminaries in the Linux development community and one of the world's most prominent advocates for Free Software. Before co-founding Ximian, Miguel was instrumental in the development of Linux for SPARC systems and the Midnight Commander file manager. Miguel is the founder and President of the GNOME Foundation. He was also the first recipient of the prestigious MIT Innovator of the Year award in 1999. Miguel has galvanized Ximian's efforts to make Linux accessible and available to the average computer user, and continues to reach out globally by working with international organizations such as eMexico to introduce affordable technology alternatives, like Linux, to other nations.

More Stories By Philippe Cohen

Philippe Cohen is the vice president of products for Mainsoft Corporation, where he is responsible for overseeing product management, R&D, and support teams for Mainsoft's product suite.

Comments (0)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.


@ThingsExpo Stories
SYS-CON Events announced today that 910Telecom will exhibit at the 19th International Cloud Expo, which will take place on November 1–3, 2016, at the Santa Clara Convention Center in Santa Clara, CA. Housed in the classic Denver Gas & Electric Building, 910 15th St., 910Telecom is a carrier-neutral telecom hotel located in the heart of Denver. Adjacent to CenturyLink, AT&T, and Denver Main, 910Telecom offers connectivity to all major carriers, Internet service providers, Internet backbones and ...
SYS-CON Events announced today that Numerex Corp, a leading provider of managed enterprise solutions enabling the Internet of Things (IoT), will exhibit at the 19th International Cloud Expo | @ThingsExpo, which will take place on November 1–3, 2016, at the Santa Clara Convention Center in Santa Clara, CA. Numerex Corp. (NASDAQ:NMRX) is a leading provider of managed enterprise solutions enabling the Internet of Things (IoT). The Company's solutions produce new revenue streams or create operating...
The Internet of Things can drive efficiency for airlines and airports. In their session at @ThingsExpo, Shyam Varan Nath, Principal Architect with GE, and Sudip Majumder, senior director of development at Oracle, will discuss the technical details of the connected airline baggage and related social media solutions. These IoT applications will enhance travelers' journey experience and drive efficiency for the airlines and the airports. The session will include a working demo and a technical d...
Although it has gained significant traction in the consumer space, IoT is still in the early stages of adoption in enterprises environments. However, many companies are working on initiatives like Industry 4.0 that includes IoT as one of the key disruptive technologies expected to reshape businesses of tomorrow. The key challenges will be availability, robustness and reliability of networks that connect devices in a business environment. Software Defined Wide Area Network (SD-WAN) is expected to...
Developing software for the Internet of Things (IoT) comes with its own set of challenges. Security, privacy, and unified standards are a few key issues. In addition, each IoT product is comprised of (at least) three separate application components: the software embedded in the device, the back-end service, and the mobile application for the end user’s controls. Each component is developed by a different team, using different technologies and practices, and deployed to a different stack/target –...
Internet of @ThingsExpo, taking place November 1-3, 2016, at the Santa Clara Convention Center in Santa Clara, CA, is co-located with 19th Cloud Expo and will feature technical sessions from a rock star conference faculty and the leading industry players in the world. The Internet of Things (IoT) is the most profound change in personal and enterprise IT since the creation of the Worldwide Web more than 20 years ago. All major researchers estimate there will be tens of billions devices - comp...
As cloud adoption continues to transform business, today’s global enterprises are challenged with managing a growing amount of information living outside of the data center. The rapid adoption of IoT and increasingly mobile workforce are exacerbating the problem. Ensuring secure data sharing and efficient backup poses capacity and bandwidth considerations as well as policy and regulatory compliance issues.
Why do your mobile transformations need to happen today? Mobile is the strategy that enterprise transformation centers on to drive customer engagement. In his general session at @ThingsExpo, Roger Woods, Director, Mobile Product & Strategy – Adobe Marketing Cloud, covered key IoT and mobile trends that are forcing mobile transformation, key components of a solid mobile strategy and explored how brands are effectively driving mobile change throughout the enterprise.
Data is the fuel that drives the machine learning algorithmic engines and ultimately provides the business value. In his session at Cloud Expo, Ed Featherston, a director and senior enterprise architect at Collaborative Consulting, will discuss the key considerations around quality, volume, timeliness, and pedigree that must be dealt with in order to properly fuel that engine.
19th Cloud Expo, taking place November 1-3, 2016, at the Santa Clara Convention Center in Santa Clara, CA, will feature technical sessions from a rock star conference faculty and the leading industry players in the world. Cloud computing is now being embraced by a majority of enterprises of all sizes. Yesterday's debate about public vs. private has transformed into the reality of hybrid cloud: a recent survey shows that 74% of enterprises have a hybrid cloud strategy. Meanwhile, 94% of enterpri...
Data is an unusual currency; it is not restricted by the same transactional limitations as money or people. In fact, the more that you leverage your data across multiple business use cases, the more valuable it becomes to the organization. And the same can be said about the organization’s analytics. In his session at 19th Cloud Expo, Bill Schmarzo, CTO for the Big Data Practice at EMC, will introduce a methodology for capturing, enriching and sharing data (and analytics) across the organizati...
SYS-CON Events announced today that Pulzze Systems will exhibit at the 19th International Cloud Expo, which will take place on November 1–3, 2016, at the Santa Clara Convention Center in Santa Clara, CA. Pulzze Systems, Inc. provides infrastructure products for the Internet of Things to enable any connected device and system to carry out matched operations without programming. For more information, visit http://www.pulzzesystems.com.
SYS-CON Events announced today Telecom Reseller has been named “Media Sponsor” of SYS-CON's 19th International Cloud Expo, which will take place on November 1–3, 2016, at the Santa Clara Convention Center in Santa Clara, CA. Telecom Reseller reports on Unified Communications, UCaaS, BPaaS for enterprise and SMBs. They report extensively on both customer premises based solutions such as IP-PBX as well as cloud based and hosted platforms.
Almost two-thirds of companies either have or soon will have IoT as the backbone of their business in 2016. However, IoT is far more complex than most firms expected. How can you not get trapped in the pitfalls? In his session at @ThingsExpo, Tony Shan, a renowned visionary and thought leader, will introduce a holistic method of IoTification, which is the process of IoTifying the existing technology and business models to adopt and leverage IoT. He will drill down to the components in this fra...
Pulzze Systems was happy to participate in such a premier event and thankful to be receiving the winning investment and global network support from G-Startup Worldwide. It is an exciting time for Pulzze to showcase the effectiveness of innovative technologies and enable them to make the world smarter and better. The reputable contest is held to identify promising startups around the globe that are assured to change the world through their innovative products and disruptive technologies. There w...
There is growing need for data-driven applications and the need for digital platforms to build these apps. In his session at 19th Cloud Expo, Muddu Sudhakar, VP and GM of Security & IoT at Splunk, will cover different PaaS solutions and Big Data platforms that are available to build applications. In addition, AI and machine learning are creating new requirements that developers need in the building of next-gen apps. The next-generation digital platforms have some of the past platform needs a...
With so much going on in this space you could be forgiven for thinking you were always working with yesterday’s technologies. So much change, so quickly. What do you do if you have to build a solution from the ground up that is expected to live in the field for at least 5-10 years? This is the challenge we faced when we looked to refresh our existing 10-year-old custom hardware stack to measure the fullness of trash cans and compactors.
The emerging Internet of Everything creates tremendous new opportunities for customer engagement and business model innovation. However, enterprises must overcome a number of critical challenges to bring these new solutions to market. In his session at @ThingsExpo, Michael Martin, CTO/CIO at nfrastructure, outlined these key challenges and recommended approaches for overcoming them to achieve speed and agility in the design, development and implementation of Internet of Everything solutions wi...
Today we can collect lots and lots of performance data. We build beautiful dashboards and even have fancy query languages to access and transform the data. Still performance data is a secret language only a couple of people understand. The more business becomes digital the more stakeholders are interested in this data including how it relates to business. Some of these people have never used a monitoring tool before. They have a question on their mind like “How is my application doing” but no id...
Cloud computing is being adopted in one form or another by 94% of enterprises today. Tens of billions of new devices are being connected to The Internet of Things. And Big Data is driving this bus. An exponential increase is expected in the amount of information being processed, managed, analyzed, and acted upon by enterprise IT. This amazing is not part of some distant future - it is happening today. One report shows a 650% increase in enterprise data by 2020. Other estimates are even higher....