Full multi-tier ASP.NET code generator recommendations?
A bit off topic but ...I'm thinking that many people who are interesting in ADO.NET vNext/MS EDM will also have experience with some of the better ASP.NET code generators on the market.
Any recommendations? ...for a full multi-tier code generation solution?
Thank you,
Michael.
Thanks for the recommendations Carl,
1. Blinq is cool but requires LINQ (and the beta versions of the Orca CRL compilers) ...not a good fit for a production solution.
2. We're going to look at CodeSmith. Version 4.0 was announced/released last week.
3. SubSonic looks a little too "fresh" ...appears to be DAL only?
Michael.
UPDATE: CodeSmith doesn't appear to be in the same class as Iron Speed. CodeSmith is a goo product doesn't appear to generate full n-tier applications without first building a template for each tier.
Michael Herman - Parallelspace wrote: |
Thanks for the recommendations Carl, 1. Blinq is cool but requires LINQ (and the beta versions of the Orca CRL compilers) ...not a good fit for a production solution. 2. We're going to look at CodeSmith. Version 4.0 was announced/released last week. 3. SubSonic looks a little too "fresh" ...appears to be DAL only? Michael. UPDATE: CodeSmith doesn't appear to be in the same class as Iron Speed. CodeSmith is a goo product doesn't appear to generate full n-tier applications without first building a template for each tier. |
|
While there are full n-tier app generators out there, be aware that generating a fully n-tier app from solely a db schema and some meta-data snippets isn't going to bring you an app you can release right after you hit generate. At best, it's a good start. The problem is mostly about the fact that a gui follows different rules than the middle/dal tiers: the gui combines functionality consuming perhaps several elements known in the bl/dal tier, e.g. a combined order-orderline editor.
I.o.w.: a GOOD gui is the result of what functionality you want, combined with ergonomical guidelines. To create these kind of gui's you either revert to hand-coding or you need to use a code generator which consumes a lot of meta-data, which is might be time consuming as well.
Though it also depends on what you want of course. If you just want CRUD screens for tables in your db, you could get away with a code generator. If you want to deliver a professional application, be aware you've still a lot of work to do after you've generated code.
This is a slightly different point of view; everyone may not agree with it. If a full multi-tier code generation solution creates a very tight coupling among the presentation tier, the business logic tier, and the data access tier, it may not be desirable because that would lead to an inflexible and brittle application. Tens of thousands of lines of generated code may be hard to understand, comprehend, and maintain. Localized changes will be hard to make. Any minor change would typically require regeneration and re-building of the whole application. So, it might be better to pick best of breed solution (or framework) for each tier if business needs would be evolving over time.
-- Damodar Periwal
Those are other two tools that could worth a try:
- Deklarit (http://www.deklarit.com/)
- CodeCharge (http://www.yessoftware.com/)
While Deklarit is way more sophisticated as a modeling tool for the DAL and the BLL (you use add-ins for generating the presentation layer), CodeCharge is a very straightforward tool for generating simple applications and targets other platforms besides ASP.NET.
I think of the two only Deklarit takes advantage of new .NET 2.0 features.
Each of the tools that have been mentioned has its value, but I must agree that there is no silver bullet. Simple code generation tools will only satisfy you if what you are trying to accomplish is very simple. More sophisticated tools will bring you closer, but you will need to accurately model the application (although not in the target language, so you will need to learn a different set of skills).
I hope this helps.
Please try
SmartCodeGenerator (SCG) at CodePlex. Its a 100% Asp.Net based code generation Framework. Templates are written as Asp.NET UserControls and SCG projects are Asp.NET2.0 website project. So during the generation of templates, intellisense, compilation, debug, sourceview, designview, codebehind file and all other features of Visual Studio (2005 or 2003) are available to you.
The current feature list of SmartCodeGenerator includes:
- All development can be done in VS2005 OR VS2003.
- Integration with NAnt and Cassini.
- Extensible Template Generation Engine.
- Open source Database Schema discovery API for MS SQL, Oracle and MySQL.
- Uses existing ASP.NET 2.0 website application OR ASP.NET 1.1 web application concepts
- Generates text based output
- Fully customisable template-based code generation
- Remembers custom property data entries
Some Articles and Tutorials....
Tutorials: http://www.smartcodegenerator.com. Article at Code Project, Architectural Overview http://www.codeproject.com/aspnet/smartcodegenerator.asp Article as Code Project, Usage Overview http://www.codeproject.com/aspnet/smartcodegeneratorusage.asp Article at Code Project, SCG with NAnt and Cassini http://www.codeproject.com/useritems/smartcodegeneratorconsole.aspDeklarit is good and quite interesting. You can declare your "model" if you will and the database and ASP.NET can be generated. You can also choose to use an existing database or mix existing tables with newly generated ones. The generated applications are fully templated and include ASP.NET, Winforms and Mobile apps.
Check it out: http://www.deklarit.com
-Trevor