MB december 2006 - Sys-con

wrackbaaMobile - Wireless

Dec 10, 2013 (3 years and 7 months ago)

66 views

MB January 2007


Details on Mono 1.2.2 and SharpDevelop2


Mono 1.2.2



Mon 1.2.2 was released last month, and with the help of the Mono Migration Tool, Moma, discussed last
month, 496 new methods were added, 212 “bogus” TODOs were removed, and 65 NotImplem
entedExceptions were
removed. If you want an easy way to help the Mono project, download Moma from
http://www.mono
-
project.com/Moma
. It is a GUI program; you just browse to any .NET .exe or .dll file or set

of files. You can then
view the log file or make a single click to send a copy of the report to the Mono team, who will use it to improve
Mono. This may not seem like much, but if you have followed this column for long, you have read about how
important h
aving companies support and test their applications on Mono. This has the same effect, but is much
easier, and can be done by anyone. I ran it on SharpDevelop, and there were 194 methods that were missing in
Mono 1.2.2, 38 methods called that would throw a

NotImplementedException (note the would; Mono works via
reflection, and does not actually run the program.), 79 methods that were marked with Todo attributes (methods that
were implemented, but marked as not handling all cases or needing some other improv
ement), and 81 calls to the
Windows OS (P/Invokes). Note that many are duplicates, I checked the P/Invokes, and 51 of them were unique. The
missing methods seem to have many more duplicates, mostly .NET 2.0 winforms methods in just a few controls;
many wer
e in either the tree and tool controls, most related to displaying in RightToLeft mode.


You can read Miguel’s synopsis of the results from the first 114 reports at
http://tirania.org/blog/a
rchive/2006/Nov
-
28.html
; one interesting fact is that less than 10% have P/Invokes that
would be difficult to port to Mono.


New ToolStrip classes were one of the big improvements in Winforms in Mono 1.2.2, the other was
upgrading the cairo base to 1.2.6.

The code base for C# 1.1 and C# 2.0 with generics continued to be merged; now
the only differences are generics, and the parser. After many fixes to the new VB runtime and compiler, both
IbuySpy and DevZone (based on DotNEtNuke) now run on Mono.



SharpDe
velop2



It has been awhile since I have written about SharpDevelop, and in the interim, much has changed. Version
2.0 was released back during the summer as SharpDevelop2, and version 2.1 is now in its third beta. Tool support
now includes built in NUnit
for unit testing, NCover for code coverage, intergrated access to FxCop for static code
analysis, Subversion for version control, and MSBuild support.

Supported project types include the window, console, control, and other type you would expect, but also
D
irect3D, .NET 3.0 WPF applications and Navigation applications, compact framework, SharpDevelop addins and
tools menu projects, setup projects, and for Mono developers, Mono project that use GTK# and Glade, and most of
these project types are available in
both C# and VB. BOO projects are also supported, but if you want to really
impress your friends, ShaprpDevelop supports ILAsm (.NET assembly language) projects, setting you up with a
ILAsm “Hello World” program; how cool is that?


It also has support for W
iX 2.0 controls, PDF output from the database report generator (SharpReport), a
visual XML editor that uses a tree view, supports different frameworks (.NET, Compact Framework, and Mono),
can de hosted in third party applications, XPath Queries, conversion

between VB and C#, and from C# to BOO, and
a resource toolkit.


This is one of the better, full
-
featured IDEs available. It is not quit as polished as the gold standard in IDES,
Visual Studio, but it comes close. In my opinion it easily beats the “express

versions” of Visual Studio. Its biggest
shortfall is user documentation. Of course the source code is available, and the story behind it and details of its
arcatechure can be found in the book “Dissecting A C3 Application: inside SharpDevelop” from Apress

can be
downloaded free from
http://www.apress.com/free/index.html
. SharpDevelop can be downloaded from
http://www.icsharpcode.net/OpenSource/SD/Download/, and it has an active community at
http://community.sharpdevelop.net/
, and a wiki at
http://wiki.sharpdevelop.net/

where you can also see the roadmap
for SharpDevelop3 which will be based on C# 3.0 and .
NET 3.0 including WPF, WF, WCF, and infoCard.


Odds and Ends



Back in October, the Mono team had a meeting in Cambridge Massachusetts and the slides from the
meeting are now online at
http://www.mono
-
project.com/news/archive/2006/Oct
-
26.html
. These slides are
interesting as an overview, but they were meant to be props for lectures, and in most cases are too sparse to be used
by people not already familiar with the subjects.


There
is now a coverage tool for Mono called monocov, more information canbe found at
http://www.advogato.org/person/lupus/diary.html?start=22
.


MonoDevelop has set out a roadmap for the 1
.0 release; you can see it at
http://lists.ximian.com/pipermail/monodevelop
-
list/2006
-
November/004895.html
.


For Mac Xcode developers, there is a new tutorial on
using Mono on the Mac at http://mono
-
project.com/CsharpPlugin.