LLBLGen Pro v4.0 has just been released and is packed with awesome new features.
They have also introduced LLBLGen Pro Lite, a free edition which is limited to 8 entities per model. Lite doesn't come with support.
V3.x users can upgrade at a 30% discount, by logging into the customer area.
You can also get an entry into a raffle to win a free license. How?
- Like LLBLGen Pro on Facebook: https://www.facebook.com/LLBLGenPro and share the latest post there about the release.
- Retweet the following on Twitter:
What is LLBLGen Pro?
LLBLGen Pro is a data-access solution.
You use the LLBLGen Pro Designer to create the entity/domain model, define the mappings and generate source-code for one of the four supported O/R mapping frameworks: Entity Framework, NHibernate, Linq to SQL or the LLBLGen Pro Runtime Framework.
You use the generated code combined with the O/R mapping framework of your choice to access your database and consume the data in that database.
What's new in LLBLGen Pro v4.0?
- Visual studio integration (2010/2012). The designer is now fully integrated in VS.NET 2010 and VS.NET 2012. The stand-alone designer is also available so you can choose in which environment you want to use the designer.
- Table Valued Functions support. The designer now supports Table Valued Functions, which allows you to map an entity or typed view on the resultset of the Table Valued Functions.
- Action suggestions window. The designer now offers an action suggestions window, which shows what actions are recommended, given the last action of the user and the state of the project / designer. The action suggestions window helps with navigating the designer in common tasks, in case a particular feature might be hard to find.
- Custom type shortcuts now have default length/precision/scale. A type shortcut can now have a default length, precision and/or scale value which is automatically used when the type shortcut is used as a field type. This allows type aliasing and easier modeling: e.g. one could define a type shortcut called 'Email' which is a type shortcut to string with a length of 150.
- Rule based .NET Additional Interfaces / Namespaces. It's now possible to specify a rule using fine-grained expressions with an additional interface or additional namespace to define which elements of a given type will receive the additional interface or additional namespace. Rules can be assigned to additional interfaces / namespaces on the project level, to make it even easier to define attribute definitions in bulk for many elements in the project.
- Update / Delete rules for FK constraints. It's now possible to define update / delete rules (Cascade rules) for relationships and Foreign Key constraints in both database first and model first.
- SQL Server 2012 Sequence support. The SQL Server driver now retrieves Sequence definitions from SQL Server 2012 databases, and allows you to use them in mappings. You can also create new sequences for SQL Server 2012 from within the designer, like you can for Oracle, DB2, Firebird and PostgreSql.
- Char <-> String system type converter. The list of system type converters has been extended with a new char <-> string system type converter which allows you to map a char typed model element onto a DB element with type string of length(1). This is useful if you have char(1) fields in the database, which are often converted as 'string' by ADO.NET providers.
- Re-scan of enum .typeimport files. It's now possible to re-scan the folders which have .typeimport files for changes to import enum types while the designer is open. This makes importing enum types much easier as the designer doesn't have to be closed and re-opened again.
- The designer is now a .NET 4.0 application. No more .NET 4.0 runners needed.
- Various small changes and additions. See for the full list of smaller changes and additions the online documentation.
LLBLGen Pro Runtime Framework
- 50% faster entity fetches. An extensive refactoring of the internal storage of values inside an entity instance resulted in up to 50% faster entity fetches. As entity instances don't have Entity Field instances to store their values anymore (though from the outside it will appear they will, so no code will break), memory footprints are smaller too. See https://pastebin.com/AdsKitr3 for a benchmark of how much faster the fetches are compared to v3.5 and other ORMs.
- Extensible Query Result Caching. It's now possible to specify (in Linq or QuerySpec, and with minor effort also with low-level API calls) a query result cache directive to tell the runtime to cache the results for that particular query for a given amount of time. The caching system is built around an easy interface, making it easy to extend it with own cache providers for cache systems like Redis. More information...
- Table Valued Function support. It's now possible, using Linq and QuerySpec, to fetch entities and typed views which are mapped onto a table valued function resultset. Linq, QuerySpec
- DataScopes. The runtime framework now offers DataScopes which greatly help managing data in memory in desktop applications. More information...
- Runtime Libraries are now compiled against .NET 3.5. The minimum .NET version supported by the runtime framework is now .NET 3.5.
- LinqSupportClasses and QuerySpec assemblies are now merged into ORMSupportClasses. The 3 assemblies are now merged into one, SD.LLBLGen.Pro.ORMSupportClasses.dll. This makes referencing assemblies simpler.
- Inlining of Value Type Definitions in the designer. It's now possible to in-line value type definitions in the designer, which makes modeling LLBLGen Pro projects simpler. More information...
- SQL Server 2012 sequences support The runtime framework now supports SQL Server 2012 sequences in insert queries.
- TypedLists can now be fetched using QuerySpec. Before, the low-level API had to be used to fetch typedlists. In v4.0 we made it possible to fetch TypedLists using the more powerful QuerySpec query API.
- True skip/offset support. It's now possible to skip n rows in a fetch without the requirement that the number of rows fetched is a multiply of n. This is in line with how Skip works in Linq. QuerySpec now has a new operator, Offset(n) which offers the same functionality.
- Char <-> String(1) built-in type converter. The runtime framework now has a built-in type conversion for char <-> string(1), to make it possible to have a DB field of type char(1) be used as a .NET char typed field.
- Support for OData v3. The ODataSupportClasses now support OData v3 and are now compiled against WCF Data Services v5.3.
- QueryExecution Tracer. A new tracer has been added, to trace the actual query being executed. This information was already available through other tracers, but as these also emitted other information it could lead to a lot of data just to see which query was actually executed. This tracer solves that.
- All low-level query API elements, including UnitofWork2, are now XML Serializable. All low-level query API classes, like predicates, relation collection, groupby collection but also the Unit of Work classes, are now serializable to XML, and as such passable to e.g. a WCF Service. This is for Adapter only.
Entity Framework support
In v4.0 of LLBLGen Pro, Entity Framework support has been updated to support Table Valued Functions on Entity Framework v5 on .NET 4.5.
Linq to Sql support
In v4.0 of LLBLGen Pro, Linq to Sql support has been updated to support Table Valued Functions.