Quick links: Docs, Changelog, Nuget
SolidStack is a .NET framework consisting of several well-divided NuGet packages that allow you to focus on business logic by providing an implementation of very general design patterns useful in every kind of applications such as the Option Pattern, the Builder Pattern, the Repository Pattern, the Unit of Work Pattern and so more. In short, if you're tired of duplicated and unreadable code, this framework is for you!
The SolidStack.Core
namespace is the central point of all SolidStack packages, providing very generic concepts that are useful in any type of program, such as object construction, object equality, code flow and more.
Package | Description |
---|---|
SolidStack.Core.Guards | SolidStack.Core.Guards is an extremely simple, unambiguous and lightweight guard clause library that allow you to write pre-conditions and post-conditions for your methods in a readable way. |
SolidStack.Core.Flow | SolidStack.Core.Flow focuses on encapsulating the branching logic of your code so you can write a linear and much more readable code flow without having to deal with exceptions, null checks and unnecessary conditions. |
SolidStack.Core.Equality | SolidStack.Core.Equality is primarily useful when you have to tweak the equality of an object to implement the Value Object Pattern. All you have to do is use one of the provided abstract classes and the complex equality logic will be done for you. |
SolidStack.Core.Construction (coming soon...) | SolidStack.Core.Construction 's only responsibility is to help you construct objects. You can use the Builder Pattern provided implementation to build complex objects in a fluent way. |
The SolidStack.Domain
namespace make it easier when it's time to implement business logic by providing a strong basic implementation of the domain-driven design philosophy.
The SolidStack.Infrastructure
namespace provides a general implementation of many features that are not releated to business logic like memory deallocation, time, encryption, serialization and so on.
The SolidStack.Testing
namespace abstracts how the data is stored so that you can simply switch the way your application stores your data to almost everything such as a SQL database, a NoSQL database, local files, in memory and many more without affecting the rest of your application.
The SolidStack.Testing
namespace provide classes to help you build highly reusable and readable tests so you can simply write tests on a given interface once and then validate each concrete type of that interface with those same tests.
Check out our wiki to explore the documentation provided for the packages you want. There is documentation on each package available!
First, install NuGet. Then, install the required NuGet packages avalaible on nuget.org using the package manager console:
PM> Install-Package <PackageName>
First, you can check if your issue has already been tracked here.
Otherwise, you can check if it's already fixed by pulling the develop branch, building the solution and then using the generated DLL files direcly in your project.
If you still hit a problem, please document it and post it here.
Contributors are greatly appreciated, just follow the following steps:
- Fork the repository
- Clone the project to your own machine
- Commit changes to your own branch
- Push your work back up to your fork
- Create a pull request containing a description and your work and what is the motivation behind it
- Submit your pull request so that we can review your changes
SolidStack is Copyright © 2018 SoftFrame under the MIT license.