Monoppix is all about .NET and Open Source , so I was very happy to get an email from Josh Gough telling me about the ppt he wrote on these matters.
The presentation talks about open source and cross platforms development and deployment, while keeping everything within the .NET context.
If you're not familiar with .NET on other platforms or if you wish to extend your Mono knowledge , this presentation would give you a good basic start.
The ppt was probably made for crowd presentations but it is also good for self reading. It has lots of examples and covers a wide range of levels, from very basic to advanced.
You can download the ppt from here
Josh is currently working as a senior systems analyst with the Centers for
Disease Control and Prevention in Atlanta. If you want to contact him or send him feedback on this ppt go to
We just released Monoppix V1.1.8 . Downloads - [torrent] (see below for more download options)
The main new features of v1.1.8 are:
- mono 1.1.8
- libgdiplus 1.1.8
- xsp 1.0.9
- monodevelop 0.7
- Mplayer to allow viewing our tutorials from Monoppix
- Hello world video tutorial included in the image
Native mono Windows.Forms class libraries are available without wine thanks to Mono's v1.1.8 implementation.
The last bit means that you can compile and design your .NET winforms applications on VS2003 , take the exe file and run it on Monoppix to see if it works on Linux with Mono (Most chances that now it would !!!) [Example]
If you don't have a torrent client installed and you're running some kind of WIN* you can try this to download
(It basically installs a lightweight BT client and begins the download.)
Regular FTP and HTTP mirrors will be available later today...
Well, We are just about to release monoppix V1.1.8. The main feature of V1.1.8 (which is based on mono V1.1.8 ) is the ability to run native C# System.Windows.Forms code without using "Wine" on Linux.
Here are some examples of winforms (and controls) compiled on VS2003 and running on our soon to be released Monoppix V1.1.8:
I've started with the basic TreeView and Tabs , Than I threw in some basic controls such as check boxes, multiple selection list box, a date picker and some group boxes.
I compiled the project and this is the result I got on WinXP
I took the exe file to Monoppix , ran 'mono winforms2.exe' and got the following
As you can see most of the controls work ok.
Than I tried to select a new date
This is the way it should look..
And this is what i got in Monoppix, Not sure if this is a Mono or Monoppix or my code bug, but the
Calendar pick date window didn't open and the date line became disabled
Next is a Data Grid , clicked on the data tab, hit the Load button. This is the WinXP results window
And on Monoppix it looks ok as well.
The last control I tried to demo is the picture box (and some radio buttons with events..)
and the monopix version..
So overall the end result is quite good , Mono's V1.1.8 implemented most of the Winforms controls , they work ok and similar in look and feel . Because of that, porting .NET windows applications to Linux should be really easy , Just work on VS2003, compile and run it on Linux using Mono. There is one control that's missing which I would like to see soon and that's the RichText box, currently it throws out a not implemented type of exception . I think that this control is critical due to the fact that a lot of WinForms applications use it and thus its absence prevents a lot of good winforms applications being runnable on linux as well.
Final words, Monoppix V1.1.8 is about to be released in the next few days (Track this blog or go to www.monoppix.com for the release announcement) . Hopefully, it would help VS2003/WinXP Winforms developers check how their solution would look like on Linux and open their minds about running their applications on non MS platfors,.
Like to hear some comments on this or if you know of a small C# winforms open source application that would be nice to see working on Linux that I can test.
Click here if you want to download the demo application presented above.
The need to send out nicely html formatted email notification automatically by the system was raised as a requirement on one of my current projects. The last time I used C# to send out formatted emails with embedded images inside of it the email clients were still rather "spammers" challenged and all of images from within the html mail message caused the email app to automatically be retrieved from the server. The situation today is that most popular clients (outlook and gmail for example) block the images from being download by default. This leads to a rather nasty and not so pretty to look at email message (with all of the images missing).
I started googeling for a way to embed the images within the email message.
I have to say I didn't find a lot. Most of the links were pointing to some kind of a commercial .NET library which claims to support this kind of functionality, but I was more in the open source kind of mood. I continued searching and I stumbled across an image attachment
type of a solution [http://www.systemwebmail.com/faq/3.3.aspx
] (check out the first post down below..)
........... C# code
msg.BodyFormat = MailFormat.Html;
msg.Body = ""; //only name of image
filemsg.Body += "Any other stuff for body";
...MailAttachment imgObj = new MailAttachment(Server.MapPath("/") + "web/images/cmsm1_multi.gif"); //actual location of image
filemsg.Attachments.Add(imgObj);... //send the message
That's easy to use but there is a downside to it that you actually see the images as attachments.
I guess that if you have less than five images is not that bad but if you have more it wouldn't give that professional kind of look.
The ultimate solution would be to use a great (and free) .NET library named DotNetOpenMail [http://dotnetopenmail.sourceforge.net/faq.html
It has all sorts of low level functionalists you wouldn't find in System.Web.Email
And it also does a great job of sending out html emails , with embedded images .
By using the DotNetOpenMail library I did the following:..
EmailMessage emailMessage = new EmailMessage();
emailMessage.FromAddress = new EmailAddress("email@example.com");
emailMessage.Subject = "Just an example";
emailMessage.TextPart = new TextAttachment("This photo requires a better "+
" email reader.");
emailMessage.HtmlPart = new HtmlAttachment("<html><body>"+
"<p>Just a lame gif</p>"+
"<p><img src=\"cid:zroiy\" alt=\"Zysman Roiy\"/></p>");
FileInfo relatedFileInfo = new FileInfo(@"c:/temp/tmp.gif");
FileAttachment relatedFileAttachment = new FileAttachment(relatedFileInfo,
relatedFileAttachment.ContentType = "image/jpeg";
And this the result is :
The DotNetOpenMail is still in beta mode , but if you're using it just sending out styled emails as I do it does the job properly.