Kevin Castle Dot Net
MyPicture.gif in content/binary
Navigation
RSS 2.0
Calendar View
<November 2008>
SunMonTueWedThuFriSat
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456
Categories
On this page....
Categories
Blogroll

Powered by: newtelligence dasBlog 1.9.6264.0

Disclaimer
The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.

© Copyright 2008 , Kevin Castle

Send mail to the author(s) E-mail

 Thursday, January 18, 2007

I meant to publish this document some time ago, but I haven't had much time at all to post anything lately.

This document was a result of early project research into what DAL and BLL code generation tool that we should use. In sum the project was a CRM web application which was to be developed using the MSF Agile process. The requirements were loosely defined and likely to change. Before I had started at the company, a developer had already created a prototype site for the project using the NetTiers template for CodeSmith. Initially, I was extremely impressed with the generated code but as I started needing more customization, flexibility, and stability I decided to do a small comparison between NetTiers and LLBLGen to see which product best served our project.

This .doc file is the result of my findings:

Code Generation Product Comparison.doc


In the end we decided to go with LLBLGen. Looking back  a few months ago I definitely feel that this was the best decision that we could have made. Our company is so impressed that a couple of our other projects have purchased licenses and are under development as we speak.

Biggest reasons why we chose LLBLGen over NetTiers:

  1. LLBLGen is much more flexible - We are capable of renaming entities, customizing property names, adding custom relationships, creating typed lists, etc.
  2. LLBLGen will probably be supported much more strongly. Since NetTiers is an open source project we were concerned about building an important (costly) application on something which would bear little to no responsibility on any vendors.
  3. NetTiers 2 was currently under development when we were considering the decision. As we modified the database and regenerated the project, we were running into both runtime and compiler errors.

Post Date: Thursday, January 18, 2007 8:34:08 AM (Pacific Standard Time, UTC-08:00)
Disclaimer | Comments [1] | Trackback   #
 Thursday, November 09, 2006

CodeSmith 4.0 has been officially released. The press release can be viewed here and for a more in depth look at the feature set please check out one of my previous posts on CodeSmith 4.0 Beta 2 features.

A few days ago this would have been big news for me, but as of yesterday after doing a product comparison on the NetTiers CodeSmith Template and LLBLGen Pro, we decided to go ahead and purchase LLBLGen Pro for our project's ORM needs.


Post Date: Thursday, November 09, 2006 10:45:20 AM (Pacific Standard Time, UTC-08:00)
Disclaimer | Comments [0] | Trackback   #
 Thursday, November 02, 2006

Arron Hallberg has a really interesting post on his blog on how to add a custom task to the Team Foundation Build Process. The possibilities of this type of extensibility which most areas of TFS have out of the box are truly amazing.

I have worked with a few code generation tools in the past, Wilson ORMapper, LLBLGen Pro, and now CodeSmith and immediately I thought how great it would be to automate these code generation tools into the build process. Ill probably take a stab at this very soon.


Post Date: Thursday, November 02, 2006 5:35:03 PM (Pacific Standard Time, UTC-08:00)
Disclaimer | Comments [1] | Trackback   #
 Wednesday, October 04, 2006

In regard to my previous post on tracing sql statemens generated by llblgen, it turns out that someone has developed a more useful method for tracing LLBLGen Pro 2 by extending the internal partial class and modifying the output so that you can copy and past the SQL statements written to the Output window into Sql Management Studio or Sql Query Analyzer.

Click here to read the full blog entry @ RightHand blogs


Post Date: Wednesday, October 04, 2006 1:59:43 PM (Pacific Standard Time, UTC-08:00)
Disclaimer | Comments [0] | Trackback   #

The following information is extremely helpful if you find a need to view all of the SQL statements which LLBLGen Pro is generating while executing your project. Sitting back and letting LLBL Gen act like a magical bridge between your objects and your database, but sometimes you really need to know whats going. Perhaps the biggest reason why I decided to dig a little deeper stemmed from the fact that we were on a project with huge scalability concerns.

Add the following to your web.config file following the <system.web> section.

<system.diagnostics>

    <switches>

        <add name="SqlServerDQE" value="4" />

        <add name="AccessDQE" value="4" />

        <add name="OracleDQE" value="4" />

        <add name="FirebirdDQE" value="4" />

        <add name="MySqlDQE" value="4" />

        <add name="DB2DQE" value="4" />

        <add name="PostgeSqlDQE" value="4" />

        <add name="ORMGeneral" value="0" />

        <add name="ORMStateManagement" value="0" />

        <add name="ORMPersistenceExecution" value="3" />

    </switches>

</system.diagnostics>

Watch the Output menu to see what statements are being built and executed by the SqlServer Dynamic Query Engine

Sample output:

Method Exit: CreateSelectDQ
Method Exit: CreatePagingSelectDQ: no paging.
Method Enter: DaoBase.ExecuteMultiRowRetrievalQuery
Method Exit: DaoBase.ExecuteMultiRowRetrievalQuery
Method Exit: DaoBase.PerformGetMultiAction
Method Enter: CreateRowCountDQ
Method Enter: CreateSelectDQ
Method Enter: CreateSelectDQ
Generated Sql query:
Query: SELECT [TableName].[dbo].[Link].[ID] AS [Id], [TableName].[dbo].[Link].[DisplayName], [TableName].[dbo].[Link].[URL] AS [Url], [TableName].[dbo].[Link].[Description], [TableName].[dbo].[Link].[CategoryID] AS [CategoryId] FROM [TableName].[dbo].[Link]

Method Exit: CreateSelectDQ
Generated Sql query:
Query: SELECT COUNT(*) AS NumberOfRows FROM (SELECT [TableName].[dbo].[Link].[ID] AS [Id], [TableName].[dbo].[Link].[DisplayName], [TableName].[dbo].[Link].[URL] AS [Url], [TableName].[dbo].[Link].[Description], [TableName].[dbo].[Link].[CategoryID] AS [CategoryId] FROM [TableName].[dbo].[Link] ) TmpResult

Method Exit: CreateRowCountDQ
Method Enter: DaoBase.ExecuteScalarQuery
Method Exit: DaoBase.ExecuteScalarQuery
Method Enter: DaoBase.PerformGetMultiAction
Method Enter: CreatePagingSelectDQ
Method Enter: CreateSelectDQ
Method Enter: CreateSelectDQ
Generated Sql query:
Query: SELECT [TableName].[dbo].[Link].[ID] AS [Id], [TableName].[dbo].[Link].[DisplayName], [TableName].[dbo].[Link].[URL] AS [Url], [VirginiaAgencyRedesign].[dbo].[Link].[Description], [TableName].[dbo].[Link].[CategoryID] AS [CategoryId] FROM [TableName].[dbo].[Link] ORDER BY [TableName].[dbo].[Link].[DisplayName] ASC

Method Exit: CreateSelectDQ
Generated Sql query:
Query: SELECT TOP 10 [TableName].[dbo].[Link].[ID] AS [Id], [TableName].[dbo].[Link].[DisplayName], [TableName].[dbo].[Link].[URL] AS [Url], [TableName].[dbo].[Link].[Description], [TableName].[dbo].[Link].[CategoryID] AS [CategoryId] FROM [TableName].[dbo].[Link] ORDER BY [TableName].[dbo].[Link].[DisplayName] ASC


Post Date: Wednesday, October 04, 2006 1:31:32 PM (Pacific Standard Time, UTC-08:00)
Disclaimer | Comments [0] | Trackback   #
 Monday, September 25, 2006

One of the things that I have noticed about LLBLGen Pro Version 2.0 is that, post installation, the LLBLGenProDataSource control is not added to your control. In my opnion one of the most important additions to the second version for LLBL is the fact that it supports the ObjectDataSource control model, but the control is only useful in your organization if people use it in development.

The following is a summary of how to add the DataSource control to your Toolbox:

1 .Right click toolbar and choose items. (Loading the choose items dialog may take a few moments)

 

2. On the choose items dialog click Browse

3.Locate the SD.LLBLGen.Pro.ORMSupportClasses.NET20.dll and select open.

4. The choose items list has now been updated.

Sort the list by name and check the box next to LLBLGenProDataSource. (note both of the Datasources will select automatically).

Select OK and view the new items on your toolbar.


Post Date: Monday, September 25, 2006 6:22:23 PM (Pacific Standard Time, UTC-08:00)
Disclaimer | Comments [1] | Trackback   #