Есть ли какая-либо выгода в использовании версии MVC от Cocoa с .NET?

StackOverflow https://stackoverflow.com/questions/95567

Вопрос

Здесь есть диаграмма, изображающая разницу между традиционным MVC и Cocoa MVC:

Шаблоны дизайна Какао:Шаблон проектирования Model-View-Controller

Есть ли какие-либо преимущества в том, чтобы делать это способом "Cocoa" в .NET с использованием Visual Studio?

Это было полезно?

Решение

Для этого нет никаких причин нет сделать это таким образом, если для вас это имеет больше смысла.Имейте в виду, что многие вещи в Cocoa framework являются такими, какие они есть, благодаря проектным решениям более высокого уровня, например, предпочтению композиции и делегирования подклассам.

Если вы хотите, вы можете разработать программное обеспечение на C #, которое выглядит как программное обеспечение Objective-C, но людям, не имеющим опыта работы с Cocoa, придется объяснять это, потому что слабосвязанный дизайн просто покажется им "странным".

Ах да - преимущества этого дизайна включают большее повторное использование классов UI view и model (поскольку они не будут знать друг о друге), немного более простой код в классах view и больше "логики приложения" в одном месте (классы контроллеров).

Другие советы

Разработчик из .Net developer's Journal написал о своем переходе и сравнил .Net с Cocoa, включая использование стиля Cocoa MVC в .Net

http://dotnetaddict.dotnetdevelopersjournal.com/tags/?/cocoa

Разве "Cocoa-версия MVC" не является шаблоном, используемым в ASP.NET MVC?До сих пор все примеры указывали на связь между черно-белым представлением и моделью через контроллер без прямого взаимодействия между V и M.Я неправильно это понимаю?

Основное преимущество использования "контроллеров-посредников" Cocoa (подклассы NSController) заключается в том, что они реализуют большую часть стандартной функциональности, необходимой для посредничества между моделью и ее представлением.Такие вещи, как отслеживание части модели, указанной при выборе представления, и поддержка транзакций (чтобы вы могли, например, зафиксировать или отменить набор изменений в представлении или модели), включены "бесплатно".Использование подклассов NSController в качестве "связующего" кода между моделью и представлением освобождает вас как разработчика от необходимости сосредоточить свои усилия на функциональности "Координирующего контроллера" — специфичной для приложения логике, которая находится на уровне контроллера.

Итак, стоит ли использовать этот шаблон в .Net?Добиться корректной работы общего координирующего контроллера нетривиально (например, Apple потребовалось несколько выпусков, чтобы все было в порядке).Такие вещи, как древовидные контроллеры, особенно сложны.Если вы используете этот шаблон только в одном или нескольких проектах, возможно, это не стоит затраченных усилий.С другой стороны, я уверен, что сообщество оценило бы общую структуру контроллера, основанную на иерархии NSController от Cocoa.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top