Регистрация    Вход    Форум    Поиск    FAQ

  •  Новости
  • Beeline + Twitter = чирикай через SMS!

    Beeline + Twitter = чирикай через SMS! На первой картинке обозначены команды, при помощи которых через SMS Вы сможете кого-либо зафолловить или же отписаться, ретвитнуть чей-либо пост или же написать личное сообщение.

    Open Graph Protocol. От создателей Facebook

    Open Graph Protocol. От создателей Facebook Разбираясь с Facebook API, случайно наткнулся на другую интересную разработку от этих людей.

    Глобальное ускорение Wordpress

    Глобальное ускорение Wordpress Не считая очевидных решений типа отключения некоторых плагинов и перехода на тему попроще, я вижу 2 пути для оптимизации: кэширование и сжатие траффика.




  •  Часы


  •  Поиск

Optimaze » Программирование » Microsoft MEF: новый подход к IoC




Microsoft MEF: новый подход к IoC

  1. Проблемы, решаемые MEF (с Codeplex сайта)
  2. Основные категории MEF
  3. Выводы


MEF (Managed Extensibility Framework) служит для построения расширяемых приложений. Но под этими “составными частями” не следует понимать  полноценные плагины (как, например, в Visual Studio), потому что MEF не поддерживает загрузку в разных доменах приложения и версионность.

 

Проблемы, решаемые MEF (с Codeplex сайта)

MEF предоставляет стандартный способ для приложения использовать внешние расширения (extensions). При этом само приложение может регистрировать себя в качестве расширения для использования другими сервисами. Расширение, по своей природе, может быть легко повторно использовано в другом приложении или жестко привязано к существующему.

Расширения, в свою очередь могут зависеть друг от друга и MEF берет на себя обязанность следить, чтобы они были связаны в правильном порядке. [А вот это уже чистой воды IoC!].

  • MEF предлагает несколько способов обнаружения расширений для загрузки.
  • MEF поддерживает аннотирование расширений метаданными, которые обеспечивают поиск и фильтрацию расширений.

Основные категории MEF

ComposablePart  Атомарная сущность управляемая MEF`ом. Центральная часть фреймворка. Обычно представляется экземпляром определенного класса. Каждая часть (ComposablePart) может:

  • экспортировать фреймворку себя и свои свойства или методы;
  • импортировать зависимости из фреймворка

Catalog Каталог хранит информацию о способе получения списка модуле. Например, можно найти модули внутри сборки, во всех сборках внутри определенной папки либо задать вручную

Composition Container   Контейнер - это объект, выполняющий основные действия по связыванию модулей: организация импорта и экспорта, поиск модулей. Для получения модулей контейнер использует каталог.

 

Выводы

Таким образом, MEF организует интересную разновидность IoC контейнера. Если в обычном контейнере (основанном на декларативном описании зависимостей в XML) нужно строго указывать зависимости нужные каждому объекту, то MEF позволяет просто указать, что определенной поле или конструктор должны быть заполнены фреймворком, не определяя жестко тип зависимости. Получается довольно-таки интересно.



Рейтинг: 4.9/5, основан на 25 голосах.


Нравится



Вернутся назад


   

Вам будет интересно:

WordPress – CSS в постах

Так как через wp-admin дописать CSS в шапку поста невозможно, приходится извращатся.

Атрибуты и аннотации: метаданные против чистоты кода

Атрибуты (Attributes) в языке C# - это удобный способ добавления метаданных к классу, свойству или методу.

CSS3 – не тенями едиными

CSS эволюциюнирует с огромной скоростью, и уже грозит приставкой в виде цифры “3?.

Проект CellularBasic

Проект CellularBasic предоставляет им возможность писать и выполнять Basic программы на J2ME CLCD 1. 1/MIDP2. 0 совместимых устройствах.



  •  Публикации


8 методов раскрутки своего форума с нуля

8 методов раскрутки своего форума с нуля Итак, у вас имеется свой собственный форум, но его никто не посещает? Мы готовы помочь вам справиться с этой нелегкой проблемой.

Как привлекать посетителей на проект

Как привлекать посетителей на проект Данная статья в основном рассчитана на тех, кто самостоятельно занимается продвижением своего проекта.

Про MySQL, серверы и PayPal

Про MySQL, серверы и PayPal Проклял все настройки кодировок, проклял DirectAdmin и еле-еле нашел то место где располагается и задается общий пароль для ...

Реклама в Твиттере. Как подать свой продукт

Реклама в Твиттере. Как подать свой продукт Твиттер уже давно стал из нового web 2. 0 сервиса рекламной площадкой с огромным количеством потенциальных пользователей ...

Пока блог на локалхосте

Пока блог на локалхосте Самое время кратко описать, чем нам придется заниматься. Прежде всего нужно понять, что блог ты будешь делать для получения ...

Авторитет блоггера притягивает

Авторитет блоггера притягивает Долго не знал с чего начать данную статью. Статья что-то типа мыслей вслух и философии.