Как разумно использовать шаблоны кодирования MVVM с HTML5? - PullRequest
10 голосов
/ 19 октября 2011

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

Какой разумный способ перейти с Silverlight с использованием XAML и C # с шаблонами кодирования MVVM на внешний интерфейс HTML5.

С другой стороны, если это не очень хорошая идея, и шаблон MVVM следует отказаться, объясните, почему.

Ответы [ 5 ]

6 голосов
/ 19 октября 2011

Knockout - отличная библиотека javascript, которая помогает вам писать на стороне клиента MVVM. Вы создаете свои модели представлений в javascript и привязываете их к ним с помощью html-шаблонов (с помощью шаблонов jquery). Ваши модели представлений могут использовать ajax для извлечения данных.

По сути, это то же самое, что разработка Silverlight - у вас есть HTML вместо XAML и javascript вместо C # / VB.Net. Вы могли бы даже использовать одни и те же веб-сервисы ... что может быть полезно, если вы планируете предложить оба интерфейса или конверсию позже.

Редактировать
Мысль, что я бы добавил, что от IMHO MVVM не следует отказываться, поскольку он действительно отлично справляется с разделением проблем (я думаю, что при правильной реализации), но большой выигрыш, безусловно, заключается в том, что разработчик думает или думает или разделяет ответственность в приложении. Я использовал Knockout.js для веб-проектов и Caliburn.Micro для Silverlight, и мне действительно понравился этот стиль разработки.

1 голос
/ 12 января 2012

Существует также экспериментальная библиотека Model Driven Views (MDV) от Google.К сожалению, он предназначен только для демонстрации прототипа.Концептуально, это действительно круто, но будьте готовы сделать некоторые исправления ошибок самостоятельно.

http://code.google.com/p/mdv/

1 голос
/ 21 октября 2011

Да, шаблон MVVM для HTML 5 называется MVC. Наиболее легко реализуемо с MVC3. Предоставляет уровень абстракции в отношении кода JavaScript, поддержку ViewModels (он же Views) и разделение интересов между представлениями, доступом к данным и бизнес-логикой.

Лучше всего то, что проверка и обработка событий пользовательского интерфейса связаны с вами простым способом, позволяя вам абстрагироваться от тонкостей обработчиков событий JavaScript для различных элементов управления HTML.

Однако, если вы строго хотите придерживаться HTML и JavaScript, я предлагаю использовать ваши собственные классы JavaScript (да, JS - это функциональный язык, но вы все равно можете создавать такие), которые представляют ваш уровень пользовательского интерфейса и обрабатывают события пользовательского интерфейса. Затем создайте свою собственную библиотеку Ajax для передачи сериализованных данных JSON туда и обратно из классов пользовательского интерфейса на серверную часть. Наконец, создайте свои собственные классы бизнес-логики (также в javascript), чтобы управлять вашими UI и классами DataAccess (ajax). Короче .... много грязной работы.

1 голос
/ 19 октября 2011

Knockout - это шаблон MVVM, реализованный в HTML / Javascript с привязкой к данным и всем. http://knockoutjs.com/

Если то, что вы хотите, достижимо простым манипулированием DOM, и вы привыкли и любите шаблон MVVM, то Knockout должен быть хорошим выбором.

0 голосов
/ 20 января 2012

Есть также JSViews.Этот не такой приятный, как Knockout, но он быстрее обновляет DOM.Проект слабо связан с jquery, так как его автор стоял за уже списанными шаблонами запросов.

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