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
Drool, Britannia? Is the UK Failing the Cloud?
By Roger Strukhoff
Richard Davies wrote: The UK has a good crop of technology pioneers in cloud computing - for example ElasticHosts, FlexiScale, Flexiant, OnApp - and also some strong government initiatives such as G-Cloud. We will have to see whether this kind of technical leadership converts into swift mass-market adoption or not.
Jan. 8, 2012 11:38 AM EST
read more & respond »
Cloud Expo on Google News
Did you read today's front page stories & breaking news?

Cloud Expo & Virtualization 2011 West
Keynotes
Oracle
Opening Keynote | An Enterprise Cloud for Business-Critical Applications
Abiquo
Day 2 Keynote | The Enterprise Cloud Tightrope - Balancing for Success
Akamai
Day 3 Keynote | The DNA of an Enterprise Cloud
DIAMOND SPONSOR:
Oracle
Many Clouds, Many Choices'Cloud
PLATINUM PLUS SPONSORS:
Abiquo
Enterprise Cloud Best Practices - Town Hall - Join the discussion…
PLATINUM SPONSORS:
Intel
Progressing Toward the Federated, Automated and Client-Aware Cloud
New Relic
How to build an app with Twitter-like throughput
Rackspace
Computing in the Cloud Era
GOLD SPONSORS:
Gale Technologies
Practical Cloud Migration
IBM
Re-think IT. Re-inventing Business.
Intel/McAfee
Identity Driven Security in the Cloud
PerspecSys
Hackers Hackers Everywhere, Is My Public Cloud That Safe?
Red Hat
Unlock the Value of the Cloud
SHI
Mission Critical Applications and the Cloud - Myth or Reality?
SoftLayer
Not Your Grandpa's Cloud
Terremark
Integrating Enterprise Clouds
VMware
Upgrade to a vCloud
POWER PANELS:
Cloud Expo Silicon Valley: CTO Power Panel
Cloud Expo Silicon Valley: CEO Power Panel
Cloud Expo Silicon Valley: Cloud SuperStars Panel
Cloud Expo Silicon Valley: CloudNOW Panel
Click For 2010 West
Event Webcasts
Cloud Expo & Virtualization 2011 East
DIAMOND SPONSOR:
Dell
Dell & VMware Deliver the Enterprise Hybrid Cloud
PLATINUM PLUS SPONSORS:
Abiquo
Are Financial Services Organizations Risking Security by Avoiding Cloud Computing?
Oracle
From Consolidation to Enterprise Private PaaS
PLATINUM SPONSORS:
Intel
Driving the Transformation to Next Generation Cloud Data Centers
Rackspace
The Inevitability of an Open Cloud
GOLD SPONSORS:
CA Technologies
Follow YOUR path to Cloud Computing
Interxion
Who Keeps the Cloud in the Air?
Microsoft
Patterns for Cloud Computing
PerspecSys
War in the Clouds: Are you ready?
ServiceMesh
The Big Win: Stop Playing Small-Ball with Your Cloud Strategy
Terremark
Evaluating Enterprise Clouds
Xiotech
Cloud Storage: Myths and Realities
POWER PANELS:
Cloud Expo New York: CTO Power Panel
Cloud Expo New York: CEO Power Panel
Cloud Expo New York: CMO Power Panel
Cloud Expo New York: Wrap-Up Power Panel
Click For 2010 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 14,432
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
Town and Country Financial Corporation Announces Its Two Bank Subsidiaries Becoming One
Inedit Beer Created by World- Awarded Chef Ferran Adria, Now Comes in an Attractive Gift Box
Gargoyle Asset Management Lists on AlphaMetrix Global Marketplace
CitiusTech Completes Another Milestone Year: Revenues Grow by 59% in 2011
Iconix Brand Group to Announce Fourth Quarter and Full Year 2011 Financial Results on February 22, 2012
Sopra Group Announces an Excellent Performance in 2011
St. Vincent's Hospital Leverages MaaS360 to Deliver Mobile Apps and Secure Patient Data
Lockerz Introduces "Best Price Guaranteeā„¢"
Families, Educators, and Policymakers Participate in Ed Reform Rocks Rally to Celebrate Student-Centered Gains and to Advocate for More Great Schools
The Press Club of Western Pennsylvania Presents "Teenie Harris - A Retrospective" on Wednesday, Feb. 29, at Noon at the Engineers Club, 337 Fourth Ave., Downtown

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