Reputation: 87
I am planning use code generator CodeOnTime in my asp.net application. Before starting this i just want to confirm that is this reliable for big project? Is code customization is possible in CodeOnTime?
If some one has used CodeOnTime then please suggest me whether i should use this or not.
Upvotes: 3
Views: 7680
Reputation: 1
I may be very late in adding a comment, but we have used COT for many years now and have developed many medium sized business apps, especially in the newer Touch User Interface version.
The product is easy to use and allows you to develop complex secure business apps. The only downside is the lack of support for what otherwise is an excellent product.
Upvotes: 0
Reputation: 11
buttercup - The languages and tools you mentioned are great and good standards for pragmatic development. Although, I think you are missing the goals of COT which is to do a lot of the heavy lifting of UI and backend processing for database applications. COT will increase productivity by 5 to 20 folds compared to the language and tools you mentioned including Telerik products. Don't get me wrong I would never use COT for anything that is not heavily predominant in a database centric application.
1) As far as blackbox, there are none.
2) Validation - Validation are done for you provided that you have model your db correctly.
3) COT is pretty quick and responsive. If you have a huge database and have not done your "due-diligence" in optimizing SQL then "yes" it will be slow.
In conclusion, COT is very customizable. The architecture is very solid. It's full feature is unmatched with anything out there.
Upvotes: 1
Reputation: 21
I am forced to disagree with buttercup on a number of their points having been a user of CodeOnTime (COT) for a number of projects now.
Regarding #1 - introducing your own custom .NET business logic, you can do that with their Standard ($350) version and I have successfully done this.
Regarding #2, COT DOES use the MVC pattern though not Microsoft's "ASP.NET MVC" flavor. It is true that it does not do ORM per se but does generate .NET business objects based on your database tables and views. It can be argued that you can use views for this purpose.
With regard to performance, I noticed a significant increase in accessing data with COT generated code over the last year. I think they have tweaked their data access layer along these lines. I would add that performance was not too shabby to begin with though.
Regarding #4, there are no "black box" components generated from COT - unlike some other code generators there are no proprietary DLLs, etc. produced. While I have not tried it, I would think it is possible to construct unit tests that go against the COT business objects created. I will concede that you must be careful about mixing any custom code with COT generated code although the tool automatically makes a backup of the existing code base before regenerating it.
BTW, I have no affiliation with the COT company...
Upvotes: 2
Reputation: 1116
I used Code-on-Time before stopping to use it.
The problem itself are many-fold:
You will have to weigh this product (and other non-ORM code-generating products, like IronSpeed, Code-On-Time, CodeCharge which uses proprietary data access layers.) vs using ORM-layer with Advanced Code-Generators.
The first problem you will run into is defining the business logic part. You will need their Premium or Unlimited version. So you start to upgrade from Standard to Premium quite quickly. Personally, I bumped into many limitations in their Premium version and needed to upgrade to the Unlimited version, such as complex business logic, dynamic access control (needed so you can redefine access control), simple auditing and logging.
The CodeOnTime unlimited version is US$2499 for 12 months. Sadly, I could not justify this price because of recession in the USA and cost-cutting. So if you own CodeOnTime for 4 years, you can imagine the big bill you end up paying for.
The second problem you will run into is the data-model part and what actually constitutes ORM + MVC approach vs. Code-Gnerator layer approach.
For example, the way how their modelling works, is that it pulls all the MSSQL tables and generates edit fields, tables and grids from there. That works great, until you need to add business logic, limiting input, validating input. You'll have to make lots of custom code for this, in case the default settings does not apply for you. You can see that in the Code-on-Time advanced tutorials.
The third problem is slowness. Their demos are fast because they load limited data, clear the data after some time. In live production, the customer has to put up with CSS issues (which was later fixed in later versions), slow loading of massive-data (try it on production environment), editing collisions, which may corrupt data.
The forth problem is black-box approach. You want to test your final results. How do you test all the attributes and go through all the parameters and settings without losing your prior work due to code-generation errors? I've lost work due to code-generation inconsistencies. That bit me really hard.
The alternative to Code-On-Time is to look at Visual Studio objectively and weigh whether using simple code-generators (CodeOnTime, IronSpeed, CodeCharge) outweighs using C# + ORM + MVC or WinForms layer).
Examples are:
Entity Framework + CSLA.NET + WinForms or MVC
LBLGenPRo (ORM) + Entity Framework + (with your own Rules and Workflow engine) + ASP.NET
SubSonic + Castle ORM + ASP.NET MVC
Linq + ASP.NET Dynamic Data
On other languages:
PHP + YII
Java + Struts
The above achieve the same results in a more cost-effective manner and something you can build your business upon.
This question has been here for almost 3+ months unanswered. You can imagine the really small community vs. the huge community for C#, ORMs and ASP.NET MVC.
Hope this helps.
Upvotes: 5