Сведения о вопросе

LARVION

00:19, 3rd August, 2020

Compact Framework - есть ли в наличии фреймворк MVC/библиотека?

Просмотров: 552   Ответов: 7

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

Я не смотрел на фабрику мобильного программного обеспечения из группы P&P, но подозреваю, что она довольно тяжелая. Стоит ли на это смотреть?

Edit: я не ищу информацию о проекте ASP.NET MVC. Я спрашиваю о реализации compact framework 'WinForms' и о том, как реализовать MVC с помощью этого.



  Сведения об ответе

LAST

16:55, 5th August, 2020

Лично я думаю, что фабрика мобильного программного обеспечения не несет большой радости для CF. Мы все еще используем одну его часть (EventBroker) на работе, и я хотел бы даже удалить эту часть, если это возможно (так как она не поддерживает универсальные события, и вы должны привести аргументы в их сильные типы из EventArgs). Сестринский проект на работе использовал его для части своего UI, но ему пришлось удалить его из-за проблем с производительностью (еще один большой проект, хотя у него также есть дополнительные проблемы с производительностью).

Проблема, которую я нахожу с фреймворком MVP, который предлагает P&P lib, заключается в том, что формы и элементы управления OWN презентаторы вместо презентаторов / контроллеров владеют формами (кто не читал "It's just a view": прагматический программист?). Это прекрасно вписывается в мантру быстрой разработки приложений MS "Form First", но это отстой, если учесть, насколько дорогими могут быть ручки windows в CE (если у вас их много). Мы запускаем очень большое приложение CF на работе, и у нас есть свой собственный фреймворк MVC. Это не трудно сделать самостоятельно, просто убедитесь, что вы разделяете все на контроллеры, представления, бизнес-объекты и службы и имеете UIController, который контролирует взаимодействие между контроллерами.

На самом деле мы делаем еще один шаг вперед и повторно используем формы/элементы управления с помощью шаблона Controller->View->Layout. Контроллер такой же, как обычно, вид-это объект, который настраивает макет в определенный вид, а макет-это фактический UserControl. Затем мы меняем их местами в одной и той же форме. Это значительно сокращает количество используемых нами элементов управления Windows. Это + инициализация всех форм при запуске означает, что мы устраняем заметную паузу, которую вы получаете при создании новых элементов управления Windows "on-demand".

Очевидно, что это действительно выгодно делать только в том случае, если вы запускаете большое приложение. У нас есть примерно 20 + различных типов представления, которые используют в общей сложности около 7 различных макетов. Это вредит нашей процедуре инициализации (когда мы загружаем формы при запуске) на величину около 10 секунд, но психологически большинство пользователей готовы принять такое попадание при запуске, а не заметные паузы во время выполнения.

Основная проблема с библиотекой P&P в моих книгах заключается в том, что это порт FF -> CF и из-за определенной несовместимости и различий в производительности между двумя платформами вы теряете много полезной функциональности.

Кстати, это , безусловно, самая полная статья, которую я когда-либо читал на MVC/MVP. Для приложения Windows (desktop или CE) я бы рекомендовал использовать версию Taligent Model-View-Presenter без взаимодействий, команд и выборок (например, контроллер / ведущий выполняет всю работу).


  Сведения об ответе

SSESION

08:33, 16th August, 2020

Никто из вас (дэвидг или Кевин Пэнг) не обратил внимания на то , что он интересуется WinForms, а не веб-формами . Он хочет фреймворк, который выталкивает шаблон дизайна Model-View-Controller (davidg, MVC-это не просто название фреймворка ASP.NET) в проекте WinForms с использованием компактного фреймворка .NET. Он прекрасно задал свой вопрос.


  Сведения об ответе

lool

23:47, 20th August, 2020

Есть также фреймворк OpenNETCF IoC (который, по-моему, не существовал, когда был задан этот вопрос), который намного легче, но похож по объектной модели на фабрику мобильного программного обеспечения P&P's.


  Сведения об ответе

PHPH

21:56, 21st August, 2020

@DavidG и @KevenPang

MVC не ограничивается веб-технологией, на самом деле оригинальный smalltalk MVC был для настольных приложений.

Это работает следующим образом:

  • Вид = Форма Клиента
  • Controller = обертывание клиентских событий и маршалов между представлением и моделью
  • Модель = данные приложения и бизнес-логика

В чистом Smalltalk MVC представление не ограничивается формой, но может быть любым представлением модели Data...For пример, если бы у нас была модель, представляющая электронную таблицу, мы могли бы иметь следующие представления:

  • SpreadSheet вид
  • Для Печати Вид
  • Вид Значка

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

Все это говорит о том, что я не знаю, существует ли такая структура для компактной структуры .NET, я просто хотел указать, что MVC не означает WebApp.


  Сведения об ответе

prince

14:41, 23rd August, 2020

@davidg: "Why would you want MVC on Compact Framework?"

А почему бы и нет? Это не похоже на то, что он зарезервирован для веб-разработчиков, это шаблон.


  Сведения об ответе

PIRLO

08:43, 9th August, 2020

Взгляните на мобильный телефон mFly MVC . Я никогда не использовал его, но он представлен как разумная структура MVC для CF.


  Сведения об ответе

DO__IT

11:09, 12th August, 2020

Правка: приведенные выше плакаты верны. Я увидел MVC и сразу же подумал о веб-формах. Мое извинение. Не стесняйтесь игнорировать это. Я оставлю свое оригинальное сообщение на месте на случай, если кто-то, кто интересуется веб-формами MVC, нуждается в ссылках. :-)

Есть пара фреймворков MVC, ни один из которых не очень "lightweight", но MVC-это довольно большой сдвиг от веб-форм, так что это ожидается:

  • ASP.NET MVC - это попытка Microsoft создать фреймворк MVC. Он все еще находится в режиме предварительного просмотра, поэтому используйте его по своему усмотрению, но несколько человек уже используют его в своих производственных приложениях. Вы найдете достаточно документации по этому вопросу с помощью простого поиска Google, поскольку он становится очень популярным среди толпы .NET.
  • Castle MonoRail -фреймворк MonoRail - это фреймворк с открытым исходным кодом MVC, который существует уже довольно давно и используется в нескольких производственных приложениях. Это определенно больше смыто, чем фреймворк ASP.NET MVC, но, учитывая количество усилий, которые Microsoft бросает на их предложение MVC, я думаю, что это изменится относительно скоро.


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться