I had a requirement to find Code Generator that will help to port existing quite big Access application to ASP.NET and support multiple databases.
The codegeneration.net site provides quite a big list of applications that claims to do this.
I also was pointed by Paul Wilson's posts: (How do you decide what features to add or cut?, Debate: O/R Mapping or Code Generation and others) that Dynamic SQLs in O/R mappers allow to avoid hundreds of CRUD stored procedures and DAL classes.
Unfortunately, most of O/R Mapper tool have nothing with web site generation. And most of ASP.Net generators do not use dynamic SQL, but generate stored procedures.
Only two products seem to do both: TierDeveloper--Alachisoft and EntitySpaces.
After downloading TierDeveloper I understood that they generate static parameterized SQL, not using O/R engine generates queries at runtime. Also tehASP.NET pages they generated are quite messy.
The demo version of EntitySpaces Template Suite for ASP.NET looks very good, and they also have DNN templates, which is important for my development.
So it seems that EntitySpaces is the best choice for my project. (Touch the wood, 2 years ago I choose VBExpress generator and I am not much happy with that my choise).
UPDATE 29/12/2007: At the moment I am using EntitySpaces and quite happy with them.
I am going to try LINQ to SQL : Related links:
Linq to Sql: The Good, The Bad & The Bottom Line
ScottGu's tutorials parts 1-9: LINQ to SQL
See also Linq to Entities
Pro LINQ Object Relational Mapping with C# 2008 Book Review
Below are differnet links that I’ve used for this research.
1 Overviews
http://c2.com/cgi/wiki?ObjectRelationalToolComparisonDotNet
http://www.codeproject.com/dotnet/CodeGenResource.asp
The Code Project Survey: Which .NET data-tier generator do you use?
http://www.codegeneration.net/generators-by-platform.php?target=12&lang=20
http://www.123aspx.com/Directory.aspx?dir=303&ob=ratings&obd=desc&pNo=2
"How-To-Select an Object-Relational Mapping Tool for .NET" guide
1 Web Site ORM and Generators
1.1 EntitySpaces
http://www.entityspaces.net/
a free 45 day Trial Version
EntitySpaces Template Suite for ASP.NET
How to purchase
1.2 TierDeveloper--Alachisoft
TierDeveloper--Alachisoft
http://www.alachisoft.com/tdev/index.html
an object-to-relational mapping and code generation tool.
Enterprise $1495
Negative comment ,Negative comment
Dynamic SQL –actually generated in Data.Persistence.Factory.
Templates ASPX, not asmx
2 Web Site Generators
Overviews: http://sharptoolbox.com/categories/code-generators
http://www.yessoftware.com/products/product_detail.php?product_id=1
Cost CodeCharge Studio 3.1 $499
Downloaded.
Tried to run against the database.. It stops for each table without primary key and asks to uncheck the table. It was too annoying to continue.
2.2 ASP.NET Maker
http://www.hkvstore.com/aspnetmaker/demo.asp%20USD59.95
Start from US$99.95
Fully working version for 30 days Downloaded
)
2.3 . Codejay
http://www.codejay.com/products.asp?p=database%20tool
2.4 GenWise Studio
Template-based code generator / IDE for ASP.NET with NHibernate support.
For use with o.a. SQL Server, Oracle, Sybase and MySql.
2.5 Iron Speed Designer
http://www.ironspeed.com/products/
an application generator that builds database-driven Web applications for .NET
$595
2.6 Web Application Code Generator by Gigaframe
No templates, no trial download $129
2.7 IronWorks
http://www.esolutionspr.com/IronWorks/
Use templates, Code Generator
2.8 CodeSmith -netTiers Application Framework
http://www.nettiers.com/
3 O/R mappers
See Paul Wilson's .NET Blog: The Best O/R Mappers: NHibernate, LLBLGen Pro, and EntityBroker
Also see http://www.mcse.ms/message1405638.html
Blog overview “looking for a good ORM” http://www.bzdz.com/topic/view/14/
Discussions here http://www.theserverside.net/news/thread.tss?thread_id=29914
Overviews: http://www.answers.com/topic/object-relational-mapping , http://www.theserverside.net/news/thread.tss?thread_id=40204#207699
http://madgeek.com/Articles/ORMapping/EN/mapping.htm
3.1 LLBLGen
http://www.llblgen.com/
Price per license EUR 229.00
Good Comments
Bad comment
3.2 Wilson WebPortal ORMapper
http://www.wilsonwebportal.com/
ORMapper
Lesser GPL Licence –is it acceptable?
http://nhibernate.sourceforge.net/
See NHibernate Quick Start Guide.
Support for ASP.NET -No, objects do not have a temporal primary key, they only get a primary key when saved so it is hard (impossible?) to reference them from controls like the Web DataGrid?, you have to add manually support for temporal primary key... or save to the database on each request/response cycle.
Manual creation of Business Objects.
3.4 EntityBroker
EntityBroker: Yes objects do have a temporal primary key, they get it when they are created in memory so it is easy to reference them from controls like the Web DataGrid?, and save only when the business transaction is ready.
3.5 TechTalk's Genome
http://www.genom-e.com/
Support for Microsoft SQL, Oracle and IBM DB2
can switch to LINQ
€ 1800
Eval Downloaded
3.6 Frameworks included in the Object Relational Tool Comparison
From Object Relational Tool Comparison Dot Net
39. Support for ASP.NET (It means it plays well with the request/response cycle, allows saving objects in the session, unsaved objects have temporary in memory primary keys that allow transactions spanning multiple requests/responses without writing the transaction into the database, etc)(Visually?, Out of the box).
- AtomsFramework: Unknown
- GentleNet: Yes, although objects are uniquely identified by the primary key fields, which can be initialized from code or on insert. However, there is special support for caching and uniqing to ensure safe operation in ASP.NET environments.
- NeoFramework: Unknown
- OJB.NET: Unknown
- LLBLGen Pro: Yes, fully supports ASP.NET 2.0 with own datasource control and 2-way databinding. Also fully support for ASP.NET 1.x and object serialization in viewstate/session.
- NHibernateLibrary: No, objects do not have a temporal primary key, they only get a primary key when saved so it is hard (impossible?) to reference them from controls like the Web DataGrid?, you have to add manually support for temporal primary key... or save to the database on each request/response cycle.
- Vanatec OpenAccess: Yes
3.7 EasyObjects.NET
http://www.easyobjects.net/
An Object/Relational Mapper (ORM) library written entirely in C# and built on top of Microsoft's Enterprise Library and and MyGeneration's dOOdads,
BL and Database only.
3.8 DataObjects.NET
http://www.x-tensive.com/Products/DataObjects.NET/
development of data and business tiers of the database application
3.9 Castle ActiveRecord
http://www.castleproject.org/activerecord/index.html
Castle ActiveRecord is built on top of NHibernate, but its attribute-based mapping free the developer of writing XML for database-to-object mapping, which is needed when using NHibernate directly
posted @ Wednesday, December 20, 2006 4:00 PM