비쥬얼 스튜디오 2010과 asp.net 4.0에서는 웹 어플리케이션을 만드는데 있어서 두개의 가장 큰 프레임워크를 제공합니다. 첫번째는 ASP.NET MVC Framework이고 다른 하나는  ASP.NET Web Form Framework입니다.

그 밖에 여러가지 새로운 기능이 추가되었으나, 그중에서도 서버사이트 웹컨트롤들에 대한 내용을 다루어 보겠습니다.

1) CSS-Friendly HTML

<asp:Menu runat="server" ID="_menu">
    <Items>
        <asp:MenuItem Text="Home" NavigateUrl="~/Default.aspx" />
        <asp:MenuItem Text="Shop" NavigateUrl="~/Shop.aspx" />
    </Items>
</asp:Menu>

위의 서버 컨트롤은 다음과 같은 HTML로 변환됩니다.
<table class="..." cellpadding="0" cellspacing="0" border="0">
    <tr id="_menun0">
        <td>
            <table cellpadding="0" cellspacing="0"
                border="0" width="100%">
                <tr>
                    <td style="...">
                        <a class="..." href="Default.aspx">Home</a>
                    </td>
                </tr>
            </table>
        </td>
    </tr>
</table>

그러나 ASP.NET 4.0 에서는 다음과 같이 변환됩니다.

<div id="_menu">
    <ul class="level1">
        <li><a class="level1" href="Default.aspx" target="">Home</a></li>
    </ul>
</div>

ASP.NET 4.0 의 서버 컨트롤들은 CSS과 유사한 속성을 제공합니다.

2) Generating Client IDs
기존의 ASP.NET에서는 ClientID가 다음과 같이 상위 컨트롤의 아이디와 합쳐진 구조로 생성되었다.
ctl00_content_ctl20_ctl00_loginlink

ASP.NET은 새로운 구조를 추가하였다. 예 2-1은 설정된 아이디 그대로 HTML로 변환된다. 즉, 'checklist'로 될 것이다. 그러나 2-2는 employeeList_IsSalaried_10 과 같이 EmployeeID가 로 각 체크박스 노드의 아이디의 마지막에 붙는다. 기본속성은 Inherit이다.  이 설정은 하위노느로 자동으로 상속되어진다. 마지막으로 AutoID가 있는데 이는 이전 버전과 동일한 구조로 클라이언트 아이디를 생성한다.

예2-1)
<asp:CheckBoxList runat="server" RepeatLayout="OrderedList"
                  ID="checklist" ClientIDMode="Static">
    <asp:ListItem>Candy</asp:ListItem>
    <asp:ListItem>Flowers</asp:ListItem>
</asp:CheckBoxList>

예2-2)
<asp:ListView runat="server" ID="employeeList"
                      ClientIDMode="Predictable"
                      ClientIDRowSuffix="EmployeeID">

            <ItemTemplate>
                <asp:CheckBox runat="server" ID="IsSalaried"
                              Checked=<%# Eval("IsSalaried") %> />
            </ItemTemplate>
        </asp:ListView>

3) New Project Template
web.config의 내용은 간결해졌으며, Scripts폴더가 새로 생겼으며 여기에는 JQuery가 들어가 있다. 또한 마스터 페이지 및 스타일 시트를 기본으로 제공하고 있다.


그 밖에 여러가지 중요 특성이 ASP.NET MVC 프레임워크에 추가 되었다.