InfiniLore.InfiniFrame 0.1.0-preview.5

Prefix Reserved
This is a prerelease version of InfiniLore.InfiniFrame.
dotnet add package InfiniLore.InfiniFrame --version 0.1.0-preview.5
                    
NuGet\Install-Package InfiniLore.InfiniFrame -Version 0.1.0-preview.5
                    
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="InfiniLore.InfiniFrame" Version="0.1.0-preview.5" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="InfiniLore.InfiniFrame" Version="0.1.0-preview.5" />
                    
Directory.Packages.props
<PackageReference Include="InfiniLore.InfiniFrame" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add InfiniLore.InfiniFrame --version 0.1.0-preview.5
                    
#r "nuget: InfiniLore.InfiniFrame, 0.1.0-preview.5"
                    
#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.
#:package InfiniLore.InfiniFrame@0.1.0-preview.5
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=InfiniLore.InfiniFrame&version=0.1.0-preview.5&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=InfiniLore.InfiniFrame&version=0.1.0-preview.5&prerelease
                    
Install as a Cake Tool

InfiniLore.InfiniFrame

A rework of the Photino.Net, Photino.Net.Server and InfiniFrame.Blazor and Photino.Native projects, to make them more modern and easier to use within a DI container.

This project is mainly meant to be used as a dependency for Infinilore, so my goals are focused on that, but it should be possible to use this as a replacement for the original Photino.NET, Photino.NET.Server and InfiniFrame.Blazor projects, minding the breaking changes mentioned below.

This project is not affected with- or endorsed by the original authors of Photino.


Status

This project is currently in a very early stage of converting the old code base to more modern C# and .NET.

Breaking changes

Although most of the original API has been kept as is, the introduction of the builder pattern, switching to a more loosely defined fluent-api style and other changes, have brought many breaking changes to the codebase.

Some changes so far, have been described below:

Solution wide changes

  • Nullability: The entire project now has nullable enabled, this means that some of the return types of methods have been changed from object to object?, but most of the time this shouldn't be a problem given this now mimics what the actual code base was doing all along.

Photino.NET changes

  • PhotinoWindow.Log() and PhotinoWindow.Verbosity have been removed from the codebase and have been replaced with a ILogger approach so proper logging handlers can be injected. When a logger isn't defined in the DI container creating the PhotinoWindow, it will create a default console logger that will log to the console.
  • PhotinoWindow.Fullscreen is not monitor aware and resizes to the original size of the window when you exit fullscreen.
  • Full rework of the PhotinoWindow api to separate initializing logic from run time logic. This means we start the builder chain with the options for more fluent api extensions than what the PhotinoWindow properties allowed for.

Photino.NET.Server changes

  • PhotinoServer(webRootFolder:...) is no longer hard coded to depend on starting from the Resources/ folder and is now fully configurable and has the default value of wwwroot.
  • PhotinoServer.CreateStaticFileServer() is completely replaced by a combination of PhotinoServerBuilder.Create() and PhotinoServerBuilder.Build() to create the static file server in a more fluent API way. This also adds the PhotinoServer.GetAttachedWindow() method to immediately get an attached window to the server without further setup.

Building and running

For building and running the project, you will need to have the .NET 9 SDK installed. You will also need to add the nuget cli tool to your PATH.

The solution is set up in such a way that you can build the entire solution without having to need any additional dependencies first.


Repo history

This repo was originally forked from Photino.NET and then the history of the InfiniFrame.Blazor and Photino.Net.Server repositories were merged into this. By merging the histories, it was possible to ease development a lot, especially whilst also preserving the original commit history and attribution from the contributors of Photino.

This was also done for the Photino.Native library, but given the extensive work that had already been done, git was seemingly unable to fully merge the commit history without losing the original commit history.

License

Unlike the other projects in the InfiniLore ecosystem, which all follow GPL or LGPL, this repo follows the same Apache-2.0 license file from Photino.NET to adhere to the original licensing without the need for extra modifications to the license.

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

NuGet packages (2)

Showing the top 2 NuGet packages that depend on InfiniLore.InfiniFrame:

Package Downloads
InfiniLore.InfiniFrame.Blazor

Package Description

InfiniLore.InfiniFrame.Server

Package Description

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.1.0-preview.5 122 11/3/2025
0.1.0-preview.4 124 11/3/2025