ReactiveMvvm/README.md

35 строки
5.4 KiB
Markdown
Исходник Постоянная ссылка Обычный вид История

2020-06-06 00:43:46 +03:00
[![Build Status](https://worldbeater.visualstudio.com/Camelotia/_apis/build/status/ReactiveMvvm-CI)](https://worldbeater.visualstudio.com/Camelotia/_build/latest?definitionId=4) [![Pull Requests](https://img.shields.io/github/issues-pr/worldbeater/reactivemvvm.svg)](https://github.com/worldbeater/reactivemvvm/pulls) [![Issues](https://img.shields.io/github/issues/worldbeater/reactivemvvm.svg)](https://github.com/worldbeater/reactivemvvm/issues) ![License](https://img.shields.io/github/license/worldbeater/reactivemvvm.svg) ![Size](https://img.shields.io/github/repo-size/worldbeater/reactivemvvm.svg) [![Code Coverage](https://img.shields.io/azure-devops/coverage/worldbeater/camelotia/4.svg)](https://worldbeater.visualstudio.com/Camelotia/_build/latest?definitionId=4)
2018-03-11 17:45:51 +03:00
# ReactiveMvvm
A truly cross-platform app example created using the <a href="https://reactiveui.net">ReactiveUI .NET MVVM framework</a>, <a href="https://www.reactiveui.net/docs/handbook/view-models/boilerplate-code">ReactiveUI.Fody</a> and most popular XAML UI frameworks. The app implements the MVVM architecture extended with <a href="https://medium.com/@worldbeater/reactive-mvvm-for-net-platform-175dc69cfc82">reactive programming and assembly weaving</a>. It was built to demonstrate how to avoid writing boilerplate code when working with the `INotifyPropertyChanged` interface and how to create portable and maintainable view models. Article on Medium: https://medium.com/@worldbeater/reactive-ui-fody-cross-platform-forms-7b501d79f46b
2018-03-11 17:45:51 +03:00
| <a href="https://github.com/AvaloniaUI/Avalonia">AvaloniaUI</a> | <a href="https://docs.microsoft.com/ru-ru/xamarin/xamarin-forms/">Xamarin.Forms</a> | <a href="https://docs.microsoft.com/ru-ru/windows/uwp/get-started/universal-application-platform-guide">Universal Windows Platform</a> |
2018-06-22 01:37:05 +03:00
| --------------- | --------- | -------------- |
| <a href="https://medium.com/@worldbeater/reactive-ui-fody-cross-platform-forms-7b501d79f46b"><img width="800" src="https://cdn-images-1.medium.com/max/675/1*JPlUC1YoAuE2eFng29LpaQ.png"></a> | <a href="https://medium.com/@worldbeater/reactive-ui-fody-cross-platform-forms-7b501d79f46b"><img src="https://cdn-images-1.medium.com/max/1500/1*d1oeBQF9ilZ5h_IIhYktPQ.png" width="800"></a> | <a href="https://medium.com/@worldbeater/reactive-ui-fody-cross-platform-forms-7b501d79f46b"><img width="800" src="https://cdn-images-1.medium.com/max/900/1*EsqN0dFMCUknKc-4wuIanA.png"></a> |
2018-06-22 01:37:05 +03:00
| <a href="https://github.com/dotnet/wpf">WPF</a> | <a href="https://github.com/dotnet/winforms">Windows Forms</a> | <a href="https://github.com/migueldeicaza/gui.cs">Terminal.Gui</a> |
| --------------- | --------- | -------------- |
| <a href="https://medium.com/@worldbeater/reactive-ui-fody-cross-platform-forms-7b501d79f46b"><img width="780" src="https://user-images.githubusercontent.com/6759207/94264350-38409300-ff3f-11ea-9e78-852ee9bc8ae7.png"></a> | <a href="https://medium.com/@worldbeater/reactive-ui-fody-cross-platform-forms-7b501d79f46b"><img src="https://miro.medium.com/max/493/1*GGwXG5-u_Gc-yMCj8Q1tqQ.png" width="700"></a> | <a href="https://medium.com/@worldbeater/reactive-ui-fody-cross-platform-forms-7b501d79f46b"><img width="820" src="https://user-images.githubusercontent.com/6759207/94263920-80ab8100-ff3e-11ea-91f7-9614d6a1c1ae.png"></a> |
| ASP .NET Core via <a href="https://github.com/worldbeater/ReactiveMvvm/tree/main/src/reactivemvvm.blazor.server">Blazor</a> or <a href="https://github.com/worldbeater/ReactiveMvvm/tree/main/src/reactivemvvm.blazor.wasm">Blazor.Wasm</a> |
| --------------- |
| <a href="https://medium.com/@worldbeater/reactive-ui-fody-cross-platform-forms-7b501d79f46b"><img width="420" src="https://user-images.githubusercontent.com/6759207/94431677-44765b80-019e-11eb-9ebd-7e15b51a8255.png"></a> |
2018-03-11 17:45:51 +03:00
## Technologies and Tools Used
2018-10-11 13:51:23 +03:00
- <a href="https://reactiveui.net/">ReactiveUI</a> modern MVVM framework
2018-06-24 22:20:31 +03:00
- <a href="http://reactivex.io/">Reactive Extensions</a> for the <a href="https://github.com/Reactive-Extensions/Rx.NET">.NET platform</a>
- <a href="https://www.reactiveui.net/docs/handbook/view-models/boilerplate-code">ReactiveUI.Fody</a> for `INotifyPropertyChanged` injections
2018-06-21 20:59:14 +03:00
- <a href="http://xunit.github.io/">xUnit</a> tests on <a href="https://www.microsoft.com/net/core">.NET Core</a>
- <a href="https://github.com/fluentassertions/fluentassertions">FluentAssertions</a> to improve tests readability
- <a href="https://github.com/nsubstitute/NSubstitute">NSubstitute</a> for stubs and mocks
- <a href="https://github.com/nuke-build/nuke">NukeBuild</a> for building cross-platform .NET projects using C#
2018-10-11 13:51:23 +03:00
- <a href="https://github.com/AvaloniaUI/Avalonia">AvaloniaUI</a> for Linux and MacOS
- <a href="https://github.com/worldbeater/Citrus.Avalonia">Citrus</a> bright and modern AvaloniaUI theme
2018-10-11 13:51:23 +03:00
- <a href="https://www.xamarin.com/">Xamarin.Forms</a> for Android, iOS and Tizen
2018-06-24 22:20:31 +03:00
- <a href="https://docs.microsoft.com/en-us/windows/uwp/index">Universal Windows Platform</a> for Windows 10
- <a href="https://dotnet.microsoft.com/apps/aspnet/web-apps/blazor">ASP .NET Core Blazor</a> bringing ReactiveUI to the Web
2018-06-21 20:57:30 +03:00
- <a href="https://msdn.microsoft.com/ru-ru/library/aa970268(v=vs.100).aspx">Windows Presentation Foundation</a>
2018-10-11 13:51:23 +03:00
- <a href="https://docs.microsoft.com/ru-ru/dotnet/framework/winforms/windows-forms-overview">Windows Forms</a>
- <a href="https://www.jetbrains.com/rider/">JetBrains Rider</a> and <a href="https://visualstudio.microsoft.com/">Microsoft Visual Studio 2019</a> IDEs