검색결과 리스트
ASP.NET에 해당되는 글 8건
- 2010/05/18 Server.UrlEncode와 UrlDecode를 사용할때 Encoding 문제
- 2010/04/04 기존 ASP.NET의 문제점
- 2009/06/26 ViewState값을 이용하지 않고 DropDownList의 선택된 값 가져오기
- 2009/05/19 웹 서비스 설명 페이지 안보이게 하기
- 2009/05/15 JQuery 기본 설정 하기
- 2009/04/12 Visual Studio 2005에서 .NET 3.5 기능 사용하기
- 2009/01/22 Postback과 Cross-Page Posting (2)
- 2009/01/21 ASP.NET의 장점 (2)
글
특정 한글 문자열을 db등에 저장을 할때,
Server.UrlEncode를 사용하여 인코딩 한다.
하지만 인코딩 한 사이트는 UTF-8 기반으로 되어있는 사이트이고
그 값을 불러오는 사이트는 EUC-KR 기반으로 되어있는 사이트라면
Server.UrlDecode로 인코딩한 값을 불러와도 한글이 깨져버리는 현상이 있다.
그럴때, HttpUtility.UrlDecode("인코딩할 문자열",System.Text.Encoding.UTF8);
이 걸 사용하면 깨지지 않는 한글 문자열을 볼 수가 있다.
설정
트랙백
댓글
글
- ViewState
- 요청 전반에 걸쳐 상태가 유지되는 이 기능의 매커니즘은 사실 클라이언트와 서버 사이를 빈번하게 오고가는 거대한 데이터들로 인해서 얻어지는 결과다. 많은 실무 응용 프로그램에서 이 데이터들은 수백 킬로바이트에 이르는 경우도 빈번하며, 모든 요청 시마다 매번 수신되고 다시 전송되므로, 사이트 방문자가 버튼을 클릭하거나 그리드에서 다음 페이지로 이동하려고 할 때 응답 지연의 원인을 제공하여 방문자를 지치게 만든다. 큰 대역폭을 차지하는 페이지의 개인 문제야 말로 Ajax가 해결책을 제시해 줄 수 있는 대표적인 문제들 중 하나임에도 불구하고 ASP.NET Ajax 역시 이 문제가 존재한다.
- ASP.NET Ajax도 매번 비동기 요청을 수행할 때마다 페이지의 모든 ViewState를 수신하고 전송한다. - 페이지 생명 주기
- 클라이언트 측 이벤트와 서버 측 이벤트 처리기 코드를 연결해 주는 매커니즘은 페이지 수명 주기의 한 부분이며, 경우에 따라서 상당히 복잡 미묘해질 수도 있다. 단지 소수의 개발자들만이 이벤트 처리기의 실행이 모호하게 실패하는 일이나 ViewState 오류 없지 런타임 시에 컨트롤 계층 구조를 조작할 수 있다. - 제약이 많은 HTML 기반의 컨트롤
- 서버 컨트롤은 자신을 HTML로 렌더링하기는 하지만, 그 결과가 내가 생각한 결과와 같다고 장담 할 수는 없다. 서버 컨트롤의 HTML은 대체로 웹 표준을 만족하지 못하거나 CSS를 적용하기 어려운 구조일 뿐만 아니라 서버 컨트롤 시스템이 생성한 ID값은 예츠갛기 어렵고 복잡하여 자바스크립트로 접근하기 힘들다.
- 서버 컨트롤에서 GridView나 기타의 데이터를 자동으로 Bind해 주는 서버 컨트롤의 경우, 컨트롤 자체적으로 렌더링 시에 Table 코드르 만든다. 이렇게 만들어진 Table 코드는 웹표준 방식에 맞지가 않는다. 그리고 각 렌더링된 컨트롤의 ID값은 각 컨트롤의 ClientID값으로 확인이 가능하나, 자신의 페이지가 아닌 다른 페이지에서는 접근이 제한이 된다. - 취약한 관계의 분리
- ASP.NET의 코드-ㅣ하인드 모델은응용 프로그램 코드를 HTML 마크업과 분리하여 별도의 코드-비하인드 클래스에 작성할 수 있는 방법을 제공한다. 이 모델은 로직과 프리젠테이션을 분리하는 방법으로 널리 박수를 받았으나, 실제로 개발자들은 프리젠테이션 코드와 응용프로그램 로직을 하나의 거대한 코드-비하인드 클래스에 뒤 섞어 구현할 수밖에 없었다. 그래서 뛰어난 관계의 분리를 도입하지 않고 얻어진 결과물들은 대체로 취약하고 난해했다. - 테스트의 어려움
- ASP.NET의 설계잘들은 그 첫 번재 플랫폼을 설계하면서 오늘날과 같이 자동화된 테스트가 소프트웨어 개발의 주류로 성장할 것이라는 예견을 하지 못했다. 따라서 그들이 설계한 아키텍처가 자동화돈 테스트에 적합하지 않은 것은 당연한 일이다.
설정
트랙백
댓글
글
보통 DropDownList Control의 ViewSate값을 false로 설정을 하고, 버튼컨트롤의 클릭이벤트와 같은 포스트백 이벤트나, PageLoad에서 DropDownList의 선택된 값을 가져오려고 한다면, 원하는 결과를 얻을 수가 없다. 그 이유는 페이지의 Load 이벤트에서 OnLoad 이벤트를 호출하게 되는데, OnLoad이벤트가 하는 일중의 하나는 뷰상태가 복원이 되는 것이다. OnLoad에 대한 자세한 설명은(http://msdn.microsoft.com/ko-kr/library/system.web.ui.control.onload.aspx)이곳에 가면은 자세히 알 수가 있다.
그럼 어디서 값을 가져와야 할것인가가 문제이다. 저는 여기서 이 문제를 해결하기 위해서, Init이벤트에서 선택된 값을 가져와서 변수에 저장을 하였습니다. PreInit의 경우 컨트롤을 초기화 해주기 전이므로 DropDownList컨트롤이 null 상태이다. 그럼 간단히 소스를 보면,
ddlSeries, ddlGrade, ddlType는 DropDownList의 각각의 ID값이다. UniqueID는 각 DropDownList가 html 코드로 바뀌게 되면서 id값과 name 값이 바뀌게 되는데, ClientID는 id값, UniqueID는 name값이라 생각하면은 될듯하다.
간단하게 ViewState 을 이용하지 않고 DropDownList의 선택된 값을 가져오는 방법을 알아봤다!! 누구나가 다 아는 내용인가요??
설정
트랙백
댓글
글
ASP.NET의 웹서비스를 만들고, 이 설명 페이지를 웹에서 노출시키지 않기위해서는
아래처럼 Web.config파일을 수정하면 된다.
아래처럼 Web.config파일을 수정하면 된다.
<system.web>
<webServices>
<protocols>
<remove name="Documentation" />
</protocols>
</webServices>
....
</system.web>
<webServices>
<protocols>
<remove name="Documentation" />
</protocols>
</webServices>
....
</system.web>
설정
트랙백
댓글
글
JQuery 기본적인 설정
ASP.NET에서 동적인 페이지에서 JQuery 사용하기
Base.Master 페이지의 head 부분
이 마스터 페이지를 사용하는 여러 .aspx 페이지
테스트 환경
Tool : Visual Studio 2005
운영체제 : Windows XP SP3
<script type="text/javascript" src="Library/jquery-1.3.2.js" ></script>
<script type="text/javascript">
$(document).ready( function(){
});
</script>
<script type="text/javascript">
$(document).ready( function(){
});
</script>
ASP.NET에서 동적인 페이지에서 JQuery 사용하기
Base.Master 페이지의 head 부분
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<asp:ContentPlaceHolder ID="head" runat="server">
</asp:ContentPlaceHolder>
</head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<asp:ContentPlaceHolder ID="head" runat="server">
</asp:ContentPlaceHolder>
</head>
이 마스터 페이지를 사용하는 여러 .aspx 페이지
<script src='<%=ResolveUrl("~/Library/jquery-1.3.2.js" ) %>' type="text/javascript"></script>
<script type="text/javascript">
$(document).ready( function(){
.....
});
</script>
<script type="text/javascript">
$(document).ready( function(){
.....
});
</script>
테스트 환경
Tool : Visual Studio 2005
운영체제 : Windows XP SP3
설정
트랙백
댓글
글
ASP.NET의 AJAX의 기능중의 하나인 Update Panel과 최근의 Chart컨트롤인 경우 .NET 3.5 기반으로 만들어져 있다. 하지만 Visual Studio 2005의 경우 .NET 3.0기반의 개발툴이다. 그래서 이 컨트롤을 사용하기 위해서는 일반적으로 web.config 파일에 관련 정보를 입력을 하고 사용을 해야 사용이 가능하다.
<system.web> 태그 안에 밑의 관련된 정보를 입력만 하면 사용이 가능하다.
<system.web> 태그 안에 밑의 관련된 정보를 입력만 하면 사용이 가능하다.
<pages>
<controls>
<add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add tagPrefix="asp" namespace="System.Web.UI.DataVisualization.Charting" assembly="System.Web.DataVisualization, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</controls>
</pages>
<httpHandlers>
<add path="ScriptResource.axd" verb="GET,HEAD" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/>
<add path="ChartImg.axd" verb="GET,HEAD" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false"/>
</httpHandlers>
<httpModules>
<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</httpModules>
<controls>
<add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add tagPrefix="asp" namespace="System.Web.UI.DataVisualization.Charting" assembly="System.Web.DataVisualization, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</controls>
</pages>
<httpHandlers>
<add path="ScriptResource.axd" verb="GET,HEAD" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/>
<add path="ChartImg.axd" verb="GET,HEAD" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false"/>
</httpHandlers>
<httpModules>
<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</httpModules>
설정
트랙백
댓글
글
- Postback
사용자가 웹 페이지에서 입력한 정보나변경한 정보는 서버로 다시 전송되며, ASP.NET은 전송된 정보를 기초로 하여 ASP.NET은 전송된 정보를 기초로 하여 ASP.NET페이지를 서버에서 처리한 후 그 결과를 사용자에게 다시 되돌려 줍니다. 이렇게 자신을 타겟으로하여 현재 페이지를 다시 서버로 전송하는 프로세스를 Postback입니다.
그럼 사용자가 페이지를 처음 요청하는 것은 Postback일까요? 정답은 No! 입니다. 즉, 페이지가 처음 로드된 것은 Postback이 아닙니다. 페이지가 처음 로드된 후 Postback을 일으키는 컨트롤을 통해 현재 페이지를 다시 서버로 전송할 때가 Postback이 일어나는 시점입니다.
Postback인지 아닌지는 Page.IsPostback 을 사용하시면 됩니다. Postback 일경우 True를 아닐경우 False를 리턴합니다. - Cross-Page Posting
Cross-Page Posting이란 타겟을 다른 대상 페이지로 하여 현재 페이지를 서버로 전송하는 프로세스 입니다. 밑의 예제는 정보를 보내는 페이지(Default.aspx)와 정보를 받아서 그 정보를 보여주는 페이지(CrossPagePosting.aspx)로 구성되어 있습니다.Default.aspx 의 Body 부분
<form id="form1" runat="server">
<div>
<asp:TextBox ID="TextBox1" runat="server" />
<asp:Button ID="Button1" runat="server" Text="Button" PostBackUrl="~/CrossPagePosting.aspx" />
</div>
</form>CrossPagePosting.aspx.cs파일
protected void Page_Load(object sender, EventArgs e)
{
if (PreviousPage != null)
{
TextBox t;
t = (TextBox)PreviousPage.FindControl("TextBox1");
Response.Write("Cross-Page Posting : " + t.Text);
}
else
{
Response.Write("Cross-Page Posting fail");
}
}
설정
트랙백
댓글
글
- 뛰어난 성능
ASP.NET으로 구현된 웹 페이지는 최초 요청 시에 한번만 컴파일 작업을 하고 이 컴파일된 결과를 Assembly Cache라는 곳에 저장을해 둡니다. 그러면, 최초 요청이 일어난 후부터는 사용자로부터 웹 페이지 요청이 있더라고 컴파일 작업 없이 Assembly Cache에 있는 내용을 가지고 바로 사용자에게 응답을 해 줄 수 있다. - 강력한 개발 도구 제공
책의 내용을 보면 ASP.NET도 메모장과 같은 도구로 개발은 가능하다고 합니다. 하지만 누가 ASP.NET을 메모장으로 개발을 할까요?? 좋은 도구가 있으면 그것을 활용하는 것이 옳은 선택입니다. - 유연성
.NET 언어들은 서로간의 문법은 다르지만내부적인 규격은 모두 동일하여 C#으로 만든 기능을 VB.NET이나 J#과 같은 다른 .NET 언어에서 참조가 가능 합니다. - 개발의 단순성
기본적으로 ASP.NET에서제공하는 서버 컨트롤이 있습니다. 간단히 드래그 앤 드랍으로 컨트롤 추가가 가능합니다. - 사이트 관리의 용이성
전체 웹사이트를 관리를 하는 Machine.config 와 Web.config 만 수정을 하면 웹사이트의 모든 설정을 변경이 가능합니다. - 뛰어난 확장성
서버컨트롤의 기본 기능만을 사용하는것이 아닌 자신이 원하는 기능과 스타일을 추가하여 사용이 가능 합니다. - 철저한 보안기능
ASP.NET의 보안 매커니즘은 인증과 권한부여라는 두 부분으로 나누어져 있다고 하네요. 그런데 아직 이부분은 공부를 해보지 못하여 뭐라고 쓰지를 못하겠습니다
이상 ASP.NET의 장점들을 적어봤습니다.
RECENT COMMENT