👋Introduction of AppBase

AppBase is a set of libraries designed for .NET based application. Currently there are 9 packages providing the following functions:

📦CarinaStudio.AppBase.Core

  • Extensions for System.Object to make your code more elegant and clear. (Learn more)
  • Extensions for System.IDisposable to make your code more elegant and clear. (Learn more)
  • Extensions for arrays and System.Memory<T> to get memory address.
  • Extended System.IDisposable to make it easier to share resources across components in your application.
  • Extensions for System.Collections.Generic.* for collection state checking and searching. (Learn more)
  • SortedObservableList<T> to let you easy to build sorted list and display on UI. (Learn more)
  • TypeConvertedObservableList<S, D> to help you to build a list based-on another list with different type of element. (Learn more)
  • Extensions for System.Threading.SynchronizationContext for delayed call-back support. (Learn mode)
  • Implementations of System.Threading.SynchronizationContext and System.Threading.Tasks.TaskScheduler to let you schedule and run tasks on dedicated threads. (Learn more)
  • Schedulable action to execute action later and prevent duplicate execution. (Learn more)
  • Implementation of System.IObservable<T> to support observable value/field just like LiveData<T> on Android. (Learn more)

📦CarinaStudio.AppBase.Configuration

  • Class for key-value based application settings which supports various type of value.
  • Save application settings to given file.
  • Extensible settings serialization/deserializing. Implementations based-on JSON and XML format are included.

📦CarinaStudio.AppBase.Application

  • IApplication to provide abstract interface to application instance no matter what UI framework you use.
  • ViewModel to provide base implementation of view-model including observable properties, logger, etc.

📦CarinaStudio.AppBase.Android

  • Implementation of IApplication based-on Android.App.Application.
  • Implementation of ISettings based-on Android.Content.SharedPreferences.

📦CarinaStudio.AppBase.Avalonia

  • Extended controls such as LinkTextBlock, DateTimeTextBox for Avalonia application.
  • ProgressRing to show operation progress.
  • Converters to provide more value conversion capabilities. For ex, ObjectConverters, ComparableConverters, etc.

📦CarinaStudio.AppBase.Application.Avalonia

  • Basic implementation of IApplication based-on Avalonia.Application.

📦CarinaStudio.AppBase.AutoUpdate

  • Updater to perform resolving, downloading and installing flow of application.
  • Use UpdatingSession as view-model of Updater to build UI for auto-update quickly.

📦CarinaStudio.AppBase.MacOS

  • .NET binding to macOS framework. For ex, CFObject, CGImage, NSObject, NSView, etc.
  • Allow defining and creating your own type which extends from NSObject.

📦CarinaStudio.AppBase.Tests

  • Provide random functions like generating random string or creating file with random name.
  • EventMonitor<T> to monitor and track event raising.
  • INotifyPropertyChanged.WaitForPropertyAsync() to wait for specfic property to be given value.

📥Install to your project

AppBase has been uploaded to NuGet, you can find it on:

You can also install by Package Manager command:

Install-Package CarinaStudio.AppBase.Core
Install-Package CarinaStudio.AppBase.Configuration
Install-Package CarinaStudio.AppBase.Application
Install-Package CarinaStudio.AppBase.Avalonia
Install-Package CarinaStudio.AppBase.Application.Android
Install-Package CarinaStudio.AppBase.Application.Avalonia
Install-Package CarinaStudio.AppBase.AutoUpdate
Install-Package CarinaStudio.AppBase.MacOS
Install-Package CarinaStudio.AppBase.Tests

📁Source code

You can find source code on GitHub.