rider - jug ru grouppublic.jugru.org › dotnext › 2016 › spb › day_1 › track_3 ›...
TRANSCRIPT
Roadmap
Ноябрь 2014 Лето 2015 Январь 2016 Март 2016 Осень 2016
1,5 РазработчикаПрототип
5 РазработчиковAnnouncement
Private EAP
Public EAP
1.0
Лето 2016
Platform.VisualStudio
Platform.Vs12 Platform.Vs14
Platform
Platform.CommandLine
Features
Platform.VisualStudio
Platform.Vs12 Platform.Vs14
Features.CommandLine
Platform.Rider
Features.Rider
MONO• Да,естьбаги• Нооноработаетидажеболееилименеестабильно
• ПроблемысI/O• MockWpf впомощь• XBuild - внашемслучаесамоеслабоезвено
devenv.exe
ReSharperVisualStudioDocumentTextBuffer
CaretCaret
FocusedEditorFocusedEditor
FeaturesUIРисуемсамиJ
Rider.exe
ReSharperIntelliJ
Intellij document R#document
Caret Caret
FocusedEditor FocusedEditor
FeaturesUI
ReSharper.Host.exe
FeaturesUI
ПроблемыпроизводительностиIDE• GC– Таккакмногоаллокацийсвязано спарсингомирезолвом
• VisualStudio– STACOM– Roslyn– НепонятнокаксделанныйвстроенныйMSBuild
• Прерывабельность• Ачтонасчётпересылкипопротоколумеждудвумяпроцессами?
Нажали Alt+Enter
Запустили движок Alt+Enter
Посчитали все элементы
Приготовили View Model
Открыли реальный popup
Frontend Backend
ActionId : String
IconId : intDisplayName : intItemId : int
Особенности
• Intellij,дажебезLanguageServices – этооченьбольшаясистема,сосвоейжизнью
• Синхронизоватьlifecycleсложногоfrontend’асbackend’омоказлосьнетривиальнойзадачей
Frontend
Backend
Solutionзагрузился,мыготовыобрабатыватьоткрытиередакторов
Открываетсяредактор!
?!
Transientsignal
View Model
Frontend BackendViewmodel
IDEAEditor1
R#Editor1
IDEAEditor2
ModelEditor1
ModelEditor2
ModelEditor1
ModelEditorModelEditor2
R#Editor2
Protocol
IDEAEditor3
ModelEditor3
ModelEditor3
R#Editor3
Frontend
Backend
Solutionзагрузился,мыготовыобрабатыватьоткрытиередакторов
Открываетсяредактор!
ModelEditor1
ModelEditor1
СтоитлибоятьсяInterprocessвзаимодействия?
• Вообщеговоря,нашMVVMочень«гибридный» J
• Передать5000completionitems- <100ms!
Архитектура
ProtocolRider
JVM
IntelliJ Platform
ReSharperService
BundledMonoor .NET
MSBuild Host
Any.NETRuntime
DebuggingHost
BundledMonoor .NET
Итого
• Мощныйбэкэнд• Фронтенд,почтинезависящийотпроблембэкэнда
• ПосутимыпереходимкэпохераспределённыхIDE
Web
• JS,TS,CSS,Razor,...• Наданныймоментвсеподдерживаетсясиламирешарпера.
• Думаемнадгибриднымивариантам:Idea+R#
Плагины
• Плагиныдлярешарперабудутработать• Плагиныдляидеиужеработают• Впланахсделатьвозможнстьдлякросспротокольныхплагинов