{{위키데이터 속성 추적}}
{{다른 뜻|닷넷||구 닷넷 코어}}
{{소프트웨어 정보
|이름 = 닷넷 프레임워크<br />.NET Framework
|로고 = Microsoft .NET logo.svg
|로고크기 = 174px
|화면 = 
|화면크기 =
|설명 = 닷넷 구성요소 스택
|원저자 = 
|개발자 = [[마이크로소프트]]
| released = {{시작 날짜와 나이|2002|02|13}}
| latest release version = 4.8.1
| latest release date = {{시작 날짜와 나이|2022|08|09}}<ref>{{웹 인용|url=https://dotnet.microsoft.com/download/thank-you/net48-offline|title=Download .NET Framework 4.8 Offline Installer|website=Microsoft|access-date=August 15, 2019|archive-date=August 15, 2019|archive-url=https://web.archive.org/web/20190815224743/https://dotnet.microsoft.com/download/thank-you/net48-offline|url-status=live}}</ref>
|미리보기 버전 = 
|미리보기 버전 출시일 = 
|지원중단 = 
|상태 = 
|프로그래밍 언어 = 
|운영체제 = [[윈도우 98]] 이상, [[윈도우 NT 4.0]] 이상
|엔진 = 
|플랫폼 = 
|크기 = 
|언어 = 
|종류 = [[소프트웨어 프레임워크]]
|라이선스 = 
|웹사이트 = [https://www.microsoft.com/net www.microsoft.com/net]
|표준 = 
}}

'''닷넷 프레임워크'''({{lang|en|.NET Framework}})는 [[마이크로소프트]]에서 출시한 [[마이크로소프트 윈도우|윈도우]] 프로그램 개발 및 실행 환경이다. 네트워크 작업, [[인터페이스]] 등의 많은 작업을 [[캡슐화]]하였고, [[공통 언어 런타임]](CLR)이라는 이름의 [[가상 머신]] 위에서 작동한다.

[[오픈 소스]] 버전으로 [[닷넷 코어]]가 있다.

== 버전별 주요 기능 ==
{{본문|닷넷 프레임워크 버전 역사}}
[[파일:DotNet.svg|섬네일|닷넷 프레임워크의 스택]]
{| class="wikitable"
!버전 번호
!버전 이름!!공개 날짜
|-
|?.?.????.?
| 프리 베타||[[2000년]] [[7월 11일]]
|-
|1.0.????.0
|1.0 베타 1||[[2000년]] [[11월]]
|-
|1.0.2914.0
|1.0 베타 2||[[2001년]] [[6월 20일]]
|-
|1.0.3705.0
|1.0 RTM||[[2002년]] [[1월 5일]]
|-
|1.0.3705.209
|1.0 SP1||[[2002년]] [[3월 19일]]
|-
|1.0.3705.288
|1.0 SP2||[[2002년]] [[8월 7일]]
|-
|1.0.3705.6018
|1.0 SP3||[[2004년]] [[8월 31일]]
|-
|1.1.4322.573
|1.1 RTM||[[2003년]] [[4월 1일]]
|-
|1.1.4322.2032
|1.1 SP1||[[2004년]] [[8월 30일]]
|-
|1.1.4322.2300
|1.1 SP1 (W2k3)||[[2005년]] [[3월 30일]]
|-
|2.0.50727.42
|2.0 RTM||[[2005년]] [[11월 7일]]
|-
|2.0.50727.312
|2.0 RTM (Vista)||[[2007년]] [[1월 30일]]
|-
|2.0.50727.832
|2.0 (KB928365)||[[2007년]] [[7월 10일]]
|-
|2.0.50727.1433
|2.0 SP1||[[2007년]] [[11월 19일]]
|-
|3.0.4506.30
|3.0 RTM||[[2006년]] [[11월 6일]]
|-
|3.0.4506.26
|3.0 RTM (Vista)||[[2007년]] [[1월 30일]]
|-
|3.0.4506.648
|3.0 SP1||[[2007년]] [[11월 19일]]
|-
|3.5.21022.8
|3.5 RTM||[[2007년]] [[11월 19일]]
|-
|4.0.30319.1
|4.0 RTM||[[2010년]] [[4월 12일]]
|-
|4.5.50709.17929
|4.5 RTM||[[2012년]] [[8월 15일]]
|-
|4.6.????.?
|4.6 RTM||[[2015년]] [[7월 20일]]
|-
|4.8
|
|[[2019년]]
|}

* 버전 1.0 : 닷넷 프레임워크의 핵심 구성 요소 및 기본 프로그래밍 언어를 처음으로 완성한 버전이다.
* 버전 1.1 : 버전 1.0을 토대로 [[ADO.NET]]에 [[오라클 DBMS|오라클]] 데이터베이스, [[ODBC]], [[OLE DB]] 지원을 추가하였으며 [[ASP.NET]]의 기능을 강화하였다.
* 버전 2.0 : [[제네릭 프로그래밍]]을 가능하게 하는 [[제네릭]]을 도입하였고, [[ADO.NET]] 및 [[ASP.NET]]에 새로운 프로그래밍 기술을 추가하였으며, AMD64 프로세서용 버전이 처음 발표되었다. 또한 윈도우 2000을 마지막으로 지원한다.
* 버전 3.0 : 개발명은 [[WinFX]]<ref>WinFX 문서로 들어가면 자동으로 이 문서로 넘어온다.</ref>이며, 버전 2.0을 기반으로 [[윈도우 프레젠테이션 파운데이션]], [[윈도우 커뮤니케이션 파운데이션]], [[윈도우 워크플로 파운데이션]], [[윈도우 카드스페이스]]로 명명된 4대 주요 기능을 추가하였다. [[윈도우 비스타]]에 내장되어 있으며 [[윈도우 XP]]와 [[윈도우 서버 2003]]에서 사용할 수 있다.
* 버전 3.5 : 버전 3.0을 기반으로 하며, [[언어 내장 쿼리]] 추가, [[C 샤프|C#]] 3.0, [[비주얼 베이직 닷넷]] 9.0 등 기존 언어들의 기능을 대폭 향상시켰다.
* 버전 4.0 : 병렬 처리를 위한 [[Parallel Extension]] 및 Parallel Linq (PLinq) 추가, [[C 샤프|C#]] 4.0에 다이나믹 타입 추가 ([http://msdn.microsoft.com/ko-kr/library/dd264736(v=vs.100).aspx dynamic 형식]), 임의 정밀도 정수 ([http://msdn.microsoft.com/ko-kr/library/system.numerics.biginteger.aspx System.Numerics.BigInteger]), 복소수 ([http://msdn.microsoft.com/ko-kr/library/system.numerics.complex.aspx System.Numerics.Complex]) 타입 추가.
* 버전 4.5 : [[메트로 스타일 앱]] 개발을 공식적으로 지원한다. [[비동기 처리]] 기능이 추가된 [[C 샤프|C#]] 5.0 및 [[비주얼 베이직 닷넷]]을 지원한다. ([http://msdn.microsoft.com/ko-kr/library/hh191443.aspx async / await을 이용한 비동기 처리])
* 버전 4.8 : [[윈도우 폼|윈폼]] 및 [[윈도우 프레젠테이션 파운데이션|WPF]]에서 [[유니버셜 윈도우 플랫폼|UWP]]의 컨트롤을 호스팅하는 것이 가능해진다. ([https://blogs.msdn.microsoft.com/dotnet/2018/05/07/net-core-3-and-support-for-windows-desktop-applications/ MSDN 공식 블로그]) | 2019년 초반기에 공식 공개되었다.

== 닷넷 프레임워크의 구조 ==
[[파일:Overview of the Common Language Infrastructure.svg|섬네일|right|[[공통 언어 기반]]<br />({{lang|en|Common Language Infrastructure}}: CLI)]]

=== 공통 언어 기반 ===
{{본문|공통 언어 기반}}

.NET 프레임워크의 가장 중요한 콤포넌트는 [[공통 언어 기반]]({{lang|en|Common Language Infrastructure}})이다. 다른 말로 CLI라고 한다. CLI를 둔 목적은 애플리케이션의 개발과 실행 시 언어에 종속적이지 않은 플랫폼을 제공하기 위해서이다. 예외 처리, 가비지 콜렉션, 보안, 호환 등을 위한 [[소프트웨어 콤포넌트]]를 포함한다. [[마이크로소프트]]가 구현한 CLI를 일컬어, 공통 언어 런타임({{lang|en|Common Language Runtime, CLR}})이라고 한다.

CLR은 다음과 같은 4개의 주요 부분으로 구성된다.
* [[공통 타입 시스템]] (CTS)
* [[공통 언어 스펙]] (CLS)

* [[저스트-인-타임 컴파일러]] (JIT)
* [[가상 실행 시스템]] (VES)

=== 어셈블리 ===
{{본문|닷넷 어셈블리}}

중간 언어인 MSIL 코드는 [[닷넷 어셈블리]]에 저장된다. 닷넷 어셈블리는 윈도우 구현에서는 [[포터블 익스큐터블]](PE) 파일이 된다. (EXE 혹은 DLL파일이다.) 닷넷 어셈블리는 [[소프트웨어 배포]] 및 판 높임, 보안 등에 있어서 .NET 유니트 역할을 한다. 어셈블리는 파일 한 개 이상 여러 개의 파일로 구성되는데, 파일들 중 한 개 파일은 매니페스트를 꼭 포함해야 한다. 어셈블리의 완전한 이름은 간단한 텍스트 이름 및 판(버전) 번호, 컬처, [[공개 키 암호 방식]]({{lang|en|public key}}) 토큰 등을 가지고 있다; 이 중 이름은 꼭 가지고 있어야 하지만, 나머지는 없어도 된다. 공개 열쇠 암호 토큰은 어셈블리가 작성될 때 생성된다. 이 토큰은 어셈블리의 이름과 어셈블리 파일들의 내용을 대표하는 고유의 값이다. [[공개 열쇠 암호|비밀 열쇠 암호]]는 어셈블리의 작성자에게만 알려진다. 같은 공개 열쇠 암호 토큰을 갖고 있는 두 개의 어셈블리는 같은 어셈블리라는 사실이 보장된다. 어셈블리가 해커 등에 의해 함부로 변경되면, 공개 열쇠 암호를 이용하여 어셈블리가 변경되었는지를 감지해낼 수 있다.

=== 메타데이터 ===
{{본문|닷넷 메타데이터}}

모든 공통 중간 언어(CIL)는 [[닷넷 메타데이터]]를 통해 "스스로 기술""된다. CLR은 적절한 메소드가 불리는지를 보장하기 위해 메타데이터를 검사한다. 메타데이터는 보통 랭귀지 컴파일러에 의해 생성된다. 하지만 개발자 자신이 커스텀 애트리뷰트를 사용하여 자신만의 메타데이터를 작성할 수도 있다. 또한 메터데이터는 어셈블리에 대한 모든 정보를 담고 있다.

=== 베이스 클래스 라이브러리 (BCL) ===
{{본문|베이스 클래스 라이브러리}}

베이스 클래스 라이브러리(BCL)는 .NET 프레임워크를 사용하는 모든 언어가 사용할 수 있는 [[클래스 (컴퓨터 과학)|클래스]]들의 라이브러리이다. 흔히 프레임워크 클래스 라이브러리({{lang|en|Framework Class Library}}) (FCL)이라고 잘못 불린다. (이것은 Microsoft.* 네임스페이스를 포함하는 BCL보다 큰 집합이다.) 파일 읽기나 쓰기, 그래픽 렌더링, 데이터베이스 조작, XML 조작 등과 같은 공통된 기능을 해주는 클래스들을 제공한다.

== 같이 보기 ==
{{위키공용분류}}
* [[ASP.NET MVC]]
* [[ASP.NET Core]]
* [[NuGet]]
* [[닷넷 코어]]
* [[닷넷 마이크로 프레임워크]]
* [[모노 (소프트웨어)]]
* [[엔티티 프레임워크]]

== 각주 ==
<references />

== 외부 링크 ==
* {{공식 웹사이트}}
* {{언어링크|ko}} [http://msdn.microsoft.com/ Microsoft Developer Network]
* {{언어링크|ko}} [https://web.archive.org/web/20060816012151/http://www.microsoft.com/korea/msdn/netframework/ 닷넷 프레임워크 홈]
* {{언어링크|ko}} [http://msdn.microsoft.com/ko-kr/library/aa139615(v=MSDN.10).aspx/ 닷넷 프레임워크 라이브러리]
* {{언어링크|en}} [http://msdn.microsoft.com/en-us/netframework/ .NET Framework Developer Center]

=== 다운로드 ===
* {{언어링크|ko}} [https://web.archive.org/web/20080102041607/http://www.microsoft.com/korea/msdn/netframework/downloads/ 다운로드 정보]

{{마이크로소프트}}
{{마이크로소프트 API}}
{{윈도우 구성 요소}}
{{닷넷 프레임워크}}

{{전거 통제}}

[[분류:마이크로소프트 개발 도구]]
[[분류:닷넷 프레임워크| ]]
[[분류:2002년 소프트웨어]]