The i-Technology Media!
Register | Log in
   
 
.NET  ·  AJAX  ·  CLOUD  ·  ECLIPSE  ·  FLEX  ·  OPEN WEB  ·  iPHONE  ·  JAVA  ·  LINUX  ·  OPEN SOURCE  ·  ORACLE  ·  PBDJ  ·  SEARCH  ·  SILVERLIGHT  ·  SOA  ·  VIRTUALIZATION  ·  WEB 2.0  ·  WIRELESS  ·  XML
Comments
Plone and Drupal: Different Approaches, Different Results
paul.nowak wrote: Matt, thanks for the comments. I made an error on the version of Plone. It's 2.5 Plone running on Zope 2.9x. In regards to the additional products, we have a skin installed and we have a product that we had custom developed for us that connects to a PostgreSQL database. We've looked at slow PostgreSQL queries causing problems and have not been able to find an issue. We've also tested for the case where the PostgreSQL server is down and have not been able to create an issue. We therefor...
Nov. 4, 2009 04:19 PM EST
Cloud Expo on Google News
Did you read today's front page stories & breaking news?


2009 East
PLATINUM SPONSORS:
IBM
Smarter Business Solutions Through Dynamic Infrastructure
IBM
Smarter Insights: How the CIO Becomes a Hero Again
Microsoft
Windows Azure
GOLD SPONSORS:
Appsense
Why VDI?
CA
Maximizing the Business Value of Virtualization in Enterprise and Cloud Computing Environments
ExactTarget
Messaging in the Cloud - Email, SMS and Voice
Freedom OSS
Stairway to the Cloud
Sun
Sun's Incubation Platform: Helping Startups Serve the Enterprise
POWER PANELS:
Cloud Computing & Enterprise IT: Cost & Operational Benefits
How and Why is a Flexible IT Infrastructure the Key To the Future?
Click For 2008 West
Event Webcasts

2009 East
GOLD SPONSORS:
CA
Get Your Transactions Under Control: SOA Performance Management
Software AG
Performance Driven Adoption: The Secret to Advancing SOA
Intel
The Evolving SOA Appliance: 3 Game-Changing Innovations
SILVER SPONSOR:
Denodo
Data Mashups: Deliver Your Project Faster with Virtualized Data Services Across Internal & External Sources
POWER PANELS:
The Business Value of Service Orientation
Driving Profitability Through User Experience
Click For 2008 West
Event Webcasts
Live Google News by SYS-CON!
Top Three Links You Must Click On


Book Review
Cross-Platform .NET Development
Using Mono, Portable.NET, and Microsoft .NET

By: Dennis Hayes
Apr. 23, 2006 04:00 PM

What is required for true cross platform development using .NET? On one hand, not much; on the other hand, a great deal. Because Rotor, Pnet, Mono and (the Microsoft implementation of) .NET, are all based on the ECMA standard, getting a basic C# program running on all four platforms is typically just a matter of copying the .exe file to the machine and executing it (assuming a .NET framework is already on the machine). But what about remoting, serializing and deserializing classes, interoperability, using native code, and non-ECMA classes such as System.Data and System.Windows.Forms (SWF)? This book covers those questions in detail with good practical advice; but that is not the best part of this book. In order to fully understand how cross platform .NET works and does not work, you need to understand the architecture and implementation of the different .NET frameworks; that is where this book really shines. It is full of block diagrams, UML diagrams, and class and code hierarchies. There are some good books on the .NET architecture, but most of these books are too academic and heavy in details for many programmers. This book covers architecture and implantation details from the point of making programs work in different environments, putting it in a nice middle ground; it is an easy to read book, but one that will leave most with a much deeper understanding of .NET interworkings.

The book starts with a brief overview of .NET (including a comparison with Java and the JVM), and a description of how they set up their laboratory for cross-platform testing, then in "Cross-Platform Pitfalls," it covers differences in the intermediate code generated by the three main .NET platforms, Microsoft, Mono, and Pnet. Due to Rotor's license, and its lack of support for anything other than the barest for the .NET framework classes, Rotor is not generally discussed in this book. Chapter 4 looks at the .NET framework classes from the point of what will likely be compatible across the .NET implementations, what will have limitations, and what is just not likely to work. It does this by looking at what operating system calls are made by each namespace in the .NET framework.

In chapter 5 the book looks at making GUI applications cross-platform; this is the area where the most programs are likely to run into cross-platform troubles. This chapter looks at how Microsoft, Mono, and PNET implement System.Drawing and SWF. The book does a good job of describing how Mono implements System.Drawing using gdiplus on windows, and cario on other platforms. This book has been out for a while, so its description of how SWF was implanted using GTK# and WINE are no longer applicable, but is still worth reading for educational purposes. The good news is that SWF is now implemented the same way as System.Drawing, so simply applying that section to SWF brings the book up to date on this issue. This chapter also covers several GUI toolkits (SWF, GTK#, QT#, TickleSharp, #WT, wx.NET) that can be used to build cross-platform applications, compares their capabilities, and finally shows a way to write GUI toolkit independent code using the Model-View-Controller (MVC) pattern. When reading this chapter, one also needs to consider that when this book was written, the implementation of SWF was just starting; it is now nearing completion.

Chapter 6 starts to cover distributed applications by showing how to access the different backend databases available. It goes on to create an application that can run under application servers such as IIS, Mono's own XSP server, or as a mod_mono module under Apache, and closes with a overview of Web services.

Chapter 7 covers the ins and outs of calling native code on different OSs including security, path resolution, marshaling, calling conventions, and invoking C++ code from .NET using the Simplified Wrapper and interface Generator tool, SWIG.

Chapter 8 opens with a discussion of interoperability between 24 different .NET languages, including how to run Java programs under .NET using IKVM, an open source Java Virtual Machine written in .NET that runs under both the Mono and Microsoft runtimes. It then covers the remoting architecture and channels including a cross-platform logging application. It finishes with a long section on interoperating with CORBA and cross-platform COM.

The book closes with cross-platform building using NAnt, and cross-platform testing using NUnit; it also looks at the future (some of which is now) including .NET 2.0, VS2005, and Longhorn, and tries to peer into the future of Mono and PNet.

This book is one of my favorites, and I think every .NET developer should have a copy of this book, even if they are not interested in cross platform development. Its approachable discussion of what .NET is, and how it works, is unique in all the .NET books I have read.

SIDEBAR

Title: Cross-Platform .NET Development
Author: M.J. Easton and Jason King
Publisher: Apress
ISBN #: 1-59059-330-8
Price: US $49.99

Published Apr. 23, 2006— Reads 12,227
Copyright © 2006 SYS-CON Media, Inc. — All Rights Reserved.
Syndicated stories and blog feeds, all rights reserved by the author.
About Dennis Hayes
Dennis Hayes is a programmer at Georgia Tech in Atlanta Georgia where he writes software for the Adult Cognition Lab in the Psychology Department. He has been involved with the Mono project for over six years, and has been writing the Monkey Business column for over five years.

Add Your Feedback

In order to post a comment you need to be registered and logged in.

Register | Sign-in

Reader Feedback: Page 1 of 1

Subscribe to the World's Most Powerful Newsletters
Subscribe to Our Rss Feeds & Get Your SYS-CON News Live!
Click to Add our RSS Feeds to the Service of Your Choice:
Google Reader or Homepage Add to My Yahoo! Subscribe with Bloglines Subscribe in NewsGator Online
myFeedster Add to My AOL Subscribe in Rojo Add 'Hugg' to Newsburst from CNET News.com Kinja Digest View Additional SYS-CON Feeds
Publish Your Article! Please send it to editorial(at)sys-con.com!

Advertise on this site! Contact advertising(at)sys-con.com! 201 802-3021

SYS-CON Featured Whitepapers

ADS BY GOOGLE

Breaking Java News
LENCO MOBILE INC. Announces Filing of Form 10 with the Securities & Exchange Commission
The Villa Group's 25th Anniversary Tweetstakes Promotion Awards Six Grand Prize 4-Day, 3-Night Vacations for Two People in Mexico!
Brookdale Announces Pricing of Secondary Offering By Selling Stockholders
50 Cent's Before I Self Destruct Hits #1 on iTunes
Flyers Rights Renews Call for Congressional Action on Passenger Bill of Rights in Light of DOT Delays
CDHCE2010, The Definitive Event Shaping China Healthcare E-Strategy
Peter Storer, Broadcaster and Philanthropist, Dies at 81
Holiday Inn Oceanside Marina 'SALUTES OUR TROOPS'
/C O R R E C T I O N -- Fifteen Twenty-One Second Avenue/

ADVERTISE   |   MAGAZINE SUBSCRIPTIONS   |   FREE BREAKING-NEWSLETTERS!   |   SYS-CON.TV   |   BLOG-N-PLAY!   |   WEBCAST   |   EDUCATION   |   RESEARCH

.NET Developer's Journal - .NETDJ   |   ColdFusion Developer's Journal - CFDJ   |   Eclipse Developer's Journal - EDJ   |   Enterprise Open Source Magazine - EOS
Open Web Developer's Journal - OPENWEB   |   iPhone Developer's Journal - iPHONE   |   Virtualization - Virtualization   |   Java Developer's Journal - JDJ   |   Linux.SYS-CON.com
PowerBuilder Developer's Journal - PBDJ   |   SEO / SEM Journal - SJ   |   SOAWorld Magazine - SOAWM   |   IT Solutions Guide - ITSG   |   Symbian Developer's Journal - SDJ
WebLogic Developer's Journal - WLDJ   |   WebSphere Journal - WJ   |   Wireless Business & Technology - WBT   |   XML-Journal - XMLJ   |   Internet Video - iTV
Flex Developer's Journal - Flex   |   AJAXWorld Magazine - AWM   |   Silverlight Developer's Journal - SLDJ   |   PHP.SYS-CON.com   |   Web 2.0 Journal - WEB2
Apache   |   CMS   |   CRM   |   HP   |   Oracle Journal   |   Perl   |   Python   |   Red Hat   |   Ruby on Rails   |   SAP   |   SaaS

SYS-CON MEDIA:   ABOUT US   |   CONTACT US   |   COMPANY NEWS   |   CAREERS   |   SITE MAP
SYS-CON EVENTS:   |  AJAXWorld Conference & Expo  |  iPhone Developer Summit  |  Cloud Computing Conference & Expo  |  SOA World Conference & Expo  |  Virtualization Conference & Expo
INTERNATIONAL SITES:   India  |  U.K.  |  Canada  |  Germany  |  France  |  Australia  |  Italy  |  Spain  |  Netherlands  |  Brazil  |  Belgium
 Terms of Use & Our Privacy Statement     About Newsfeeds / Video Feeds
Copyright ©1994-2008 SYS-CON Publications, Inc. All Rights Reserved. All marks are trademarks of SYS-CON Media.
Reproduction in whole or in part in any form or medium without express written permission of SYS-CON Publications, Inc. is prohibited.
 
close this window