mono – свободна имплементация на .net framework
DESCRIPTION
Програмиране за .NET Framework. http://www.nakov.com/dotnet-project/. MONO – свободна имплементация на .NET Framework. Антон Андреев Факултет по Математика и Информатика на СУ "Св. Климент Охридски". За презентацията. Целта на настоящата презентация е ви запознае с инициативата MONO - PowerPoint PPT PresentationTRANSCRIPT
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
Въпроси?Въпроси?