The product of a web developer with a little too much caffeine

More On Cross Platform Development

with 6 comments

Up until about 6 months ago I was a Windows only developer. I thought it would be cool to mess with other operating systems and languages but it just wasn’t worth the time. I’m one of those devs that is more interested in creating software than learning new ways to create new software. Don’t get me wrong, I’m always impressed with those people that knows 14 different languages on 3 different operating systems — but I just don’t aspire to be that guy.

However, Mono has really opened up opportunities for me that weren’t available before. If you don’t know what it is, the easiest way to describe it is .NET everywhere. Write something in .NET and use it on Windows, Mac or Linux.

Mono doesn’t just apply to desktop apps either. You can actually write WebForms or MVC apps as well. Heck, there is even a cross platform Silverlight called Moonlight. Yes, it really is that awesome.

Another advantage to Mono is that you can use free operating systems to build a web server but still use the language and framework that you are used to. This is especially handy if you don’t have the budget to pay for Windows and MSSQL licences to get a website off the ground. Keep in mind that Microsoft did create the awesome BizSpark program which helps eliminate the costs but not indefinitely.

Since Mono works anywhere, you can technically use any system you want to start developing, but if you’re like me, a strictly Windows developer, then I recommend that you use an alternate operating system. Messing with a new operating system can be fun but the real advantage to this is you get a chance to work with something new that you might end up using in the future (for example, MySQL).

Below are a few links that can get you started…

  • Mono: Information about Mono and the different apps available for it. (You might not use this page for installation though…)
  • Wubi – Ubuntu Installer: As good as VirtualBox is, Wubi installs Ubuntu onto your computer without requiring that you format your computer to create additional partitions. Not only that, but Wubi installs Ubuntu in such a way that you still have access to your primary OS’es files – awesome! (thanks to @lazycoder)
  • Mono Develop: Awesome, Open Source IDE that lets you easily write and test Mono code. I won’t say it is as good as Visual Studio but it is really quite good.
  • Installing Software On Ubuntu: This will probably be the weirdest part for a Windows developer. This page has some good information to get you started.

Written by hugoware

November 15, 2009 at 10:20 pm

6 Responses

Subscribe to comments with RSS.

  1. Life in Mono isn’t that cool. Please prove me wrong!

    I too love what Mono future holds, but MonoDevelop is less than cool for now, and not all the .NET API is supported.

    We can still dream to the day when we’ll have the option of developing in windows, linux and mac, though I’m sure that day is still far far far far far away.

    Glad you are excited about Mono.

    MonoTools for Visual Studio is a good step towards promoting cross platform development.


    November 16, 2009 at 7:32 am

    • I suppose it really depends on what you need to use Mono for. If you only plan to target Windows systems (for example, web development) then diving into Mono might not be that beneficial to you.

      However, you are able to develop for much less cost (hardware) if you’re using the free alternatives out there (Ubuntu, MySQL).

      Mono is really quite good. I wrote a block of code I was certain would fail and it compiled and worked great. Enclosures, Anonymous Types, LINQ, etc… you are now able to use these tools in more than just Visual Studio on Windows.


      November 16, 2009 at 9:47 am

  2. So far I have ported two smaller open source libraries to Mono, and for backend processes Mono is terrific. As you’ve demonstrated you can use the most sophisticated facets of .Net with no issue.
    A really great example of what Mono can do on Linux with MindTouch, a Wiki engine which has the back end written in C# and front end using PHP. The framework also has an embedded scripting language and the parser is C# as well.

    I’ve noted that with imported assemblies that make heavy use of Anonymous Types and LINQ the intelli-sense in MonoDevelop gets a little flakey. In many cases the compiler can help you but it can slow you down at first 😉

    I have not yet worked with the ASP.Net implementation, but I am less concerned about the portability as I tend to use heavy client side / Ajax / jQuery as opposed to the server side controls. In the end, HTML is HTML. I am curious if the HTML produced with Mono is in the same form as the Windows version. It would be cool if some of the bloat was avoid.

    ActiveEngine Sensei

    November 18, 2009 at 6:10 am

    • Yeah, the Intellisense is abysmal at times — hopefully it can be improved (or at least turned off). From my experience using MonoDevelop on my Mac tends to be too slow (and it crashes from time to time). My Ubuntu install tends to be much more solid.

      As for web development, I suppose cross platform isn’t as critical since you can be guaranteed a server is running Windows but at the same time it might help market your software if it truly does run anywhere.

      As far as I am aware WebForms still dumps out the same HTML as always.


      November 18, 2009 at 9:19 am

  3. […] I did a post recently about getting started with cross platform development where I listed some resources to get you started but I didn’t mention anything about using SQL. Below are some tools that can get you started. […]

    Vacation Week! « Hugoware

    November 29, 2009 at 8:05 pm

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: