Каково ваше мнение о MS CAB (составной блок приложений)? - PullRequest
6 голосов
/ 25 января 2009

Я нахожусь в процессе оценки использования CAB для нового проекта WinNET .net 3.5

Я планирую использовать набор инструментов Infragistics, , который известен как «CAB-совместимый»

Хотя у CAB есть непосредственный плюс, позволяющий мне сосредоточиться на своем бизнесе, вместо того, чтобы кодировать базовый код стыковки / входа в систему / и т. Д., Я чувствую, что смог бы достичь такого же уровня функциональности довольно быстро сам (с дополнительной гибкостью) / Бонус реактивности, который у вас есть, когда вы «владеете» кодом).

Мне нужны отзывы о CAB от Microsoft, от людей, которые его используют:

  1. Были ли у вас проблемы / ошибки?
  2. Чувствуете ли вы, что CAB сэкономил ваше время?
  3. Существуют ли дополнительные функции, о которых я не знаю (кроме рекомендаций Docking / Login / WorkerThreads?)

Ответы [ 5 ]

7 голосов
/ 27 января 2009

У меня был некоторый опыт использования CAB пару лет назад, и я пришел к выводу, что он слишком сложный и имеет крутой курс обучения. Таким образом, преимущества, которые он предлагал, просто не стоили того, чтобы с ним работать. Однако, не верьте мне на слово, попробуйте следовать за некоторыми из их лабораторий и посмотрите, что вы думаете.

Джереми Миллер написал отличную серию постов в блоге о создании собственной CAB

http://codebetter.com/blogs/jeremy.miller/archive/2007/07/25/the-build-your-own-cab-series-table-of-contents.aspx

это стоит посмотреть, так как вы можете просто взять оттуда то, что вам нужно.

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

Таким образом, вы получите фреймворк, который отвечает вашим потребностям, и который будет понятен каждому в команде разработчиков. Что бы вы ни делали, не создавайте рамки заранее - там лежит путь к гибели: -)

4 голосов
/ 01 августа 2009

Мы использовали CAB + SCSF для нескольких проектов. Кривая обучения действительно крутая. Вы, вероятно, будете в курсе после первого месяца. Другие минусы:

  1. Слишком много сложности
  2. Узор-ИТИС
  3. Раздувание генерации кода
  4. Трудно отладить

Плюсы:

Придерживается лучших практик архитектурного проектирования в отрасли:

  1. Model-View-Presenter
  2. Состав пользовательского интерфейса
  3. Зависимость впрыска, инверсия управления
  4. Слабосвязанные события
  5. Модульность
  6. и т.д ...

Использование CAB-SCSF в долгосрочной перспективе будет означать меньше ошибок и больше поддерживаемого кода. Если ваш проект может позволить себе первоначальное достижение кривой обучения, я определенно рекомендую его.

1 голос
/ 01 августа 2009

CAB удален в пользу SCSF . И CAB, и SCSF предлагают некоторую ценность с точки зрения стандартизации разработки с использованием богатых клиентов в рамках проектов (если вы так их используете), но оба они очень тяжелые.

0 голосов
/ 26 августа 2010

Мы создали наше корпоративное приложение на основе CAB, но изменили многие его части в соответствии с нашими потребностями.

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

CAB имеет свои недостатки, связанные с большим количеством сгенерированного кода, и иногда побуждает разработчиков использовать сложные механизмы для достижения простых результатов (например, чрезмерное использование модели публикации / подписки на события, шаблон mvp даже для самого простого пользовательского интерфейса, ...)

Если вы хотите познакомиться с этим, есть отличная серия Рича Ньюмана на http://richnewman.wordpress.com/intro-to-cab-toc/

Если вы хотите использовать только внедрение зависимостей / инверсию управления, тогда Managed Extensibility Framework (http://mef.codeplex.com/),) может быть очень хорошей и легкой альтернативой.

0 голосов
/ 25 января 2009

Хотя я на самом деле никогда не использовал CAB, он поставляется с исходным кодом, поэтому у вас все еще есть возможность настроить его в соответствии с вашими потребностями, если вам нужна дополнительная гибкость, не предоставляемая блоком приложений.

...