We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

Project Rider

00:00

Formal Metadata

Title
Project Rider
Title of Series
Number of Parts
133
Author
N. N.
License
CC Attribution - NonCommercial - ShareAlike 3.0 Unported:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal and non-commercial purpose as long as the work is attributed to the author in the manner specified by the author or licensor and the work or content is shared also in adapted form only under the conditions of this
Identifiers
Publisher
Release Date
Language

Content Metadata

Subject Area
Genre
36
61
Thumbnail
1:11:04
73
107
Software developerVideo gameProcess (computing)MereologyGoodness of fitBitService (economics)Self-organizationVideoconferencingUniverse (mathematics)Social classProjective planeRight angleRow (database)Computer animation
Software developerIntegrated development environmentWechselseitige InformationGoodness of fitHand fanWeightProcess (computing)Computer animationMeeting/Interview
Software developerIntegrated development environmentParameter (computer programming)IRIS-TComputer configurationData streamInclusion mapComputing platformDemo (music)Projective planeCodeDemo (music)Product (business)Point (geometry)BitPlanningFront and back endsDebuggerIntegrated development environmentSoftware developerComputing platformVisualization (computer graphics)Formal languageC sharpWeb 2.0Right angleGraph coloringJSONComputer animation
Software developerDemo (music)Projective planeSoftware developerComputer animation
Software developerSocial classNavigationSymbol tableComputer fileComputing platformLine (geometry)CASE <Informatik>Complete metric spaceWindowMenu (computing)Instance (computer science)Multiplication signLatent heatType theorySource codeSpacetimeMonster groupRight angleStress (mechanics)Metropolitan area networkQuicksortVirtual machineKey (cryptography)Symbol tableProjective planeSocial classComputer fileComputer clusterApplication service providerComputer animation
Software developerData structureComputer fileScalable Coherent InterfaceNavigationSocial classData structureParameter (computer programming)InformationProjective planeComputer fileType theoryEmulatorContext awarenessCategory of beingPlug-in (computing)TwitterComputing platformSymbol tableSet (mathematics)CASE <Informatik>Instance (computer science)FingerprintThomas BayesComputer animation
Software developerMetric systemSymbol tableComputer configurationAssembly languageProjective planeComputer architectureBefehlsprozessorSign (mathematics)CompilerCross-platformRight angleCovering spaceComputer animation
Software developerGeneric programmingIRIS-TExecution unitMultitier architectureGroup actionScalable Coherent InterfaceComputer filePrincipal ideal domainExtension (kinesiology)Function (mathematics)Right angleInstance (computer science)Binary decision diagramRevision controlMultiplicationSelectivity (electronic)Type theoryWindowAdditionMenu (computing)Complete metric spaceCodeExpressionVideo game consoleGeneric programmingBitCartesian coordinate systemEntire functionComputer iconCode refactoringCursor (computers)DivisorFactory (trading post)Server (computing)Computer programmingService (economics)Table (information)File formatClosed setArmVarianceProjective planeEndliche ModelltheorieMultiplication signSpacetimeNoise (electronics)Computer clusterComputing platform
Software developerGroup actionHill differential equationForcing (mathematics)BlogBlock (periodic table)Game theoryLogic gateGoodness of fitSource codeComputing platformVideo gamePower (physics)INTEGRALProjective planeError messageWindowVisualization (computer graphics)Computer animation
Software developerGroup actionDemo (music)1 (number)BitComputer animation
Lie groupSoftware developerDemo (music)Right angleINTEGRALScripting languageLine (geometry)Multiplication signComputer architectureSlide ruleRadical (chemistry)BuildingDemo (music)Computer animation
Software developerArchitectureWeightComputing platformService (economics)Integrated development environmentCovering spaceComputer architectureWeightRoundness (object)Functional (mathematics)BitDampingVisualization (computer graphics)Numeral (linguistics)Endliche ModelltheorieProcess (computing)Multiplication signGastropod shellSoftware testingService (economics)System callEnterprise architecture
Software developerStudent's t-testInheritance (object-oriented programming)Product (business)Interrupt <Informatik>Power (physics)Direction (geometry)Visualization (computer graphics)Cross-platformPhysical systemGastropod shellCommunications protocolBuffer solutionComputer architecturePlug-in (computing)BuildingIntegrated development environmentSource codeXML
Software developerObject (grammar)Data modelView (database)DebuggerObject (grammar)View (database)Goodness of fitCommunications protocolFront and back endsProcess (computing)Projective planeCache (computing)Complex (psychology)Abstract syntax treeEndliche ModelltheorieContext awarenessCross-platformRepresentation (politics)Data structureElectronic visual displaySubject indexingComputer fileParsingNetwork topologyResultantSingle-precision floating-point formatGroup actionPresentation of a groupInstance (computer science)System callGastropod shellProduct (business)Menu (computing)Computer animation
Software developerArchitectureWeightComputing platformService (economics)Integrated development environmentKeyboard shortcutFront and back endsWeb 2.0Arithmetic meanLine (geometry)Task (computing)Semiconductor memoryCodeFormal languageNP-hardContext awarenessComplete metric spaceGroup actionLatent heatView (database)Endliche ModelltheorieTheory of relativityCross-platformParsingDampingMereologyFunctional (mathematics)SpeicherbereinigungMenu (computing)Point (geometry)Communications protocolMultiplication signSuspension (chemistry)TwitterInstance (computer science)DebuggerPrisoner's dilemmaDependent and independent variablesBuildingProcess (computing)PressureKey (cryptography)
Software developerShift operatorComputer fileDrop (liquid)WindowComputer networkAbsolute valueWeightMixed realityIntegrated development environmentCartesian coordinate systemLibrary (computing)Perturbation theoryUtility softwareSet (mathematics)2 (number)Web applicationSoftware bugSoftware testingBootingComputer animation
Software developerIntegrated development environmentSet (mathematics)Utility softwareLibrary (computing)WeightElectronic mailing listProjective planeVisualization (computer graphics)Cartesian coordinate systemNormal (geometry)QuicksortMultiplicationGroup actionData storage deviceApplication service providerMusical ensembleWindowCodeDifferent (Kate Ryan album)Parameter (computer programming)Expected valueFunction (mathematics)Greatest elementWeb 2.0Core dumpSymbol tableConfiguration spaceGame controller.NET FrameworkString (computer science)Task (computing)Assembly languageMultiplication signSystem callMobile appSoftware frameworkRight angleSampling (statistics)Structural loadInformationResultantStandard deviationKey (cryptography)Wave packetForceData structureServer (computing)Computer fileCross-platformComplete metric spaceComputer animation
Software developerWeb 2.0Different (Kate Ryan album)Software testingCartesian coordinate systemSpeech synthesisInformationBitComputer animation
Integrated development environmentSoftware developerSoftware testingExecution unitCross-site scriptingComputing platformDisintegrationType theoryBounded variationLatent heatBlogTwitterDirection (geometry)Slide ruleWeb 2.0Absolute valueSoftware developerTerm (mathematics)Computing platformExecution unitProduct (business)Computer clusterSuite (music)Bounded variationType theoryBitWeightCross-platformGoodness of fitLanding pageStability theoryCursor (computers)MultiplicationMultiplication signIntegrated development environmentVisualization (computer graphics)InformationSoftware testingSemiconductor memoryPlug-in (computing)Core dumpRight angleElectronic mailing listCommitment schemeCodeProjective planeBuildingSurgeryCodecExpressionService (economics)WordForestText editorPlotterFrequencyCausalityComputer iconPower (physics)Exception handlingINTEGRALFormal languageRadical (chemistry)MultilaterationInternet service providerArmPresentation of a groupAutomatic differentiationBlogGroup actionTwitterPoint (geometry)Dot productQuicksortPRINCE2Computer animation
Software developerComputer animationLecture/Conference
Transcript: English(auto-generated)
I don't need my voice is loud enough anyway. That's what my wife says. What? All right.
Okay. Good morning. There you go. I've already had a little bit to drink. So, right. I have to say, though, because this these sessions, not only mine, all the sessions are being recorded, there has been some rumors around Periscope. So, please refrain
from using anything. Because the organizers are recording it and the videos will be available soon. So, please, no recording. Plus, I'm not really got anything interesting to say anyway. I fooled you all. Right. So, welcome. How many of you here are to find out finally
what Project Rider is? How many of you are just here to see me? Brilliant. Okay. Love you guys. Okay. So, listen, I'm going to tell you, but I do ask you to bear with
me a few minutes. Because when I was preparing this talk, you know, it's actually it's a very difficult talk to prepare because it's very, very emotional. I had my children by my side. And I noticed that, like, my little one was asking me so many questions. And I started to realize, like, why is life so full of questions? Right? And the
worst part is that some of them are even you don't have answers to. You don't know the answers to these questions. Like, the typical one, are we alone in the universe? Yeah. We don't know. Well, we're not. But I won't reveal why. Why does Superman wear his underwear outside his tights? We don't know. Jar Jar Binks. We don't know. What was
George Lucas thinking? JavaScript. Semicolons or not. Actually, the more relevant question to that is, when the hell would that thing die? Not whether we're going to use semicolons or not, but when will it die? Now, given that, some questions do deserve answers, okay?
And I'm here today to answer some of those questions. And here's the big one. Will Resharper use Rosselin? Well, I'm really, really, really happy to announce today, no.
No. So, for those of you that came to this talk thinking that this is about Resharper being rewritten in Rosselin, I hope you're happy that it's not. Good. Now, just one
more thing. George Lucas actually put Jar Jar Binks in Star Wars because he targeted it at children, okay? And he said that it's a kid's movie. And he said that fans were
angry about that. So I just wanted you to know that as well. But, of course, the other big question that we constantly get asked over and over again, day in and day out, when is JetBrains going to do a .NET IDE? When? When the hell are they going to do it? Well, that's what Project Rider is. So, you got your C Sharp IDE, now show
me the bloody money, will you? Okay. So this is Project Rider. You can see it. We're going to see it a little bit more, demos of it. And before I do that, what
exactly is Project Rider? First of all, it's a code name. So that's not going to be the final name of the product. It's cross platform C Sharp IDE. Unfortunately, at this point, there are no plans for Visual Basic. So if you are a Visual Basic developer, I suggest you go on. Is there anything for Visual Basic developers here? No? Okay.
It's built on the IntelliJ platform, right? So that means that everything you get on the IntelliJ platform, you're basically going to get with Rider. How many of you are familiar with IntelliJ? WebStorm. Okay. Do you like it? No. Well, you get
out. And it's got ReSharper Engine on the back end. So, as I said, no Roslin and we won't be using Roslin. And it's written in Kotlin and C Sharp. So the front end is written in Kotlin. If you've not heard of Kotlin, it's a language
that we're going to release very, very soon. Like really soon, like hope. And so the front end is written in Kotlin. The back end is C Sharp, basically running ReSharper Engine. Okay. And with that, that's it. That's all I've got. So, thank you. And yeah. Okay. So, I'm going to switch and I'm going to try
and do some demos. It's early days. It's not that early, but it's early days. So you're going to bear with me, right? If it goes horribly wrong, don't blame me. Blame those developers. I do want to say, though, actually a shoutout to them because they have been working nonstop to get
things ready for today. So, a big shoutout to the developers of Project Rider. Don't clap. Just wait. Okay. So, there's Rider. Okay. So, can
you see it? I told you. This is going to be brilliant. Anyway, so, as I said, it's very early days. It more or less works. If something goes wrong, it's fine. Do you like the splash screen? Yes, it's brilliant.
I did that on purpose. So, you see the startup time. And you see that little arrow over here. It is very fast. So, that's already loaded. Everything's there. I've opened up MonoCecil. Now, here's something very, very important. This is not .next. This is .now. Okay? So,
you don't have to be using ASP.NET 5 or whatever that thing is called to be able to use Rider. You can use it with your existing MSBuild solutions. Right? And let me show you a few things. So, we've got navigation, obviously. How many of you are familiar with IntelliJ platform at all? I mean, some of you know it. Some of you used it.
So, you've got the go to type. That's actually just me. Don't ignore that. That's something on my machine. That the very, very first time I invoke a menu, it does that. But this is also a brilliant time to ask what they do in normally in England is how's the weather? So, here we have class name. So, it's
basically the go to type, go to file. So, I have type specification. And you can see that I also have the camel case there, completion there. So, type spec. Type specification. Here I can go, for example, to a symbol. I can say full name. Takes me to that symbol. If I go back, for example, if I want to look for a symbol across the entire project, I can
do type space camel case completion. So, TS, for example, full name. And that will take me to type specification full name. So, it navigates directly to that. I have file navigation as well. So, let's say, for instance, I don't know. I member definition. Directly go to the file. And
of course, you can activate the auto scroll to source. So, you get that. Then you also can go, for example, to file. So, type definition. Type definition 30. TDC 30, for example. That will go directly to the line on that file. Project window, again, like many things in IntelliJ,
anything you want to do or search, you can search from here. So, parameter definition info will also show me that. Okay. Go navigate to it. And you, I don't know if you're noticing, but the navigation is actually very, very, very, very fast. Then we have command 7, which shows me the structure. So, basically, things that you're already familiar with in
Resharpa, you get here. I have recently viewed files. I can navigate easily back and forth to files. I have recently edited files. So, all of the things that I've basically edited and ignore that red stuff. Now, I can navigate to the navigation bar at the top here. I can navigate to everything from here as well. And from there, I could
actually create a new file in the context of actually where I am. Like, as I said, it's based on the same ideas to make sure you can work fast without having to use a mouse. Okay. Search everywhere as well. Which basically gives me kind of like what you're familiar with in Sublime and that. I can search for type. I can search for settings.
Everything. In fact, you even got all of the plugins basically that are available to the IntelliJ platform, including Vim. Someone said on Twitter, I don't care what it is as long as it's got Vim emulation. It does. Okay. Then if I go, for example, type definition. Let's go, for instance, to let's go and find type definition. Go here.
You can see that I can from here navigate to the derived types. Search on this. Let's say property definition. From property definition, invoke the navigate to menu. See the base symbols. See usages of symbol. Find usages of symbol. Shows me the usages of symbol. Then I have all of
the different options here to exclude, include, sort, etc. Okay? So, pretty much everything that you're used to in ReSharper, you're getting already in Project Rider. And given are you liking this? Because you're really,
really quiet. I hate quiet audiences. Shut up. Yes, Mark. No. It's actually this is a Mac book. You can tell by the Apple
sign here. It's activity monitor. Let's go look at the CPU. Yeah, main is, yeah. It's cross platform, all right? Okay. My colleague will come up later and he'll explain to you everything of how the architecture works under the cupboards, right? What else? Oh, we've also got,
like, let's say, for example, where's the boo watch? Decompiler built in. Ignore the red because this was actually working. But there is a decompiler built in as well. So, you get all of the dot peak features already in this. Okay? Then, of course, being IntelliJ, I can
navigate, you know, I can make this full screen, get rid of all of the little icons here. So, basically have my entire work space, not have to worry about anything. I've got the window. I have editor tabs. I can split vertically. So, hipsters love this for some reason.
They do their little TDD on the left and the right. I do TDD, so I shouldn't say that. No, and actually now I do BDD. No, I do ADD TDD now. Does it matter? That's how we run this industry.
GIT generic instance type. So, let me go ahead and close this. Close you. By the way, I don't like tabs. If you know me, you know I don't like tabs, but I'm showing you the tabs here. Just so you say I don't like tabs. Now, watch this. All the navigation is fine. Look, we've got the little WTFs of ReSharper, which means we have
all of the inspections. So, alt, enter menu to expression body. Okay? So, all of the inspections you know and love and sometimes hate of ReSharper, we have those here as well. And they're all configurable, everything. Also, of course, we have refactoring. Although it's a little bit flaky right now, but we have renamed this, we
have refactored this, and all of the different refactorings that are available in ReSharper will also be available here. Okay? And you can see that I can also run and build projects. So, here I'm building a project. And it builds just fine. Output. You can define what version of the build tool you want to use. If you're on
the Windows platform, it will pick up MSBuild, et cetera. On OSX and Linux, it will be running on Mono. And let's go ahead and create a new project as well. So, you can see that I have also support for DNX. I won't show you DNX, we'll show you DNX running on Windows so you get a flavor of everything. But I can go ahead and create
a console application. And we have also an empty application which really is empty. As opposed to some people. So, already the application is created and I can go and do some nice architecture. Okay? So, now
I've got my little void. Do something awesome. And let's go back, for example, to let's see. Recent files. I haven't been to program. So, let's go to program. And here I can just basically do var. So, you
see I get all of the completion. I say microservice equals new the microservice thing. And microservice. And even, for instance, I say, you know, do something new, too. And that's going to give me a red. And it says
create method. So, you can TDD. And that screws up. But it's great, right? Actually, I created in the right place just some flitch. So, even, for instance, if you see that I don't have do something public, I did that on purpose. Because if I do I'm going to do something new, microservice. Do something public. It should. No. Do something
awesome. Yeah. See? There's no awesome source in it. Or some. So, it says, oh, make method public. Okay? Beautiful things that you love. Yes? Nice. Really, really enthusiastic clap there, Mark. Beautiful. Yeah.
I know you're all British and you have to hold these emotions back. But people. So, yeah, we've got all okay. Thank you. So, we've got all of the code cleanup, et cetera. So, you can see that I just basically did a code cleanup, code reformat. I can, you know, expand
selection. Move code up and down. Make it completely unreadable. We even have things like, for instance, VAR or let's say the microservice thing. The. And then I do the microservice thing. We have postfix completion already. Not null. So, it provides you with what you had in
ReSharper as well. And then basically everything else. Multiple cursors. Multiple selects. All of these things. Okay? In addition to that, of course, this is completely, oh, yeah. I forgot to show you. Let's open another project. Game of life. And, yep. We also
have debug. And this is gonna give me an error. Ignore the red. But you see that we have debugging as well. Okay? Nice? Good. Okay. And then, of course, I have VCS integration. So, I have all the goodness of
it. And then I also have the intelligent platform which integrates with Git, subversion, Perforce, visual source safe, I'm not sure. TFS if you really want to go down there. Yes. Built in what? It will. It will. Okay? Oh, we also got nuget window.
Where the hell is nuget? Where's my nuget gone? We're talking about the window for nuget which searches for packages. And I can tell you probably that our nuget is
faster than competitors' nugets which I won't mention who the competitors' nugets are. And then, of course, for the real, real, real hipsters, the ones that love to just, like, you know, be real, we have also terminal. What
the hell is it? Why is it giving me these issues? Go on, then restart. Anyway. So, as you can see, already quite a bit there. There will eventually, yeah,
eventually, I can't give you any timelines or anything right now. But where the hell is my terminal? This is what happens when you update to the latest nightly build right
before demo. So, yeah, we've got VCS integration, JavaScript is coming, TypeScript is coming, all of those good stuff are coming. In fact, we've already got JavaScript support. There's your terminal. And beautiful, right? Awesome. Okay. So, let me just switch back to the slides. A minute. Now, next thing I want to talk
about is, well, I'm not going to talk about it, but the architecture. Now, we're using microservices architecture because someone told us it's hot. So, we have all these little tiny little microservices that are working under the covers. I'm not talking to an enterprise, but I'm joking. Kirill is going to come up. Where's Kirill? There. He's the genius behind this, one
of them. And he's going to come up and explain a little bit how this is working under the covers. Okay? So, give him a round of applause, people.
Thank you. Hi, my name is Kirill, and I'm one of those who actually
are writing Rider. And, yeah. When we were thinking about writing our own IDE, we were confronted with two main challenges. The first one was how to reuse all the ReSharper existing powerful functionality without
rewriting all its features from scratch. And the second one was how to make the user experience of this new IDE fast and smooth. So, we ended up with the architecture when we have a ReSharper working independently from Visual Studio in a separate process running on Mono or .NET. At the same time, we have an
IntelliJ IDEA based shell, and these two are communicating with each other. So, how did we manage to make ReSharper work separately from VS? Frankly, it was not very hard. Because in 2005, actually, we
started to build our own IDE. Please, I don't want you to think that we were building this for ten years. In 2006, we decided to change the direction, deliver just the plugin for Visual Studio. However, the thing is that we made the architecture where
ReSharper didn't depend on Visual Studio. Instead, we have just a little subsystem, interop subsystem that depended both on Visual Studio and ReSharper. With such an architecture, it was pretty easy to make ReSharper as a standalone product. How does it work? Okay. Whatever. And we choose IntelliJ IDEA
as a shell, well, simply because it's cross-platform and it's super, super powerful with all this support. So these two are communicating with each other. How? Instead of using third-party solutions like, for example, protocol buffer, we introduced our own protocol
which is lightweight, fast, and more suitable for our needs. Additionally, it allows users to describe their objects which are shared on both sides of the protocol between two processes. So the user can
operate with these mutable but synchronized projects from both sides in the same manner. So what kind of data is being transferred? Well, fortunately for project writer, no complex structures like syntax trees or indexes are sent. Instead, only the view model
representation of every performed or just performing feature is being transferred. So to illustrate how does this work, let's take a look at the good old alt-enter feature in ReSharper. For instance, I
press alt-enter on the front end, and because the shell, the front end is lightweight, it cannot perform it by itself. So it sends the request to the back end to perform this. The back end gets the request and completely performs the feature. So it
does the entire job. It, like, parses the files, uses the caches to resolve symbols, creating all these quick fixes and context actions, aggregating them in the single pop-up menu, builds the view model representation of this pop-up and then sends it back. So the front end just gets this
representation and displays the pop-up. With this approach, we get the same alt-enter menu in Rider like we have in ReSharper. And as you could see, you couldn't see this, but there is
just zero lines of code dedicated to any specific context actions or quick fixes here. So this means that we already have all these more than 800 quick fixes in Rider already. What is even
more exciting is that we need nothing to do with the specific language support. For instance, if we synchronise the view model of the mark-up, alt-enter, as I told before, and completion, it will automatically work in every language that ReSharper supports. For example, in JavaScript, in Razor.
It will have completion everywhere. So, every feature will just run automatically because the related view model subsystems just work along. So, regarding the reuse of ReSharper functionality, I'm happy to say that 99% of its code is shared.
And this is really important because this means that we don't write another cross-platform ID from scratch. This approach ensures that already in 1.0 release, we will have the huge part of ReSharper functionality. Well, at the same time,
the front-end is lightweight and it works independently from the back-end. This means that it's hardly being affected by the complex tasks of the back-end. So, if even something goes wrong there, the front-end will still be very, very responsible. Another challenge we finally
solved with this approach is blocking garbage collection. So, all the memory pressure, which is caused by hard tasks like parsing and caching, is now created only on the back-end. So, the suspending
garbage collection, which suspends actually all the threads, including the UI thread, which is responsible for smooth, so, for responsiveness, which will be now on the back-end side. So, the front-end will not have such a problem. It will be responsible always. So, yeah, with
such an architecture, we're now building very fast, but still very powerful feature-rich ID. And I'm really excited about that. If you have any more questions about the overall architecture, or about the protocol, with this
protocol, you can bind ReSharper as a back-end with IntelliJ ID as a front-end, but you can actually bind everything with everything. For example, you can bind ReSharper as a back-end with the web, and you will get the web ID. That's another story. If you have any questions about it, please come to our booth,
and we will try to explain it. Thank you. So, now Matt's gonna come up, and he's gonna show you guys running on Windows and creating and running or debugging
.next applications, or .net. Absolutely. So, yeah, so I'm gonna show you some of the DNx support we've got in Rider. For those
who don't yet know what DNx is, it's a... Huh? Stop. Stop heckling. Chill your boots. Chill your boots. We're fine. So, yeah, so DNx is the .net execution environment. Hello, don't go to sleep. It's the .net execution environment, which is
a set of utilities and libraries for running, debugging applications, hosting web applications, running tests, and so on. It's come from the .net core and ASP.net tool chains, but it's kind of now running kind of across different things as well. A couple of interesting things about DNx,
which is rather useful, it's cross-platform, and so I'm gonna show you Rider being cross-platform with a twist. I'm actually gonna show it on Windows rather than on a Mac. We've, it's also cross-runtime, which means it's not just core CLR and .net core, it's mono, it's .net framework as well, and the other thing, the big important thing really, is that it
completely changes the project structure. So you've got no more CS Proj files, no more MSBuild stuff, everything is now based on a project.json file, and this makes things more interesting when you want to support it in an IDE because everything has changed. And so Rider has support for DNx apps, and so what I've got here is I've got the music
store app, which we've got from Microsoft's samples, and we can see here now, we've just loaded up the application and it's fine, we've got the project loaded up, and the first thing we can see which is different really for standard projects that we used to, C-Sharp projects that we used to, is the references node. We no longer now just have a list of assemblies that we've
got here, we've now got a list of packages. Everything is a NuGet package and referenced as a NuGet package. And in fact, the things, you can target different frameworks as well. So this targets DNx core, which is DNx running on the .NET core, and it targets DNx running on the .NET Framework 4.5.1 and it shows both of those in the
references node, and if we expand that out, we get to see our NuGet packages and we can kind of step into that and see all of that. And of course, then we've got all of our usual sort of features which we've got from normal Rider projects and ReSharper projects, so we can just search for everything, we can search for controllers, so we go to checkout controller, and we get
to see all the code there, and everything is lovely and nice, as you'd expect. We've got our usual sort of, we can search for symbols and we can just navigate directly to them and get there. We can also do find usages on items, and here again
we get to see the way that Rider can pick up some features from ReSharper, and so we're actually highlighting here the redirect to action and the complete method here. If we navigate on here, complete takes us to the action of the MVC controller we've got going on here, and the same here,
then we can invoke co-completion on our string literal, and it knows that we've got an action going on here and it can complete that for us and show it as well. So we've also got support for running DNx apps as well. With Rider we're using an idea from IntelliJ called run configurations,
which is a very powerful and useful thing, where we can set up a run configuration for a particular application. So instead of it being kind of implicit, like it is in Visual Studio, we've now got them so we can set them here. So when you build an application and build a project, you get to say how you want to run it. You can have multiple of
these listed down here. So for example, if you want to run a .Net executable, you can select this .Net executable item here, run a .Net project, or as we've got listed up here, we can have a DNx project. And so I have one set up here now, it's going to run the music store project, I can drop that down, select whichever one I wanted, and then I can pass in different arguments then to DNx. And then of
course, just click the run button, it'll build it for us, it'll run, we can see the output down at the bottom in the run thing, and if we go to the bookmark, that'll fire up, warm everything up, and it'll run, and then down the bottom here, of course, then we've got our information that we've got
going on down there. This is then kind of very useful as well, because we can add in a different configuration, so we can create a new DNx configuration here, and we can change the arguments here. So DNx is useful in that you can have multiple commands, multiple tasks going on. So instead of just having DNx run, you can have DNx web, and you can have DNx Kestrel to run it in the
Kestrel testing web server, and you can now just select that, which we've just called unnamed, and if you run that, it'll rebuild it again, and it'll run it in a different application host. Okay, and so that's really then a quick overview of the DNx features we've got in
ReSharper. No, in Rider, which is using ReSharper. So yes, it is ReSharper as well. So, Harry?
Right, so a little bit more information. Did you like it or not? Good. Well, bloody hell.
Show emotions. I love it. Anyway, this is when it started. We started Rider on the first of one developer late November, early December 2014, right after the announcements of the core CLR thing. Summer 2015, we got three developers on the team,
right? And again, it's really, really critical to understand why so few developers, because it's already using everything that ReSharper already has. This is not us building it from scratch. Announcement today, which you're present. Private EAP, we're hoping late February, in the February, not now,
little bit later, stop saying now. Public EAP, shortly after that, obviously depends a little bit on the private EAP, but that's not to scale, so that doesn't mean somewhere mid-year. That could be March, it could be April, anyway. And we're aiming to release it this year, okay? And what will be planned
for 1.0? Apart from what you've seen, support for MSBuild and .NET, debug, build, run, unit testing, new get, other ReSharper goodies, and again, I insist this is ReSharper, so all the inspections, we've already got 800 inspections in there. TypeScript, JavaScript, CSS, HTML, and then, of course,
IntelliJ platform features, VCS integration, terminal, REST services, spell checker, and more, and plugins, vim, emit, et cetera. One other question that might arise is what about the plugins for ReSharper? Mostly, they're actually going to work. And then, if you want to start to work on plugins
that target the platform, as opposed to ReSharper, per se, then what you can do, the language, per se, what you see sharp, what you can do is then use IntelliJ's SDK, which we have over 1,300 plugins already developed by the community, and the best news is, you can use Kotlin, and if you don't
know Kotlin, you'll love it, because it's exactly like C sharp, although better. Well, I say so, right? Okay. Private EAP, we will provide the landing page. We are looking for specific and varied types of projects, so we want people that are doing on-the-edge stuff. At the same time, we want people that are doing very large solution stuff. We can tell you that we're already
opening ReSharper, which is what, 500 or so projects, Sergey? 500 or so projects and much, much faster than competitors. And I just want to stress that this is not an advanced code editor. This is an IDE,
because we believe in them, we love them, and that's what we're going to put out, okay? Last, please follow JetBrains Rider for announcements. Again, this won't be the final name. Probably not. We'll update that once we get the final name, which we hope will be around the EAP time. In terms of licensing and all
of that, again, we'll get that out hopefully for the private EAP, or at least for the EAP. Okay? You don't have any questions. Great. So, no. Do you have any questions? Yes. Why would you choose this? Can you
start with an easier question? Why would you choose this over, I'll answer that exactly the same way as someone says to me, why would I choose Eclipse over IntelliJ? Try it, test it. If you feel it's a better experience, you go. Whatever I say up here, if I give you a list of 50 features, whatever I say is
not going to convince you, right? You need to try it yourself. Absolutely. Yes? You've got to ask them, not me. The reasons that we've decided to build this are basically various.
Obviously, we feel that there are people that want a good experience in the cross platform. Right? So, that's one. We've been moving towards this direction for a few years. Right? Having the, you know, working with ReSharper through other products such as dot peak, the command line stuff. All of this has been moving
this. This has been on the back burner for quite some time. And obviously, in light of some of the announcements that Microsoft made in terms of CoreCLR, et cetera, is another little added incentive. Right? So, these are basically the main reasons. Why people are asking us, that's something you've got to ask the people. Right? Not me.
People, when they come to us, in fact, there's a question, the first one I showed on the slide on Quora, which says, why doesn't JetBrains make a dot net ID? So, one of you can go and say they did. But there's a lot of questions. And our CEO came on and said, why would you prefer us over Visual Studio? Go look at the answers. Right? I don't
want to be, you know, put words in other people's mouths. Yeah. Yeah. Okay.
Yes. He was first, plus
your mark. So, yes. We I can't give a commitment on that. But I can tell you that this is definitely a direction towards where we're moving. Right? So, that's
probably as ambiguous as it comes in terms of answers. But if you put two and two together, you'll probably get something. Yes. Sorry, Mark. Yes. Yes. It's just crappy for presentation. I don't
believe there's going to be support for Rosalind analyzers. No. Now, we again, and I'll put, you know, I put a slide up of Rosalind. Why aren't we using Rosalind? It's not a question of pride. It's a question that we've built Rosalind over the past decade. Right? And we believe that what we have suits us better, in our opinion, is more powerful and gives us more features
and more stability and better memory performance and better performance overall over Rosalind. That's why we're not using Rosalind. Okay? Mark, finally. So, your question is, in essence,
yes, you'll be able to get all of the web technologies. What I can't tell you right now is whether this will only be available as a standalone IDE or whether it'll also be pluggable inside IntelliJ IDEA. Right? Any other questions? Yes.
Yes, it's the multiple cursor support is exactly the same as, well, Sublime. It's exactly the same as we have on the platform. So, you can select multiple occurrences of a word. You can place multiple cursors anywhere you want randomly. You can do multiple copy, paste, all of that. Okay?
Okay. More information. Our booth at NDC, obviously, will catch us. We're here for the next three days. Our blog, and we'll be posting some information in the coming days, hours, et cetera, with more details, more features, et cetera, of what you've seen here. And as I said on Twitter, there is JetBrainsRider.
Before we go, I wanted to come back to this question, and unfortunately, it is still unanswered. Okay? So, thank you very much.