smithvoice.com
 Y'herd thisun? 

“Now with NuGet!!!!... just grab a library because developers are too darned stupid to get into code. I dunno WROX, this attitude (and the overwhelming MVC3 EF-ONLY blackbox approach that the book and MS are more-than-gently pushing) brings back the days of forms plastered with MicroHelp VBXes. Ah well, at least we all glue the libraries together with semicolons now ;-).”

from this "Professional Book" review by Smith

MONO/Ubuntu part 1 - Why?

TaggedCoding, MONO, Linux

Why the heck would you do this?

Because a couple of Redmondy friends have moved from kidding to concern over my writing up the Ubuntu/Mono stuff, may I dump something on you?

On the server side I have been with Microsoft OSes since NT3.51.  NT4 was really great for its day, 2000S was better and 2003S has been running my servers at various companies and at my home offices for years now with never a huge issue and never - ever - the big meltdowns that Linux/Mac heads who don’t actually use the OS just love to pass around.  I’ve seen in companies and had my own timeups well over a year and only seen bluescreens because of my own or my coworkers own coding mistakes or IT going cheap on cards and chips.

I’ve not lost my faith, and at the moment can’t imagine that I’m ever going to be bashing Microsoft blindly like the unpaying hoards.  I am not leaving Microsoft products all-out anytime soon.

BUT…

… with the economy the way it is there are companies looking at their budgets and second guessing those automatic upgrades to Windows 2008 Server.  Backends for Silverlight media and even IIS7’s substantial re-partitioning just aren’t overwhelming everyone for the cost.  Finally moving from 32bit to 64bit is an important biggie… but still, as I am hearing it, it’s just not flipping the upgrade switch by itself.

However, these companies are in need of more boxes, both real and virtual.  The hardware that is dying or sucking too much juice needs replacing and with new hardware comes the need for an OS that takes advantage of the guts in that newer hardware.  If money were flowing like it was a few years back it’d be another MS no-brainer, but money’s tight so a “free” OS catches the eye of even the most un-technical budgeteer.

Thing that puts a lot of these companies into a deer-in-the-headlights freeze however, is that there’s so much investment in .Net code now that there’s no way they can see fit to dump it all and start over with a downgrade to PHP spaghetti.

But I’m here to tell you that you don’t have to be frozen.There is MONO.

Now, as I’m hearing it the old days of MONO not being up to par and still lagging way behind are still alive in the minds of devs and tech managers.  It was alive in my mind too and I’ve talked down Linux/MONO a number of times myself over the years.

BUT…

The tail end of ‘08 I did my biyearly review of Mono’s status and saw that Generics had been implemented and even LINQ To Objects was in v1.9.1.  I saw that you can make a System.WinForms exe app in VS2008 without or with loads of dlls and config files and just plop it on a Linux or Mac desktop and The Exe Just Runs (Friken Wow).

Plus, I saw that Nintendo had given an embedded version the green light for use on the Wii which is a HUGE accomplishment. Animal Crossing was made with the Unity Engine, a Mono product. And Unity is also being used now to create iPhone apps - *Real iPhone apps* using c# via Mono. 

And that got me looking at what else from this year was already in the package and seeing that nearly everything required by a code-lover who hasn’t switched over to being a slave of Wizards appears to be In There.

So I set out to give it a real test and, while nothing is ever perfect and we have to remember that it is a different Implementation that requires being ready to toss out thumbrules of how our compiler optimizes and our GarbageCollector runs, I’ve come away impressed.

I now firmly believe that for the lion’s share of real-world development needs you can use Mono.  You can save money on your OSes and continue to get a return on your .Net codebase and coder investments.

Just between us

My practical primary reason for trying out Linux was and is because in the current economy some Windows based shops are having to postpone Windows Server license purchases and I wanted to see if Mono could let them continue with their codebases and experiencebases till things turned around. Rather than just being another site that says everything's a go with an XCOPY of the .Net code I needed to get into the general guts so that questions related to typical maintenance of the whole system beyond just the application code would be covered.

And my secondary, personal, reason was based on an early experience with music school. As a very youngun I had to go to private piano lessons every week for years. I became passibly able to get my fingers to do what the printed notes said, but I never really "got it."

In grade school I was forced to take a band instrument, and I chose the Oboe (because the name sounded neat, I had to idea what it was) and then it was a situation of having to compete with other kids to not look stupid in class. An immediate upside for that kittle kid was that I didn't have to lose part of every sunny Saturday going to piano lessons... but after a short time I started wishing I could get back to the teacher's expensive baby grand. You see, in learning the different rote for the wind instrument I started seeing the commonality between the two and started understanding some of the bigger things that my piano teacher had been trying to teach. I started understanding "the music."

That early life lesson has been repeated many times over the decades, both accidentally and on purpose. For me, doing Linux and Apache and Mono (and BASIC and VB and Prolog and Delphi and C# and Actionscript2 and AS3 and Java in the past) was not just about doing something new but was about getting to the core of all of them. An OS is an OS, a Service a Service, a language a language; they all have to do the same things and by doing those things differently you do see things you hadn't noticed in just doing the rote of one.

Plus, you begin to see the *real* advantages and deficiencies of each so you hopefully won't continue be another one of those fanatics spouting technology urban legends at the developer bar.

Well, ok. It'll take an asteroid to stop me from obnoxiously putting down PHP and MySQL... just as it would take a thousand world-killers to get most Linux forumfeeders to stop dissing Microsoft products that they have absolutely no direct professional release experience with. Gotta be a stereotype guy on something, but at least I'm giving some parts of the other side a real chance ;-).

Learning how to do in something new what you do without thinking in something old strengthens you in both.

So let's have some fun. Click here now


jump to:

  • 1: Why?
  • 2: Installation
  • 3: Update the OS with APT
  • 4: Remoting to the box with SSH
  • 5: NANO quickies for 95% of the jobs
  • 6: Firewalling Ubuntu 8.10 Server
  • 7: Installing Apache2 and MONO
  • 8: Test client host files
  • 9: Configure MONO on Apache2
  • 10: Apache default pages
  • 11: Handling Apache and Mono Errors
  • 12: Subdomains and Christian porn
  • 13: Virtual Host Tweak: unmanaged cAse sensitiviTy
  • 14: Managed cAse sensitiviTy
  • 15: Managing files and folders
  • 16: Logging Apache Accesses and Errors
  • 17: Ubuntu Task Managers
  • 18: Ubuntu Services and Service Managers
  • 19: Installing Oracle 10g XE Server
  • 20: Connecting Mono to Oracle


  • home     who is smith    contact smith     rss feed π
    Since 1997 a place for my stuff, and it if helps you too then all the better smithvoice.com