ImanSoftware.Framework
1.0.6
dotnet add package ImanSoftware.Framework --version 1.0.6
NuGet\Install-Package ImanSoftware.Framework -Version 1.0.6
<PackageReference Include="ImanSoftware.Framework" Version="1.0.6" />
<PackageVersion Include="ImanSoftware.Framework" Version="1.0.6" />
<PackageReference Include="ImanSoftware.Framework" />
paket add ImanSoftware.Framework --version 1.0.6
#r "nuget: ImanSoftware.Framework, 1.0.6"
#:package ImanSoftware.Framework@1.0.6
#addin nuget:?package=ImanSoftware.Framework&version=1.0.6
#tool nuget:?package=ImanSoftware.Framework&version=1.0.6
ImanSoftware.Framework
Version: 1.0.0 | Last Updated: August 2026
The complete ImanSoftware development framework for .NET. Install one package, register one service, and get access to the entire ecosystem.
ImanSoftware.Framework is an umbrella package that bundles all ImanSoftware libraries into a single package. It simplifies application setup by automatically registering supported services and managing dependencies, allowing you to bootstrap a new project with minimal configuration.
Installation
Install the package using the .NET CLI:
dotnet add package ImanSoftware.Framework
Why ImanSoftware.Framework?
Modern applications rely on many foundational services such as caching, logging, serialization, JWT authentication, data access, and utility libraries.
Instead of installing and configuring each package individually, ImanSoftware.Framework provides a unified setup experience.
Benefits include:
- One package
- One registration method
- Automatic dependency management
- Clean Architecture friendly
- Consistent configuration
- Easy customization
Included Packages
ImanSoftware.Framework includes the following libraries as dependencies:
- ImanSoftware.Outcome
- ImanSoftware.Extensions
- ImanSoftware.Domain
- ImanSoftware.DateTimeProvider
- ImanSoftware.GuidGenerator
- ImanSoftware.Serialization
- ImanSoftware.Logging
- ImanSoftware.Caching
- ImanSoftware.CurrentUserAccessor
- ImanSoftware.Jwt
- ImanSoftware.DataAccess
- ImanSoftware.DataAccess.Dapper
- ImanSoftware.FileStorage
All required package dependencies are resolved automatically.
Features
- ✅ One-line application setup
- ✅ Automatic Dependency Injection registration
- ✅ Centralized configuration
- ✅ Configurable service registration
- ✅ Automatic dependency management
- ✅ Clean Architecture ready
- ✅ ASP.NET Core friendly
- ✅ Highly customizable
AddImanFramework()
The AddImanFramework() extension method registers all selected framework services in the application's dependency injection container.
Example:
builder.Services.AddImanFramework(
new ImanFrameworkDependencyInjectionOptions
{
AddDateTimeProvider = true,
AddGuidGenerator = true,
AddJsonSerializer = true,
AddCacheService = true,
AddJwtService = true,
JwtConfigureOptions = builder.Configuration
.GetSection("Jwt")
.Get<JwtOptions>(),
AddDataAccess = true,
ConnectionString = builder.Configuration
.GetConnectionString("DefaultConnection")
});
ImanFrameworkDependencyInjectionOptions
Configure which framework components should be registered.
Example options include:
| Option | Description |
|---|---|
AddDateTimeProvider |
Registers the DateTime provider |
AddGuidGenerator |
Registers the GUID generator |
AddJsonSerializer |
Registers the JSON serializer |
AddCacheService |
Registers the cache service |
AddJwtService |
Registers JWT services |
JwtConfigureOptions |
Configures JWT authentication |
AddDataAccess |
Registers data access services |
ConnectionString |
Database connection string |
Only the services you enable are registered.
Custom Service Registration
AddImanFramework() also supports custom service registration, allowing additional services to be configured during framework initialization.
Example:
builder.Services.AddImanFramework(
options,
services =>
{
services.AddScoped<IMyService, MyService>();
services.AddSingleton<MyConfiguration>();
});
This provides a centralized place for both framework and application service registration.
Complete Example
using ImanSoftware.Framework;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddImanFramework(
new ImanFrameworkDependencyInjectionOptions
{
AddDateTimeProvider = true,
AddGuidGenerator = true,
AddJsonSerializer = true,
AddCacheService = true,
AddJwtService = true,
JwtConfigureOptions = builder.Configuration
.GetSection("Jwt")
.Get<JwtOptions>(),
AddDataAccess = true,
ConnectionString = builder.Configuration
.GetConnectionString("DefaultConnection")
});
var app = builder.Build();
app.UseJwtAuthentication();
app.Run();
Automatic Registrations
Depending on the selected options, the framework automatically registers services such as:
- Date & Time Provider
- GUID Generator
- JSON Serializer
- Logger Adapter
- Cache Service
- Current User Accessor
- JWT Services
- SQL Data Access
- Dapper Integration
- Local File Storage
This eliminates repetitive startup configuration across projects.
Design Goals
- One-package experience
- Convention over configuration
- Dependency Injection first
- Modular architecture
- Lightweight
- Highly extensible
- Clean Architecture compatible
- Production ready
- Minimal setup
Requirements
- .NET Standard 2.0+
- .NET 6+
- .NET 7+
- .NET 8+
- .NET 9+
- .NET 10.0+
Included Dependencies
- ImanSoftware.Outcome
- ImanSoftware.Extensions
- ImanSoftware.Domain
- ImanSoftware.DateTimeProvider
- ImanSoftware.GuidGenerator
- ImanSoftware.Serialization
- ImanSoftware.Logging
- ImanSoftware.Caching
- ImanSoftware.CurrentUserAccessor
- ImanSoftware.Jwt
- ImanSoftware.DataAccess
- ImanSoftware.DataAccess.Dapper
- ImanSoftware.FileStorage
Author
Iman Estiri
📧 contact.imanestiri@gmail.com
📧 dev.imanestiri@gmail.com
GitHub:
License
This project is licensed under the MIT License.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. 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. |
-
net10.0
- ImanSoftware.Caching (>= 1.0.2)
- ImanSoftware.CurrentUserAccessor (>= 1.0.0)
- ImanSoftware.DataAccess.Dapper (>= 1.0.0)
- ImanSoftware.DateTimeProvider (>= 1.0.0)
- ImanSoftware.Domain (>= 1.0.6)
- ImanSoftware.Extensions (>= 1.0.3)
- ImanSoftware.FileStorage (>= 1.0.0)
- ImanSoftware.GuidGenerator (>= 1.0.0)
- ImanSoftware.Jwt (>= 1.0.0)
- ImanSoftware.Logging (>= 1.0.1)
- ImanSoftware.Outcome (>= 1.0.3)
- ImanSoftware.Serialization (>= 1.0.2)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.