Notes on the Mono Presentation at the Plano .NET User Group PDNUG
March 2, 2005

The coputer equipment that was used during the presentation consisted of three computers.  A Linux Server (SuSe 9.2) on an AMD Athlon XP 2400. This was configured to have samba, Apache2, bind, dhcpd, and PostgreSQL database with a real world database of mine. The Mono related technologies all came from SVN HEAD or the appropriate branches as in the case of Gtk# 1.0.6. In addition, I had the Linux box configured with xsp, mod_mono, f-spot, Mono SQL Query and debugger enabled MonoDevelop from SVN HEAD. A Mac workstation (Mac OS X 10.3.8) on an Apple Mac G3 (Blue and White, Yosemite) loaded with all of GNOME 2.6, Mono 1.1.3, Gtk# 1.0.4 - 1.9.2 and MonoDoc 1.0.5. Both the Mac and the Linux server were configure with samba 3.x and exposed shares for my home drive in each environment.

I took my AMD 64 Athlon configured with Windows XP, IIS, MSDE 7.0, Visual C# 2003 (Standard Edition), Visual Basic .NET (Standard Edition) and Visual C++ .NET (Standard Edition). Of course, it had every possible piece of Mono/Gtk# and/or related technology for Win32 installed before we begun. Rather than doing MS Virtual PC or VM Ware I decided to present using the environment I work with in real life and that I believe is most natural for Win32 developers; UNC paths or mapped drives. I had created about three short-cuts on my Windows desktop (one for a bin directory in my home folder in the Linux machine, one for the home folder in the Mac, and one for the directory that was configured as a Web Application” in mod_mono to show off the ASP.NET capabilities

Joseph, Erik and I had agreed to keep the presentation light on static slides and very heavy on live demonstrations. Other than some small details like getting the LCD projector to work right away there was no eventualities and the scheduled never suffered! However, we were totally taken by surprise (both us the Monkeys and the PDNUG Officers) when we realized that there was no Internet connectivity. The funny thing is that both Joseph and I had been rehearsing the night before and based substantial portions of our demos on Web access. I turned to Joseph and Erik and told them that it would be cool because we would then devote more time to database access and the like. I know that Erik had great ideas using beagle and gaim.

I started by asking the “filled to capacity” room:

How many of you came here specifically because you wanted to here about mono?

About three quarters of the room enthusiastically raised their hand!

Erik opened with the slide presentation, and after three slides we begun the demos. This was perfect because we had the chance to have a very savvy and eloquent Erik explain what was going on while I focus on typing and compiling. Joseph and Zac would often also contribute or expand on what was being said or would help answer some of the very interesting questions that this awfully smart audience would pose.

In the months that lead to the planning of the presentation I had decided to use Visual Studio (as opposed to other IDEs or text editors) to do all of the programming that would be shown in the demonstrations. We debuted a new version of VSPrj2Make Visual Studio .NET 2003 Add-in that now fully implements the “Test in Mono” menu option.

The first project was a Glade# Visual Basic .NET simple app that we went about compiling after only modifying a string that is displayed in the “About” dialog so that it would read something like “Hello Mono Plano”. We ran all applications we did in Visual Studio in the standard way which means that it was the .MS NET Framework who would execute them. Then immediately or sometimes simultaneously we would select the “Test in Mono” add-in menu option to have Mono’s JIT and Runtime be the one to run them. We proceeded to also create a simple WinForms application and a more involved Glade#/Gecko# application in C#. Since we did not have Internet connectivity we browse to our Linux Apache2 documentation website as well as to the XSP test website and samples. Joseph then took the helm at the keyboard and created a simple Web Form application that he then ran in IIS and then in the local XSP server.

Daniel Morgan’s superb Mono SQL Query application was launched and from the Windows box,  a query against the PostgreSQL database that was hosted in Linux was ran. The audience liked that.

We were now ready to abandon Windows and to begin testing and running the applications we had just created in both the Mac and on the Linux machine. So just before we switch with the KVM to the already running Mac and Linux computers, I dragged the binaries of the applications I had created to the appropriate short-cuts in my desktop that pointed to each non Microsoft platform.

I believe that we first went to the Mac were we ran the VB Glade# app as well as MonoDoc without any complications. We then switch to Linux were we ran the Gecko# Embedded browser application we compiled earlier in Windows. We ran the WinForms app and then we launched Mono SQL Query but this time we connected to SQL Server that was running in Windows and ran a select query as well as the execution of a stored procedure that returns a result set.

Larry’s f-spot was run and we showed a number of family pictures that I had in my collection. MonoDoc and MonoDevelop were also demoed and we even did some step-debugging with a quick Glade# 2.0 project that we created on the fly.