Совместное использование логики представления между приложением C # с окнами и веб-интерфейсами - PullRequest
1 голос
/ 29 июня 2010

Мне нужно создать приложение на C #, которое будет иметь несколько пользовательских интерфейсов, 2 для веб-сайтов и одно, которое будет одним и тем же приложением, но которое можно будет использовать без доступа к Интернету. Я склоняюсь к MVC для веб-сайтов, а затем к MVVM / WPF для приложений Windows (Silverlight не вариант). Я должен быть в состоянии внедрить различную реализацию репозитория для двух парадигм, таким образом решая проблему отсоединения от Интернета.

Что меня интересует, так это то, как лучше использовать как можно больше логики представления. В идеале я хотел бы иметь возможность использовать одни и те же объекты типа контроллера / презентатора для запуска обоих пользовательских интерфейсов. Я ищу пример хорошего решения этой проблемы. Я не вижу четкого пути к повторному использованию контроллеров MVC (они кажутся слишком тесно связанными с платформой MVC для работы), но в то же время меня не волнуют накладные расходы, связанные с реализацией пользовательского шаблона MVVM или MVP для Интернета (который я боюсь, это ответ).

Или я просто схожу с ума, даже пытаясь повторно использовать эти компоненты? Разве это не стоит хлопот? Мы можем легко обмениваться сервисами, лежащими в основе UI, но, кажется, стыдно писать такой код UI дважды.

Ответы [ 3 ]

1 голос
/ 30 июня 2010

Правильно сделать то, что вы хотите сделать общим: Business Layer и Database Access Layer .По крайней мере, у вас будет согласованность между всеми клиентами.

Затем создайте клиентов, используя преимущества каждой платформы (богатство настольного приложения и простота в веб-приложении)

Конечновсе зависит от бюджета.

0 голосов
/ 30 июня 2010

Это немного хакерски (и не очень рекомендуется, если вы действительно не понимаете, что делаете :)), но вы можете попробовать создать настольное приложение, в которое встроен браузер. Это позволяет вам повторно использовать графический интерфейс. Вам также нужно будет упаковать веб-сервер, что может быть проблемой, если вы используете C # / MVC / .NET.

0 голосов
/ 30 июня 2010

У вас есть возможность использовать WPF для всего для максимального повторного использования. WPF может быть развернут как XBAP с частичным доверием.

Хотя есть и недостатки * Размер загрузки может быть проблемой * Клиенты нуждаются в правильной версии фреймворка и могут работать только в Internet Explorer (Firefox через плагин (не работает в Windows 7))

Я попробовал это решение с небольшим клиентом XBAP и более крупным автономным приложением - и это действительно мелкие детали, которые нельзя использовать повторно (окно в приложении, страница в XBAP и т. Д.) Делает для хорошего последовательного макета тоже.

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