Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/reactivemarbles/extensions.hosting
An Extension of the Microsoft.Extensions.Hosting library with the aim of allowing windows applications to use the hosting base.
https://github.com/reactivemarbles/extensions.hosting
extensions hosting microsoft plugin reactiveui service winforms winui wpf
Last synced: 2 months ago
JSON representation
An Extension of the Microsoft.Extensions.Hosting library with the aim of allowing windows applications to use the hosting base.
- Host: GitHub
- URL: https://github.com/reactivemarbles/extensions.hosting
- Owner: reactivemarbles
- License: mit
- Created: 2023-07-24T22:03:10.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-05-18T10:27:57.000Z (7 months ago)
- Last Synced: 2024-05-18T11:26:15.259Z (7 months ago)
- Topics: extensions, hosting, microsoft, plugin, reactiveui, service, winforms, winui, wpf
- Language: C#
- Homepage:
- Size: 793 KB
- Stars: 3
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
NOTE: The namespacing has been changed to ReactiveMarbles.Extensions.Hosting. Please update your references to the new namespace.
# ReactiveMarbles.Extensions.Hosting
An Extension of the Microsoft.Extensions.Hosting library with the aim of allowing windows applications to use the hosting base.#### ReactiveMarbles.Extensions.Hosting.Identity.EntityFrameworkCore.Sqlite
![Nuget](https://img.shields.io/nuget/v/CP.Extensions.Hosting.Identity.EntityFrameworkCore.Sqlite) ![Nuget](https://img.shields.io/nuget/dt/CP.Extensions.Hosting.Identity.EntityFrameworkCore.Sqlite)```C#
.UseWebHostServices((whb, services) =>
{
services.UseEntityFrameworkCoreSqlite(whb, "DefaultConnection")
.Configure(options =>
{
// Configure options
});
})
```#### ReactiveMarbles.Extensions.Hosting.Identity.EntityFrameworkCore.SqlServer
![Nuget](https://img.shields.io/nuget/v/CP.Extensions.Hosting.Identity.EntityFrameworkCore.SqlServer) ![Nuget](https://img.shields.io/nuget/dt/CP.Extensions.Hosting.Identity.EntityFrameworkCore.SqlServer)```C#
.UseWebHostServices((whb, services) =>
{
services.UseEntityFrameworkCoreSqlServer(whb, "DefaultConnection")
.Configure(options =>
{
// Configure options
});
})
```#### ReactiveMarbles.Extensions.Hosting.MainUIThread
![Nuget](https://img.shields.io/nuget/v/CP.Extensions.Hosting.MainUIThread) ![Nuget](https://img.shields.io/nuget/dt/CP.Extensions.Hosting.MainUIThread)Used to run the main UI thread in a Wpf / WinUI / WinForms application.
#### ReactiveMarbles.Extensions.Hosting.Plugins
![Nuget](https://img.shields.io/nuget/v/CP.Extensions.Hosting.Plugins) ![Nuget](https://img.shields.io/nuget/dt/CP.Extensions.Hosting.Plugins)```C#
.ConfigurePlugins(pluginBuilder =>
{
Console.ForegroundColor = ConsoleColor.Yellow;
Console.WriteLine("Running using dotNet {0}", Environment.Version);//// Specify the location from where the Dll's are "globbed"
var process = Process.GetCurrentProcess();
var fullPath = process.MainModule?.FileName?.Replace(process.MainModule.ModuleName!, string.Empty);
Console.WriteLine("Add Scan Directories: {0}", fullPath);
pluginBuilder?.AddScanDirectories(fullPath!);//// Add the framework libraries which can be found with the specified globs
pluginBuilder?.IncludeFrameworks(@"\netstandard2.0\*.FrameworkLib.dll");//// Add the plugins which can be found with the specified globs
var runtime = targetRuntime ?? Path.GetFileName(executableLocation);
Console.WriteLine(@"Include Plugins from: \Plugins\{0}\{1}*.dll", runtime, nameSpace);
pluginBuilder?.IncludePlugins(@$"\Plugins\{runtime}\{##YourPluginNameSpace##}*.dll");
Console.ResetColor();
})
``````C#
///
/// This plug-in configures the HostBuilderContext to have the hosted services
///
public class Plugin : PluginBase
{
}
```#### ReactiveMarbles.Extensions.Hosting.PluginService
![Nuget](https://img.shields.io/nuget/v/CP.Extensions.Hosting.PluginService) ![Nuget](https://img.shields.io/nuget/dt/CP.Extensions.Hosting.PluginService)```C#
await ServiceHost.Create(
typeof(Program),
args,
hb => hb, // Configure the HostBuilder
host => {}, // Configure the Host
nameSpace: "ReactiveMarbles.Plugin").ConfigureAwait(false);
```#### ReactiveMarbles.Extensions.Hosting.ReactiveUI.WinForms
![Nuget](https://img.shields.io/nuget/v/CP.Extensions.Hosting.ReactiveUI.WinForms) ![Nuget](https://img.shields.io/nuget/dt/CP.Extensions.Hosting.ReactiveUI.WinForms)```C#
.ConfigureSplatForMicrosoftDependencyResolver()
.ConfigureWinForms()
.UseWinFormsLifetime()
```#### ReactiveMarbles.Extensions.Hosting.ReactiveUI.WinUI
![Nuget](https://img.shields.io/nuget/v/CP.Extensions.Hosting.ReactiveUI.WinUI) ![Nuget](https://img.shields.io/nuget/dt/CP.Extensions.Hosting.ReactiveUI.WinUI)```C#
.ConfigureSplatForMicrosoftDependencyResolver()
.ConfigureWinUI()
.UseWpfLifetime()
```#### ReactiveMarbles.Extensions.Hosting.ReactiveUI.Wpf
![Nuget](https://img.shields.io/nuget/v/CP.Extensions.Hosting.ReactiveUI.Wpf) ![Nuget](https://img.shields.io/nuget/dt/CP.Extensions.Hosting.ReactiveUI.Wpf)```C#
.ConfigureSplatForMicrosoftDependencyResolver()
.ConfigureWpf()
.UseWpfLifetime()
```#### ReactiveMarbles.Extensions.Hosting.SingleInstance
![Nuget](https://img.shields.io/nuget/v/CP.Extensions.Hosting.SingleInstance) ![Nuget](https://img.shields.io/nuget/dt/CP.Extensions.Hosting.SingleInstance)```C#
.ConfigureSingleInstance(builder =>
{
builder.MutexId = "{ea031523-3a63-45e5-85f2-6fa75fbf37ed}";
builder.WhenNotFirstInstance = (hostingEnvironment, logger) =>
{
// Application already started, this is another instance
logger.LogWarning("Application {0} already running.", hostingEnvironment.ApplicationName);
};
})
```#### ReactiveMarbles.Extensions.Hosting.WinForms
![Nuget](https://img.shields.io/nuget/v/CP.Extensions.Hosting.WinForms) ![Nuget](https://img.shields.io/nuget/dt/CP.Extensions.Hosting.WinForms)```C#
.ConfigureWinForms()
.UseWinFormsLifetime()
```#### ReactiveMarbles.Extensions.Hosting.WinUI
![Nuget](https://img.shields.io/nuget/v/CP.Extensions.Hosting.WinUI) ![Nuget](https://img.shields.io/nuget/dt/CP.Extensions.Hosting.WinUI)```C#
.ConfigureWinUI()
.UseWpfLifetime()
```#### ReactiveMarbles.Extensions.Hosting.Wpf
![Nuget](https://img.shields.io/nuget/v/CP.Extensions.Hosting.Wpf) ![Nuget](https://img.shields.io/nuget/dt/CP.Extensions.Hosting.Wpf)```C#
.ConfigureWpf()
.UseWpfLifetime()
```