|
|
ASP 정의 |
Active Server Pages의 약자로 하나 이상의 작은 내장 스크립트를 갖고 있는 HTML페이지가 사용자에게 보여지기 위해 서버에서 수행되면서 서버에서 실행이 되는 스크립트를 통하여 동적인 웹페이지 및 웹 스크립트 환경을 말한다. |
ASP 특징 |
디자인 부분과 엔진 부분의 분리. - Web Page를 생성하는 동적인 부분을 C#과 같은 언어로 엔진을 만들어 연동할 수 있으며 Web Page는 Code와 느슨한 연결 의존성으로 결합되어 있어 유연성을 높일 수 있고 보안성을 높일 수 있다.
기본적인 서비스 엔진은 웹 서버(IIS)가 한다. - 웹 서버인 IIS가 Web Page와 연결된 코드를 컴파일하여 서비스를 하기 때문에 Web Page와 매핑되는 기본 엔진을 별도의 서비스 형태로 가동할 필요가 없다.
별도의 서비스 엔진을 사용할 수 있다. - Web Page와 매핑된 코드부분에서 다른 엔진에서 제공하는 서비스를 mash – up 을 통해 만들 수 있다. 이는 효율성과 유연성을 높일 수 있게 한다. 어떠한 스타일의 컴포넌트를 엔진으로 삼을 수 있다.
다양한 형태의 웹 변수. - 현재 페이지, 세션, Application, 쿠키 등을 통해 다양한 형태의 웹 변수를 사용할 수 있게 함으로써 보다 신뢰성 있는 세션 관리 기능과 인증을 제공한다.
개발 도구의 선택의 자유. - ASP는 페이지 이기 때문에 메모장에서 작성하여 해당 웹 디렉토리에 올리는 것만으로도 동작이 가능하다. (IIS에서 동적 컴파일)
Server Side Script 지원 - 기존 스크립트는 모두가 클라이언트 몫이었다. 즉 서버는 단순히 클라이언트에게 스크립트 소스 자체를 전송해 주며, 이를 전송 받은 클라이언트의 브라우저가 스크립트를 분석해서 처리해 주었는데, 이 방법은 기존의 클라이언트 스크립트들을 모든 브라우저가 인식하지 못한다는 단점과 개발된 스크립트 파일이 모두 공개된다는 문제점이 있다. 이 두 가지 문제를 해결하기 위해 나온 것이 바로 ASP 이다. ASP로 해결 할 수 있는 작업들은 서버에서 모두 처리한 후에 클라이언트로 결과를 전송하는 것을 말한다. 위 도식에서 알 수 있듯이 실제 웹 사이트 방문자가 요청하는 것은 ASP파일이지만, 방문자에게 보여지는 파일은 서버측에서 실행되는 부분, 즉 파란 영역 부분을 제외한 나머지 부분만이 방문자에게 보여지는 것이다. |
ASP 문제점 |
강력한 플랫폼으로 만들어 주는 것과 같은 지점, 즉 서버 측 스크립팅 언어라는 점 - 스크립팅 언어들은 해석되고, 안정적인 프로그래밍에 참여하지 못하는 무형식의 개체 - Ex) 기존의 ASP환경에는 클래스 상속, 어트리뷰트, 형식 제약이 엄격한 데이터, 클래스 다형성 등의 개념이 없다.
.asp 페이지가 모듈화된 코드를 만들어 내지 못한다 - ASP에서는 한 페이지 안에 HTML 과 스크립트를 섞어 사용하기 때문에, 대부분의 ASP 웹 응용 프로그램에는 서로 다른 두 프로그래밍 기법이 혼재되어 있다. 기존의 ASP에서도 재사용이 가능한 코드를 별도의 인클루드 파일로 나누어 쓸 수 있지만, 내부 객체 모델이 진정한 관계의 분리를 지원하지는 않는다. - 이상적으로는 웹 프레임어크에서 프레젠테이션 로직이 비즈니스 로직과 독립되어 존재할 수 있어야 한다.
프로젝트마다 많은 양의 반복되는 스크립트 코드를 중복 - 사용자 입력의 유효성을 검사하고, HTTP 응답을 전송하기 전에 HTML 위젯들의 상태를 복원하고, 데이터를 보여주기 위해 HTML 테이블을 만드는 등의 작업은 거의 대부분의 웹 응용 프로그램에 필요한 작업들이다. |
ASP.NET이 나오게 된 계기 |
ASP의 한계를 극복하고 새로운 패러다임 등장 - 서버 측 스크립팅 언어를 이용하지 않는다. - C#, MC++, Visual Basic, .NET(또는 다른 .NET 지원 언어)과 같은 프로그래밍을 이용할 수 있다. - 곧바로 웹 개발에 적용할 수 있다는 것을 의미.
.NET 클래스 라이브러리나 개발자들이 만든 사용자 지정 어셈블리의 기능을 모두 이용 가능. - 참조 추가 대화 상자를 열어서 필요한 어셈블리를 찾기만 하면 된다.
응용 프로그램 작성시 작성할 코딩의 양을 줄이기 위한 방법 제공 - 서버 측 웹 컨트롤을 이용하면, HTML 태그를 자동적으로 생성해 주는 GUI 위젯들로 브라우저 기반의 프런트 엔드를 만들 수 있다. - 웹 컨트롤을 이용하면 작성해야 할 클라이언트 측 xxxxJavaScript 코드를 줄일 수 있다. |
ASP.NET 정의 |
엔터프라이즈(Business) 수준의 웹 응용 프로그램을 최소한의 코딩으로 구축하는 데 필요한 서비스를 포함하는 통합 웹 개발 모델입니다. ASP.NET은 기존의 정적인 웹 페이지 기술에 벗어나 동적인 웹 페이지를 만들 수 있는 새롭고 강력한 기술로서 ASP 와 .NET이 결합 한 것이며, .NET Framework의 일부로 제공되며, ASP.NET 응용 프로그램을 코딩할 때는 .NET Framework의 클래스를 액세스할 수 있습니다. Microsoft Visual Basic 및 C# 등의 CLR(공용 언어 런타임)과 호환되는 모든 언어로 응용 프로그램을 코딩할 수 있습니다. 이러한 언어를 사용하면 CLR, 형식 안전성, 상속 등을 사용하는 ASP.NET 응용 프로그램을 개발할 수 있습니다. |
ASP.NET 특징 |
ASP.NET은 코드 비하인드 기법 제공 - 프레젠테이션 로직과 비즈니스 로직을 분리
해석되는 스크립팅 언어가 아니라 컴파일된 .NET 어셈블리 이용 - 실행 속도가 빠르다
.NET 웹 컨트롤을 이용하면 전통적인 데스크톱 응용 프로그램을 만드는 것과 유사한 방식으로 웹 응용 프로그램의 GUI를 만들 수 있다.
.NET 웹 컨트롤들은 __VIEWSTATE라는 이름의 히든 폼 필드를 이용해서 포스트 백 간에 상태를 자동적으로 유지한다.
완벽하게 객체 지향이다. - 더 이상 클라이언트에 의해 전송된 값을 얻기 위해 Form 이나 QueryString 컬렉션을 뒤져볼 필요가 없다.
표준 IIS 설정이나 웹 응용 프로그램 구성 파일을 이용해서 쉽게 구성 할 수 있다.
어셈블리는 시스템 레지스트리에 등록되지 않으므로 ASP.NET 웹 응용 프로그램은 매우 간단하게 배포 될 수 있다. |
ASP.NET 네임스페이스 |
System.Web - 브라우저/서버 통신을 가능하게 하는 클래스와 인터페이스를 제공. - HttpRequest Class – 클라이언트에 대한 HTTP 출력을 관리 - HttpServerutility Class – HttpResponse 클래스 및 서버 쪽 유틸리티와 프로세스에 액세스하는 데 사용 할 수 있다. - 쿠키 조작, 파일 전송, 예외 정보 및 출력 캐시 제어에 사용할 수 있는 클래스도 있다.
System.Web.ApplicationServices - WCF 서비스로 ASP.NET 폼 인증, 역할 및 프로필 응용 프로그램 서비스에 대한 엑세스를 제공하는 클래스를 포함
System.RunTime.Caching - .NET Framework 응용 프로그램에 캐싱을 구현할 수 있는 형식을 포함
System.Web.ClientServices - Windows 기반 응용 프로그램에서 ASP.NET 로그인, 역할 및 프로필 서비스에 대한 엑세스를 지원하는 클래스 포함
System.Web.Configuration - ASP.NET 구성을 프로그래밍 방식으로 관리하는 데 사용되는 클래스를 포함. - 대부분의 구성 설정은 XML 파일로 만들 수 있다.
System.Web.DynamicData - ASP.NET Dynamic Data 에 대한 핵심 기능을 제공하는 클래스와 Dynamic Data 동작을 사용자 지정하는 확장성 기능 포함
System.Web.Handlers - 웹 서버에 대한 HTTP 요청을 처리하는 HTTP 처리기 클래스를 포함.
System.Web.Management - 웹 응용 프로그램의 상태를 관리 및 모니터링하는 클래스와 인터페이스를 포함
System.Web.Profile - 웹 서버 응용 프로그램에서 ASP.NET 사용자 프로필을 구현하는 데 사용되는 클래스 포함
System.Web.Query.Dynamic - LinqDataSource 컨트롤의 식을 LINQ(통합 언어 쿼리)로 구문 분석화는데 사용하는 클래스 포함
System.Web.Routing - 실제 파일에 매핑되지 않는 URL을 사용할 수 있도록 URL 라우팅에 사용되는 클래스 제공
System.Web.RegularExpressions - ASP.NET 파일을 구문 분석하는 데 사용되는 정규식을 제공. - System.Web.RegularExpressions 네임스페이스의 모든 멤버는 Regex 클래스의 하위 항목.
System.Web.Script - 클라이언트 스크립트 리소스 정보를 제공하는 클래스 포함.
System.Web.Script.Services - ASP.NET 에서 Ajax 기능을 사용하기 위해 웹 서비스 지원을 사용자 지정하는 특성 제공.
System.Web.Security - 웹 서버 응용 프로그램에서 ASP.NET 보안을 구현하는 데 사용되는 클래스 포함.
System.Web.Services - ASP.NET 및 XML Web Services 클라이언트를 사용하여 XML Web Services를 만들 수 있게 하는 클래스로 구성. - XML Web Services 는 HTTP, XML, XSD, SOAP 및 WSDL 등의 표준 프로토콜을 사용하여 느슨하게 결합된 환경에서 메시지를 교환하는 기능을 제공하는 응용 프로그램.
System.Web.SessionState - 서버의 단일 브라우저 세션 중에 단일 클라이언트에 해당하는 데이터를 저장 할 수 있게 하는 클래스와 인터페이스를 포함. - 세션 상태 데이터는 응용 프로그램과의 지속적인 연결을 클라이언트에 나타내기 위해 사용된다.
System.Web.UI - ASP.NET 웹 응용 프로그램의 사용자 인터페이스에 대한 ASP.NET 서버 컨트롤과 ASP.NET 웹 페이지를 만들 수 있게 하는 클래스와 인터페이스를 제공합니다. - 이 네임스페이스는 공통적인 기능 집합이 있는 모든 HTML 서버 컨트롤, 웹 서버 컨트롤 및 사용자 정의 컨트롤을 제공하는 Control 클래스를 포함하며, ASP.NET 웹 응용 프로그램에서 .aspx 파일이 요청될 때마다 자동으로 생성되는 Page 컨트롤도 포함. - 서버 컨트롤에 데이터 바인딩 기능, 지정된 컨트롤이나 페이지의 보기 상태를 저장하는 기능 및 구문 분석 기능을 제공하는 클래스 포함.
System.Web.UI.DataVisualization.Charting - Chart 웹 서버 컨트롤에 대한 형식을 포함.
System.Web.UI.Design.WebControls - 웹 서버 컨트롤에 대한 디자인 타임 지원을 확장하는 데 사용될 수 있는 클래스 포함.
System.Web.UI.Design.WebControls.Webparts - 이 네임스페이스의 클래스에서 파생되는 컨트롤에 대한 디자인 타임 지원을 제공하는 클래스 포함.
System.Web.UI.HtmlControls - Web Forms 페이지에 HTML 서버 컨트롤을 만드는 데 사용할 수 있는 클래스 컬렉션을 포함. - HTML 서버 컨트롤은 서버에서 실행되며 대부분의 브라우저가 지원하는 표준 HTML 태그에 직접 매핑.
System.Web.UI.WebControls - 웹 페이지에 웹 서버 컨트롤을 만들 수 있게 하는 클래스를 포함. - 웹 서버 컨트롤은 서버에서 실행되며 단추 및 텍스트 상자와 같은 폼 컨트롤을 포함. - 웹 서버 컨트롤은 서버에서 실행되므로 이러한 요소를 프로그래밍 방식으로 제어할 수 있다.
System.Web.UI.WebControls.WebParts - 최종 사용자가 모양과 동작을 수정할 수 있는 웹 페이지를 만드는 통합 클래스 및 인터페이스 집합을 포함.
System.Web.Util - 트랜잭션 범위에서 콜백 메서드를 실행하고 작업 내용을 별도의 스레드에 게시하는 데 사용할 수 있는 클래스를 포함. |
페이지 및 컨트롤 프레임워크 |
웹 페이지를 동적으로 만들고 랜더링 하기 위한 프레임 워크 - HTML과 같은 태그를 요청하는 브라우저에 랜더링. - 여러 브라우저에 동일한 페이지를 사용할 수 있다.
개체 지향적 - 속성, 메서드 및 이벤트를 사용하여 HTML 요소에 대해 작업할 수 있다. - 서버에서 실행하는 코드에서 클라이언트 이벤트에 응답하기 위한 통일된 모델을 제공하므로 클라이언트와 서버 간 분리를 위한 구현 세부 사항에 신경쓸 필요가 없으며 페이지 처리 기간 동안 페이지 및 페이지에 포함된 컨트롤의 상태를 프레임 워크에서 자동으로 관리.
쉽게 사용가능하며 다시 사용할 수 있는 컨트롤에 UI 기능을 캡슐화 - 한 번 작성한 컨트롤은 여러 페이지에서 사용할 수 있다.
테마와 스킨을 통해 웹 사이트의 전반적인 모양과 느낌을 제어할 수 있는 기능 제공 - 테마와 스킨을 정의한 다음 이를 페이지 수준이나 컨트롤 수준에 적용.
마스터 페이지를 정의하여 응용 프로그램의 페이지에 일관된 레이아웃 제공 - 마스터 페이지는 응용 프로그램의 모든 페이지에 적용할 레이아웃 표준 동작 정의. - 표시하려는 페이지 관련 콘텐츠가 포함된 개별 콘텐츠 페이지를 만들 수 있다. - 콘텐츠 페이지를 요청하면 마스터 페이지와 병합되어 조합된 레이아웃 출력.
URL 패턴을 정의 - SEO(Search Engine Optimization)에 도움이 되고 사용자에게 친숙한 URL 사용.
액세스 가능성 지침을 준수하는 HTML을 생성하도록 디자인되어 있다. |
ASP.NET 컴파일러 |
강력한 형식 지정, 성능 최적화 및 초기 바인딩을 비롯한 여러 가지 이점을 얻을 수 있다. 코드가 컴파일되고 나면 CLR(공용 언어 런타임) 에서 다시 ASP.NET 코드를 네이티브 코드로 컴파일하므로 성능이 향상된다. |
ASP.NET 보안 인프라 |
.NET의 보안 기능 외에도 ASP.NET은 사용자 액세스 인증 및 권한 부여와 다른 보안 관련 작업 수행을 위한 고급 보안 인프라 제공. · 폼 인증 공급자 |
ASP.NET 상태 관리 기능 |
분산된 상태 기능을 제공. |
ASP.NET 구성 |
응용 프로그램에서는 웹 서버, 웹 사이트 또는 개별 응용 프로그램의 구성 설정을 정의할 수 있는 구성 시스템을 사용. |
ASP.NET 상태 모니터링 및 성능 기능 |
응용 프로그램의 상태 및 성능을 모니터링할 수 있는 기능 포함. - 응용 프로그램의 상태와 오류 조건에 대한 정보를 제공하는 키 이벤트를 보고할 수 있다. - 진단 및 모니터링 특성을 조합하여 로깅된 내용과 로킹 방식을 매우 유연하게 제공. |
ASP.NET 디버깅 지원 |
런타임 디버깅 인프라를 활용하여 언어 간 및 컴퓨터 간 디버깅을 지원. - 관리되는 개체와 관리되지 않는 개체뿐 아니라CLR(공용 언어 런타임) 및 스크립트 언어에서 지원하는 모든 언어를 디버깅할 수 있다. |
ASP.NET수명주기 관리 |
응용 프로그램 리소스에 처음 액세스하는 시점부터 응용 프로그램이 종료될 떄까지 응용 프로그램 수명 주기를 제어하는 확장 가능한 포스팅 환경 |
ASP.NET Web Service 프레임워크 |
XML Web Services를 지원 - HTTP 및 XML 메시징과 같은 표준을 사용하여 방화벽을 통해 정보를 교환하는 비즈니스 기능이 포함 된 구성 요소. - 특정 구성 요소 기술 또는 개체 호출 규칙으로 제한되지 않는다. - 프로그램 작성에 사용된 구성 요소 모델, 언어 및 운영 체제에 상관없이 XML Web Serivces에 액세스 할 수 있다.. |
ASP.NET확장 가능한 디자이너 환경 |
Visual Studio와 같은 비주얼 디자인 도구에서 사용할 웹 서버 컨트롤의 디자이너를 만들 수 있는 향상된 지원이 포함. |
ASP.NET Dynamic Data |
Dynamic Data 프레임워크를 사용하면 데이터 기반의 ASP.NET 웹 응용 프로그램을 쉽게 만들 수 있다. 이 프레임워크에서는 자동으로 런타임에 데이터 모델 메타데이터를 검색하고 해당 메타데이터에서 UI 동작을 파생시켜 이러한 기능을 제공. 스캐폴딩 프레임워크는 데이터를 보고 편집할 수 있는 기능적인 웹 사이트를 제공. |