MVVM, SOA и AJAX (о мой?) - PullRequest
       6

MVVM, SOA и AJAX (о мой?)

2 голосов
/ 27 ноября 2010

Я исследую архитектуру для того, что будет большой и очень сложной системой.Наша цель v1.0 - создать одно приложение с современной n-уровневой архитектурой.Мы, вероятно, создадим пользовательский интерфейс с Silverlight и, вероятно, будем использовать шаблон MVVM.

Однако в будущем мы хотели бы предложить некоторую логику приложения в качестве сервисов (для приложений ASPX с добавленной стоимостью)пользовательские расширения, поддержка приложений iPhone / Windows Phone и т. д.).(в идеале любая используемая нами технология пользовательского интерфейса будет использовать ту же логику на стороне сервера, что и наше оригинальное приложение)

Я читал об использовании MVVM в сочетании с WPF и Silverlight.Он выглядит великолепно, но также выглядит так, как будто ваши классы ViewModel являются клиентскими и платформенными (например, написаны на .Net / Silverlight).

Предположим, я создаю большое приложение Silverlight / MVVM под версией v1, а затем с версией v2 я хочу представить подмножество функций в качестве традиционного aspx-сайта.Должен ли я переписать все ViewModels в JavaScript?Есть ли руководство по созданию моего шаблона MVVM с учетом сохранения всей самой важной логики в коде на стороне сервера?

Ответы [ 4 ]

2 голосов
/ 28 ноября 2010

Я бы сказал, Да, вам придется переписать все ViewModels.

Более того, для вашей простой старой HTML-версии вы, вероятно, выберете ASP.NET MVC, что является немного другим подходом. Более того, HTML-версия имеет тенденцию выглядеть по-другому, проще, чем RIA-версия, поэтому вам, вероятно, понадобятся разные ViewModel.

Что касается родной версии iPhone, вы, вероятно, можете использовать те же веб-сервисы, что и в версии Silverlight. Однако пользовательский интерфейс должен быть полностью переписан.

Предоставление ваших данных через службы данных WCF (ODATA) значительно облегчит доступ к вашим данным в любом технологическом стеке (даже проще, чем пользовательский REST).

1 голос
/ 28 ноября 2010

Я бы сказал, что это зависит от того, как вы пишете свои модели представлений.Если они являются просто классами со свойствами, вы сможете предоставить их приложению ASP.NET MVC.Однако, если в ваших моделях представлений вы создаете / используете элементы управления Silverlight, тогда, конечно, им потребуется переписать.Возможно, вы могли бы сконструировать все свои модели представлений таким образом, чтобы они имели базовую часть, пригодную для ASP.NET MVC, а также Silverlight, а затем имели бы конкретную модель представления, расширяющую базовую часть и добавляющую определенные для технологии частиВМ.Еще одна вещь, на которую вам нужно обратить внимание, это то, что Silverlight имеет файлы классов Silverlight.Я не, если есть ограничения на то, как они могут быть использованы в ASP.NET, тем не менее, ограничить, какие части .NET доступны для вас.

1 голос
/ 28 ноября 2010

Не полный ответ на ваш вопрос, но на стороне клиента вы можете повторно использовать свой код в духе / структуре с Knockout, библиотекой MVVM для JavaScript: http://knockoutjs.com/

0 голосов
/ 29 ноября 2010

Мне просто интересно, слишком ли вы сосредоточены на интерфейсе? Дело не в том, что вы беспокоитесь о «плохо» или «неправильно», я просто думаю, что вы могли бы поставить телегу перед лошадью.

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

Чем больше повторного использования вы можете получить на этом уровне, тем меньше вам придется дублировать / переписывать в различных реализациях на следующем слое вверх.

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