CLINQ v1.1 has been
released. Some of you may
have already downloaded
some of the new builds,
but here's a rundown of
what the new release
includes: Support for
Continuous Aggregation.
Now, in addition to being
able to have your result
sets automatically update
themselves in response to
changes in the source set
as well as changes to
items in the source set,
you can have aggregate
scalar values that
continuously update in
the same fashion. The
following is a list of
the supported aggregation
types that can now be
done continuously:
Mono version 1.2.4 has
just been released.
Typically source code for
a release is branched off
for final clean up and
bug fixing, with the
release coming a few days
to a week later; for this
version, there were
almost 25 days between
branch and release. This
may have been due in part
to distractions such as
the 24 new Google Summer
of Code (SOC) programmers
and the new Silverlight
beta, but mostly I think
it was because the team
sees this release as more
than just a point
release, so they spent
extra time testing it to
make sure it was good.
Another factor is the
size of this release. As
I mentioned last month,
it contains over 20
megabytes of diff files,
and the release notes
point that out with the
help of Moma, it also
contains over 1,000 newly
implemented APIs (680 new
APIs, 290 not
implemented, and 43 TODOs
done).
Portable.NET has released
PNET 0.8, its first
packaged release in more
than a year. There were
many improvements over
the course of the year,
but the biggest were
associated with the
upgrade to the new Libjit
JIT engine. The source
code is at http://downloa
d.savannah.gnu.org/releas
es/dotgnu-pnet, and Boris
Manojlovic has created
windows installer that
can be downloaded at www.
steki.net/dotGNU/JIT/dotG
NU_0_8_0.exe.
When the first draft of
the C# 2.0 spec was
released, the Mono team
started working on it
immediately. The first
draft of the C# 3.0 spec
has now been out for
almost a year, but the
Mono team has just
started to work on it.
There are two reasons for
this: one is that the
whole team was working on
the major 1.2 release,
including Winforms. The
second reason is that the
first draft of the C# 3.0
spec was released shortly
after the official
release of C# 2.0, and
the Mono team was still
busy fixing bugs,
cleaning up code, and
integrating last-minute
changes to the C# 2.0
spec. Because a lot of C#
3.0 relies heavily on the
new C# 2.0 features, the
mono team also wanted to
get C# 2.0 refactored and
on a solid footing before
beginning work on C# 3.0.
Mono has released version
1.2.3, and there are a
lot of improvements and
additions. In my opinion,
the biggest addition is
the new Visual Basic
compiler. It's not ready
for prime time and is
still officially
unsupported, but this is
the first version of VB
to be included as a
standard part of a
release. Note that it
only targets VB8 and .NET
2.0; there are no plans
to make it
backward-compatible with
.NET 1.1 (The runtime
supports .NET 1.1 so
programs compiled with
Microsoft Visual Basic
1.1 will run under Mono.)
Mono 1.2.2 was released
last month, and with the
help of the Mono
Migration Tool, Moma,
which was discussed last
month, 496 new methods
were added, 212 'bogus'
to-dos were removed, and
65
NotImplementedExceptions
were removed.
When a project like Mono
approaches a major
release like version 1.2,
the code is forked:
copied into a separate
branch in version
control. In one copy, the
'main' branch, work
continues normally, while
the code in the other
'release' branch goes
through a series of
freezes leading up to its
release.
The long-awaited third
major release of Mono,
version 1.2 is now out.
The main delay was
getting
System.Windows.Forms
(SWF) to work cross
platform. This has been
accomplished for the most
part. There are a few of
the rarely used methods
still being worked on,
but the vast majority of
Windows applications
should work: just copy
the .exe file to a Linux
box or a MAC with Mono
installed. The Mono
implementation of
Winforms supports themes
with several included in
the current version. Mono
even supports WinProc, so
many third-party controls
that rely on Windows
messages will run
correctly.
The highlight of this
release is the new
MonoBASIC compiler and
runtime. The availability
of BASIC on Mono has
waxed and waned over the
years. During the early
days of Mono, BASIC
received little or no
attention. The biggest
reason was that all the
effort was going into the
C # compiler. In
addition, the early Mono
adopters were not very
interested in VB; in fact
at the time, there was
much debate in the VB
community in general
about upgrading to VB.NET
because of the complexity
of VB.NET, and the lack
of backwards
compatibility with VB6.
Also, unlike C# which was
released as a ECMA and
ISO standard, VB.NET was,
and still is, a
proprietary product with
no publicly available
definition (that has the
details needed by a
compiler writer).
Mono 1.1.16, the third
beta of version 1.2, has
been released. The time
span between the release
of versions 1.1.15 and
1.1.16 is one of the
longest in several years
and the number of changes
included reflects that,
again
System.Windows.Forms
(SWF) and System.Drawing
got the most attention.
The Mono project
celebrates its 5th
anniversary this month.
The Mono project was
launched in July 2001; I
started following Mono in
the press almost
immediately, and soon
started checking the
homepage. In November I
downloaded the source,
and in February 2002 I
started contributing to
System.Drawing and
System.Window.Forms.
Google will be bringing
the Summer of Code (SOC)
back this year. College
students from around the
world will be paid $4,500
by Google to work on Open
Source projects, and Mono
and DotGNU will be
participating again, as
will the WINE project (a
Mono bridge is one option
for a WINE project
proposal),
OpenOffice.org, GNOME,
Beagle, and my favorite,
the Mars Space Flight
Facility (I spent my
summer on Mars!) will
also be mentoring
projects (Google funds
students to work on all
the projects).
Mono has released version
1.1.13.5 and 1.1.14.
Version 1.1.13.5 is
actually the first
release since 1.1.13,
even though there were
four internal releases in
between. The purpose of
this release is to
document the changes in
those releases; there are
no new features in this
release, just bug fixes
in all areas of the
project. One reason for
multiple releases was to
keep testers current
during the run-up to the
major 1.2 release.
Release notes are at http
://go-mono.com/archive/1.
1.13.5.
This column begins its
fourth year. In the past
I haven't done any
year-in-review articles
mainly because there was
always too much news. But
now that the Mono project
is half-way through its
fifth year and nears its
third major release,
version 1.2, I think it's
time to look back at some
of the major milestones
that the project has
passed, and mention a
couple of milestone that
it should reach in the
near future. I will start
this month with the Top 3
and then finish up next
month.
The 1.1.13 version of
Mono has also been
released. This version
will be shipped with
Novel/Suse Enterprise
products. It also serves
as a feature freeze point
for the upcoming major
1.2 release, with the
exception of
System.Windows.Forms
(SWF) and libgdiplus,
which are still being
developed. The 1.1.13
branch will also receive
back-ports of all bug
fixes until it is
replaced with the 1.2
version. 1.1.13 is mostly
bug fixes (including
hundreds in the SWF
namespace). The main
additions to this release
are a completed 64 bit
S390 port, an
implementation of the new
2.0 System.Threading
primitives, updates to
System.Net.Mail and
System.Net.Mime, and
typed data returns for
Sqlite 3. One major
enhancement is the
inclusion of a printing
framework for SWF. This
will not be really usable
until Cairo is updated,
but it is still a
milestone I have been
looking forward to
seeing. More than 70
people worked on this
release.
The biggest changes in
this release come in SWF
(System.Windows.Forms).
This makes sense, as SWF
is moving into debugging
mode in anticipation of
having full support for
SWF in the major 1.2
release expected in early
2006 (possibly by the
time you read this). The
'Nice' theme has been
improved, and a new
'ClearLooks' theme has
been added. Newly
supported features
include MDI applications,
toolwindow, and shortcut
and key navigation.
TextBox and RichTextBox
now support cut and
paste, including
keybindings, drag and
drop, and undo.
Version 1.1.10 is another
release packed with new
code. The release notes
can be found at www.go-mo
no.com/archive/1.1.10/,
and can be downloaded
from www.mono-project.com
/Downloads. Mod_mono, the
ASP.NET module for the
Apache Web Server, now
has an autoconfiguration
tool that eliminates the
old requirement that
administrators manually
import all of the
directories containing
ASP.NET code.
The Code Project has
sponsored 'The Race to
Linux,' a contest to see
how fast code could be
converted from Windows to
Linux. The race was
broken into three parts.
Each part required
participants to convert
one of the Microsoft
ASP.NET starter kits to
Linux using Mono,
Grasshopper (see Monkey
Business in .NETDJ Vol:
3, iss: 7), PHP, or other
technologies of their
choosing.
It looks to me like that
the 1.1.9 release of Mono
is the biggest since
Version 1.0. Many
components went through
major changes. 118
developers received
credit for work done
since version 1.1.8.
There is a new version of
the ECMA specs for C#
Version 2.0 and the CLI;
the Mono C# compiler and
runtime is already
compliant with these, and
only a few class changes
are needed to be
compliant with the new
libraries. As Miguel
notes in his blog (http:/
/tirania.org/blog/all.htm
l), the first chapters of
the C# specification are
a decent tutorial for
programmers wanting to
learn C# (although I
would not recommend it
for those without prior
programming experience).
One note, although my
understanding is that the
spec has been approved,
the text of the specs has
not been fully ratified
yet. The C# standard is
at www.ecma-international
.org/publications/standar
ds/Ecma-334.htm, and the
CIL spec is at www.ecma-i
nternational.org/publicat
ions/standards/Ecma-335.h
tm.
As an experienced .Net
developer, I'm sure you
are comfortable creating
programs in your home
environment - using
Visual Studio on a
Windows PC. What about
using other platforms? In
the .NET world, not many
developers think much
about cross-platform
development. However,
with the growing
popularity of Unix, and
specifically Linux, as a
server platform, it might
be time to consider a
cross-platform .NET
development environment.
Portable.NET has released
version 0.7.2; it is
primarily a bug fix
release for version
0.7.0, but also contains
some new features. New
versions of the libffi
and libcg libraries are
supported, the Debian
build build/platform
files have been updated,
the Basic compiler
includes some previously
missing String functions,
System.Windows.Forms and
System.Drawing get
improved color handling
and general fixes and
improvements; also
improved DB2 support has
been imported from the
Mono project.
Portable.NET has made
their first release in
six months, and it is as
packed with new code as
you would expect; the
list prints out to about
four pages, and is
downloadable from http://
dotgnu.org/pipermail/deve
lopers/2005-June/000056.h
tml. The runtime engine
gets a PowerPC unroller,
enhanced profiling, and
support for multiple
engine instances.
System.Windows.Forms
receives over 20
enhancements and fixes.
These include several
improvements in form
layout capabilities and
string displays; the
toolbox classes have also
been started. TextBox,
TreeView, TreeNode, and
focus handling saw many
improvements.
'At the last PDC,' Miguel
de Icaza notes, 'the Mono
BOF had the largest
number of votes when half
the spots were still
available and it got
dropped out of the list.'
Now it seems that history
is about to repeat
itself.
Mainsoft has recently
made several Mono-related
announcements, centering
on the new version of
their Visual MainWin
product, codenamed
Grasshopper. Visual
MainWin is a Visual
Studio add-in that adds
project types for VB.NET
or C# that target J2EE
servers on Linux; this
allows a programmer to
use Windows and Visual
Studio to create ASP.NET
and ADO.NET pages and
programs that can run on
both a .NET server and on
a J2EE server. It does
this by having two
projects with the same
source files, but
different build files.
The .NET project creates
a normal .NET
application, and the J2EE
creates a J2EE
application and the
infrastructure needed for
it to run under J2EE.
Visual MainWin creates
.NET IL (intermediate
language) code using the
Microsoft C# and VB.NET
compilers and most of the
Mono .NET libraries,
including System,
System.Web,
System.WebServices,
System.Data, System.XML,
and other namespaces. It
then converts the IL code
to Java bytecode, and
optimizes it into a .jar
file. One library that is
not shared between
Mainsoft and Mono is the
mscorlib assembly, as
Mainsoft needs a special
version for J2EE
capability.
Mono Version 1.1.7
Released Portable.NET
plans 0.7 Mono version
1.1.7 has been released,
and the Mono crew is
planning their second
major release (1.2) for
September. The key to the
1.2 release is SWF
(System.Windows.Forms);
when SWF is ready for
prime time, 1.2 will get
released. Monthly
releases will continue
until then.
Novell, which sponsors
the Mono project, a
community initiative, has
announced a 'Mono
Kickstart' program to
make it easier to build
and develop applications
on Linux and other
platforms, allowing
developers to get
software to market faster
and more
cost-effectively.
Mono and Mainsoft have
reached a milestone.
Mainsoft has a
VisualStudio.NET plugin
that converts .NET
assemblies into Java JAR
files that can be
executed on J2EE
application servers such
as Tomcat and WebSphere.
Mainsoft has been
donating code to Mono for
a long time (most
notably, code for the
Microsoft.VisualBasic
namespace; see 'Monkey
Business' in DNDJ June
2004), and has been using
Mono code in their
product for just as long
(note that most of Mono
uses the MIT X11 license
that allows Mono code to
be used in commercial
products, and that the
Mono team is proud of the
number of companies that
make commercial use of
Mono).
The new managed
System.Windows.Forms
(SWF) implementation that
first appeared in Mono
1.1.4, is getting quite
good. Of the 69 major
controls, 40 are complete
enough for user testing
and bug reporting, 18 are
being worked on, and only
11 are waiting for
developers to step up and
start implementing.
Völcker Informatik AG has
switched from Microsoft
to Mono. Völcker was
traditionally a Microsoft
shop using VB and C++ to
built its
enterprise-level user
management and
authentication products.
But when the city of
Munich, one of its
largest clients, decided
to switch to Linux,
Völcker needed
technologies that would
work in a cross-platform
environment.
The monthly Mono releases
are out, 1.0.5 for
production use (details
at www.gomono.com/archive
/1.0.5/), and the
development version 1.1.3
(details at www.gomono.co
m/archive/1.1.3/). The
production version has an
improved Monodoc, and a
half dozen Security
fixes. The development
version is, again, mainly
bug fixes and performance
enhancements, with new
features mostly in the
build system, version 2.0
features, and
System.Windows.Forms.
Portable.NET has released
version 0.6.10. It has
been three months since
the release of 0.6.8.
Support for several OSs,
including Solaris, HP-UX,
BeOS, and 64-bit CPUs,
has improved, and a new
CPU, CRIS (an embedded
network CPU), is now
supported. Threading,
sockets, marshalling, and
XML navigation have
improved. XSharp has seen
a lot of work, and
JScript now has better
sample programs and
improved math functions.
The DotGNU project has a
new Web portal at
getdotgnu.com, and it is
a great improvement over
the old Web pages. If you
tried to use DotGNU
before, but couldn't get
it to work; if you wanted
to contribute, but didn't
know where to start; if
you have thought about
using DotGNU, but just
haven't gotten around to
it - now is the time.
Mono has a new Web site
(www.mono-project.com)
that replaces the old one
(www.go-mono.com). If you
go to the old address,
your browser will get
redirected to the new
site. There have been no
major changes beyond the
usual updates.
A fast open source
version of Python dispels
the myth that the .NET
CLR cannot support
dynamic languages.
Portable.NET has another
point release. Jim
Hugunin, of Jython and
AspectJ fame, made a
series of surprising
announcements at OSCON.
Team Mono met their goal
of a first half 1.0
release. This happened
just as we were going to
press last month, but I
was able to change the
headline and first
paragraph noting the
release. This month, I
will discuss it in
detail, and finish with a
look at some new
directions for
System.Windows. Forms
(SWF).
Mono v1.0 has just been
released; it is available
for download from the
Mono home page at
www.go-mono.com. Next
month, I will have
details. This month, I
will discuss the Mono
betas a bit, and also the
latest Portable.NET
version 0.6.6 release.
Mono makes its goal of
releasing v1.0 beta 1 on
May 4, adding support for
both the Global Access
Cache (GAC) and the
latest ECMA generics, as
well as improving CLS
compliance. Novell hires
another open source
developer and open
sources an Exchange
client. Open source
leaders start looking at
horn-swaggling Longhorn.
It was a busy month for
everybody. DotGNU starts
a new project, Mono gets
more code from Mainsoft,
and Microsoft releases
Wix, an installer
program, under open
source license. Mono sets
dates for two betas and a
release of version 1.0.
Novell has put out the
second beta of Mono, the
open source
implementation of the
.NET Framework for Linux,
Unix and Windows whose
sponsorship it acquired
when it bought Ximian.
There are 8,909 books
listed on Amazon.com with
the word 'Investing' in
the title; there are(!)
27,146 books with the
word investment in the
title. Without having lo
Reviewers overuse the
phrase 'required
reading,' but no other
description fits the new
book 'Ajax Security'
(2007, Addison Wesley,
470p). This exhaustive
tome from B
BPEL or Business Process
Execution Language is an
XML and Web
standards-based SOA
(service-oriented
architecture) standard
that allows business
people to combine ser
Many requirements tools
focus on accessibility
and convenience features
but fail to address fully
the main issue that made
use case analysis so
successful: managing
It's 8:15 in the morning,
and as you walk by the
main conference room you
overhear an animated
exchange between the
leaders of your IT
organization including
the dir