All Projects → godrose → Solid

godrose / Solid

Licence: Apache-2.0 license
.NET apps done SOLID way

Programming Languages

C#
18002 projects
Gherkin
971 projects
Batchfile
5799 projects
powershell
5483 projects

Projects that are alternatives of or similar to Solid

vesselize
⛵ A JavaScript IoC container that works seamlessly with Vue.js and React.
Stars: ✭ 22 (+22.22%)
Mutual labels:  composition, ioc-container
Swift Composable Architecture
A library for building applications in a consistent and understandable way, with composition, testing, and ergonomics in mind.
Stars: ✭ 5,199 (+28783.33%)
Mutual labels:  composition, modularity
Clean Code Dotnet
🛁 Clean Code concepts and tools adapted for .NET
Stars: ✭ 4,425 (+24483.33%)
Mutual labels:  solid, composition
Coroutines Flows Modularised
Clean Architecture Modular Project: MVVM + Coroutines+ Flows + Dagger2 + LiveData + UnitTests + UITests + MockWebServer
Stars: ✭ 166 (+822.22%)
Mutual labels:  solid
Solid Tutorial Intro
Introductory tutorial to Solid
Stars: ✭ 177 (+883.33%)
Mutual labels:  solid
di
🐑 A flexible dependency injection container; It is an implementation of PSR-11
Stars: ✭ 20 (+11.11%)
Mutual labels:  ioc-container
TypeNameFormatter
A small .NET library for formatting type names à la C#.
Stars: ✭ 26 (+44.44%)
Mutual labels:  dotnet-standard
Interviews
A list of fancy questions I've been asked during the interviews I had. Some of them I ask when interviewing people.
Stars: ✭ 140 (+677.78%)
Mutual labels:  solid
understory.garden
Understory is a digital garden, a micro-publishing space for you to plant the seeds of your ideas and grow them into bi-directionally linked web portals. It's a social zettelkasten that lets users use Web Monetization to get paid when people spend time with their content.
Stars: ✭ 27 (+50%)
Mutual labels:  solid
Alsatian
TypeScript testing framework with test cases
Stars: ✭ 244 (+1255.56%)
Mutual labels:  solid
Solid Apps
A list of Solid apps
Stars: ✭ 230 (+1177.78%)
Mutual labels:  solid
Solid Principles
SOLID Principles - simple and easy explanation
Stars: ✭ 180 (+900%)
Mutual labels:  solid
Glasstron
The go-to solution to Electron composition effects, such as blurry windows.
Stars: ✭ 243 (+1250%)
Mutual labels:  composition
Architecture
.NET 6, ASP.NET Core 6, Entity Framework Core 6, C# 10, Angular 13, Clean Code, SOLID, DDD.
Stars: ✭ 2,285 (+12594.44%)
Mutual labels:  solid
Unmockable
💉 ↪️ 🎁 Unmockable objects wrapping in .NET
Stars: ✭ 35 (+94.44%)
Mutual labels:  solid
Event Sourcing Jambo
An Hexagonal Architecture with DDD + Aggregates + Event Sourcing using .NET Core, Kafka e MongoDB (Blog Engine)
Stars: ✭ 159 (+783.33%)
Mutual labels:  solid
NETCoreSync
NETCoreSync is a database synchronization framework where each client's local offline database (on each client's multiple devices) can be synchronized on-demand via network into a single centralized database hosted on a server. Data which are stored locally within each device of a single client can all be synchronized after each device have succ…
Stars: ✭ 71 (+294.44%)
Mutual labels:  dotnet-standard
Dotnet New Caju
Learn Clean Architecture with .NET Core 3.0 🔥
Stars: ✭ 228 (+1166.67%)
Mutual labels:  solid
Dntframeworkcore
Lightweight and Extensible Infrastructure for Building Web Applications - Web Application Framework
Stars: ✭ 208 (+1055.56%)
Mutual labels:  solid
Authing
🔥Authing - IDaaS/IAM solution that can Auth to web and mobile applications.
Stars: ✭ 247 (+1272.22%)
Mutual labels:  solid

Solid

The Solid library addresses different aspects in applications development. The most prominent are: Inversion-Of-Control, Modularity, Extensibility via Middleware and Composition.

The Inversion-Of-Control aspect is addressed by defining an abstraction of an IoC container which can be implemented using any existing or even new container. It's important to stress that the user is not limited to this abstract API. The abstraction is created to support different bootstrapping and modular functionality. In modern versions of .NET this functionality is modeled by Microsoft.Extensions.DependencyInjection.IServiceCollection interface and thus should be preferred over the existing Solid.Practices.IoC.IDependencyRegistrator one.

The Modularity aspect addresses the cases where there's need to add functionality during app initialization without having to include it into the initialization root thus preserving the encapsulation. There are various sorts of functionality that can be added using this approach: registering dependencies into the IoC container, initializing third-party engines, etc.

The Extensibility aspect is addressed by defining an abstraction for reusable piece of functionality that is attached to a certain object.This abstraction is represented by the following interface IMiddleware<T> which defines the Apply method in a fluent fashion.

The Composition aspect is the only one that has concrete implementation. Essentially, it provides a unified way of composing application blocks, including assemblies and composition modules, for further consumption.

Additionally, the Solid library contains various interfaces and implementation for some of the Design Patterns, including IAcceptor for the Visitor pattern, IMemento<T> for the Memento pattern and so on. This saves a lot of duplicate code when such a pattern is used during app development.

Build status

Artifacts status

Name # of Downloads Living Doc Download link
Inversion of Control Living Documentation Get package
Middleware Living Documentation Get package
Extensibility Living Documentation Get package
Composition Living Documentation Get package
Bootstrapping Living Documentation Get package
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].