MEF по сравнению с моно. AddIn

Легкий, просто используйте ГЛАВНЫЙ метод, вместо ДОБИРАЮТСЯ или POST:

function UrlExists(url, callback)
{
    var http = new XMLHttpRequest();
    http.open('HEAD', url);
    http.onreadystatechange = function() {
        if (this.readyState == this.DONE) {
            callback(this.status != 404);
        }
    };
    http.send();
}

Это - просто короткий пример, чтобы показать, как использовать ГЛАВНЫЙ метод. Производственный код, возможно, нуждается в более мелкомодульных обратных вызовах для различных состояний результата (успех, отказ, тайм-аут), и может использовать отличающийся обработчики событий (onload, onerror и ontimeout, а не onreadystatechange).

14
задан Tobia Zambon 19 July 2013 в 07:00
поделиться

3 ответа

Я полагаю, что Hanselminutes Show № 181 обсуждает Mono.AddIns и то, что он приносит с собой.

Во время поиска в сети я также обнаружил это обсуждение , в котором подчеркивается различие в том, как эти две структуры в настоящее время обрабатывают кеширование каталога.

4
ответ дан 1 December 2019 в 12:26
поделиться

Я исследовал оба и решил использовать MEF, в основном потому, что он будет выпущен как часть .NET 4, поэтому автоматически будет больше поддержки, обсуждения и развития вокруг него. Кроме того, MEF, похоже, мог делать все, что мне было нужно, используя атрибуты прямо в коде, а Mono.AddIns требовал некоторых файлов метаданных, если я правильно помню.

EDIT : Если вы хотите увидеть результат Из моих усилий по использованию MEF для создания расширяемой среды приложений я открыл его исходный код и дал ему имя: SoapBox Core .

1
ответ дан 1 December 2019 в 12:26
поделиться

[ПРИМЕЧАНИЕ: я работаю над MonoDevelop, который использует Mono.Addins, но на прошлой неделе я подробно обсуждал различия между MEF и Mono.Addins с Гленном Блоком из команды MEF]

MEF основан на составлении кода, хотя базовые абстракции очень гибкие. Напротив, Mono.Addins основан на дереве метаданных, где вы можете включать данные / метаданные / код в расширенную схему вашего определения, так что расширения могут добавлять данные / метаданные, а также код.

Mono.Addins дает у вас есть готовая к работе система управления / упаковки / репозитория / обновлений. Для MEF на этом этапе вам придется создать свой собственный.

MEF имеет немного более низкий барьер для входа, и гораздо больше проектной работы было вложено в его удобство использования и лежащие в основе абстракции. Кроме того, это часть .NET 4, поэтому у меня будет гораздо большее сообщество пользователей, разрабатывающих с / для него.

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

18
ответ дан 1 December 2019 в 12:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: