Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/reactiveui/camelotia

Cross-platform sample .NET GUI for cloud file management.
https://github.com/reactiveui/camelotia

avalonia avaloniaui dotnet dotnetcore dynamicdata linux macos microsoft-visual-studio mvvm reactive-programming reactiveui reactivex solid-principles unit-testing uwp windows wpf xamarin-forms xunit

Last synced: about 21 hours ago
JSON representation

Cross-platform sample .NET GUI for cloud file management.

Awesome Lists containing this project

README

        

Camelotia

[![Build](https://github.com/reactiveui/Camelotia/actions/workflows/ci-build.yml/badge.svg)](https://github.com/reactiveui/Camelotia/actions/workflows/ci-build.yml) [![Pull Requests](https://img.shields.io/github/issues-pr/reactiveui/camelotia.svg)](https://github.com/reactiveui/Camelotia/pulls) [![Issues](https://img.shields.io/github/issues/reactiveui/camelotia.svg)](https://github.com/reactiveui/Camelotia/issues) ![License](https://img.shields.io/github/license/reactiveui/camelotia.svg) ![Size](https://img.shields.io/github/repo-size/reactiveui/camelotia.svg) [![codecov](https://codecov.io/gh/reactiveui/Camelotia/branch/main/graph/badge.svg?token=dmQeHH4Us8)](https://codecov.io/gh/reactiveui/Camelotia)

Camelotia is a sample cross-platform application built with reactive extensions, [ReactiveUI](https://github.com/reactiveui/ReactiveUI), and modern .NET UI frameworks. Camelotia is a file manager for cloud storages, it currently supports Yandex Disk, Google Drive, VK Documents, GitHub, FTP, SFTP, and local file systems. The app runs on Windows, Linux, MacOS, XBox, Surface Hub and HoloLens.

### Compiling Avalonia app

In order to compile .NET Standard libraries, run tests and run the Avalonia application on Windows, Linux or MacOS operating system make sure to have latest [.NET Core SDK](https://dot.net/) installed. Launch the `Camelotia.Avalonia.sln` file to browse or to edit source files. Camelotia uses [Nuke Build](https://github.com/nuke-build/nuke) to build and test the solution. Execute the following commands to run the build scripts on Linux or MacOS:

```sh
# Linux or MacOS shell. Launches the Avalonia app after build.
git clone https://github.com/worldbeater/Camelotia
cd ./Camelotia && bash ./build.sh --interactive
```

On Windows, execute the following command line:

```sh
# Windows command line. Launches the Avalonia app after build.
# Use the '--full' option to compile Android, UWP and WPF apps as well.
# Use the '--configuration Release' option to generate app packages.
git clone https://github.com/worldbeater/Camelotia
cd ./Camelotia && powershell -ExecutionPolicy Unrestricted ./build.ps1 --interactive
```

### Compiling Universal Windows Platform app

Universal Windows Platform Camelotia app is compatible with Windows 10-based devices, such as PCs, Xbox One and HoloLens. The app can be compiled only on latest Windows 10. Make sure to have latest [Microsoft Visual Studio](https://visualstudio.microsoft.com/) installed. Make sure the "Universal Application Development" section is checked in [Visual Studio Installer](https://visualstudio.microsoft.com/ru/vs/). Launch the `Camelotia.Uwp.sln` solution file.

### Compiling Windows Presentation Foundation app

The app was ported to WPF to make the cloud file manager controls reusable across most popular .NET implementations, so one could easily embed parts of Camelotia into their own applications by simply copying and pasting the source files. The app is also compatible with Windows versions lower than 10, such as Windows 7 or 8. To compile the WPF app, ensure the "Desktop Development" section is checked in [Visual Studio Installer](https://visualstudio.microsoft.com/ru/vs/). Then, open the `Camelotia.Wpf.sln` file in Visual Studio 2019.

### Compiling Xamarin Forms app

To compile the Xamarin.Forms Android application, install the appropriate Android SDK v8.1. This can be achieved by using [Visual Studio Installer](https://visualstudio.microsoft.com/ru/vs/) and selecting "Mobile Development" section there. Launch the `Camelotia.Xamarin.sln` solution file.

### Technologies and Tools Used

- ReactiveUI modern MVVM framework
- ReactiveUI.Validation reactive validation library
- ReactiveUI.Events turning regular events into observables
- DynamicData reactive collections
- AvaloniaUI cross-platform XAML-based GUI framework
- Citrus.Avalonia bright and modern AvaloniaUI theme
- Akavache persistent key-value store
- Nuke build automation system for C#/.NET
- XUnit unit testing tool for .NET
- Coverlet code coverage analyzer
- NSubstitute mocking library
- FluentAssertions assertions library
- Xamarin.Forms mobile GUI framework
- Universal Windows Platform SDKs
- Reactive Extensions for .NET
- Octokit GitHub client library
- FluentFTP FTP implementation
- SSH.NET SFTP implementation
- VkNet Vkontakte SDK for .NET
- Google Drive client SDK for .NET
- Material Design XAML controls and styles
- MahApps Metro XAML controls and styled windows
- Costura.Fody which embeds references as resources
- JetBrains Rider and Microsoft Visual Studio IDEs
- AvaloniaRider plugin for visual designer support