Pluggable framework for .NET to work with popular ORMs(NHibernate, EntityFramework, Linq2Db) using the same syntax. Antler framework is an abstraction over ORM that you like to use.
- To use common syntax to work with different ORMs, so we could easily substitute one ORM with another.
- To have very easy "fluent" configuration.
- To be fully pluggable. For example, it should be damn easy to choose which ORM, database or IoC container to use.
- Applications that use framework should be easily testable(unit & integration tests).
Inserting Teams in database:
UnitOfWork.Do(uow =>
{
uow.Repo<Team>().Insert(new Team() {Name = "Penguins", Description = "Hockey"});
uow.Repo<Team>().Insert(new Team() {Name = "Capitals", Description = "Hockey"});
uow.Repo<Team>().Insert(new Team() {Name = "Nets", Description = "Basketball"});
});
Querying Teams from database:
var found = UnitOfWork.Do(uow => uow.Repo<Team>().AsQueryable().Where(t => t.Description == "Hockey").
OrderBy(t => t.Name).ToArray());
For example, let's configure application to use (NHibernate + Sqlite database) and Castle Windsor container:
var configurator = new AntlerConfigurator();
configurator.UseWindsorContainer().UseStorage(NHibernateStorage.Use.
WithDatabaseConfiguration(SQLiteConfiguration.Standard.InMemory()).
WithMappings(assemblyWithMappings));
Let's configure application to use (EntityFramework Code First + SqlServer) and StructureMap container:
var configurator = new AntlerConfigurator();
configurator.UseStructureMapContainer().UseStorage(EntityFrameworkStorage.Use.
WithConnectionString(connectionString).
WithMappings(assemblyWithMappings));
More info in wiki: https://github.com/SmartElk/Antler/wiki/Wiki-home
Core library: https://www.nuget.org/packages/Antler.Core/
NHibernate adapter: https://www.nuget.org/packages/Antler.NHibernate/
EntityFramework Code First adapter: https://www.nuget.org/packages/Antler.EntityFramework/
Linq2Db adapter: https://www.nuget.org/packages/Antler.Linq2Db/
Windsor adapter: https://www.nuget.org/packages/Antler.Windsor/
StructureMap adapter: https://www.nuget.org/packages/Antler.StructureMap/
http://smartelk.com:8111/guestLogin.html?guest=1
Largely based on the great NoSQL framework https://github.com/Kostassoid/Anodyne.