Платформа .NET сегодня иpublic.jugru.org/dotnext/2015/piter/zdebsky.pdfASP.NET 5...
Transcript of Платформа .NET сегодня иpublic.jugru.org/dotnext/2015/piter/zdebsky.pdfASP.NET 5...
![Page 1: Платформа .NET сегодня иpublic.jugru.org/dotnext/2015/piter/zdebsky.pdfASP.NET 5 ASP.NET 4.6 WPF Windows Forms.NET Framework 4.6.NET Core 5 ASP.NET Core 5 .NET Native](https://reader034.fdocuments.net/reader034/viewer/2022042314/5f02c6a37e708231d405f406/html5/thumbnails/1.jpg)
Ромуальд Здебский Руководитель направления по мобильным играм, Microsoft [email protected] @zdebskiy
Платформа .NET сегодня и завтра
![Page 2: Платформа .NET сегодня иpublic.jugru.org/dotnext/2015/piter/zdebsky.pdfASP.NET 5 ASP.NET 4.6 WPF Windows Forms.NET Framework 4.6.NET Core 5 ASP.NET Core 5 .NET Native](https://reader034.fdocuments.net/reader034/viewer/2022042314/5f02c6a37e708231d405f406/html5/thumbnails/2.jpg)
Для пользователей легче всегда быть с актуальной версией
Общее ядрои платформа приложений
Объединение Windows почти закончено
Windows Phone 7.5
Windows Phone 8Windows Phone 8.1
Windows 8
Xbox One
Windows on Devices
Xbox 360
Windows 8.1
Windows 10
Объединение ядер ОС
Объединение модели
приложений
![Page 3: Платформа .NET сегодня иpublic.jugru.org/dotnext/2015/piter/zdebsky.pdfASP.NET 5 ASP.NET 4.6 WPF Windows Forms.NET Framework 4.6.NET Core 5 ASP.NET Core 5 .NET Native](https://reader034.fdocuments.net/reader034/viewer/2022042314/5f02c6a37e708231d405f406/html5/thumbnails/3.jpg)
Phone Small Tablet
2-in-1s (Tablet or Laptop)
Desktops & All-in-Ones
Phablet LargeTablet
Classic Laptop
Xbox
IoT
Microsoft Surface Hub
Windows 10 для широкого спектра устройств… Devices Platform
HoloLens
![Page 4: Платформа .NET сегодня иpublic.jugru.org/dotnext/2015/piter/zdebsky.pdfASP.NET 5 ASP.NET 4.6 WPF Windows Forms.NET Framework 4.6.NET Core 5 ASP.NET Core 5 .NET Native](https://reader034.fdocuments.net/reader034/viewer/2022042314/5f02c6a37e708231d405f406/html5/thumbnails/4.jpg)
…с единой платформой разработки для каждого устройства
Windows Universal Platform
NaturalUser Inputs
Monetization+ Distribution
Adaptive UI + Controls
Full Support for Existing Code
Live Tiles +Notifications
IoT + Wearables
Surface Hub
Xbox
DesktopPhone + Tablet
Devices Platform
![Page 5: Платформа .NET сегодня иpublic.jugru.org/dotnext/2015/piter/zdebsky.pdfASP.NET 5 ASP.NET 4.6 WPF Windows Forms.NET Framework 4.6.NET Core 5 ASP.NET Core 5 .NET Native](https://reader034.fdocuments.net/reader034/viewer/2022042314/5f02c6a37e708231d405f406/html5/thumbnails/5.jpg)
Apps
XAML/DirectXC
C++C#
Visual Basic
HTML
JavaScript
Windows Runtime (WinRT)
Универсальные проекты
One project type to rule them all…
![Page 6: Платформа .NET сегодня иpublic.jugru.org/dotnext/2015/piter/zdebsky.pdfASP.NET 5 ASP.NET 4.6 WPF Windows Forms.NET Framework 4.6.NET Core 5 ASP.NET Core 5 .NET Native](https://reader034.fdocuments.net/reader034/viewer/2022042314/5f02c6a37e708231d405f406/html5/thumbnails/6.jpg)
Языковые проекции
Объекты (или компоненты) Windows Runtime
Написаны на C++, C#, VB Windows Metadata
C++ AppПро
еки
ця
CLR
C#/VB AppПро
екц
ия
HTML App
Chakra
Про
екц
ия
Object
IInspectableIUnknown
![Page 7: Платформа .NET сегодня иpublic.jugru.org/dotnext/2015/piter/zdebsky.pdfASP.NET 5 ASP.NET 4.6 WPF Windows Forms.NET Framework 4.6.NET Core 5 ASP.NET Core 5 .NET Native](https://reader034.fdocuments.net/reader034/viewer/2022042314/5f02c6a37e708231d405f406/html5/thumbnails/7.jpg)
.NET Framework
![Page 8: Платформа .NET сегодня иpublic.jugru.org/dotnext/2015/piter/zdebsky.pdfASP.NET 5 ASP.NET 4.6 WPF Windows Forms.NET Framework 4.6.NET Core 5 ASP.NET Core 5 .NET Native](https://reader034.fdocuments.net/reader034/viewer/2022042314/5f02c6a37e708231d405f406/html5/thumbnails/8.jpg)
активных инсталляций
1.8млрд профессиональных
разработчиков.NET6M
От встраиваемых систем 64k, ПК, планшетов, смартфонов до облачных серверов
![Page 9: Платформа .NET сегодня иpublic.jugru.org/dotnext/2015/piter/zdebsky.pdfASP.NET 5 ASP.NET 4.6 WPF Windows Forms.NET Framework 4.6.NET Core 5 ASP.NET Core 5 .NET Native](https://reader034.fdocuments.net/reader034/viewer/2022042314/5f02c6a37e708231d405f406/html5/thumbnails/9.jpg)
![Page 10: Платформа .NET сегодня иpublic.jugru.org/dotnext/2015/piter/zdebsky.pdfASP.NET 5 ASP.NET 4.6 WPF Windows Forms.NET Framework 4.6.NET Core 5 ASP.NET Core 5 .NET Native](https://reader034.fdocuments.net/reader034/viewer/2022042314/5f02c6a37e708231d405f406/html5/thumbnails/10.jpg)
"DotNet" by Soumyasch - Own work. Licensed under CC BY-SA 3.0 via Wikimedia Commons - http://commons.wikimedia.org/wiki/File:DotNet.svg#/media/File:DotNet.svg
![Page 11: Платформа .NET сегодня иpublic.jugru.org/dotnext/2015/piter/zdebsky.pdfASP.NET 5 ASP.NET 4.6 WPF Windows Forms.NET Framework 4.6.NET Core 5 ASP.NET Core 5 .NET Native](https://reader034.fdocuments.net/reader034/viewer/2022042314/5f02c6a37e708231d405f406/html5/thumbnails/11.jpg)
Будущее WPF
![Page 12: Платформа .NET сегодня иpublic.jugru.org/dotnext/2015/piter/zdebsky.pdfASP.NET 5 ASP.NET 4.6 WPF Windows Forms.NET Framework 4.6.NET Core 5 ASP.NET Core 5 .NET Native](https://reader034.fdocuments.net/reader034/viewer/2022042314/5f02c6a37e708231d405f406/html5/thumbnails/12.jpg)
Зоны развитияPerformance: For data centric applications, the platform needs to scale to enable the display and manipulation of hundreds and thousands of rows of data. Some key scenarios we are looking to optimize in this context are application startup, scrolling and virtualization performance of ItemsControls.
DirectX interoperability: The primary scenario of interest here is to make it seamless for WPF applications to interoperate with newer versions of DirectX. An example would be native support for DX11 in D3Dimage
Supporting modern hardware: Technologies like touch and high density displays are ubiquitous on modern devices. Making it for existing easy for WPF applications to adapt to these new hardware capabilities is a high priority for us
Tooling: We will continue to co-evolve the tooling for WPF when appropriate, alongside new platforms like .NET/WinRT
http://blogs.msdn.com/b/dotnet/archive/2014/11/12/the-roadmap-for-wpf.aspx
![Page 13: Платформа .NET сегодня иpublic.jugru.org/dotnext/2015/piter/zdebsky.pdfASP.NET 5 ASP.NET 4.6 WPF Windows Forms.NET Framework 4.6.NET Core 5 ASP.NET Core 5 .NET Native](https://reader034.fdocuments.net/reader034/viewer/2022042314/5f02c6a37e708231d405f406/html5/thumbnails/13.jpg)
Visual Diagnostics (Inspect & Modify Element Properties While Debugging)
Live Visual Tree
Live Property Explorer
![Page 14: Платформа .NET сегодня иpublic.jugru.org/dotnext/2015/piter/zdebsky.pdfASP.NET 5 ASP.NET 4.6 WPF Windows Forms.NET Framework 4.6.NET Core 5 ASP.NET Core 5 .NET Native](https://reader034.fdocuments.net/reader034/viewer/2022042314/5f02c6a37e708231d405f406/html5/thumbnails/14.jpg)
Timeline Tool (WPF Performance Diagnostics)
![Page 15: Платформа .NET сегодня иpublic.jugru.org/dotnext/2015/piter/zdebsky.pdfASP.NET 5 ASP.NET 4.6 WPF Windows Forms.NET Framework 4.6.NET Core 5 ASP.NET Core 5 .NET Native](https://reader034.fdocuments.net/reader034/viewer/2022042314/5f02c6a37e708231d405f406/html5/thumbnails/15.jpg)
Blend Improvements
Improved version control support
XAML IntelliSense
Basic debugging capabilities
![Page 16: Платформа .NET сегодня иpublic.jugru.org/dotnext/2015/piter/zdebsky.pdfASP.NET 5 ASP.NET 4.6 WPF Windows Forms.NET Framework 4.6.NET Core 5 ASP.NET Core 5 .NET Native](https://reader034.fdocuments.net/reader034/viewer/2022042314/5f02c6a37e708231d405f406/html5/thumbnails/16.jpg)
Что мы слышим от разработчиков…
“Цикл разработки ускоряется”
“Нам нужно разрабатывать кросс-платформенные приложения”
“Open Source – обогащает сообщество и саму платформу”
“…но необходимо поддерживать существующие приложения”
![Page 17: Платформа .NET сегодня иpublic.jugru.org/dotnext/2015/piter/zdebsky.pdfASP.NET 5 ASP.NET 4.6 WPF Windows Forms.NET Framework 4.6.NET Core 5 ASP.NET Core 5 .NET Native](https://reader034.fdocuments.net/reader034/viewer/2022042314/5f02c6a37e708231d405f406/html5/thumbnails/17.jpg)
Баланс между инновациями и совместимостью
Модульная структура обновлений
Вовлечение сообщества в развитие платформы
Инновации в .NET
Гибкость / быстрые обновления
Открытость
Новый подход к .NET
OSS
.NET
![Page 18: Платформа .NET сегодня иpublic.jugru.org/dotnext/2015/piter/zdebsky.pdfASP.NET 5 ASP.NET 4.6 WPF Windows Forms.NET Framework 4.6.NET Core 5 ASP.NET Core 5 .NET Native](https://reader034.fdocuments.net/reader034/viewer/2022042314/5f02c6a37e708231d405f406/html5/thumbnails/18.jpg)
.NET 2015
След.поколение JIT (“RyuJIT”) SIMD (параллелизм)
Runtime Компиляторы.NET Compiler Platform (“Roslyn”) Инновации в языках
.NET Core 5 Libraries
.NET Framework 4.6 Libraries
NuGet packagesОбщий слой
.NET Framework 4.6 .NET Core 5
![Page 19: Платформа .NET сегодня иpublic.jugru.org/dotnext/2015/piter/zdebsky.pdfASP.NET 5 ASP.NET 4.6 WPF Windows Forms.NET Framework 4.6.NET Core 5 ASP.NET Core 5 .NET Native](https://reader034.fdocuments.net/reader034/viewer/2022042314/5f02c6a37e708231d405f406/html5/thumbnails/19.jpg)
Windows Desktop.NET
История .NET “вертикалей”
App Model
Framework
Runtime
Windows Store Windows Phone ASP.NET 4 ASP.NET 5
App Model
Framework
Runtime
Runtime
App Model
Framework
Runtime
App Model
Framework
Runtime
App
Model
Framework
![Page 20: Платформа .NET сегодня иpublic.jugru.org/dotnext/2015/piter/zdebsky.pdfASP.NET 5 ASP.NET 4.6 WPF Windows Forms.NET Framework 4.6.NET Core 5 ASP.NET Core 5 .NET Native](https://reader034.fdocuments.net/reader034/viewer/2022042314/5f02c6a37e708231d405f406/html5/thumbnails/20.jpg)
Что такое .NET Core?
ASP.NET 5 App Model
Universal Windows Apps Model
Любая другая модель приложений
.NET Core Unified BCL (Base Class
Library)
Runtime Adaption Layer.NET Native И Runtime
Core CLR Other Runtime
![Page 21: Платформа .NET сегодня иpublic.jugru.org/dotnext/2015/piter/zdebsky.pdfASP.NET 5 ASP.NET 4.6 WPF Windows Forms.NET Framework 4.6.NET Core 5 ASP.NET Core 5 .NET Native](https://reader034.fdocuments.net/reader034/viewer/2022042314/5f02c6a37e708231d405f406/html5/thumbnails/21.jpg)
.NET Core
NuGet используется повсеместно для .NET Core
![Page 22: Платформа .NET сегодня иpublic.jugru.org/dotnext/2015/piter/zdebsky.pdfASP.NET 5 ASP.NET 4.6 WPF Windows Forms.NET Framework 4.6.NET Core 5 ASP.NET Core 5 .NET Native](https://reader034.fdocuments.net/reader034/viewer/2022042314/5f02c6a37e708231d405f406/html5/thumbnails/22.jpg)
ASP.NET 5
.NET Framework 4.6 stack and libs .NET Core 5 stack and libs
Универсальный framework для MVC, Web API и SignalR
Полный .NET Framework для любых сценариев и полной поддержкой существующих библиотек
Компактный runtime, оптимизированный для серверных и облачных задач
Какая роль ASP.NET в общей истории?
![Page 23: Платформа .NET сегодня иpublic.jugru.org/dotnext/2015/piter/zdebsky.pdfASP.NET 5 ASP.NET 4.6 WPF Windows Forms.NET Framework 4.6.NET Core 5 ASP.NET Core 5 .NET Native](https://reader034.fdocuments.net/reader034/viewer/2022042314/5f02c6a37e708231d405f406/html5/thumbnails/23.jpg)
ASP.NET 5.0Оптимизирован для облака• Компактнее, быстрее, проще • Полностью спроектирован для облака и
кросс-платформенных сценариев
Модульный и открытый• Более гибкий с open source и
модульной реализацией
Улучшенные инструменты и библиотеки• Возможность быстрее получать
результат
![Page 24: Платформа .NET сегодня иpublic.jugru.org/dotnext/2015/piter/zdebsky.pdfASP.NET 5 ASP.NET 4.6 WPF Windows Forms.NET Framework 4.6.NET Core 5 ASP.NET Core 5 .NET Native](https://reader034.fdocuments.net/reader034/viewer/2022042314/5f02c6a37e708231d405f406/html5/thumbnails/24.jpg)
.NET 2015 Web и сервисы
Будущее .NET
.NET Native (для Windows 10) ▪ Оптимизировано для устройств ▪ Компиляция в машинный код ▪ Компактность, разные версии ▪ Для разных устройств
ASP.NET Core 5 ▪ Оптимизировано для облака ▪ Высокая производительность ▪ Компактность, разные версии ▪ Кросс-платформенность
Windows Store, WPF, Windows Forms, Windows Phone, Console apps.
ASP.NET 5 and ASP.NET 4.6 (Web Forms, MVC, Web Pages, Web API, SignalR) WCF
Клиент
След.поколение JIT (“RyuJIT”) SIMD (параллелизм)
Runtime Компиляторы.NET Compiler Platform (“Roslyn”) Инновации в языках
BCL и PCL Entity Framework
БиблиотекиОбщий слой
OSS
.NET Framework 4.6
.NET Core 5
![Page 25: Платформа .NET сегодня иpublic.jugru.org/dotnext/2015/piter/zdebsky.pdfASP.NET 5 ASP.NET 4.6 WPF Windows Forms.NET Framework 4.6.NET Core 5 ASP.NET Core 5 .NET Native](https://reader034.fdocuments.net/reader034/viewer/2022042314/5f02c6a37e708231d405f406/html5/thumbnails/25.jpg)
.NET 2015 Web и сервисы
Будущее .NET
.NET Native (для Windows 10) ▪ Оптимизировано для устройств ▪ Компиляция в машинный код ▪ Компактность, разные версии ▪ Для разных устройств
ASP.NET Core 5 ▪ Оптимизировано для облака ▪ Высокая производительность ▪ Компактность, разные версии ▪ Кросс-платформенность
Windows Store, WPF, Windows Forms, Windows Phone, Console apps.
ASP.NET 5 and ASP.NET 4.6 (Web Forms, MVC, Web Pages, Web API, SignalR) WCF
Клиент
След.поколение JIT (“RyuJIT”) SIMD (параллелизм)
Runtime Компиляторы.NET Compiler Platform (“Roslyn”) Инновации в языках
BCL и PCL Entity Framework
БиблиотекиОбщий слой
OSS
.NET Framework 4.6
.NET Core 5
![Page 26: Платформа .NET сегодня иpublic.jugru.org/dotnext/2015/piter/zdebsky.pdfASP.NET 5 ASP.NET 4.6 WPF Windows Forms.NET Framework 4.6.NET Core 5 ASP.NET Core 5 .NET Native](https://reader034.fdocuments.net/reader034/viewer/2022042314/5f02c6a37e708231d405f406/html5/thumbnails/26.jpg)
.NET 2015
.NET Framework vs .NET Core
Common
ASP.NET 5 ASP.NET 4.6 WPF Windows Forms
.NET Framework 4.6
.NET Core 5ASP.NET Core 5 .NET Native (для Windows 10) Windows desktop Windows mobile devices Windows embedded devices ASP.NET Core 5 для Mac и Linux
След.поколение JIT (“RyuJIT”) SIMD (параллелизм)
Runtime Компиляторы.NET Compiler Platform (“Roslyn”) Инновации в языках
BCL и PCL Entity Framework
Библиотеки
![Page 27: Платформа .NET сегодня иpublic.jugru.org/dotnext/2015/piter/zdebsky.pdfASP.NET 5 ASP.NET 4.6 WPF Windows Forms.NET Framework 4.6.NET Core 5 ASP.NET Core 5 .NET Native](https://reader034.fdocuments.net/reader034/viewer/2022042314/5f02c6a37e708231d405f406/html5/thumbnails/27.jpg)
.NET 2015 Web и сервисы
Будущее .NET
.NET Native (для Windows 10) ▪ Оптимизировано для устройств ▪ Компиляция в машинный код ▪ Компактность, разные версии ▪ Для разных устройств
ASP.NET Core 5 ▪ Оптимизировано для облака ▪ Высокая производительность ▪ Компактность, разные версии ▪ Кросс-платформенность
Windows Store, WPF, Windows Forms, Windows Phone, Console apps.
ASP.NET 5 and ASP.NET 4.6 (Web Forms, MVC, Web Pages, Web API, SignalR) WCF
Клиент
След.поколение JIT (“RyuJIT”) SIMD (параллелизм)
Runtime Компиляторы.NET Compiler Platform (“Roslyn”) Инновации в языках
BCL и PCL Entity Framework
БиблиотекиОбщий слой
OSS
.NET Framework 4.6
.NET Core 5
![Page 28: Платформа .NET сегодня иpublic.jugru.org/dotnext/2015/piter/zdebsky.pdfASP.NET 5 ASP.NET 4.6 WPF Windows Forms.NET Framework 4.6.NET Core 5 ASP.NET Core 5 .NET Native](https://reader034.fdocuments.net/reader034/viewer/2022042314/5f02c6a37e708231d405f406/html5/thumbnails/28.jpg)
.NET Native.NET Native Desktop CLR
Visual Studio Одинаковая комфортная разработка в Visual Studio на обоих платформах
Библиотеки, Interop и сериализация
Библиотеки оптимизированы для современных профилей устройств и облака. Генерация кода для сериализации во время компиляции.
Библиотеки работают на широком диапазоне устройств и в облаке. Сериализация и интероперабельность поддерживаются средой выполнения.
Компоновка (linking)
Статическая компоновка требуемых библиотек, позволяет улучшить производительность и совместимость
Не предназначена для статической компоновки. Библиотеки разделяются всеми приложениями.
Оптимизиру-ющая компиляция
Используется оптимизирующий backend компилятора C++
JIT-компилятор должен работать быстро, нет возможности производить сложную оптимизацию
Среда выполнения (runtime)
Компактная нативная среда выполнения со сборкой мусора и безопасностью памяти.
Богатая среда выполнения, поддерживающая большое количество современных и устаревших сценариев.
![Page 29: Платформа .NET сегодня иpublic.jugru.org/dotnext/2015/piter/zdebsky.pdfASP.NET 5 ASP.NET 4.6 WPF Windows Forms.NET Framework 4.6.NET Core 5 ASP.NET Core 5 .NET Native](https://reader034.fdocuments.net/reader034/viewer/2022042314/5f02c6a37e708231d405f406/html5/thumbnails/29.jpg)
Зачем нужен .NET Native?Поддержка мобильных клиентов • .NET Framework поддерживает широкий спектр устройств с богатой
функциональностью • 1.8 миллиардов компьютеров используют Desktop .NET, поставляется
вместе с ОС • .NET должен эффективно работать на смартфонах и менее
производительных устройствах. Обновления библиотек не нарушают работу приложений • .NET Native обеспечивает статическую сборку большинства библиотек • Можно использовать обновления библиотек в своем ритме • Инновации в библиотеках осуществляются синхронно для всех устройств • Windows Update не повлияет на работу вашего приложения
![Page 30: Платформа .NET сегодня иpublic.jugru.org/dotnext/2015/piter/zdebsky.pdfASP.NET 5 ASP.NET 4.6 WPF Windows Forms.NET Framework 4.6.NET Core 5 ASP.NET Core 5 .NET Native](https://reader034.fdocuments.net/reader034/viewer/2022042314/5f02c6a37e708231d405f406/html5/thumbnails/30.jpg)
Как работает .NET Native
Source Code App.exe (MSIL)
App.exe (machine code)
Language Compiler
App.dll (machine code)
.NET Native (ILC.exe)
![Page 31: Платформа .NET сегодня иpublic.jugru.org/dotnext/2015/piter/zdebsky.pdfASP.NET 5 ASP.NET 4.6 WPF Windows Forms.NET Framework 4.6.NET Core 5 ASP.NET Core 5 .NET Native](https://reader034.fdocuments.net/reader034/viewer/2022042314/5f02c6a37e708231d405f406/html5/thumbnails/31.jpg)
Как использовать?
![Page 32: Платформа .NET сегодня иpublic.jugru.org/dotnext/2015/piter/zdebsky.pdfASP.NET 5 ASP.NET 4.6 WPF Windows Forms.NET Framework 4.6.NET Core 5 ASP.NET Core 5 .NET Native](https://reader034.fdocuments.net/reader034/viewer/2022042314/5f02c6a37e708231d405f406/html5/thumbnails/32.jpg)
Результаты
![Page 33: Платформа .NET сегодня иpublic.jugru.org/dotnext/2015/piter/zdebsky.pdfASP.NET 5 ASP.NET 4.6 WPF Windows Forms.NET Framework 4.6.NET Core 5 ASP.NET Core 5 .NET Native](https://reader034.fdocuments.net/reader034/viewer/2022042314/5f02c6a37e708231d405f406/html5/thumbnails/33.jpg)
.NET Native
![Page 34: Платформа .NET сегодня иpublic.jugru.org/dotnext/2015/piter/zdebsky.pdfASP.NET 5 ASP.NET 4.6 WPF Windows Forms.NET Framework 4.6.NET Core 5 ASP.NET Core 5 .NET Native](https://reader034.fdocuments.net/reader034/viewer/2022042314/5f02c6a37e708231d405f406/html5/thumbnails/34.jpg)
RyuJIT vs .NET NativeRyuJIT – новое поколение JIT-компиляторов • Разные JIT-компиляторы в .NET x64 и x86 • X86 – для клиента, x64 – для облака • Более длительное время запуска в случае x64, качественнее оптимизация на основе
C++-компилятора
• RyuJIT основан на ядре x86 и обеспечивает быстрый старт для клиентских устройств
• Текущая версия – только x64, в будущем станет One True JIT Compiler for the .NET Platform
![Page 35: Платформа .NET сегодня иpublic.jugru.org/dotnext/2015/piter/zdebsky.pdfASP.NET 5 ASP.NET 4.6 WPF Windows Forms.NET Framework 4.6.NET Core 5 ASP.NET Core 5 .NET Native](https://reader034.fdocuments.net/reader034/viewer/2022042314/5f02c6a37e708231d405f406/html5/thumbnails/35.jpg)
Кодогенерация Свой JIT-компилятор для каждой архитектуры
64-bit JIT концентрируется на качестве оптимизации для серверных сценариев 32-bit JITs концентрируется на скорости компиляции для приложений Два кодогенератора
NGen работает на клиенте, при установке или перед запуском Triton работает в облаке в Windows Phone 8 Store, приложения связываются с библиотеками при установке
Одна среда выполнения для всех сценариев Desktop CLR для клиента и сервера (разные режимы сборки мусора) CoreCLR для мобильных клиентов и целевых серверных задач (тот же исходный код)
Выполнение кода в CLR 4.5
![Page 36: Платформа .NET сегодня иpublic.jugru.org/dotnext/2015/piter/zdebsky.pdfASP.NET 5 ASP.NET 4.6 WPF Windows Forms.NET Framework 4.6.NET Core 5 ASP.NET Core 5 .NET Native](https://reader034.fdocuments.net/reader034/viewer/2022042314/5f02c6a37e708231d405f406/html5/thumbnails/36.jpg)
Выполнение кода в .NET 2015
Удобство C# с производительностью C++
C# с поддержкой динамических сценариев
RyuJIT & CLR VM.NET Native
Сегодня: Одна среда выполнения для всех сценариев Завтра: Улучшенная среда выполнения с различными стратегиями выполнения для экстремальных случаев.
![Page 37: Платформа .NET сегодня иpublic.jugru.org/dotnext/2015/piter/zdebsky.pdfASP.NET 5 ASP.NET 4.6 WPF Windows Forms.NET Framework 4.6.NET Core 5 ASP.NET Core 5 .NET Native](https://reader034.fdocuments.net/reader034/viewer/2022042314/5f02c6a37e708231d405f406/html5/thumbnails/37.jpg)
.NET 2015 Web и сервисы
Будущее .NET
.NET Native (для Windows 10) ▪ Оптимизировано для устройств ▪ Компиляция в машинный код ▪ Компактность, разные версии ▪ Для разных устройств
ASP.NET Core 5 ▪ Оптимизировано для облака ▪ Высокая производительность ▪ Компактность, разные версии ▪ Кросс-платформенность
Windows Store, WPF, Windows Forms, Windows Phone, Console apps.
ASP.NET 5 and ASP.NET 4.6 (Web Forms, MVC, Web Pages, Web API, SignalR) WCF
Клиент
След.поколение JIT (“RyuJIT”) SIMD (параллелизм)
Runtime Компиляторы.NET Compiler Platform (“Roslyn”) Инновации в языках
BCL и PCL Entity Framework
БиблиотекиОбщий слой
OSS
.NET Framework 4.6
.NET Core 5
![Page 38: Платформа .NET сегодня иpublic.jugru.org/dotnext/2015/piter/zdebsky.pdfASP.NET 5 ASP.NET 4.6 WPF Windows Forms.NET Framework 4.6.NET Core 5 ASP.NET Core 5 .NET Native](https://reader034.fdocuments.net/reader034/viewer/2022042314/5f02c6a37e708231d405f406/html5/thumbnails/38.jpg)
.NET - Open SourceВсе проекты обновлены до MIT License
Проекты • ASP.NET 5 • Entity Framework • .NET Core 5 • .NET Compiler Platform • + проекты сообщества
Как участвовать • .NET Foundation • GitHub
![Page 39: Платформа .NET сегодня иpublic.jugru.org/dotnext/2015/piter/zdebsky.pdfASP.NET 5 ASP.NET 4.6 WPF Windows Forms.NET Framework 4.6.NET Core 5 ASP.NET Core 5 .NET Native](https://reader034.fdocuments.net/reader034/viewer/2022042314/5f02c6a37e708231d405f406/html5/thumbnails/39.jpg)
Кросс-платформенная реализация .NET Core
.NET Core будет реализован на различных платформах
Поддержка Linux и Mac от Microsoft c Mono
Поддержка Linux в Visual Studio (напр., отладка, Docker)
Интеграция с Sublime через Kulture
![Page 40: Платформа .NET сегодня иpublic.jugru.org/dotnext/2015/piter/zdebsky.pdfASP.NET 5 ASP.NET 4.6 WPF Windows Forms.NET Framework 4.6.NET Core 5 ASP.NET Core 5 .NET Native](https://reader034.fdocuments.net/reader034/viewer/2022042314/5f02c6a37e708231d405f406/html5/thumbnails/40.jpg)
.NET 2015 Web и сервисы
Будущее .NET
.NET Native (для Windows 10) ▪ Оптимизировано для устройств ▪ Компиляция в машинный код ▪ Компактность, разные версии ▪ Для разных устройств
ASP.NET Core 5 ▪ Оптимизировано для облака ▪ Высокая производительность ▪ Компактность, разные версии ▪ Кросс-платформенность
Windows Store, WPF, Windows Forms, Windows Phone, Console apps.
ASP.NET 5 and ASP.NET 4.6 (Web Forms, MVC, Web Pages, Web API, SignalR) WCF
Клиент
След.поколение JIT (“RyuJIT”) SIMD (параллелизм)
Runtime Компиляторы.NET Compiler Platform (“Roslyn”) Инновации в языках
BCL и PCL Entity Framework
БиблиотекиОбщий слой
OSS
.NET Framework 4.6
.NET Core 5
![Page 41: Платформа .NET сегодня иpublic.jugru.org/dotnext/2015/piter/zdebsky.pdfASP.NET 5 ASP.NET 4.6 WPF Windows Forms.NET Framework 4.6.NET Core 5 ASP.NET Core 5 .NET Native](https://reader034.fdocuments.net/reader034/viewer/2022042314/5f02c6a37e708231d405f406/html5/thumbnails/41.jpg)
.NET 2015
Языки и IDE
Расширения VS
Open SourceOSS
API
C#
VB
Следующее поколение компиляторов .NET
Новое открытое API Богатые инструменты в IDE (рефакторинг) Анализ / диагностика кода C#/VB (для F# - Folsyn) Компиляторы с открытым исходным кодом
.NET Compiler Platform (“Roslyn”)
![Page 42: Платформа .NET сегодня иpublic.jugru.org/dotnext/2015/piter/zdebsky.pdfASP.NET 5 ASP.NET 4.6 WPF Windows Forms.NET Framework 4.6.NET Core 5 ASP.NET Core 5 .NET Native](https://reader034.fdocuments.net/reader034/viewer/2022042314/5f02c6a37e708231d405f406/html5/thumbnails/42.jpg)
Философия версии 6.0:
Нет драматических изменений Много небольших улучшений Упрощение кода
Что нового в C# 6.0
![Page 43: Платформа .NET сегодня иpublic.jugru.org/dotnext/2015/piter/zdebsky.pdfASP.NET 5 ASP.NET 4.6 WPF Windows Forms.NET Framework 4.6.NET Core 5 ASP.NET Core 5 .NET Native](https://reader034.fdocuments.net/reader034/viewer/2022042314/5f02c6a37e708231d405f406/html5/thumbnails/43.jpg)
Автоматические свойства «только для чтения»
public class Point { public int X { get; set; } public int Y { get; set; } public Point(int x, int y) { X = x; Y = y; }
public double Dist
{ get { return Math.Sqrt(X * X + Y * Y); } } public override string ToString()
{ return String.Format("({0}, {1})", X, Y); } }
![Page 44: Платформа .NET сегодня иpublic.jugru.org/dotnext/2015/piter/zdebsky.pdfASP.NET 5 ASP.NET 4.6 WPF Windows Forms.NET Framework 4.6.NET Core 5 ASP.NET Core 5 .NET Native](https://reader034.fdocuments.net/reader034/viewer/2022042314/5f02c6a37e708231d405f406/html5/thumbnails/44.jpg)
public class Point { public int X { get; } public int Y { get; } public Point(int x, int y) { X = x; Y = y; }
public double Dist
{ get { return Math.Sqrt(X * X + Y * Y); } } public override string ToString()
{ return String.Format("({0}, {1})", X, Y); } }
Автоматические свойства «только для чтения»
![Page 45: Платформа .NET сегодня иpublic.jugru.org/dotnext/2015/piter/zdebsky.pdfASP.NET 5 ASP.NET 4.6 WPF Windows Forms.NET Framework 4.6.NET Core 5 ASP.NET Core 5 .NET Native](https://reader034.fdocuments.net/reader034/viewer/2022042314/5f02c6a37e708231d405f406/html5/thumbnails/45.jpg)
public class Point { public int X { get; } public int Y { get; } public Point(int x, int y) { X = x; Y = y; }
public double Dist
{ get { return Math.Sqrt(X * X + Y * Y); } } public override string ToString()
{ return String.Format("({0}, {1})", X, Y); } }
Автоматические свойства «только для чтения»
![Page 46: Платформа .NET сегодня иpublic.jugru.org/dotnext/2015/piter/zdebsky.pdfASP.NET 5 ASP.NET 4.6 WPF Windows Forms.NET Framework 4.6.NET Core 5 ASP.NET Core 5 .NET Native](https://reader034.fdocuments.net/reader034/viewer/2022042314/5f02c6a37e708231d405f406/html5/thumbnails/46.jpg)
Инициализаторы свойств
public class Point { public int X { get; } = 5; public int Y { get; } = 7; public Point(int x, int y) { X = x; Y = y; }
public double Dist
{ get { return Math.Sqrt(X * X + Y * Y); } } public override string ToString()
{ return String.Format("({0}, {1})", X, Y); } }
![Page 47: Платформа .NET сегодня иpublic.jugru.org/dotnext/2015/piter/zdebsky.pdfASP.NET 5 ASP.NET 4.6 WPF Windows Forms.NET Framework 4.6.NET Core 5 ASP.NET Core 5 .NET Native](https://reader034.fdocuments.net/reader034/viewer/2022042314/5f02c6a37e708231d405f406/html5/thumbnails/47.jpg)
Статические классы и usingusing System.Math;
public class Point { public int X { get; } public int Y { get; } public Point(int x, int y) { X = x; Y = y; }
public double Dist
{ get { return Math.Sqrt(X * X + Y * Y); } } public override string ToString()
{ return String.Format("({0}, {1})", X, Y); } }
![Page 48: Платформа .NET сегодня иpublic.jugru.org/dotnext/2015/piter/zdebsky.pdfASP.NET 5 ASP.NET 4.6 WPF Windows Forms.NET Framework 4.6.NET Core 5 ASP.NET Core 5 .NET Native](https://reader034.fdocuments.net/reader034/viewer/2022042314/5f02c6a37e708231d405f406/html5/thumbnails/48.jpg)
Статические классы и usingusing System.Math;
public class Point { public int X { get; } public int Y { get; } public Point(int x, int y) { X = x; Y = y; }
public double Dist
{ get { return Math.Sqrt(X * X + Y * Y); } } public override string ToString()
{ return String.Format("({0}, {1})", X, Y); } }
![Page 49: Платформа .NET сегодня иpublic.jugru.org/dotnext/2015/piter/zdebsky.pdfASP.NET 5 ASP.NET 4.6 WPF Windows Forms.NET Framework 4.6.NET Core 5 ASP.NET Core 5 .NET Native](https://reader034.fdocuments.net/reader034/viewer/2022042314/5f02c6a37e708231d405f406/html5/thumbnails/49.jpg)
Статические классы и usingusing System.Math;
public class Point { public int X { get; } public int Y { get; } public Point(int x, int y) { X = x; Y = y; }
public double Dist
{ get { return Sqrt(X * X + Y * Y); } } public override string ToString()
{ return String.Format("({0}, {1})", X, Y); } }
![Page 50: Платформа .NET сегодня иpublic.jugru.org/dotnext/2015/piter/zdebsky.pdfASP.NET 5 ASP.NET 4.6 WPF Windows Forms.NET Framework 4.6.NET Core 5 ASP.NET Core 5 .NET Native](https://reader034.fdocuments.net/reader034/viewer/2022042314/5f02c6a37e708231d405f406/html5/thumbnails/50.jpg)
Интерполяция строкusing System.Math;
public class Point { public int X { get; } public int Y { get; } public Point(int x, int y) { X = x; Y = y; }
public double Dist
{ get { return Sqrt(X * X + Y * Y); } } public override string ToString()
{ return String.Format("({0}, {1})", X, Y); } }
![Page 51: Платформа .NET сегодня иpublic.jugru.org/dotnext/2015/piter/zdebsky.pdfASP.NET 5 ASP.NET 4.6 WPF Windows Forms.NET Framework 4.6.NET Core 5 ASP.NET Core 5 .NET Native](https://reader034.fdocuments.net/reader034/viewer/2022042314/5f02c6a37e708231d405f406/html5/thumbnails/51.jpg)
Интерполяция строкusing System.Math;
public class Point { public int X { get; } public int Y { get; } public Point(int x, int y) { X = x; Y = y; }
public double Dist
{ get { return Sqrt(X * X + Y * Y); } } public override string ToString()
{ return "(\{X}, \{Y})"; } }
![Page 52: Платформа .NET сегодня иpublic.jugru.org/dotnext/2015/piter/zdebsky.pdfASP.NET 5 ASP.NET 4.6 WPF Windows Forms.NET Framework 4.6.NET Core 5 ASP.NET Core 5 .NET Native](https://reader034.fdocuments.net/reader034/viewer/2022042314/5f02c6a37e708231d405f406/html5/thumbnails/52.jpg)
Методы-выраженияusing System.Math;
public class Point { public int X { get; } public int Y { get; } public Point(int x, int y) { X = x; Y = y; }
public double Dist
{ get { return Sqrt(X * X + Y * Y); } } public override string ToString()
{ return "(\{X}, \{Y})"; } }
![Page 53: Платформа .NET сегодня иpublic.jugru.org/dotnext/2015/piter/zdebsky.pdfASP.NET 5 ASP.NET 4.6 WPF Windows Forms.NET Framework 4.6.NET Core 5 ASP.NET Core 5 .NET Native](https://reader034.fdocuments.net/reader034/viewer/2022042314/5f02c6a37e708231d405f406/html5/thumbnails/53.jpg)
Методы-выраженияusing System.Math;
public class Point { public int X { get; } public int Y { get; } public Point(int x, int y) { X = x; Y = y; }
public double Dist
{ get { return Sqrt(X * X + Y * Y); } } public override string ToString() => "(\{X}, \{Y})";
}
![Page 54: Платформа .NET сегодня иpublic.jugru.org/dotnext/2015/piter/zdebsky.pdfASP.NET 5 ASP.NET 4.6 WPF Windows Forms.NET Framework 4.6.NET Core 5 ASP.NET Core 5 .NET Native](https://reader034.fdocuments.net/reader034/viewer/2022042314/5f02c6a37e708231d405f406/html5/thumbnails/54.jpg)
Свойства-выраженияusing System.Math;
public class Point { public int X { get; } public int Y { get; } public Point(int x, int y) { X = x; Y = y; }
public double Dist
{ get { return Sqrt(X * X + Y * Y); } } public override string ToString() => "(\{X}, \{Y})";
}
![Page 55: Платформа .NET сегодня иpublic.jugru.org/dotnext/2015/piter/zdebsky.pdfASP.NET 5 ASP.NET 4.6 WPF Windows Forms.NET Framework 4.6.NET Core 5 ASP.NET Core 5 .NET Native](https://reader034.fdocuments.net/reader034/viewer/2022042314/5f02c6a37e708231d405f406/html5/thumbnails/55.jpg)
Свойства-выраженияusing System.Math;
public class Point { public int X { get; } public int Y { get; } public Point(int x, int y) { X = x; Y = y; }
public double Dist => Sqrt(X * X + Y * Y);
public override string ToString() => "(\{X}, \{Y})";
}
![Page 56: Платформа .NET сегодня иpublic.jugru.org/dotnext/2015/piter/zdebsky.pdfASP.NET 5 ASP.NET 4.6 WPF Windows Forms.NET Framework 4.6.NET Core 5 ASP.NET Core 5 .NET Native](https://reader034.fdocuments.net/reader034/viewer/2022042314/5f02c6a37e708231d405f406/html5/thumbnails/56.jpg)
Свойства-выраженияusing System.Math;
public class Point { public int X { get; } public int Y { get; } public Point(int x, int y) { X = x; Y = y; }
public double Dist => Sqrt(X * X + Y * Y);
public override string ToString() => "(\{X}, \{Y})";
}
![Page 57: Платформа .NET сегодня иpublic.jugru.org/dotnext/2015/piter/zdebsky.pdfASP.NET 5 ASP.NET 4.6 WPF Windows Forms.NET Framework 4.6.NET Core 5 ASP.NET Core 5 .NET Native](https://reader034.fdocuments.net/reader034/viewer/2022042314/5f02c6a37e708231d405f406/html5/thumbnails/57.jpg)
Индексные инициализаторыpublic class Point { public int X { get; } public int Y { get; } …
public JObject ToJson()
{
var result = new JObject();
result["x"] = X;
result["y"] = Y;
return result;
} }
![Page 58: Платформа .NET сегодня иpublic.jugru.org/dotnext/2015/piter/zdebsky.pdfASP.NET 5 ASP.NET 4.6 WPF Windows Forms.NET Framework 4.6.NET Core 5 ASP.NET Core 5 .NET Native](https://reader034.fdocuments.net/reader034/viewer/2022042314/5f02c6a37e708231d405f406/html5/thumbnails/58.jpg)
Индексные инициализаторыpublic class Point { public int X { get; } public int Y { get; } …
public JObject ToJson()
{
var result = new JObject() { ["x"] = X, ["y"] = Y };
return result;
} }
![Page 59: Платформа .NET сегодня иpublic.jugru.org/dotnext/2015/piter/zdebsky.pdfASP.NET 5 ASP.NET 4.6 WPF Windows Forms.NET Framework 4.6.NET Core 5 ASP.NET Core 5 .NET Native](https://reader034.fdocuments.net/reader034/viewer/2022042314/5f02c6a37e708231d405f406/html5/thumbnails/59.jpg)
Индексные инициализаторыpublic class Point { public int X { get; } public int Y { get; } …
public JObject ToJson()
{
return new JObject() { ["x"] = X, ["y"] = Y };
} }
![Page 60: Платформа .NET сегодня иpublic.jugru.org/dotnext/2015/piter/zdebsky.pdfASP.NET 5 ASP.NET 4.6 WPF Windows Forms.NET Framework 4.6.NET Core 5 ASP.NET Core 5 .NET Native](https://reader034.fdocuments.net/reader034/viewer/2022042314/5f02c6a37e708231d405f406/html5/thumbnails/60.jpg)
Индексные инициализаторыpublic class Point { public int X { get; } public int Y { get; } …
public JObject ToJson() =>
new JObject() { ["x"] = X, ["y"] = Y }; }
![Page 61: Платформа .NET сегодня иpublic.jugru.org/dotnext/2015/piter/zdebsky.pdfASP.NET 5 ASP.NET 4.6 WPF Windows Forms.NET Framework 4.6.NET Core 5 ASP.NET Core 5 .NET Native](https://reader034.fdocuments.net/reader034/viewer/2022042314/5f02c6a37e708231d405f406/html5/thumbnails/61.jpg)
Борьба с Null Reference Exceptionpublic static Point FromJson(JObject json)
{
if (json != null && json["x"] != null &&
json["x"].Type == JTokenType.Integer &&
json["y"] != null &&
json["y"].Type == JTokenType.Integer)
{
return new Point((int)json["x"], (int)json["y"]);
}
return null;
}
![Page 62: Платформа .NET сегодня иpublic.jugru.org/dotnext/2015/piter/zdebsky.pdfASP.NET 5 ASP.NET 4.6 WPF Windows Forms.NET Framework 4.6.NET Core 5 ASP.NET Core 5 .NET Native](https://reader034.fdocuments.net/reader034/viewer/2022042314/5f02c6a37e708231d405f406/html5/thumbnails/62.jpg)
Условные null-операторыpublic static Point FromJson(JObject json)
{
if (json != null && json["x"]?.Type == JTokenType.Integer &&
json["y"]?.Type == JTokenType.Integer)
{
return new Point((int)json["x"], (int)json["y"]);
}
return null;
}
![Page 63: Платформа .NET сегодня иpublic.jugru.org/dotnext/2015/piter/zdebsky.pdfASP.NET 5 ASP.NET 4.6 WPF Windows Forms.NET Framework 4.6.NET Core 5 ASP.NET Core 5 .NET Native](https://reader034.fdocuments.net/reader034/viewer/2022042314/5f02c6a37e708231d405f406/html5/thumbnails/63.jpg)
Условные null-операторыpublic static Point FromJson(JObject json)
{
if (json?["x"]?.Type == JTokenType.Integer &&
json?["y"]?.Type == JTokenType.Integer)
{
return new Point((int)json["x"], (int)json["y"]);
}
return null;
}
![Page 64: Платформа .NET сегодня иpublic.jugru.org/dotnext/2015/piter/zdebsky.pdfASP.NET 5 ASP.NET 4.6 WPF Windows Forms.NET Framework 4.6.NET Core 5 ASP.NET Core 5 .NET Native](https://reader034.fdocuments.net/reader034/viewer/2022042314/5f02c6a37e708231d405f406/html5/thumbnails/64.jpg)
Фильтры исключенийtry
{
…
}
catch (ConfigurationException e)
{
}
finally
{
}
![Page 65: Платформа .NET сегодня иpublic.jugru.org/dotnext/2015/piter/zdebsky.pdfASP.NET 5 ASP.NET 4.6 WPF Windows Forms.NET Framework 4.6.NET Core 5 ASP.NET Core 5 .NET Native](https://reader034.fdocuments.net/reader034/viewer/2022042314/5f02c6a37e708231d405f406/html5/thumbnails/65.jpg)
Фильтры исключенийtry
{
…
}
catch (ConfigurationException e) if (e.IsSevere)
{
}
finally
{
}
![Page 66: Платформа .NET сегодня иpublic.jugru.org/dotnext/2015/piter/zdebsky.pdfASP.NET 5 ASP.NET 4.6 WPF Windows Forms.NET Framework 4.6.NET Core 5 ASP.NET Core 5 .NET Native](https://reader034.fdocuments.net/reader034/viewer/2022042314/5f02c6a37e708231d405f406/html5/thumbnails/66.jpg)
Await в catch и finallytry
{
…
}
catch (ConfigurationException e) if (e.IsSevere)
{
await LogAsync(e);
}
finally
{
await CloseAsync();
}
![Page 67: Платформа .NET сегодня иpublic.jugru.org/dotnext/2015/piter/zdebsky.pdfASP.NET 5 ASP.NET 4.6 WPF Windows Forms.NET Framework 4.6.NET Core 5 ASP.NET Core 5 .NET Native](https://reader034.fdocuments.net/reader034/viewer/2022042314/5f02c6a37e708231d405f406/html5/thumbnails/67.jpg)
Функциональное программирование на платформе .NET
Много улучшений в функциональном стиле в C# Язык преимущественно-функционального программирования F#
![Page 68: Платформа .NET сегодня иpublic.jugru.org/dotnext/2015/piter/zdebsky.pdfASP.NET 5 ASP.NET 4.6 WPF Windows Forms.NET Framework 4.6.NET Core 5 ASP.NET Core 5 .NET Native](https://reader034.fdocuments.net/reader034/viewer/2022042314/5f02c6a37e708231d405f406/html5/thumbnails/68.jpg)
Что включает в себя .NET 2015
C# 6 Roslyn .NET Framework 4.6 ASP.NET 5 .NET Native .NET Core 5
![Page 69: Платформа .NET сегодня иpublic.jugru.org/dotnext/2015/piter/zdebsky.pdfASP.NET 5 ASP.NET 4.6 WPF Windows Forms.NET Framework 4.6.NET Core 5 ASP.NET Core 5 .NET Native](https://reader034.fdocuments.net/reader034/viewer/2022042314/5f02c6a37e708231d405f406/html5/thumbnails/69.jpg)
Кросс-платформенный .NET
![Page 70: Платформа .NET сегодня иpublic.jugru.org/dotnext/2015/piter/zdebsky.pdfASP.NET 5 ASP.NET 4.6 WPF Windows Forms.NET Framework 4.6.NET Core 5 ASP.NET Core 5 .NET Native](https://reader034.fdocuments.net/reader034/viewer/2022042314/5f02c6a37e708231d405f406/html5/thumbnails/70.jpg)
![Page 71: Платформа .NET сегодня иpublic.jugru.org/dotnext/2015/piter/zdebsky.pdfASP.NET 5 ASP.NET 4.6 WPF Windows Forms.NET Framework 4.6.NET Core 5 ASP.NET Core 5 .NET Native](https://reader034.fdocuments.net/reader034/viewer/2022042314/5f02c6a37e708231d405f406/html5/thumbnails/71.jpg)
Кросс-платформенный .NET
Mono
Кросс-платформенный .NET Core Мобильная разработка и партнерство .NET/Xamarin
.NET Xamarin
Unity
Сервисы и Веб-приложения Мобильные приложения
Windows Linux Mac OS X
.NET Core
ASP.NET 5
![Page 72: Платформа .NET сегодня иpublic.jugru.org/dotnext/2015/piter/zdebsky.pdfASP.NET 5 ASP.NET 4.6 WPF Windows Forms.NET Framework 4.6.NET Core 5 ASP.NET Core 5 .NET Native](https://reader034.fdocuments.net/reader034/viewer/2022042314/5f02c6a37e708231d405f406/html5/thumbnails/72.jpg)
.NET и XamarinОбщая логика между платформами• Нативные приложения Windows, iOS и
Android на .NET
• Продуктивная и мощная платформа для создания нативных приложений
• Максимизация переиспользования кода с Universal Projects & Portable Class Libraries
100% APIs доступно• Все, что вы можете сделать в xCode или ADT
вы можете сделать в Visual Studio
z
C# + XIB C# + AXML C# + XAML
Нативный UI Нативный UI Нативный UI
Общая клиентская логика на C#
Xamarin .NET Core
![Page 73: Платформа .NET сегодня иpublic.jugru.org/dotnext/2015/piter/zdebsky.pdfASP.NET 5 ASP.NET 4.6 WPF Windows Forms.NET Framework 4.6.NET Core 5 ASP.NET Core 5 .NET Native](https://reader034.fdocuments.net/reader034/viewer/2022042314/5f02c6a37e708231d405f406/html5/thumbnails/73.jpg)
Phone Small Tablet
2-in-1s (Tablet or Laptop)
Desktops & All-in-Ones
Phablet LargeTablet
Classic Laptop
Xbox
IoT
Microsoft Surface Hub
Windows 10 для широкого спектра устройств… Devices Platform
HoloLens
![Page 74: Платформа .NET сегодня иpublic.jugru.org/dotnext/2015/piter/zdebsky.pdfASP.NET 5 ASP.NET 4.6 WPF Windows Forms.NET Framework 4.6.NET Core 5 ASP.NET Core 5 .NET Native](https://reader034.fdocuments.net/reader034/viewer/2022042314/5f02c6a37e708231d405f406/html5/thumbnails/74.jpg)
MICROSOFT CONFIDENTIAL
![Page 75: Платформа .NET сегодня иpublic.jugru.org/dotnext/2015/piter/zdebsky.pdfASP.NET 5 ASP.NET 4.6 WPF Windows Forms.NET Framework 4.6.NET Core 5 ASP.NET Core 5 .NET Native](https://reader034.fdocuments.net/reader034/viewer/2022042314/5f02c6a37e708231d405f406/html5/thumbnails/75.jpg)
MICROSOFT CONFIDENTIAL
![Page 76: Платформа .NET сегодня иpublic.jugru.org/dotnext/2015/piter/zdebsky.pdfASP.NET 5 ASP.NET 4.6 WPF Windows Forms.NET Framework 4.6.NET Core 5 ASP.NET Core 5 .NET Native](https://reader034.fdocuments.net/reader034/viewer/2022042314/5f02c6a37e708231d405f406/html5/thumbnails/76.jpg)
РесурсыПолезные ссылки http://blogs.msdn.com/b/dotnet/archive/2014/11/12/announcing-net-2015-preview-a-new-era-for-net.aspx
http://www.buildwindows.com
![Page 77: Платформа .NET сегодня иpublic.jugru.org/dotnext/2015/piter/zdebsky.pdfASP.NET 5 ASP.NET 4.6 WPF Windows Forms.NET Framework 4.6.NET Core 5 ASP.NET Core 5 .NET Native](https://reader034.fdocuments.net/reader034/viewer/2022042314/5f02c6a37e708231d405f406/html5/thumbnails/77.jpg)
Ромуальд Здебский Руководитель направления по мобильным играм, Microsoft
Платформа .NET сегодня и завтра
![Page 78: Платформа .NET сегодня иpublic.jugru.org/dotnext/2015/piter/zdebsky.pdfASP.NET 5 ASP.NET 4.6 WPF Windows Forms.NET Framework 4.6.NET Core 5 ASP.NET Core 5 .NET Native](https://reader034.fdocuments.net/reader034/viewer/2022042314/5f02c6a37e708231d405f406/html5/thumbnails/78.jpg)
©2015 Microsoft Corporation. All rights reserved. Microsoft, Windows, Office, Azure, System Center, Dynamics and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.