SlideShare a Scribd company logo
1 of 32
Download to read offline
Кроссплатформенный .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 Заключение

More Related Content

What's hot

2013-10-05 02 Алексей Родионов. Как сделать свой Travis CI - Vagrant + KVM
2013-10-05 02 Алексей Родионов. Как сделать свой Travis CI - Vagrant + KVM2013-10-05 02 Алексей Родионов. Как сделать свой Travis CI - Vagrant + KVM
2013-10-05 02 Алексей Родионов. Как сделать свой Travis CI - Vagrant + KVM
Омские ИТ-субботники
 
Зачем нужны распределенные системы конторля версий
Зачем нужны распределенные системы конторля версийЗачем нужны распределенные системы конторля версий
Зачем нужны распределенные системы конторля версий
Serhiy Kalinets
 
Shytikov on git Magic
Shytikov on git MagicShytikov on git Magic
Shytikov on git Magic
shytikov
 

What's hot (10)

Данил Ильиных и Владимир Иванов, «Велогосипед»
Данил Ильиных и Владимир Иванов, «Велогосипед»Данил Ильиных и Владимир Иванов, «Велогосипед»
Данил Ильиных и Владимир Иванов, «Велогосипед»
 
JS Fest. Роман Якобчук. React, взгляд в будущее
JS Fest. Роман Якобчук. React, взгляд в будущееJS Fest. Роман Якобчук. React, взгляд в будущее
JS Fest. Роман Якобчук. React, взгляд в будущее
 
2013-10-05 02 Алексей Родионов. Как сделать свой Travis CI - Vagrant + KVM
2013-10-05 02 Алексей Родионов. Как сделать свой Travis CI - Vagrant + KVM2013-10-05 02 Алексей Родионов. Как сделать свой Travis CI - Vagrant + KVM
2013-10-05 02 Алексей Родионов. Как сделать свой Travis CI - Vagrant + KVM
 
Leechcraft modular linux internet client
Leechcraft modular linux internet clientLeechcraft modular linux internet client
Leechcraft modular linux internet client
 
Как ВКонтакте использует Go
Как ВКонтакте использует GoКак ВКонтакте использует Go
Как ВКонтакте использует Go
 
Зачем нужны распределенные системы конторля версий
Зачем нужны распределенные системы конторля версийЗачем нужны распределенные системы конторля версий
Зачем нужны распределенные системы конторля версий
 
Антон Кортунов "Elliptics в Яндексе"
Антон Кортунов "Elliptics в Яндексе"Антон Кортунов "Elliptics в Яндексе"
Антон Кортунов "Elliptics в Яндексе"
 
Юрий Устинов, Русоникс
Юрий Устинов, РусониксЮрий Устинов, Русоникс
Юрий Устинов, Русоникс
 
Алексей Фомкин, Практическое применение Web Workers
Алексей Фомкин, Практическое применение Web WorkersАлексей Фомкин, Практическое применение Web Workers
Алексей Фомкин, Практическое применение Web Workers
 
Shytikov on git Magic
Shytikov on git MagicShytikov on git Magic
Shytikov on git Magic
 

Similar to Кроссплатформенный .NET и как там дела с Mono и CoreCLR

Current State of Server Side JavaScript
Current State of Server Side JavaScriptCurrent State of Server Side JavaScript
Current State of Server Side JavaScript
Oleg Podsechin
 
Ферапонтов_Резюме
Ферапонтов_РезюмеФерапонтов_Резюме
Ферапонтов_Резюме
Oleg Ferapontov
 
JavaScript завтра / Сергей Рубанов (Exante Limited)
JavaScript завтра / Сергей Рубанов  (Exante Limited)JavaScript завтра / Сергей Рубанов  (Exante Limited)
JavaScript завтра / Сергей Рубанов (Exante Limited)
Ontico
 
Денис Измайлов, JavaScript сегодня: React, Redux и новая реальность
Денис Измайлов, JavaScript сегодня: React, Redux и новая реальностьДенис Измайлов, JavaScript сегодня: React, Redux и новая реальность
Денис Измайлов, JavaScript сегодня: React, Redux и новая реальность
ScrumTrek
 
JavaScript сегодня: React, Redux и новая реальность
JavaScript сегодня: React, Redux и новая реальностьJavaScript сегодня: React, Redux и новая реальность
JavaScript сегодня: React, Redux и новая реальность
Denis Izmaylov
 

Similar to Кроссплатформенный .NET и как там дела с Mono и CoreCLR (20)

Фреймворки: Недалёкое Прошлое и Ближайшее Будущее
Фреймворки: Недалёкое Прошлое и Ближайшее БудущееФреймворки: Недалёкое Прошлое и Ближайшее Будущее
Фреймворки: Недалёкое Прошлое и Ближайшее Будущее
 
ASP.Net Core
ASP.Net CoreASP.Net Core
ASP.Net Core
 
Актуальные технологии и тренды в веб-разработке
Актуальные технологии и тренды в веб-разработкеАктуальные технологии и тренды в веб-разработке
Актуальные технологии и тренды в веб-разработке
 
Current State of Server Side JavaScript
Current State of Server Side JavaScriptCurrent State of Server Side JavaScript
Current State of Server Side JavaScript
 
How to cook a blockchain and not get burned
How to cook a blockchain and not get burned How to cook a blockchain and not get burned
How to cook a blockchain and not get burned
 
Ферапонтов_Резюме
Ферапонтов_РезюмеФерапонтов_Резюме
Ферапонтов_Резюме
 
JavaScript завтра
JavaScript завтраJavaScript завтра
JavaScript завтра
 
JavaScript завтра / Сергей Рубанов (Exante Limited)
JavaScript завтра / Сергей Рубанов  (Exante Limited)JavaScript завтра / Сергей Рубанов  (Exante Limited)
JavaScript завтра / Сергей Рубанов (Exante Limited)
 
Erlang ruby
Erlang rubyErlang ruby
Erlang ruby
 
“Чем хорош Erlang вообще и для веб-разработки в частности?”

“Чем хорош Erlang вообще и для веб-разработки в частности?”
“Чем хорош Erlang вообще и для веб-разработки в частности?”

“Чем хорош Erlang вообще и для веб-разработки в частности?”

 
Денис Измайлов, JavaScript сегодня: React, Redux и новая реальность
Денис Измайлов, JavaScript сегодня: React, Redux и новая реальностьДенис Измайлов, JavaScript сегодня: React, Redux и новая реальность
Денис Измайлов, JavaScript сегодня: React, Redux и новая реальность
 
JavaScript сегодня: React, Redux и новая реальность
JavaScript сегодня: React, Redux и новая реальностьJavaScript сегодня: React, Redux и новая реальность
JavaScript сегодня: React, Redux и новая реальность
 
Открытые стандарты (open standards)
Открытые стандарты (open standards)Открытые стандарты (open standards)
Открытые стандарты (open standards)
 
Uneta 17.04.15 Dekhtiar - Entity framework 7 and co.
Uneta 17.04.15 Dekhtiar - Entity framework 7 and co.Uneta 17.04.15 Dekhtiar - Entity framework 7 and co.
Uneta 17.04.15 Dekhtiar - Entity framework 7 and co.
 
Viacheslav Eremin about DOT NET (rus lang)
Viacheslav Eremin about DOT NET (rus lang)Viacheslav Eremin about DOT NET (rus lang)
Viacheslav Eremin about DOT NET (rus lang)
 
Invisible
InvisibleInvisible
Invisible
 
Meteor Day in Bishkek, Nov.6, 2014
Meteor Day in Bishkek, Nov.6, 2014Meteor Day in Bishkek, Nov.6, 2014
Meteor Day in Bishkek, Nov.6, 2014
 
Виктор Русакович - Выборы, выборы, все фреймворки… приторны
Виктор Русакович - Выборы, выборы, все фреймворки… приторныВиктор Русакович - Выборы, выборы, все фреймворки… приторны
Виктор Русакович - Выборы, выборы, все фреймворки… приторны
 
What's missing from upstream kernel containers? - Sergey Bronnikov
What's missing from upstream kernel containers? - Sergey BronnikovWhat's missing from upstream kernel containers? - Sergey Bronnikov
What's missing from upstream kernel containers? - Sergey Bronnikov
 
Frontend - экосистема и будущее: iforum 2015
Frontend - экосистема и будущее: iforum 2015Frontend - экосистема и будущее: iforum 2015
Frontend - экосистема и будущее: iforum 2015
 

More from Andrey Akinshin

More from Andrey Akinshin (20)

Поговорим про performance-тестирование
Поговорим про performance-тестированиеПоговорим про performance-тестирование
Поговорим про performance-тестирование
 
Сложности performance-тестирования
Сложности performance-тестированияСложности performance-тестирования
Сложности performance-тестирования
 
Сложности микробенчмаркинга
Сложности микробенчмаркингаСложности микробенчмаркинга
Сложности микробенчмаркинга
 
Поговорим про память
Поговорим про памятьПоговорим про память
Поговорим про память
 
Теория и практика .NET-бенчмаркинга (25.01.2017, Москва)
 Теория и практика .NET-бенчмаркинга (25.01.2017, Москва) Теория и практика .NET-бенчмаркинга (25.01.2017, Москва)
Теория и практика .NET-бенчмаркинга (25.01.2017, Москва)
 
Продолжаем говорить про арифметику
Продолжаем говорить про арифметикуПродолжаем говорить про арифметику
Продолжаем говорить про арифметику
 
Let’s talk about microbenchmarking
Let’s talk about microbenchmarkingLet’s talk about microbenchmarking
Let’s talk about microbenchmarking
 
Теория и практика .NET-бенчмаркинга (02.11.2016, Екатеринбург)
Теория и практика .NET-бенчмаркинга (02.11.2016, Екатеринбург)Теория и практика .NET-бенчмаркинга (02.11.2016, Екатеринбург)
Теория и практика .NET-бенчмаркинга (02.11.2016, Екатеринбург)
 
Поговорим про арифметику
Поговорим про арифметикуПоговорим про арифметику
Поговорим про арифметику
 
Подружили CLR и JVM в Project Rider
Подружили CLR и JVM в Project RiderПодружили CLR и JVM в Project Rider
Подружили CLR и JVM в Project Rider
 
Что нам готовит грядущий C#7?
Что нам готовит грядущий C#7?Что нам готовит грядущий C#7?
Что нам готовит грядущий C#7?
 
.NET 2015: Будущее рядом
.NET 2015: Будущее рядом.NET 2015: Будущее рядом
.NET 2015: Будущее рядом
 
Продолжаем говорить о микрооптимизациях .NET-приложений
Продолжаем говорить о микрооптимизациях .NET-приложенийПродолжаем говорить о микрооптимизациях .NET-приложений
Продолжаем говорить о микрооптимизациях .NET-приложений
 
Распространённые ошибки оценки производительности .NET-приложений
Распространённые ошибки оценки производительности .NET-приложенийРаспространённые ошибки оценки производительности .NET-приложений
Распространённые ошибки оценки производительности .NET-приложений
 
Поговорим о микрооптимизациях .NET-приложений
Поговорим о микрооптимизациях .NET-приложенийПоговорим о микрооптимизациях .NET-приложений
Поговорим о микрооптимизациях .NET-приложений
 
Практические приёмы оптимизации .NET-приложений
Практические приёмы оптимизации .NET-приложенийПрактические приёмы оптимизации .NET-приложений
Практические приёмы оптимизации .NET-приложений
 
Поговорим о различных версиях .NET
Поговорим о различных версиях .NETПоговорим о различных версиях .NET
Поговорим о различных версиях .NET
 
Низкоуровневые оптимизации .NET-приложений
Низкоуровневые оптимизации .NET-приложенийНизкоуровневые оптимизации .NET-приложений
Низкоуровневые оптимизации .NET-приложений
 
Основы работы с Git
Основы работы с GitОсновы работы с Git
Основы работы с Git
 
Сборка мусора в .NET
Сборка мусора в .NETСборка мусора в .NET
Сборка мусора в .NET
 

Кроссплатформенный .NET и как там дела с Mono и CoreCLR