Платформа MVC/MVP для.NET [закрытые] приложения WinForms

Другой вариант - CROSS APPLY

Пример

Select B.* 
 From  Inventory A
 Cross Apply ( 
               Select *
                From  (
                      Select *,RB = sum([Quantity]) over (Partition By SKU Order by Date Desc) - Quantity
                       From  Purchase 
                       Where SKU=A.SKU
                      ) B1
                Where RB<=A.Quantity 
              ) B
7
задан Kieron 21 August 2009 в 18:40
поделиться

10 ответов

Microsoft имеет Блок составного приложения (CAB) для использования с приложениями WinForms. В то время как не технически реализация MVC/MVP, это действительно обеспечивает хорошее разделение между кодом UI и кодом неUI: http://msdn.microsoft.com/en-us/library/aa480450.aspx

Это также довольно популярно, чтобы просто сделать это самостоятельно, не используя платформ, пока Вы довольны соответствующими шаблонами. У Jeremy Miller есть превосходный ряд статей о некоторых лучших практиках при проявлении этого подхода:

Создайте свою собственную Часть № 1 CAB - Преамбула

Создайте свою собственную Часть № 2 CAB - Скромное Диалоговое окно

Создайте свою собственную Часть № 3 CAB - Шаблон Контроллера Наблюдения

Создайте свою собственную Часть № 4 CAB - Пассивное Представление

Создайте свою собственную Часть № 5 CAB - Модель Презентации

Создайте свою собственную Часть № 6 CAB - Представление к Коммуникации Предъявителя

Создайте свой собственный CAB - Отвечающий на некоторые вопросы

Создайте свою собственную Часть № 7 CAB - Какова Модель?

Создайте свою собственную Часть № 8 CAB - Возложение Обязанностей в Образцовой Архитектуре Предъявителя Представления

Создайте свою собственную Часть № 9 CAB - Доменная Центральная Проверка с Шаблоном Уведомления

Создайте свою собственную Часть № 10 CAB - Поблочное тестирование UI с NUnitForms

Создайте свою собственную Часть № 11 CAB - Агрегатор События

Создайте свою собственную Часть № 12 CAB - Обуздывают безудержные события с "Фиксатором"

Создайте свою собственную Часть № 13 CAB - Встроенные Контроллеры с Тире DSL

20
ответ дан 6 December 2019 в 06:25
поделиться

Вы попробовали MVC#? Я начал использовать его некоторое время назад, но проект оказался нереален, таким образом, я не могу ручаться за него к очень - извините!

Править: Я просто нашел эту статью, которая выглядит довольно хорошей также.

5
ответ дан 6 December 2019 в 06:25
поделиться

Мы используем Умную Фабрику клиентского программного обеспечения от MS. Это обеспечивает интеграцию IDE, полную поддержку MVC и после того как Вы преобладаете над понятиями позади него, очень компетентная реализация. Можно получить его от: http://msdn.microsoft.com/en-us/library/aa480482.aspx

3
ответ дан 6 December 2019 в 06:25
поделиться

Умная фабрика клиентского программного обеспечения?

0
ответ дан 6 December 2019 в 06:25
поделиться

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

Я просто задаюсь вопросом, как платформа MVC согласовалась бы с, скажем, CastleWindsor и т.п.?

Это, вероятно, не является самым полезным из ответов, но просто задающийся вопросом, рассмотрели ли Вы уже эту возможность!

0
ответ дан 6 December 2019 в 06:25
поделиться

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

С течением времени некоторые общие шаблоны появляются. Это, снова используются от приложения до приложения. Вот пример: DDD и Правило управляемая Проверка UI в Windows. Формы с MVC.

0
ответ дан 6 December 2019 в 06:25
поделиться

Я включаю свою собственную платформу: TrueView для.NET. Это основано на DDD и Явном шаблоне Объектов.

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

0
ответ дан 6 December 2019 в 06:25
поделиться

Все эти стандартные платформы не подходят для больших разработок сложного приложения, и они предполагают, что дисплеи будут статичны. Я разработал свое собственное также из-за общего требования, чтобы экранные средства управления были динамичными, даже шаблоны MVC/MVP предполагают, что дисплей будет статичен поэтому, когда поля diplayed в управлении будут зависеть, на какой роли у пользователя есть шаблоны MVC/MVP, не подходят. Я разработал инструмент, где можно создать экраны из загрузки бизнес-объектов и их свойств в базу данных затем, пользователь просто выбирает объекты и свойства объектов, которые она хочет отобразить, управление может быть составлено из любого количества контрольных групп, каждая контрольная группа может содержать любое свойство бизнес-объекта, бизнес-объекты сгенерированы от представлений моим Linq ORM. Управление поэтому только отобразит поля контрольных групп, к которым у пользователя есть доступ. Вы могли также использовать ориентируемое программирование Аспекта для обеспечения gule для шаблона MVC, но когда дисплеи должны быть динамичными на основе роли, эти издержки, вероятно, добавили бы немного к большой сложности и стоимости производительности.

0
ответ дан 6 December 2019 в 06:25
поделиться

Помимо TrueView, есть также Naked Objects for .NET . Это поддерживает режим клиент / сервер, и в настоящее время переносится веб-программа просмотра (на основе эквивалентной программы просмотра Java).

Что касается того, какие свойства / действия доступны для данного пользователя / роли, это делается динамически в Naked Objects. Поддерживаются три вида предварительных условий бизнес-правил: 1. Виден ли член? 2. можно ли использовать член? 3. действительно ли изменение члена (новое значение свойства или параметр действия)? Или, точнее: вы это видите? ты можешь его использовать? ты можешь сделать это? Модель программирования «Обнаженные объекты» позволяет задавать эти правила как декларативно, так и императивно.

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

Ура

Дэн Хейвуд

автор:

0
ответ дан 6 December 2019 в 06:25
поделиться

Я с успехом использовал следующий проект с открытым исходным кодом для реализации паттерна MVP в ASP.NET + WinForms + C#:

  • Проект Castle.

Посмотрите на мою статью в блоге, где показан полный образец веб-приложения ASP.NET:

Model View Presenter pattern with Castle in ASP.NET

0
ответ дан 6 December 2019 в 06:25
поделиться