#PARAN SILVERLIGHT#
  • Tistory
    • 관리자
    • 글쓰기
Carousel 01
Carousel 02
Previous Next

ASP.NET 2.0 페이지 및 응용 프로그램 구조

PROGRAMING/ASP.NET 2009. 4. 9. 09:46


1. 웹 폼(Web Form)

: 웹 폼은 ASP.NET 페이지(.aspx 파일)와 같은 개념으로서 ASP.NET 프로그래밍을 하기 위해 사용하는 Form  또는 기반입니다. ASP.NET 개발자는 이 웹 폼 위에서 웹 페이지를 디자인하고 소스코드를 작성합니다.
  웹 폼은 크게 다음과 같은 두 부분으로 구성됩니다.

  - 표현 부분(웹 폼의 시각적인 부분을 담당)
  - 코드 부분(웹 폼의 내부 로직 부분을 담당)

사용자 삽입 이미지

<웹 폼의 구조>

 코트 부분에는 .NET 언어를 통해 작성한 내부 로직(logic)이 위치하며 표현 부분에는
태그, 서버 컨트롤, 정적 텍스트와 같이 웹 폼을 시각적으로 나타낼 수 있는 요소가
위치합니다.  이렇게 구성된 웹 폼을 특정 사용자가 요청했을 때 ASP.NET은 코드 부분에 정의되어 있는 내부 로직과 표현 부분에 정의되어 있는 시각적 요소를 조합하여 처리한 후 그 결과(HTML 형식의 웹 페이지)를 사용자에게 돌려줍니다.

* 속성(Property)과 특성(Attribute)
  : 속성은 캡슐화 기능, get 및 set 접근자를 통해 추가적인 논리를 실행하는 기능 등을
   제공하는 클래스 멤버. 또한  HTML 태크에서 태그 내에 포함된 부가적인 정보도
   속성이라고 표현한다(예: <a href="..."></a>에서 href는 <a>태그의 속성).
    하지만 특성은 런타임 시 응용 프로그램 동작에 영향을 주는 데에 사용되는 설명적인
  선언이다. 페이지 내에서 @Page 지시문은 클래스가 아니며 HTML 태그도 아니다.
  속성이 아닌 특성이 되는 것이다.

* XHTML 이란?
  : XHTML(eXtensible HyperText Markup Language)은 HTML을 XML 문서로 정의하는
   W3C(World Wide Web Consortium, 인터넷 표준 기관)의 표준이다. HTML은 엄격한
   문법 체크를 하지 않고 스타일과 내용이 혼재되어 있으므로 HTML 문서에 포함되어
   있는 순수 내용만을 프로그래밍 방식으로 뽑아내기가 힘들다. 그러므로 HTML은 시스템,
   운영체제, 브라우저 종류에 관계없이 모든 환경에서 호환 되는 웹 페이지를 만드는 데
   한계가 있으며 이런 이유에서 만들어진 것이 바로 XHTML이다. XHTML은 엄격하게
   문법 체크를 하고 스타일과 내용을 완전히 분리시킬 수 있으므로 특정 시스템, 운영체제,
   브라우저에 상관없이 모든 환경에서 호환되는 웹 페이지를 만들 수 있다.



2. 웹 폼 이벤트

: 웹 폼에서는 여러 이벤트가 있으며 개발자는 이 이벤트를 통해 웹 폼의 처리 과정 중
 특정 시점에서 원하는 내부 로직을 작성할 수 있다.

* Load 이벤트
  : 웹 폼의 고유의 이벤트. 웹 페이지에서 사용되는 값을 초기화하거나 특정 서버
   컨트롤을  세팅할 때 사용. 웹 폼 로드 시 서로 다른 이벤트를 사용하는 이유는
   이 이벤트들의 실행 순서가 서로 다르고, 이때 사용할 수 있는 개체 또한 서로 다르기
   때문이다. 다음은 웹 폼 이벤트의 주요 실행 순서를 그림으로 표현한 것이다.


사용자 삽입 이미지

<웹 폼 이벤트 실행 순서>

 위의 그림을 보면 Init 이벤트는 LoadViewState라는 이벤트 이전에 발생한다.
LoadViewState 이벤트는 서버 컨트롤의 정보를 가지고 있는 뷰 상태(View State)라는
것을 Load(복원)하는 이벤트이다. 즉, Init 이벤트는 LoadViewState 이벤트 이전에
발생하는 이벤트이므로 서버 컨트롤 개체를 사용할 수 없다. 반면에 Load, PreRender
이벤트는 LoadViewState 이벤트 이후에 발생하는 이벤트이므로 서버 컨트롤 개체를
사용할 수 있다. 이렇게 웹 폼의 이벤트들은 그 실행 순서가 다를 뿐만 아니라 그 안에서
처리할 수 있는 내용 또한 다르다.



3. 다시 게시(Postback)와
    페이지 간 게시(Cross-Page Posting)

: 다시 게시는 반드시 이해하고 있어야 하는 매우 중요한 개념이다. 사실 초보 개발자가
 만들어내는 버그는 다시 게시와 웹 폼 실행 주기를 제대로 이해하지 못하고 있는 데서
 발생하는 경우가 많다.

1) 다시 게시(Postback)
  : 사용자의 브라우저는 서버에서 처리된 결과를 HTML과 클라이언트 스크립트로 받아서
   보여주는 역할만 할 뿐이다. 사용자가 웹 페이지에서 입력한 정보나 변경한 정보는
   서버로 다시 전송되며 ASP.NET은 전송된 정보를 기초로 하여 ASP.NET 페이지를
   서버에서 처리한 후 그 결과를 사용자에게 다시 되돌려 준다. 이렇게 자신을 타겟으로
   하여 현재 페이지를 다시 서버로 전송하는 프로세스를 다시 게시라고 한다.

사용자 삽입 이미지
<다시 게시>

 위의 그림에서 보면 다시 게시가 자신을 타겟으로 하여 현재 페이지를 다시 서버로
전송하는 행위임을 볼 수 있다. 단, 사용자가 페이지를 처음 요청하는 것은 다시 게시가
아니다. 다시 말해 페이지가 처음 로드된 것은 다시 게시가 아니라는 말이다.
  페이지가 처음 로드된 후 다시 게시를 일으키는 서버 컨트롤(버튼, 드롭다운리스트 등등)을 통해 현재 페이지를 다시 서버로 전송할 때가 바로 다시 게시가 일어나는 시점이다.

2) 페이지 간 게시(Cross-Page Posting)
  : 다시 게시가 자신을 타겟으로 하여 현재 페이지를 다시 서버로 전송하는 프로세스인데
   반해 페이지 간 게시는 타겟을 다른 대상 페이지로 하여 현재 페이지를 서버로 전송하는
   프로세스이다.

사용자 삽입 이미지
<페이지 간 게시>



4. ASP.NET 2.0 응용 프로그램 구조

 1) 구성 파일(Configuration File)
   : 구성 파일은 응용 프로그램이나 웹 사이트에 대한 옵션 설정 정보가 들어 있는 .config
    확장자를 가진 XML 파일이다. 구성 파일에는 설정 정보가 웹 서버 전체에 영향을
    미치는 Machine.config 파일과 설정 정보가 해당 웹 응용 프로그램 또는 해당 폴더에만
    영향을 미치는 Web.config 파일이 있다. 구성 파일은 데이터베이스 연동 설정 정보를
    비롯하여 ASP.NET 2.0에 새로 추가된 기능들(테마, 마스터 페이지, 프로필, 웹 파트
    등등)의 설정 정보를 저장하는 데에도 사용된다.

 2) Global.asax 파일
   : Global.asax 파일은 ASP.NET 응용 프로그램 파일이라고도 하며 ASP.NET에 의해
    발생되는 응용 프로그램 수준의 이벤트(웹 응용 프로그램 시작 이벤트, 웹 응용
    프로그램 종료 이벤트 등등)를 처리하는 파일. 이 Global.asax 파일은 ASP.NET 응용
    프로그램의 루트 디렉터리에 위치하며 직접적인 URL 요청을 자동 거부하도록 설정되어
    있다. 따라서 외부 사용자는 이 파일을 내려받거나 코드를 볼 수 없다.


저작자표시 비영리 (새창열림)
블로그 이미지

파란실버라이트

To remember the time when I started learning Silver Light!

,

카테고리

  • Inforamtion Technology (281)
    • DESIGN PATTERN (33)
      • 실용주의 디자인패턴 (29)
    • SOFTWARE ENGINEERING (21)
      • Art Of Readable Code (12)
      • Object Oriented Programming (6)
      • TDD (2)
    • FRAMEWORK (22)
      • Spring.net (2)
      • LightSwitch (20)
    • PROGRAMING (58)
      • C# (20)
      • .NET (6)
      • HTML5 (7)
      • ASP.NET (9)
      • SILVERLIGHT (7)
      • Ruby On Rails (6)
    • PROJECT MANAGEMENT (10)
      • SW Version Management (7)
      • Schedulring Management (1)
    • BOOKS (18)
    • MOBILE APP (1)
      • SENCHA TOUCH (1)
    • SECURITY (5)
    • MES (1)
    • B2B (14)
      • WEBMETHODS (4)
    • ERP (53)
      • SAP/R/3 (51)
    • ABOUT TOOLS (2)
    • FUNDAMENT CONCEPT (21)
    • SOA BPM (22)
    • PORTFOLIO (0)

태그목록

  • 프로그래밍
  • 병렬
  • 동시성

최근에 받은 트랙백

글 보관함

링크

파란실버라이트

블로그 이미지

To remember the time when I started learning Silver Light!

LATEST FROM OUR BLOG

RSS 구독하기

LATEST COMMENTS

BLOG VISITORS

  • Total :
  • Today :
  • Yesterday :

Copyright © 2015 Socialdev. All Rights Reserved.

티스토리툴바