SlideShare a Scribd company logo
1 of 24
닷넷 17년의 변화 정리
및 닷넷 코어 3.0
.NET Conf 2019 @ Seoul
JENNIFERSOFT
2019.10.05
정성태
JENNIFER R&D TEAM
Software engineer
techsharer@outlook.co
m
http://www.sysnet.pe.k
r
닷넷 17년의 변화 정리 및 닷넷 코어 3.0 .NET Conf 2019 @ Seoul
COPYRIGHT ©JENNIFERSOFT INC. ALL RIGHTS RESERVED.
1-1. 닷넷 프레임워크 1.x 릴리스
닷넷 프레임워크 17년 전, 닷넷 1.0으로 시작
• CLI의 구현체 – CLR
• CLS의 구현체 – C#, Visual Basic .NET, …
닷넷 프레임워크 = CLR + C# Compiler, … + Tools
닷넷 17년의 변화 정리 및 닷넷 코어 3.0 .NET Conf 2019 @ Seoul
COPYRIGHT ©JENNIFERSOFT INC. ALL RIGHTS RESERVED.
1-2. 닷넷 프레임워크 1.x
닷넷 프레임워크 CLR의 대표적인 특징
• JIT 컴파일
• 컴파일러 – IL 코드 생성기
• JIT 컴파일러 – 기계어 코드 생성기
(ft: x86/x64/ARM/AnyCPU, Debug/Release)
• GC 메모리 관리
• 비-결정적 시기에 메모리 정리
• 지역/전역 변수, 레지스터 등의 참조가 없다면 정
리
닷넷 17년의 변화 정리 및 닷넷 코어 3.0 .NET Conf 2019 @ Seoul
COPYRIGHT ©JENNIFERSOFT INC. ALL RIGHTS RESERVED.
1-3. C# 1.0
C# 1.0 • 형식 안정성
• Delegate (C++에서의 함수 포인터)
• Native 코드와의 쉬운 연동
• 윈도우의 DLL이 export한 함수
• 리눅스의 공유 라이브러리(so)가 export한 함수
닷넷 17년의 변화 정리 및 닷넷 코어 3.0 .NET Conf 2019 @ Seoul
COPYRIGHT ©JENNIFERSOFT INC. ALL RIGHTS RESERVED.
1-4. 데모
데모 • Compile2 – debug/release, compile-time/run-
time
• GCnotCollected – 수집되었어야 할 상황
• GCCollected – 수집되지 않았어야 할 상황
• DelegateWithASM – 기계어 코드를 delegate로 호
출
닷넷 17년의 변화 정리 및 닷넷 코어 3.0 .NET Conf 2019 @ Seoul
COPYRIGHT ©JENNIFERSOFT INC. ALL RIGHTS RESERVED.
2-1.닷넷 프레임워크 2.0
.NET 2.0 • 제네릭(generic) 지원
• Nullable 지원
닷넷 17년의 변화 정리 및 닷넷 코어 3.0 .NET Conf 2019 @ Seoul
COPYRIGHT ©JENNIFERSOFT INC. ALL RIGHTS RESERVED.
2-2.C# 2.0
C# 2.0 • CLR 의존
• 제네릭(generic) 추가 (IL 코드 수준에서 지원)
• CLR 및 .NET BCL 의존
• Nullable 타입의 간편 표기 구문 (예: int?)
• 부분(partial) 클래스, … 기타 다수의 간편 구문 추가
닷넷 17년의 변화 정리 및 닷넷 코어 3.0 .NET Conf 2019 @ Seoul
COPYRIGHT ©JENNIFERSOFT INC. ALL RIGHTS RESERVED.
2-3.데모
데모 • CodeGen – 자동 코드 생성 및 C# partial 예약어
닷넷 17년의 변화 정리 및 닷넷 코어 3.0 .NET Conf 2019 @ Seoul
COPYRIGHT ©JENNIFERSOFT INC. ALL RIGHTS RESERVED.
3-1. 닷넷 프레임워크 3.0/3.5
.NET 3.0 / 3.5 기존 CLR 2.0 + 추가 라이브러리
• WPF
• WCF
• WF(Workflow Foundation)
• WCS(Windows CardSpace)
닷넷 17년의 변화 정리 및 닷넷 코어 3.0 .NET Conf 2019 @ Seoul
COPYRIGHT ©JENNIFERSOFT INC. ALL RIGHTS RESERVED.
3-2. C# 3.0
C# 3.0 • LINQ
• var 예약어
• 자동 구현 속성
• 객체 초기화
• 컬렉션 초기화
• 익명 타입
• 확장 메서드
• 람다 식
• 기타… 부분 메서드
닷넷 17년의 변화 정리 및 닷넷 코어 3.0 .NET Conf 2019 @ Seoul
COPYRIGHT ©JENNIFERSOFT INC. ALL RIGHTS RESERVED.
4-1.닷넷 프레임워크 4.0
.NET 4.0 • DLR(동적 언어 런타임) 지원
• 추가 IL은 없지만, CLR 4.0으로 분리
• GAC 위치 변경
• 설치 폴더 변경
닷넷 17년의 변화 정리 및 닷넷 코어 3.0 .NET Conf 2019 @ Seoul
COPYRIGHT ©JENNIFERSOFT INC. ALL RIGHTS RESERVED.
4-2.C# 4.0
C# 4.0 • dynamic 예약어 추가
• Reflection보다 간편한 멤버 접근(public)
• 동적 언어의 덕 타이핑
• 동적 언어와 연동
닷넷 17년의 변화 정리 및 닷넷 코어 3.0 .NET Conf 2019 @ Seoul
COPYRIGHT ©JENNIFERSOFT INC. ALL RIGHTS RESERVED.
4-3. 데모
데모 • PythonHost – 파이썬 스크립트를 내장 언어로 활용
닷넷 17년의 변화 정리 및 닷넷 코어 3.0 .NET Conf 2019 @ Seoul
COPYRIGHT ©JENNIFERSOFT INC. ALL RIGHTS RESERVED.
5-1. 닷넷 프레임워크 4.5/4.5.x
.NET 4.5
.NET 4.5.x
• 4.0의 In-place 업그레이드 (이후 4.8까지 동일)
• BCL에 비동기 메서드 추가
• 윈도우 8의 Store 앱 지원
• .NET for Windows 8.x Store apps (.NET 4.5의 서
브셋)
• PCL(Portable Class Library)
• 대상 플랫폼 설정(윈도폰, 스토어 앱, 데스크탑,…)
닷넷 17년의 변화 정리 및 닷넷 코어 3.0 .NET Conf 2019 @ Seoul
COPYRIGHT ©JENNIFERSOFT INC. ALL RIGHTS RESERVED.
5-2. C# 5.0
C# 5.0 • async/await
• BCL에 포함된 호출자 정보 (CallerInfo) 특성 타입
• CallerMemberNameAttribute
• CallerFilePathAttribute
• CallerLineNumberAttribute
닷넷 17년의 변화 정리 및 닷넷 코어 3.0 .NET Conf 2019 @ Seoul
COPYRIGHT ©JENNIFERSOFT INC. ALL RIGHTS RESERVED.
6-1.닷넷 프레임워크 4.6 / .NET Core 1.0
.NET 4.6
.NET 4.6.x
.NET Core 1.x
• .NET Core
• .NET Standard (PCL 대체)
닷넷 17년의 변화 정리 및 닷넷 코어 3.0 .NET Conf 2019 @ Seoul
COPYRIGHT ©JENNIFERSOFT INC. ALL RIGHTS RESERVED.
6-2.닷넷 표준
닷넷 표준
Common Infrastructure
Compilers
.NET Framework
비-표준 라이브러리
WPF
Windows Forms
.NET Core
Languages Runtime components
ASP.NET
UWP
ASP.NET Core앱 유형
.NET Standard Library
비-표준 라이브러리
기반 라이브러리
닷넷 17년의 변화 정리 및 닷넷 코어 3.0 .NET Conf 2019 @ Seoul
COPYRIGHT ©JENNIFERSOFT INC. ALL RIGHTS RESERVED.
6-3.닷넷 표준(3)
닷넷 표준 지원 .NET Standard .NET Core .NET Framework
1.0 ~ 1.1
1.0
4.5
1.2 4.5.1
1.3 4.6
1.4 ~ 1.6
4.6.1 ~ 4.7.1 (2.0 부분 지원)
4.7.2 ~ 4.8 (2.0 완전 지원)
2.0 2.0
2.1 3.0 (N/A)
닷넷 17년의 변화 정리 및 닷넷 코어 3.0 .NET Conf 2019 @ Seoul
COPYRIGHT ©JENNIFERSOFT INC. ALL RIGHTS RESERVED.
6-4.C# 6.0
C# 6.0 • C# 컴파일러를 닷넷 프레임워크로부터 분리(Roslyn)
• 다수의 간편 표기 구문 추가
닷넷 17년의 변화 정리 및 닷넷 코어 3.0 .NET Conf 2019 @ Seoul
COPYRIGHT ©JENNIFERSOFT INC. ALL RIGHTS RESERVED.
7-1. 닷넷 프레임워크 4.7 ~ 4.8
.NET 4.7
.NET 4.7.x
.NET 4.8
.NET Core 2.x
• 4.8 – 마지막 데스크탑 버전
닷넷 17년의 변화 정리 및 닷넷 코어 3.0 .NET Conf 2019 @ Seoul
COPYRIGHT ©JENNIFERSOFT INC. ALL RIGHTS RESERVED.
7-2. C# 7.0 ~ 7.3
C# 7.x • 튜플(Tuple) 지원 (.NET 4.7 BCL – System.ValueTuple)
• async의 사용자 정의 타입 반환
예) System.Threading.Tasks.ValueTask
• 패턴 매칭 지원
• 값 형식의 지원 향상
• 메서드의 매개 변수에 in 변경자 추가
• 읽기 전용 구조체
• 스택에만 생성할 수 있는 값 타입 지원 및 Span<T>
닷넷 17년의 변화 정리 및 닷넷 코어 3.0 .NET Conf 2019 @ Seoul
COPYRIGHT ©JENNIFERSOFT INC. ALL RIGHTS RESERVED.
7-3. 데모
데모 • NativeWithSpan – GC 발생하지 않는 메모리 사용
닷넷 17년의 변화 정리 및 닷넷 코어 3.0 .NET Conf 2019 @ Seoul
COPYRIGHT ©JENNIFERSOFT INC. ALL RIGHTS RESERVED.
8. 닷넷 Core 3.0과 C# 8.0
.NET Core 3.0
&
C# 8.0
• 닷넷 표준 2.1
• (다중 플랫폼 지원은 아니지만) Windows Forms,
WPF
닷넷 17년의 변화 정리 및 닷넷 코어 3.0
감사합니다.
Q&A

More Related Content

Similar to .NET Conf 2019 Korea - 닷넷 17년의 변화 정리 및 닷넷 코어 3.0

법안 검색 시스템 PPT
법안 검색 시스템 PPT법안 검색 시스템 PPT
법안 검색 시스템 PPTGwangho Kim
 
C#강좌
C#강좌C#강좌
C#강좌e12g
 
[2020 컨트리뷰톤] 리브레오피스 (LibreOffice) 번역, 번역 도구관련 이야기
[2020 컨트리뷰톤] 리브레오피스 (LibreOffice) 번역, 번역 도구관련 이야기 [2020 컨트리뷰톤] 리브레오피스 (LibreOffice) 번역, 번역 도구관련 이야기
[2020 컨트리뷰톤] 리브레오피스 (LibreOffice) 번역, 번역 도구관련 이야기 DaeHyun Sung
 
[아꿈사/110903] 도메인주도설계 4장
[아꿈사/110903] 도메인주도설계 4장[아꿈사/110903] 도메인주도설계 4장
[아꿈사/110903] 도메인주도설계 4장sung ki choi
 
애플리케이션 최적화를 위한 컨테이너 인프라 구축
애플리케이션 최적화를 위한 컨테이너 인프라 구축애플리케이션 최적화를 위한 컨테이너 인프라 구축
애플리케이션 최적화를 위한 컨테이너 인프라 구축rockplace
 
Kotlin 2.0을 통해 알아보는 코틀린의 미래
Kotlin 2.0을 통해 알아보는 코틀린의 미래Kotlin 2.0을 통해 알아보는 코틀린의 미래
Kotlin 2.0을 통해 알아보는 코틀린의 미래Leonardo YongUk Kim
 
ifcpp build guide
ifcpp build guideifcpp build guide
ifcpp build guideJUNHEEKIM27
 
락플레이스 OpenShift Q&A 토크쇼 발표자료
락플레이스 OpenShift Q&A 토크쇼 발표자료락플레이스 OpenShift Q&A 토크쇼 발표자료
락플레이스 OpenShift Q&A 토크쇼 발표자료rockplace
 
개발자가 알아야 할 .NET Framework 하이라이트 2.0 에서 3.5 SP1 까지…
개발자가 알아야 할 .NET Framework 하이라이트 2.0 에서 3.5 SP1 까지… 개발자가 알아야 할 .NET Framework 하이라이트 2.0 에서 3.5 SP1 까지…
개발자가 알아야 할 .NET Framework 하이라이트 2.0 에서 3.5 SP1 까지… 준일 엄
 
3일차-닷넷 분산 기술의 이해 (인피니트 강의자료)
3일차-닷넷 분산 기술의 이해 (인피니트 강의자료)3일차-닷넷 분산 기술의 이해 (인피니트 강의자료)
3일차-닷넷 분산 기술의 이해 (인피니트 강의자료)KH Park (박경훈)
 
How to use Python in Video streaming service - PyCon Korea 2020
How to use Python in Video streaming service - PyCon Korea 2020How to use Python in Video streaming service - PyCon Korea 2020
How to use Python in Video streaming service - PyCon Korea 2020AeYeong Kim
 
NDC15 - 사례로 살펴보는 MSVC 빌드 최적화 팁
NDC15 - 사례로 살펴보는 MSVC 빌드 최적화 팁NDC15 - 사례로 살펴보는 MSVC 빌드 최적화 팁
NDC15 - 사례로 살펴보는 MSVC 빌드 최적화 팁Yi-kwon Hwang
 
[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트
[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트
[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트iFunFactory Inc.
 
Pivotal 101세미나 발표자료 (PAS,PKS)
Pivotal 101세미나 발표자료 (PAS,PKS) Pivotal 101세미나 발표자료 (PAS,PKS)
Pivotal 101세미나 발표자료 (PAS,PKS) VMware Tanzu Korea
 
[2021 오픈소스 컨트리뷰션 아카데미] #5 컨트리뷰션 정리 및 gerrit리뷰시스템 소개 등
[2021 오픈소스 컨트리뷰션 아카데미] #5 컨트리뷰션 정리 및 gerrit리뷰시스템 소개 등[2021 오픈소스 컨트리뷰션 아카데미] #5 컨트리뷰션 정리 및 gerrit리뷰시스템 소개 등
[2021 오픈소스 컨트리뷰션 아카데미] #5 컨트리뷰션 정리 및 gerrit리뷰시스템 소개 등DaeHyun Sung
 
구글 텐서플로우 첫걸음
구글 텐서플로우 첫걸음구글 텐서플로우 첫걸음
구글 텐서플로우 첫걸음Hwanhee Kim
 
designing, implementing and delivering microservices with event storming, spr...
designing, implementing and delivering microservices with event storming, spr...designing, implementing and delivering microservices with event storming, spr...
designing, implementing and delivering microservices with event storming, spr...uEngine Solutions
 
Tech-days 미니 토요세미나 - 3회 C#편 PPT 자료
Tech-days 미니 토요세미나 - 3회 C#편 PPT 자료Tech-days 미니 토요세미나 - 3회 C#편 PPT 자료
Tech-days 미니 토요세미나 - 3회 C#편 PPT 자료SeongTae Jeong
 
DevOps - CI/CD 알아보기
DevOps - CI/CD 알아보기DevOps - CI/CD 알아보기
DevOps - CI/CD 알아보기SeungYong Baek
 
[부스트캠프 Tech Talk] 최재필_P 스테이지에서 Git으로 협업하기
[부스트캠프 Tech Talk] 최재필_P 스테이지에서 Git으로 협업하기[부스트캠프 Tech Talk] 최재필_P 스테이지에서 Git으로 협업하기
[부스트캠프 Tech Talk] 최재필_P 스테이지에서 Git으로 협업하기CONNECT FOUNDATION
 

Similar to .NET Conf 2019 Korea - 닷넷 17년의 변화 정리 및 닷넷 코어 3.0 (20)

법안 검색 시스템 PPT
법안 검색 시스템 PPT법안 검색 시스템 PPT
법안 검색 시스템 PPT
 
C#강좌
C#강좌C#강좌
C#강좌
 
[2020 컨트리뷰톤] 리브레오피스 (LibreOffice) 번역, 번역 도구관련 이야기
[2020 컨트리뷰톤] 리브레오피스 (LibreOffice) 번역, 번역 도구관련 이야기 [2020 컨트리뷰톤] 리브레오피스 (LibreOffice) 번역, 번역 도구관련 이야기
[2020 컨트리뷰톤] 리브레오피스 (LibreOffice) 번역, 번역 도구관련 이야기
 
[아꿈사/110903] 도메인주도설계 4장
[아꿈사/110903] 도메인주도설계 4장[아꿈사/110903] 도메인주도설계 4장
[아꿈사/110903] 도메인주도설계 4장
 
애플리케이션 최적화를 위한 컨테이너 인프라 구축
애플리케이션 최적화를 위한 컨테이너 인프라 구축애플리케이션 최적화를 위한 컨테이너 인프라 구축
애플리케이션 최적화를 위한 컨테이너 인프라 구축
 
Kotlin 2.0을 통해 알아보는 코틀린의 미래
Kotlin 2.0을 통해 알아보는 코틀린의 미래Kotlin 2.0을 통해 알아보는 코틀린의 미래
Kotlin 2.0을 통해 알아보는 코틀린의 미래
 
ifcpp build guide
ifcpp build guideifcpp build guide
ifcpp build guide
 
락플레이스 OpenShift Q&A 토크쇼 발표자료
락플레이스 OpenShift Q&A 토크쇼 발표자료락플레이스 OpenShift Q&A 토크쇼 발표자료
락플레이스 OpenShift Q&A 토크쇼 발표자료
 
개발자가 알아야 할 .NET Framework 하이라이트 2.0 에서 3.5 SP1 까지…
개발자가 알아야 할 .NET Framework 하이라이트 2.0 에서 3.5 SP1 까지… 개발자가 알아야 할 .NET Framework 하이라이트 2.0 에서 3.5 SP1 까지…
개발자가 알아야 할 .NET Framework 하이라이트 2.0 에서 3.5 SP1 까지…
 
3일차-닷넷 분산 기술의 이해 (인피니트 강의자료)
3일차-닷넷 분산 기술의 이해 (인피니트 강의자료)3일차-닷넷 분산 기술의 이해 (인피니트 강의자료)
3일차-닷넷 분산 기술의 이해 (인피니트 강의자료)
 
How to use Python in Video streaming service - PyCon Korea 2020
How to use Python in Video streaming service - PyCon Korea 2020How to use Python in Video streaming service - PyCon Korea 2020
How to use Python in Video streaming service - PyCon Korea 2020
 
NDC15 - 사례로 살펴보는 MSVC 빌드 최적화 팁
NDC15 - 사례로 살펴보는 MSVC 빌드 최적화 팁NDC15 - 사례로 살펴보는 MSVC 빌드 최적화 팁
NDC15 - 사례로 살펴보는 MSVC 빌드 최적화 팁
 
[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트
[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트
[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트
 
Pivotal 101세미나 발표자료 (PAS,PKS)
Pivotal 101세미나 발표자료 (PAS,PKS) Pivotal 101세미나 발표자료 (PAS,PKS)
Pivotal 101세미나 발표자료 (PAS,PKS)
 
[2021 오픈소스 컨트리뷰션 아카데미] #5 컨트리뷰션 정리 및 gerrit리뷰시스템 소개 등
[2021 오픈소스 컨트리뷰션 아카데미] #5 컨트리뷰션 정리 및 gerrit리뷰시스템 소개 등[2021 오픈소스 컨트리뷰션 아카데미] #5 컨트리뷰션 정리 및 gerrit리뷰시스템 소개 등
[2021 오픈소스 컨트리뷰션 아카데미] #5 컨트리뷰션 정리 및 gerrit리뷰시스템 소개 등
 
구글 텐서플로우 첫걸음
구글 텐서플로우 첫걸음구글 텐서플로우 첫걸음
구글 텐서플로우 첫걸음
 
designing, implementing and delivering microservices with event storming, spr...
designing, implementing and delivering microservices with event storming, spr...designing, implementing and delivering microservices with event storming, spr...
designing, implementing and delivering microservices with event storming, spr...
 
Tech-days 미니 토요세미나 - 3회 C#편 PPT 자료
Tech-days 미니 토요세미나 - 3회 C#편 PPT 자료Tech-days 미니 토요세미나 - 3회 C#편 PPT 자료
Tech-days 미니 토요세미나 - 3회 C#편 PPT 자료
 
DevOps - CI/CD 알아보기
DevOps - CI/CD 알아보기DevOps - CI/CD 알아보기
DevOps - CI/CD 알아보기
 
[부스트캠프 Tech Talk] 최재필_P 스테이지에서 Git으로 협업하기
[부스트캠프 Tech Talk] 최재필_P 스테이지에서 Git으로 협업하기[부스트캠프 Tech Talk] 최재필_P 스테이지에서 Git으로 협업하기
[부스트캠프 Tech Talk] 최재필_P 스테이지에서 Git으로 협업하기
 

.NET Conf 2019 Korea - 닷넷 17년의 변화 정리 및 닷넷 코어 3.0

  • 1. 닷넷 17년의 변화 정리 및 닷넷 코어 3.0 .NET Conf 2019 @ Seoul JENNIFERSOFT 2019.10.05 정성태 JENNIFER R&D TEAM Software engineer techsharer@outlook.co m http://www.sysnet.pe.k r
  • 2. 닷넷 17년의 변화 정리 및 닷넷 코어 3.0 .NET Conf 2019 @ Seoul COPYRIGHT ©JENNIFERSOFT INC. ALL RIGHTS RESERVED. 1-1. 닷넷 프레임워크 1.x 릴리스 닷넷 프레임워크 17년 전, 닷넷 1.0으로 시작 • CLI의 구현체 – CLR • CLS의 구현체 – C#, Visual Basic .NET, … 닷넷 프레임워크 = CLR + C# Compiler, … + Tools
  • 3. 닷넷 17년의 변화 정리 및 닷넷 코어 3.0 .NET Conf 2019 @ Seoul COPYRIGHT ©JENNIFERSOFT INC. ALL RIGHTS RESERVED. 1-2. 닷넷 프레임워크 1.x 닷넷 프레임워크 CLR의 대표적인 특징 • JIT 컴파일 • 컴파일러 – IL 코드 생성기 • JIT 컴파일러 – 기계어 코드 생성기 (ft: x86/x64/ARM/AnyCPU, Debug/Release) • GC 메모리 관리 • 비-결정적 시기에 메모리 정리 • 지역/전역 변수, 레지스터 등의 참조가 없다면 정 리
  • 4. 닷넷 17년의 변화 정리 및 닷넷 코어 3.0 .NET Conf 2019 @ Seoul COPYRIGHT ©JENNIFERSOFT INC. ALL RIGHTS RESERVED. 1-3. C# 1.0 C# 1.0 • 형식 안정성 • Delegate (C++에서의 함수 포인터) • Native 코드와의 쉬운 연동 • 윈도우의 DLL이 export한 함수 • 리눅스의 공유 라이브러리(so)가 export한 함수
  • 5. 닷넷 17년의 변화 정리 및 닷넷 코어 3.0 .NET Conf 2019 @ Seoul COPYRIGHT ©JENNIFERSOFT INC. ALL RIGHTS RESERVED. 1-4. 데모 데모 • Compile2 – debug/release, compile-time/run- time • GCnotCollected – 수집되었어야 할 상황 • GCCollected – 수집되지 않았어야 할 상황 • DelegateWithASM – 기계어 코드를 delegate로 호 출
  • 6. 닷넷 17년의 변화 정리 및 닷넷 코어 3.0 .NET Conf 2019 @ Seoul COPYRIGHT ©JENNIFERSOFT INC. ALL RIGHTS RESERVED. 2-1.닷넷 프레임워크 2.0 .NET 2.0 • 제네릭(generic) 지원 • Nullable 지원
  • 7. 닷넷 17년의 변화 정리 및 닷넷 코어 3.0 .NET Conf 2019 @ Seoul COPYRIGHT ©JENNIFERSOFT INC. ALL RIGHTS RESERVED. 2-2.C# 2.0 C# 2.0 • CLR 의존 • 제네릭(generic) 추가 (IL 코드 수준에서 지원) • CLR 및 .NET BCL 의존 • Nullable 타입의 간편 표기 구문 (예: int?) • 부분(partial) 클래스, … 기타 다수의 간편 구문 추가
  • 8. 닷넷 17년의 변화 정리 및 닷넷 코어 3.0 .NET Conf 2019 @ Seoul COPYRIGHT ©JENNIFERSOFT INC. ALL RIGHTS RESERVED. 2-3.데모 데모 • CodeGen – 자동 코드 생성 및 C# partial 예약어
  • 9. 닷넷 17년의 변화 정리 및 닷넷 코어 3.0 .NET Conf 2019 @ Seoul COPYRIGHT ©JENNIFERSOFT INC. ALL RIGHTS RESERVED. 3-1. 닷넷 프레임워크 3.0/3.5 .NET 3.0 / 3.5 기존 CLR 2.0 + 추가 라이브러리 • WPF • WCF • WF(Workflow Foundation) • WCS(Windows CardSpace)
  • 10. 닷넷 17년의 변화 정리 및 닷넷 코어 3.0 .NET Conf 2019 @ Seoul COPYRIGHT ©JENNIFERSOFT INC. ALL RIGHTS RESERVED. 3-2. C# 3.0 C# 3.0 • LINQ • var 예약어 • 자동 구현 속성 • 객체 초기화 • 컬렉션 초기화 • 익명 타입 • 확장 메서드 • 람다 식 • 기타… 부분 메서드
  • 11. 닷넷 17년의 변화 정리 및 닷넷 코어 3.0 .NET Conf 2019 @ Seoul COPYRIGHT ©JENNIFERSOFT INC. ALL RIGHTS RESERVED. 4-1.닷넷 프레임워크 4.0 .NET 4.0 • DLR(동적 언어 런타임) 지원 • 추가 IL은 없지만, CLR 4.0으로 분리 • GAC 위치 변경 • 설치 폴더 변경
  • 12. 닷넷 17년의 변화 정리 및 닷넷 코어 3.0 .NET Conf 2019 @ Seoul COPYRIGHT ©JENNIFERSOFT INC. ALL RIGHTS RESERVED. 4-2.C# 4.0 C# 4.0 • dynamic 예약어 추가 • Reflection보다 간편한 멤버 접근(public) • 동적 언어의 덕 타이핑 • 동적 언어와 연동
  • 13. 닷넷 17년의 변화 정리 및 닷넷 코어 3.0 .NET Conf 2019 @ Seoul COPYRIGHT ©JENNIFERSOFT INC. ALL RIGHTS RESERVED. 4-3. 데모 데모 • PythonHost – 파이썬 스크립트를 내장 언어로 활용
  • 14. 닷넷 17년의 변화 정리 및 닷넷 코어 3.0 .NET Conf 2019 @ Seoul COPYRIGHT ©JENNIFERSOFT INC. ALL RIGHTS RESERVED. 5-1. 닷넷 프레임워크 4.5/4.5.x .NET 4.5 .NET 4.5.x • 4.0의 In-place 업그레이드 (이후 4.8까지 동일) • BCL에 비동기 메서드 추가 • 윈도우 8의 Store 앱 지원 • .NET for Windows 8.x Store apps (.NET 4.5의 서 브셋) • PCL(Portable Class Library) • 대상 플랫폼 설정(윈도폰, 스토어 앱, 데스크탑,…)
  • 15. 닷넷 17년의 변화 정리 및 닷넷 코어 3.0 .NET Conf 2019 @ Seoul COPYRIGHT ©JENNIFERSOFT INC. ALL RIGHTS RESERVED. 5-2. C# 5.0 C# 5.0 • async/await • BCL에 포함된 호출자 정보 (CallerInfo) 특성 타입 • CallerMemberNameAttribute • CallerFilePathAttribute • CallerLineNumberAttribute
  • 16. 닷넷 17년의 변화 정리 및 닷넷 코어 3.0 .NET Conf 2019 @ Seoul COPYRIGHT ©JENNIFERSOFT INC. ALL RIGHTS RESERVED. 6-1.닷넷 프레임워크 4.6 / .NET Core 1.0 .NET 4.6 .NET 4.6.x .NET Core 1.x • .NET Core • .NET Standard (PCL 대체)
  • 17. 닷넷 17년의 변화 정리 및 닷넷 코어 3.0 .NET Conf 2019 @ Seoul COPYRIGHT ©JENNIFERSOFT INC. ALL RIGHTS RESERVED. 6-2.닷넷 표준 닷넷 표준 Common Infrastructure Compilers .NET Framework 비-표준 라이브러리 WPF Windows Forms .NET Core Languages Runtime components ASP.NET UWP ASP.NET Core앱 유형 .NET Standard Library 비-표준 라이브러리 기반 라이브러리
  • 18. 닷넷 17년의 변화 정리 및 닷넷 코어 3.0 .NET Conf 2019 @ Seoul COPYRIGHT ©JENNIFERSOFT INC. ALL RIGHTS RESERVED. 6-3.닷넷 표준(3) 닷넷 표준 지원 .NET Standard .NET Core .NET Framework 1.0 ~ 1.1 1.0 4.5 1.2 4.5.1 1.3 4.6 1.4 ~ 1.6 4.6.1 ~ 4.7.1 (2.0 부분 지원) 4.7.2 ~ 4.8 (2.0 완전 지원) 2.0 2.0 2.1 3.0 (N/A)
  • 19. 닷넷 17년의 변화 정리 및 닷넷 코어 3.0 .NET Conf 2019 @ Seoul COPYRIGHT ©JENNIFERSOFT INC. ALL RIGHTS RESERVED. 6-4.C# 6.0 C# 6.0 • C# 컴파일러를 닷넷 프레임워크로부터 분리(Roslyn) • 다수의 간편 표기 구문 추가
  • 20. 닷넷 17년의 변화 정리 및 닷넷 코어 3.0 .NET Conf 2019 @ Seoul COPYRIGHT ©JENNIFERSOFT INC. ALL RIGHTS RESERVED. 7-1. 닷넷 프레임워크 4.7 ~ 4.8 .NET 4.7 .NET 4.7.x .NET 4.8 .NET Core 2.x • 4.8 – 마지막 데스크탑 버전
  • 21. 닷넷 17년의 변화 정리 및 닷넷 코어 3.0 .NET Conf 2019 @ Seoul COPYRIGHT ©JENNIFERSOFT INC. ALL RIGHTS RESERVED. 7-2. C# 7.0 ~ 7.3 C# 7.x • 튜플(Tuple) 지원 (.NET 4.7 BCL – System.ValueTuple) • async의 사용자 정의 타입 반환 예) System.Threading.Tasks.ValueTask • 패턴 매칭 지원 • 값 형식의 지원 향상 • 메서드의 매개 변수에 in 변경자 추가 • 읽기 전용 구조체 • 스택에만 생성할 수 있는 값 타입 지원 및 Span<T>
  • 22. 닷넷 17년의 변화 정리 및 닷넷 코어 3.0 .NET Conf 2019 @ Seoul COPYRIGHT ©JENNIFERSOFT INC. ALL RIGHTS RESERVED. 7-3. 데모 데모 • NativeWithSpan – GC 발생하지 않는 메모리 사용
  • 23. 닷넷 17년의 변화 정리 및 닷넷 코어 3.0 .NET Conf 2019 @ Seoul COPYRIGHT ©JENNIFERSOFT INC. ALL RIGHTS RESERVED. 8. 닷넷 Core 3.0과 C# 8.0 .NET Core 3.0 & C# 8.0 • 닷넷 표준 2.1 • (다중 플랫폼 지원은 아니지만) Windows Forms, WPF
  • 24. 닷넷 17년의 변화 정리 및 닷넷 코어 3.0 감사합니다. Q&A

Editor's Notes

  1. .NET Runtime Optimization Service Microsoft .NET Framework optimization service Microsoft Common Language Runtime native compiler
  2. CallerInfo 관련 특성 타입은 BCL에 포함되어 있으나 직접 정의하는 것도 가능 참고 – C# 5의 Caller Info를 .NET 4.5 미만의 응용 프로그램에 적용하는 방법 http://www.sysnet.pe.kr/2/0/10890
  3. 참고 - https://docs.microsoft.com/ko-kr/dotnet/standard/net-standard
  4. 참고 - https://docs.microsoft.com/ko-kr/dotnet/standard/net-standard
  5. 참고 https://docs.microsoft.com/ko-kr/dotnet/standard/net-standard https://github.com/dotnet/standard/tree/master/docs/versions
  6. 참고 C# - async를 Task 타입이 아닌 사용자 정의 타입에 적용하는 방법 - http://www.sysnet.pe.kr/2/0/11484 닷넷의 관리 포인터(Managed Pointer)와 System.TypedReference - http://www.sysnet.pe.kr/2/0/11529
  7. 참고 - https://docs.microsoft.com/ko-kr/dotnet/standard/net-standard