FYI :) The minutes of the meeting #3 is enclosed herewith. The speaker of meeting #2 is yet to submit the minutes of his talk. I'll post it once it is done. -- ILUG-Madurai meeting #3 ----------------------- Date : 13-03-2004 (10.45hrs to 12.30hrs) Venue: Z0 Lecture Hall, CSE Department, Thiagarjar College of Engineering, Madurai - 625015 Talk : Mono.NET, DotNET on GNU/Linux Speaker: Mr. Kaushik Srenevasan <kaushik_srene@xxxxxxxxxxx> -- In today's meet we spoke about, 1. Understanding what .NET is 2. Discuss history behind the Mono project 3. Demonstrate some Mono components 4. Other open source alternatives Introduction: ------------- .NET a platform for building and running the next generation of applications and XML Web services. It provides a highly productive, standard based, enterprise-ready, Multilanguage environment that simplifies application development, enables developers to leverage their existing skill set, facilitates integration with existing software, and eases the challenges of deploying and operating Internet-scale applications. The Framework consists of two main parts: the common language runtime and a unified, hierarchical class library that includes a revolutionary advance to Active Server Pages (ASP.NET) and a loosely-coupled data access subsystem (ADO.NET). Basics: ------- Platform: A development environment provides a set of programmatic services, exposed through some API to developers using one or more languages. The Framework, as any other development environment, can be broken down into three fundamental areas: the runtime the platform offers, the libraries it defines, and the languages we can use to target it. Runtime: A runtime is a piece of code, written by the platform vendor that provides our code with a set of services. These services could be anything - from checking security, to implementing a file system, to providing access to some piece of hardware. Almost every program takes advantage of some sort of runtime. Very few programmers start a project by writing their own file system or database engine. Rather, they make use of already-written pieces of software, like Linux or mySQL. In the case of Linux, the runtime is the OS kernel, and it provides services like thread management. In the case of mySQL, the runtime is the database engine, and the services include things like a SQL engine and transactions. The Framework provides these services using a layered architecture (as shown below). In some cases application code uses the CLR directly and in others indirectly. Libraries: The Framework SDK provides an API to interact with the runtime. This API takes the form of a set of classes. Collectively, they are referred to the Base Class Libraries, or BCL. Through the classes in the BCL, we can interact with the runtime, influencing the way that the runtime's services are provided to us. The BCL classes also provide a large amount of useful utilities. These include things like a new database access library (ADO.NET), ASP.NET, and an XML parser with support for the latest XML specifications. There are thousands of classes in the BCL. Languages: In order to take advantage of a set of libraries and the runtime we need to use some programming language with a compiler that is runtime-aware. There are currently two languages that Mono supports C# and Mono Basic (VB on Mono) Standards Based: The Framework provides explicit support for standards, making extensive use of technologies like XML and SOAP. In addition to helping write applications that conform to accepted standards - meaning our applications have a better chance of being able to interoperate with other applications over the Internet - the CLR itself is an implementation of a standard. Microsoft has submitted the CLI - the Common Language Infrastructure - to ECMA. The CLI is the specification that describes the CLR. It can be found at http://www.ecma.ch. What is in Mono? ---------------- Common Language Infrastructure (CLI) virtual machine Class loader Just-in-time compiler Garbage collecting runtime Class library that can work with any language which works on the CLR. .NET compatible class libraries Mono-provided class libraries Compiler for the C# language Note: Other compilers that target the CLR in the future Mono Platform support Just In Time (JIT) compiler for x86 systems; Linux FreeBSD Windows (XP/NT core) PowerPC Interpreter (slower) s390 SPARC PowerPC Mono Assemblies Core mscorlib System, System.XML, System.Security WinForms Windows.Forms GDI+ System.Drawing ADO.NET System.Data Various other database providers. ASP.NET System.Web, System.Web.Service Microsoft.VisualBasic System.Runtime.Serialization.Formatters.Soap Mono Development Tools: ----------------------- Compilers mcs : Mono C# compiler mbas : Mono Basic (supserset of VB.NET) compiler mono : Mono Just-in-Time and Ahead-of-Time code generator mint - Mono interpreter wsdl : WSDL utility Generates web service client proxy and service from WSDL document. Other command line tools and utilities How do I get Mono? ------------------ Mono website http://www.go-mono.com/ Available downloads: -------------------- Source code Linux x86 Redhat 9 Fedora Core 1 SuSE Debian Windows (Current release is 0.30.1) -- MOM contributed by Kaushik Srenevasan <kaushik_srene@xxxxxxxxxxx> -EoF- -- Free the code, free the user. visit : http://www.joesteeve.tk/