A Lap Around .NET 2015
This is a modal window.
The media could not be loaded, either because the server or network failed or because the format is not supported.
Formal Metadata
Title |
| |
Title of Series | ||
Number of Parts | 163 | |
Author | ||
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 | 10.5446/50230 (DOI) | |
Publisher | ||
Release Date | ||
Language |
Content Metadata
Subject Area | ||
Genre | ||
Abstract |
|
00:00
SineTwitterVisualBASICWeightSoftware developerFormal languageRepetitionSource codeInternet service providerWebsitePoint cloudMobile WebMobile appAndroid (robot)Computing platformStrategy gameOpen sourceServer (computing)DemosceneDigital photographyStrategy gameMultiplication signFamilyMobile WebCycle (graph theory)WeightSequelAnalytic continuationGraph coloringSpacetime.NET FrameworkSoftware developerHand fanTerm (mathematics)Mobile appCovering spaceVirtual machineForm (programming)Suite (music)Classical physicsPlanningWebsiteLibrary (computing)Computing platformWindowGoodness of fitWeb 2.0Core dumpPurchasingGame theorySource codeCartesian coordinate systemCuboidProjective planeRight angleSingle-precision floating-point formatPoint cloudOpen sourceInternet der DingeCross-platformData managementPoint (geometry)Sheaf (mathematics)Presentation of a groupInformationSet (mathematics)Dependent and independent variablesComputer programmingArmLevel (video gaming)InternetworkingProduct (business)Data storage deviceProgramming languageNumberAutomatic differentiation2 (number)Endliche ModelltheorieFormal languageFeedbackRevision controlMathematicsAndroid (robot)IntelReading (process)Cloud computingText editorF sharpApplication service providerContent (media)BuildingVisualization (computer graphics)Open setDemo (music)Monad (category theory)BitQuicksortBinary codeComputer animation
08:06
Software frameworkCore dumpShared memoryWeightComputing platformCompilerCompilerComponent-based software engineeringFormal languageCurvatureCodeSoftware developerControl flowMathematical analysisServer (computing)Source codeSelf-organizationLibrary (computing)Time domainCore dumpLibrary (computing)Set (mathematics)Physical systemQuicksortFlow separation.NET FrameworkRevision controlC sharpSoftware maintenanceProjective planeMereologyCodeEmailProduct (business)Order (biology)Code refactoringLevel (video gaming)Formal languageText editorCuboidDifferent (Kate Ryan album)InformationRun time (program lifecycle phase)Analytic continuationSoftware frameworkComputer configurationMultiplication signMobile appLink (knot theory)Software developerLine (geometry)String (computer science)Read-only memoryOpen sourceVisualization (computer graphics)CompilerWeightFocus (optics)ExpressionBuildingFeedbackNumberApplication service providerCASE <Informatik>Archaeological field surveyStapeldateiDebuggerExecution unitComputing platformWindowLie groupLambda calculusPoint cloudConnectivity (graph theory)Presentation of a groupSystem callArmComplete metric spaceRight angleFactory (trading post)DivisorCompilerWater vaporGeneric programmingBit rateRadio-frequency identificationCodeHand fanVirtual machineInteractive televisionSpacetimeReal numberLattice (order)Computer animation
16:13
CodeSoftware developerCore dumpFormal languageHill differential equationControl flowMathematical analysisWeightComputing platformCompilerSource codeServer (computing)Library (computing)Self-organizationTime domainFormal languageRandom matrixProjective planeAsynchronous Transfer ModeHand fanAudiovisualisierungVideoconferencingFreewareIntelligent NetworkProcess (computing)Right angleCodeEqualiser (mathematics)DebuggerOrder (biology)Type theoryPointer (computer programming)Zoom lensLambda calculusSlide ruleAnalytic continuationWindowOcean currentHypermediaRevision controlLabour Party (Malta)Office suiteComputer animation
19:23
Formal languageCodeCore dumpSoftware developerMaxima and minimaControl flowWeightMathematical analysisComputing platformCompilerSource codeServer (computing)Library (computing)Self-organizationTime domainSpacetimeWeightFormal languageAnalytic continuationError messageInformationVisualization (computer graphics)Multiplication signParameter (computer programming)CurveLink (knot theory)IterationCore dumpSoftware frameworkQuicksortDebuggerProjective planeMereologyCompilerOpen sourceComputer fileLevel (video gaming)Library (computing)Internet service providerDemosceneCodeRule of inferenceHand fanType theorySoftware bugDirected graphRevision controlVideo gamePattern languageDisk read-and-write headCompilerOffice suiteProcess (computing)ArmWordSoftware developerServer (computing)Computer animation
23:18
BlogMobile appComputer hardwareElectronic visual displayDisintegrationVisualization (computer graphics)Authoring systemTouch typingPopulation densityDirected setBefehlsprozessorArchitectureWeightEvent horizonThread (computing)Software frameworkElement (mathematics)Visual systemCodeDebuggerText editorPersonal digital assistantComputing platformMathematical analysisOpen sourceCompilerIntegrated development environmentOpen setFormal languageJust-in-Time-CompilerCompilerChainRun time (program lifecycle phase)Data modelBuildingModul <Datentyp>Computing platformMathematical optimizationRead-only memoryWindows PhoneSoftware developerReduction of orderPoint cloudWeightExtension (kinesiology)Open sourceComputer configurationCompilerFigurate numberNeuroinformatikProcess (computing)Goodness of fitYouTubeData managementVirtual machineUniverse (mathematics)Tablet computerType theoryCore dumpDifferent (Kate Ryan album)Image resolutionInformation overloadF sharpEntire functionDataflowComputing platformINTEGRALGame theoryComputer hardwareTouch typingMereologyWindowBinary fileForm factor (electronics)Mobile appProjective planeDependent and independent variablesFormal languageCartesian coordinate systemRevision controlInternet service providerApplication service providerSemiconductor memoryIntegrated development environmentLatent heatMathematical analysisComputer fileLogicMobile WebDemosceneBinary codePoint cloudCodeCompilerMultiplication signCuboidFeedbackInstallation artChainIdentity managementMathematical optimizationCombinational logicControl flowBit rateData storage deviceBitParsingServer (computing)Volume (thermodynamics)Endliche ModelltheorieGroup actionMultiplicationVisualization (computer graphics)Set (mathematics)Level (video gaming)Sheaf (mathematics)BlogClient (computing)C sharpDatabase transactionSoftware developerAbsolute valueWordSequelArmTouchscreenRule of inferenceDirection (geometry)MaizeAnalytic continuationPower (physics)BuildingSlide ruleBootingNP-hardMachine codeCorrespondence (mathematics)Insertion lossForestPoint (geometry)Software bugVideoconferencingCASE <Informatik>2 (number)40 (number)VirtualizationExploit (computer security)
32:26
WeightCore dumpShared memoryLogicComputing platformVisual systemApplication service providerSoftware frameworkPoint cloudReading (process)Open sourceInjektivitätBuildingRead-only memoryWeb pageNormed vector spaceClient (computing)Internet service providerStack (abstract data type)Open setComa BerenicesIntrusion detection systemSource codeoutputData modelWeightOpen sourcePoint cloudMobile appSoftwareRevision controlSelf-organizationLibrary (computing)Web 2.0BuildingMaxima and minimaRun time (program lifecycle phase)QuicksortConfiguration spaceBitDifferent (Kate Ryan album)Form (programming)Modul <Datentyp>WordTable (information)Formal languageAsynchronous Transfer ModeServer (computing)WhiteboardMereology.NET FrameworkCore dumpType theoryCloud computingFigurate numberCross-platformSoftware developerProjective planeProcess (computing)Computing platformDrop (liquid)Software bugCommitment schemeOpen setApplication service providerCompilerSource codeTouch typingCodeWindowSet (mathematics)outputCombinational logicShared memoryAndroid (robot)INTEGRALData storage deviceLogicUniverse (mathematics)Visualization (computer graphics)Enterprise architectureDrag (physics)CASE <Informatik>Endliche ModelltheorieLattice (order)ChainRow (database)View (database)ArmPortable communications deviceMultiplication signInternet forumPower (physics)Reverse engineeringLevel (video gaming)Feedback2 (number)Virtual machineProduct (business)Arithmetic meanSocial classNetzwerkverwaltungAreaInjektivitätElectric generatorSemiconductor memoryComputer animation
41:35
MultiplicationAsynchronous Transfer ModeDifferent (Kate Ryan album)WeightCompilerPoint (geometry)Software bugProjective planeOpen sourceRight angleMetropolitan area networkWordComputer animation
42:56
Repository (publishing)HypermediaWeightModul <Datentyp>Just-in-Time-CompilerComputing platformCompilerComponent-based software engineeringRun time (program lifecycle phase)Formal language.NET FrameworkInternet forumMobile appAdaptive behaviorAndroid (robot)Windows PhoneSource codeCodeOpen sourceWeightCodeText editorCore dumpComputing platformPoint cloudServer (computing)Right angleWindowVisualization (computer graphics)BlogInternet forumUniverse (mathematics)Social classMobile appDistribution (mathematics)Local ringMobile WebExecution unitCross-platformFunctional (mathematics)IterationBlock (periodic table)Software developerBuildingApplication service providerRemote procedure callCompilerPlug-in (computing)Slide ruleMaxima and minimaInternet service providerVotingProduct (business)Dependent and independent variablesWorkloadStack (abstract data type)Formal languageDemo (music)Content (media)EmailWeb 2.0Disk read-and-write headProjective planeLattice (order)Form (programming)C sharpRevision controlCloud computingSpacetimePortable communications deviceFilesharing-SystemHacker (term)QuicksortMereologyBitDiagramPunched cardCASE <Informatik>Video game consoleBookmark (World Wide Web)Open setLatent heatDifferent (Kate Ryan album)Pattern languageBinary codeLibrary (computing)Standard deviationExpandierender GraphCompilerLambda calculusPlanningMultiplication signRoutingResource allocationWordDirection (geometry)Peer-to-peerCapillary actionVideo gameResolvent formalismVirtual machineWeb browserArmConnected spaceTwitterFeedbackUnit testingShared memoryRoundness (object)Limit (category theory)1 (number)WebsiteProcess (computing)Cellular automatonEndliche ModelltheorieUltraviolet photoelectron spectroscopyPhysical systemLevel (video gaming)DivisorComputer fileSystem callSelf-organizationForcing (mathematics)SoftwareNumberSuite (music)Group actionMachine vision40 (number)Electric generatorConnectivity (graph theory)Object (grammar)Software repositoryGreen's functionPearson product-moment correlation coefficientComputer animation
Transcript: English(auto-generated)
00:00
Sounds like the answer is yes. All right, then we're going to get started. Everyone's got a chance to grab a seat. All right, good morning, everyone. Hi. My name is Anthony Green. I'm a program manager out at Microsoft on the .NET team. And today I'm going to talk to you about .NET 2015 and all the things that we're
00:22
kind of doing this time around. I apologize. At some point in the talk, I'll try to be interactive. If there are people who are sitting right underneath those blinding lights, I will not see your hand. You have permission to just yell out at any time if you have something on your mind just because there's no way for me to see you.
00:44
Aside from that, just kind of giving you fair warning. This talk, I don't know if you've been to Build or Ignite or you've seen any presentations from Build or Ignite, but if you have, there should be a lot of content here that you're somewhat familiar with. But we're gonna kind of put a couple little spins on it.
01:02
Actually, this is adapted from some of those talks, but those talks are about 75 minutes long. We have an hour today. And also, I really do find that the value of kind of coming out and doing these presentations live in front of you guys is the ability for me to get information from you on how you feel about what we're doing and also for you to get a chance
01:21
to interact with the product team. So by all means, I want to keep this as interactive as possible and get as much of your questions answered if you have them or any of your feedback to the team. So I'm gonna try to leave much time for that and I might rush past a lot of the content. If at any point you think we should slow down, dive into something, or there's a demo or something that you want to see, let me know
01:42
and I will adjust accordingly. There are a number of things that I can demo intelligently. There are a couple more things than that that I can speak to intelligently. And there are even more things beyond that that I can speak to unintelligibly. So for that, just ask me anything about monads.
02:02
All right, so who am I? Just letting you know. As I said, I'm a PM on the .NET team. Specifically, I work on the Manage Languages team out at Microsoft. So that is the team that makes the Visual Basic, C Sharp, and F Sharp programming languages. So today, I'm wearing my VB shirt because I'm a VB guy.
02:22
And that also includes not just the language features themselves but the core productivity features of the editor. So any of the refactorings, the IntelliSense, the colorization outlining, the analyzers features we're working on, and the Roslyn project. Debugging edit and continue, that whole thing is my team
02:42
and so I don't work around that entire space and can answer tons of questions about that. I've been a member of the .NET community since 2004. I was a bit late to the vote, I guess. Been at Microsoft since 2010 and originally I'm from Chicago, which has great pizza, Michael Jordan and the current president of the United States.
03:03
Interestingly enough, if for some reason Hillary Clinton wins the presidency, then she's also from Chicago and I get to say that again. So that's gonna be great. So a lot of things have changed in 2015. I wanna go back to sort of in time.
03:22
If you'd have asked me 10 years ago, 11 years ago, I'd have said .NET is this great family of languages, runtimes, libraries, tools, and technologies made by Microsoft for building websites and apps for Windows. That was what it was. It was WinForms, ASP.NET, classic web forms. That was kind of the story. We had VB, we had C Sharp, I think we had J Sharp,
03:42
C++, but that was kind of the story. The landscape has changed a lot. Now, if I have to talk about .NET, I'd say .NET is a family of open source languages, runtimes, libraries, tools, and technologies for building websites, desktop apps, cloud services, mobile apps, internet of things, device apps that run on multiple platforms, including Windows, Android, iOS, Mac OS X, and Linux.
04:05
This release is very much so about all of those things in red. That is the change that is here. Though the world has changed so much in 10 years and so much is more important for developers than there was at the time.
04:21
Here are some of the things that we've heard from our customers in the last few years, letting us know what's important, what matters. They said they are required to innovate and deliver much faster than they were before. There was a time where even at Microsoft, we delivered on a three-year cycle. You would get .NET 2002, and then you'd get 2005,
04:41
and then 2008, and that would be the cycle of things, and everyone liked that. SQL Server would come out once every five years. The world doesn't move at that speed anymore. Anybody who's out there competing in the world is having to spend on a dime and deliver technical solutions at a way faster pace. And you've probably seen Microsoft
05:01
start to keep pace with that, especially the ASP.NET team iterating very quickly, and the rest of us are following suit. Also, the need for a cross-device development strategy. So it's no longer the case that if you just have a plain desktop website and a desktop app that you're gonna cover
05:23
billions of machines on Earth, and that's enough. A good deal of web traffic today is from mobile devices. A lot of the app purchases and games are all coming from the mobile space, and they're not devices that are owned by any one company. It's not just Windows phones, it's not just iOS, it's not just Android, it's all of these things,
05:40
and then devices beyond that space. Open source enriches our platforms, our communities. Somebody who was at Microsoft who shall remain nameless might have had some things to say about open source a few years back, but we're much better on terms of open source now. Open source is just a daily reality for everyone.
06:02
For all the tools that we use, Microsoft began to embrace open source with, I think, jQuery a few years back, ASP.NET is open source, and now the pendulum is swung, and you're just gonna see many, many more technologies in Microsoft, us embracing existing open source projects, and many of our projects being open source as well.
06:22
And as always, they have existing applications to run and evolve, so it's great to do new stuff, but the stuff that I have today has to keep running. I've gotta keep that running so that I have attention to put toward the new stuff. And so yes, in response to all of those things,
06:41
like I said, you're gonna see us have a more accelerated delivery. We're gonna talk today about cross-platform .NET solutions. We are moving to open source, and yes, everything you had before still continues to work. Yeah, these are superfluous animations. I probably should have timed myself better with those.
07:02
So yes, the road ahead for .NET, talking about these three sections here, .NET innovations. I'll give you information on that. Open source, cross-platform. Let's just dive right into the innovations. High-level overview. We have our traditional .NET framework desktop stack, which we're calling .NET 4.6,
07:23
which is an in-place update to .NET 4.0, 4.5, 4.5.1, 4.5.2. Includes your traditional WPF WinForms ASP.NET stuff. But additionally, we have brand new, and hopefully many of you got a chance to see Damian's talk in the last hour, ASP.NET 5. And with that, we're introducing this .NET Core 5
07:43
with a new Core CLR, and it's a cross-platform version of the CLR that can run on Windows, that can run on Linux, that can run on Mac, and enable your .NET applications to migrate there, as well as universal apps, so the future of Windows programming, a technology for building a single app binary
08:02
that is adaptive and that will run on all of the devices that run Windows, so on your tablets, on your phones, all on your Raspberry Pis, Xbox, any of the, and in the cloud. So anything's running the latest Windows 10, which is coming out. All this is modular and built on this shared set
08:22
of other components that we completely wrote, including, you know, Re legit. We've added SIMD support to the CLR. We've got this great library system we call the .NET Core, sort of core libraries. That is true if you're Nougat. It's all factored. It's no longer this monolithic, I think right now,
08:40
it's 350 megabyte .NET framework download that has to be on all the machines, and something near and dear to my heart, the Roslyn compiler platform, the latest version of the VB and C Sharp compiler is completely written from the ground up in managed code and architected from the ground up for modern scenarios, including the cloud,
09:02
and all of the great language innovations. Out of curiosity, just sort of the first stroke of interactivity, just show of hands, and I'll try to do this only like five times. Show of hands. How many of you have never done anything with .NET or C Sharp, or really don't consider yourself to be in that space?
09:22
Okay, so you guys are all people for the home team. Excellent, I don't need to sell you on anything. Are there F Sharpers in the room? Any F Sharp? Okay, great. F Sharp, woo-hoo, go. Any VB people in the room? You ever have to touch VB just to maintain projects in VB?
09:42
Ah, yeah, there they go, there they go. All right, now we see. And then the rest of you guys are J Sharp developers, I'm assuming. Okay. Sorry, I can talk about all that. So just as I said, four, five, six,
10:00
I'm sorry, four, six, is just this latest version of it. It's highly compatible, as I said. It's in place, update to these existing frameworks. It includes all of that stuff. ASP.NET 5 is also supported on there, so your ASP5 apps will run on the four, six framework, but it also then runs as part of this sort of separate .NET Core 5 platform that we're introducing
10:23
and you get both of those options. And I'll tell you more about the differences between them later on in the talk. All right, so more fun information about servicing those for different runtimes we have there, .NET 1.0, 1.1, 2.0, and 4.0, and this is a continuation of that.
10:41
So first up, my team's work, the core developer productivity improvements. We've got new language features for all of our languages, new features for VB 14, C Sharp 6, and F Sharp 4. Let's sit there in numerical order. We added 14 features to VB and six features to, no.
11:03
But this release, even though we did add a couple of productivity features, they were all kind of based on responding to community complaints, things that you guys have been telling us about for years kind of bothered you or small little places in the language where we could improve things. So we tried to add these little features like read-only auto-props was something
11:21
that people had been asking for. It's not like a big thing. It's not like link or async or generics, but it is a productivity time saver, and so we did that. For example, in VB, for years and years and years and years, VB developers have had to do the and VBCRLF thing to put new lines in their strings, and this release, we just added multi-line strings to VB.
11:40
And F Sharp got a number of improvements based on feedback that they got and actually community contributions to their open source project. Actually, this was a heavily community-influenced release for F Sharp. But aside from the language features, the focus of my team for the last five years, six years, has actually been this Roslyn project, so rebuilding all of this stuff from the ground up so that we could build the best editor and tooling ever.
12:03
So we've completely redone everything in the editing experience. Everything that you see in Visual Studio 2015, even though it may look exactly like it was in 2013, none of that code is there. It is all new, and as you rewrite all of that code, you realize that there is a lot of code that makes C Sharp and Visual Basic work. The debugger components, the expression evaluators,
12:24
the edit and continue infrastructure, the compilers, the code editors, the brace completion, the IntelliSense, the classification outlining, all of that stuff, completely rewritten from the ground up and into cases made better. So for example, little tiny improvements, like in that example,
12:41
we have fully colorized tool tips when you hover over things, like when you get quick info on stuff, we actually colorize it the way that it appears in the editor. Something that you might not notice until you go back to the old version, you're like, oh, ew, that's all monochrome, that sucks. For the first time since 2005, I think we've added brand new refactorings to the project.
13:01
So C Sharp had a batch of refactorings in 2005. VB didn't have them in the box. We provided them through a third-party partner of Microsoft that provided a free add-on. So in this first, this is the first release where VB's got refactoring out of the box, and it has the same refactorings as C Sharp. So if you work in multi-language solutions, if you go back and forth, then all those same great productivity features
13:22
are there for both of you. And then we added new refactorings to both of them that have never appeared there. And we're really anxious to hear from you what you think about that. If there's something more that you think is kind of core to the experience, do let us know. Another one of those show of hands, how many people use ReSharper?
13:41
Yeah. So what I want you to do is, if you install the latest RC of 2015, I want you to just try it for a day without ReSharper, and then send us a mail letting us know how long it was before you went and installed it. If you've got 15 minutes, an hour, that's all we're curious about.
14:01
No, ReSharper's a great product, but we want you to use ReSharper to take your Visual Studio experience to the next level. We don't want you to feel that the product is useless out of the box. You should be able to get through that first hour and then decide that you want to enhance above and beyond, not sort of dig yourself out of a pit of unproductivity.
14:21
Another kind of interesting thing here, and this is actually entirely self-motivated, but we have unprecedented cross-language support. If you ever had to do anything in a solution that had both VB and C-sharp projects like Roslyn, in the older versions of the product, things like find all references, go to def, rename, these things didn't work. They just fell apart. They reflected the fact that these two products
14:41
were developed by two different teams and two different floors and two different buildings and two different product units at Microsoft over the last 10 years, and now those things are all gone and all of those great features work. So if you have to rename something in your business layer in VB and you want that to be reflected
15:01
in your presentation layer in C-sharp, you can do that and it'll all be safe and refactored very well, and that's a great thing. Also, people have been complaining for years about edit and continue and how it just never seems to continue. So we put out a survey a while ago, and big surprise, people wanted to use lambdas.
15:21
They wanted to use link and lambdas, those great features that we added in 2008 that have made the product not work since 2008, and we went out there and we did the work to make lambda support work so that you can modify lambdas, you can modify the inside of lambdas, the outside of lambdas. I'm not sure you can add and remove them, but you can do some support with lambdas and link,
15:43
as well as those things, not just working for edit and continue, but they work in the watch windows and the immediate windows. So all those same great things that you're used to doing when you're coding, you can translate all of those experiences directly over to the debugging experience, and that's great. Has everyone, hmm, who has not seen that demo?
16:06
Lie. Oh yeah, nobody's seen it, great. Then I'm just gonna go right, I'm gonna show you that real quick, you know. Yes, I'm a huge StarCraft fan. I'm just gonna make up a brand new C Sharp project here,
16:20
and hmm, yes, a brand new other languages. C Sharp project here. Oh no. Let's see how that goes. This is actually the new Visual Studio Community Edition, so it is 100% free and supports add-ins, which is great.
16:41
You cannot see anything. You cannot see anything, oh okay. Let's see, can you see that? All right, great, now I can't see it. Let's try the duplicate mode. The poor audio-visual guy is back there trying to figure out what all went terribly wrong just now. So let's go zoom in on this here,
17:00
and I'm just gonna, traditional thing, I like to say processes equals, let's see, process, and you see I can add a using for that, dot get processes. And kind of my favorite thing to do here is,
17:22
let's say, just run this project here, just gonna, and, go away. For some reason, I just wanna understand kind of what my top processes are. So I'm gonna say processes, actually let's do this in the immediate,
17:42
in the watch window, so I can dig into it all after the fact. Processes dot order by, it goes to p dot working set,
18:06
take 10 dot array, and let's see what we get there. So in previous versions, that would have just told you that you can't use that feature, go away. And so now, you can just type a lambda right in the watch window.
18:20
Is that not what you guys wanted us to do? Should we take that feature out? Okay, and actually, can I do that? Can, for top processes, equal processes dot order by,
18:43
I'm just gonna take that same code, and say dot working set, dot take 10 dot two array, and just add that, and let's see if I move the instruction pointer up there. Great, I want it to be outside of the lambda,
19:00
so we step right over it. Now I'm going to say debugger step over, and I look at, and voila, edit and continue. Not using that, the same code I just added a lambda to the middle of an E and C session. Thank you.
19:20
So now we're back to the slides from current slides. So yeah, those are just some of the things that we really didn't want to go off on my team, and just start off this release by saying, let's go do a bunch of brand new exciting things. Okay, we really did want to do that, but what they told us was, great, go do some new exciting things you're interested in later, but right now, we've had the community waiting
19:42
for a couple releases now with no language features, with not enough improvements to the core debugging experience, let's go back and really fill out those experiences that we have been putting on hold while we're working on Roslyn, and so that's one of them. As a matter of fact, we actually got ahead of the curve on some of the complaints. We actually did the work so that edit continue works better
20:00
in async methods and iterator methods, because we know we just released async, but we were pretty sure that the pain was going to be felt fairly soon. We were feeling it. So async, async iterators, lambdas, link queries, all of that great stuff, working for you in the debugger now, and if there are more experiences you want us to unblock, do go out and let us know on user voice,
20:21
because there's a guy on our team who's just passionate about unlocking edit and continue experiences. Just the one guy, but he is really passionate. And then sort of the other thing that we're adding here in this release as part of our ID offerings, hopefully you guys have heard about code analyzers, so these live analyzers,
20:42
that same great experience you have from the compiler today where you type keyword incorrectly, you miss an identifier, you leave off of a semicolon, the compiler tells you in Visual Studio, hey, you made a mistake. You should go fix that while you're making the mistake. That's great for language feature bugs
21:00
when you're not using a language feature in a way that's semantically meaningful, but what about when you're using an API role? What about when you are not implementing the correct framework patterns? What about when you're calling an Azure service and you're not doing it correctly? With code analyzers, we actually opened up all of the infrastructure that we use to write for diagnostics so that other people
21:22
can write these live error guidance while people are coding and actually ship those with their libraries on Nougat, so you'll see that from a lot of teams at Microsoft and beyond Microsoft kind of moving forward. For example, the Azure team put out their SDK and if you go and reference their SDK from Nougat, it pulls in one of these analyzers behind the scenes
21:42
and it will actually start yelling at you politely advising you when you misuse the API, when you, for example, do something, you set server-skewing time values. Well, they know what they wrote, but it's in there. And you can write those too. If you ever tried to write an FX cop rule before,
22:03
it was kind of a pain, less of a pain now. If you are big fans of StyleCop, as we are, and you wanted to hear about those errors before check-in time or before the build failed, now that's actually there. We have an open source project for StyleCop, so you get that live experience and you also get quick fixes
22:21
so that not only does StyleCop say there shouldn't be an extra white space there, but you can actually hit a button and it'll take out the white space instead of making go find the white space. And you can fix all the white space things in a file or a solution. So incredibly powerful tooling support there. It's gonna take using .NET APIs to the very next level.
22:41
There was a time when you say that every API's gotta come with dot comments. It's gotta come with little info that summarizes what a method does or what the parameters do. Now we're gonna want it where it's gonna give you the dot comments and it's gonna give you the guidance and it's gonna tell you how to use that API correctly. If you are an API author, I strongly encourage you to go out there and look at how you can apply this to your tooling
23:01
now to give the best experience to your developers. Moving right along. Right along. Oh, well, yes, as I said, the edit and continue features. And kind of running quick to WPF.
23:22
A lot of people have been talking to us about WPF and the common request that we get from them is a roadmap, what are you gonna do with it? Where is it going? Is it going anywhere? Is it dead? Is it resurrected? Is it a zombie? Is it gonna be on the next episode of The Walking Dead? Or Game of Thrones, no spoilers.
23:41
And so that's exactly what we did. We actually put out a blog post talking about our roadmap for WPF and the investments that we're gonna do in there. We understand from people who are making rich client applications for Windows that WPF is an essential part of their business and what they're running. We know that there are issues with it and our team is actually going and, well, not my team, but the broader my team
24:01
is actually going and making investments in WPF to get to those column pain points, looking at old bugs, reactivating them, fixing them, performance enhancements. We are making a lot of investments in performance, getting better integration with the latest version of DirectX, supporting modern hardware. So dealing with high DPI devices,
24:21
multi-touch devices, making sure the responsiveness of the WPF app on a touch device is exactly what you would expect. Not 2002 touch device, but 2015 touch device where it doesn't take 10 seconds. And really beefing up the tooling to continue to give you the most productive experience for building those apps.
24:41
So if you are doing anything with WPF, hopefully this is going to give you some relief and please continue to give us some feedback on that. The road ahead for WPF is long. As I mentioned, those things, the high DPI stuff, scrolling, virtualization things,
25:00
if you have large volumes of data, we want to make sure that those things are virtualized and right so your application remains responsive. I'm sorry, did someone say something? Nope, nope, nevermind, might have misheard. So, yes, great things, actually the WPF team took some of the work we did on Roslyn
25:21
and they actually built their own set of new services on top of that so that you have a great experience there. So that's one of the first teams to take something from the Roslyn kind of project for VB and C Sharp and apply it to another language. And so you should see a much better experience there. Actually the TypeScript team is another person, another group that's kind of taken what we've done and pulled that out there, so great experiences there.
25:46
So, going further to my topic, and after this section I'm just gonna walk off the stage and put the slides on auto. The .NET compiler platformer Roslyn, going from these old, no offense to anybody
26:01
that really loves C++, but old crusty C++ apps that we had, these EXEs that were written in the 90s, literally they were started in the 90s. The C Sharp native compiler is in C++ and is like 15 years old now, and the VB one is either 15 years old
26:20
or they might have reused bits from the old ones, so it could be like 20 years old, but they're really old is what's important. And fast, but old, and some of the ways that that shows it's very hard to extend them, it's hard for us to add new language features, it's dangerous for us to add language features in a way that doesn't potentially break other language features, they're very brittle.
26:41
Additionally, they are not written to take advantage of modern hardware, so my machine has four cores on this box here, I know developers who have eight core machines at their desk, somehow I managed to get 12 on my home machine and it only cost me a figure that I can't save because of obscenity laws,
27:00
but modern core computers can take a lot of horsepower and throw them at your work. The old compilers, no matter how much you have, will only use one core, and so it'll be slow compiling and you'll look at the process manager and he's like, oh yeah, I can do anything now. I guess that's good if you like to look at YouTube videos while you're building,
27:20
but if you wanna build faster, you wanna use all those cores, and with Roslyn, we have completely designed it with that in mind so that it can take advantage of that hardware. If you have a very large project, we're gonna be compiling all of those different methods and types on different cores simultaneously and that's gonna significantly improve your build times. Additionally, we've opened up all of the things
27:41
that we know about C Sharp and VB to others as an API that they can then build all these code analysis tools on, these analyzers, as I say, they can understand exactly what overload resolution is doing and exactly what a name binds to or the flow analysis rules, all the knowledge that we have, instead of throwing that on the floor, we are exposing that as the API
28:01
and then we built our entire ID on top of that. In the past, the ID kind of had some very dark magic secret handshakes that it would do to get its job. In some cases, the ID team actually had to just outright re-implement the logic in the compiler. That has been cleaned up so that we can deliver new features faster to you that you need,
28:21
new tooling, and then other people beyond us can also build great tooling at a fast rate. They don't have to go and completely rewrite the C Sharp parser for their own tool, or Sharper. So, and of course, we have open sourced Roslin and we'll talk more about open source in a bit.
28:41
So, that's your traditional pipeline. Code goes in, goes into Roslin, it spits out IL. You take in all the BCL and other references and deploy and now these other two things that we've added on to our tool chain so the ASP.NET compiler is able to do all of this compilation stuff using Roslin in memory on the server.
29:03
It does not have to spit out binaries. That's gonna improve your server compilation times significantly, this in-memory compile and run model. Once you make a change, it can just recompile it and run it and it all happens very quickly. And then the .NET native tool chain is this tool for taking an existing IL app
29:22
written in C Sharp or Visual Basic or F Sharp or a combination of those and compiling it to native code and optimize with the C++ compiler for the platform that you're targeting. So that your, for example, your Windows phone devices, and I know all of you have Windows phone devices, and your apps on there will be quite snappy.
29:41
They will run as fast as if you had written them in C++. And so, that's kind of the extension that we made there. You can turn that on optionally. And all of that's still built on top of all the new Roslin infrastructure. Okay, so next big thing there,
30:01
coming with .NET 2015, coming with the next version, is the Windows, the universal Windows platform. In 2013, if you might have saw in update two, we released this idea of a universal app. And a universal app was the idea that an app could have the same identity on multiple stores. You could go to the Windows store
30:21
or the Windows phone store and buy an app. And we would note that app was the same logical app as one in the corresponding store. So you only had to buy one app once. Or if you bought some micro transaction in the game, you bought an upgrade for your Mario thing. You would have that same upgrade on your desktop when you went home or vice versa.
30:43
We've taken that and completely redone that in the latest release. With the universal Windows platform, it's not just about having a shared identity, nor is it just about sharing code files. In 2013, it was linked files behind the scenes being built into two different EXEs,
31:02
shipping to two different platforms. Now you can have a single executable, the single compiled binary that targets all of the platforms that run Windows 10. So that is Xbox One and Windows 10 on the desktop and Windows 10 for mobile tablet devices and on the phone and the Raspberry Pi and Azure
31:23
and anywhere else where Windows running, you can write a binary that will deploy to those environments. And .NET native is an essential part of that story. Then taking that common binary format and then compiling that for the specific form factor that you're running on. And we're doing that not just on your box
31:42
so that you can debug the experience as it's gonna be, but also in the cloud so that when you upload those to the store, we will go and optimize the heck out of your binary so that your end users get the best experience possible. So you see there goes some of the improvements in cold startup time, 40% improvement.
32:02
The first time someone installs your app, they're getting it into their hands almost twice as fast as they were before, running it and using it. The warm startup, 31% improvement and the memory usage is using less. So all around, you are making better apps, better apps for your customers and more money in your pocket.
32:23
Wordament, yay. And then going beyond Windows because I know all of you are like, ah, who cares about not Windows? But for those people who care about other platforms, our partnership with Xamarin has never been stronger. .NET and Xamarin together is a great combination
32:41
for building the best apps for any of the major phone platforms for Windows, iOS and Android. Taking a single, the logic of a C sharp app and sharing that and running it on multiple devices using the Xamarin tool set and its integration with Visual Studio is the way to go and most powerful and productive platform.
33:01
And it works, it integrates just as well with the Windows universal platform. So instead of potentially having a iPhone app and an Android app and a Windows desktop app and a Windows store app and a Windows phone app and an Xbox app, Netflix has all of these apps. Understand, it sounds crazy, but they have all of these apps.
33:21
I think Netflix might've said they have like 30 different apps they have to run. Now you can at least get all of the Windows things out of the way. But with .NET and Xamarin, you can actually further compile that down to write the minimal amount of things to reach the broadest set of customers. Obviously something very valuable if you are dealing with bring your own device situations
33:42
in enterprise and you have people bringing apps, you want to support what your employees are bringing in. And you can't control that, so. Great first-class designer support for not just Windows, but for iOS and Android in Visual Studio through Xamarin
34:03
so that you get that same WYSIWYG drag and drop experience that you may be familiar with the Windows when targeting these other platforms. So again, Visual Studio is the most productive place to do these types of things, and we want that to be the case. And if it's not, let us know so we can go make it that.
34:25
Talking about ASP.NET 5, something that is built from the cloud up, I don't know if that's the slogan in the marketing, but built from the ground up at least with the cloud in mind, which is the very tall amount of building. You know, the idea of this small,
34:43
very modular, portable runtime that you can just throw on a cloud server and it can get up and going with the minimal amount of configuration is something that we know is very, very important for people. If you've ever had one of those sort of wars between you and an IT administrator, a network administrator, where you wanted to deploy an app
35:00
and they did not want to deploy the latest version of the .NET framework because they had not tested the 400 existing apps that existed in the organization under that server, so you had to wait two years before you could release an app that took advantage of the latest libraries or language features. With ASP.NET 5, that is a battle that you don't have to fight. You can just work around them.
35:20
You can ex-deploy your app to the web server and it'll run in a completely isolated mode. It doesn't have to have .NET installed machine-wide. It doesn't have to touch other people's apps. You can just deploy it on any cloud provider and then up and go. So that and many other things were done with ASP.NET 5, really with the cloud scenarios of now
35:43
and the future in mind. And it also is modular enough that we can deliver that value much quicker cadence than we have in the past. So ASP.NET 5, just to kind of compare and contrast how it works when it's running on .NET 4.6,
36:03
as I mentioned, it runs there, and running on this .NET core, you get the cloud readiness, you get the modular design, dependency injection, all of that stuff is still there. The fast deployment, and it'd be funny if it was only open source on one of them. But it is open source across the board.
36:20
That last bit that I was just talking to you about, the idea of having side-by-side deployment of apps running in different versions, potentially of ASP.NET 5, or that is something that is specific to the core bits, the core runtime. And there's a little bit of tweaking one has to do there. But that is, we're gonna continue evolving 4.6,
36:41
but the .NET core stack is something that we wanted to build from the ground up with these scenarios and not without any encumbrances. So you're gonna get that. The fast startup, low memory, high throughput stuff also works great with .NET core 5. And you don't have web forms.
37:01
There are a couple other differences between them. But for the most part, you're gonna be able to start jumping into getting those same benefits right away, even if you're not using the core, you're building on 4.6. Don't worry, we're not leaving that behind. We're still bringing all this value to the table on 4.6. So, on to the next spot, talking about open source,
37:24
which is not even a bad word at all at Microsoft. Why are we open-sourcing .NET? Because everyone else is doing it, idiot. No, no, it's totally not that.
37:40
Actually, it lays a better platform for cross-platform. I mean, there's no doubting that. A lot of the work that .NET's already had making inroads into other platforms has been fostered by the open source community through the Mono project. Microsoft is a great company, but it's one company, and it's a big world. And having a legion of developers in your ecosystem
38:01
able to contribute to what you do and you contribute to what you do make for a better, healthier, stronger ecosystem that can just do more things. Microsoft is doing great work, but we're not the only people doing great work. We just got through talking, or I just got through talking for a bit on Xamarin, and that's somebody who's not us who just spontaneously decided to go out and do that.
38:22
And that's something that you want to enable people to do more of, and they can do that when they don't have to reverse-engineer your stuff. And they can then make your stuff better. As I said, Xamarin, OmniSharp, Sharp Develop, all of these different projects out there
38:41
are part of our ecosystem. We want to make that ecosystem even stronger, and we're gonna see some of that with Roslyn as part of it. So what are we open sourcing? The actual .NET core runtime, this new core CLR runtime that is running on multiple platforms on Mac and Linux,
39:02
that is open source. If you're really, really interested in just-in-time compilation, so that guy, then you can go look at that. If you're interested in libraries, so more of you, that's there. The ASP.NET web server stack continues to be open source. They've been open source for the years and kind of leading the charge there.
39:22
FSharp has been open source for a while. So all the tooling support is open source, and of course, we take contributions and the Roslyn compilers themselves are open source. I mentioned again, FSharp and all this tooling are there.
39:42
You can kind of go check it out and contribute it. Get started at github.com slash Microsoft slash .NET. There's actually a slash Microsoft slash .NET and a slash .NET, and so just type whatever you want and we'll figure it out. Don't actually know how we put that all together.
40:00
So we found out when we open sourced, we announced that we were open sourcing CSharp in last year, about April, and I remember our team was nervous about it because we knew we were gonna open source for six months before that, but everyone was terrified that we would spill the beans before the big announcement. We made that and it was great.
40:20
Everyone was very excited about it. It seemed like it was a great thing, but we realized that we weren't really adhering to the principles of open source. We were what we call source open. You could see our code, but you couldn't touch our code and we didn't necessarily work as much in the open as we wanted to. You could kind of see occasional drops
40:42
that would come in from us, sinking in from our internal TFS server, and we've changed that all around. We've gone from crawling to walking to running and now we're developing fully in the open. You can see us go through the same PR process as you're going through to commit features and bug fixes.
41:01
We are accepting community contributions. We are actually posting our design notes out there, recording our design meetings, our API design reviews, and putting those out there so that you really get the experience of seeing how things are going at Microsoft and being able to participate in that process, give us your feedback, review our code as well.
41:21
We are not just saying that we're open source, we're living open source. And that is where we're at and we're just getting better at it over time. As a matter of fact, hopefully we're still in duplicate mode.
41:44
And I swear, this was not conveniently timed to correspond with my talk here.
42:03
you're not gonna see that. Man, these are all the different pull requests that the team has put out for all their bug fixes on the C-sharp and the VBE compiler just by our team. These are all live happening as well as from the community and I was actually gonna show you mine
42:22
because I made my code so pretty. But the point is that we're out there and you can actually go look and watch your bug get fixed and then tell us we didn't really fix it and tell us when we fail to spell words correctly.
42:41
So yeah, we're out there and that continues with the rest of well, .NET and all of our projects. So you can see it's all up there. Now, moving on right ahead. So as I said, as we got more into open source,
43:02
we actually moved, not only did we get better at engaging the community, but we also moved from CodePlex to GitHub. We went where the community was the strongest for open source projects and we saw some amazing acceleration in our open source community. We went, we just multiplied or applied our PRs
43:20
from the community by five in half the time. We've been open source on CodePlex for like nine months and we got that many forks or that many issues filed. That was triple as many issues that were found and filed by GitHub. So by being there where you guys are apparently,
43:40
we're doing so much better and please come out and jump on that. It's all a welcome to the party. We actually, for the last year or so, have been giving out mugs, at least on the Roslyn team, shipping them to people that give open source contributions.
44:00
We actually ship them out and depending on the language of their contribution, a cup less than tea greater than, a cup less than tick tea greater than, or a cup of tea if you're contributing on the VBSI. And we ship that out to people and they seem to like it. There's actually a handwritten note that is signed by some guy
44:21
to one of our VB contributors for fixing some issue that we had in the Visual Basic scanner. So we are, go out and get a mug, please. As I said, the design notes, not only for the previous version of C Sharp, you know, I was working on it, but as we're working on C Sharp 7,
44:40
we are designing in the open. When you make a suggestion, we talk about it, we bring it to design meeting, we discuss it in that meeting, those notes are put out there within a week and look at all the comments that people kind of come in and they tell us what they feel about our findings and we take that back into the next meeting. This is the place to go if you want to contribute to the future of the tooling,
45:01
the future of the language, is our open source presence on GitHub. So that's, that's it. And as I said, it's been going very, very well. There's been great community response. Actually, we were at the top of Hacker News. We had all but two of those spaces filled
45:20
that were all about the things that we were putting out at Build. And the other thing that was there was that we landed on a comet 300 million miles away from here. So landing on a comet and opensourcing.net. One of them is clearly much more relevant to the future of mankind. And I'll leave it up as an exercise
45:42
to the reader which one it is. As I said, fostering this vibrant .NET ecosystem, we have the .NET Foundation. We actually opened a separate entity that shepherds the .NET Foundation. Microsoft is just part of that along with people like Salesforce and Mono and Coachbase and having this foundation
46:04
that oversees the .NET framework, the .NET languages and tools contributed by other people. So looking at what's out there in there, we have, as I said, Roslyn and ASP.NET 5 and MVC but also things like Xamarin Mobile and Xamarin Authentication, the Azure SDK,
46:21
the Reactive Extensions, the .NET API for Hadoop, Web Client, MEF, MSBuild. See, so all these things from us out there in the .NET Foundation and it is just growing. If you have something that you feel a great contribution to the .NET Foundation, by all means, head to the .NET Foundation.org
46:41
and reach out to us because we'd love to have you there and provide you with whatever support that we can or they would be happy to do that. It's kind of weird. And just in case you had wondered, F-Sharp actually has its own foundation. As I said, they kind of beat us to the punch on open source by quite a bit.
47:02
They had their own foundation. F-Sharp continues to be the trendy language that does everything right first. And that's okay, I like it because then we just get to take all their stuff and get the credit. No, F-Sharp is a trendsetter but they have their own foundation that's doing quite well, the F-Sharp Foundation, and that's why they're not part of their
47:21
TypeScript, I think, is obviously not .NET language but it's under a different open source project. It's our open source presence that Microsoft at least goes beyond the .NET stuff but with .NET, it's also quite strong despite the fact that we just kind of showed up to the party quite late. So, talked about that.
47:42
Moving right on to cross-platform. I'm actually running out of time. So, as I said, there's this cross-platform stack built on .NET Core that runs on Windows, runs on Linux, runs on Mac. We're out there building out the platform support on these other platforms and making it where you can run your shared binaries. That's our story for the services,
48:01
for the cloud side of things. If you're running Linux servers in your cloud provider, then you're gonna be able to take your same .NET assets and run them over there. If you're running Mac, OS X in the cloud, then you have that too and of course you're running Windows, we're there. For the UI side, for mobile apps, as I said, .NET,
48:22
Xamarin, Unity, these are kind of the golden path for building things that run cross-platform, cross-device using that and we are part of that and helping with that. So, I showed you this diagram earlier, kind of focusing on the bit
48:40
that applies to cross-platform. You get rid of all the legacy 4.5 stuff and the Windows universal stuff because it wouldn't make sense for the universal Windows platform to run on Linux. We'd have to call it something else. I guess it probably runs with wine, but ASP.NET 5 and the core CLR, the modular .NET libraries, the app local API distribution model,
49:01
the dynamic compilation, all the stuff that I talked about, that is cross-platform. It's built from the get-go with cross-platform in mind and those shared components, the JIT, the new reJIT compiler, the libraries, even Roslin, the compilers themselves run cross-platform. We actually, if you were to go to the Roslin repo,
49:22
which I just took you to and you would look at the status of our unit tests when you check code in, we actually validate that on Windows and Linux and Mac to make sure that the story stays functional on all those systems, all those platforms. So for developers, that means new workloads and technologies you can take advantage of.
49:41
If you've got some app or service that runs better on Linux and you want to go over there for Hadoop or something, then you can get right in there and use your existing .NET skills. You don't have to go somewhere else. You can take all of that and the great productivity benefits of Visual Studio. You can do remote debugging of Linux apps written in .NET from Visual Studio. You can take advantage of that
50:01
and approach these new things. Organizations, new market opportunities, platform diversification and also platform unification. If you've got VMs running one OS and other VMs running the other one and you want to unify on something and that unify thing isn't Windows, that's okay. You can still run your cloud services and your websites.
50:27
All the things that I just said. Data access, everything works. You don't have to move your data to Linux. We are making sure we're there so that wherever your data is living today, you can leave it there because no one ever moves data anywhere.
50:40
If you've got data in INI files somewhere, it's still there on the file share. We know how it goes. Accessing your data from this cross platform does not require migration and we're making sure that the data access APIs just continue to work and your app just does what it did before. It doesn't have to do anything special.
51:01
Here are the ways to acquire that. I don't know if the slide deck will be available on the website afterwards, but you can certainly go grab it. Goes to call to action. Go download these things. Play with them by all means. Download Visual Studio Code. That's a new cross platform editor that we put out that actually allows you to edit C Sharp code
51:21
on other platforms but using the same Visual Studio idioms. It's built with support for AC.net 5 from the get go. Also supports TypeScript, JavaScript, all of that. We've also got plugins for Sublime through OmniSharp. Look at these things through the Azure VM Gallery.
51:41
Check out the tutorials for that. And of course, as I said, get involved. Please come contribute. We'd love to hear from you. Check out the .NET blog. Check out our presence on GitHub. Feel free to tweet at us. Feel free to tweet at me. I am that VB guy. You don't have to remember my name.
52:00
Just think of that VB guy who was wearing that VB shirt at that conference. That's why I picked it because I just assumed that no one would remember my name in the CN forums. And of course, we're continuing to look at connect and user voice to get feedback. If you have an item that you wanna suggest and you wanna vote on it, you can go to GitHub. You can also go to user voice and just shout out about whatever is bothering you
52:21
other than the max path character limit. That is something we don't talk about. Actually, it's kind of a sad story. There's this guy who had just joined the team. I think he was like, he wasn't even like an intern or something like that. He had just joined the team and some poor person sent him out and said, oh yeah, yeah, you're a new PM. You gotta go respond to customers.
52:41
I want you to go and start responding to these user voice issues. Go respond to that one right there. And the kid, he gets on there. He's been at Microsoft for like a week or two and he's like, oh yeah, yeah, max path. Well, thank you for that. Unfortunately, we can't resolve this because of these problems and all of that. Next day, he wakes up, Microsoft executive will so and so has said that max path cannot be fixed.
53:03
Microsoft executive will says this and yada, yada. And so now he gets death threats and hate mails and all of that. And he's just like some guy that was working at the company for a week. Probably why we don't do that to people anymore. But like, if you ever see him, you probably won't see him on the street, but if you had seen him on the street and you mentioned this, he becomes very irate.
53:24
I think it's funny, but it didn't happen to me. You can learn more. I can say there was a lot of content here that we managed to squeeze down. We've only got five minutes left despite my best efforts, but you can learn more about the things that I talked about in much greater detail, which much better demos
53:40
than I would have shown you later on today. I didn't mention the talk that happened the previous hour because it wouldn't really help you anything, but what's new in ASP.NET 5, Damian Edwards, John Galloway, actually ASP.NET PM, talking about that today at 1.40. Omnisharp.net, you can look at that,
54:02
.NET Core up and running with ASP.NET on Linux. If you're interested in the cross-platform, if you're interested in the open-source things, getting the first PR in the .NET, another tale from an OSS contributor, great thing to go. If you want to learn about the Universal Windows App Development story I talked about, there are two different talks that you can pick if there's a conflict, Universal Window Apps, an introduction to Windows 10 UWP,
54:23
cross-device with Xamarin and other bits. There's a bunch of talks that you can go check out. I'm gonna leave that up there just so you can see them into your mind. I'm gonna say, on your way out, there are the little voting things. I'm sure they told you about that in the last talk, but they told me to tell you again. Yeah, there are still the voting things out there.
54:42
So my name is Anthony Green. Just keep that in your mind, Anthony Green, Green, Green. Then once you get outside, it's that VB guy, but right on the way out, it's Green. Make sure that you vote and let them know how you feel. Otherwise, they won't give me back my passport and I can't go back.
55:01
Um. And aside from that, I hope I can get to some questions and I hope you all have some questions. And so, questions, anybody? Raise a hand, you. And yell.
55:23
Yes, .NET Core is, you asked if it was limited to .NET 4.5 or are you saying would it allow you to write apps for 2.0?
55:42
There are some limitations, but for the most part, they have a significant amount of overlap. Obviously, things like Windows Forms would not be in .NET Core 5 for ASP.NET. Windows Forms, WPF, those UI stacks there, Web Forms is not there, but if you're building MVC,
56:01
that's there, MVC 6, Web API. Like I said, any of the sort of the desktop stuff there, I know, WCF is there. And of course, any of your .NET portable libraries that you use like JSON, .NET or something like that, those are all gonna work over there as well. But it's kind of, it's built for the server stack
56:21
and so if you're using server technologies, those you should be good at. Anybody else? C Sharp, anything, what do you want? Yell. .NET native for standard desktop apps. So, somebody is thinking in that direction,
56:41
we want to get it right for one thing first and then move it up to two. I kid you not, when we started working on .NET native, we were like, we want this app to build and then we got two. And now, it's a much larger number than that, but that's just where it's at. We're certainly thinking in that direction about, expand that to other platforms,
57:02
console apps, Windows desktop apps, but right now, we're focused on getting the best story for developing for those devices like the phone and Xbox. You. ClickOnce 2015.
57:22
No. So, ClickOnce is still there. I don't think that there's any improvements one way or the other. It's kind of built into IE. I'm not aware of any specific story around ClickOnce or Wix, but feel free, if you tweet at me or something like that,
57:42
then I can certainly point you to someone who might have a more authoritative answer, but I've heard nothing one way or the other, and so I assume that it is still just doing what it did before. As we said, everything has to keep working that you had before. Anyone else? Favorite C-sharp language feature, something you want us to do, something we didn't do, pattern matching, anybody?
58:01
No one? Everyone's good? Am I missing anybody? Oh, you. So, I don't know. I mean, the TypeScript, I'm not sure what you mean by the plan specifically. They're working on it. They are, right now, I think, looking at just making sure it works with ES6
58:23
and continuing to add features to it. I don't have any more specific plans, a thing to say about that, other than Anders Hausberg, the father of C-sharp and sort of .NET is splitting his time between us and them, and he's continuing to work very hard over there. I know they just kind of put out a new compiler they're working on that's supposed to be significantly faster.
58:42
They're just hard at work. If you're worried about it being vaporware, no, it's not. And as I said, VSCode that we just released of 2015, if I'm not mistaken, has TypeScript support out of the box and if it doesn't, it's gonna have it real soon. So, I think there might have been something up there.
59:02
You! I'm sorry, I didn't quite hear that. Is there any way to know the...
59:28
Mm, yeah, I'm just not sure, but let's talk about it right after the talk, just so that I end with knowing something. Someone, a question I know. An easy one, please.
59:41
No, uh... Anonymous iterators. So, we want to do them. So Visual Basic has iterator lambdas. We thought about doing iterator lambdas in C Sharp. We decided not to do them because we wanted to have anonymous iterator blocks instead. So the issue with iterator lambdas, which VB has, is that you have to then make a delegate and then you have to invoke it.
01:00:00
It returns an object. There are a lot of allocations. We decided we didn't want to go with that route in C Sharp. Right now for C Sharp 7, what we're looking at is anonymous functions. Not anonymous functions, sorry. Nested functions. So they did need to declare a function inside of another function. So you'd still potentially have an iterator method that was inside of your method, but there wouldn't be an intermediary delegate
01:00:20
and you could still just invoke that and get back an object. But I think we're also looking at anonymous iterator blocks inside of methods as well. And with that, I've gotta be... Ah, two minutes over time, but we started two minutes late. Class dismissed. But feel free to keep asking me questions and if you see me around the conference,
01:00:40
run up and I'm here until tomorrow. I'll be here all day tomorrow. So if you have any questions, I'm more than happy to do that as long as I vacate the stage. Other than that, green, green, green. Thank you guys. You've been great. Thank you.