CLR

 

 

서울우유 1급A우유

COUPANG

www.coupang.com

해당 글은 광고를 포함하고 있습니다.이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받을 수 있습니다.

 

 

 

 

 

 

 

 

 

.NET 응용 프로그램이 어떻게 컴파일 되는지 알아야 개발하는데 도움이 되지 않을까? 

 

 

우선 각각 C# , VB 각각의 언어로 프로그램을 작성하면 해당 컴파일은 언어에 맞게 컴파일 하여 exe를 생성한다.

 

여기서 Intermediate Language 중급언어 IL 코드는 반 컴파일 또는 부분 컴파일 또는 CPU 독립적 인 부분 컴파일 코드입니다.

 

CLR 의 핵심 기능은 다음과 같다 

  1. Security Manager
  2. JIT Compiler
  3. Memory Manager
  4. Garbage Collector
  5. Exception Manager
  6. Common Language Specification (CLS)
  7. Common Type System (CTS)

Security Manager 

보안관리자는 크게 두가지로 나뉩니다.

  1. CAS (코드 액세스 보안)
  2. CV (코드 검증)

이 두 구성 요소는 기본적으로 사용자가 어셈블리에 액세스 할 수 있는지 현재 사용자의 권한을 확인하는 데 사용됩니다. CLR은 또한이 코드에 어떤 종류의 권한 또는 어떤 종류의 권한이 있는지, 운영 체제에서 안전하게 실행할 수 있는지 여부도 확인합니다. 따라서 기본적으로 이러한 유형의 검사는 보안 관리자가 유지 관리합니다.

 

JIT Compiler

JIT 컴파일러는 MSIL 코드를 시스템에서 실행되는 기본 코드로 변환합니다. 네이티브 코드는 시스템 하드웨어에서 직접 이해할 수 있습니다. JIT는 실행 직전에 코드를 컴파일 한 다음이 변환을 메모리에 저장합니다.

 

Memory Manager

메모리 관리자 구성 요소는 응용 프로그램에서 사용할 변수 및 오브젝트에 필요한 메모리를 할당합니다.

 

Garbage Collector

닷넷 응용 프로그램이 실행되면 많은 개체가 만들어집니다. 특정 시점에서 이러한 객체가 필요하지 않을 수 있습니다. 따라서 가비지 콜렉터는 작은 루틴 일 뿐이며 백그라운드 프로세스 스레드라고 말하고 애플리케이션에서 현재 사용하지 않는 오브젝트를 식별하고 해당 오브젝트의 메모리를 할당 해제하는 백그라운드 프로세스 스레드라고 말할 수 있습니다.

 

Exception Manager

이 구성 요소는 프로세서를 리디렉션하여 catch를 실행하거나 런타임에 예외가 발생할 때마다 차단합니다.

 

 

Common Type System (CTS)

.NET Framework는 C #, VB.NET, J # 등과 같은 많은 프로그래밍 언어를 지원합니다. 모든 프로그래밍 언어에는 고유 한 데이터 형식이 있습니다. 한 프로그래밍 언어는 다른 프로그래밍 언어 데이터 형식을 이해할 수 없습니다. 그러나 한 언어로 코딩하여 다른 언어로 호출하려는 상황이있을 수 있습니다. 이러한 언어 간의 원활한 통신을 보장하기 위해 가장 중요한 것은 두 가지 언어로 정의 된 유형이 공통 데이터 유형으로 컴파일되도록하는 공통 유형 시스템 (CTS)이 있어야한다는 것입니다.

CLR은 모든 프로그래밍 언어의 데이터 유형을 실행합니다. 이것은 CLR이 모든 프로그래밍 언어에 공통 인 자체 데이터 유형을 포함하기 때문에 가능합니다.

컴파일시 모든 언어 별 데이터 유형이 CLR의 데이터 유형으로 변환됩니다. .NET의 모든 프로그래밍 언어에 공통적 인이 CLR 데이터 형식 시스템을 CTS (Common Type System)라고합니다.

 

CLS (Common Language Specification)

CLS는 CLR의 일부입니다. .NET은 많은 프로그래밍 언어를 지원하며 모든 프로그래밍 언어에는 언어 사양으로 알려진 코드 작성을위한 고유 한 구문 규칙이 있습니다. 즉, 모든 프로그래밍 언어에는 자체 언어 사양이 있습니다.

'ASP.NET' 카테고리의 다른 글

c# 문자열 의 깊이  (0) 2020.06.26
2. .NET Framework 란?  (0) 2020.04.20
7. 닷넷 기초 (이미지 컨트롤)  (0) 2018.02.25
6. 닷넷 기초 (현재시간 출력하기)  (0) 2018.02.25
5. 닷넷 기초 (표준 컨트롤러)  (0) 2018.02.25

.NET Framework

 

닷넷 프레임워크가을 하기전에 COM 이라는 것이 있다.  COM 은 마이크로소프트사의 기술로 

윈도우 응용프로그램을 만들거나 웹 응용프로그램을 만드는 기술입니다. 

하지만 여기엔 큰 단점이 있었는데 ... 

 

OOP 즉 객체지향의 모든 기능을 지원하지 못했고, 

윈도우 OS만 실행이 가능하다는 단점이 있습니다. 

!! 이로인해  .NET Framework가 등장 하게 된 것입니다.

 

 

우선 의미부터 파악해본다면

 

.NET 에서  . <- (닷) 이 의미하는 것은 객체지향을 ,  NET은 인터넷를 의미합니다. 

고로 .NET은 객체지향을 통해  인터넷 기반 응용 프로그램을 구현 할 수 있다로 정리 할 수 있겠습니다.

 

그럼 여기서 Framework는 무엇일까?

프레임 워크는 소프트웨어입니다. 또는 프레임 워크는 어디서나 실행될 수있는 응용 프로그램을 개발하기 위해 함께 통합 된 많은 소규모 기술의 모음이라고 말할 수 있습니다.

 

--------------------------------------------------------------------------------------------------------------------------

.NET 프레임 워크는 크게 2가지를 지원하는합니다.

 

1. BCL (Base Class Libraries

2. CLR (Common Language Runtime)

 

 

BCL 은 마이크로 소프트에서 만들었으며,  BCL이 없으면 .NET 코드를 작성 할 수 없습니다.

BCL 은 .NET Framework 를 설치할 때 설치가 되며, 정의된 클래스가 포함되어 있어 응용 프로그램을 개발 할 때 클래스를 사용해서 개발을 합니다.

 

 CLR은 Common Language Runtime의 약자이며 .NET 프레임 워크에서 MSIL (Microsoft Intermediate Language) 코드를 원시 코드로 변환 한 다음 실행 하는 핵심 구성 요소 입니다.

 

정리를 하자면 .

.NET은 많은 프로그래밍 언어와 많은 기술을 지원하는 프레임 워크 도구입니다.

60개 이상의 언어를 지원하지만 대표적으로 

  1. VB.NET
  2. C # .NET
  3. VC ++. NET
  4. J # .NET
  5. F # .NET
  6. Jscript.NET

NET 프레임 워크에서 지원하는 기술은 다음과 같습니다.

 

  1. ASP.NET (Active Server Pages.NET)
  2. ADO.NET (Active Data Object.NET)
  3. WCF (Windows Communication Foundation)
  4. WPF (Windows Presentation Foundation)
  5. WWF (Windows Workflow Foundation)
  6. AJAX (비동기 JavaScript 및 XML)
  7. LINQ (언어 통합 쿼리)

 

 

'ASP.NET' 카테고리의 다른 글

c# 문자열 의 깊이  (0) 2020.06.26
3. .NET Framework CLR  (0) 2020.04.20
7. 닷넷 기초 (이미지 컨트롤)  (0) 2018.02.25
6. 닷넷 기초 (현재시간 출력하기)  (0) 2018.02.25
5. 닷넷 기초 (표준 컨트롤러)  (0) 2018.02.25

웹 프로젝트 만들기


파일 - 새로만들기 - 프로젝트



새 프로젝트 만들기


웹  -  ASP.NET 응용 프로그램 하단에 자신의 프로젝트 이름을 설정한 후  확인을 누르세요



자신의 프로젝트에 마우스 오른쪽을 누르고 추가 - 새 항목 



웨 - 웹폼 - 이름을 설정 후 추가를 누르세요 



저는 test1 이라는 웹폼을 만들었습니다. 그럼 test1.aspx 파일이 만들어지고 작성을 해보겠습니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="test1.aspx.cs" Inherits="FrmText.test1" %>
 
<!DOCTYPE html>
 
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:TextBox ID ="text1" runat="server" Text="버튼을 클릭해주세요"></asp:TextBox>
        <asp:Button ID="btn1" runat="server" Text="버튼1" OnClick="btn_1" />
    </div>
    </form>
</body>
</html>
 
cs


text1 이라는 텍스트 박스와 , btn1이라는 버튼을 반들었습니다.


test1.aspx.cs 를 작성해봅니다. onclick 이벤트가 발생했을 때 텍스트박스에 출력을 하겠습니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
 
namespace FrmText
{
    public partial class test1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
 
        }
        protected void btn_1(object sender, EventArgs e)
        {
            text1.Text = "버튼 1이 클릭 되었습니다.";
        }
    }
}
cs



저장 후 브라우져에서 마우스 오른쪽 누르고 브라우져에서 실행 또는 Ctrl+ F5 를 눌러서 확인해보겠습니다.



+ Recent posts