👋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
andSystem.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 likeLiveData<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-onAndroid.App.Application
. - Implementation of
ISettings
based-onAndroid.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-onAvalonia.Application
.
📦CarinaStudio.AppBase.AutoUpdate
Updater
to perform resolving, downloading and installing flow of application.- Use
UpdatingSession
as view-model ofUpdater
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:
- https://www.nuget.org/packages/CarinaStudio.AppBase.Core/
- https://www.nuget.org/packages/CarinaStudio.AppBase.Configuration/
- https://www.nuget.org/packages/CarinaStudio.AppBase.Application/
- https://www.nuget.org/packages/CarinaStudio.AppBase.Avalonia/
- https://www.nuget.org/packages/CarinaStudio.AppBase.Application.Android/
- https://www.nuget.org/packages/CarinaStudio.AppBase.Application.Avalonia/
- https://www.nuget.org/packages/CarinaStudio.AppBase.AutoUpdate/
- https://www.nuget.org/packages/CarinaStudio.AppBase.MacOS/
- https://www.nuget.org/packages/CarinaStudio.AppBase.Tests/
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.