mono – свободна имплементация на .net framework

Post on 16-Jan-2016

73 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Програмиране за .NET Framework. http://www.nakov.com/dotnet-project/. MONO – свободна имплементация на .NET Framework. Антон Андреев Факултет по Математика и Информатика на СУ "Св. Климент Охридски". За презентацията. Целта на настоящата презентация е ви запознае с инициативата MONO - PowerPoint PPT Presentation

TRANSCRIPT

MONO – MONO – свободна свободна

имплементация имплементация на .NET на .NET

FrameworkFramework

Програмиране за .NET FrameworkПрограмиране за .NET Framework

http://www.nakov.com/dotnet-project/http://www.nakov.com/dotnet-project/

Антон АндреевАнтон АндреевФакултет по Математика и ИнформатикаФакултет по Математика и Информатикана СУ "Св. Климент Охридски"на СУ "Св. Климент Охридски"

За презентациятаЗа презентацията Целта на настоящата презентация е Целта на настоящата презентация е

ви запознае с инициативата MONOви запознае с инициативата MONO Необходими знания:Необходими знания:

Елементарни познания по ЛинуксЕлементарни познания по Линукс Базови познания за езика C#Базови познания за езика C#

За настоящата изготвянето на За настоящата изготвянето на презентация е използван свободен презентация е използван свободен софтуерсофтуер OpenOffice.orgOpenOffice.org

СъдържаниеСъдържание Значение на не Microsoft Значение на не Microsoft

имплементациите на .NETимплементациите на .NET Проектът Проектът MonoMono

Статус на проектаСтатус на проекта Поддържани операционни системиПоддържани операционни системи Инсталиране и конфигуриране на Mono Инсталиране и конфигуриране на Mono

под Linuxпод Linux Компилаторът на C#Компилаторът на C# Виртуалната машинаВиртуалната машина

Графични интерфейси в MГрафични интерфейси в Monoono Windows FormsWindows Forms

Съдържание (2)Съдържание (2) Графични интерфейси в MonoГрафични интерфейси в Mono

GTK#GTK# Gnome#Gnome# Cococa# за MAC OSCococa# за MAC OS Glade#Glade#

Документацията MonodocДокументацията Monodoc Среди за разработкаСреди за разработка

MonoDevelopMonoDevelop EclipseEclipse

ADO.NET под MonoADO.NET под Mono

Съдържание (3)Съдържание (3) Java заJava за под .NET под .NET CLRCLR ASP.NETASP.NET под под MonoMono

Модулът mod_monoМодулът mod_mono Сървърът Сървърът XSPXSP

Mono класовеMono класове в в MonoMono Mono във ФМИ на СУMono във ФМИ на СУ Mono софтуерMono софтуер Mono – полезни връзкиMono – полезни връзки

Не Microsoft имплементациите Не Microsoft имплементациите на .NETна .NET Изцяло с отворен кодИзцяло с отворен код Всеки може да участва в разработкатаВсеки може да участва в разработката Лесно прехвърляне на друга хардуерна Лесно прехвърляне на друга хардуерна

платформа или операционна системаплатформа или операционна система Мощта на .NET може да направи други ОС Мощта на .NET може да направи други ОС

като Linux и BSD по-привлекателни за като Linux и BSD по-привлекателни за разработчиците разработчиците (стига с тези с (стига с тези с C / C++C / C++ :) :)

Намалява се монопола на MicrosoftНамалява се монопола на Microsoft Появява се конкуренцияПоявява се конкуренция В следствие се подобрява на качеството В следствие се подобрява на качеството

на продуктитена продуктите

Имплементации на .NETИмплементации на .NET Microsoft .NET FrameworkMicrosoft .NET Framework

Сайт: msdn.microsoft.com/netframework/Сайт: msdn.microsoft.com/netframework/ DotGNU Portable.NETDotGNU Portable.NET

Сайт: http://www.dotgnu.org/Сайт: http://www.dotgnu.org/ Виртуална машина, assembler, disassemblerВиртуална машина, assembler, disassembler Има компилатори за C и C#Има компилатори за C и C# Java и VB.NET – в процес на разработкаJava и VB.NET – в процес на разработка Работи се по цялостно ре-имплементиране Работи се по цялостно ре-имплементиране

на Windows Formsна Windows Forms Възможно e GNU да прибавят към gcc и Възможно e GNU да прибавят към gcc и

компилатор за C#, който генерира native кодкомпилатор за C#, който генерира native код

Проектът MonoПроектът Mono www.go-mono.comwww.go-mono.com

Зад проекта Mono стоят Зад проекта Mono стоят Ximian и Novell Ximian и Novell

Лицензионни проблеми Лицензионни проблеми с Microsoftс Microsoft

Статус на проекта MonoСтатус на проекта Mono Има версия 1.0 и тя реИма версия 1.0 и тя ре--имплементира .NET имплементира .NET

Framework 1.1Framework 1.1 Поддържа се C# компилаторПоддържа се C# компилатор VB.NET е в напреднал стадии, но все още е VB.NET е в напреднал стадии, но все още е

нестабиленнестабилен Настоящата версия е 1.05 stable и 1.1.3 Настоящата версия е 1.05 stable и 1.1.3

unstableunstable До средата на 2005 ще излезе Mono 1.2. Ще До средата на 2005 ще излезе Mono 1.2. Ще

включва следните новости:включва следните новости: Поддръжка на GenericsПоддръжка на Generics Обновен на C# компилаторОбновен на C# компилатор

Нова версия на основните библиотекиНова версия на основните библиотеки ASP.NET 2.0 подобренияASP.NET 2.0 подобрения Remoting подобрения от WhidbeyRemoting подобрения от Whidbey System.XML подобренияSystem.XML подобрения Поддръжка за достъп до конзолата и Поддръжка за достъп до конзолата и

серийните портовесерийните портове Нови компилатори: VB.NET и JScript Нови компилатори: VB.NET и JScript

поддръжкаподдръжка Имплементации на WSE1/WSE2Имплементации на WSE1/WSE2 System.Windows.Forms ще има по-солидна System.Windows.Forms ще има по-солидна

поддръжкаподдръжка Mono 2.0 е планирано за 2006Mono 2.0 е планирано за 2006

Ще поддържа напълно .NET Framework 2.0Ще поддържа напълно .NET Framework 2.0

Статус на проекта MonoСтатус на проекта Mono

Поддържани ОСПоддържани ОС Достъпни са компилирани пакети за:Достъпни са компилирани пакети за:

RedHat Linux 9.0RedHat Linux 9.0 SuSe LinuxSuSe Linux Fedora LinuxFedora Linux Mac OS XMac OS X Microsoft WindowsMicrosoft Windows

За всички останали трябва да се За всички останали трябва да се прекомпилира изходният кодпрекомпилира изходният код

Mono се включва и port системите на Mono се включва и port системите на повечето BSD-базирани ОСповечето BSD-базирани ОС

Някои ОС ще включват Mono като част от Някои ОС ще включват Mono като част от своите дистрибуции (напр. Gnoppix Linux)своите дистрибуции (напр. Gnoppix Linux)

Вече има графичен инсталатор за Вече има графичен инсталатор за LinuxLinux

Mono се инсталира бързо и лесноMono се инсталира бързо и лесно

Инсталиране и конфигуриране на Инсталиране и конфигуриране на Mono под Linux Mono под Linux

Инсталиране и конфигуриране на Инсталиране и конфигуриране на Mono под Linux Mono под Linux Инсталацията под Windows е лесна:Инсталацията под Windows е лесна:

Представлява обикновен Windows SetupПредставлява обикновен Windows Setup Включва GTK# и WebВключва GTK# и Web--сървър за ASP.NETсървър за ASP.NET Може да работи и под Може да работи и под cygwincygwin ( (cygwincygwin е е

емулация на Linux за Windows)емулация на Linux за Windows) Под Под cygwincygwin може да се прекомпилира може да се прекомпилира

сорс-кодът на Mono сорс-кодът на Mono

Под Fedora Linux може да се използва Под Fedora Linux може да се използва yum repositoryyum repository Използва се командата Използва се командата yumyum Избягва се “Dependency hell”Избягва се “Dependency hell”

Има неофициални Debian Mono пакетиИма неофициални Debian Mono пакети Сами решавате дали да предпочете тях или Сами решавате дали да предпочете тях или

прекомпилацияпрекомпилация Компилацията би трябвало да протича без Компилацията би трябвало да протича без

проблемпроблем Извършва по стандартния начин:Извършва по стандартния начин:

Има и CVS, от който можете да Има и CVS, от който можете да изтеглите текущата версияизтеглите текущата версия

./configure && make && make install./configure && make && make install

Инсталиране и конфигуриране на Инсталиране и конфигуриране на Mono под Linux Mono под Linux

Компилаторът на Mono за C#Компилаторът на Mono за C# Самият компилатор е писан на C# и може Самият компилатор е писан на C# и може

да се самопрекомпилирада се самопрекомпилира Поддържа стандарта ECMA #334 за C# 1.0Поддържа стандарта ECMA #334 за C# 1.0

Работи се по компилатор за C# 2.0Работи се по компилатор за C# 2.0 Как се използва:Как се използва:

#mcs proba.cs proba.exe#mcs proba.cs proba.exe#mcs –-help#mcs –-help#man mcs#man mcs

Виртуалната машина на MonoВиртуалната машина на Mono 32-битов JIT (Just-In-Time compiler)32-битов JIT (Just-In-Time compiler)

Поддържа: Linux/Поддържа: Linux/xx86, Linux/PPC, 86, Linux/PPC, Solaris/SPARC S390 и MacOS XSolaris/SPARC S390 и MacOS X

64-битов JIT64-битов JIT Поддържа: Linux/x86-64, Поддържа: Linux/x86-64,

Solaris/SPARCv9Solaris/SPARCv9 Има го само в Mono 1.1Има го само в Mono 1.1

Интерпретаторът Интерпретаторът mintmint работи на следните работи на следните платформи:платформи: Linux/86, Linux/PPC, S390, StrongARM, Linux/86, Linux/PPC, S390, StrongARM,

SPARC, HPPA, SPARC v9SPARC, HPPA, SPARC v9

Виртуалната машинаВиртуалната машина на на MonoMono --optimize--optimize – активира – активира

оптимизациитеоптимизациите --aot--aot

Ahead-of-time – предварително Ahead-of-time – предварително компилиране (като компилиране (като ngenngen в MS .NET) в MS .NET)

Цялата програма минава през JIT и Цялата програма минава през JIT и тогава се стартиратогава се стартира

Има спор кое е по-бързо: managed Има спор кое е по-бързо: managed или native кодили native код

Има GAC кеш, Remoting и планове Има GAC кеш, Remoting и планове за поддръжка на COM и XPCOMза поддръжка на COM и XPCOM

Графични интерфейсиГрафични интерфейси (GUI) (GUI) DesktopDesktop приложенията не могат без тях приложенията не могат без тях Windows Forms не се поддържа Windows Forms не се поддържа

напълнонапълно Поддържат се други интерфейсиПоддържат се други интерфейси Целта им е:Целта им е:

Всяко графично приложение да Всяко графично приложение да изглежда по съответният за всяка една изглежда по съответният за всяка една ОС начинОС начин

Това го няма в JavaТова го няма в Java AWT/SwingAWT/Swing

Windows FormsWindows Forms под под MonoMono В началото се работеше по модела: В началото се работеше по модела: winewine

+ + System.DrawingSystem.Drawing ( (winewine изпълнява изпълнява Windows приложения под Linux) Windows приложения под Linux)

В момента се работи по native В момента се работи по native имплементация без имплементация без winewine 100% поддръжка на Windows Forms се 100% поддръжка на Windows Forms се

очаква в края на 2005очаква в края на 2005 Има забавяне в разработката поради Има забавяне в разработката поради

преминаването към втория моделпреминаването към втория модел Трябва да се инсталират: Трябва да се инсталират: libgdipluslibgdiplus и и

графичната библиотека графичната библиотека CairoCairo

GTK#GTK# Под Linux има стандартна библиотека Под Linux има стандартна библиотека

(API) за изграждане на графичен (API) за изграждане на графичен потребителски интерфейс – GTKпотребителски интерфейс – GTK

GTK може да се ползва от MonoGTK може да се ползва от Mono GTK# е C# обвивката на GTKGTK# е C# обвивката на GTK С GTK# можете да разработвате С GTK# можете да разработвате

графични приложения, ползващи GTK графични приложения, ползващи GTK

GTK има имплементация иGTK има имплементация и за Windows (напр. за Windows (напр. GAIMGAIM за за Windows) Windows)

GNOME#GNOME# GNOME# са класове за работа с GNOME GNOME# са класове за работа с GNOME

API-тоAPI-то По-удобни от GTK#По-удобни от GTK# Не са портнати за WindowsНе са портнати за Windows

Приложенията с графичен интерфейс, Приложенията с графичен интерфейс, писани за Mono, са трудно преносимиписани за Mono, са трудно преносими Често се налага търсене на библиотекиЧесто се налага търсене на библиотеки Трудно е за обикновенияТрудно е за обикновения

потребителпотребител В бъдеще такива проблемиВ бъдеще такива проблеми

ще намаляватще намаляват

COCOA#COCOA# Библиотека с класове за native lookБиблиотека с класове за native look

and felland fell под MacOS X под MacOS X

GLADE#GLADE# Библиотека за Библиотека за GUIGUI за за MonoMono Разделя графичния интерфейс от Разделя графичния интерфейс от

презентационната логикапрезентационната логика Графичният интерфейс се описва в Графичният интерфейс се описва в

отделен XML файл, а не в отделен XML файл, а не в C#C# кода кода

GLADE – примерен XML файлGLADE – примерен XML файл<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*--<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->><!DOCTYPE glade-interface SYSTEM <!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">"http://glade.gnome.org/glade-2.0.dtd"><glade-interface><glade-interface><widget class="GtkWindow" id="window1"><widget class="GtkWindow" id="window1"> <property name="visible">True</property><property name="visible">True</property> <property name="title" translatable="yes">win2</property><property name="title" translatable="yes">win2</property> <property name="type">GTK_WINDOW_TOPLEVEL</property><property name="type">GTK_WINDOW_TOPLEVEL</property> ...... <child><child> <widget class="GtkButton" id="button1"><widget class="GtkButton" id="button1"> <property name="border_width">10</property><property name="border_width">10</property> <property name="visible">True</property><property name="visible">True</property> <property name="label<property name="label"">>button1button1</property></property> ...... </widget></widget> </child></child></widget></widget></glade-interface></glade-interface>

GLADEGLADE Примерът задава една форма, един бутон Примерът задава една форма, един бутон

и параметрите ими параметрите им Подобен начин за създаване на графични Подобен начин за създаване на графични

интерфейси се очаква и в Avalon на интерфейси се очаква и в Avalon на Microsoft в следващата версия на Windows Microsoft в следващата версия на Windows – Longhorn– Longhorn

Позволява се динамично зарежданеПозволява се динамично зареждане Можем да променяме формите без Можем да променяме формите без

прекомпилация и програмистки уменияпрекомпилация и програмистки умения Различни платформи/програмни езици Различни платформи/програмни езици

могат да използват един и същ XML файл могат да използват един и същ XML файл за генериране на графичен интерфейсза генериране на графичен интерфейс

Glade Interface DesignerGlade Interface Designer Ползва се стандартният подход:Ползва се стандартният подход:

Лента с контролиЛента с контроли Форма със свойствата на контролатаФорма със свойствата на контролата

Дизайнерът автоматично генерира Дизайнерът автоматично генерира XML файл за създадената формаXML файл за създадената форма

Съответстващият C# кодСъответстващият C# кодusing System;using System;using Gtk;using Gtk;using Glade;using Glade;using GtkSharp;using GtkSharp;

public class GladeTestpublic class GladeTest{{ [Glade.Widget] Button button1;[Glade.Widget] Button button1;

public GladeTest(string[] args)public GladeTest(string[] args) {{ Application.Init();Application.Init(); Glade.XML gxml = new Glade.XML(Glade.XML gxml = new Glade.XML( "file.glade", "window2", null);"file.glade", "window2", null); gxml.Autoconnect(this);gxml.Autoconnect(this); button1.BorderWidth = 10;button1.BorderWidth = 10; Application.Run();Application.Run(); }} (примерът продължава)(примерът продължава)

Съответстващият C# кодСъответстващият C# код /* Connect the Signals defined in Glade *//* Connect the Signals defined in Glade */ public void OnWindowDeleteEvent(object o,public void OnWindowDeleteEvent(object o, DeleteEventArgs args)DeleteEventArgs args) {{ Application.Quit();Application.Quit(); args.RetVal = true;args.RetVal = true; }}

public void OnButton1Clicked(System.Object obj,public void OnButton1Clicked(System.Object obj, EventArgs e)EventArgs e) {{ Console.WriteLine("Button 1 clicked");Console.WriteLine("Button 1 clicked"); }}

public static void Main(string[] args)public static void Main(string[] args) {{ new GladeTest(args);new GladeTest(args); }}}}

Monodoc e браузър заMonodoc e браузър за документацията на Mono и включва:документацията на Mono и включва: Описание на езика C#Описание на езика C# Mono handbook – наръчник на Mono Mono handbook – наръчник на Mono

разработчика разработчика Документация за средите за разработкаДокументация за средите за разработка GTK# и GNOME# GTK# и GNOME# СамоучителиСамоучители

Прилича на браузърПрилича на браузърaa на на MSDN LibraryMSDN Library

Документацията MonodocДокументацията Monodoc

Средата MonoDevelopСредата MonoDevelop Сайт: www.monodevelop.comСайт: www.monodevelop.com Monodevelop e средата за разработка, която Monodevelop e средата за разработка, която

се пише от програмистите на Monoсе пише от програмистите на Mono Представлява порт на SharpDevelop (което Представлява порт на SharpDevelop (което

е среда за разработка за .NET под Windows)е среда за разработка за .NET под Windows) Настоящата версия е 0.5.1Настоящата версия е 0.5.1 Включва следните възможности:Включва следните възможности:

Вградена документация и дебъгерВградена документация и дебъгер Поддръжка на Java, NEMERALE (друг Поддръжка на Java, NEMERALE (друг

език за .NET) и HTMLезик за .NET) и HTML Отваря Visual Studio Отваря Visual Studio .NET.NET проекти проекти

Все още има бъговеВсе още има бъгове

Средата за разработка EclipseСредата за разработка EclipseEclipse e свободна среда за разработка (IDE)Eclipse e свободна среда за разработка (IDE)Разработен е основно от IBM, с отворен кодРазработен е основно от IBM, с отворен кодПисан е на JavaПисан е на JavaПолзва се главно от Java разработчициПолзва се главно от Java разработчициEclipse може да използва pluginEclipse може да използва pluginss

Един plugin добавя някаква функционалност:Един plugin добавя някаква функционалност: поддръжка на даден програмен езикподдръжка на даден програмен език поддържане на шаблони за проектиподдържане на шаблони за проекти code autocompletecode autocomplete много други много други

Eclipse има plugin за C#Eclipse има plugin за C# (малко стар)(малко стар)

ADO.NETADO.NET под под MonoMono Mono поддържа следните Mono поддържа следните ADO.NET ADO.NET Data Data

PProviders:roviders: DB – MySQLDB – MySQL DB – IBM DB2DB – IBM DB2 DB – Firebird / InterbaseDB – Firebird / Interbase DB – MS SQL ServerDB – MS SQL Server DB – ODBCDB – ODBC DB – OLE DBDB – OLE DB DB – OracleDB – Oracle DB – SybaseDB – Sybase DB – SQL LiteDB – SQL Lite DB – PostgreSQLDB – PostgreSQL

Използваме MySql Data Provider "ByteFX"Използваме MySql Data Provider "ByteFX" Този provider го има и под Windows Този provider го има и под Windows

(http://www.bytefx.com/)(http://www.bytefx.com/) Създаваме таблица с PHPMyAdmin на Създаваме таблица с PHPMyAdmin на

сървъра сървъра debian.fmi.uni-sofia.bgdebian.fmi.uni-sofia.bg::

Създаваме просто приложение за достъп Създаваме просто приложение за достъп до таблицатадо таблицата

C# кода е показан на следващия слайд C# кода е показан на следващия слайд ((DatabaseDemo.csDatabaseDemo.cs))

CREATE TABLE employee(CREATE TABLE employee( firstname varchar(32),firstname varchar(32), lastname varchar(32));lastname varchar(32));

Mono Mono и ADO.NET – примери ADO.NET – пример

using System;using System;using System.Data;using System.Data;using ByteFX.Data.MySqlClient;using ByteFX.Data.MySqlClient; public class DatabaseDemopublic class DatabaseDemo{{ const string CONNECTION_STRING = const string CONNECTION_STRING = "Server=debian.fmi.uni-sofia.bg;" +"Server=debian.fmi.uni-sofia.bg;" + "User ID=toncho;" +"User ID=toncho;" + "Password=T0n40;" +"Password=T0n40;" + "Database=toncho;";"Database=toncho;";

public static void Main(string[] args)public static void Main(string[] args) {{ IDbConnection dbCon = IDbConnection dbCon = new MySqlConnection(CONNECTION_STRING);new MySqlConnection(CONNECTION_STRING); dbCon.Open();dbCon.Open(); using (dbCon)using (dbCon) {{ ((примерът продължавапримерът продължава))

Mono Mono и ADO.NET – примери ADO.NET – пример

IDbCommand dbCmd = dbCon.CreateCommand();IDbCommand dbCmd = dbCon.CreateCommand(); dbCmd.CommandText = "SELECT dbCmd.CommandText = "SELECT ** FROM employee"; FROM employee";

IDataReader reader = dbCmd.ExecuteReader();IDataReader reader = dbCmd.ExecuteReader(); using (reader)using (reader) {{ while(reader.Read()) while(reader.Read()) {{ string firstName = string firstName = (string) reader["firstname"];(string) reader["firstname"]; string lastName =string lastName = (string) reader["lastname"];(string) reader["lastname"]; Console.WriteLine("Name: {0} {1}",Console.WriteLine("Name: {0} {1}", firstName, lastName);firstName, lastName); }} }} }} }}}}

Mono Mono и ADO.NET – примери ADO.NET – пример

Java под .NET CLRJava под .NET CLR Сайт на проекта: www.ikvm.netСайт на проекта: www.ikvm.net Има 2 основни цели:Има 2 основни цели:

Java класове да могат да се изпълняват Java класове да могат да се изпълняват под виртуалната машина на Monoпод виртуалната машина на Mono

Java класове/програми да бъдат Java класове/програми да бъдат транслирани от Java byte код до .NET ILтранслирани от Java byte код до .NET IL

Огромната база от код написан на Java ще Огромната база от код написан на Java ще може да бъде преизползван под .NETможе да бъде преизползван под .NET

Пример:Пример: Eclipse (Java програма) работи под MonoEclipse (Java програма) работи под Mono ОС е WindowsОС е Windows Mono работи под cygwinMono работи под cygwin

ASP.NET под ASP.NET под MonoMono Има два начина за поддръжка на ASP.NETИма два начина за поддръжка на ASP.NET

mod_monomod_mono – модул към Apache – модул към Apache Apache използва модулна архитектура и Apache използва модулна архитектура и

има модули за Perl и PHP напримерима модули за Perl и PHP например http://www.gotmono.net/documentation/http://www.gotmono.net/documentation/

mod-mono-howto.htmlmod-mono-howto.html XSPXSP – Web сървър писан на C# – Web сървър писан на C#

Обслужва ASP.NET заявкитеОбслужва ASP.NET заявките Няма нужда от ApacheНяма нужда от Apache Производителността на XSP вече е Производителността на XSP вече е

добрадобра Поддържат се доста ASP.NET контроли, но Поддържат се доста ASP.NET контроли, но

още има какво да се довършваоще има какво да се довършва Прегледайте документация и форумиПрегледайте документация и форуми

Модулът Модулът mmod_monood_mono След като се инсталира След като се инсталира mod_nonomod_nono в в

httpd.confhttpd.conf се правят следните промени: се правят следните промени:

Рестартира се Apache и за тест се ползва Рестартира се Apache и за тест се ползва следната страница: следната страница: http://your-server/demo/index.aspxhttp://your-server/demo/index.aspx

LoadModule mono_module modules/mod_mono.so LoadModule mono_module modules/mod_mono.so ... ... Alias /demo "/usr/share/doc/xsp/test" Alias /demo "/usr/share/doc/xsp/test" MonoApplications MonoApplications "/demo:/usr/share/doc/xsp/test" "/demo:/usr/share/doc/xsp/test" ......<Directory /usr/share/doc/xsp/test><Directory /usr/share/doc/xsp/test> SetHandler monoSetHandler mono <IfModule mod_dir.c> DirectoryIndex <IfModule mod_dir.c> DirectoryIndex index.aspx </IfModule>index.aspx </IfModule></Directory></Directory>

Допълнителни класове в Допълнителни класове в MonoMono CairoCairo

Графична библиотекаГрафична библиотека Commons.XmlCommons.Xml Commons.Xml.RelaxngCommons.Xml.Relaxng Commons.Xml.Relaxng.RncCommons.Xml.Relaxng.Rnc Mono.MathMono.Math

BigIntegerBigInteger Mono.Math.PrimeMono.Math.Prime

Прости числаПрости числа Mono.Math.Prime.GeneratorMono.Math.Prime.Generator

Генериране на прости числаГенериране на прости числа

Mono.PosixMono.Posix Системни извикванияСистемни извиквания

Mono.SecurityMono.Security Mono.Security.AuthenticodeMono.Security.Authenticode Mono.Security.CryptographyMono.Security.Cryptography

MDMD4 managed, 4 managed, MDMD5 unmanaged, RSA 5 unmanaged, RSA managed, SHA1 unmanagedmanaged, SHA1 unmanaged

Mono.Security.Protocol.NtlmMono.Security.Protocol.Ntlm Mono.Security.Protocol.TlsMono.Security.Protocol.Tls

Работа със SSL (Secure Socket Layer)Работа със SSL (Secure Socket Layer)

Допълнителни класове в Допълнителни класове в MonoMono

Допълнителни класове в Допълнителни класове в MonoMono Mono.Security.X509Mono.Security.X509

Работа с цифрови сертификатиРабота с цифрови сертификати Mono.Security.X509.ExtensionsMono.Security.X509.Extensions Mono.XMLMono.XML Mono класовете прибавят понякога и Mono класовете прибавят понякога и

нови методи/свойстванови методи/свойства Разширяват стандартните класове на .NETРазширяват стандартните класове на .NET

Mono е свободна имплементация!Mono е свободна имплементация! Всеки може да пробва да прибави нещо Всеки може да пробва да прибави нещо

полезно (напр. в Mono.Math)полезно (напр. в Mono.Math) Ако бъде одобрено, ще се разпространява Ако бъде одобрено, ще се разпространява

с целия Mono Frameworkс целия Mono Framework

Mono във ФМИMono във ФМИ на СУ на СУ На На http://debian.fmi.uni-sofia.bg/manual/http://debian.fmi.uni-sofia.bg/manual/ има има

интересни и образователни материалиинтересни и образователни материали Mono е инсталирано на Debian.FMIMono е инсталирано на Debian.FMI

Можете да се логнете и да пробвате Можете да се логнете и да пробвате компилатора и виртуалната машинакомпилатора и виртуалната машина

Версията е доста стара (0.31 . . . при Версията е доста стара (0.31 . . . при условие, че има 1.0.4 stable)условие, че има 1.0.4 stable)

Нова версия ще бъде инсталирана само Нова версия ще бъде инсталирана само при проявен интереспри проявен интерес

Порталът OpenFMIПорталът OpenFMI Стартира проектът OpenFMIСтартира проектът OpenFMI Адрес: http://openfmi.netАдрес: http://openfmi.net Хостват се проекти с отворен кодХостват се проекти с отворен код Ако има желаещи там може да се Ако има желаещи там може да се

инсталира Monoинсталира Mono

Mono, ASP.NET, debian.fmi – Mono, ASP.NET, debian.fmi – примерпример

dir1dir1 e виртуална директория в сървъра e виртуална директория в сървъра dir2dir2 e директорията, където се намират e директорията, където се намират

вашите вашите ..aspxaspx файлове файлове dir3dir3 e съответстващата на виртуалната e съответстващата на виртуалната

директория физическа директориядиректория физическа директория

# mono /usr/local/bin/xsp.exe –root# mono /usr/local/bin/xsp.exe –root /dir1 /dir1 --applications /dir2:/dir3--applications /dir2:/dir3

# mono /usr/local/bin/xsp.exe --root # mono /usr/local/bin/xsp.exe --root /usr/local/share/doc/xsp/test//usr/local/share/doc/xsp/test/ --applications --applications //::/usr/local/share/doc/xsp/test//usr/local/share/doc/xsp/test/

Mono, ASP.NET, debian.fmi Mono, ASP.NET, debian.fmi примерпример

В Mozzila/Firefox написваме: В Mozzila/Firefox написваме: http://debian:8080/index.aspxhttp://debian:8080/index.aspx

Има разлика между малки големи букви и Има разлика между малки големи букви и трябва да сме във ФМИ за този примертрябва да сме във ФМИ за този пример

Извън факултета се използва тунелиране Извън факултета се използва тунелиране през SSHпрез SSH

Mono софтуерMono софтуер Приложни програми написани с Mono Приложни програми написани с Mono

Framework-aFramework-a www.gnomefiles.orgwww.gnomefiles.org

Използва се графичен интерфейс GTK Използва се графичен интерфейс GTK (има GTK# за Windows)(има GTK# за Windows) Често използват и други библиотеки, някои Често използват и други библиотеки, някои

от които не са пренесени към Windowsот които не са пренесени към Windows Като резултат много трудно биха тръгнали Като резултат много трудно биха тръгнали

под Mono за Windowsпод Mono за Windows Galaxium – MSN комуникаторGalaxium – MSN комуникатор MyBudget – счетоводен софтуерMyBudget – счетоводен софтуер WoodPusher – игра на шахWoodPusher – игра на шах CDCollect – каталогизиране на дисковеCDCollect – каталогизиране на дискове

MonoMono – полезни връзки – полезни връзки Mono – официален сайт: www.go-mono.orgMono – официален сайт: www.go-mono.org Средата MonoDevelop: Средата MonoDevelop:

www.monodevelop.comwww.monodevelop.com Mono community: http://www.gotmono.netMono community: http://www.gotmono.net Дискусии за .NET в OpenFMI:Дискусии за .NET в OpenFMI: http://explore.openfmi.net/computers/http://explore.openfmi.net/computers/

programming/dotNET/programming/dotNET/ След регистрация пратете mail, за да След регистрация пратете mail, за да

получите праваполучите права Zamples – пробвайте Mono online: Zamples – пробвайте Mono online:

http://zamples.com/JspExplorer/samples/cshhttp://zamples.com/JspExplorer/samples/csharp.jsp arp.jsp

MONO – свободна MONO – свободна имплементация имплементация

на .NET на .NET FrameworkFramework

Въпроси?Въпроси?

top related