InfiniLore.InfiniFrame
0.1.0-preview.5
Prefix Reserved
dotnet add package InfiniLore.InfiniFrame --version 0.1.0-preview.5
NuGet\Install-Package InfiniLore.InfiniFrame -Version 0.1.0-preview.5
<PackageReference Include="InfiniLore.InfiniFrame" Version="0.1.0-preview.5" />
<PackageVersion Include="InfiniLore.InfiniFrame" Version="0.1.0-preview.5" />
<PackageReference Include="InfiniLore.InfiniFrame" />
paket add InfiniLore.InfiniFrame --version 0.1.0-preview.5
#r "nuget: InfiniLore.InfiniFrame, 0.1.0-preview.5"
#:package InfiniLore.InfiniFrame@0.1.0-preview.5
#addin nuget:?package=InfiniLore.InfiniFrame&version=0.1.0-preview.5&prerelease
#tool nuget:?package=InfiniLore.InfiniFrame&version=0.1.0-preview.5&prerelease
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
objecttoobject?, 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()andPhotinoWindow.Verbosityhave been removed from the codebase and have been replaced with aILoggerapproach so proper logging handlers can be injected. When a logger isn't defined in the DI container creating thePhotinoWindow, it will create a default console logger that will log to the console.PhotinoWindow.Fullscreenis not monitor aware and resizes to the original size of the window when you exit fullscreen.- Full rework of the
PhotinoWindowapi 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 thePhotinoWindowproperties allowed for.
Photino.NET.Server changes
PhotinoServer(webRootFolder:...)is no longer hard coded to depend on starting from theResources/folder and is now fully configurable and has the default value ofwwwroot.PhotinoServer.CreateStaticFileServer()is completely replaced by a combination ofPhotinoServerBuilder.Create()andPhotinoServerBuilder.Build()to create the static file server in a more fluent API way. This also adds thePhotinoServer.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 | Versions 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. |
-
net9.0
- InfiniLore.InfiniFrame.Js (>= 0.1.0-preview.5)
- InfiniLore.InfiniFrame.Shared (>= 0.1.0-preview.5)
- Microsoft.Extensions.Logging.Abstractions (>= 9.0.10)
- Microsoft.Extensions.Logging.Console (>= 9.0.10)
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 |