DotGNU
Encyclopedia
DotGNU is a part of the GNU Project
that aims to provide a free software
replacement for Microsoft
's .NET Framework
by Free Software Foundation
. Other goals of the project are better support for non-Windows
platforms and support for more processors.
The main goal of the DotGNU project code base is to provide a class library that is 100% Common Language Specification (CLS) compliant.
, an implementation of the ECMA-335 Common Language Infrastructure
(CLI), includes software to compile and run Visual Basic .NET
, C#, and C
applications that use the .NET base class libraries, XML, and Windows Forms
. Portable.NET claims to support various instruction set architectures including x86, PPC
, ARM, and SPARC
.
, a multi-user web-based GroupWare suite, which also serves to provide a collection of webservice components that can be accessed through XML-RPC so that can easily integrate them into webservice applications.
in Virtual Machine
implementations, Dynamic programming language
s, and Scripting languages. It implements an intermediate representation based on three-address code, in which variables are kept in static single assignment form
.
libJIT has also seen some use in other open source projects, including ILDJIT http://sourceforge.net/apps/mediawiki/ildjit/index.php?title=Main_Page and HornetsEye http://www.wedesoft.demon.co.uk/hornetseye-api/files/HornetsEye-txt.html.
for standardization has been the source of patent violation concerns for much of the life of the project. In particular, discussion has taken place about whether Microsoft could destroy the DotGNU project through patent suits.
The base technologies submitted to the ECMA may be non-problematic. The concerns primarily relate to technologies developed by Microsoft on top of the .NET Framework, such as ASP.NET
, ADO.NET
, and Windows Forms
(see Non standardized namespaces), i.e. parts composing DotGNU’s Windows compatibility stack. These technologies are today not fully implemented in DotGNU and are not required for developing DotGNU-applications.
GNU Project
The GNU Project is a free software, mass collaboration project, announced on September 27, 1983, by Richard Stallman at MIT. It initiated GNU operating system development in January, 1984...
that aims to provide a free software
Free software
Free software, software libre or libre software is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with restrictions that only ensure that further recipients can also do...
replacement for Microsoft
Microsoft
Microsoft Corporation is an American public multinational corporation headquartered in Redmond, Washington, USA that develops, manufactures, licenses, and supports a wide range of products and services predominantly related to computing through its various product divisions...
's .NET Framework
.NET Framework
The .NET Framework is a software framework that runs primarily on Microsoft Windows. It includes a large library and supports several programming languages which allows language interoperability...
by Free Software Foundation
Free Software Foundation
The Free Software Foundation is a non-profit corporation founded by Richard Stallman on 4 October 1985 to support the free software movement, a copyleft-based movement which aims to promote the universal freedom to create, distribute and modify computer software...
. Other goals of the project are better support for non-Windows
Microsoft Windows
Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...
platforms and support for more processors.
The main goal of the DotGNU project code base is to provide a class library that is 100% Common Language Specification (CLS) compliant.
Portable.NET
DotGNU Portable.NETPortable.NET
Part of the DotGNU project, Portable.NET is a free software and open source software initiative aiming to build a portable toolchain and runtime for Common Language Infrastructure applications. The project focuses on compatibility with the ECMA-334 and ECMA-335 standards and support for .NET's...
, an implementation of the ECMA-335 Common Language Infrastructure
Common Language Infrastructure
The Common Language Infrastructure is an open specification developed by Microsoft and standardized by ISO and ECMA that describes the executable code and runtime environment that form the core of the Microsoft .NET Framework and the free and open source implementations Mono and Portable.NET...
(CLI), includes software to compile and run Visual Basic .NET
Visual Basic .NET
Visual Basic .NET , is an object-oriented computer programming language that can be viewed as an evolution of the classic Visual Basic , which is implemented on the .NET Framework...
, C#, and C
C (programming language)
C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....
applications that use the .NET base class libraries, XML, and Windows Forms
Windows Forms
Windows Forms is the name given to the graphical application programming interface included as a part of Microsoft .NET Framework, providing access to native Microsoft Windows interface elements by wrapping the extant Windows API in managed code...
. Portable.NET claims to support various instruction set architectures including x86, PPC
PowerPC
PowerPC is a RISC architecture created by the 1991 Apple–IBM–Motorola alliance, known as AIM...
, ARM, and SPARC
SPARC
SPARC is a RISC instruction set architecture developed by Sun Microsystems and introduced in mid-1987....
.
phpGroupWare
phpGroupWarePhpGroupWare
phpGroupWare, formerly known as webdistro, is a multi-user groupware suite written in PHP and part of the DotGNU project. It provides about 50 web-based applications including a Calendar, Addressbook, an advanced Projects manager, Todo List, Email, and File manager.The calendar supports repeating...
, a multi-user web-based GroupWare suite, which also serves to provide a collection of webservice components that can be accessed through XML-RPC so that can easily integrate them into webservice applications.
libJIT
The libJIT Just-In-Time compilation library, generally known as libJIT, is a library for development of advanced Just-In-Time compilationJust-in-time compilation
In computing, just-in-time compilation , also known as dynamic translation, is a method to improve the runtime performance of computer programs. Historically, computer programs had two modes of runtime operation, either interpreted or static compilation...
in Virtual Machine
Virtual machine
A virtual machine is a "completely isolated guest operating system installation within a normal host operating system". Modern virtual machines are implemented with either software emulation or hardware virtualization or both together.-VM Definitions:A virtual machine is a software...
implementations, Dynamic programming language
Dynamic programming language
Dynamic programming language is a term used broadly in computer science to describe a class of high-level programming languages that execute at runtime many common behaviors that other languages might perform during compilation, if at all...
s, and Scripting languages. It implements an intermediate representation based on three-address code, in which variables are kept in static single assignment form
Static single assignment form
In compiler design, static single assignment form is a property of an intermediate representation , which says that each variable is assigned exactly once...
.
libJIT has also seen some use in other open source projects, including ILDJIT http://sourceforge.net/apps/mediawiki/ildjit/index.php?title=Main_Page and HornetsEye http://www.wedesoft.demon.co.uk/hornetseye-api/files/HornetsEye-txt.html.
Framework architecture
The Portable .NET class library seeks to provide facilities for application development. These are primarily written in C#, but because of the Common Language Specification they can be used by any .NET language. Like .NET, the class library is structured into Namespaces and Assemblies. It has additional top-level namespaces including Accessibility and DotGNU. In a typical operation, the Portable .NET compiler generates a Common Language Specification (CLS) image, as specified in chapter 6 of ECMA-335, and the Portable .NET runtime takes this image and runs it.Free software
DotGNU points out that it is Free Software, and it sets out to ensure that all aspects of DotGNU minimize dependence on proprietary components, such as calls to Microsoft Windows' GUI code. DotGNU was one of the High Priority Free Software Projects from till .DotGNU and Microsoft’s patents
DotGNU’s implementation of those components of the .NET stack not submitted to the ECMAECMA
Ecma or ECMA may refer to:* Ecma International, an international standards organization for Information Communication Technology and Consumer Electronics* Engineering College Magazines Associated, a group of student-run engineering-based publications...
for standardization has been the source of patent violation concerns for much of the life of the project. In particular, discussion has taken place about whether Microsoft could destroy the DotGNU project through patent suits.
The base technologies submitted to the ECMA may be non-problematic. The concerns primarily relate to technologies developed by Microsoft on top of the .NET Framework, such as ASP.NET
ASP.NET
ASP.NET is a Web application framework developed and marketed by Microsoft to allow programmers to build dynamic Web sites, Web applications and Web services. It was first released in January 2002 with version 1.0 of the .NET Framework, and is the successor to Microsoft's Active Server Pages ...
, ADO.NET
ADO.NET
ADO.NET is a set of computer software components that programmers can use to access data and data services. It is a part of the base class library that is included with the Microsoft .NET Framework. It is commonly used by programmers to access and modify data stored in relational database systems,...
, and Windows Forms
Windows Forms
Windows Forms is the name given to the graphical application programming interface included as a part of Microsoft .NET Framework, providing access to native Microsoft Windows interface elements by wrapping the extant Windows API in managed code...
(see Non standardized namespaces), i.e. parts composing DotGNU’s Windows compatibility stack. These technologies are today not fully implemented in DotGNU and are not required for developing DotGNU-applications.
See also
- Comparison of application virtual machinesComparison of Application Virtual MachinesThis article lists some software virtual machines that are typically used for allowing application bytecode to be portably run on many different computer architectures and operating systems. The application is usually run on the computer using an interpreter or just-in-time compilation...
- Portable.NETPortable.NETPart of the DotGNU project, Portable.NET is a free software and open source software initiative aiming to build a portable toolchain and runtime for Common Language Infrastructure applications. The project focuses on compatibility with the ECMA-334 and ECMA-335 standards and support for .NET's...
- A portable version of DotGNU toolchain and runtime - MonoMono (software)Mono, pronounced , is a free and open source project led by Xamarin to create an Ecma standard compliant .NET-compatible set of tools including, among others, a C# compiler and a Common Language Runtime....
- A popular free software implementation of Microsoft's .NET - Common Language RuntimeCommon Language RuntimeThe Common Language Runtime is the virtual machine component of Microsoft's .NET framework and is responsible for managing the execution of .NET programs. In a process known as just-in-time compilation, the CLR compiles the intermediate language code known as CIL into the machine instructions...
- Shared Source Common Language InfrastructureShared Source Common Language InfrastructureThe Shared Source Common Language Infrastructure , previously codenamed Rotor, is Microsoft's shared source implementation of the CLI, the core of .NET. Although the SSCLI is not suitable for commercial use due to its license, it does make it possible for programmers to examine the implementation...
- Microsoft's shared source implementation of .NET, previously codenamed Rotor