# Simplify

`Simplify`

is a set of .NET libraries that provide infrastructure for your applications. DI and mocking friendly.

## Packages

### Dependency Injection

#### Simplify.DI

A common interface for IOC containers. Decouples users and frameworks (that are based on Simplify.DI) from dependency on IOC containers. Disciplines and unifies dependencies registration, verification and objects creation.

#### Simplify.DI IOC Containers Providers

##### CastleWindsor

##### Microsoft.Extensions.DependencyInjection

##### SimpleInjector

#### Simplify.DI Integrations

Packages which provides ability to use Simplify.DI as IOC container in some existing technologies.

##### Microsoft.Extensions.DependencyInjection

##### WCF

### Repositories & Databases

#### Simplify.FluentNHibernate

FluentNHibernate easy configuration, session extensions and more.

#### Simplify.Repository

Generic Repository, Unit of Work patterns interfaces. Domain objects base interfaces.

#### Simplify.Repository.FluentNHibernate

Simplify.Repository implementation for FluentNHibernate.

### Schedulers

#### Simplify.Scheduler

A scheduler services framework with DI. Allows you to simply create applications which can work on schedule.

#### Simplify.WindowsServices

A scheduler Windows Services framework with DI. Allows you to simply create Windows Service based applications which can work on schedule.

### Main

#### Simplify.Log

Simple file-based logger.

#### Simplify.Mail

SMTP mail sender with additional options and configuration.

#### Simplify.Pipelines

Сonveyor objects processing patterns interfaces and base classes.

#### Simplify.Resources

Package for getting localizable strings from assembly resource files.

#### Simplify.System

Classes to get assembly information and ambient context for wrapping `DateTime.Now`

, `DateTime.UtcNow`

, `DateTime.Today`

properties and more.

#### Simplify.System.Sources

`Simplify.System`

source code package for embedding.

#### Simplify.Templates

Text templates engine with fluent-interfaces, localization and more.

### Utility

#### Simplify.Cryptography

Cryptography functions.

#### Simplify.Extensions

System classes extensions.

#### Simplify.Extensions.Sources

`Simplify.Extensions`

source code package for embedding.

#### Simplify.IO

IO utility functions.

#### Simplify.String

String utility functions.

#### Simplify.String.Sources

`Simplify.String`

source code package for embedding.

#### Simplify.Xml

XML extension functions and serializer.

#### Simplify.Xml.Sources

`Simplify.Xml`

source code package for embedding.

### Desktop

#### Simplify.Windows.Forms

`Simplify.Windows.Forms`

controls set.

## Contributing

There are many ways in which you can participate in the project. Like most open-source software projects, contributing code is just one of many outlets where you can help improve. Some of the things that you could help out with are:

- Documentation (both code and features)
- Bug reports
- Bug fixes
- Feature requests
- Feature implementations
- Test coverage
- Code quality
- Sample applications

## License

Licensed under the GNU LESSER GENERAL PUBLIC LICENSE