Welcome to BLToolkit

Modified on 2010/11/18 11:15 by IT — Categorized as: Default

Business Logic Toolkit is a set of components to simplify .NET application development. BLToolkit is provided as source code that you can use "as is" or customize for your applications. It is written in C# and compatible with .NET Frameworks 3.5 and 4.0, Silverlight 4, and Mono.

Aspects CacheAspect, CounterAspect, LoggingAspect, MixinAttribute. All of these are available now in C# (well, with one little limitation).
[Counter, Log]
public abstract class MyClass
    public virtual int MyMethod(int p1, int p2)
ComponentModel Object Binder. Add Business Objects' native purity and flexibility to your ASP.NET and WinForms applications.
Data High-level, data provider independent wrapper for ADO.NET.
using (DbManager db = new DbManager())
    return db
        .SetCommand("SELECT * FROM Person")
Data.Linq Linq provider for numerous databases.
from c in db.Customer where c.ContactName.Length > 5 select c.ContactName;
DataAccess Data Access Layer. Got bored of writing the same data access code over and over again? Now you are saved from being just a coding machine!
public abstract class PersonAccessor : DataAccessor
    [SqlText(@"SELECT * FROM Person WHERE FirstName = @firstName")]
    public abstract List<Person> GetPersonListByFirstName(string @firstName);

[SprocName("sp_GetPersonListByLastName")] public abstract List<Person> GetPersonListByLastName(string @lastName);
EditableObjects Set of base classes to build custom object hierarchies. The EditableObject and EditableList classes support such methods as AcceptChanges, RejectChanges, flag IsDirty, and PropertyChanged.
public abstract class TestObject : EditableObject<TestObject>
    public abstract string FirstName { get; set; }
    public abstract string LastName  { get; set; }
TestObject obj = TestObject.CreateInstance();
obj.FirstName = "Tester";
Mapping High performance object mapper will help you build your own ORM.
Reflection The TypeAccessor class allows to avoid slowness of Reflection and gain incredible performance of applications working with types dynamically.
Reflection.Emit The EmitHelper class - emit with a human face.
    // string.Format("Hello, {0}!", toWhom)
    .ldstr   ("Hello, {0}!")
    .call    (typeof(string), "Format", typeof(string), typeof(object))

// Console.WriteLine("Hello, World!"); // .call (typeof(Console), "WriteLine", typeof(string)) .ret() ;
TypeBuilder Extensible run-time class generator.