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

Andrey Akinshin
Andrey AkinshinSoftware developer at JetBrains
Кроссплатформенный .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 Заключение
1 of 32

Recommended

Сервер-агрегатор на python (аля Xscript FEST), Сумин Андрей, Сабуренков Михаи... by
Сервер-агрегатор на python (аля Xscript FEST), Сумин Андрей, Сабуренков Михаи...Сервер-агрегатор на python (аля Xscript FEST), Сумин Андрей, Сабуренков Михаи...
Сервер-агрегатор на python (аля Xscript FEST), Сумин Андрей, Сабуренков Михаи...Fuenteovejuna
638 views28 slides
Фреймворки: недалёкое прошлое и ближайшее будущее by
Фреймворки: недалёкое прошлое и ближайшее будущееФреймворки: недалёкое прошлое и ближайшее будущее
Фреймворки: недалёкое прошлое и ближайшее будущееYandex
732 views32 slides
Postgre Sql в веб приложениях иван золотухин by
Postgre Sql в веб приложениях   иван золотухинPostgre Sql в веб приложениях   иван золотухин
Postgre Sql в веб приложениях иван золотухинMedia Gorod
373 views30 slides
Андрей Акиньшин by
Андрей АкиньшинАндрей Акиньшин
Андрей АкиньшинCodeFest
570 views24 slides
Tarantool 1.6: NoSQL database and application server by
Tarantool 1.6: NoSQL database and application serverTarantool 1.6: NoSQL database and application server
Tarantool 1.6: NoSQL database and application serverAlexander Gornyi
1.3K views28 slides
Павел Пушкарев — «Развертывание верстки» by
Павел Пушкарев — «Развертывание верстки»Павел Пушкарев — «Развертывание верстки»
Павел Пушкарев — «Развертывание верстки»Yandex
1.5K views37 slides

More Related Content

What's hot

Данил Ильиных и Владимир Иванов, «Велогосипед» by
Данил Ильиных и Владимир Иванов, «Велогосипед»Данил Ильиных и Владимир Иванов, «Велогосипед»
Данил Ильиных и Владимир Иванов, «Велогосипед»Platonov Sergey
1.4K views44 slides
JS Fest. Роман Якобчук. React, взгляд в будущее by
JS Fest. Роман Якобчук. React, взгляд в будущееJS Fest. Роман Якобчук. React, взгляд в будущее
JS Fest. Роман Якобчук. React, взгляд в будущееJSFestUA
660 views43 slides
2013-10-05 02 Алексей Родионов. Как сделать свой Travis CI - Vagrant + KVM by
2013-10-05 02 Алексей Родионов. Как сделать свой Travis CI - Vagrant + KVM2013-10-05 02 Алексей Родионов. Как сделать свой Travis CI - Vagrant + KVM
2013-10-05 02 Алексей Родионов. Как сделать свой Travis CI - Vagrant + KVMОмские ИТ-субботники
470 views28 slides
Leechcraft modular linux internet client by
Leechcraft modular linux internet clientLeechcraft modular linux internet client
Leechcraft modular linux internet clientТранслируем.бел
543 views13 slides
Как ВКонтакте использует Go by
Как ВКонтакте использует GoКак ВКонтакте использует Go
Как ВКонтакте использует GoArtem Kovardin
2.4K views18 slides
Зачем нужны распределенные системы конторля версий by
Зачем нужны распределенные системы конторля версийЗачем нужны распределенные системы конторля версий
Зачем нужны распределенные системы конторля версийSerhiy Kalinets
516 views17 slides

What's hot(10)

Данил Ильиных и Владимир Иванов, «Велогосипед» by Platonov Sergey
Данил Ильиных и Владимир Иванов, «Велогосипед»Данил Ильиных и Владимир Иванов, «Велогосипед»
Данил Ильиных и Владимир Иванов, «Велогосипед»
Platonov Sergey1.4K views
JS Fest. Роман Якобчук. React, взгляд в будущее by JSFestUA
JS Fest. Роман Якобчук. React, взгляд в будущееJS Fest. Роман Якобчук. React, взгляд в будущее
JS Fest. Роман Якобчук. React, взгляд в будущее
JSFestUA660 views
Как ВКонтакте использует Go by Artem Kovardin
Как ВКонтакте использует GoКак ВКонтакте использует Go
Как ВКонтакте использует Go
Artem Kovardin2.4K views
Зачем нужны распределенные системы конторля версий by Serhiy Kalinets
Зачем нужны распределенные системы конторля версийЗачем нужны распределенные системы конторля версий
Зачем нужны распределенные системы конторля версий
Serhiy Kalinets516 views
Антон Кортунов "Elliptics в Яндексе" by Yandex
Антон Кортунов "Elliptics в Яндексе"Антон Кортунов "Elliptics в Яндексе"
Антон Кортунов "Elliptics в Яндексе"
Yandex3.7K views
Юрий Устинов, Русоникс by Diana Dymolazova
Юрий Устинов, РусониксЮрий Устинов, Русоникс
Юрий Устинов, Русоникс
Diana Dymolazova957 views
Алексей Фомкин, Практическое применение Web Workers by Aleksey Fomkin
Алексей Фомкин, Практическое применение Web WorkersАлексей Фомкин, Практическое применение Web Workers
Алексей Фомкин, Практическое применение Web Workers
Aleksey Fomkin385 views
Shytikov on git Magic by shytikov
Shytikov on git MagicShytikov on git Magic
Shytikov on git Magic
shytikov434 views

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

Фреймворки: Недалёкое Прошлое и Ближайшее Будущее by
Фреймворки: Недалёкое Прошлое и Ближайшее БудущееФреймворки: Недалёкое Прошлое и Ближайшее Будущее
Фреймворки: Недалёкое Прошлое и Ближайшее БудущееMoscowJS
2.2K views32 slides
ASP.Net Core by
ASP.Net CoreASP.Net Core
ASP.Net CoreArturDr
1.7K views38 slides
Актуальные технологии и тренды в веб-разработке by
Актуальные технологии и тренды в веб-разработкеАктуальные технологии и тренды в веб-разработке
Актуальные технологии и тренды в веб-разработкеDenis Izmaylov
992 views29 slides
Current State of Server Side JavaScript by
Current State of Server Side JavaScriptCurrent State of Server Side JavaScript
Current State of Server Side JavaScriptOleg Podsechin
693 views24 slides
How to cook a blockchain and not get burned by
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 Alexander Syrotenko
36 views92 slides
Ферапонтов_Резюме by
Ферапонтов_РезюмеФерапонтов_Резюме
Ферапонтов_РезюмеOleg Ferapontov
508 views7 slides

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

Фреймворки: Недалёкое Прошлое и Ближайшее Будущее by MoscowJS
Фреймворки: Недалёкое Прошлое и Ближайшее БудущееФреймворки: Недалёкое Прошлое и Ближайшее Будущее
Фреймворки: Недалёкое Прошлое и Ближайшее Будущее
MoscowJS2.2K views
ASP.Net Core by ArturDr
ASP.Net CoreASP.Net Core
ASP.Net Core
ArturDr1.7K views
Актуальные технологии и тренды в веб-разработке by Denis Izmaylov
Актуальные технологии и тренды в веб-разработкеАктуальные технологии и тренды в веб-разработке
Актуальные технологии и тренды в веб-разработке
Denis Izmaylov992 views
Current State of Server Side JavaScript by Oleg Podsechin
Current State of Server Side JavaScriptCurrent State of Server Side JavaScript
Current State of Server Side JavaScript
Oleg Podsechin693 views
Ферапонтов_Резюме by Oleg Ferapontov
Ферапонтов_РезюмеФерапонтов_Резюме
Ферапонтов_Резюме
Oleg Ferapontov508 views
JavaScript завтра / Сергей Рубанов (Exante Limited) by Ontico
JavaScript завтра / Сергей Рубанов  (Exante Limited)JavaScript завтра / Сергей Рубанов  (Exante Limited)
JavaScript завтра / Сергей Рубанов (Exante Limited)
Ontico780 views
“Чем хорош Erlang вообще и для веб-разработки в частности?”
 by Olga Lavrentieva
“Чем хорош Erlang вообще и для веб-разработки в частности?”
“Чем хорош Erlang вообще и для веб-разработки в частности?”

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

Olga Lavrentieva1.4K views
Денис Измайлов, JavaScript сегодня: React, Redux и новая реальность by ScrumTrek
Денис Измайлов, JavaScript сегодня: React, Redux и новая реальностьДенис Измайлов, JavaScript сегодня: React, Redux и новая реальность
Денис Измайлов, JavaScript сегодня: React, Redux и новая реальность
ScrumTrek1.6K views
JavaScript сегодня: React, Redux и новая реальность by Denis Izmaylov
JavaScript сегодня: React, Redux и новая реальностьJavaScript сегодня: React, Redux и новая реальность
JavaScript сегодня: React, Redux и новая реальность
Denis Izmaylov2.1K views
Открытые стандарты (open standards) by Wad Mashckoff
Открытые стандарты (open standards)Открытые стандарты (open standards)
Открытые стандарты (open standards)
Wad Mashckoff1.5K views
Uneta 17.04.15 Dekhtiar - Entity framework 7 and co. by UNETA
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.
UNETA490 views
Meteor Day in Bishkek, Nov.6, 2014 by Daler Karimov
Meteor Day in Bishkek, Nov.6, 2014Meteor Day in Bishkek, Nov.6, 2014
Meteor Day in Bishkek, Nov.6, 2014
Daler Karimov626 views
Виктор Русакович - Выборы, выборы, все фреймворки… приторны by FDConf
Виктор Русакович - Выборы, выборы, все фреймворки… приторныВиктор Русакович - Выборы, выборы, все фреймворки… приторны
Виктор Русакович - Выборы, выборы, все фреймворки… приторны
FDConf170 views
What's missing from upstream kernel containers? - Sergey Bronnikov by OpenVZ
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
OpenVZ753 views
Frontend - экосистема и будущее: iforum 2015 by Eldar Djafarov
Frontend - экосистема и будущее: iforum 2015Frontend - экосистема и будущее: iforum 2015
Frontend - экосистема и будущее: iforum 2015
Eldar Djafarov1.8K views

More from Andrey Akinshin

Поговорим про performance-тестирование by
Поговорим про performance-тестированиеПоговорим про performance-тестирование
Поговорим про performance-тестированиеAndrey Akinshin
368 views105 slides
Сложности performance-тестирования by
Сложности performance-тестированияСложности performance-тестирования
Сложности performance-тестированияAndrey Akinshin
277 views91 slides
Сложности микробенчмаркинга by
Сложности микробенчмаркингаСложности микробенчмаркинга
Сложности микробенчмаркингаAndrey Akinshin
521 views66 slides
Поговорим про память by
Поговорим про памятьПоговорим про память
Поговорим про памятьAndrey Akinshin
332 views116 slides
Теория и практика .NET-бенчмаркинга (25.01.2017, Москва) by
 Теория и практика .NET-бенчмаркинга (25.01.2017, Москва) Теория и практика .NET-бенчмаркинга (25.01.2017, Москва)
Теория и практика .NET-бенчмаркинга (25.01.2017, Москва)Andrey Akinshin
3.6K views153 slides
Продолжаем говорить про арифметику by
Продолжаем говорить про арифметикуПродолжаем говорить про арифметику
Продолжаем говорить про арифметикуAndrey Akinshin
676 views83 slides

More from Andrey Akinshin(20)

Поговорим про performance-тестирование by Andrey Akinshin
Поговорим про performance-тестированиеПоговорим про performance-тестирование
Поговорим про performance-тестирование
Andrey Akinshin368 views
Сложности performance-тестирования by Andrey Akinshin
Сложности performance-тестированияСложности performance-тестирования
Сложности performance-тестирования
Andrey Akinshin277 views
Сложности микробенчмаркинга by Andrey Akinshin
Сложности микробенчмаркингаСложности микробенчмаркинга
Сложности микробенчмаркинга
Andrey Akinshin521 views
Поговорим про память by Andrey Akinshin
Поговорим про памятьПоговорим про память
Поговорим про память
Andrey Akinshin332 views
Теория и практика .NET-бенчмаркинга (25.01.2017, Москва) by Andrey Akinshin
 Теория и практика .NET-бенчмаркинга (25.01.2017, Москва) Теория и практика .NET-бенчмаркинга (25.01.2017, Москва)
Теория и практика .NET-бенчмаркинга (25.01.2017, Москва)
Andrey Akinshin3.6K views
Продолжаем говорить про арифметику by Andrey Akinshin
Продолжаем говорить про арифметикуПродолжаем говорить про арифметику
Продолжаем говорить про арифметику
Andrey Akinshin676 views
Let’s talk about microbenchmarking by Andrey Akinshin
Let’s talk about microbenchmarkingLet’s talk about microbenchmarking
Let’s talk about microbenchmarking
Andrey Akinshin598 views
Теория и практика .NET-бенчмаркинга (02.11.2016, Екатеринбург) by Andrey Akinshin
Теория и практика .NET-бенчмаркинга (02.11.2016, Екатеринбург)Теория и практика .NET-бенчмаркинга (02.11.2016, Екатеринбург)
Теория и практика .NET-бенчмаркинга (02.11.2016, Екатеринбург)
Andrey Akinshin1.4K views
Поговорим про арифметику by Andrey Akinshin
Поговорим про арифметикуПоговорим про арифметику
Поговорим про арифметику
Andrey Akinshin120.8K views
Подружили CLR и JVM в Project Rider by Andrey Akinshin
Подружили CLR и JVM в Project RiderПодружили CLR и JVM в Project Rider
Подружили CLR и JVM в Project Rider
Andrey Akinshin794 views
Что нам готовит грядущий C#7? by Andrey Akinshin
Что нам готовит грядущий C#7?Что нам готовит грядущий C#7?
Что нам готовит грядущий C#7?
Andrey Akinshin376 views
.NET 2015: Будущее рядом by Andrey Akinshin
.NET 2015: Будущее рядом.NET 2015: Будущее рядом
.NET 2015: Будущее рядом
Andrey Akinshin538 views
Продолжаем говорить о микрооптимизациях .NET-приложений by Andrey Akinshin
Продолжаем говорить о микрооптимизациях .NET-приложенийПродолжаем говорить о микрооптимизациях .NET-приложений
Продолжаем говорить о микрооптимизациях .NET-приложений
Andrey Akinshin665 views
Распространённые ошибки оценки производительности .NET-приложений by Andrey Akinshin
Распространённые ошибки оценки производительности .NET-приложенийРаспространённые ошибки оценки производительности .NET-приложений
Распространённые ошибки оценки производительности .NET-приложений
Andrey Akinshin1K views
Поговорим о микрооптимизациях .NET-приложений by Andrey Akinshin
Поговорим о микрооптимизациях .NET-приложенийПоговорим о микрооптимизациях .NET-приложений
Поговорим о микрооптимизациях .NET-приложений
Andrey Akinshin855 views
Практические приёмы оптимизации .NET-приложений by Andrey Akinshin
Практические приёмы оптимизации .NET-приложенийПрактические приёмы оптимизации .NET-приложений
Практические приёмы оптимизации .NET-приложений
Andrey Akinshin2.4K views
Поговорим о различных версиях .NET by Andrey Akinshin
Поговорим о различных версиях .NETПоговорим о различных версиях .NET
Поговорим о различных версиях .NET
Andrey Akinshin726 views
Низкоуровневые оптимизации .NET-приложений by Andrey Akinshin
Низкоуровневые оптимизации .NET-приложенийНизкоуровневые оптимизации .NET-приложений
Низкоуровневые оптимизации .NET-приложений
Andrey Akinshin3.8K views
Основы работы с Git by Andrey Akinshin
Основы работы с GitОсновы работы с Git
Основы работы с Git
Andrey Akinshin3.8K views
Сборка мусора в .NET by Andrey Akinshin
Сборка мусора в .NETСборка мусора в .NET
Сборка мусора в .NET
Andrey Akinshin3.9K views

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