compressionEnabled 모드가 true되면 세션을 압축하여 전달 및 저장하게 된다.
'Programming/ASP.NET 4.0'에 해당되는 글 14건
compressionEnabled 모드가 true되면 세션을 압축하여 전달 및 저장하게 된다.
RenderOuterTable 속성은 이 테이블을 사용할 것인지 않을 것인지를 제어할 수 있게 해준다. 속성값을 false로 주면 그림 3처럼 div태그로만 감싸지게 된다.
Figure 1.
Figure 2
Figure 3
페이지가 바뀔때 행선택에 해제된다.
체크박스 리스트 또는 라디오 리스트의 RepeatLayOut 속성은 다음과 같이
Table, Flow, UnorderedList, OrderedList의 4가지가 있다.
그림 1은 Table, 그림 2는 UnorderedList, 그림 3은 OrderedList 그리고 그림 4는 Flow일때의 HTML이 렌더링된 모습니다.
Figure 1. Table
Figure 2. UnorderedList
Figure 3. OrderedList
Figure 4. Flow
HttpUtility.HtmlEncode를 통하여 문자열을 html로 변환할 수 있다. 이를 통하여 악의적인 코드가 데이터베이스로 들어갔다가 다시 웹페이지가 이를 읽어서 랜더링할때 동작하는 것을 방지하는데 이용될 수 있다.
메뉴: tools --> Import and Export Settings --> Reset all settings > No, Just resettings, ... > Web Development(Code Optimized)
비쥬얼 스튜디오 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 프레임워크에 추가 되었다.
Auto-Start Web Applications ( 자동시작 웹 어플리케이션)
어떤 웹 어플리케이션은 많은양의 데이타를 로드하고, 처음 요청을 처리하기 전에 값비싼 초기화 처리를 수행할 필요가 있습니다. ASP.NET의 초기버전에서 이러한 상황을 위하여, 당신은 ASP.NET 어플리케이션을 깨우기 위하여 커스텀 접근을 고안해야만 했습니다. 그런 다음에 Global.asax에서 Application_Load 매소드 동안 초기화 코드를 실행하였습니다.
이 시나리오는 직접적으로 지정하는 auto-start 라는 새로운 확장성있는 특징이 가능합니다. 단 ASP.NET이 Windows Server 2008 R2, IIS7.5 환경에서 작동할 때입니다. 그 auto-start 특징은 어플리케이션 풀을 시작하고, ASP.NET 어플리케이션을 초기화하고, HTTP 요청을 접수하는 동안 제어된 접근을 제공한다. auto-start 특징을 사용하기위하여, IIS 관리자는 applicationHost.config 파일에서 다음의 컨피그레이션을 사용하는것에 의하여 자동적으로 시작되기위하여 IIS7.5에서 어플리케이션 풀을 설정합니다.
<add name="MyApplicationPool" startMode="AlwaysRunning" />
</applicationPools>
왜냐하면 하나의 어플리케이션 풀은 다수의 어플리케이션을 포함 할 수 있기 때문에, 우리는 applicationHost.config 파일에서 다음의 컨피그레이션을 사용하는것에 의하여 자동적으로 시작되는 개별적인 어플리케이션을 구체화합니다.
<site name="MySite" id="1">
<application path="/"
serviceAutoStartEnabled="true"
serviceAutoStartProvider="PrewarmMyCache" >
<!-- Additional content -->
</application>
</site>
</sites>
<!-- Additional content -->
<serviceAutoStartProviders>
<add name="PrewarmMyCache"
type="MyNamespace.CustomInitialization, MyLibrary" />
</serviceAutoStartProviders>
IIS 7.5 서버가 콜드 스타트 되었거나 개별 어플리케이션 풀이 리사이클링 되었을 때, IIS7.5는 웹어플리케이션이 자동적으로 시작되는 것을 결정하기 위하여 applicationHost에서 그 정보를 사용합니다. 자동 시작을 위하여 기록된 각 어플리케이션을 위하여, IIS7.5는 ASP.NET에 요청을 보냅니다. 그것은 어플리케이션을 임시적으로 HTTP요청을 받아들이지 않는 동안의 상태에서 어플리케이션을 시작하기 위해서입니다. 그것이 이상태에 있을 때, ASP.NET은 preloadProvider 특성에 의하여 정의된 타입을 예를들어 보여주고(이전의 예에서 보여주었을 때), 그것의 public 엔트리 포인트를 부릅니다. 당신이 관리된 자동시작형을 필수적인 엔트리 포인트와 함께 아래 예처럼 IProcessHostPreloadClient interface 를 실행하는것에 의하여 창조합니다.
{
public void Preload(string[] parameters)
{
// Perform initialization.
}
}
당신의 초기화 코드가 Preload 매소드에서 실행되고 메소드가 반환한 후에, ASP.NET 어플리케이션은 요청을 처리할 준비가 되어 있습니다. IIS5와 ASP.NET에서 자동시작 추가를 위해, 당신은 지금 처음 HTTP 요청을 처리하기 전에 값비싼 어플리케이션 초기화를 수행하는 것을 위해 잘 정의된 접근을 해야합니다. 예를 들어, 당신은 어플리케이션을 초기화하기 위한 새로운 자동시작 특징을 사용할 수 있고, 그런 다음에 어플리케이션이 초기화되고 HTTP 트래픽을 받을 준비하는 로드 밸런서에 신호를 보낼 수 있습니다.
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