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 Framework 3.5 and 4.0.
| • Aspects |
CacheAspect, CounterAspect, LoggingAspect, MixinAttribute. All of these are available now in C# (well, with one little limitation).
[Counter, Log]
public abstract class MyClass
{
[Cache]
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")
.ExecuteList<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";
obj.AcceptChanges();
|
| • 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.
emit
// string.Format("Hello, {0}!", toWhom)
//
.ldstr ("Hello, {0}!")
.ldarg_1
.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. |