Использование MEF (Managed Extensibility Framework) для разработки Asp.Net WebForms приложений
11 мин
MEF является хорошим фреймворком для написания расширяемых приложений. Он позволяет легко отделять реализацию от абстракции, добавлять/изменять/удалять реализации во время работы приложения (рекомпозиция), работать с множественными реализациями абстракций, разделять монолитные приложения на независимые части и пр.
Большинство примеров работы MEF являются консольными или WPF приложениями. Почему? Потому что в этом случае легче всего контролировать время жизни составных элементов (composable parts) т.к. сам MEF заботится об этом, а разработчик концентрируется на задачах примера.
Ситуация в веб приложениях кардинально отличается. Разработчики не ответственны за создание страниц, контролов и пр., т.к. Asp.net Runtime берёт всё на себя.
Таким образом, что бы реализовать поддержку MEF для веб приложений следует скомбинировать алгоритмы обоих инструментов.
Большинство примеров работы MEF являются консольными или WPF приложениями. Почему? Потому что в этом случае легче всего контролировать время жизни составных элементов (composable parts) т.к. сам MEF заботится об этом, а разработчик концентрируется на задачах примера.
Ситуация в веб приложениях кардинально отличается. Разработчики не ответственны за создание страниц, контролов и пр., т.к. Asp.net Runtime берёт всё на себя.
Таким образом, что бы реализовать поддержку MEF для веб приложений следует скомбинировать алгоритмы обоих инструментов.


Многие из вас наверняка слышали об “аукционе невиданной щедрости” от Microsoft, в котором небольшие компании могут приобрести себе VS2010 со скидкой 60%, при условии, конечно, что в самой компании не более 20 программистов, и покупается не более 10 лицензий.
Вообще говоря, речь пойдет о разработке компиляторов не Just for fun, а для каких-либо проектов. Это могут быть проекты для внутреннего использования, или может быть это будут проекты, которые направлены на продажу. А может быть, на самововлечение сообщества для последующего доения этого сообщества. Я не буду разбирать причины, по которым может показаться, что создание нового языка программирования выведет компанию на новый уровень, однако причины находятся, языки пишутся, создавая, на мой взгляд, огромные проблемы, как самой компании, так и сотрудникам этой компании.
Исходя из того, что первая статья насобирала много плюсов и попала в избранное большого количества человек, я понял что тема актуальна и во-первых призываю подтянуться сообщество (ведь я не могу знать абсолютно все библиотеки и решения), а во-вторых буду продолжать своими силами рассказывать о том какие библиотеки можно подтянуть, если необходимо что-то сделать вместо того чтобы делать все новые и новые велосипеды, состоящие из водопроводных труб.
11 октября Microsoft запутит акцию:
Этим постом я начинаю серию статей, которые должны помочь каждому разработчику избавиться от велосипедов в своих последующих и текущих проектах. Усилить код и увеличить функционал. Каждый из нас хочет внести в свою программу нечто, что сделает ее богаче, но зачастую решение либо не находится, либо лень тратить время на поиски… Либо внутри сидит глупая уверенность что это можно реализовать быстро и не менее функционально. В любом случае я хочу чтобы каждый пробежался глазами по спискам библиотек, которые я вам предоставлю на суд, и чтобы у каждого эти библиотеки отложились в памяти. И когда их функционал пригодится в будущем, я очень надеюсь что вы вспомните этот пост и поищите эти библиотеки вместо того чтобы писать все новые и новые велосипеды, полные палок в колесах.
Использовать нужно юникодовые символы "│ ├ ─ └" (вспомним старые добрые картинки с псевдографикой). Цель, которую поставил себе Эрик — выяснить, какие предпочтения будут сделаны при составлении решения: рекурсивное (так как дерево), более быстрое или более читабельное.
