'ASP.NET 4.0'에 해당되는 글 6건

  1. Menu의 RenderingMode
  2. ASP.NET 4.0 미리 살펴보기
  3. Routing WebForms OutBound
  4. URL routing
  5. Response.RedirectPermanent()
  6. ASP.NET 4.0 Quick Video Summary

Menu의 RenderingMode

메뉴가 렌더링 되면 table태그로 감싸서 보여지게 된다. 그러나 asp.net 4.0에서는 RenderingMode를 통하여 table를 삭제할 수 있다. RenderingMode를 List로 설정하게 되면 그림 2와 같이 나타나게 된다.

그림 1


그림 2


비쥬얼 스튜디오 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 프레임워크에 추가 되었다.

Routing WebForms OutBound

목표: 텍스트 박스에 입력된 값으로 페이지 라우팅을 한다.


1. Global.asax 에서 라우팅 URL을 등록한다.


2. Default.aspx에서 텍스트박스와 버튼을 추가한다.

3. GetRouteUrl함수를 이용하여 텍스트 박스에서 받은 값으로 동적으로 라우팅 할 수 있다.

    Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim url As String = Page.GetRouteUrl("list-state", New With {.state = txtState.Text})
        Response.Redirect(url)
    End Sub

URL routing


URL Routing

1. Add global.aspx
- add RegisterRoutes function


2. Add default.asxp

Add two linkbuttons as below


3. Add List.aspx
Add two labels. One of them will say the routhing values for "type".

list.aspx

list.aspx.vb



Response.RedirectPermanent()

Response.RedirectPermanent()

Response.Redirect는 302를 브라우져에게 되돌려 주는데, 이 뜻은 요청된 리소스가 임시적으로 다른 장소로 이동했다는 의미이다. 그러나 RedirectPermanent()는 301을 되돌려 주며,의미하는 바는 영원히 신규 페이지로 이동되었다는 것을 의미한다.

따라서, Response.Redirect를 사용하면 웹서치엔진(구글 같은)들은 이동하기전의 이전 페이지를 기록하며, RedirectPermanent()를 사용하면 이동된 신규 페이지를 기억하게 된다.

[VB.NET]
Protected Sub Application_BeginRequest(ByVal sender As Object, _
   
ByVal e As EventArgs)
   
    If Request.FilePath = "/our-products.aspx" Then
        Response.Redirect("/products.aspx", True)
    End If
    If Request.FilePath = "/about-us.aspx" Then
        Response.RedirectPermanent("/about.aspx", True)
    End If
End Sub


(참조)
http://weblogs.asp.net/gunnarpeipman/archive/2009/05/27/asp-net-4-0-seo-features-response-permanentredirect.aspx

ASP.NET 4.0 Quick Video Summary

1. Chart - 다양한 차트 컨트롤들이 추가되었다. 사용하기 쉽다.
2. MetaData - Page.MetaKeywords와 Page.MetaDescription를 이용하여 페이지에서 동적으로 메타 데이터를 설정하고, 이는 자동으로 HTML에 표시되어진다.