SlideShare a Scribd company logo
김명신 / 한국 마이크로소프트
Windows, Linux, Mac 신경 안 쓴다
.NET 2015와 C# 살짝 훔쳐보기
우리는 혁신이 필요하고 더 빠르게 개발할 수 있기를 바랍니다.
여러 장치에서 동작하는 앱을 개발하고 싶습니다.
오픈소스 전략이 플랫폼과 커뮤니티를 더욱 풍성하게 할겁니다.
하지만 기존의 응용 프로그램은 그대로 수행되어야 해요.
.NET의 지향점
.NET의 혁신 오픈 소스
.NET Core
ASP.NET 5
크로스 플랫폼
RyuJIT + SIMD
Garbage Collector
Runtime components Compilers
.NET Compiler Platform (Roslyn)
Languages innovation
.NET Framework 4.6
Fully-featured and integrated
.NET libraries and runtime for Windows
Modular and optimized
.NET libraries and runtimes
Base class libraries
NuGet packages
Libraries
.NET Framework 4.6
.NET SxS 배포, 대체 업데이트
.NET 4 .NET 4.5
.NET
4.5.1
.NET
4.5.2
.NET 4.6
.NET 2.0 .NET 3.0 .NET 3.5
2002 2003 2005 2006 2008 2010 2012 2013 2014 2015
.NET 1.0
.NET 1.1
.NET
Framework
4
.NET
Framework
4.5
.NET
Framework
4.5.1
.NET
Framework
4.5.2
.NET Framework 4.6
기능 라이브러리
개선점
런타임 도구
기능
WPF 투명 차일드 윈도우 지원
WPF 터치 동작에 대한 성능과 신뢰성 개선
멀티 터치 이벤트에 대하여 신뢰성 개선
UI 스레드가 바쁜 상황에서도 터치 동작이 원할 하도록 성능 개선
WPF 리스트에 대한 스크롤 가상화 개선
리스트상에 포함된 항목 조회의 신뢰성 향상
가상화 중에 레이아웃이 훼손되지 않도록 개선
WPF High DPI 지원 개선
다중 DPI 커서와 모니터 지원, 프레임워크 요소들에 대한 외곽 처리 개선
윈폼 High DPI 지원 개선
라이브러리
WCF 개선
기존 SSL 3.0, TLS 1.0 지원에 TLS 1.1, TLS 1.2 지원 추가
다수의 HTTP 연결을 통해 메시지 전송
ADO.NET 개선
SQL Server 2016에서 사용할 수 있는 Always Encrypted 기능 지원
Async
비동기 제어 흐름상에서 특정 데이터를 유지할 수 있는 기능 추가
Network 관련 타입 개선
System.Net.Sockets, System.Uri 개선
암호화 관련 라이브러리 개선
런타임
64비트 JIT 컴파일러 재작성(“RyuJIT”)
대용량의 64비트 클라우드 작업을 수행하기에 적합
64비트 CLR의 SIMD 지원
SSE2, AVX 등의 하드웨어를 지원
하드웨어 중립적인 코드 작성이 가능
가비지 수집기 개선
피닝(pinning)된 객체 최적화
Gen1에서 Gen2로의 프로모션을 메모리 효율적으로 수행하도록 개선
가비지 수집 금지 영역 지정
어셈블리 로더 성능 개선
도구
새로운 Blend
솔루션 탐색기, 팀 탐색기, 편집기 등의 VS 기술을 결합
Roslyn 기반의 새로운 언어 서비스
속도와 신뢰성 개선
코드 중심의 워크스페이스, WPF의 In-Place 편집
디버깅
Xaml UI 디버깅 도구, 디버거가 결합된 분석 도구
분석
타임라인 기반 분석 도구
Demo
참고자료
Announcing .NET Framework 4.6
http://blogs.msdn.com/b/dotnet/archive/2015/07/20/announcing-net-framework-4-6.aspx
.NET Framework의 새로운 기능
https://msdn.microsoft.com/library/ms171868.aspx#v46
NET Framework 4.6의 응용 프로그램 호환성
https://msdn.microsoft.com/library/dn833127.aspx
.NET Framework 4.6 list of changes
https://github.com/Microsoft/dotnet/blob/master/docs/releases/net46/dotnet46-changes.md
.NET Framework API diff
https://dotnet2015.blob.core.windows.net/changes/diff_net452_net46.html
.NET Framework Targeting Pack
http://www.microsoft.com/ko-kr/download/details.aspx?id=48136
Web installer(preferred)
http://www.microsoft.com/ko-kr/download/details.aspx?id=48130
Offline installer
http://www.microsoft.com/ko-kr/download/details.aspx?id=48137
Shared Core Technologies
핵심 기술
64비트 JIT
컴파일러
RyuJIT
새로운 패키지
매니저
nuget
.NET 컴파일러
플랫폼
Roslyn
RyuJit?
• .NET을 위한 차세대 64비트 JIT 컴파일러
• 코드 생성 속도 개선, 코드 품질 개선
• 고급 최적화 기능 포함(e.g. SIMD, …)
코드 품질
How fast generated code runs
코드 생성 속도
How fast JIT compiler generate app code
SIMD(Single Instruction Multiple Data)
• .NET에서 data parallelism을 사용할 수 있도록 함
• 게임, 수식 연산, 이미지 처리 등의 응용 프로그램의 성능을 개선
• nuget을 이용하여 .NET 라이브러리 형태로 이용 가능









Vector<int>.Count
var v1 = new Vector<int>(src1, i);
var v2 = new Vector<int>(src2, i);
var sum = v1 + v2;
sum.CopyTo(dest, i);
Demo
Scalar SIMD (SSE2)
http://nuget.org
Demo
https://github.com/dotnet/roslyn
Team
혁신을 이어갈 수 있는 깔끔한 아키텍쳐
Partners
소스 기반 도구나 확장 도구 개발
Developers
더욱 더 강력한 C# IDE 기능 제공
OSS
1,000,000s
1,000s
10s
Demo
C# 6
public class Customer
{
public string First { get; set; } = "Jane";
public string Last { get; set; } = "Doe";
}
Initializers for auto-properties(C# 6.0)
Getter-only auto-properties(C# 6.0)
public class Customer
{
public string First { get; } = "Jane";
public string Last { get; } = "Doe";
}
Expression bodies on method-like members(C# 6.0)
public Point Move(int dx, int dy) => new Point(x + dx, y + dy);
public static Complex operator +(Complex a, Complex b) => a.Add(b);
public void Print() => Console.WriteLine(First + " " + Last);
public string Name => First + " " + Last;
public Customer this[long id] => store.LookupCustomer(id);
Expression bodies on property-like function members(C# 6.0)
String interpolation(C# 6.0)
var s = $"{p.Name} is {p.Age} year{{s}} old";
var s = $"{p.Name} is {p.Age} year{(p.Age == 1 ? "" : "s")} old";
using static System.Console;
using static System.Math;
using static System.DayOfWeek;
class Program
{
static void Main()
{
WriteLine(Sqrt(3 * 3 + 4 * 4));
WriteLine(Friday - Monday);
}
}
using static(C# 6.0)
int? length = customers?.Length; // null if customers is null
Customer first = customers?[0]; // null if customers is null
int length = customers?.Length ?? 0; // 0 if customers is null
Null-conditional operators(C# 6.0)
nameof expressions(C# 6.0)
if (x == null) throw new ArgumentNullException(nameof(x));
WriteLine(nameof(person.Address.ZipCode)); // prints "ZipCode"
Exception filters(C# 6.0)
try { … }
catch (MyException e) when(myfilter(e)) {}
Index initializers(C# 6.0)
var numbers = new Dictionary<int, string>
{
[7] = "seven",
[9] = "nine",
[13] = "thirteen"
};
try { res = await Resource.OpenAsync(…); }
catch (ResourceException e)
{ await Resource.LogAsync(res, e); }
finally { if (res != null) await res.CloseAsync();}
await in catch and finally blocks(C# 6.0)
C# 7 preliminary
Pattern Matching
if (o is Point p && p.X == 5) { WriteLine(p.Y); }
if (o is Point{ X is 5, Y is var y }) { WriteLine(y); }
if (o is Point(5, var y)) { WriteLine(y); }
switch (o)
{
case string s:
WriteLine(s);
break;
case Point(int x, int y):
Console.WriteLine($"({x},{y})");
break;
case null:
Console.WriteLine("<null>");
break;
}
Tuple
public (int sum, int count) Tally(IEnumerable<int> values) { … }
var t = Tally(myValues);
Console.WriteLine($"Sum: {t.sum}, count: {t.count}");
public async Task<(int sum, int count)> TallyAsync(IEnumerable<int> values) { … }
var t = await TallyAsync(myValues);
Console.WriteLine($"Sum: {t.sum}, count: {t.count}");
public (int sum, int count) Tally(IEnumerable<int> values)
{
var s = 0; var c = 0;
foreach (var value in values) { s += value; c++; }
return (s, c);
}
nullable references
Dog? nullableDog = new Dog("Nullable");
nullableDog.Bark(); Compiler Error – nullable 참조로는 dereference 하지 못함
cannot dereference nullable reference(yet)
if (nullableDog != null)
{
// 컴파일러는 이 scope 내에서는 nullableDog가 null이 아님을 안다.
nullableDog.Bark(); // OK
}
else
{
// 컴파일러는 이 scope 내에서는 nullableDog가 null임을 안다.
nullableDog.Bark(); // Compiler Error – nullable 참조로는 dereference하지 못함
}
Non-nullable references
Dog! mandatoryDog = new Dog("Mandatory");
mandatoryDog.Bark(); // OK – null 일 수 없으므로 method 호출 가능
string name = mandatoryDog.Name; // OK – null 일수 없으므로 property 참조 가능
.NET Core 5
.NET Core 5
Modular and optimized
.NET libraries and runtimes
.NET Framework의 하위 집합
이식이 가능한 모듈화 개발
모듈 세분화, 의존관계 최소화
오픈소스로 진행
.NET Core runtime : CoreCLR
https://github.com/dotnet/coreclr
.NET Core libraries: CoreFX
https://github.com/dotnet/corefx
Demo
.NET Native
UWP 앱을 위해 클라우드에서 수행되는 차세대 클라우드 컴파일러
C#을 머신 코드로 컴파일
정적 링크
극도로 작아진 런타임을 사용하고, VC++의 Optimizer를 이용
MSIL bytecode Machine code
Demo
.NET의 지향점
.NET의 혁신 오픈 소스
.NET Core
ASP.NET 5
크로스 플랫폼
Mono.NET Core 크로스 플랫폼
모바일 개발과
.NET/Xamarin 파트너쉽
.NET
Xamarin
Unity
서비스와 웹 응용 프로그램 모바일 앱
Windows Linux Mac OS X
.NET Core
ASP.NET 5
64-bit JIT + SIMD
Garbage Collector
Runtime components Compilers
.NET Compiler Platform (Roslyn)
Languages innovation
.NET Framework 4.6 .NET Core 5
Fully-featured and integrated
.NET libraries and runtime for Windows
Modular and optimized
.NET libraries and runtimes
Base class libraries
NuGet packages
Libraries
• 리눅스 환경에서도 .NET 기반의 앱과 서비스를 수행
• 리눅스 환경에서 구동되는 .NET 기반의 앱을 Visual Studio를
이용하여 개발, 배포, 디버깅 수행
• OSX 사용자는 Visual Studio Code 등을 이용하여 Mac에서 .NET
code를 편집, 컴파일, 디버깅
• .NET Core 전체가 GitHub를 통해 오픈소스로 제공
개발자를 위한 이점
https://dotnet2015.blob.core.windows.net/binaries/PartsUnlimited-demo-app-darwin.tar.gz
https://dotnet2015.blob.core.windows.net/binaries/PartsUnlimited-demo-app-linux.tar.gz
http://code.visualstudio.com
http://aka.ms/vslovesdocker
Create Cross-Platform .NET Apps
https://github.com/Microsoft/PartsUnlimited
http://github.com/dotnet
참고자료
.NET의 지향점
.NET의 혁신 오픈 소스
.NET Core
ASP.NET 5
크로스 플랫폼
SSCLI (“Rotor”)
Mar 2002
WiX
Apr 2004
F#
May 2005
ASP.NET
Mar 2012
TypeScript
Oct 2012
Roslyn
Apr 2014
.NET Core
Nov 2014
Mono V1
Jun 2004
Mono
Started
~2002
.NET의 오픈 소스화
플랫폼
크로스 플랫폼 지원
오픈소스
RyuJIT, SIMD
Core-CLR
Runtime
components
Compilers
.NET Compiler Platform
(“Roslyn”)
Languages
.NET Core 5 Libraries
.NET Framework 4.6 Libraries
Libraries
.NET
Framework 4.6
.NET
Core 5
github.com/microsoft/dotnet
What is Microsoft open sourcing? (2015)
.NET API for Hadoop WebClient
.NET Compiler Platform ("Roslyn")
.NET Map Reduce API for Hadoop
.NET Micro Framework
ASP.NET MVC
ASP.NET Web API
ASP.NET Web Pages
ASP.NET SignalR
MVVM Light Toolkit
.NET Core 5
Orleans
MEF (Managed Extensibility Framework)
OWIN Authentication MiddlewareRx (Reactive Extensions)
Orchard CMS
Windows Azure .NET SDK
Thinktecture IdentityManager
WnsRecipe
Mimekit Xamarin.Auth
Xamarin.Mobile
Couchbase for .NET
Meet the people behind the .NET Foundation
http://www.dotnetfoundation.org/teamhttp://www.dotnetfoundation.org
@dotnetfdn
Mailkit
System.Drawing
ASP.NET 5
Salesforce Toolkits for .NET
NuGetKudu
Cecil
MSBuild
Practices Visibility
Governance
Mentorship
Support
Feedback
Media
Events
Sponsorship
Protection
Licenses
Copyrights
Trademarks
Patents
dotnetfoundation.org
dotnet.github.io
개방
커뮤니티
빠른 혁신
감사합니다.
• MSDN Forum http://aka.ms/msdnforum
• TechNet Forum http://aka.ms/technetforum

More Related Content

What's hot

[Td 2015]두근두근 asp.net 5(한상훈)
[Td 2015]두근두근 asp.net 5(한상훈)[Td 2015]두근두근 asp.net 5(한상훈)
[Td 2015]두근두근 asp.net 5(한상훈)
Sang Don Kim
 
[123] electron 김성훈
[123] electron 김성훈[123] electron 김성훈
[123] electron 김성훈
NAVER D2
 
두근두근 ASP.NET 5!
두근두근 ASP.NET 5!두근두근 ASP.NET 5!
두근두근 ASP.NET 5!
SangHoon Han
 
처음 시작하는 라라벨
처음 시작하는 라라벨처음 시작하는 라라벨
처음 시작하는 라라벨
KwangSeob Jeong
 
Envoy 를 이용한 코드 배포 자동화
Envoy 를 이용한 코드 배포 자동화Envoy 를 이용한 코드 배포 자동화
Envoy 를 이용한 코드 배포 자동화
Juwon Kim
 
[NDC17] 왓 스튜디오 서비스파트
[NDC17] 왓 스튜디오 서비스파트[NDC17] 왓 스튜디오 서비스파트
[NDC17] 왓 스튜디오 서비스파트
Chanwoong Kim
 
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
현철 조
 
[TD 2015] windows server에서 만나보는 docker와 windows container(최한홍)
[TD 2015] windows server에서 만나보는 docker와 windows container(최한홍)[TD 2015] windows server에서 만나보는 docker와 windows container(최한홍)
[TD 2015] windows server에서 만나보는 docker와 windows container(최한홍)
Sang Don Kim
 
bamboo 로 PHP 프로젝트 지속적인 배포
bamboo 로 PHP 프로젝트 지속적인 배포bamboo 로 PHP 프로젝트 지속적인 배포
bamboo 로 PHP 프로젝트 지속적인 배포
KwangSeob Jeong
 
제 5회 D2 CAMPUS SEMINAR - Swift로 만든 serverframework 개발기
제 5회 D2 CAMPUS SEMINAR - Swift로 만든 serverframework 개발기제 5회 D2 CAMPUS SEMINAR - Swift로 만든 serverframework 개발기
제 5회 D2 CAMPUS SEMINAR - Swift로 만든 serverframework 개발기
NAVER D2
 
[Play.node] node.js 를 사용한 대규모 글로벌(+중국) 서비스
[Play.node] node.js 를 사용한 대규모 글로벌(+중국) 서비스[Play.node] node.js 를 사용한 대규모 글로벌(+중국) 서비스
[Play.node] node.js 를 사용한 대규모 글로벌(+중국) 서비스
Dan Kang (강동한)
 
swig를 이용한 C++ 랩핑
swig를 이용한 C++ 랩핑swig를 이용한 C++ 랩핑
swig를 이용한 C++ 랩핑
NAVER D2
 
김찬웅_그룹웨어에 새 에너지를_NDC15
김찬웅_그룹웨어에 새 에너지를_NDC15김찬웅_그룹웨어에 새 에너지를_NDC15
김찬웅_그룹웨어에 새 에너지를_NDC15
Chanwoong Kim
 
Ryan Dahl의 Node.js 소개 동영상 해설 by doortts
Ryan Dahl의 Node.js 소개 동영상 해설 by doorttsRyan Dahl의 Node.js 소개 동영상 해설 by doortts
Ryan Dahl의 Node.js 소개 동영상 해설 by doortts
Suwon Chae
 
티켓몬스터를 위한 PHP 개발 방법
티켓몬스터를 위한 PHP 개발 방법티켓몬스터를 위한 PHP 개발 방법
티켓몬스터를 위한 PHP 개발 방법
Young D
 
xecon-phpfest2014composer
xecon-phpfest2014composerxecon-phpfest2014composer
xecon-phpfest2014composer
jhyeon1010
 
이제 온라인이다! 브라우저 안으로 들어온 Visual studio!
이제 온라인이다! 브라우저 안으로 들어온 Visual studio!이제 온라인이다! 브라우저 안으로 들어온 Visual studio!
이제 온라인이다! 브라우저 안으로 들어온 Visual studio!
SangHoon Han
 
Node.js 시작하기
Node.js 시작하기Node.js 시작하기
Node.js 시작하기
Huey Park
 
Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012Daum DNA
 
[114]angularvs react 김훈민손찬욱
[114]angularvs react 김훈민손찬욱[114]angularvs react 김훈민손찬욱
[114]angularvs react 김훈민손찬욱
NAVER D2
 

What's hot (20)

[Td 2015]두근두근 asp.net 5(한상훈)
[Td 2015]두근두근 asp.net 5(한상훈)[Td 2015]두근두근 asp.net 5(한상훈)
[Td 2015]두근두근 asp.net 5(한상훈)
 
[123] electron 김성훈
[123] electron 김성훈[123] electron 김성훈
[123] electron 김성훈
 
두근두근 ASP.NET 5!
두근두근 ASP.NET 5!두근두근 ASP.NET 5!
두근두근 ASP.NET 5!
 
처음 시작하는 라라벨
처음 시작하는 라라벨처음 시작하는 라라벨
처음 시작하는 라라벨
 
Envoy 를 이용한 코드 배포 자동화
Envoy 를 이용한 코드 배포 자동화Envoy 를 이용한 코드 배포 자동화
Envoy 를 이용한 코드 배포 자동화
 
[NDC17] 왓 스튜디오 서비스파트
[NDC17] 왓 스튜디오 서비스파트[NDC17] 왓 스튜디오 서비스파트
[NDC17] 왓 스튜디오 서비스파트
 
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
 
[TD 2015] windows server에서 만나보는 docker와 windows container(최한홍)
[TD 2015] windows server에서 만나보는 docker와 windows container(최한홍)[TD 2015] windows server에서 만나보는 docker와 windows container(최한홍)
[TD 2015] windows server에서 만나보는 docker와 windows container(최한홍)
 
bamboo 로 PHP 프로젝트 지속적인 배포
bamboo 로 PHP 프로젝트 지속적인 배포bamboo 로 PHP 프로젝트 지속적인 배포
bamboo 로 PHP 프로젝트 지속적인 배포
 
제 5회 D2 CAMPUS SEMINAR - Swift로 만든 serverframework 개발기
제 5회 D2 CAMPUS SEMINAR - Swift로 만든 serverframework 개발기제 5회 D2 CAMPUS SEMINAR - Swift로 만든 serverframework 개발기
제 5회 D2 CAMPUS SEMINAR - Swift로 만든 serverframework 개발기
 
[Play.node] node.js 를 사용한 대규모 글로벌(+중국) 서비스
[Play.node] node.js 를 사용한 대규모 글로벌(+중국) 서비스[Play.node] node.js 를 사용한 대규모 글로벌(+중국) 서비스
[Play.node] node.js 를 사용한 대규모 글로벌(+중국) 서비스
 
swig를 이용한 C++ 랩핑
swig를 이용한 C++ 랩핑swig를 이용한 C++ 랩핑
swig를 이용한 C++ 랩핑
 
김찬웅_그룹웨어에 새 에너지를_NDC15
김찬웅_그룹웨어에 새 에너지를_NDC15김찬웅_그룹웨어에 새 에너지를_NDC15
김찬웅_그룹웨어에 새 에너지를_NDC15
 
Ryan Dahl의 Node.js 소개 동영상 해설 by doortts
Ryan Dahl의 Node.js 소개 동영상 해설 by doorttsRyan Dahl의 Node.js 소개 동영상 해설 by doortts
Ryan Dahl의 Node.js 소개 동영상 해설 by doortts
 
티켓몬스터를 위한 PHP 개발 방법
티켓몬스터를 위한 PHP 개발 방법티켓몬스터를 위한 PHP 개발 방법
티켓몬스터를 위한 PHP 개발 방법
 
xecon-phpfest2014composer
xecon-phpfest2014composerxecon-phpfest2014composer
xecon-phpfest2014composer
 
이제 온라인이다! 브라우저 안으로 들어온 Visual studio!
이제 온라인이다! 브라우저 안으로 들어온 Visual studio!이제 온라인이다! 브라우저 안으로 들어온 Visual studio!
이제 온라인이다! 브라우저 안으로 들어온 Visual studio!
 
Node.js 시작하기
Node.js 시작하기Node.js 시작하기
Node.js 시작하기
 
Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012
 
[114]angularvs react 김훈민손찬욱
[114]angularvs react 김훈민손찬욱[114]angularvs react 김훈민손찬욱
[114]angularvs react 김훈민손찬욱
 

Viewers also liked

Microsoft DreamSpark 이용 가이드
Microsoft DreamSpark 이용 가이드Microsoft DreamSpark 이용 가이드
Microsoft DreamSpark 이용 가이드
Eunbee Song
 
Fbi executive report_oct_06_2010_issue_no_46_monitor
Fbi executive report_oct_06_2010_issue_no_46_monitorFbi executive report_oct_06_2010_issue_no_46_monitor
Fbi executive report_oct_06_2010_issue_no_46_monitorHanyangFBI
 
웹 애플리케이션 로그 분석 - REAL-TIME INSIGHT SOLUTION
웹 애플리케이션 로그 분석 - REAL-TIME INSIGHT SOLUTION웹 애플리케이션 로그 분석 - REAL-TIME INSIGHT SOLUTION
웹 애플리케이션 로그 분석 - REAL-TIME INSIGHT SOLUTIONKOPENS .Inc
 
Dot Net Core
Dot Net CoreDot Net Core
Dot Net Core
Amir Barylko
 
모바일, 융합, 데이터 관점에서 본 CES 2015 트렌드 & 인사이트 - 경희사이버대학교 모바일융합학과 FIT(Future IT Talk...
모바일, 융합, 데이터 관점에서 본 CES 2015 트렌드 & 인사이트 - 경희사이버대학교 모바일융합학과 FIT(Future IT Talk...모바일, 융합, 데이터 관점에서 본 CES 2015 트렌드 & 인사이트 - 경희사이버대학교 모바일융합학과 FIT(Future IT Talk...
모바일, 융합, 데이터 관점에서 본 CES 2015 트렌드 & 인사이트 - 경희사이버대학교 모바일융합학과 FIT(Future IT Talk...
Dylan Ko
 
2011 wsge개최결과보고(20111125)
2011 wsge개최결과보고(20111125)2011 wsge개최결과보고(20111125)
2011 wsge개최결과보고(20111125)Jyonee
 
Provice Trend
Provice TrendProvice Trend
Provice Trend
Kim jeehyun
 
2012people
2012people2012people
2012peoplenahyjoa
 
[비즈스프링] 웹로그분석 보고서 Example
[비즈스프링] 웹로그분석 보고서 Example[비즈스프링] 웹로그분석 보고서 Example
[비즈스프링] 웹로그분석 보고서 Example
BizSpring Inc.
 
환경부제안서 2010.03.16
환경부제안서 2010.03.16환경부제안서 2010.03.16
환경부제안서 2010.03.16
Yeonmoon Jeong
 
Daum내부 Hadoop 활용 사례 | Devon 2012
Daum내부 Hadoop 활용 사례 | Devon 2012Daum내부 Hadoop 활용 사례 | Devon 2012
Daum내부 Hadoop 활용 사례 | Devon 2012Daum DNA
 
[비즈스프링] 웹로그분석은 무엇인가?
[비즈스프링] 웹로그분석은 무엇인가?[비즈스프링] 웹로그분석은 무엇인가?
[비즈스프링] 웹로그분석은 무엇인가?
BizSpring Inc.
 
인포그래픽스 데이터분석과 저널리즘 3장 데이터수집,정제에서 분석까지
인포그래픽스 데이터분석과 저널리즘 3장 데이터수집,정제에서 분석까지인포그래픽스 데이터분석과 저널리즘 3장 데이터수집,정제에서 분석까지
인포그래픽스 데이터분석과 저널리즘 3장 데이터수집,정제에서 분석까지Han Woo PARK
 
스마트 디바이스 트렌드 및 전망 (2013년)
스마트 디바이스 트렌드 및 전망 (2013년)스마트 디바이스 트렌드 및 전망 (2013년)
스마트 디바이스 트렌드 및 전망 (2013년)
훈주 윤
 
2012 월드스마트그리드산업대전 참가설명회 발표자료
2012 월드스마트그리드산업대전 참가설명회 발표자료2012 월드스마트그리드산업대전 참가설명회 발표자료
2012 월드스마트그리드산업대전 참가설명회 발표자료
Jyonee
 
[KOTRA] Beyond eyes
[KOTRA] Beyond eyes  [KOTRA] Beyond eyes
[KOTRA] Beyond eyes
startupkorea
 
로그 수집, 집약
로그 수집, 집약로그 수집, 집약
로그 수집, 집약kidoki
 
차세대 웹 환경에서의 UI/UX 기술 표준화 동향
차세대 웹 환경에서의 UI/UX 기술 표준화 동향차세대 웹 환경에서의 UI/UX 기술 표준화 동향
차세대 웹 환경에서의 UI/UX 기술 표준화 동향
Jonathan Jeon
 
어떻게 하면 데이터 사이언티스트가 될 수 있나요?
어떻게 하면 데이터 사이언티스트가 될 수 있나요?어떻게 하면 데이터 사이언티스트가 될 수 있나요?
어떻게 하면 데이터 사이언티스트가 될 수 있나요?
Yongho Ha
 
데이터는 차트가 아니라 돈이 되어야 한다.
데이터는 차트가 아니라 돈이 되어야 한다.데이터는 차트가 아니라 돈이 되어야 한다.
데이터는 차트가 아니라 돈이 되어야 한다.
Yongho Ha
 

Viewers also liked (20)

Microsoft DreamSpark 이용 가이드
Microsoft DreamSpark 이용 가이드Microsoft DreamSpark 이용 가이드
Microsoft DreamSpark 이용 가이드
 
Fbi executive report_oct_06_2010_issue_no_46_monitor
Fbi executive report_oct_06_2010_issue_no_46_monitorFbi executive report_oct_06_2010_issue_no_46_monitor
Fbi executive report_oct_06_2010_issue_no_46_monitor
 
웹 애플리케이션 로그 분석 - REAL-TIME INSIGHT SOLUTION
웹 애플리케이션 로그 분석 - REAL-TIME INSIGHT SOLUTION웹 애플리케이션 로그 분석 - REAL-TIME INSIGHT SOLUTION
웹 애플리케이션 로그 분석 - REAL-TIME INSIGHT SOLUTION
 
Dot Net Core
Dot Net CoreDot Net Core
Dot Net Core
 
모바일, 융합, 데이터 관점에서 본 CES 2015 트렌드 & 인사이트 - 경희사이버대학교 모바일융합학과 FIT(Future IT Talk...
모바일, 융합, 데이터 관점에서 본 CES 2015 트렌드 & 인사이트 - 경희사이버대학교 모바일융합학과 FIT(Future IT Talk...모바일, 융합, 데이터 관점에서 본 CES 2015 트렌드 & 인사이트 - 경희사이버대학교 모바일융합학과 FIT(Future IT Talk...
모바일, 융합, 데이터 관점에서 본 CES 2015 트렌드 & 인사이트 - 경희사이버대학교 모바일융합학과 FIT(Future IT Talk...
 
2011 wsge개최결과보고(20111125)
2011 wsge개최결과보고(20111125)2011 wsge개최결과보고(20111125)
2011 wsge개최결과보고(20111125)
 
Provice Trend
Provice TrendProvice Trend
Provice Trend
 
2012people
2012people2012people
2012people
 
[비즈스프링] 웹로그분석 보고서 Example
[비즈스프링] 웹로그분석 보고서 Example[비즈스프링] 웹로그분석 보고서 Example
[비즈스프링] 웹로그분석 보고서 Example
 
환경부제안서 2010.03.16
환경부제안서 2010.03.16환경부제안서 2010.03.16
환경부제안서 2010.03.16
 
Daum내부 Hadoop 활용 사례 | Devon 2012
Daum내부 Hadoop 활용 사례 | Devon 2012Daum내부 Hadoop 활용 사례 | Devon 2012
Daum내부 Hadoop 활용 사례 | Devon 2012
 
[비즈스프링] 웹로그분석은 무엇인가?
[비즈스프링] 웹로그분석은 무엇인가?[비즈스프링] 웹로그분석은 무엇인가?
[비즈스프링] 웹로그분석은 무엇인가?
 
인포그래픽스 데이터분석과 저널리즘 3장 데이터수집,정제에서 분석까지
인포그래픽스 데이터분석과 저널리즘 3장 데이터수집,정제에서 분석까지인포그래픽스 데이터분석과 저널리즘 3장 데이터수집,정제에서 분석까지
인포그래픽스 데이터분석과 저널리즘 3장 데이터수집,정제에서 분석까지
 
스마트 디바이스 트렌드 및 전망 (2013년)
스마트 디바이스 트렌드 및 전망 (2013년)스마트 디바이스 트렌드 및 전망 (2013년)
스마트 디바이스 트렌드 및 전망 (2013년)
 
2012 월드스마트그리드산업대전 참가설명회 발표자료
2012 월드스마트그리드산업대전 참가설명회 발표자료2012 월드스마트그리드산업대전 참가설명회 발표자료
2012 월드스마트그리드산업대전 참가설명회 발표자료
 
[KOTRA] Beyond eyes
[KOTRA] Beyond eyes  [KOTRA] Beyond eyes
[KOTRA] Beyond eyes
 
로그 수집, 집약
로그 수집, 집약로그 수집, 집약
로그 수집, 집약
 
차세대 웹 환경에서의 UI/UX 기술 표준화 동향
차세대 웹 환경에서의 UI/UX 기술 표준화 동향차세대 웹 환경에서의 UI/UX 기술 표준화 동향
차세대 웹 환경에서의 UI/UX 기술 표준화 동향
 
어떻게 하면 데이터 사이언티스트가 될 수 있나요?
어떻게 하면 데이터 사이언티스트가 될 수 있나요?어떻게 하면 데이터 사이언티스트가 될 수 있나요?
어떻게 하면 데이터 사이언티스트가 될 수 있나요?
 
데이터는 차트가 아니라 돈이 되어야 한다.
데이터는 차트가 아니라 돈이 되어야 한다.데이터는 차트가 아니라 돈이 되어야 한다.
데이터는 차트가 아니라 돈이 되어야 한다.
 

Similar to Tech Update - The Future of .NET Framework (김명신 부장)

The Future of .NET and C#
The Future of .NET and C#The Future of .NET and C#
The Future of .NET and C#
명신 김
 
About Visual C++ 10
About  Visual C++ 10About  Visual C++ 10
About Visual C++ 10
흥배 최
 
좋은 개발자 되기
좋은 개발자 되기좋은 개발자 되기
좋은 개발자 되기
Sunghyouk Bae
 
[데브기어 온라인세미나] 20160504 새로 강화된 기능들 RAD Studio, Delphi, C++Builder
[데브기어 온라인세미나] 20160504 새로 강화된 기능들 RAD Studio, Delphi, C++Builder[데브기어 온라인세미나] 20160504 새로 강화된 기능들 RAD Studio, Delphi, C++Builder
[데브기어 온라인세미나] 20160504 새로 강화된 기능들 RAD Studio, Delphi, C++Builder
Devgear
 
20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio
20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio
20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio
Devgear
 
RAD Studio 10.2 도쿄
RAD Studio 10.2 도쿄RAD Studio 10.2 도쿄
RAD Studio 10.2 도쿄
Devgear
 
Pivotal 101세미나 발표자료 (PAS,PKS)
Pivotal 101세미나 발표자료 (PAS,PKS) Pivotal 101세미나 발표자료 (PAS,PKS)
Pivotal 101세미나 발표자료 (PAS,PKS)
VMware Tanzu Korea
 
RAD스튜디오 100% 활용하기 - 최신 기술 적용과 확장
RAD스튜디오 100% 활용하기 - 최신 기술 적용과 확장RAD스튜디오 100% 활용하기 - 최신 기술 적용과 확장
RAD스튜디오 100% 활용하기 - 최신 기술 적용과 확장
Devgear
 
불어오는 변화의 바람, From c++98 to c++11, 14
불어오는 변화의 바람, From c++98 to c++11, 14 불어오는 변화의 바람, From c++98 to c++11, 14
불어오는 변화의 바람, From c++98 to c++11, 14
명신 김
 
Backend.AI: 오픈소스 머신러닝 인프라 프레임워크
Backend.AI: 오픈소스 머신러닝 인프라 프레임워크Backend.AI: 오픈소스 머신러닝 인프라 프레임워크
Backend.AI: 오픈소스 머신러닝 인프라 프레임워크
Jeongkyu Shin
 
크로스 플랫폼을 품은 오픈 소스 프레임워크 .NET Core
크로스 플랫폼을 품은 오픈 소스 프레임워크 .NET Core크로스 플랫폼을 품은 오픈 소스 프레임워크 .NET Core
크로스 플랫폼을 품은 오픈 소스 프레임워크 .NET Core
명신 김
 
20201121 코드 삼분지계
20201121 코드 삼분지계20201121 코드 삼분지계
20201121 코드 삼분지계
Chiwon Song
 
[Td 2015]70분에 보여준다. 웹표준을 지원하는 edge 브라우저부터 웹 앱 개발까지(김영욱)
[Td 2015]70분에 보여준다. 웹표준을 지원하는 edge 브라우저부터 웹 앱 개발까지(김영욱)[Td 2015]70분에 보여준다. 웹표준을 지원하는 edge 브라우저부터 웹 앱 개발까지(김영욱)
[Td 2015]70분에 보여준다. 웹표준을 지원하는 edge 브라우저부터 웹 앱 개발까지(김영욱)
Sang Don Kim
 
Hoons 닷넷 정기세미나
Hoons 닷넷 정기세미나Hoons 닷넷 정기세미나
Hoons 닷넷 정기세미나
병걸 윤
 
S#03 김용현:VS2010으로 마이그레이션
S#03 김용현:VS2010으로 마이그레이션S#03 김용현:VS2010으로 마이그레이션
S#03 김용현:VS2010으로 마이그레이션
codercay
 
Meetup tools for-cloud_native_apps_meetup20180510-vs
Meetup tools for-cloud_native_apps_meetup20180510-vsMeetup tools for-cloud_native_apps_meetup20180510-vs
Meetup tools for-cloud_native_apps_meetup20180510-vs
minseok kim
 
Openshift 활용을 위한 Application의 준비, Cloud Native
Openshift 활용을 위한 Application의 준비, Cloud NativeOpenshift 활용을 위한 Application의 준비, Cloud Native
Openshift 활용을 위한 Application의 준비, Cloud Native
rockplace
 
카사 공개세미나1회 W.E.L.C.
카사 공개세미나1회  W.E.L.C.카사 공개세미나1회  W.E.L.C.
카사 공개세미나1회 W.E.L.C.Ryan Park
 
I phone 2 release
I phone 2 releaseI phone 2 release
I phone 2 release
Jaehyeuk Oh
 
Open standard open cloud engine for digital business process
Open standard open cloud engine for digital business process Open standard open cloud engine for digital business process
Open standard open cloud engine for digital business process uEngine Solutions
 

Similar to Tech Update - The Future of .NET Framework (김명신 부장) (20)

The Future of .NET and C#
The Future of .NET and C#The Future of .NET and C#
The Future of .NET and C#
 
About Visual C++ 10
About  Visual C++ 10About  Visual C++ 10
About Visual C++ 10
 
좋은 개발자 되기
좋은 개발자 되기좋은 개발자 되기
좋은 개발자 되기
 
[데브기어 온라인세미나] 20160504 새로 강화된 기능들 RAD Studio, Delphi, C++Builder
[데브기어 온라인세미나] 20160504 새로 강화된 기능들 RAD Studio, Delphi, C++Builder[데브기어 온라인세미나] 20160504 새로 강화된 기능들 RAD Studio, Delphi, C++Builder
[데브기어 온라인세미나] 20160504 새로 강화된 기능들 RAD Studio, Delphi, C++Builder
 
20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio
20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio
20170623 최신OS와 멀티플랫폼 개발 전략 with RAD Studio
 
RAD Studio 10.2 도쿄
RAD Studio 10.2 도쿄RAD Studio 10.2 도쿄
RAD Studio 10.2 도쿄
 
Pivotal 101세미나 발표자료 (PAS,PKS)
Pivotal 101세미나 발표자료 (PAS,PKS) Pivotal 101세미나 발표자료 (PAS,PKS)
Pivotal 101세미나 발표자료 (PAS,PKS)
 
RAD스튜디오 100% 활용하기 - 최신 기술 적용과 확장
RAD스튜디오 100% 활용하기 - 최신 기술 적용과 확장RAD스튜디오 100% 활용하기 - 최신 기술 적용과 확장
RAD스튜디오 100% 활용하기 - 최신 기술 적용과 확장
 
불어오는 변화의 바람, From c++98 to c++11, 14
불어오는 변화의 바람, From c++98 to c++11, 14 불어오는 변화의 바람, From c++98 to c++11, 14
불어오는 변화의 바람, From c++98 to c++11, 14
 
Backend.AI: 오픈소스 머신러닝 인프라 프레임워크
Backend.AI: 오픈소스 머신러닝 인프라 프레임워크Backend.AI: 오픈소스 머신러닝 인프라 프레임워크
Backend.AI: 오픈소스 머신러닝 인프라 프레임워크
 
크로스 플랫폼을 품은 오픈 소스 프레임워크 .NET Core
크로스 플랫폼을 품은 오픈 소스 프레임워크 .NET Core크로스 플랫폼을 품은 오픈 소스 프레임워크 .NET Core
크로스 플랫폼을 품은 오픈 소스 프레임워크 .NET Core
 
20201121 코드 삼분지계
20201121 코드 삼분지계20201121 코드 삼분지계
20201121 코드 삼분지계
 
[Td 2015]70분에 보여준다. 웹표준을 지원하는 edge 브라우저부터 웹 앱 개발까지(김영욱)
[Td 2015]70분에 보여준다. 웹표준을 지원하는 edge 브라우저부터 웹 앱 개발까지(김영욱)[Td 2015]70분에 보여준다. 웹표준을 지원하는 edge 브라우저부터 웹 앱 개발까지(김영욱)
[Td 2015]70분에 보여준다. 웹표준을 지원하는 edge 브라우저부터 웹 앱 개발까지(김영욱)
 
Hoons 닷넷 정기세미나
Hoons 닷넷 정기세미나Hoons 닷넷 정기세미나
Hoons 닷넷 정기세미나
 
S#03 김용현:VS2010으로 마이그레이션
S#03 김용현:VS2010으로 마이그레이션S#03 김용현:VS2010으로 마이그레이션
S#03 김용현:VS2010으로 마이그레이션
 
Meetup tools for-cloud_native_apps_meetup20180510-vs
Meetup tools for-cloud_native_apps_meetup20180510-vsMeetup tools for-cloud_native_apps_meetup20180510-vs
Meetup tools for-cloud_native_apps_meetup20180510-vs
 
Openshift 활용을 위한 Application의 준비, Cloud Native
Openshift 활용을 위한 Application의 준비, Cloud NativeOpenshift 활용을 위한 Application의 준비, Cloud Native
Openshift 활용을 위한 Application의 준비, Cloud Native
 
카사 공개세미나1회 W.E.L.C.
카사 공개세미나1회  W.E.L.C.카사 공개세미나1회  W.E.L.C.
카사 공개세미나1회 W.E.L.C.
 
I phone 2 release
I phone 2 releaseI phone 2 release
I phone 2 release
 
Open standard open cloud engine for digital business process
Open standard open cloud engine for digital business process Open standard open cloud engine for digital business process
Open standard open cloud engine for digital business process
 

More from Eunbee Song

Imagine Cup 2015 Korea Top 20 Orientation
Imagine Cup 2015 Korea Top 20 OrientationImagine Cup 2015 Korea Top 20 Orientation
Imagine Cup 2015 Korea Top 20 Orientation
Eunbee Song
 
Imagine Cup 2015 설명회
Imagine Cup 2015 설명회Imagine Cup 2015 설명회
Imagine Cup 2015 설명회
Eunbee Song
 
Imagine Cup 2015 등록 방법
Imagine Cup 2015 등록 방법Imagine Cup 2015 등록 방법
Imagine Cup 2015 등록 방법
Eunbee Song
 
MVA (Microsoft Virtual Academy) 처음 사용자를 위한 가이드
MVA (Microsoft Virtual Academy) 처음 사용자를 위한 가이드MVA (Microsoft Virtual Academy) 처음 사용자를 위한 가이드
MVA (Microsoft Virtual Academy) 처음 사용자를 위한 가이드
Eunbee Song
 
Imagine Cup 2014 Korea Top 20 Orientation
Imagine Cup 2014 Korea Top 20 OrientationImagine Cup 2014 Korea Top 20 Orientation
Imagine Cup 2014 Korea Top 20 Orientation
Eunbee Song
 
말햌 - 학생개발자를 위한 2014년 말의 해 첫 해커톤
말햌 - 학생개발자를 위한 2014년 말의 해 첫 해커톤말햌 - 학생개발자를 위한 2014년 말의 해 첫 해커톤
말햌 - 학생개발자를 위한 2014년 말의 해 첫 해커톤
Eunbee Song
 
BizSpark 멤버를 위한 Azure 혜택 사용법 소개
BizSpark 멤버를 위한 Azure 혜택 사용법 소개BizSpark 멤버를 위한 Azure 혜택 사용법 소개
BizSpark 멤버를 위한 Azure 혜택 사용법 소개
Eunbee Song
 
Imagine Cup Registration 방법 안내
Imagine Cup Registration 방법 안내Imagine Cup Registration 방법 안내
Imagine Cup Registration 방법 안내
Eunbee Song
 
Imagine Cup 2013 Korea Final 출전기 - 이경진
Imagine Cup 2013 Korea Final 출전기 - 이경진Imagine Cup 2013 Korea Final 출전기 - 이경진
Imagine Cup 2013 Korea Final 출전기 - 이경진
Eunbee Song
 
Imagine Cup 2013 Russia 출전기 - 최낙권
Imagine Cup 2013 Russia 출전기 - 최낙권Imagine Cup 2013 Russia 출전기 - 최낙권
Imagine Cup 2013 Russia 출전기 - 최낙권
Eunbee Song
 
Imagine cup 2014 대회 일정 및 요강 안내
Imagine cup 2014 대회 일정 및 요강 안내Imagine cup 2014 대회 일정 및 요강 안내
Imagine cup 2014 대회 일정 및 요강 안내
Eunbee Song
 
Cloud Computing 최적화 사례
Cloud Computing 최적화 사례Cloud Computing 최적화 사례
Cloud Computing 최적화 사례Eunbee Song
 
Social Network Service
Social Network ServiceSocial Network Service
Social Network ServiceEunbee Song
 
Windows Azure Cases
Windows Azure CasesWindows Azure Cases
Windows Azure Cases
Eunbee Song
 
Cloud Computing
Cloud ComputingCloud Computing
Cloud Computing
Eunbee Song
 

More from Eunbee Song (15)

Imagine Cup 2015 Korea Top 20 Orientation
Imagine Cup 2015 Korea Top 20 OrientationImagine Cup 2015 Korea Top 20 Orientation
Imagine Cup 2015 Korea Top 20 Orientation
 
Imagine Cup 2015 설명회
Imagine Cup 2015 설명회Imagine Cup 2015 설명회
Imagine Cup 2015 설명회
 
Imagine Cup 2015 등록 방법
Imagine Cup 2015 등록 방법Imagine Cup 2015 등록 방법
Imagine Cup 2015 등록 방법
 
MVA (Microsoft Virtual Academy) 처음 사용자를 위한 가이드
MVA (Microsoft Virtual Academy) 처음 사용자를 위한 가이드MVA (Microsoft Virtual Academy) 처음 사용자를 위한 가이드
MVA (Microsoft Virtual Academy) 처음 사용자를 위한 가이드
 
Imagine Cup 2014 Korea Top 20 Orientation
Imagine Cup 2014 Korea Top 20 OrientationImagine Cup 2014 Korea Top 20 Orientation
Imagine Cup 2014 Korea Top 20 Orientation
 
말햌 - 학생개발자를 위한 2014년 말의 해 첫 해커톤
말햌 - 학생개발자를 위한 2014년 말의 해 첫 해커톤말햌 - 학생개발자를 위한 2014년 말의 해 첫 해커톤
말햌 - 학생개발자를 위한 2014년 말의 해 첫 해커톤
 
BizSpark 멤버를 위한 Azure 혜택 사용법 소개
BizSpark 멤버를 위한 Azure 혜택 사용법 소개BizSpark 멤버를 위한 Azure 혜택 사용법 소개
BizSpark 멤버를 위한 Azure 혜택 사용법 소개
 
Imagine Cup Registration 방법 안내
Imagine Cup Registration 방법 안내Imagine Cup Registration 방법 안내
Imagine Cup Registration 방법 안내
 
Imagine Cup 2013 Korea Final 출전기 - 이경진
Imagine Cup 2013 Korea Final 출전기 - 이경진Imagine Cup 2013 Korea Final 출전기 - 이경진
Imagine Cup 2013 Korea Final 출전기 - 이경진
 
Imagine Cup 2013 Russia 출전기 - 최낙권
Imagine Cup 2013 Russia 출전기 - 최낙권Imagine Cup 2013 Russia 출전기 - 최낙권
Imagine Cup 2013 Russia 출전기 - 최낙권
 
Imagine cup 2014 대회 일정 및 요강 안내
Imagine cup 2014 대회 일정 및 요강 안내Imagine cup 2014 대회 일정 및 요강 안내
Imagine cup 2014 대회 일정 및 요강 안내
 
Cloud Computing 최적화 사례
Cloud Computing 최적화 사례Cloud Computing 최적화 사례
Cloud Computing 최적화 사례
 
Social Network Service
Social Network ServiceSocial Network Service
Social Network Service
 
Windows Azure Cases
Windows Azure CasesWindows Azure Cases
Windows Azure Cases
 
Cloud Computing
Cloud ComputingCloud Computing
Cloud Computing
 

Tech Update - The Future of .NET Framework (김명신 부장)

  • 1. 김명신 / 한국 마이크로소프트 Windows, Linux, Mac 신경 안 쓴다 .NET 2015와 C# 살짝 훔쳐보기
  • 2. 우리는 혁신이 필요하고 더 빠르게 개발할 수 있기를 바랍니다. 여러 장치에서 동작하는 앱을 개발하고 싶습니다. 오픈소스 전략이 플랫폼과 커뮤니티를 더욱 풍성하게 할겁니다. 하지만 기존의 응용 프로그램은 그대로 수행되어야 해요.
  • 3. .NET의 지향점 .NET의 혁신 오픈 소스 .NET Core ASP.NET 5 크로스 플랫폼
  • 4. RyuJIT + SIMD Garbage Collector Runtime components Compilers .NET Compiler Platform (Roslyn) Languages innovation .NET Framework 4.6 Fully-featured and integrated .NET libraries and runtime for Windows Modular and optimized .NET libraries and runtimes Base class libraries NuGet packages Libraries
  • 6. .NET SxS 배포, 대체 업데이트 .NET 4 .NET 4.5 .NET 4.5.1 .NET 4.5.2 .NET 4.6 .NET 2.0 .NET 3.0 .NET 3.5 2002 2003 2005 2006 2008 2010 2012 2013 2014 2015 .NET 1.0 .NET 1.1
  • 9. 기능 WPF 투명 차일드 윈도우 지원 WPF 터치 동작에 대한 성능과 신뢰성 개선 멀티 터치 이벤트에 대하여 신뢰성 개선 UI 스레드가 바쁜 상황에서도 터치 동작이 원할 하도록 성능 개선 WPF 리스트에 대한 스크롤 가상화 개선 리스트상에 포함된 항목 조회의 신뢰성 향상 가상화 중에 레이아웃이 훼손되지 않도록 개선 WPF High DPI 지원 개선 다중 DPI 커서와 모니터 지원, 프레임워크 요소들에 대한 외곽 처리 개선 윈폼 High DPI 지원 개선
  • 10. 라이브러리 WCF 개선 기존 SSL 3.0, TLS 1.0 지원에 TLS 1.1, TLS 1.2 지원 추가 다수의 HTTP 연결을 통해 메시지 전송 ADO.NET 개선 SQL Server 2016에서 사용할 수 있는 Always Encrypted 기능 지원 Async 비동기 제어 흐름상에서 특정 데이터를 유지할 수 있는 기능 추가 Network 관련 타입 개선 System.Net.Sockets, System.Uri 개선 암호화 관련 라이브러리 개선
  • 11. 런타임 64비트 JIT 컴파일러 재작성(“RyuJIT”) 대용량의 64비트 클라우드 작업을 수행하기에 적합 64비트 CLR의 SIMD 지원 SSE2, AVX 등의 하드웨어를 지원 하드웨어 중립적인 코드 작성이 가능 가비지 수집기 개선 피닝(pinning)된 객체 최적화 Gen1에서 Gen2로의 프로모션을 메모리 효율적으로 수행하도록 개선 가비지 수집 금지 영역 지정 어셈블리 로더 성능 개선
  • 12. 도구 새로운 Blend 솔루션 탐색기, 팀 탐색기, 편집기 등의 VS 기술을 결합 Roslyn 기반의 새로운 언어 서비스 속도와 신뢰성 개선 코드 중심의 워크스페이스, WPF의 In-Place 편집 디버깅 Xaml UI 디버깅 도구, 디버거가 결합된 분석 도구 분석 타임라인 기반 분석 도구
  • 13. Demo
  • 14. 참고자료 Announcing .NET Framework 4.6 http://blogs.msdn.com/b/dotnet/archive/2015/07/20/announcing-net-framework-4-6.aspx .NET Framework의 새로운 기능 https://msdn.microsoft.com/library/ms171868.aspx#v46 NET Framework 4.6의 응용 프로그램 호환성 https://msdn.microsoft.com/library/dn833127.aspx .NET Framework 4.6 list of changes https://github.com/Microsoft/dotnet/blob/master/docs/releases/net46/dotnet46-changes.md .NET Framework API diff https://dotnet2015.blob.core.windows.net/changes/diff_net452_net46.html .NET Framework Targeting Pack http://www.microsoft.com/ko-kr/download/details.aspx?id=48136 Web installer(preferred) http://www.microsoft.com/ko-kr/download/details.aspx?id=48130 Offline installer http://www.microsoft.com/ko-kr/download/details.aspx?id=48137
  • 16. 핵심 기술 64비트 JIT 컴파일러 RyuJIT 새로운 패키지 매니저 nuget .NET 컴파일러 플랫폼 Roslyn
  • 17. RyuJit? • .NET을 위한 차세대 64비트 JIT 컴파일러 • 코드 생성 속도 개선, 코드 품질 개선 • 고급 최적화 기능 포함(e.g. SIMD, …) 코드 품질 How fast generated code runs 코드 생성 속도 How fast JIT compiler generate app code
  • 18. SIMD(Single Instruction Multiple Data) • .NET에서 data parallelism을 사용할 수 있도록 함 • 게임, 수식 연산, 이미지 처리 등의 응용 프로그램의 성능을 개선 • nuget을 이용하여 .NET 라이브러리 형태로 이용 가능
  • 20. Vector<int>.Count var v1 = new Vector<int>(src1, i); var v2 = new Vector<int>(src2, i); var sum = v1 + v2; sum.CopyTo(dest, i);
  • 21. Demo
  • 24. Demo
  • 26. Team 혁신을 이어갈 수 있는 깔끔한 아키텍쳐 Partners 소스 기반 도구나 확장 도구 개발 Developers 더욱 더 강력한 C# IDE 기능 제공 OSS 1,000,000s 1,000s 10s
  • 27. Demo
  • 28. C# 6
  • 29. public class Customer { public string First { get; set; } = "Jane"; public string Last { get; set; } = "Doe"; } Initializers for auto-properties(C# 6.0) Getter-only auto-properties(C# 6.0) public class Customer { public string First { get; } = "Jane"; public string Last { get; } = "Doe"; }
  • 30. Expression bodies on method-like members(C# 6.0) public Point Move(int dx, int dy) => new Point(x + dx, y + dy); public static Complex operator +(Complex a, Complex b) => a.Add(b); public void Print() => Console.WriteLine(First + " " + Last); public string Name => First + " " + Last; public Customer this[long id] => store.LookupCustomer(id); Expression bodies on property-like function members(C# 6.0) String interpolation(C# 6.0) var s = $"{p.Name} is {p.Age} year{{s}} old"; var s = $"{p.Name} is {p.Age} year{(p.Age == 1 ? "" : "s")} old";
  • 31. using static System.Console; using static System.Math; using static System.DayOfWeek; class Program { static void Main() { WriteLine(Sqrt(3 * 3 + 4 * 4)); WriteLine(Friday - Monday); } } using static(C# 6.0)
  • 32. int? length = customers?.Length; // null if customers is null Customer first = customers?[0]; // null if customers is null int length = customers?.Length ?? 0; // 0 if customers is null Null-conditional operators(C# 6.0) nameof expressions(C# 6.0) if (x == null) throw new ArgumentNullException(nameof(x)); WriteLine(nameof(person.Address.ZipCode)); // prints "ZipCode" Exception filters(C# 6.0) try { … } catch (MyException e) when(myfilter(e)) {}
  • 33. Index initializers(C# 6.0) var numbers = new Dictionary<int, string> { [7] = "seven", [9] = "nine", [13] = "thirteen" }; try { res = await Resource.OpenAsync(…); } catch (ResourceException e) { await Resource.LogAsync(res, e); } finally { if (res != null) await res.CloseAsync();} await in catch and finally blocks(C# 6.0)
  • 35. Pattern Matching if (o is Point p && p.X == 5) { WriteLine(p.Y); } if (o is Point{ X is 5, Y is var y }) { WriteLine(y); } if (o is Point(5, var y)) { WriteLine(y); } switch (o) { case string s: WriteLine(s); break; case Point(int x, int y): Console.WriteLine($"({x},{y})"); break; case null: Console.WriteLine("<null>"); break; }
  • 36. Tuple public (int sum, int count) Tally(IEnumerable<int> values) { … } var t = Tally(myValues); Console.WriteLine($"Sum: {t.sum}, count: {t.count}"); public async Task<(int sum, int count)> TallyAsync(IEnumerable<int> values) { … } var t = await TallyAsync(myValues); Console.WriteLine($"Sum: {t.sum}, count: {t.count}"); public (int sum, int count) Tally(IEnumerable<int> values) { var s = 0; var c = 0; foreach (var value in values) { s += value; c++; } return (s, c); }
  • 37. nullable references Dog? nullableDog = new Dog("Nullable"); nullableDog.Bark(); Compiler Error – nullable 참조로는 dereference 하지 못함 cannot dereference nullable reference(yet) if (nullableDog != null) { // 컴파일러는 이 scope 내에서는 nullableDog가 null이 아님을 안다. nullableDog.Bark(); // OK } else { // 컴파일러는 이 scope 내에서는 nullableDog가 null임을 안다. nullableDog.Bark(); // Compiler Error – nullable 참조로는 dereference하지 못함 }
  • 38. Non-nullable references Dog! mandatoryDog = new Dog("Mandatory"); mandatoryDog.Bark(); // OK – null 일 수 없으므로 method 호출 가능 string name = mandatoryDog.Name; // OK – null 일수 없으므로 property 참조 가능
  • 40.
  • 41. .NET Core 5 Modular and optimized .NET libraries and runtimes .NET Framework의 하위 집합 이식이 가능한 모듈화 개발 모듈 세분화, 의존관계 최소화 오픈소스로 진행 .NET Core runtime : CoreCLR https://github.com/dotnet/coreclr .NET Core libraries: CoreFX https://github.com/dotnet/corefx
  • 42. Demo
  • 44. UWP 앱을 위해 클라우드에서 수행되는 차세대 클라우드 컴파일러 C#을 머신 코드로 컴파일 정적 링크 극도로 작아진 런타임을 사용하고, VC++의 Optimizer를 이용 MSIL bytecode Machine code
  • 45.
  • 46. Demo
  • 47. .NET의 지향점 .NET의 혁신 오픈 소스 .NET Core ASP.NET 5 크로스 플랫폼
  • 48. Mono.NET Core 크로스 플랫폼 모바일 개발과 .NET/Xamarin 파트너쉽 .NET Xamarin Unity 서비스와 웹 응용 프로그램 모바일 앱 Windows Linux Mac OS X .NET Core ASP.NET 5
  • 49. 64-bit JIT + SIMD Garbage Collector Runtime components Compilers .NET Compiler Platform (Roslyn) Languages innovation .NET Framework 4.6 .NET Core 5 Fully-featured and integrated .NET libraries and runtime for Windows Modular and optimized .NET libraries and runtimes Base class libraries NuGet packages Libraries
  • 50. • 리눅스 환경에서도 .NET 기반의 앱과 서비스를 수행 • 리눅스 환경에서 구동되는 .NET 기반의 앱을 Visual Studio를 이용하여 개발, 배포, 디버깅 수행 • OSX 사용자는 Visual Studio Code 등을 이용하여 Mac에서 .NET code를 편집, 컴파일, 디버깅 • .NET Core 전체가 GitHub를 통해 오픈소스로 제공 개발자를 위한 이점
  • 52. .NET의 지향점 .NET의 혁신 오픈 소스 .NET Core ASP.NET 5 크로스 플랫폼
  • 53. SSCLI (“Rotor”) Mar 2002 WiX Apr 2004 F# May 2005 ASP.NET Mar 2012 TypeScript Oct 2012 Roslyn Apr 2014 .NET Core Nov 2014 Mono V1 Jun 2004 Mono Started ~2002
  • 54. .NET의 오픈 소스화 플랫폼 크로스 플랫폼 지원 오픈소스 RyuJIT, SIMD Core-CLR Runtime components Compilers .NET Compiler Platform (“Roslyn”) Languages .NET Core 5 Libraries .NET Framework 4.6 Libraries Libraries .NET Framework 4.6 .NET Core 5 github.com/microsoft/dotnet What is Microsoft open sourcing? (2015)
  • 55. .NET API for Hadoop WebClient .NET Compiler Platform ("Roslyn") .NET Map Reduce API for Hadoop .NET Micro Framework ASP.NET MVC ASP.NET Web API ASP.NET Web Pages ASP.NET SignalR MVVM Light Toolkit .NET Core 5 Orleans MEF (Managed Extensibility Framework) OWIN Authentication MiddlewareRx (Reactive Extensions) Orchard CMS Windows Azure .NET SDK Thinktecture IdentityManager WnsRecipe Mimekit Xamarin.Auth Xamarin.Mobile Couchbase for .NET Meet the people behind the .NET Foundation http://www.dotnetfoundation.org/teamhttp://www.dotnetfoundation.org @dotnetfdn Mailkit System.Drawing ASP.NET 5 Salesforce Toolkits for .NET NuGetKudu Cecil MSBuild
  • 57. 감사합니다. • MSDN Forum http://aka.ms/msdnforum • TechNet Forum http://aka.ms/technetforum

Editor's Notes

  1. Announcing .NET Framework 4.6 .NET Framework의 새로운 기능 https://msdn.microsoft.com/library/ms171868.aspx#v46 .NET Framework 4.6의 응용 프로그램 호환성 https://msdn.microsoft.com/library/dn833127.aspx .NET Framework 4.6 list of changes https://github.com/Microsoft/dotnet/blob/master/docs/releases/net46/dotnet46-changes.md .NET Framework API diff https://dotnet2015.blob.core.windows.net/changes/diff_net452_net46.html .NET Framework Targeting Pack http://www.microsoft.com/ko-kr/download/details.aspx?id=48136 Web installer(preferred) http://www.microsoft.com/ko-kr/download/details.aspx?id=48130 Offline installer http://www.microsoft.com/ko-kr/download/details.aspx?id=48137
  2. Demo 시연
  3. Demo 시연
  4. Demo 시연
  5. 개발자는 개발시에 준 컴파일러  개발도구는 개발자를 더 잘 이해할 필요가 있다.  이를 위해서 개발 도구는 컴파일러를 이해해야 한다.
  6. Demo 시연
  7. Demo 시연
  8. Cold Startup 40% 빨라지고, Memory Usage는 13% 정도 개선 Tailored to Mobile and Client Desktop .NET is designed for a variety of client, server, and enterprise scenarios. 1.8 billion machines use Desktop .NET and it’s deployed as part of the OS. .NET needs to run on phones and smaller. .NET Native has a small footprint. Updates Don’t Break Developers .NET Native statically links framework libraries with the application. Apps adopt library innovations on their cadence. Library innovations are delivered consistently across all devices. Developers can be confident that Windows Update won’t break their app. Better Optimizations JIT-ing has to happen quickly. Optimized compiling doesn’t. Moving all compilation steps to build time allows us to implement better optimizations. We now use the C++ backend. T
  9. New runtime mrt.dll(MR.T) 300K로 줄였다. CLR 6M가 넘는다. Why store app : scope, Desktop .NET은 NET의 usage scenari가 매우 복잡하고 많다. 다 할 수가 없다. 그래서 Win Store App 먼저.. 하지만 멈추지 않을 것이다. Command line이나 WPF 응용 프로그램 등으로 확장 될 것이다. .NET Deployment와 상관이 없다. 단일의 binary/ 더 이상 .net 을 설치할 필요가 없다. Runtime 조차도 xcopy로 복사 No JIT, S아 released Static compilication of your .NET code C++ compiler back end in order to generate MDIL Machine Dependent IL -- > Native binary Trident on windows phone, not need to load jit JIT x64,32bit, arm. C# doesn’t are MDIL binary that go on device and then the native major C++ excellect optimization No JIT, little bit of JIT, Jit can be useful(runtime compilation) No JITing이 핵심은 아니다. .NET nativ는 단지 핵심적으로 성능과 관련된 여러가지 작업들을 수행했다. Startup 시간은 최대 60% 빨라지고, 평균 40%정도 빨라진다. 이는 ngen이나 Trident CLR runtim도 최적화 하였다. MRt100.dll minimum runtime static compile global 분석, global optimizatio을 수행, refactored and optimized libraries frame refactored and again optimized to make sure that app runs faster, Today focus on store app for modern windows app for now Tool Chain C# code ->csc.exe->app.exe->ilc.exe(<-corefx.dll, not the same implementation but same framework, optimized winrt framework) Ilc.exe has bunch of steps MCG(Marshing Code Generation) -> g.cs 가 MCG로 들어간다. 다음으로 IL Transform->app.ildll ->Tree shaking UGC backend->MDIL(app.mdil)->rhbind -> app.exe, app.dll Windows Phone world. Compliation is happed cloud. Windows Phone compiler doing(Mdil COMPILER) Reflection is not allowed
  10. Demo 시연