Mono 3.0.4 released
Greetings to all of you open source patrons out there!
I've just received news of the latest release of Mono (3.0.4). The new release includes several major improvements and bug fixes. In this article, I'd like to provide a brief overview highlighting the major changes in the latest release of Mono.
So without further ado, here is a quick overview of what's offered in this version of the Mono project.
Improved garbage collection
The GC implementation has been given a makeover. These changes include:
A new approach called "cementing" has been added to the SGen concurrent garbage collector.
Mono allocates all new small objects in a defined memory space referred to as the nursery. When a collection occurs, the surviving objects become root objects and are copied to the major heap. Typically, few references that are allocated to the nursery survive to become roots, so the majority of the objects are instantly collected which leaves plenty of allocation space for new objects. These nursery collections minimize the work that must be done by the collector.
One of the problems with the garbage collection in previous versions of mono involved instances in which objects are "pinned" in the nursery (due to managed/unmanaged references or other operations). Objects that are "pinned" cannot be moved to the major heap.
Typically the collector must keep track of these "pinned" objects (and their relationships) and it rescans them on each collection attempt to try to see if they have been released and are able to be moved. This approach was an inefficient practice of the collector. This is where cementing comes in to play.
Cementing is a process by which references in the nursery that are pinned are simply marked as root objects, but they remain in the nursery since they can't be moved to the heap. This dramatically reduces overhead related to pinned nursery objects and their relationships.
There are also several bug fixes related to garbage collection including #9928 pointer free deadlock problem and bugs in mono_gc_weak_link_get
Improved StreamReader/StreamWritter asynchronous operations
The asynchronous operations have been rewritten to resolve bug #9761. Which caused the operations to fail on subsequent calls.
OSX Homebrew installation conflict resolution
Mono no longer installs a /usr/bin/pkg-config file on OSX, which resolves an issue that effected Homebrew installations.
The installation only contains the new Gtk+ stack that allows the new Xamarin Studio to run on OSX with 3.0.
This is exciting news!
Conclusion (for now)
Well that about wraps it up. Oh, one more thing..
In case you haven't heard, Xamarin has released Xamarian 2.0 which includes iOS development from within Visual Studio, a brand new IDE called Xamarin studio that is geared toward developing mobile apps for Android, and iOS. The IDE runs on Windows, Linux and OSX!
I would like to mention that I will be delivering a detailed refactorthis.net product review on the new and exciting features of Xamarin 2.0.
So check back for my review and thanks for reading!
Buddy

Android development in Visual Studio
I'm sure a lot of you have heard of the MonoDroid product by Xamarin which allows .NET developers to write android applications using your favorite .NET tools. I find this option awesome because I'm a .NET developer and because I find native android development tedious. It's not that Java is difficult, especially when compared to iOS development using objective-C (ughh). My main problem with android development in Java is once you use Visual Studio for a few years, it's really hard to use anything else.
Enter Xamarin's MonoDroid
I was really excited when MonoDroid was released. That excitement faded quickly when I learned that i couldn't deploy my applications to my Android phone for testing without a license. Instead, you are forced you use the Android emulator. I've tried many times with many configurations to use the emulator. It's simply not feasible for me. The emulator is INCREDIBLY slow, when it works. Other times I would wait for 20+ mins before giving up. I'm not the only developer to express disdain for the Android emulator. Just google Android emulator slow and you will find a lot of people have this problem.
dot42: An alternative
Let me start by saying that I ran across dot42 http://www.dot42.com/ only 10 minutes ago, so I don't claim to have experience with the product. What I can say is that like MonoDroid, they offer a free version of their product for personal (no commercial development). Unlike MonoDroid, I see no news on their site to suggest that you can't deploy your application on your phone for testing with the free version. If this is in fact true, this makes all the difference to me as a developer. (Update: I've verified that dot42 does NOT restrict deployment to your device of choice. They even allow you to publish free applications to the Android app market! Be on the look out for a follow up article dedicated 100% to dot42 very soon!)
I think MonoDroid is a great product and it is certainly a much more mature product that dot42. I will be sure to write a follow up to this article once I've tested the product.
What about you? Anyone out there want to speak out about their problems with the android emulator? Does anyone else wish that MonoDroid would allow us to test the product on our own devices? Please feel free to comment and let us know what you think!
Happy Coding!

INFRAGISTICS
I have a lot of experience developing applications using the Infragistics NETADVANTAGE for ASP.NET controls. I've recently downloaded the latest control suite and I've decided to write a series of articles on the different controls and how they are used. This article will be focused on creating Microsoft Word, Microsoft Excel, PDF, and XPS documents using the Infragistics NETADAVANTAGE for ASP.NET Controls.
Exporting PDF and XPS documents from the contents of the WebDataGrid
The Infragistics control suite is complete with two fully functional web grid controls. The WebDataGrid provides a high performance, scalable ASP.NET AJAX enabled grid with built in support for sorting, filtering, and editing tabular data. The control is designed with touch enabled devices in mind. There is also built in support for flicking and other multi-touch gestures.
Here is an screen shot of the WebDataGrid for your review
As you can see, the grid is sleek, stylish, and very pleasing to the eye. Infragistics controls have many predefined styles, as well as rich server side and client side APIs.
The second Infragistics grid control is the WebHierarchicalDataGrid. The WebHierarchicalDataGrid shares the same functionality as the WebDataGrid as well as the ability to model master-detail and self referencing data relationships. These relationships are represented by expandable rows that contain the related data inside of a parent row.
Here is a screen shot of the WebHierarchicalDataGrid.
Both of the grids feature the ability to export the contents of the grid's data source to Microsoft Excel, Microsoft Word , PDF, and XPS documents. There's also built in support for importing the contents of an Excel spreadsheet to populate the data grids.
Microsoft Office independence
One of the greatest features of the Microsoft document export functionality is the fact that there is no need to have Microsoft office installed on the server to generate the resulting documents. The Infragistics library uses 100% managed .NET assemblies to implement this functionality. This means there's no need to hack around the Word or Excel COM interop libraries to achieve the desired results. Infragistics NETADVANTAGE comes with a Word Document object model as well as an Excel Woorkbook object model which provide rich APIs for creating Microsoft Office documents for use in your applications. You can generate invoices, work orders, and receipts with very little code.
My next article will include a fully functional sample that illustrates some of the functions of the WebDataGrid as well as the document export functionality.
This concludes the article. Thanks for reading!
You can download a trial of the entire .NET NETADVANTAGE control suite by visiting the following URL:
http://www.infragistics.com/products/dotnet/
Infragistics website
http://www.infragistics.com/
And here are some useful videos to get you started
Export Grid Data to Excel
Export Grid Data to PDF and XPS formats

About the author

My name is Buddy James. I'm a Microsoft Certified Solutions Developer from the Nashville, TN area. I'm a Software Engineer, an author, a blogger (http://www.refactorthis.net), a mentor, a thought leader, a technologist, a data scientist, and a husband. I enjoy working with design patterns, data mining, c#, WPF, Silverlight, WinRT, XAML, ASP.NET, python, CouchDB, RavenDB, Hadoop, Android(MonoDroid), iOS (MonoTouch), and Machine Learning. I love technology and I love to develop software, collect data, analyze the data, and learn from the data. When I'm not coding, I'm determined to make a difference in the world by using data and machine learning techniques. (follow me at @budbjames).