Как лучше всего ориентироваться как на WPF, так и на веб-приложения? - PullRequest
1 голос
/ 13 марта 2009

В настоящее время мы разрабатываем бизнес-приложение, которое имеет два основных требования к его интерфейсу:

1) запуск на настольном компьютере (WPF) для корпоративных пользователей для обеспечения богатого пользовательского интерфейса, взаимодействия с другими приложениями, доступа к файловой системе, работы в автономном режиме, работы со специальным локальным оборудованием и т. Д.

2) запустить на ASP.NET / Ajax , чтобы предоставить клиентам несколько компонентов этого приложения (Интернет). К сожалению, Silverlight пока недоступен.

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

Какие варианты у нас есть, чтобы достичь этой цели? Есть ли шаблон, который хорошо работает с обеими технологиями?

Обновление:

Спасибо за ответы, хотя они не включают тот, который я искал! :)

Не думаю, что Генераторы пользовательского интерфейса - хороший вариант. Как указал Эдуардо, у вас, вероятно, будут проблемы в обоих мирах. Хотя я проверю скульптуру.

Ответы [ 3 ]

4 голосов
/ 13 марта 2009

Я некоторое время думал об этом, и мне еще предстоит придумать великолепный ответ. При этом, вот некоторые из моих мыслей:

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

Возможно, вы захотите изучить различные всплывающие наборы инструментов DSL, идея состоит в том, чтобы создать простой «язык» для описания вашего пользовательского интерфейса на высоком уровне и создать представление этого пользовательского интерфейса в WPF / ASPX.

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

2 голосов
/ 14 марта 2009

Удачи!

К сожалению, правда в том, что Asp.net/ajax (в общем-то, сеть в целом) и WPF (и, черт возьми, давайте добавим туда WinForms для хорошей меры), имеют очень разные модели пользовательского интерфейса, и одна из них хорошо работает: не обязательно будет хорошо работать для другого. Это не значит, что вы не можете разделять логику между приложениями, написанными для любой из технологий, но я сделаю несколько подробностей: ваша логика пользовательского интерфейса не будет в этой категории.

Я недавно использовал вариант MVVM для WPF и ASP.Net MVC, и я бы сказал, что они очень хорошо подходят для данной технологии. Однако, хотя они очень похожи, они имеют свои различия, и я не уверен, что вы могли бы написать слой абстракции (в любое приличное количество времени), который мог бы использовать преимущества великолепных функций обеих технологий.

В конечном счете, я бы сказал, что лучше всего придерживаться некоторых шаблонов SOA и извлекать как можно больше логики вашего бизнеса и доступа к данным в общие библиотеки. Затем напишите отдельные пользовательские интерфейсы в WPF и Asp.net, чтобы воспользоваться преимуществами этих общих библиотек. Именно такой подход сейчас использует моя компания, и она работает как шарм.

Может показаться утомительным писать свою логику пользовательского интерфейса дважды (один раз для asp.net и один раз для wpf), но я думаю, что это того стоит, чтобы ваш код мог соответствовать шаблонам и методам, которые лучше всего соответствуют этим технологиям.

В качестве отступления, хотя Silverlight не является опцией, рассматривали ли вы XBAP?

1 голос
/ 16 марта 2009

Если на предыдущей работе мы делали нечто подобное. Как говорит Даниэль Пратт, мы описываем наши интерфейсы в XML, а затем рендер создает форму, отчет или все, что мы решили создать.

Мы должны предоставить функцию Javascript для выполнения некоторых проверок пользовательского интерфейса в рендере HTML и вызов функции Java в рендере Swing.

Остерегайтесь, что вы можете покончить с несовершенными приложениями в обоих мирах.

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