Можете ли вы иметь плагин архитектуры в ASP.NET? - PullRequest
0 голосов
/ 27 ноября 2009

Можно ли загрузить внешние "веб-части" на веб-сайт ASP.NET? Я хотел бы сделать автономные библиотеки DLL, содержащие пользовательский элемент управления или страницу для включения в основной сайт. Как плагин для веб-сайтов.

Единственные примеры, которые я могу найти, связывают пользовательский элемент управления с основным проектом, вам необходимо иметь "жесткую" ссылку на элемент управления.

Я хотел бы определить общий интерфейс, который могут реализовывать плагины, а веб-сайт может загружаться и отображаться.

Ответы [ 3 ]

3 голосов
/ 27 ноября 2009

Здесь обсуждается вопрос о компиляции UserControl s в dll

Библиотека классов ASP.NET UserControl

Для чего-то похожего на то, что вы описываете, я настоятельно рекомендую создание пользовательских серверных элементов управления . Вы можете предоставить абстрактный базовый класс для всех плагинов.

public abstract class PluginBase : WebControl {

}

Затем вы можете искать в каталоге сборки и искать в каждой сборке все, что происходит от этого типа.

    DirectoryInfo di = new DirectoryInfo(path);
    FileInfo[] assemblies = di.GetFiles("*.dll");
    foreach (var assembly in assemblies) {
        Assembly a = Assembly.LoadFrom(assembly.FullName);
        foreach (Type type in a.GetTypes()) {
            if (type.BaseType == typeof(PluginBase)) {                     
                //load plugin
            }
        } 
    }

Вы также можете зарегистрировать свои плагины в файле web.config, предоставив раздел конфигурации, как в примере здесь

1 голос
/ 15 декабря 2009

Я думаю, вы хотите иметь инфраструктуру, способную загружать разъединенные модули. (Инверсия управления, или IoC)

Узнайте больше о WCSF Фабрика программного обеспечения веб-клиента www.codeplex.com / websf

, если вы хотите хороший пример кода о разработке веб-приложения с модульным подходом, пожалуйста, скачайте Cuyahoga

Cuyahoga - это сеть с открытым исходным кодом .NET рамки сайта. Предоставляет контент Возможности управления и имеет модульный подход

после прочтения всех социальных сетей ASP.NET 3.5 очень хорошая книга.

Создание полнофункциональной социальной сети корпоративного уровня с использованием ASP.NET 3.5 Изучите ключевые новые темы ASP.NET практическим практическим способом: LINQ, AJAX, C # 3.0, n-уровневые архитектуры и MVC Создание списков друзей, систем обмена сообщениями, профилей пользователей, блогов, сообщений доски, группы и многое другое Богатый с примером кода, четкие объяснения, интересные примеры, и практический совет - по-настоящему практическая книга для разработчиков ASP.NET

www.packtpub.com / эксперт-гид-для-социальных сетей-с-Asp-.net-3,5 / книга

автор показывает нам, как применять шаблоны проектирования в реальных веб-приложениях. все модули, выделенные жирным шрифтом, разработаны с использованием шаблона IoC с использованием StructureMap

Эта книга также содержит очень хороший пример кода, который можно загрузить с веб-сайта Packt Publishing.

1 голос
/ 27 ноября 2009

Плагины могут реализовать ваш интерфейс. Интерфейс может определять один метод. Этот метод принимает необходимые общие входные данные для контекста плагина. ответственность плагина будет возвращать HTML-разметку, которая может быть размещена на последней странице вывода. Таким образом, вы можете расширить это, но поставить под угрозу жизненный цикл страницы и функции обратной передачи, потому что страница не знает, что возвращает плагин.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...