Review: Iron Speed Designer
page 2 of 8
by Steven Smith
Feedback
Average Rating: This article has not yet been rated.
Views (Total / Last 10 Days): 32875/ 315

Walkthrough

I have a fairly simple link management system I’m working on that includes two tables, one for links and one for categories. There’s a simple 1:Many relationship between the two tables, established by a foreign key. Every link must belong to one and only one category. I have a real need for a simple web-based admin for this system, so it seemed like the logical choice for testing out Iron Speed Designer.

My first step was to open up Iron Speed Designer and create a new application. This launches the Application Wizard which asks me for the name of the application, its language, and the folder it should be located in. I entered this information and continued on. Figure 1 shows this first step.

Figure 1 – Iron Speed Application Wizard – Step 1

Next, I selected a default style for the pages and configured my database connection settings. Figures 2 and 3 show these wizard screens.

Figure 2 – Iron Speed Application Wizard – Step 2

Figure 3 – Iron Speed Application Wizard – Step 3

Finally, I specified the two tables I was interested in (TextLink and TextLinkCategory) from my database, and clicked Finish to complete the basic application. Figure 4 shows the database object selection dialog, which also allows views and custom queries to be specified as data sources. Figure 5 shows the final page of the application wizard.

Figure 4 – Iron Speed Application Wizard – Step 4

Figure 5 – Iron Speed Application Wizard – Step 5

At this point I chose to Build and Run the application (following the wizard’s advice, since I’m a first-time user). The resulting application is shown in Figure 6. The main pages include a tab view across the top with links to each table (or main object) involved in the application. Below this, there is a search area that includes some default search and filtering options. All of this is completely configurable. The search results default to the contents of the table, but of course these can be adjusted as well, and each row includes options to edit, view, or delete the record (and of course there is also a ‘New’ button for adding new records).

Figure 6 – Our Generated Application

When adding or editing a record, a new screen is displayed allowing for a rich user interface (not just a grid view). Figure 7 shows the generated page for adding a new text link. As you can see, it includes special controls specific to the data type of the column, including datepicker controls for the two date columns.

Figure 7 – Add Text Link Generated Page

If I try to save the record without filling out all of the columns that do not allow nulls, I’m automatically told the error of my ways. The same is true if I try to put a non-date string into a date column. I’m told that the data is invalid or out of range. Not bad for not having written any code. What if I enter an End Date that occurs before my Begin Date? Well in that case, it lets it through.

One failure of many code generation tools is that they are fire-and-forget – they’re nice to use to get started, but after that, you can’t use them again because they will overwrite all of your customizations you’ve added. And since no code generator is realistically going to create 100% of your application without any need for additional tweaking, this is a major disadvantage. One of the nice things about Iron Speed Designer is that its designer automatically keeps all of your customization code separated from its generated code. That means that I can modify things and then later on, when I want to add another table to this application, I can simply re-generate the application and all of my custom code will still be intact (and, if I didn’t break anything with my table changes, functional).

Getting back to my customization attempt (to ensure that the end date is on or after begin date), I simply right-clicked on the End Date text box in the Iron Speed Designer and selected Add Code Customization. A new wizard appeared, which includes several dozen options for common customization features. Scrolling down to the validation options, I go through a wizard that automatically lets me wire up a custom validator to my End Date field. This code is placed in a ‘safe’ codebehind class, which is safe from being overwritten by subsequent code generations. Opening up this safe file, I’m able to edit the validation code (there are, in this case, even comments on how to do exactly this task, so a bit of cut-and-pasting makes the job that much quicker). Figure 8 shows the final code, which worked on the first test.

Figure 8 – Customizing Field Validations

/// <summary>
/// This method implements server side validation logic for the EndDate field.
/// </summary>
private void V_EndDateFVCustomValidator_ServerValidate(object source, System.Web.UI.WebControls.ServerValidateEventArgs args) 
{ 
    // We can refer to the Begin Date FieldValue control directly as
    // V_BeginDate. So now, get the Begin Date
    DateTime StartDate = this.V_BeginDate.GetFieldValue().ToDateTime();

    // Get the End Date. This is passed as a String.
    DateTime EndDate = DateTime.Parse(args.Value);

    // Now compare the two values and report an error message
    if (EndDate < StartDate)
    {
        args.IsValid = false;
        // Set the error message. Error message will get reported in a dialog.
        this.V_EndDateCustomValidator.ErrorMessage = "End Date occurs before Start Date";
    }
}

As I mentioned, there are literally dozens of code customizations built into the code customization wizard, each with a description, step-by-step instructions, and a preview of the generated code. I was very impressed with the level of hand-holding the tool provided every step of the way. It wasn’t like many other code-gen tools where once they’ve generated the basics, you’re left to your own devices to move forward (and forget about re-generating the basics without blowing away your customizations).


View Entire Article

Article Feedback

Title:  
Name:  
Url: ( Optional )
Comment:  
Please add 3 and 3 and type the answer here:

User Comments

Title: Nice UI too!   
Name: BestISDeveloper
Date: 11/6/2008 12:43:44 PM
Comment:
The best thing about the tool is that I don't have to worry about developing the user interface. This saves a lot of development time and all of my projects look very professional!
Title: I created 2 apps in about an hour   
Name: RADDevelop
Date: 11/6/2008 12:42:56 PM
Comment:
We were able to ramp up quickly using Iron Speed Designer. It’s the first RAD tool that I’ve ever seen that actually works (and I’ve looked at a lot in the past).
Title: Way better than hand-coding   
Name: KingCoder2
Date: 11/6/2008 12:42:06 PM
Comment:
This thing saves a lot of time. I just pointed it at my database and it gave me a fully working application in 5 minutes. It works really well when you have a normalized database with descent foreign key definitions – the better structured your database, the better app you’ll get. We built most of our custom CRM system using Iron Speed Designer which is used by all our sales reps.
Title: Iron Speed is awesome!   
Name: Jimi Jegonia
Date: 11/2/2008 7:19:20 AM
Comment:
One of the great decisions I ever made in my career is to shift from windows desktop
programming to web application development, from classic Visual Basic & VBA to C#.

It should have been a very painful paradigm shift without the versatility and awesome
power of Iron Speed Designer. I used it to generate parallel codes that truly accelerated my learning momentum and it constantly amaze me that only my imagination can limit its dominance.

High returns and happy programming life only happen if you have a tool like Iron Speed Designer that you know too well.
Title: Iron Speed allows code customizations   
Name: Jim Murphy
Date: 10/15/2008 8:48:11 AM
Comment:
Iron Speed is a great tool. The majority of the learning curve is learning OOP. Someone who is already familiar with developing web apps in .NET and who is solid on OOP will pick this tool up quickly. It is straight forward to add custom code that is saved even though you keep rebuild the app by means of overriding existing methods or handling events. Understanding the page lifecycle in .NET will help you make the right customization in the right override. Again, this is straight .NET for the most part.
All in all, this tool has saved my butt several times - by making 1 hour changes turn into 2 to 5 minutes. I have used this tools for several years and find that it is maturing nicely. I love it.
Title: Honest opinion   
Name: San5050
Date: 10/15/2008 7:41:13 AM
Comment:
There is a learning curve, I agree but the advantage of using it outweighs the learning curve a lot. Out of the box, it generates all the maintenance pages, and has packed with a lot of code customizations. For something you want to custom develop but not covered in the wizard, I'd strongly suggest tapping into the technical forum or contacting an IronSpeed MVP. That takes away a lot of hours trying to poke around. In all, this is a very good tool in my opinion; and it makes it even better when you start being better with it.
Title: Iron Speed Rocks!   
Name: Miles Gibson
Date: 10/14/2008 8:15:06 PM
Comment:
I love Iron Speed. It has revolutionized my web development consulting practice. I can do in days and weeks what takes others months and years. An out of the box solution that works and works well. You have to see it to believe it!
Title: Personal Opinion   
Name: Baljeet Matta
Date: 9/2/2008 10:26:37 AM
Comment:
IronSpeed accelerates application development with concentration on business logic(as it creates the basic pages), with features like ajax, advanced datagrid.Code clarity and modularity with documentation increases the effeciency and stylesheets give a stunning look to the application.Flexibility to work with any database, Inegration of Third-party tools, all these decrease response time for application. Pre implemented Advanced Security and Concurrency enables the application to work in multiuser environment.We have been working with IronSpeed since ver 4.3 and it is getting better and better with new features being added in each new version.
Title: My Personal Opinion   
Name: Adish
Date: 8/31/2008 5:23:22 AM
Comment:
This tool like any other, has a learning curve. Blaming the tool 'coz u haven't learnt it isn't the right thing to do.True,there are licensing issues, but you can't expect ReallyGood things for free. I have been using Iron Speed for over a year now, and it has turned out to be great value for money. A small investment has saved me lots of time (and money). More than that, my apps are now Robust and Bugs Free and time required for maintenance is now available for family! All my team members are so glad we work on IronSpeed.
Title: Personal Opinion   
Name: ISDSucks
Date: 6/23/2008 2:39:35 PM
Comment:
Ok, I'm really sick of all the rosy red reviews of Ironspeed. This program is garbage, that produces more garbage. Within Ironspeed, you cannot make any meaningful changes to the program, and outside of ironspeed, in Visual Studio, none of the controls will even load. If you have to make any sort of actual custom code/buttons/anything good luck with this 'Code generator'. It makes me sad to think that people are so hard up for cash that junk like this passes for a "Code Generator".
Title: Buyer Beware   
Name: btaplin
Date: 4/15/2008 2:06:06 PM
Comment:
Beware of their licensing policy. Iron Speed 'froze' my paid-for-license and won't unlock it until I buy a second license because I unknowningly breached their licensing. The license was only activated on one machine and only one user was using it at a time but since I am the 'licensed user' (although I don't develop with it) but someone else at my company does (who isn't the 'named user') and since I logged on to audit his work they are trying to soak me for more money. This has been the worst customer service experience I have ever had...bar none.
Title: Nice   
Name: A Maven
Date: 6/13/2007 6:05:25 AM
Comment:
This article is very nice to get started with this new tool
Title: Versions and Updates   
Name: Steven Smith
Date: 1/3/2007 10:40:03 AM
Comment:
Dragondevil - You're right, I should have included the version number in this review. I guess the article date is the best you can go from in this case, but it's definitely good feedback for future articles and reviews.
Title: Valuable info made more valuable?   
Name: dragondevil
Date: 1/3/2007 6:36:55 AM
Comment:
ahhh I thought this article contained a version number but I guess I was wrong. Including that would be very valuable as well as demonstrate your consistency and as well, attention to detail.

Updates, no matter how minor, would also suggest some integrity in ownership and recognition of value in having done the review in the 1st place.

Versions, dates, updates
Title: So, it is worth a try,... Thanks   
Name: jbd
Date: 8/4/2005 9:15:03 AM
Comment:
Thanks for your review, I am considering developping applications for our cie using this tool and I understand from you comment that the tool is worth a try.

Product Spotlight
Product Spotlight 
Learn More
.NET Tools
asp.net shopping cart
asp.net chart control






Community Advice: ASP | SQL | XML | Regular Expressions | Windows


©Copyright 1998-2008 ASPAlliance.com  |  Page Processed at 12/2/2008 8:40:12 PM  AspAlliance Recent Articles RSS Feed
About ASPAlliance | Newsgroups | Advertise | Authors | Email Lists | Feedback | Link To Us | Privacy | Search