ef4b1a0f53897b4e608fec554513b899.ppt
- Количество слайдов: 62
Програмиране за. NET Framework http: //www. nakov. com/dotnet-project/ MONO – свободна имплементация на. NET Framework Антон Андреев Факултет по Математика и Информатика на СУ "Св. Климент Охридски"
За презентацията u u Целта на настоящата презентация е ви запознае с инициативата MONO Необходими знания: v v u Елементарни познания по Линукс Базови познания за езика C# За настоящата изготвянето на презентация е използван свободен софтуер v Open. Office. org
Съдържание u u Значение на не Microsoft имплементациите на. NET Проектът Mono v v v u Статус на проекта Поддържани операционни системи Инсталиране и конфигуриране на Mono под Linux Компилаторът на C# Виртуалната машина Графични интерфейси в Mono v Windows Forms
Съдържание (2) u Графични интерфейси в Mono v v u u Документацията Monodoc Среди за разработка v v u GTK# Gnome# Cococa# за MAC OS Glade# Mono. Develop Eclipse ADO. NET под Mono
Съдържание (3) u u Java за под. NET CLR ASP. NET под Mono v v u u Модулът mod_mono Сървърът XSP Mono класове в Mono във ФМИ на СУ Mono софтуер Mono – полезни връзки
Не Microsoft имплементациите на. NET u u u Изцяло с отворен код Всеки може да участва в разработката Лесно прехвърляне на друга хардуерна платформа или операционна система Мощта на. NET може да направи други ОС като Linux и BSD по-привлекателни за разработчиците (стига с тези с C / C++ : ) Намалява се монопола на Microsoft v v Появява се конкуренция В следствие се подобрява на качеството на продуктите
Имплементации на. NET u Microsoft. NET Framework v u Сайт: msdn. microsoft. com/netframework/ Dot. GNU Portable. NET v v v Сайт: http: //www. dotgnu. org/ Виртуална машина, assembler, disassembler Има компилатори за C и C# Java и VB. NET – в процес на разработка Работи се по цялостно ре-имплементиране на Windows Forms Възможно e GNU да прибавят към gcc и компилатор за C#, който генерира native код
Проектът Mono u www. go-mono. com u Зад проекта Mono стоят Ximian и Novell u Лицензионни проблеми с Microsoft
Статус на проекта Mono u u u Има версия 1. 0 и тя ре-имплементира. NET Framework 1. 1 Поддържа се C# компилатор VB. NET е в напреднал стадии, но все още е нестабилен Настоящата версия е 1. 05 stable и 1. 1. 3 unstable До средата на 2005 ще излезе Mono 1. 2. Ще включва следните новости: v v Поддръжка на Generics Обновен на C# компилатор
Статус на проекта Mono Нова версия на основните библиотеки v ASP. NET 2. 0 подобрения v Remoting подобрения от Whidbey v System. XML подобрения v Поддръжка за достъп до конзолата и серийните портове v Нови компилатори: VB. NET и JScript поддръжка v Имплементации на WSE 1/WSE 2 v System. Windows. Forms ще има по-солидна поддръжка Mono 2. 0 е планирано за 2006 v Ще поддържа напълно. NET Framework 2. 0 v u
Поддържани ОС u Достъпни са компилирани пакети за: v v v u u u Red. Hat Linux 9. 0 Su. Se Linux Fedora Linux Mac OS X Microsoft Windows За всички останали трябва да се прекомпилира изходният код Mono се включва и port системите на повечето BSD-базирани ОС Някои ОС ще включват Mono като част от своите дистрибуции (напр. Gnoppix Linux)
Инсталиране и конфигуриране на Mono под Linux u u Вече има графичен инсталатор за Linux Mono се инсталира бързо и лесно
Инсталиране и конфигуриране на Mono под Linux u Инсталацията под Windows е лесна: v v v u Представлява обикновен Windows Setup Включва GTK# и Web-сървър за ASP. NET Може да работи и под cygwin (cygwin е емулация на Linux за Windows) v Под cygwin може да се прекомпилира сорс-кодът на Mono Под Fedora Linux може да се използва yum repository v v Използва се командата yum Избягва се “Dependency hell”
Инсталиране и конфигуриране на Mono под Linux u Има неофициални Debian Mono пакети v v v Сами решавате дали да предпочете тях или прекомпилация Компилацията би трябвало да протича без проблем Извършва по стандартния начин: . /configure && make install u Има и CVS, от който можете да изтеглите текущата версия
Компилаторът на Mono за C# u u Самият компилатор е писан на C# и може да се самопрекомпилира Поддържа стандарта ECMA #334 за C# 1. 0 v u Работи се по компилатор за C# 2. 0 Как се използва: #mcs #man proba. cs proba. exe –-help mcs
Виртуалната машина на Mono u u u 32 -битов JIT (Just-In-Time compiler) v Поддържа: Linux/x 86, Linux/PPC, Solaris/SPARC S 390 и Mac. OS X 64 -битов JIT v Поддържа: Linux/x 86 -64, Solaris/SPARCv 9 v Има го само в Mono 1. 1 Интерпретаторът mint работи на следните платформи: v Linux/86, Linux/PPC, S 390, Strong. ARM, SPARC, HPPA, SPARC v 9
Виртуалната машина на Mono u u --optimize – активира оптимизациите --aot v v v u Ahead-of-time – предварително компилиране (като ngen в MS. NET) Цялата програма минава през JIT и тогава се стартира Има спор кое е по-бързо: managed или native код Има GAC кеш, Remoting и планове за поддръжка на COM и XPCOM
Графични интерфейси (GUI) u u Desktop приложенията не могат без тях Windows Forms не се поддържа напълно Поддържат се други интерфейси Целта им е: v v Всяко графично приложение да изглежда по съответният за всяка една ОС начин Това го няма в Java AWT/Swing
Windows Forms под Mono u u В началото се работеше по модела: wine + System. Drawing (wine изпълнява Windows приложения под Linux) В момента се работи по native имплементация без wine v 100% поддръжка на Windows Forms се очаква в края на 2005 Има забавяне в разработката поради преминаването към втория модел Трябва да се инсталират: libgdiplus и графичната библиотека Cairo
GTK# u u Под Linux има стандартна библиотека (API) за изграждане на графичен потребителски интерфейс – GTK може да се ползва от Mono v v u GTK# е C# обвивката на GTK С GTK# можете да разработвате графични приложения, ползващи GTK има имплементация и за Windows (напр. GAIM за Windows)
GNOME# u GNOME# са класове за работа с GNOME API-то v v u По-удобни от GTK# Не са портнати за Windows Приложенията с графичен интерфейс, писани за Mono, са трудно преносими v v v Често се налага търсене на библиотеки Трудно е за обикновения потребител В бъдеще такива проблеми ще намаляват
COCOA# u Библиотека с класове за native look and fell под Mac. OS X
GLADE# u u u Библиотека за GUI за Mono Разделя графичния интерфейс от презентационната логика Графичният интерфейс се описва в отделен XML файл, а не в C# кода