.NET Framework
웹 서비스 및 기타 응용 프로그램의 작성, 배포 및 실행을 위한 환경을 의미한다.
거의 모든 종류의 프로그램을 개발할 수 있도록 만들어진 크고 포괄적인 개발 프레임워크이다.
└ ASP.NET : 웹 응용 프로그램을 만들기 위해 특별히 설계된 .NET Framework의 한 부분
CLR (Common Language Runtime) : 공통 언어 런타임
Framework 클래스 및 ASP.NET의 세 가지 주요 부분으로 구성되어지는 환경을 의미한다.
.NET 타입들의 위치를 지정하고, 로드하고, 관리하는 역할을 담당한다. 자동으로 메모리를 관리해 주고, 언어를 통합할 수 있도록 하는 것이다.
CTS (Common Type System) 규칙 :
모든 타입들을 확실히 명세하고, 언어에 상관없이 타입을 공유하도록 함
: 언어는 문법의 차이만 있고, 내부적으로는 같은 타입을 사용하도록 한다 >.NET 프레임워크에서 제공하는 기반 클래스들을 가져다가 사용하는 것이다.
"컴파일" 과정이 있으므로 가능 (어떤 언어든지 컴파일 후엔 MSIL > dll , exe......로 변경됨)
CLS (Common Language Specification) :
새로운 타입을 작성하고자 할 경우에, 그 기준이 되어주는 일종의 명세서
이 명세에 맞추면 여러 언어들이 닷넷을 지원하도록 제작 가능 (Python, Java 등..)
.aspx 파일과 .ascx 파일의 차이
(1) aspx : asp.net 의 확장자, C # 코드를 포함하는 서버에서 생성 된 웹 페이지, 닷넷 시스템 위에서 동작하는 서버 스크립트
HTML + 서버 코드 가 완전히 분리되어 구동 (<-> asp는 HTML과 서버코드가 합쳐져서 하나의 페이지로 작동)
페이지 내의 스크립트는 웹 서버에서 처리되고, 생성된 HTML을 브라우저로 전송한다
(2) ascx : User Control (사용자 정의 컨트롤)
: ASP.NET 페이지의 일부를 컨트롤화 함. 작은 ASP.NET 페이지.
코드 비하인드를 가질 수 있고, 스크립트와 HTML 요소를 포함할 수 있지만 <HTML>, <BODY>, <FORM> 태그는 가질 수 없음
여러 페이지에서 반복적으로 사용되는 독립 모듈을 위한 타입
ex) 풋터, 메뉴바, CopRight 문구 등 고정적인 것들...
>> 차이점 : ascx는 웹페이지의 일부이므로 "독립적인 실행은 불가능"하며, 호스트하는 웹페이지가 필요함
그냥 참고용 > asp랑 aspx 비교
|
asp (Active Server Pages) |
aspx |
방식 (컴파일 유무) |
인터프리터 방식 |
컴파일러 방식 |
기반 언어 |
VBScript / JScript |
닷넷 언어들 (C#, VB, ... ) |
구동 플랫폼 |
IIS |
IIS, .NetFramework |
페이지 형태 |
하나의 ASP 페이지에 디자인과 제어 코드가 섞여 있음 (객체 지향 X) |
객체 지향형, 디자인과 코드가 분리된 MVC 패턴의 유사 형태 |
관리 |
ASP.DLL ASP 페이지의 실행과 관리를 담당 |
C.L.R(Common Language Runtime) |
인터프리터(Interpreter)
프로그래밍 언어의 소스 코드를 바로 실행하는 컴퓨터 프로그램 또는 환경을 말한다.
고급 언어를 즉시 실행시킬 수 있다는 장점을 가지며, 코드의 수정을 바로 테스트 해 볼 수 있어서 프로그램 개발 단계에서 종종 사용된다.
장점 : 컴파일 없이 큰 파일도 바로 실행 가능
단점 : 실행할 때마다 번역 필요 -> 인터프리터 필요. 효율성이 떨어짐
컴파일러(Compiler)
원시 언어에서 목적 언어로 바꾸는 작업을 하는 것을 말한다. 좀더 쉽게 말하면 A라는 언어에서 B라는 언어로 통역을 해주는 작업 또는 그 작업을 하는 것이다.
프로그래밍에서는 주로 고급언어 -> (중간언어 ->) 기계어로 바꿔주는 것을 말한다.
장점 : 어떠한 환경에 구애받지 않고, 고급언어 + 컴파일러만 있으면 실행 가능
단점 : VM 을 거칠 경우, 속도가 느림(JAVA)
참고 http://tutankhamenkr.me/posts/9
.cs 파일
C# 소스의 기본 확장자. .NET Framework 위에서 동작
.cshtml
Razor 페이지에서 사용되는 확장자
Razor
ASP.NET MVC 3를 위한 새로운(? 2010년) 뷰 엔진. 클라이언트 컨텐츠에 서버 코드를 끼워넣는 방법 중 하나다.
*클라이언트 컨텐츠 : HTML, CSS , Javascript, Text ....
- 페이지에 서버 코드 有 -> 브라우저에 페이지를 전송하기 전, 서버 코드 실행 -> 정적 HTML과 함께 전송
- 서버 코드는 클라이언트 컨텐츠를 동적으로 생성할 수 있고, 뷰 단에서 서버 코딩을 할 때에는 기존의 <%%> 가 아닌, @ 문자를 사용한다
- HTML 도우미 메서드(Helper)를 제공한다. ex) .LabelFor, .ValidationMessageFor .....
[그림 설명] 각각 하위의 것을 기반으로 실행된다.
출처 : http://i1.asp.net/umbraco-beta-media/2573127/Windows-Live-Writer_2--.
NET-Web-Programming-Using-the-Razor-_7D39_ch02_programmingintro-8_4.jpg
.NET MVC : 모델-뷰-컨트롤러 패턴으로 관심사(처리, 데이터, UI)를 분리시켜서 구현한다.
separation of concerns (processing, data, and UI layers)
참고
http://www.taeyo.net/Columns/List.aspx?SEQ=6&IDX=0
http://taeyo.net/Columns/View.aspx?SEQ=442&PSEQ=35&IDX=1
http://blog.naver.com/PostView.nhn?blogId=julymorning4&logNo=100160097990
출처: https://ryusae.tistory.com/11 [초보자 전용 마을]
'ASP.NET' 카테고리의 다른 글
Asp.net mvc razor 페이지 리로드, 특정 페이지 리다이렉트 (page reload / redirect) (0) | 2020.05.22 |
---|---|
Introducing .NET 5 번역 (0) | 2020.04.23 |
.NET 5.0 시작하기 (0) | 2020.04.23 |
How to return ActionResult with specific View? (not the controller name) / ASP.Net (0) | 2020.04.22 |
[MVC4] JSON Problem - JsonRequestBehavior to AllowGet (0) | 2020.04.08 |