Проект "MonoDevelop Add-in для PascalABC.NET": различия между версиями

Материал из Вики проекта PascalABC.NET
Перейти к навигацииПерейти к поиску
Нет описания правки
Нет описания правки
Строка 23: Строка 23:
'''Add-in:''' Набор файлов, которые регистрируют новые узлы в одной или нескольких точек расширения, определяются add-in hosts. Add-in может дополнять add-in host, и может реализовываться разными add-ins.  
'''Add-in:''' Набор файлов, которые регистрируют новые узлы в одной или нескольких точек расширения, определяются add-in hosts. Add-in может дополнять add-in host, и может реализовываться разными add-ins.  


Mono.Addins also defines an Add-in Description Model, which is used by add-ins and add-in hosts to declare all extensibility information. Add-in descriptions can be represented either using an XML manifest, or by applying custom attributes to assemblies and types.  
Mono.Addins определяется оделью описания Add-in, с использованием add-ins and add-in hosts для описания индормации расширения. Add-in может быть представлен с использованием  XML манифеста(объявления), или с применением атрибутов и типов.  


Finally, Mono.Addins provides an API (implemented in Mono.Addins.dll) which can be used at run-time to query and handle add-in extensions  
Finally, Mono.Addins provides an API (implemented in Mono.Addins.dll) which can be used at run-time to query and handle add-in extensions  

Версия от 13:45, 15 ноября 2009

Mono.Addins Reference Manual

Введение

Mono.Addins является основой для создания расширяемых приложений, а также для создания библиотек, расширяющих эти приложения(аналог "плагинов").

Эта структура вытекает из использования MonoDevelop, путем добавления в MonoDevelop расширяемых приложений (extensible applications), хотя MonoDevelop был полностью переписан и усовершенствован, существует множество способов сделать его более общим и простым в использовании. Добавление в программу MonoDevelop "плагинов" (Mono.Addins) реализованно намного удобней, чем по сравнению с инструментом SharpDevelop, который реализован на основе идей от Eclipse add-in engine (добавления "плагинов" в системе Eclipse).

Mono.Addins был разработан, чтобы быть полезным для широкого спектра приложений: от простых приложений с малыми потребностями расширения(дополнения к коду) до сложных приложений (таких как сам MonoDevelop), которые нуждаются в поддержке: в больших дополнениях в структурах программы.

Этот документ включает в себя подробное описание всех функций, которые предоставляет Mono.Addins. Если у Вас есть вопросы или предложения о Mono.Addins, подпишитесь на рассылку разработчиков Mono.Addins (http://groups.google.com/group/mono-addins).

Основы Mono.Addins

Модель расширения Mono.Addins базируется на четырех концепциях:

Add-in host: приложение или библиотека, которые могут быть расширены с помощью add-ins. Расширение возможностей определяется посредством точек расширения(extension points).

Extension point: пространство, гед add-ins могут регистрировать extension nodes(узлы расширекния) для расширения функциональности. Extension points определяются путем использования extension paths(путей расширения).

Extension node: Атрибут оформления элемента, описывающий расширения. Extension nodes(узлы расширения) типизированные. extension points могут объявить, какие типы extension nodes они принимают.

Add-in: Набор файлов, которые регистрируют новые узлы в одной или нескольких точек расширения, определяются add-in hosts. Add-in может дополнять add-in host, и может реализовываться разными add-ins.

Mono.Addins определяется оделью описания Add-in, с использованием add-ins and add-in hosts для описания индормации расширения. Add-in может быть представлен с использованием XML манифеста(объявления), или с применением атрибутов и типов.

Finally, Mono.Addins provides an API (implemented in Mono.Addins.dll) which can be used at run-time to query and handle add-in extensions

In order to clarify all those concepts, let's see a very simple example of an application based on Mono.Addins.

A simple example

The idea is to implement a Text Editor which can be extended by add-ins. The following diagram shows the extension points that the editor will offer, and how they are extended by several add-ins:

Subsequent chapters of this document will explain how to use Mono.Addins to provide different kinds of extensibility features to the editor. Now let's start with the skeleton of the application and a very simple extension.