Сообщение Re[5]: На чем сейчас пишут UI в enterprise приложениях? от 17.12.2014 9:16
Изменено 17.12.2014 9:17 ionoy
Здравствуйте, Jack128, Вы писали:
J>Здравствуйте, ionoy, Вы писали:
I>>Чтобы на XAML-подобных фреймворках было легче разрабатывать, я лично использую ReactiveUI. Там правда порог вхождения не самый низкий, зато позволяет избавиться от многих врождённых проблем XAML'а и даёт IObservable интерфейс к чему хочешь.
J>Хм, ReactiveUI — это вроде как для описания ViewModel, а xaml — для View. Как первое может помочь избежать проблем второго??
ReactiveUI — это не только ViewModel, там ещё много разного.
Например, биндинг в коде:
Примечательно, что биндинг продвинутый, с конвенциями и возможностью настройки.
Например есть такая удобная договорённость:
Универсальная навигация:
Логирование, обработка ошибок, персистентность и ещё много чего.
Ну и самое главное, что правильно написаный на ReactiveUI код можно достаточно переносить между разными XAML фреймворками, WPF, SilverLight, WinRT, XamarinForms и тд.
К сожалению документация достаточно куцая, но они Работают Над Этим™.
J>Здравствуйте, ionoy, Вы писали:
I>>Чтобы на XAML-подобных фреймворках было легче разрабатывать, я лично использую ReactiveUI. Там правда порог вхождения не самый низкий, зато позволяет избавиться от многих врождённых проблем XAML'а и даёт IObservable интерфейс к чему хочешь.
J>Хм, ReactiveUI — это вроде как для описания ViewModel, а xaml — для View. Как первое может помочь избежать проблем второго??
ReactiveUI — это не только ViewModel, там ещё много разного.
Например, биндинг в коде:
this.Bind(ViewModel, vm => vm.Name, v => v.Text);
this.OneWayBind(ViewModel, vm => vm.Name, v => v.Text, name => "Hello, " + name);
this.BindCommand(ViewModel, vm => vm.Save, v => v.SaveButton);
Примечательно, что биндинг продвинутый, с конвенциями и возможностью настройки.
Например есть такая удобная договорённость:
this.OneWayBind(ViewModel, vm => vm.Items, v => v.ListBox.ItemSource);
где:
class ViewModel
{
List<ISomeViewModelType> Items;
}
На основании конкретного типа элемента из Items в DataTemplate ListBox будет подставлено представление для этой модели, если оно было зарегистировано.
Универсальная навигация:
Router.Navigate(CalendarViewModel);
Логирование, обработка ошибок, персистентность и ещё много чего.
Ну и самое главное, что правильно написаный на ReactiveUI код можно достаточно переносить между разными XAML фреймворками, WPF, SilverLight, WinRT, XamarinForms и тд.
К сожалению документация достаточно куцая, но они Работают Над Этим™.
Re[5]: На чем сейчас пишут UI в enterprise приложениях?
Здравствуйте, Jack128, Вы писали:
J>Здравствуйте, ionoy, Вы писали:
I>>Чтобы на XAML-подобных фреймворках было легче разрабатывать, я лично использую ReactiveUI. Там правда порог вхождения не самый низкий, зато позволяет избавиться от многих врождённых проблем XAML'а и даёт IObservable интерфейс к чему хочешь.
J>Хм, ReactiveUI — это вроде как для описания ViewModel, а xaml — для View. Как первое может помочь избежать проблем второго??
ReactiveUI — это не только ViewModel, там ещё много разного.
Например, биндинг в коде:
Примечательно, что биндинг продвинутый, с конвенциями и возможностью настройки.
Например есть такая удобная договорённость:
Универсальная навигация:
Логирование, обработка ошибок, персистентность и ещё много чего.
Ну и самое главное, что правильно написаный на ReactiveUI код можно переносить между разными XAML фреймворками, WPF, SilverLight, WinRT, XamarinForms и тд.
К сожалению документация достаточно куцая, но они Работают Над Этим™.
J>Здравствуйте, ionoy, Вы писали:
I>>Чтобы на XAML-подобных фреймворках было легче разрабатывать, я лично использую ReactiveUI. Там правда порог вхождения не самый низкий, зато позволяет избавиться от многих врождённых проблем XAML'а и даёт IObservable интерфейс к чему хочешь.
J>Хм, ReactiveUI — это вроде как для описания ViewModel, а xaml — для View. Как первое может помочь избежать проблем второго??
ReactiveUI — это не только ViewModel, там ещё много разного.
Например, биндинг в коде:
this.Bind(ViewModel, vm => vm.Name, v => v.Text);
this.OneWayBind(ViewModel, vm => vm.Name, v => v.Text, name => "Hello, " + name);
this.BindCommand(ViewModel, vm => vm.Save, v => v.SaveButton);
Примечательно, что биндинг продвинутый, с конвенциями и возможностью настройки.
Например есть такая удобная договорённость:
this.OneWayBind(ViewModel, vm => vm.Items, v => v.ListBox.ItemSource);
где:
class ViewModel
{
List<ISomeViewModelType> Items;
}
На основании конкретного типа элемента из Items в DataTemplate ListBox будет подставлено представление для этой модели, если оно было зарегистировано.
Универсальная навигация:
Router.Navigate(CalendarViewModel);
Логирование, обработка ошибок, персистентность и ещё много чего.
Ну и самое главное, что правильно написаный на ReactiveUI код можно переносить между разными XAML фреймворками, WPF, SilverLight, WinRT, XamarinForms и тд.
К сожалению документация достаточно куцая, но они Работают Над Этим™.