Сделай Сам Свою Работу на 5

Общеязыковая среда и общеязыковая спецификация





Mono

Mono - платформа разработки с открытыми исходными кодами, основанная на Microsoft .NET Framework. Mono позволяет разработчикам, имеющим дело с платформами UNIX, Linux, FreeBSD, Mac OS X, Solaris и Windows, создавать и развертывать кроссплатформенные приложения стандарта .NET Проект Mono спонсируется компанией Novell. Mono включает в себя каксредства разработки, так и инфраструктуру, необходимую для исполнения клиентских и серверных .NET-приложений. Mono позиционируется как "средство будущего для разработки Linux-приложений".

Реализация .NET в Mono основана на стандартах ECMA и включает среди прочего компилятор C#, общеязыковую исполняющую среду (Common Language Runtime) и множество библиотек. Библиотеки представляют собой библиотеки Microsoft .NET (в том числе ADO .NET, System.Windows.Forms и ASP .NET), совместимые с конкретными платформами, собственные библиотеки Mono и библиотеки классов сторонних разработчиков. В состав Mono входит Gtk# - множество расширений .NET для инструментария Gtk+ и различные библиотеки GNOME. Эти библиотеки позволяют разрабатывать полноценные GNOME-приложения с использованием Mono. Кроме того, библиотеки поддерживают разработку пользовательских интерфейсов с использованием GLADE. Проект Mono также включает интегрированную среду разработки (IDE), визуальные средства отладки и редактирования.



Компоненты Mono

Mono состоит из трех групп компонент: 1) компоненты ядра; 2) стек разработки для Mono/Linux/GNOME; и 3) стек компонент Microsoft.

К компонентам ядра относятся компилятор C#, виртуальная машина и основные библиотеки классов. Эти компоненты основаны на стандартах Ecma-334 и Ecma-335. Таким образом, Mono предоставляет соответствующую стандартам бесплатную версию виртуальной машины общеязыковой среды (CLI) с открытым исходным кодом.

Стек разработки для Mono/Linux/GNOME предоставляет инструменты для разработки приложений с использованием библиотек GNOME и других бесплатных библиотек с открытым исходным кодом. К ним относится: Gtk# для разработки графического интерфейса пользователя (GUI), библиотеки Mozilla для работы с системой рендеринга Gecko, библиотеки Unix, библиотеки для работы с базами данных, стек компонент безопасности и язык описания XML-схем RelaxNG. Gtk# позволяет приложениям Mono интегрироваться в GNOME подобно обычным Linux-приложениям. Библиотеки работы с базами данных позволяют соединяться с MySQL, SQLite, PostgreSQL, Firebird, Open Database Connectivity (ODBC), Microsoft SQL Server (MSSQL), Oracle, объектно-реляционными базами данных db4o и многими другими.



Стек компонент Microsoft предоставляет средства переноса приложений для Windows .NET на Linux-платформу К этим компонентам относятся ADO .NET, ASP .NET, Windows.Forms и другие.

Архитектура среды Mono


Рис. 2.1.Общая структура Mono

Библиотека классов

Библиотека классов предоставляет самые разные возможности для разработки приложений. Большинство библиотек написано на C#, но могут быть использованы приложением на любом .NET-совместимом языке. Библиотеки классов содержат пространства имен логически связных классов. Библиотеки представляют собой сборки (assemblies).

Сборки и пространства имен

Пространства имен предоставляют механизм логического объединения близких по назначению классов в иерархическую структуру. Таким образом решается часть вопросов с совпадением имен классов (например, может существовать два класса с именем Connector - один в пространстве имен для работы с сетями, а другой в пространстве имен для работы с базами данных). На вершине иерархии находятся несколько основных пространств имен - например, пространство имен Accessibility, Windows или System; эти пространства содержат вложенные подпространства - например, System содержит пространства System.IO, System.Net и другие. Можно создавать свои собственные пространства имен.

Сборки представляют собой особые библиотеки классов. Сборка - набор из одного или нескольких файлов с определениями типов и файлами ресурсов. Один из файлов сборки выбирают для хранения ее декларации. Декларация - это набор таблиц метаданных, которые содержат различную информацию о сборке, в том числе имена составляющих ее файлов, региональные стандарты сборки, версию, издателя сборки, общедоступные экспортируемые типы. Сборки позволяют упаковать типы, сделать их доступными, обеспечить безопасность и управление версиями. Сборка позволяет разграничить логическое и физическое понятие повторно используемых типов. Сборка может содержать типы, реализованные на различных языках программирования. Сборки - не особенность Mono, они являются частью инициативы .NET. Примерами сборок являются mscorlib.dll, System.dll, System.Data.dll и Accessibility.dll. Пространства имен могут быть реализованы в нескольких сборках, состоящих из нескольких файлов.



Общеязыковая среда и общеязыковая спецификация

Общеязыковая среда (The Common Language Infrastructure - CLI) реализована в виде исполняемого файла Mono. Среда используется для исполнения скомпилированных .NET-приложений. Общеязыковая среда определена в стандарте ECMA-335.

Общеязыковая спецификация (The Common Language Specification - CLS) определена в главе 6 стандарта ECMA-335 и описывает интерфейсы CLI. Компилятор Mono генерирует образ, соответствующий CLS. Образ содержит код на промежуточном языке (the Common Intermediate Language). Исполняющая среда Mono исполняет этот образ.

Just-in-time компиляция

Just-in-time compilation (JIT) - компиляция по требованию. Такой вариант компиляции позволяет компилировать методы и другие элементы программы именно в тот момент, когда они вызываются приложением. Исполняющая среда Mono содержит just-in-time компилятор для следующих архитектур: x86, SPARC, PowerPC, ARM, S390 (32-битная и 64-битная версии), x86-64, IA64 и SPARC-64. Среда выполняет just-in-time компиляцию в машинный код и кэширует этот код на время исполнения приложения. Также можно выполнить предварительную компиляцию и кэширование части кода до исполнения.

 








Не нашли, что искали? Воспользуйтесь поиском по сайту:



©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.