Fiona.Hosting 0.0.2

dotnet add package Fiona.Hosting --version 0.0.2
NuGet\Install-Package Fiona.Hosting -Version 0.0.2
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Fiona.Hosting" Version="0.0.2" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Fiona.Hosting --version 0.0.2
#r "nuget: Fiona.Hosting, 0.0.2"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Fiona.Hosting as a Cake Addin
#addin nuget:?package=Fiona.Hosting&version=0.0.2

// Install Fiona.Hosting as a Cake Tool
#tool nuget:?package=Fiona.Hosting&version=0.0.2

Fiona


logo


🚧 - Under Development Licence - MIT

Fiona is a web api framework written in .Net. As a developer, you will be able to create API easily and quickly. The planned key feature is a GUI where a developer will be able to create API using blocks like a blueprint in UE.

In the beginning, I used HttpListener, but in the distant future, I want to write my HTTP handshake.

The project was initiated as part of the "100 commitów" competition

The Repo will be renamed after 100 commits competition because I came up with the idea for the name after registering the repo.

Is it ready for production

Nope, maybe in the future

Road map

Must to have - I want to finish it by to end of march

  • Server
    • Folder structure
    • First Tests
    • Simple HTTP server with host
    • Startup builder
    • Routing
    • Simple Controller
    • Parsing body to object
    • Middleware
    • Passing parameters and args from the route
    • Response (status codes etc)
    • Async handle request
    • Configuration like a baseUrl, port ETC
    • Cookies
    • Logger
    • Error handler
    • Documentation 😃
  • Tools
    • Github actions to build it

Good to have - 30-60 days

  • Tools
    • Publish nuget package
  • GUI
    • Simple view where the user can drag and drop boxes
    • Nav menu
    • Creating project
    • Users can connect boxes
    • Run project
    • Adding controller
    • Adding service
    • Add a way to create simple CRUD
    • Add logic statement
    • Add loop statement

Nice to have - 30 days

  • Tools
    • Docker image
  • Server
    • File Upload
    • Inject service to a controller method
    • Auto impl register
    • Auto inject to method
    • Extension for EF
    • Security
      • CORS
    • Before call action, as an attribute
    • Support for plain text in body
  • GUI
    • Database configuration

Would to have

  • Debugger
  • Own HTTP handshake
  • Cache
  • HttpClient - user can easily use it
  • Add user login option

How to run a simple server

in Program.cs

using Fiona.Hosting;
using Fiona.Hosting.Abstractions;

IFionaHostBuilder serviceBuilder = FionaHostBuilder.CreateHostBuilder();

using IFionaHost host = serviceBuilder.Build();

host.Run();

sample controller

using Fiona.Hosting.Controller.Attributes;
using Fiona.Hosting.Routing;
using Fiona.Hosting.Routing.Attributes;
using Microsoft.Extensions.Logging;

namespace SampleFionaServer.Controller;

public class HomeController(ILogger<HomeController> logger)
{
    private readonly ILogger<HomeController> _logger = logger;
    
    [Route(HttpMethodType.Get)]
    public Task<string> Index()
    {
        _logger.Log(LogLevel.Critical, "Home Controller Index");
        return Task.FromResult("Home");
    }
}

if you want to read more click here

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
0.0.2 84 4/11/2024
0.0.1 78 4/10/2024