<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-35380108</id><updated>2011-04-22T02:18:05.344+02:00</updated><title type='text'>BusinessLayer Builder</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://businesslayer.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35380108/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://businesslayer.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Raphael</name><uri>http://www.blogger.com/profile/00612391839668849904</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>8</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-35380108.post-4854722681589202711</id><published>2008-12-05T17:15:00.002+01:00</published><updated>2008-12-05T17:23:09.290+01:00</updated><title type='text'>New version of "basi"(0.2.1)</title><content type='html'>&lt;span style="font-family: verdana;"&gt;I've just released the version 0.2.1 of "basi".&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;Changes made to the class &lt;span style="font-weight: bold;"&gt;EntityBase &lt;/span&gt;are intended to get a rid of &lt;span style="font-weight: bold;"&gt;time wasting&lt;/span&gt; pieces of code.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;Features requests codes are : &lt;/span&gt;&lt;br /&gt;      &lt;a style="font-family: verdana;" href="https://sourceforge.net/tracker/index.php?func=detail&amp;amp;aid=2392350&amp;amp;group_id=178616&amp;amp;atid=885853"&gt;2392350&lt;/a&gt;&lt;span style="font-family: verdana;"&gt; useless overhead of ID and DataModifica properties&lt;/span&gt;&lt;br /&gt;      &lt;a style="font-family: verdana;" href="https://sourceforge.net/tracker/index.php?func=detail&amp;amp;aid=2392345&amp;amp;group_id=178616&amp;amp;atid=885853"&gt;2392345&lt;/a&gt;&lt;span style="font-family: verdana;"&gt; with (nolock) statement in SQL select&lt;/span&gt;&lt;br /&gt;      &lt;a style="font-family: verdana;" href="https://sourceforge.net/tracker/index.php?func=detail&amp;amp;aid=2392343&amp;amp;group_id=178616&amp;amp;atid=885853"&gt;2392343&lt;/a&gt;&lt;span style="font-family: verdana;"&gt; StringBuilder to build dynamic SQL code&lt;/span&gt;&lt;br /&gt;      &lt;a style="font-family: verdana;" href="https://sourceforge.net/tracker/index.php?func=detail&amp;amp;aid=2392341&amp;amp;group_id=178616&amp;amp;atid=885853"&gt;2392341 &lt;/a&gt;&lt;span style="font-family: verdana;"&gt;Use of Generics&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;Now this class needs at least &lt;/span&gt;&lt;span style="font-weight: bold; font-family: verdana;"&gt;.NET 2.0&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35380108-4854722681589202711?l=businesslayer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://businesslayer.blogspot.com/feeds/4854722681589202711/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35380108&amp;postID=4854722681589202711&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35380108/posts/default/4854722681589202711'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35380108/posts/default/4854722681589202711'/><link rel='alternate' type='text/html' href='http://businesslayer.blogspot.com/2008/12/new-version-of-basi021.html' title='New version of &quot;basi&quot;(0.2.1)'/><author><name>Raphael</name><uri>http://www.blogger.com/profile/00612391839668849904</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35380108.post-116437075354293490</id><published>2006-11-24T13:15:00.000+01:00</published><updated>2006-11-24T13:19:13.553+01:00</updated><title type='text'>Let's stop war!</title><content type='html'>&lt;span style="font-family: trebuchet ms;"&gt;This is a very interesting event! &lt;a href="http://www.globalorgasm.org/"&gt;www.globalorgasm.org&lt;/a&gt;&lt;/span&gt;  &lt;span style="font-family: trebuchet ms;"&gt;to change the energy field of the earth, let's make love!&lt;br /&gt;I think that's such a strange thing, but I'm going to partecipate, me and my ex girlfiried! Let's make love as much as you can.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35380108-116437075354293490?l=businesslayer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://businesslayer.blogspot.com/feeds/116437075354293490/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35380108&amp;postID=116437075354293490&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35380108/posts/default/116437075354293490'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35380108/posts/default/116437075354293490'/><link rel='alternate' type='text/html' href='http://businesslayer.blogspot.com/2006/11/lets-stop-war.html' title='Let&apos;s stop war!'/><author><name>Raphael G.</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://photos1.blogger.com/blogger/6476/3657/1600/raphael_cena_kubelec.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35380108.post-116003840008116903</id><published>2006-10-05T10:52:00.000+02:00</published><updated>2006-10-05T10:54:29.210+02:00</updated><title type='text'>Entity HOW-TO</title><content type='html'>&lt;span style="font-family:times new roman;"&gt;&lt;span style="font-size:130%;"&gt;&lt;strong&gt;&lt;span style="font-family:trebuchet ms;"&gt;Using the entities HOW-TO&lt;/span&gt; &lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;There is a class for each table, using those classes you can instantiate entities wich can be persistant.&lt;br /&gt;To do this, you have to take a look at the base classes, RecordBase, Column, EntityList.&lt;br /&gt;Each entity class inherits RecordBase, wich contains methods and attributes that allows the subclass to read, write (insert or update) and delete a record in the database. The subclass is just a RecordBase class with a fixed table schema and properties to access values of fields.&lt;br /&gt;&lt;br /&gt;e.g.&lt;br /&gt;Dim user As New User&lt;br /&gt;&lt;br /&gt;user is an entity of type “User”, you can create a new user...&lt;br /&gt;&lt;br /&gt;user.UserName = “raphael.gabbarelli”&lt;br /&gt;user.Password = “passwd”&lt;br /&gt;user.ExpirationDate = (DateTime.Now).addYears(1)&lt;br /&gt;&lt;br /&gt;...or you can read an existing user in the database...&lt;br /&gt;&lt;br /&gt;user.Read(15, connection, transaction)&lt;br /&gt;&lt;br /&gt;...and then modify it...&lt;br /&gt;&lt;br /&gt;user.ExpirationDate = new DateTime(2008, 10, 31)&lt;br /&gt;&lt;br /&gt;...once you need to make it persistant...&lt;br /&gt;&lt;br /&gt;Dim id as Integer = user.Write(connection, transaction)&lt;br /&gt;&lt;br /&gt;...Write will return in Integer &gt;= 1 if the whole writing has gone well, -1 if there were some problems!&lt;br /&gt;To write an entity on the database, you always use Write, both if it's a new entity or an existing one reda from the database.&lt;br /&gt;&lt;br /&gt;Calling Delete you can remove it from the database...&lt;br /&gt;&lt;br /&gt;Dim result as Boolean = user.Delete(connection, transaction)&lt;br /&gt;&lt;br /&gt;result will be true if the whole deleting has gone well.&lt;br /&gt;&lt;br /&gt;Many times you'll need to execute a query on the table to obtain a list of entities, in this case you can use the ReadMany method...&lt;br /&gt;&lt;br /&gt;Dim loader As New User()&lt;br /&gt;Dim params() As New Sq1Parameters(){ New SqlParameter(“@UserName”, “raphael.gabbarelli” }&lt;br /&gt;Dim lista As New EntityList = loader.ReadMany(“UserName = @UserName”, params, connection, transaction)&lt;br /&gt;&lt;br /&gt;ReadMany needs the “where condition” of a SQL statement, and an array of parameters. If you don't have a where condition, you can call ReadMany this way :&lt;br /&gt;&lt;br /&gt;Dim lista As New EntityList = loader.ReadMany(“”, Nothing, connection, transaction)&lt;br /&gt;&lt;br /&gt;EntityList is a collection of entities. It implements IList, so it can be used as a traditional collection&lt;br /&gt;Elements in a EntityList are RecordBase, so you need to cast those object into the right type (the type of the loader).&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Relations&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Usually tables are related between them. An entity class models those relations in 2 ways :&lt;br /&gt;in a 1...n relation, if the class is in the “n” side of the relation, the relation will be shown as a function returning an entity (the type will be the type of the “1” side of the relation).&lt;br /&gt;If the class is on the “1” side of the relation, you'll see a function returning an EntityList.&lt;br /&gt;&lt;br /&gt;e.g.&lt;br /&gt;&lt;br /&gt;Dim user As New User()&lt;br /&gt;user.Read(18, connection)&lt;br /&gt;Dim profiles As EntityList = user.Profiles(connection)&lt;br /&gt;&lt;br /&gt;Dim firstProfile As Profile = CType(profiles(0), Profile)&lt;br /&gt;Dim relatedUser As User = firstProfile.User(connection)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Probably you'll have to override some methods such as Write or Delete, in this case I think it would be a good idea to override Write and Delete. Why?&lt;br /&gt;Because il User and Profile are related 1...n profiles won't make sense without a user, so if I delete a user, I would be able to delete all profiles related to this user.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35380108-116003840008116903?l=businesslayer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://businesslayer.blogspot.com/feeds/116003840008116903/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35380108&amp;postID=116003840008116903&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35380108/posts/default/116003840008116903'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35380108/posts/default/116003840008116903'/><link rel='alternate' type='text/html' href='http://businesslayer.blogspot.com/2006/10/entity-how-to.html' title='Entity HOW-TO'/><author><name>Raphael G.</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://photos1.blogger.com/blogger/6476/3657/1600/raphael_cena_kubelec.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35380108.post-115997771038683297</id><published>2006-10-04T17:54:00.000+02:00</published><updated>2006-10-04T18:01:50.403+02:00</updated><title type='text'>The first bug has just been closed!</title><content type='html'>&lt;span style="font-family:trebuchet ms;"&gt;A bug was affecting the Write method called on a new entity.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Trebuchet MS;"&gt;In the previous version, if &lt;/span&gt;&lt;span style="font-family:Trebuchet MS;"&gt;any field of a new entity is Nothing, the Insert method (it's a private method called by Write) will generate SqlParameters with a Nothing value.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Trebuchet MS;"&gt;A SqlParameter could't accept a Nothing value, instead of it we have to use a System.DbNull.Value object.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Trebuchet MS;"&gt;In this new version, if the value of an entity is Nothing, the SqlParameter will contains a System.DbNull.Value value.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Trebuchet MS;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Trebuchet MS;"&gt;Thanks to Ermanno Piergiacomi (Italy)&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35380108-115997771038683297?l=businesslayer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://businesslayer.blogspot.com/feeds/115997771038683297/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35380108&amp;postID=115997771038683297&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35380108/posts/default/115997771038683297'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35380108/posts/default/115997771038683297'/><link rel='alternate' type='text/html' href='http://businesslayer.blogspot.com/2006/10/first-bug-has-just-been-closed.html' title='The first bug has just been closed!'/><author><name>Raphael G.</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://photos1.blogger.com/blogger/6476/3657/1600/raphael_cena_kubelec.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35380108.post-115988914831801277</id><published>2006-10-03T17:23:00.000+02:00</published><updated>2006-10-03T17:25:48.326+02:00</updated><title type='text'>BusinessLayer Builder HOW TO</title><content type='html'>&lt;span style="font-family:trebuchet ms;"&gt;&lt;strong&gt; &lt;span style="font-size:130%;"&gt;How does it work?&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;BLB is a code generator that creates entity classes usefull to interact with the database of the application.&lt;br /&gt;&lt;strong&gt;The first step&lt;/strong&gt; is : design the database.&lt;br /&gt;There are 2 constraints: the first is about the primary key that must be called ID, Integer, identity from 1 to x, the second constraint is about the timestamp of the record. At this time BLB contains some Italian words..so you must have a field called DataModifica, DateTime. This field name is going to be changed in UpdateTime.&lt;br /&gt;If the database contains also Foreign keys the code generator will also generate functions usefull to navigate relations.&lt;br /&gt;&lt;strong&gt;The second step&lt;/strong&gt; is : run the application!&lt;br /&gt;Define the connection parameters, press “Connect”, and you'll be connected to the database if parameters are good, if not you will see some messages in the “System error” text area.&lt;br /&gt;&lt;strong&gt;The third step&lt;/strong&gt; : select namespace, output folder and tables.&lt;br /&gt;Once you are connected to the database, you will se a list of tables in the checkbox list. You can chose those tables wich interests you. You have to define both namespace and output folder. The first is the .NET namespace you want to assign to classes, the output folder is the folder in wich classes files will be generated.&lt;br /&gt;&lt;strong&gt;The final step&lt;/strong&gt; : generate classes.&lt;br /&gt;Classes are ready to be generated in the output folder! If there are alredy files with the same name, BLB will delete old files and generate the new ones. In thi step the code generator will also generate one stored procedure for each selected table, if there is already a procedure, the old one will be dropped and a new one is going to take it's place.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;br /&gt;To use those classes in your VB.NET project, you have to insert in the project also the tree classes included in the folder “basi” (the name is going to be changed into “base”).&lt;br /&gt;&lt;br /&gt;Now you can use your entity classes!&lt;br /&gt;&lt;br /&gt;I'm going to write a "Entities HOW-TO", it'll be available as soon as possible!&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35380108-115988914831801277?l=businesslayer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://businesslayer.blogspot.com/feeds/115988914831801277/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35380108&amp;postID=115988914831801277&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35380108/posts/default/115988914831801277'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35380108/posts/default/115988914831801277'/><link rel='alternate' type='text/html' href='http://businesslayer.blogspot.com/2006/10/businesslayer-builder-how-to.html' title='BusinessLayer Builder HOW TO'/><author><name>Raphael G.</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://photos1.blogger.com/blogger/6476/3657/1600/raphael_cena_kubelec.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35380108.post-115988706491548352</id><published>2006-10-03T16:49:00.000+02:00</published><updated>2006-10-03T16:51:04.923+02:00</updated><title type='text'>Released the translated GUI</title><content type='html'>&lt;span style="font-family:trebuchet ms;"&gt;The Graphical User Interface now is in English.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Trebuchet MS;"&gt;As soon as possible, the source code will be in English too!&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Trebuchet MS;"&gt;I'm still working on the road map and on technical documents.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35380108-115988706491548352?l=businesslayer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://businesslayer.blogspot.com/feeds/115988706491548352/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35380108&amp;postID=115988706491548352&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35380108/posts/default/115988706491548352'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35380108/posts/default/115988706491548352'/><link rel='alternate' type='text/html' href='http://businesslayer.blogspot.com/2006/10/released-translated-gui.html' title='Released the translated GUI'/><author><name>Raphael G.</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://photos1.blogger.com/blogger/6476/3657/1600/raphael_cena_kubelec.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35380108.post-115985905132108995</id><published>2006-10-03T09:00:00.000+02:00</published><updated>2006-10-03T09:04:17.216+02:00</updated><title type='text'>Working on this BLOG</title><content type='html'>&lt;span style="font-family:trebuchet ms;"&gt;This blog is ok just in Firefox, using Internet Exploder you may have some missing chars!!!&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Trebuchet MS;"&gt;So at the moment I'm working to make this blog better!&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;I'm going to release it today (Italian business day).&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35380108-115985905132108995?l=businesslayer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://businesslayer.blogspot.com/feeds/115985905132108995/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35380108&amp;postID=115985905132108995&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35380108/posts/default/115985905132108995'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35380108/posts/default/115985905132108995'/><link rel='alternate' type='text/html' href='http://businesslayer.blogspot.com/2006/10/working-on-this-blog.html' title='Working on this BLOG'/><author><name>Raphael G.</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://photos1.blogger.com/blogger/6476/3657/1600/raphael_cena_kubelec.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-35380108.post-115978482893787984</id><published>2006-10-02T12:25:00.000+02:00</published><updated>2006-10-02T12:27:08.946+02:00</updated><title type='text'>The first release</title><content type='html'>&lt;span style="font-family:trebuchet ms;"&gt;The first release of BusinessLayer Builder is on-line!&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Trebuchet MS;"&gt;But what is "BusinessLayer Builder"?&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;BusinessLayer Builder (BLB) is a .NET (at the moment) code generator who generates VB.NET classes (at the moment!) coding the "Entities" of the project. The first step, building an application (a bancking one e.g.), is designing the database. If you want to write a good Object oriented code you should have classes to interact with the database without accessing directly to it.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;br /&gt;Writing entity classes is &lt;strong&gt;boring&lt;/strong&gt;, &lt;strong&gt;repetitive&lt;/strong&gt;, and maybe a &lt;strong&gt;lot of errors&lt;/strong&gt; can occour while "copying and pasting" code!!!&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;br /&gt;BLB does it for you! You design the database, BLB generates the code!&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/35380108-115978482893787984?l=businesslayer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://businesslayer.blogspot.com/feeds/115978482893787984/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=35380108&amp;postID=115978482893787984&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/35380108/posts/default/115978482893787984'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/35380108/posts/default/115978482893787984'/><link rel='alternate' type='text/html' href='http://businesslayer.blogspot.com/2006/10/first-release.html' title='The first release'/><author><name>Raphael G.</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://photos1.blogger.com/blogger/6476/3657/1600/raphael_cena_kubelec.jpg'/></author><thr:total>0</thr:total></entry></feed>
