September 29, 2004

Gtk# Win32 Runtime Completed and Ready for Use

Well, I just got done testing the Gtk# Runtime on Win2K Pro configured with the MS .NET Framework Runtime (not the SDK) and ran the Gtk# GtkDemo app on it with my favorite "Dora the Explorer Back Pack" test. I run Pixbuf test and it looks like the swirling items that come out of Dora's backpack.

Let me know if you run into any problems.

Posted by martinf at 02:53 PM | Comments (2)

Update on the Gtk# Runtime installer

I want to begin by thanking Cristoph Wille for having lent me a hand for my MS GAC blues. See the comment he posted to my previous entry.

I have completed the first pass to gacco.exe (GAC + Paco?). You can find the source code here. I chose to use C/C++ (and a sprinkle of ATL) because my intention is to cut down on interop. Basically my philosophy is that you write code in C# using Mono and period. Being that this is to couple Mono/Gtk# assemblies in the MS GAC and that Microsoft elected to implement their GAC using "COM like" but not fully managed code, I decided to keep this native to Windows and to have the least amount of dependencies possible (gacco.exe is statically linked - 57 KB).

I have to do testing for the Gtk# Runtime installer using gacco.exe. Depending on how well this goes, I may even elect to use gacco.exe and not Microsoft gacutil.exe for the other installers - don't know too early to tell.

Posted by martinf at 07:00 AM | Comments (0)

September 27, 2004

MSI and Paco -- NOT yet

Just a quick entry to comment on the Gtk# Runtime installer. Zak brought to my attention that the Gtk# Runtime installer I put out yesterday is checking for the Microsoft .NET Framework SDK when it should be checking for the much lighter, thinner and more common place Microsoft .NET Framework 1.1 Runtime. He is right, my bad!

So I immediately went to correct that, and then it hit me. The MS .NET Framework Runtime does not include Microsoft gacutil.exe. You see, I have been using it to register the Gtk# library module assemblies into the MS GAC. Some of you suggested I use Microsoft Installer that has built in mechanisms to do GAC registration. I had looked into this and have a few reasons to not want to go that way just yet.

What I am going to do is create a small console app that will invoke the same Fusion API voodoo that MSI is using and register our assemblies that way. So please be patient. There is a method to my madness -- Really!

Posted by martinf at 06:38 AM | Comments (1)

September 26, 2004

Mono 1.0.2 for Windows

I am pleased to announce the first family of Mono and Gtk# installers for Win32 that has been assembled completely by yours truly. The Mono Combined installer sports Mono 1.0.2, XSP 1.0.2 and Gtk# 1.0.2 (running on top of GTK+ 2.2.4 and including Glade# 2.0.1)

In the Gtk# for MS .NET Framework world, we now count with an installer suitable for runtime distribution that contains GTK+ 2.2.4 Runtime and Gtk# 1.0.2. That package does not have any GTK+ development libraries, so it has a very small footprint (the installer file is about 5 MB as opposed to the SDK version that is 8 MB or so).

The Prj2make-Sharp Visual Studio .NET Add-in was repackaged in order to check for Mono 1.0.2.


You can find the latest versions of the intallers at the usual locations in Novell Forge:

Gtk# Win32 installer for .NET Framework SDK 1.1 and the matching Runtime installer:

http://forge.novell.com/modules/xfmod/project/?gtks-inst4win

Mono combined installer (it is possible that this may become available as the Windows installer on mono-project.com/downloads):

http://forge.novell.com/modules/xfmod/project/?monowin32

The add-in can be found in the home of Prj2Make-Sharp at:

http://forge.novell.com/modules/xfmod/project/?prj2make-sharp

Posted by martinf at 02:55 PM | Comments (0)

September 24, 2004

Success on the 1.0.2 Front

OK, I did it! I had to kill two chickens, a goat and wait until Mars was at the right spot in the horizon. Regardless of what it took, it appears that I have successfully built mcs and mono 1.0.2 for Win32 on one of my computers. I spent many, many hours trying in my super duper fast AMD Athlon 64 running WinXP, but got pretty much nowhere. So I decided to go to one of my Athlon Thunderbird 1.3 GHz running Win 2K Server, and guess what? That did the trick. Hmm, is it that the slower speed somehow helped? Both machines are identically configured for the exception of the OS and their CPUs. Or are they?

Frankly, who cares? All I know is that I am happy and that my fellow Windows primates should rejoice in the wake of a new version of the Mono and Gtk# installers for Windows that will be coming out soon. Once I can get a reasonable comfort level with the 1.0.2 installers, I will begin work on a set for the development release 1.1.1.

Erik and Joseph I owe you some emails and I have not contacted Stormy Peters either. Once I get the installers in the right place, I will do so!

Miguel, muchos saludos a los hackers Mexicanos de parte de un Boricua feliz.

Posted by martinf at 06:57 AM | Comments (1)

September 22, 2004

A Day at the Races

Last night, I visited the Fort Worth .NET Users Group that was held at the Justin Brands facilities in Fort Worth. Man! Great facilities. A fairly small crowd but they did Mr. Jim's Pizza and served Coke (not that other Peptic drink). The Fort Worth folks had quite a few good things going for them. They strike me as non-pretentious and "eager-to-learn" individuals who seem pretty open to good ideas - can you say Mono developers. I met a cool dude called Cory Smith, that may likely be a good source of testing some of the MBas and VB.NET development for Mono.

My cube mate Scott Dockendorf, did a newly revised version of his Test Driven Development presentation. I believe that he may have finally made a convert out of me. Well done Scott!

Joseph Hill also attended the event. That gave us the opportunity to get caught up and to talk to Stephen Swienton, the president of the Fort Worth .NET Users Group about the possibility and level of interest to give a presentation about Mono to the Cow Town community. I think they were very fired up about the prospect and we talked abut a late January 2005 date.

One more thing, Joseph has put together a guide to install Red-Carpet and Mono on SuSe 9.1 Personal. For those of you who dont know, SuSe personal is the version you can buy for about $29.95 on some electronic super stores and the like but as usual, it comes pre-configure with KDE but not GNOME. Also important is that you can download the ISO image for the disc at the SuSe FTP site.

Posted by martinf at 10:04 AM | Comments (0)

September 20, 2004

A quick update

Ran into a few schedule problems over the weekend. The good news is that I have completed a first pass at a Glade# project template for Visual Basic .NET. I am also working on the Gtk# Runtime only installer. The bad news is that I am not done yet, and I thought I was going to be able to deliver by today.

I owe a good deal of people some email replies and for you that have left comments on my blog pages: Thank you. I am getting caught up and should get back to you all soon. VB.NET is much more different than what I gave it credit for and sucked up a lot of time.

My sister was hospitalized, and Paquito and I finally managed to do some chatting over MSN Messenger. This was our first conversation since he arrived in Iraq from Kuwait. We are both troubled by the War and hope he can get back soon.

Posted by martinf at 06:25 AM | Comments (0)

September 15, 2004

New Video

I have a new video on the VS Add-in. It is big (27 MB). But it has audio and I invested more time and effort on making this one than on the previous ones.

It still has the Windows Media encoding from hell that plays on most Windows machines but that ironically plays flawlessly on SuSe 9.1 using Xine with the components available in this location.

Demo for the Visual Studio Add-in

Posted by martinf at 07:38 AM | Comments (0)

Mono and Gtk# development in Windows

A lot of folks have been asking recently how and where to use what installer. For a lot of us who use IRC, it may be a good thing to look over my notes below and -- correct me if necessary -- later spread the word about this. I hope this helps.

If you want to use Visual Studio .NET 2003 to build Gtk# applications that will run without having Mono installed in your system. Use:

http://forge.novell.com/modules/xfmod/project/?gtks-inst4win

If you don't have Visual Studio .NET 2003 but want to code using your favorite editor and perhaps nmake (a Make tool specifically design for Windows). You need to *FIRST* install the Microsoft .NET Framework 1.1 SDK. This is available here (watch out for URL wrapping):

http://www.microsoft.com/downloads/details.aspx?familyid=9b3a2ca6-3647-4070-9f41-a333c6b9181d&displaylang=en

Then you install the Gtk# Win32 installer for the MS .NET Framework SDK 1.1 available here:

http://forge.novell.com/modules/xfmod/project/?gtks-inst4win

Using the software components described above, you could use csc.exe -- that is the C# compiler supplied by Microsoft -- to build your executable and/or library module assemblies. If it is an executable, you could run it from the command line by just simply specifying the fully qualified path to the resulting exe file.

Since Mono is just awesome, you could take that same executable archive it into a zip file, copy it to a Linux or Mac OS X computer configured to run Mono/Gtk# and run it there using a command line similar to this:

mono ~/bin/MyGuiApp.exe

The Mono runtime will use the Just In Time (JIT) compilation technology and turn it int native code which will give it the best performance during execution. There are times when you are targeting a new type of hardware (like a new CPU) that may not have JIT available yet but may already be supported by mint. In such case you can use a command line like this:

mint ~/bin/MyGuiApp.exe

The Mono interpreter (mint.exe) will be able to interpret the intermediate language (IL) that is enclosed in your file and run it as appropriate in accordance with the local machine's runtime knowledge of the underlying operating system and hardware.


If you just want to be able to run applications you have already compiled in Linux while you are on a Windows machine, you could try the Mono Combined installer. You should be able to build/run your Gtk# application you compiled in Linux -- provided you don't have GNOME dependencies -- in Windows without any other piece of Microsoft supplied software. The latest Mono combined installer is available here:

http://forge.novell.com/modules/xfmod/project/?monowin32

Having the Microsoft .NET Framework and/or SDK installed in your computer prior to the Mono Combined installer or afterward should not matter. The Mono Combined installer does not interact with the Microsoft .NET Framework. It has its own Global Assembly Cache (GAC) and it is not placed on the system PATH during the installation -- This is by design.

A very common scenario has a developer who has developed an application using Mono. THE ACID TEST IS: IF YOU USED MCS.EXE TO COMPILE YOUR PROGRAM PLEASE LISTEN. That developer would then take his/her resulting binary output (e.g. MyApp.exe) and could run it on a Windows computer that had the Mono combined installer by going to the Start Menu of that computer and opening the Mono 1.0.1 Command Prompt. This will spawn a console session that is at that point configured correctly with a Mono runtime environment. Just as you would on a Linux shell (Bash or Tcsh) you could then run you application by type a command line similar to this:

C:\>mono d:\PacoBin\MyApp.exe

It turns out that I had written about this before. This may just abound and complement my previous entry.

Thank you Lluis and kangaroo.

Posted by martinf at 07:23 AM | Comments (3)

September 13, 2004

The Add-in Lives

I have been somewhat silent while building the Visual Studio Add-in that complements the Mono Combined installer.

On top of that, my day job has kept me busier that ever. They are finally starting to venture into Linux whith a few boxes -- even though it is for trials. The cool thing is that it is not being done by development anymore, but rather by some of the Operations guys. They are doing both Fedora Core 2 and SuSe 9.1.

I visited the Plano Dot Net Users Group to talk with Joseph Hill. As a great bonus, I managed to meet Jason Alexander, the author of the very cool nGallery.

I have now ventured a couple of times into the Dallas/Fort Worth .NET Geek communes. This has left me wanting to share Mono and Gtk# with all of these neighbors. So I have decided to begin work on a CD that can be handed in these kind of events.

The way I see it, one could put all of the Mono/Gtk# related Win32 installers (Mono Combined Installer, Gtk# Win32 Installer for .NET Framework SDK, the Gtk# Library Reference for Visual Studio and the VSPrj2Make Visual Studio .NET Add-in). We could make it have a nice little autostart menu so that when the CD is inserted it gives you this overview and launching pad to install all the pieces in the right order. But what will be really neat is to include some prerecorded demos/tutorials of the installations, use of the wizards, templates and basic know how of Gtk# app development in Win32.

We may put together a couple of seminars on how to configure and program with Mono, XSP and MonoDevelop for Win32 programmers and users. Yes, that means coverage for such things as Webmin, Samba and Red-Carpet installation and use for our fellow MS jockeys :)

I may look for corporate sponsorship, but at this point I would like to know if there would be interest in such a thing. So, write me an email or something to help me figure out if I spend more time in Windows or if I should go back to SuSe/Novell and the cool world of non-Microsoft based computing.

If you are interested, here is a 11 MB AVI file that shows some promise as to the videos I have been hinting of.

This one has audio and is smaller (under 6 MB) but it requires Windows Media Player -- I will try to convert these to more open and supported standards.

http://ftp.novell.com/pub/forge/gtks-inst4win/docs/GtkSh-inst.wmv

Posted by martinf at 05:39 AM | Comments (5)