2

Долгое время Lurker, первый раз спрашивающий здесь :)Как хорошо бы MvvmCross и CSLA.net работать вместе в стратегии мульти-платформы (ASP.NET MVC, WP, WPF, WinRT, Win8, Android, IOS)

Я изучал следующую архитектуру нашей системы программного обеспечения. Мы используем CSLA.net, в какой-то мере, как основу нашего бизнес-объекта, и думаем о создании нашей новой архитектуры вокруг нее. CSLA.net поддерживает платформы, упомянутые в названии, и мы ищем структуру mvvm, которая будет хорошо работать с ней.

В настоящий момент мы поддерживаем только окна, но также поддерживаем, по крайней мере, Android и iOS (также в основном рассматриваются в моде). Мы стремимся предоставить как можно больше кода между платформами, и MvvmCross кажется действительно приятным элементом структуры mvvm (+), особенно в этом контексте. Я смотрел несколько n + 1 видео и то, что я видел до сих пор, было очень впечатляющим. Мне также нравится стиль Стюарта по внедрению рамки и концепций вокруг него.

Кто-нибудь пытался создать кросс-платформенное приложение, которое использует обе эти структуры (CSLA.net и MvvmCross)? Если да, каковы были ваши впечатления? Также, если Стюарт мог бы прокомментировать вопрос о том, как объединить модели представления двух фреймворков. Я помню Рокки (Rockford Lhotka), рекомендуя в качестве общего совета при работе с фреймами mvvm наследовать viewmodelbase CSLA.net (не viewmodel) и реализовать также требования к среде mvvm в этом классе. Вы можете найти источник viewmodelbase от https://github.com/MarimerLLC/csla/blob/master/Source/Csla.Xaml/ViewModelBase.cs.

Любой вход был бы очень признателен.

С уважением,

Харри

пс. Я думаю, что это создаст отличный n + видео. Не так ли?)

ответ

1

Я лично никогда не использовал CSLA, но я поговорил с его оригинальным автором, Роки, как по электронной почте, так и лично.

CSLA представляет себя в качестве объекта слоя бизнес-модели и что он может успешно взаимодействовать с независимыми рамками MVVM - см Rocky's post on CSLA+Mvvm

MvvmCross обеспечивает больше приложений и уровень UI поддержки - и оставляет авторов приложений волен выбирать, как они пишите свои бизнес-сервисы и модели.

Из-за этого да Я думаю, что это должно быть возможно и даже прямо использовать обе рамки вместе, если вы хотите. Чтобы начать работу, может быть полезно написать некоторые прототипы - и, возможно, посмотреть, как была выполнена другая интеграция - например, CSLA+Caliburn integration

пс. Я думаю, что это создаст отличный n + видео.

Я бы скорее посмотрел этот тип статьи у кого-то, кто понимает и использует CSLA. Я бы призвал всех членов сообщества MvvmCross вносить свои собственные сообщения в блогах, статьи, видео и образцы github.


Одно предостережения к этому совету: я не знаю, если поддержка CSLA библиотеке Portable Class - если это не то вам, вероятно, нужно использовать файл-связывающий вместо ИХЛА в приложении

1

Да, вы можете использовать множество рамок MVVM; Я успешно использовал CaliburnMicro и наш собственный MVVM. Если вы еще не проверили электронную книгу Rocky, вам обязательно нужно это сделать. Одна из больших ошибок - это ограничения на отражение в Silverlight, следовательно, также в WP8 и WinRT, поэтому некоторые из них хорошо разбираются в этом.

Что касается портативных библиотек классов, вы не можете использовать их для бизнес-объектов CSLA (для них требуется больше материала, чем доступно в PCL), поэтому вам нужно выполнить связывание проекта. Как правило, написать полный класс в .NET libary ж/директивы предварительно компилятор, такой как

#if !SILVERLIGHT 

вокруг кода, которые не могут быть выполнены для Silverlight/РГ.8. Я использую PCL для некоторых основных вещей, таких как перечисления и константы, но не для бизнес-классов.

0

Xamarin только что выпустил некоторые обновления, которые означают, что последняя версия 4.5 с функциями async может быть вскоре реализована ...