| 0 | 1 <div class="j"> | 
|  | 2 Business Logic Toolkit is a set of components to simplify .NET application development. | 
|  | 3 BLToolkit is provided as <a href="Source/index.htm">source code</a> that you can use "as is" or customize for your applications. | 
|  | 4 It is written in C# and compatible with .NET Framework 2.0, 3.0, and 3.5.<br/><br/> | 
|  | 5 </div> | 
|  | 6 <table border="0" cellpadding="0" cellspacing="0"> | 
|  | 7 <tr> | 
|  | 8 <td> | 
|  | 9 <% rss # rss.xml %> | 
|  | 10 <br> | 
|  | 11 <a class="rss" href="rss.xml">  RSS  </a> | 
|  | 12 </td> | 
|  | 13 <td nowrap>    </td> | 
|  | 14 <td> | 
|  | 15 <ct_table> | 
|  | 16 <ct_item link="Doc/Aspects/index.htm"         label="Aspects"        > | 
|  | 17 CacheAspect, CounterAspect, LoggingAspect, MixinAttribute. All of these are available now in C# (well, with one little limitation). | 
|  | 18 <% cs # | 
|  | 19 [/*[a]*/Counter/*[/a]*/, /*[a]*/Log/*[/a]*/] | 
|  | 20 public /*[a]*/abstract/*[/a]*/ class MyClass | 
|  | 21 { | 
|  | 22 	[/*[a]*/Cache/*[/a]*/] | 
|  | 23 	public /*[a]*/virtual/*[/a]*/ int MyMethod(int p1, int p2) | 
|  | 24 	{ | 
|  | 25 %> | 
|  | 26 </ct_item> | 
|  | 27 <mt_item link="Doc/ComponentModel/index.htm"  label="ComponentModel" >Object Binder. Add Business Objects' native purity and flexibility to your ASP.NET and WinForms applications.</mt_item> | 
|  | 28 <mt_item link="Doc/Data/index.htm"            label="Data"           > | 
|  | 29 High-level, data provider independent wrapper for ADO.NET. | 
|  | 30 <% cs # | 
|  | 31 using (DbManager db = new DbManager()) | 
|  | 32 { | 
|  | 33 	return db | 
|  | 34 		.SetCommand("SELECT * FROM Person") | 
|  | 35 		.ExecuteList<Person>(); | 
|  | 36 %> | 
|  | 37 </mt_item> | 
|  | 38 <mt_item link="Doc/DataAccess/index.htm"      label="DataAccess"     > | 
|  | 39 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! | 
|  | 40 <% cs # | 
|  | 41 public /*[a]*/abstract/*[/a]*/ class PersonAccessor : /*[a]*/DataAccessor/*[/a]*/ | 
|  | 42 { | 
|  | 43 	[/*[a]*/SqlText/*[/a]*/(@"SELECT * FROM Person WHERE FirstName = @firstName")] | 
|  | 44 	public /*[a]*/abstract/*[/a]*/ List<Person> GetPersonListByFirstName(string @firstName); | 
|  | 45 | 
|  | 46 	[/*[a]*/SprocName/*[/a]*/("sp_GetPersonListByLastName")] | 
|  | 47 	public /*[a]*/abstract/*[/a]*/ List<Person> GetPersonListByLastName(string @lastName); | 
|  | 48 %> | 
|  | 49 </mt_item> | 
|  | 50 <mt_item link="Doc/EditableObjects/index.htm" label="EditableObjects"> | 
|  | 51 Set of base classes to build custom object hierarchies. The <i>EditableObject</i> and <i>EditableList</i> classes support such methods as <i>AcceptChanges</i>, <i>RejectChanges</i>, flag <i>IsDirty</i>, and event <i>PropertyChanged</i>. | 
|  | 52 <% cs # | 
|  | 53 public /*[a]*/abstract/*[/a]*/ class TestObject : /*[a]*/EditableObject/*[/a]*/<TestObject> | 
|  | 54 { | 
|  | 55 	public /*[a]*/abstract/*[/a]*/ string FirstName { get; set; } | 
|  | 56 	public /*[a]*/abstract/*[/a]*/ string LastName  { get; set; } | 
|  | 57 } | 
|  | 58 | 
|  | 59 ... | 
|  | 60 | 
|  | 61 TestObject obj = TestObject./*[a]*/CreateInstance/*[/a]*/(); | 
|  | 62 obj.FirstName = "Tester"; | 
|  | 63 obj.AcceptChanges(); | 
|  | 64 %> | 
|  | 65 </mt_item> | 
|  | 66 <mt_item link="Doc/Mapping/index.htm"         label="Mapping"        >High performance object mapper will help you build your own ORM.</mt_item> | 
|  | 67 <mt_item link="Doc/Reflection/index.htm"      label="Reflection"     >The <i>TypeAccessor</i> class allows to avoid slowness of Reflection and gain incredible performance of applications working with types dynamically.</mt_item> | 
|  | 68 <mt_item link="Doc/Reflection/Emit/index.htm" label="Reflection.Emit"> | 
|  | 69 The <i>EmitHelper</i> class - emit with a human face. | 
|  | 70 <% cs # | 
|  | 71 emit | 
|  | 72 	// string.Format("Hello, {0}!", toWhom) | 
|  | 73 	// | 
|  | 74 	./*[a]*/ldstr/*[/a]*/   ("Hello, {0}!") | 
|  | 75 	./*[a]*/ldarg_1/*[/a]*/ | 
|  | 76 	./*[a]*/call/*[/a]*/    (typeof(string), "Format", typeof(string), typeof(object)) | 
|  | 77 | 
|  | 78 	// Console.WriteLine("Hello, World!"); | 
|  | 79 	// | 
|  | 80 	./*[a]*/call/*[/a]*/    (typeof(Console), "WriteLine", typeof(string)) | 
|  | 81 	./*[a]*/ret/*[/a]*/() | 
|  | 82 	; | 
|  | 83 %> | 
|  | 84 </mt_item> | 
|  | 85 <mt_item link="Doc/TypeBuilder/index.htm"     label="TypeBuilder"    >Extensible run-time class generator.</mt_item> | 
|  | 86 <mt_item link="Doc/Validation/index.htm"      label="Validation"     >Simple way to do a complex thing.</mt_item> | 
|  | 87 | 
|  | 88 <tr><td colspan="3" nowrap> | 
|  | 89 <br> | 
|  | 90 <br> | 
|  | 91 <!-- Search Google --> | 
|  | 92 <FORM method=GET action=http://www.google.com/custom> | 
|  | 93 <TABLE bgcolor=#FFFFFF cellspacing=0 border=0> | 
|  | 94 <tr valign=top><td> | 
|  | 95 <A HREF=http://www.google.com/search> | 
|  | 96 <IMG SRC=http://www.google.com/logos/Logo_40wht.gif border=0 ALT=Google align=middle></A> | 
|  | 97 </td> | 
|  | 98 <td> | 
|  | 99 <INPUT TYPE=text name=q size=31 maxlength=255 value=""> | 
|  | 100 <INPUT type=submit name=sa VALUE="Google Search"> | 
|  | 101 <INPUT type=hidden name=cof VALUE="S:http://www.bltoolkit.com;VLC:#55AABB;AH:center;LC:#338899;ALC:#338899;AWFID:f21e212400fdbd32;"> | 
|  | 102 <input type=hidden name=domains value="bltoolkit.net"><br><input type=radio name=sitesearch value=""> Search WWW <input type=radio name=sitesearch value="bltoolkit.net" checked> Search bltoolkit.net | 
|  | 103 </td></tr></TABLE> | 
|  | 104 </FORM> | 
|  | 105 <!-- Search Google --> | 
|  | 106 </td></tr> | 
|  | 107 | 
|  | 108 </ct_table> | 
|  | 109 | 
|  | 110 </td> | 
|  | 111 </tr> | 
|  | 112 </table> | 
|  | 113 |