My two major memories from Calgary Code Camp 2006 were being blinded by
Tom Opgenorth's loud Hawaiian shirt and signing his gun registry application. I'm assuming his presentation today will be equally as memorable!
We encounter a slight hiccup when Tom finds out OpenOffice won't recognize his file extensions! Where's open source now??
John Bristowe (who has showed up at pretty much *every* meeting thus far - that guy is everywhere) saves the day once more by loaning Tom his laptop.
List of places writtten under Mono include Sourcegear, Wikipedia, etc.
Mono's name apparently originates because the author is Spanish, and the author likes monkeys. Interesting choices. It's also "interesting" that the author looooves monkeys that much, confirming my earlier theory that Linux users are either asexual or merely perverse.
I am a little disappointed that Tom is not wearing a Hawaiian shirt today. Tom is all, "I'm bleeding edge".
How bleeding edge can you be with the UNIX equivalent of an alligator polo shirt? COME ON BUDDY
Mono supports C#, VB.NET, Java(??), IronPython, PHP, and Boo.
Boo is a "wrist-friendly" language. Yike. I have no idea what that means but it sounds a tad disturbing.
Wow, Mono runs under a lot of systems. Mono is a TOTAL WHORE! *NOW* I understand why they named this sucker Mono.
"Mono is everywhere you need to be and probably a few places you don't" - like that doesn't sound like a massive STD waiting to happen.
"Any of you use Web parts? I don't want to say it's bad..." TAKE A STAND!!!
"Mono implements things that people ask for rather than just mirroring Microsoft..." Bristowe: "Watch it buddy!!" I know John is confident after the @$$-kicking he gave Donald Belcham last September but Tom owns rifles. He might have bitten off more than he could chew here!!
Mono has .NET 2.0 support and a host of tool support:
Gendarme - FxCop equivalent
MoMA - Mono deployment
Oh man I am DIZZY
Mono 2.2 in Q4 of 2007 will have WinForms 2.0 and the first beta of Olive - which brings LINQ, WPF, WCF, WF to Mono.
System.Management and System.EnterpriseServices are not supported under Mono, as COM and the Management libraries are largely win32 calls that have not been done.
How do you write code for Mono?
SharpDevelop
MonoDevelop (for MACS!! Obviously this one is the superior one)
Visual Studio .NET
Tom loads up SharpDevelop IDE. "There's a designer!!" - John Bristowe, looking intimidated. Point for Tom!!
My head is spinning from *something*! Maybe it's the IDE.
Seriously where the *@#& is my agenda??
Bristowe -"I know there's two CLRs you can use here." John is standing up now face-to-face with Tom.
"I have other questions if you don't mind." Oh my goodness - it's not fighting at all. Bristowe
is in love!!
"I think Bristowe is having a Mono chubby." -
some anonymous developer. Actually, I think it's Tom that Bristowe is aroused by.
Holy crap: a Linux user has actually succeeded in arousing another human being for the first time in recorded history. I'll never forget where I was when this occured.
Tom beings demoing MonoDevelop. Jonas: "I wish I had Mono right now!!"
"What's the output of this?" - it's an EXE run using Mono!! I'll be writing Hello World applications *all the time* in this!!
Apache web server can be run using mod_mono.
"Is mod_mono cross-platform?" Nope.
Cross-platform tips:
Platform abstractions: Windows isn't case sensitive, but UNIX is.
Path separators are different. Use System.IO.Path.Combine and System.IO.PathSeparator rather than the slash. Bristowe: "FxCop checks this as well." Winks at Tom and smiles. Awwwww.
Tom recommends:
Use a DataProvider Model for database abstraction
use Code Generation (myGeneration or others - TOm prefers mygeneration because it is free)
Use an O/R Mapper (nHibernate)
Many databases are case sensitive as well.
CLS Compliance: Bristowe: "ooooooh, that *sucks*".
Non-standard builds: Debug symbols are not compatible and incremental builds are not compatible.
Infragistics and other third-party controls may not work with Mono.
Wow, some parts of MessageQueue are in Mono! Well, except for the Security part, which is admittedly a pretty big part.
Tom is now showing off applications he previously wrote in Mono that are slightly more than Hello World.
"It wouldn't be a LINUX box if it wasn't a Matrix background"
First demo: XSP (ASP.NET equiv) application. Tom loads..and then BOOM. Yellow screen of death!! Bristowe: "Don't worry, Tom, it's just your config string." Why does this sound disturbingly like some sort of Viagra ad? "Don't worry honey, I'm sure it happens to a lot of guys?"
Bristowe is now standing *right behind* Tom, almost giving him a shoulder massage while he fixes the bugs. I don't know what sort of "pair programming" this is but it's certainly a lot more...um, "intense" than I'm used to.
I hear a "John Bristowe" over in D'Arcy's presentation as it is ending - Bristowe rushes out of the room to investigate. I'm not sure whether Tom is relieved or disappointed.
References:
Mono - http://www.go-mono.com
Mono Mailing Lists - http://www.mono-project.com/Mailing_Lists
Race to Linux - http://www.devx.com/racetolinux/Door/33508
GTK# - http://gtk-sharp.sourceforge.net
Tom: "Thanks for coming out." How oddly appropriate given this presentation!
Violets are blue, roses are red
I think Bristowe is trying to get Tom O. in bed
Mono is wicked, it's tools are phenom
Tom Opgenorths' demo: completely the bomb