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
2020-09-28 18:05:41 +03:00
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
2020-06-02 01:01:07 +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
| --------------- | --------- | -------------- |
2020-06-02 01:01:07 +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
2020-09-26 15:42:52 +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 > |
2020-09-28 18:05:41 +03:00
| 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 >
2020-09-28 22:27:21 +03:00
- < 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
2020-09-26 15:42:52 +03:00
- < 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
2020-06-02 01:01:07 +03:00
- < 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
2020-09-28 18:05:41 +03:00
- < 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 >
2020-06-02 01:01:07 +03:00
- < a href = "https://www.jetbrains.com/rider/" > JetBrains Rider</ a > and < a href = "https://visualstudio.microsoft.com/" > Microsoft Visual Studio 2019</ a > IDEs