Free Software for Webservices and for C# Programming
As of December 2012, the DotGNU project has been decommissioned,
until and unless a substantial new volunteer effort arises. The
exception is the libjit component, which is now a separate libjit package.
The DotGNU project aims to be for webservices and for C# programs
what GNU/Linux is rapidly becoming for desktop and server applications:
the industry leader and provider of
Free Software
solutions.
DotGNU currently consists of three main development projects (further components will be added over time):
-
DotGNU Portable.NET, an implementation
of the Common Language Infrastructure (CLI), more commonly known
as ".NET", includes everything that you need to compile
and run C# and C applications that use the base class libraries,
XML, and Systems.Windows.Forms. Currently supported CPUs:
x86, ppc, arm, parisc, s390, ia64, alpha, mips, sparc.
Supported operating systems: GNU/Linux (on PCs, Sparc, iPAQ,
Sharp Zaurus, PlayStation 2, Xbox,...), *BSD, Cygwin/Mingw32,
Mac OS X, Solaris, AIX.
[Intro]
[Download]
[Install]
-
phpGroupWare, a multi-user web-based GroupWare
suite, which also serves to provide a good collection of webservice
components, all of which can be accessed through XML-RPC so that you can
easily integrate them into webservice applications of your own.
-
The DGEE webservice server is also moving forward
nicely.
[Intro]
[Download]
[Install]
Major motivations for being involved in DotGNU include:
-
A desire to prevent Microsoft from achieving their stated goal
"that the era of 'open computing,' the free exchange of digital information
that has defined the personal computer industry, is ending".
Read the quotation in context and learn how
the Free Software movement works to prevent this disaster. The
contribution of the DotGNU project might turn out to be important.
- A technical interest in webservices, bytecode systems, and compiler
construction.
- A business strategy of using DotGNU, and contributing to DotGNU.
DotGNU is part of
GNU and thereby protected from
coming under the control of any single company.
News
DotGNU news is also available as an RSS feed.
June 06-06-2009: Development version control switched from CVS to GIT !
The active development takes place now in a GIT repository on savannah.
The CVS repository will be available for read only access for some time but no further updates will be committed there.
For information on how to obtain the GIT repository have a look at the
GIT info.
December 12-10-2008: Libjit 0.1.2 released !
The changes are the switch from GPL to LGPL 2.1 licence,
native support of x86-64/AMD64, a fixed libjit interpreter
and various other improvements and bugfixes.
You can get the source tarball from
savannah's download area.
April 04-15-2008: Libjit runs Windows.Forms Applications native on X86-64 !
The big brother x86-64 is joining the JIT x86 family.
The current
CVS HEAD of libjit,
along with the corresponding pnet,
can run GUI Windows.Forms programs in pure JIT mode on x86-64.
March 03-20-2007: DotGNU Portable.NET 0.8.0 released !
After a year of work, the Portable.NET x86 JIT is finally
ready to leave the confines of CVS into a stable release.
The new release includes the new libjit based x86 JIT with
all the bells and whistles as well as all the bug fixes which
have gone into various parts of the system. This release is also
the first to be gift-wrapped by klausT & co, rather than
our regular release master rhysw. You can get the source tarballs from
savannah's download area.
Give it a whirl, it should be faster, better and more stable than
ever before.
Feb 02-23-2007: Dotgnu in "Real Life"(TM)
Despite what this scarcely maintained webpage might suggest,
interesting things are afoot in dotgnu developer land.
We've finally managed to catch a glimpse of DotGNU in action
from the Trumpf labs.
Take a closer look at their
laser appliance control panel, which is
a Windows.Forms application which uses a touch-screen
interface. The appliance and dotgnu was recently
featured in the Elektronik magazine
issue 03/2007 (in German).
Aug 08-21-2006: Libjit on Alpha
As part of the Google
Summer of Code project, tcort has been hacking away at the libjit port to
alpha. As the SoC was ending yesterday, tcort showed the basic JIT samples
working on alpha, including on-demand compilation and execution of functions.
There is a lot more work left in Alpha land and tcort has said that he plans
to continue working on it. Take a look at his blog
post and the screenshot.
If you're interested in helping, take a look at his
Alpha porting guide first.
Aug 08-19-2006: Libjt runs Windows.Forms applications
Over the last few months, libjit has made progress in leaps and bounds.
The current
CVS HEAD of libjit,
along with the corresponding pnet,
can run GUI Windows.Forms programs in a pure JIT mode on x86.
Actually, it has been functional for a while now.
We apologize for the delay in announcing this, but we are all too busy hacking :)
May 01-05-2006: Google Summer of Code 2006
DotGNU is taking part in the Google Summer of Code 2006 as a part of the GNU Operating
System. If you are a student and are interested in working on DotGNU (or another part
of GNU) see the list of
GNU ideas. The DotGNU related items are mainly about implementing C# 2.0 features
in the compiler, enhancing System.Windows.Forms and improving libjit. DotGNU related
Summer of Code projects can be found on this list.
March 04-03-2006: DotGNU website redesign
We are currently looking at redesigning dotgnu.org and building a new look and feel. The old template system is also going to
be replaced with an XSLT based one. If you are interested in helping, please join up on the #dotgnu IRC channel or mail the
developers mailing list, we are very interested in general proposals and mockups.
February 11-02-2006: Linux.conf.au 2006
Some DotGNU developers met at this year's Linux.conf.au in Dunedin, NZ to discuss plans for 2006. Some DotGNU people
can be seen on this photo. Apart from a nice dessert,
there was also quite some discussion about Portable.NET's future. The conclusion was to go ahead and give
Portable.NET a big boost in 2006 as there is a lot of exciting technology in Portable.NET to play around with.
January 15-01-2006: DotGNU Portable.NET 0.7.4 and libjit 0.0.6 released!
New versions of Portable.NET and libjit are available. Far too many new features and bug fixes to list them
here, see the announcement which
includes a full list of new features and bug fixes. You can get it from the download page.
December 03-12-2005: Portable.NET and libjit progress
Work on libjit (A JIT designed to be independent of any particular virtual machine bytecode format or language)
has resumed again and we are gearing towards using it in Portable.NET soon.
Recently, there have also been donations
which will be distributed amongst developers who contribute code to get libjit finished and hook it into Portable.NET's runtime engine.
On Portable.NET related news, there have been many changes since the last release, probably the most notable one is the development of
libCrayons, the new System.Drawing backend.
With a bit of luck, developers can even get one of the
Windows.Forms related bounties
for their code contribution.
If you are interested in any of the recent libjit or Portable.NET developments you should subscribe to the
mailing lists or talk to us on IRC.
August 17-08-2005: DotGNU Portable.NET 0.7.2 released!
Changes since the last release and download links can be found in the announcement.
July 31-07-2005: Third revision of C# and CLI specifications
The third edition of the ECMA C# Language Specification
and Common Language Infrastructure (CLI) have been approved recently.
June 11-06-2005: DotGNU Portable.NET 0.7.0 released!
We have reached yet another milestone: Portable.NET 0.7.0. There is an unroller for PPC, runtime
optimizations and fixes all over the place, many System.Windows.Forms, System.Drawing and Xsharp
fixes plus XML and networking enhancements!
See the announcement for
a more detailed list of changes and get it from the download page.
January 16-01-2005: DotGNU Portable.NET 0.6.12 released!
Portable.NET 0.6.12 and TreeCC 0.3.6 have been released today.
For a list of changes and bug fixes read the
announcement or visit the download page where you can also find
binary packages for numerous platforms.
December 05-12-2004: Video clip of DotGNU running on Encore Simputer
DotGNU Portable.NET has been ported to the
Encore Simputer,
a handheld computer based on on Intel's StrongARM CPU (a RISC
microprocessor designed for embedded applications), within 72
hours after the release of Encore's port of the GNU/Linux
development tools for this platform at the "Linux Bangalore/2004"
conference. Conference organiser Atul Chitnis
said,
''I threw the challenge as a joke, the bet being a cup of coffee. Gopal
borrowed a PC at the conference, and finally an Encore Simputer, and came to me
on the third day, saying that I now owed him a cup of coffee. It took a few
seconds before the enormity of that statement hit me.''
Here's a video clip.
October 30-10-2004: DotGNU Portable.NET 0.6.10 released!
Version 0.6.10 of pnet, pnetlib, pnetC, and ml-pnet
and version 0.3.4 of treecc have been released.
The full release announcement is here.
September 25-9-2004: GetDotGNU.com community web portal launched
GetDotGNU.com is a new web portal dedicated to DotGNU and its development projects.
The site features news articles and editorials, forums, downloads, screenshots, and many other great features.
It is time to Get DotGNU! now.
August 7-8-2004: Release of pnet, pnetlib, pnetC, ml-pnet, treecc, and
libjit
Version 0.6.8 of pnet, pnetlib, pnetC, and ml-pnet, version 0.3.2 of treecc, and version 0.0.4 of libjit have been released.
There are lots and lots of bug fixes and new features. The full announcement
with NEWS entries and signed MD5 checksums is
here.
July 7-7-2004: phpgw 0.9.16.002 security fix release
All phpGroupWare versions earlier than 0.9.16.002 set header admin and setup
passwords as plain text cookies. Now the
bugfix security release
0.9.16.002 is out which fixes this security problem.
May 29-5-2004: DotGNU Portable.NET 0.6.6 released!
Even though Rhys was on "sabbatical" away from Portable.NET
during this release cycle (he has been working on libjit),
major progress has been made in many areas, including in
particular threading, Winforms, System.Xml, ml-pnet, DCOP
and serialization.
The full release announcement is
here.
Here are some screenshots:
Portable Studio IDE, MyXaml, Photo Tool (wx.NET), KDE DCOP Support, MDI and FileDialogs, Gtk-Sharp, Svg Rendering, XHTML Rendering .
May 13-5-2004: libjit-0.0.2 has been released!
Rhys has packaged up the current state of the libjit tree into a
libjit
0.0.2 release.
Libjit is now at the state where primary testing and bug fixing can begin. We
initially need test cases that cover all of the functions in "jit-insn.h".
The easiest way to write a test case is to write a small program in the
"Dynamic Pascal" language that exercises the feature in question. Then place
it into the "libjit/tests" directory. The "libjit/tests/README" file
contains more information on how to do this. A couple of test cases are
already provided that demonstrate the concept.
April 27-4-2004: libjit-0.0.0f has been released!
The libjit
library implements Just-In-Time compilation functionality. Unlike
other JIT's, this one is designed to be independent of any particular virtual
machine bytecode format or language. The hope is that Free Software projects
can get a leg-up on proprietary VM vendors by using this library rather than
spending large amounts of time writing their own JIT from scratch.
This JIT is also designed to be portable to multiple architectures. If you run
libjit on a machine for which a native code generator is not yet available,
then libjit will fall back to interpreting the code. This way, you don't need
to write your own interpreter for your bytecode format if you don't want to.
libjit is independent of pnet (that's one of the main points!) but we'll
eventually modify pnet to use it for JIT'ing.
In the newly released version 0.0.0f, tutorials 1 to 4 now work correctly
using the interpreted back end, which should allow people to experiment with
real examples now. The x86 and ARM back-ends should follow in the next few
days.
A mailing list
for libjit-specific discussions has been set up.
March 13-3-2004: DotGNU Portable.NET 0.6.4 released
Portable.NET 0.6.4 and Treecc 0.3.0 have been released. The big change this
cycle is the C compiler, which has now reached the point of being useful. We
now need lots of volunteers to help flesh out the C library, pnetC, to include
all of the usual libc features. There have also been a lot of bug fixes and
performance improvements in System.Windows.Forms, thanks to Neil Cawse. And
Richard Baumann has completely rewritten the System.Xml parser, fixing many
long-standing issues with the XML library.
March 6-3-2004: C Compiler: Significant Progress and Call For Volunteers
The new C compiler type system has been checked in. Type layout is
now totally dynamic; the IL binary will automatically adapt itself
to the runtime engine it is running on. This means that DotGNU is
bringing true "write once, run anywhere" functionality to C,
running on top of standard CLR implementations. Unlike Microsoft's
C compiler, whose output will only run on i386-based Windows
systems, ours will run portable ANSI C code on any platform that
has a CLR, be it 32-bit or 64-bit, little-endian or big.
Simple examples of C programs can be compiled to IL now, and
volunteers are needed to work on the standard C library so that
more programs and libraries can be compiled. Our eventual goal is
to bring a large body of Free Software libraries and programs to
the CLI environment, vastly increasing the range of functionality
beyond the small number of libraries currently defined for C#.
February 28-2-2004: .NET Developer's Journal Readers' Choice Awards 2003
We were mentioned in the ".NET Developer's Journal Readers' Choice Awards
2003", achieving third runner up in the "Best .NET Build Tools/Installers"
category and second runner up in the "Best .NET CLI" category. The full
details are at the following URL:
http://www.sys-con.com/2002/PR/02252004.cfm
February 27-2-2004: Interview with nb on gnu-friends.org
Gnu-friends has an interview about the history of DotGNU and nb's views on
Free Software philosophy:
http://gnu-friends.org/story/2004/2/27/15415/3365
February 11-2-2004: "Darwinports" packages of Portable.Net 0.6.2
for Mac OS X
Thanks to the efforts of olegb, "DarwinPorts" packages of DotGNU
Portable.NET 0.6.2, including System.Windows.Forms, are now available.
To install, use "port install pnet; port install pnetlib; port install ml-pnet"
January 3-1-2004: Portable.Net 0.6.2 released
Version 0.6.2 of DotGNU Portable.NET has been released with many
enhancements particularly in the area of System.Windows.Forms
,
with improvements to most controls, fonts, MDI, tree views, and file dialogs.
Please use the
Southern Storm
site for now for downloading it, as we are currently unable to update
ftp.gnu.org
January 11-1-2004: Portable.Net on Playstation 2
Thanks to the efforts of Adam Ballai and Lance Gilbert
DotGNU Portable.Net is now running on Sony Playstation 2
(which has a little endian "R5900 V3.1" MIPS cpu.)
January 12-1-2004: DotGNU at LCA2004
Four DotGNU'ers have made it to LCA2004 in Adelaide, Australia.
A group photo is here.
From the left, we have Andrew Mitchell (ajmitch), Rhys Weatherley (rhysw),
Chris Smith (cds), and Dave Hall (skwashd, who wishes to remain anonymous for
reasons unknown).
January 13-1-2004: website update
All official GNU websites (which are on www.gnu.org or tightly synchronized
with www.gnu.org, where in the example of DotGNU, our website is at
http://www.gnu.org/projects/dotgnu/)
were in hiatus between mid-November 2003 and January 2004 due to a
security breach at an important server of the Free Software Foundation,
and the resulting need to set up a much more secure system. The new
system is available now, although it seems to have a bug which
prevents the www.gnu.org
version of the DotGNU website from being
updated. Since the DotGNU project has important news to share, and I don't
have much hope of this project-specific bug being treated with priority (it may
have to do with DotGNU being under /projects
on
www.gnu.org
and not under /software
like almost
everything else), I'm now updating dotgnu.org
without waiting for
the savannah webcvs bug to be fixed.
November 6-11-2003: DotGNU Snake!
Support for the upcoming "Whidbey" System.Console routines has been added to
Portable.NET, and there is a simple "Snake" game that demonstrates how to
use it. A screenshot is here
November 4-11-2003: DotGNU 0.1 Release Announcement
The release announcement for the
DotGNU 0.1 CD-ROM release has been posted.
November 2-11-2003: Embedding X applications in Xsharp
It is now possible to embed any X application as a child widget within an
Xsharp application. The pnetlib CVS tree includes "XClockEmbed.cs" as an
example of doing this for "xclock", and this
screenshot shows both "gedit" (a GNOME app) and "kcalc" (a KDE app) running
as two children of the same Xsharp main window. This is important because the
next version of WinForms will have a HTML web browser control widget, and
we will want to embed an existing third-part Free Software web browser, and
not write a web browser from scratch in C#.
Your comments please...
You are invited to add your comments concerning this page
at the appropriate
page of the DotGNU Wiki