Write standards-compliant C# programs in Linux with DotGNU
Conclusion
Several books and tutorials on C# can be found on the Internet. The advantage of DotGNU is that it is completely standards compliant; therefore, you can use documentation from Microsoft's C# library. To get things done faster, you can use front ends, such as Microsoft's Visual Studio and Mono's MonoDevelop IDE [3]. But if you want to write truly portable code with DotGNU, you'll have to be extra careful with these tools and make sure you stay away from features unique to a particular platform.
Languages and Libraries
C# borrows a bit from several popular languages, including C, C++, and Java. If you've programmed in Java, you'll find that, in C#, you can have a class name with a name that's not the same as the source file. Similar to Java, and unlike the C languages, C# doesn't have header files. Plus, you have the flexibility of either importing a namespace or specifying it fully when using a function like System.Console.Writeline. Again, this has the Java footprint all over it.
Also note that the C++ :: operator isn't required in C#. The task of referencing class members is accomplished with the dot (.) operator.
All the most important C# libraries are implemented in DotGNU. The library lineup includes the core System library that (among other things) contains classes for handling data types, the System.Collections library that helps define and traverse objects such as lists and arrays, System.IO for reading and writing streams and files, System.Net for network programming, System.Security for making your programs respect permissions, and, of course, System.Windows.Forms for creating GUIs.
However, some libraries are not directly available, such as System.Data, which provides classes to implement the ActiveX Data Object, or ADO for reading and writing data from various data stores such as databases. But you can use the ADO library via the ml-pnet package.
DotGNU-specific definitions for the packaged libraries are available online [4], although they are not complete, and it is possible that a function might not be defined there but available nonetheless. Some of the libraries do have missing constructs and methods, and you can also learn more about these elements online [5]. However, this information might not be up to date.
Infos
- DotGNU website: http://www.gnu.org/software/dotgnu/
- Listings for this article: http://www.linux-magazine.com/resources/article_code
- MonoDevelop: http://monodevelop.com/
- DotGNU library definitions: http://www.gnu.org/software/dotgnu/pnetlib-doc/
- Library status: http://www.gnu.org/software/dotgnu/pnetlib-status/
« Previous 1 2 3
Our Services
Direct Download
Read full article as PDF » 022-027_dotGNU.pdf (997.51 kB)Tag Cloud
News
-
FSF Outs the World Wide Web Consortium over DRM Proposal
Richard Stallman calls for the W3C to remain independent of vendor interests.
-
Debian 7.0 Debuts
The new release supports nine architectures, 73 human languages, and zero non-Free components.
-
Alpha Version of Fedora 19 Released
Fedora developers release the first alpha version of Fedora 19, known as Schrödinger’s Cat, for general testing. The final release is expected in July 2013.
-
ack 2.0 Released
ack is a grep-like, command-line tool that has been optimized for programmers to search large trees of source code.
-
SUSE Studio 1.3 Released
New features in SUSE Studio 1.3 include enhanced cloud integration, VM platform support, and lifecycle management.
-
Xen To Become Linux Foundation Collaborative Project
The Linux Foundation recently announced that the Xen Project is becoming a Linux Foundation Collaborative Project.
-
RunRev Releases Open Source Version of LiveCode
Open source version of LiveCode is now available for developing apps, games, and utilities for all major platforms.
-
OpenDaylight Project Formed
OpenDaylight is an open source software-defined networking project committed to furthering adoption of SDN and accelerating innovation in a vendor-neutral and open environment.
-
Gnome 3.8 Released
The new Gnome release includes privacy and sharing settings, allowing more user control over access to personal information.
-
Mozilla and Samsung Collaborate on New Browser Engine
Mozilla is collaborating with Samsung on a new web browser engine called Servo.
