AutoPoco v0.2 Released

Published on 2010-4-7

I've added some features to AutoPoco to make it actually functional

Configuration can now be done automatically:

IGenerationSessionFactory factory = AutoPocoContainer.Configure(x =>
{
    x.Conventions(c =>
    {
        c.UseDefaultConventions();
    });
    x.AddFromAssemblyContainingType<SimpleUser>();
});

As to start with, meaningful data isn't always required - just non-nulls and sensible defaults.

Collections can now be created with controlled content, for example:

            mSession.List<SimpleUser>()
                .Random(5)
                    .Impose(x => x.FirstName, "Bob")
                .Next(5)
                    .Impose(x => x.FirstName, "Alice")
                .All()
                .First(5)
                    .Impose(x => x.LastName, "Blue")
                .Next(5)
                    .Impose(x => x.FirstName, "Red")
                .All()
                .Get();

Will create a table of data looking something like:

# First Name Last Name
0 Bob Blue
1 Alice Blue
2 Alice Blue
3 Bob Blue
4 Bob Blue
5 Alice Red
6 Bob Red
7 Alice Red
8 Bob Red
9 Alice Red

Obviously these simple examples are only the beginning, I've also written some documentation for the existing features + new features over at the codeplex site:

I'll be using AutoPoco to generate a ridiculous amount of test data for one of our systems in the coming weeks, so I'll no doubt discover any shortcomings and rectify them, in the mean-time feel free to ask for things in the discussons forum at the Codeplex site (or in the comments here)

Why not hire me?

I am available for emergency consults, workshops, training and short-term development work anywhere in Europe

C#, JavaScript, Clojure, RavenDB, NodeJS, Architecture review.. etc

Get in touch

blog comments powered by Disqus

Fatal


hi Rob,looks interesting. Could you please compare/contrast your project with nBuilder? It seems to exist for the same purpose although possibly different directions on the fluent side of things.cheersFatal

robashton


There are a few striking differences, notably in the pre-configuration side of things - but indeed also in the fluent language used to create the objects.I think it's a bit early to be drawing comparisons, because I'm building something that I want to use - and it's not really there yet.Tell you what - when I reach 0.5, I'll write a blog entry and describe what I feel are the main differences between this and NB :)

robashton


And of course, the conventions that I'll be using to drive the setting of recognised properties are something that is going to be *very* different.

Giedrius


very nice.one thing though, would it be possible to spice up automatic configuration, let's say for string property values use not null, but property name (plus index if it's a collection or smth)? For simple numeric properties property index or smth, that would help catch mapping errors very quickly :)

robashton


Well that would just be a matter of replacing the default conventions with your own.If nobody else does it, I could easily write a set as a contrib module