28 August 2010

Rapid Application Development (RAD)

Software prototyping, refers to the activity that occurs during certain software development and responsible for creating prototypes of software applications. This is a big and deep topic to discuss regarding prototyping; I would like to limit the scope by only discussing one of the models – Rapid prototyping Model (RAD), which we have come across in one of our deliverables.
Why RAD?
Due to the intense competition in software, products that are successful in the marketplace are:  
  • Functional,
  • Reasonably priced, and
  • Easy to learn and use.
Pricing aside, it is difficult and time-consuming to develop products with these characteristics. However, one way to minimize effort and time spent is to use the rapid prototyping process of product development.
RAD (Rapid prototyping Model)
Rapid prototyping is a process of software development wherein physical objects are automatically constructed by means of SFF or solid freeform fabrication. In the process of rapid prototyping, a prototype or working model can be constructed quickly, and tested for its functionality, performance and output. The new features or ideas can be illustrated well in the prototype and early user feedback can be gathered with regards to the product.
There are numerous advantages of rapid prototyping. Rapid prototyping involves creating a realistic model of a product’s user interface to get prospective customers involved early in the design of the product. Using rapid prototyping, you model the look and feel of the user interface without investing the time and labor required to write actual code. Then you show the prototype to prospective customers, revise the prototype to address their comments, and keep repeating these two steps. Your goal is to produce a complete, agreed-upon design of the product’s user interface before writing a single line of actual code. When walkthroughs and usability tests show you that customers are delighted with your prototype user interface, then programmers can model it when they code the actual product.
RAD uses minimal planning in favor of rapid prototyping. The "planning" of software developed using RAD is interleaved with writing the software itself. The lack of extensive pre-planning generally allows software to be written much faster, and makes it easier to change requirements. So here I don’t want to come down and explain under what scenario we have to go with RAD. the description itself is clean and transparent. It is nothing but a WYSIWYG process where the virtual model and the physical model are almost identical. WYSIWYG: WYSIWYG as the abbreviation for ‘What You See Is What You Get’. It is used in ‘computing’ for describing a system wherein content looks similar to final product at the time of editing. It is generally used in word processors. However, this use is in the form of HTML (Web) authoring.
The word "rapid" is relative: construction of a model with contemporary methods can take from several hours to several days, depending on the method used and the size and complexity of the model. Additive systems for rapid prototyping can typically produce models in a few hours, although it can vary widely depending on the type of machine being used and the size and number of models being produced simultaneously.Giving the flow chart for detail reference
Basically if you are looking to use RAD your road will be something like this:
  1. Create a model of the design. (logical modeling)
  2. Convert the model to easily understandable format .(You will see the model this stage )
  3. Slice the model into thin cross-sectional layers (expand the model till end to end functionality)
  4. Construct the model one layer atop another .(start development)
  5. Clean and finish the model (Finished development , integration and delivery.)
Pros and Cons: I would like to share some of the pros and cons that we have faced while we were developing or systems using RAD prototyping. I think I can just explain it in bullet points and assumes readers should be able to catch it up what I mean.
Pros:
1) Reduction in project cost and risk.
2) Easily the errors in previous design can be detected and errors can be rectified.
3) Only upon the complete satisfaction the complete product is designed. Factors like reliability, robustness and functionality of design are checked before start coding.
4) Greater visualization capabilities are improved right from the first stage if designing. This helps the user in knowing how the final product will look like.
5) All the designing flaws can be detected easily before the production starts.
6) Developer, designer and user can discuss the product and work forward to get the best product. This helps to give the user higher output product.
Cons:
1) Has poor tools –
2) Sometimes encourages prototyping by programmers rather than domain experts
3) Usually does not produce reusable code –
Summary
Rapid prototyping helps you build the product right the first time and puts design emphasis on meeting customer needs. It can save time and money, and improve the usability of your product. To prototype successfully, be sure to: Pick a prototyping tool that meets your needs.
  • Form a small, diverse prototyping team.
  • Get lots of customer feedback.
  • Iterate until customers are delighted with your prototype user interface.
We have made our successful delivery of our web based application development using RAD as a prototyping model. And request you please come up with questions, observations and comments on RAD prototyping and I will be happy enough to assist you with my experience.





13 August 2010

GridView JavaScripts

GridView Control - Javascripts
While working with Grid View I had to write few small JavaScript snippets to perform certain tasks like reading values form one text box in the grid View and assign to a hidden filed so that we can access the same in server side for any changes if user made. Looks simple but I am sharing some of the JavaScript’s which I wrote for Grid View on asp.net page.Read the text box placed in a Grid View and assigns the values to the hidden field. The script is wired to submit button click on client side: 
function SubmitSaveClick() {   
//get reference of GridView control
    var grid = document.getElementById("");
    //variable to contain the cell of the grid
    var cell;
    if (null != grid) {
        if (grid.rows.length > 0) {
            //loop starts from 1. rows[0] points to the header.
            for (i = 1; i < grid.rows.length; i++) {
                //get the reference of first column
                cell = grid.rows[i].cells[2];
                //loop according to the number of childNodes in the cell
                for (j = 0; j < cell.childNodes.length; j++) {
                    //if childNode type is text
                    if (cell.childNodes[j].type == "text") {
                        cell.children[3].value = cell.children[0].value;
                    }
                }
            }
        }
    }
    return true;
}
try
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        DateTime dtConvert;
        string dateFormat = string.Empty;
        CheckBox chkGender = e.Row.Cells[1].FindControl("chkGender") as CheckBox;
        chkGender.Attributes.Add("onclick", "ChangeDate();");
        if (chkGender.Checked)
            e.Row.Enabled = true;
}
catch (Exception ex)
{
   LogException(ex);
}
Likewise for adding any events associated with a grid View control for example if you have a check box on the grid and if you want to attach a JavaScript associated with each control on the grid please add following code in the server side on Grid View row data bound.

04 August 2010

Jscript runtime error

Microsoft JScript runtime error: Object required this is the error.
Problem: I would like to share with you one of interesting observation we observed.We were trying to set up source code to take up a new assignment.when we build project there was no error, but latter when the explorer is starting ,the processstoppes and was showing Microsoft JScript runtime error: Object required this is the error.
I am developing a web application and I have some set of asp.net controls. The error popup when the explorer starts. The interesting part was same source code was working perfectly in other machines. So please don’t confuse this scenario with the usual error that we gets when we are trying to access a null object at client side. Here we have a working source code and we are trying to put in new machine and trying to run there without any changes. Let’s say for example simple .net application with some JavaScript code on it. And IE 8 running with the "disable script debugging" setting checked.
We were working on VS 2008 on Windows XP Professional. And client browser is IE 8 installed on PC.The screen shot for error: 
Solution: If you are facing the same issue please check your IE version and if it is IE 8 uninstall it and install IE 7 back.Intersting solution rt ? yep  me too , and  will  not able to explain what exactly going wrong with IE 8.But for us it started working.if you know the exact issue and if you have the solution , you are most welcome to share.If you dont know just try it.It will work for sure.