Кроссплатформенный .NET и как там дела с
Mono и CoreCLR
Андрей Акиньшин, JetBrains
Dump, Екатеринбург, 14.04.2017
1/27
Краткое содержание доклада
Кроссплатформенные .NET приложения
писать можно, но сложно.
2/27
Экскурс в историю
3/27 Экскурс в историю
Сначала был полный .NET Framework
4/27 Экскурс в историю
Сначала был полный .NET Framework
Версия Дата
1.0 2002-02-13
1.1 2003-04-24
2.0 2005-11-07
3.0 2006-11-06
3.5 2007-11-19
4.0 2010-04-12
4.5 2012-08-15
4.5.1 2013-10-17
4.5.2 2014-05-05
4.6 2015-07-20
4.6.1 2015-11-30
4.6.2 2016-08-02
4.7 2017-04-05
4/27 Экскурс в историю
А потом был Mono
5/27 Экскурс в историю
А потом был Mono
Версия Дата
Launch 2001-07-19
1.0.0 2004-06-30
2.0.0 2008-10-01
3.0.0 2012-10-19
4.0.0 2015-04-29
4.8.1 2017-04-11
5.0.0 not released yet
5/27 Экскурс в историю
А потом появился .NET Core
6/27 Экскурс в историю
А потом появился .NET Core
Версия Дата
1.0.0 RC1 2015-11-18
1.0.0 RC2 2016-05-16
1.0.0 2016-06-27
1.1.0 2016-11-16
1.0.4 2017-03-07
1.1.1 2017-03-07
2.0.0 2017 Q3
6/27 Экскурс в историю
Вид сверху
7/27 Экскурс в историю
Поговорим про Mono
8/27 Поговорим про Mono
Mono: сферы применения
• Backend/Desktop apps
• Xamarin
• Unity
9/27 Поговорим про Mono
Пример из реальной жизни: Rider
10/27 Поговорим про Mono
Bug story: именованные мьютексы
11/27 Поговорим про Mono
Bug story: слишком много интерфейсов
12/27 Поговорим про Mono
Bug story: слишком много интерфейсов
12/27 Поговорим про Mono
Mono: идём верной дорогой
13/27 Поговорим про Mono
Поговорим про CoreCLR
14/27 Поговорим про CoreCLR
CoreCLR: сферы применения
• UWP
• ASP.NET Core
• xplat tools
15/27 Поговорим про CoreCLR
CoreCLR: рантайм vs тулинг
Китайская пословица
Не дай вам бог жить во времена перемен.
16/27 Поговорим про CoreCLR
Bug story: Process.GetProcesses
17/27 Поговорим про CoreCLR
CoreCLR: идём верной дорогой
18/27 Поговорим про CoreCLR
CoreCLR: faster than ever
19/27 Поговорим про CoreCLR
CoreCLR: открытые внутренности
http://mattwarren.org/2017/04/13/The-CLR-Thread-Pool-Thread-Injection-Algorithm/
20/27 Поговорим про CoreCLR
Поговорим про разработчиков
21/27 Поговорим про разработчиков
Bleeding edge — это тяжело
22/27 Поговорим про разработчиков
Xplat-код писать тяжело
23/27 Поговорим про разработчиков
Состояние дел на сегодня
Всё скорее всего будет хорошо,
если вы не используете:
• Многопоточность
• Сеть
• Диск
• Дату/Время
• Криптографию
• Локализацию
• Любые OS-specific штуки
24/27 Поговорим про разработчиков
Состояние дел на сегодня
Всё скорее всего будет хорошо,
если вы не используете:
• Многопоточность
• Сеть
• Диск
• Дату/Время
• Криптографию
• Локализацию
• Любые OS-specific штуки
А если используете, то при большом желании
тоже можно сделать всё хорошо
24/27 Поговорим про разработчиков
Заключение
25/27 Заключение
Методическая литература
Самую актуальную информацию можно найти тут:
• https://github.com/dotnet/coreclr/
• https://github.com/dotnet/corefx/
• https://github.com/mono/mono/
26/27 Заключение
Вопросы?
Андрей Акиньшин
http://aakinshin.net
https://github.com/AndreyAkinshin
https://twitter.com/andrey_akinshin
andrey.akinshin@gmail.com
27/27 Заключение

"Кроссплатформенный .NET и как там дела с Mono и CoreCLR" Акиньшин Андрей, JetBrains