2
0
mirror of https://github.com/esiur/esiur-dotnet.git synced 2025-05-06 03:32:57 +00:00
This commit is contained in:
Ahmed Zamil 2024-10-12 14:06:08 +03:00
parent b57352b013
commit 6cae4b3086
2 changed files with 78 additions and 24 deletions

View File

@ -1,32 +1,35 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<Description>Esiur distributed resource framework support for ASP.Net</Description> <Description>Esiur distributed resource framework support for ASP.Net</Description>
<Copyright>Ahmed Kh. Zamil</Copyright> <Copyright>Ahmed Kh. Zamil</Copyright>
<PackageProjectUrl>http://www.esiur.com</PackageProjectUrl> <PackageProjectUrl>http://www.esiur.com</PackageProjectUrl>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild> <GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<Version>1.0.0</Version> <Version>1.0.0</Version>
<Authors>Ahmed Kh. Zamil</Authors> <Authors>Ahmed Kh. Zamil</Authors>
<Company>Esiur Foundation</Company> <Company>Esiur Foundation</Company>
<PackageLicenseUrl>https://github.com/Esiur/Esiur-dotnet/blob/master/LICENSE</PackageLicenseUrl> <PackageProjectUrl>http://www.esiur.com</PackageProjectUrl>
<PackageProjectUrl>http://www.esiur.com</PackageProjectUrl> <RepositoryUrl>https://github.com/esiur/esiur-dotnet/</RepositoryUrl>
<RepositoryUrl>https://github.com/esiur/esiur-dotnet/</RepositoryUrl>
<TargetFramework>net8.0</TargetFramework> <PackageReadmeFile>README.md</PackageReadmeFile>
<ImplicitUsings>enable</ImplicitUsings> <PackageLicenseExpression>MIT</PackageLicenseExpression>
<Nullable>enable</Nullable>
<Title>Esiur ASP.Net Middleware</Title>
</PropertyGroup>
<ItemGroup> <TargetFramework>net8.0</TargetFramework>
<PackageReference Include="Microsoft.AspNetCore.Http.Abstractions" Version="2.1.1" /> <ImplicitUsings>enable</ImplicitUsings>
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="8.0.2" /> <Nullable>enable</Nullable>
<PackageReference Include="Microsoft.Extensions.Options" Version="8.0.2" /> <Title>Esiur ASP.Net Middleware</Title>
</ItemGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\Esiur\Esiur.csproj" /> <PackageReference Include="Microsoft.AspNetCore.Http.Abstractions" Version="2.1.1" />
</ItemGroup> <PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="8.0.2" />
<PackageReference Include="Microsoft.Extensions.Options" Version="8.0.2" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Esiur\Esiur.csproj" />
<None Include="README.md" Pack="true" PackagePath="\"/>
</ItemGroup>
</Project> </Project>

View File

@ -0,0 +1,51 @@
# Esiur ASP.Net Core Middleware
This project brings Esiur distributed resource framework to ASP.Net using WebSockets in the ASP.Net pipeline.
# Installation
- Nuget
```Install-Package Esiur.AspNetCore```
- Command-line
``` dotnet add package Esiur.AspNetCore ```
# Example
```C#
var builder = WebApplication.CreateBuilder(args);
builder.WebHost.UseUrls("http://localhost:8080");
var app = builder.Build();
app.UseWebSockets();
await Warehouse.Put("sys", new MemoryStore());
await Warehouse.Put("sys/service", new MyResource());
var server = await Warehouse.Put("sys/server", new DistributedServer());
await Warehouse.Open();
app.UseEsiur(new EsiurOptions() { Server = server });
await app.RunAsync();
```
## MyResource.cs
```c#
[Resource]
public partial class MyResource
{
[Export] int number;
[Export] public string Hello() => "Hi";
}
```
## Calling from JavaScript
Esiur provides a command line interpreter for debugging using Node.JS which can be installed using
```npm install -g esiur```
To access the shell
```esiur shell```
Now you can simply test the running service typing
```javascript
let x = await wh.get("iip://localhost:8080/sys/service", {secure: false});
await x.Hello();
```