Wednesday, 18 December 2013

Difference between regular web application and MVC

Advantages of Web Forms
1)    ViewState - A ViewState that allows you to persist objects and values throughout your application.
2)    Rapid Application Development - Very little learning curve, user-friendly and easy to get an application up and running quickly.
3)    Controls and Toolbox - A huge Toolbox with basically any major Control that you would need for developing applications.
4)    Maturity - Web Forms have been around over 10 years so there are a lot of communities and resources available and many bugs and issues have been addressed.
5)    Code Generation - Web Forms makes it quite a bit easier to not worry about wiring up different events and methods as much of this can be handled automatically.
6)    Familarity - Developers coming from a Windows Forms background will find themselves very familar with Web Forms and can easily jump into development.

Advantages of MVC (both MVC3 and MVC4)
1)    Separation of Concerns - The MVC Paradigm of Model-View-Controller allows you to more easily separate all of your concerns within your application. This can lead to improved scalability within applications.
2)  Testing - MVC is designed and built for Testing-Driven Development and allows for applications to be very easily tested to help secure against error and unexpected behavior.
3)    Integration with Client-Side Tools - The MVC pattern easily allows client-side tools such as jQuery to be seamlessly integrated. This can allow you to create very rich user interfaces for your applications.
4)    Statelessness - Although one of the main advantages of Web Forms, this allows you to adhere to a more stateless format consistent with the rest of the web.
5)   Control and Flexibility - MVC allows developers to have complete control over their applications as the developer doesn't rely on Controls to automatically generate the appropriate HTML, which after switching to MVC can often be seen as "bloated". The developer will write their own HTML instead of having it generated for them.

6)    Search Engine Optimization - The use of RESTful URLs within MVC makes it friendlier for being accessed through search engines. 

ASP.Net Razor

Reading User Input
Another important feature of dynamic web pages is that you can read user input.
Input is read by the Request[] function, and posting (input) is tested by the IsPost condition:
@{
var totalMessage = "";
if(IsPost)
    {
    var num1 = Request["text1"];
    var num2 = Request["text2"];
    var total = num1.AsInt() + num2.AsInt();
    totalMessage = "Total = " + total;
    }
}
<html>
<body style="background-color: beige; font-family: Verdana, Arial;">
<form action="" method="post">
<p><label for="text1">First Number:</label><br>
<input type="text" name="text1" /></p>
<p><label for="text2">Second Number:</label><br>
<input type="text" name="text2" /></p>
<p><input type="submit" value=" Add " /></p>
</form>
<p>@totalMessage</p>
</body>
</html>


Converting Data Types
Converting from one data type to another is sometimes useful.

The most common example is to convert string input to another type, such as an integer or a date.
As a rule, user input comes as strings, even if the user entered a number. Therefore, numeric input values must be converted to numbers before they can be used in calculations.
Below is a list of common conversion methods:

Method
Description
Example
AsInt()
IsInt()
Converts a string to an integer.
if (myString.IsInt())
  {myInt=myString.AsInt();}
AsFloat()
IsFloat()
Converts a string to a floating-point number.
if (myString.IsFloat())
  {myFloat=myString.AsFloat();}
AsDecimal()
IsDecimal()
Converts a string to a decimal number.
if (myString.IsDecimal())
  {myDec=myString.AsDecimal();}
AsDateTime()
IsDateTime()
Converts a string to an ASP.NET DateTime type.
myString="10/10/2012";
myDate=myString.AsDateTime();
AsBool()
IsBool()
Converts a string to a Boolean.
myString="True";
myBool=myString.AsBool();
ToString()
Converts any data type to a string.
myInt=1234;
myString=myInt.ToString();