В настоящее время я работаю над новым проектом C# с использованием WPF
и MVVM
связанных функций и инструментов платформы .NET. Я совершенно не знаком с разработкой этого типа приложений. После того, как я начал изучать такие вещи, как ICommand
и INotifyPropertyChanged
, я заметил, что пока я копаю эти классы и пространство имен System.Windows.Input
, я действительно отхожу от переносимости.WPF MVVM программирование в портативной библиотеке классов
Прежде чем я застрял с MVVM
Я использовал для создания портативной библиотеки классов для бизнес-уровня моего приложения.
Являются ли эти классы MVVM
от PresentationCore.dll
хорошо поддерживаемыми в других платформах, таких как андроид Xamarin и iOS и Mac? Если я использую ICommand
, CommandManager
и другие классы в переносимой библиотеке классов, могу ли я использовать реализованную библиотеку на других упомянутых платформах?
Что я хочу сказать, удалив от переносимости?
Например, мы хотим разработать приложение, которое должно быть портативным для окон и платформ Android. когда я реализую ICommand
Я могу использовать только команду с элементом управления WPF
, хотя я легко могу вызвать метод в обработчике события щелчка кнопки в приложении xamarin android. Таким образом, в этом примере ICommand бесполезен в приложении Xamarin android.
Не могли бы вы рассказать мне, что мы должны учитывать при программировании MVVM
в переносной библиотеке классов? Что общего у MVVM
и PCL
? А когда их концепции и особенности сидят непросто друг с другом?
Прежде всего, см. [MVVMCross] (https://github.com/MvvmCross/MvvmCross). –
Представления не являются переносимыми вообще, поскольку они сильно зависят от структуры представления. Imho, поскольку модели просмотра должны предоставлять данные и поведение таким образом, которые легко расходуются из представлений, ViewModels также не переносимы. Однако вы могли бы извлечь свою общую логику из режимов просмотра в PCL, а viewmodels были бы тогда очень тонким фрейм-специфическим слоем. Из вашего значения это влияет на вашу архитектуру MVVM – Liero