Logo LLBLGen Pro
LLBLGen
  customer ID:
password:
     Forgot password?  
LLBLGen
 Buy now!  |  Download demo  |  About LLBLGen Pro  |  Support   

Product info
* Overview
* Why use LLBLGen Pro?
* Features
* Screenshots
* Customer benefits
* Requirements
* Tutorials and videos
* Roadmap
* Pricing

Downloads
* Demo
* Documentation
* Examples
* Additional downloads
* Convince your manager

Support
* Forums
* Partners
* Consultancy
* Online documentation

Misc
* Our customers
* Showcases
* LLBLGen Pro merchandise
 







 

Overview

 
LLBLGen Pro, the #1 O/R mapper and data-access tier generator for .NET, generates a complete data-access tier and business façade/support tier for you (in C# or VB.NET), using an existing database schema set. In seconds. The generated .NET code is compiler-ready and can, being compiled by the .NET C# or VB.NET compiler, be used immediately by other applications.

But that isn't all! LLBLGen Pro does more for you, increasing productivity even further: you can create Typed Lists, which are lists of Entity fields (which are mapped on a table definition or view definition and support type inheritance) from a set of entities which have 1:1, 1:n or m:1 relations which each other. It also lets you easily create Typed Views, which are 1:1 maps on existing views in your catalog / schema. Furthermore, you don't lose investments in stored procedures, because LLBLGen Pro fully supports existing stored procedures by creating wrapper code, that lets you call a stored procedure with one line of code. If that's not enough, you can always add the templates used to produce the generated code, or create your own, using our powerful Template Studio template editor (free for customers).

LLBLGen Pro saves developers a lot of time, up to over 50% of a total project's development time, and lets them focus on the real deal: business logic code, instead of having them hammer out an endless list of almost the same routines. You design your database schema's with the abstract modelling tools you always use (for example a NIAM/ORM designer like Visio, or an E/R modeller), and LLBLGen Pro takes care of the rest. All you have to do next is modify some of the names LLBLGen Pro has given entities and fields if necessary, and generate code.

LLBLGen Pro comes with a powerful, state-of-the-art user interface, which doesn't require an expensive IDE to run. Please consult LLBLGen Pro's feature list to learn more about the power of LLBLGen Pro.

Get productive now for only EUR 249.- per license, exclusive of VAT and handling costs.


Code example

A short example of the power of LLBLGen Pro's code will say more than a 1000 words. The code snippet below loads all orders of the customer "CHOPS" from the persistent storage and binds it to a winforms datagrid called orderGrid. It's as easy as 1 2 3. Because LLBLGen Pro finds the relations between the entities by itself, you can get started writing this kind of code within seconds after you've started an LLBLGen Pro project.

LLBLGen Pro supports two paradigms: SelfServicing (persistence logic is part of the entities) and Adapter (persistence logic is a service, part of an 'adapter' object and not part of the entities). Of both paradigms a short example is given below.

SelfServicing paradigm
The orders of the customer below are lazy loaded from the persistent storage. This means that when the orders are already loaded, they are not loaded again. Also, notice that the generated code doesn't need a central object which provides you the entity instances, you can work with the classes as if you've written them yourself.

// C#
CustomerEntity customer = new CustomerEntity("CHOPS");
orderGrid.DataSource = customer.Orders;
' VB.NET
Dim customer As New CustomerEntity("CHOPS")
orderGrid.DataSource = customer.Orders

If you want to refresh the orders collection of this customer, you can force a refresh, to overrule the lazy loading:
// C#
customer.GetMultiOrders(true);
' VB.NET
customer.GetMultiOrders(True)


Adapter paradigm
Adapter is the paradigm meant for disconnected applications and applications where persistence logic can't be part of or shouldn't be part of the entities. An example could be an application where the UI tier for example isn't allowed to do any persistence logic: to avoid having developers call persistence oriented methods like fetch methods or save methods, Adapter is a good alternative. Also, in distributed applications, adapter is recommended. Adapter is also suitable to use multiple database types at the same time, so fetch an entity from SqlServer and save it later on in an Oracle database for example.

Because of its nature, Adapter doesn't support Lazy Loading. However it does support, as SelfServicing, the powerful Prefetch Path feature to load related entities efficiently. This is illustrated in the following example. Prefetch Paths are normal objects and can for example be sent over the wire using remoting.

 // C#
CustomerEntity customer = new CustomerEntity("CHOPS");
PrefetchPath2 path = new PrefetchPath((int)EntityType.CustomerEntity);
path.Add(CustomerEntity.PrefetchPathOrders);
// now fetch the customer and the related orders in one go
using(DataAccessAdapter adapter = new DataAccessAdapter())
{
adapter.FetchEntity(customer, path);
}
orderGrid.DataSource = customer.Orders;
' VB.NET
Dim customer As New CustomerEntity("CHOPS")
Dim path As New PrefetchPath(CInt(EntityType.CustomerEntity))
path.Add(CustomerEntity.PrefetchPathOrders)
' now fetch the customer and the related orders in one go
Using adapter As New DataAccessAdapter()
adapter.FetchEntity(customer, path)
End Using
orderGrid.DataSource = customer.Orders


The generated code offers much more than the illustrated examples above. Feel free to put it to the test: download the demo and the example(s) provided and see for yourself!








"As a contractor, I make more money using LLBLGen Pro. I've been able to take on more clients and ship products faster because LLBLGen Pro saves me time.

My clients appreciate that I use LLBLGen Pro, because the code it creates is easy to read and well documented. The layer it produces is easily expandable, and my customers do not feel locked-in to something they can't change. LLBLGen Pro allows my customers to grow without breaking their existing products.

LLBLGen Pro allows me to focus on the details of the application, not the drudgery of talking to databases. I'm more productive, and my code is more reliable, because LLBLGen Pro handles the creation of a solid foundation.

Because LLBLGen Pro speaks to so many database formats, so do I! My client base has expanded because I use LLBLGen Pro with whatever database my client has chosen.

LLBLGen Pro is an investment that pays in customer satisfaction."

Scott Wallace