>> HI, I'M SCOTT HUNTER, THE DIRECTOR OF PROGRAM MANAGEMENT AT MICROSOFT ON THE . NET PLATFORM. I'M EXCITED TO TALK ABOUT THE FUTURE OF . NET AND ESPECIALLY . NET5. LET'S GET STARTED. FIRST OFF, . NET HAS GROWN LEAPS AND BRANDS OVER THE YEARS, WHEN WE STARTED OFF WE DID WEB, DESKTOP, AND NOW WE DO CLOUD, GAMING, MOBILE AND TI AND NOW WE THINK IT'S THE PLATFORM YOU CAN BUILD ANYTHING. THE ECOSYSTEM OF . NET, HOW IS IT DOING IN THE WORLD? WE HAVE ADDED DIVERSE AND WE ARE THE MOST-LOVED FRAMEWORK TWO YEARS IN A ROW AND WE OPEN SOURCED IN 2014 BUT SINCE THEN WE HAVE BEEN ONE OF THE HIGHEST VELOCITY PROJECTS IN GITHUB WHEN IT COMES TO CONTRIBUTIONS, ISSUES AND THINGS FILED. AND WE ARE THE TOP 5 LANGUAGE IN GITHUB AS WELL AND PERFORMANCE IS A HUGE PART OF YOUR PLATFORM SINCE WE ANNOUNCED . NET CORE SEVERAL YEARS AGO, WE ARE IN THE TOP TEN OF ALMOST EVERY BENCHMARK IN TECH AND POWER WHICH IS A PUBLIC DOMAIN RUN BY THE COMMUNITY AND SHOWS OUR ADHERENCE TO AWESOME STANDARDS. WHO IS NEW TO . NET? MANY OF THEM ARE STUDENTS THAT ARE PICKING UP . NET FOR THE FIR TIME AND WE'RE EXCITED ABOUT THAT. YOU MIGHT ASK, HOW BIG IS . NET? WE HAVE OVER 5 MILLION DIVEFERS AND ADDED A MILLION IN THE LAST YEAR AND THEY ARE USING OUR NEWEST AND LATEST PLATFORM AND AS WE ADDED CROSS PLATFORM WITH THE DING OF . NET 1. 0 WE'RE SEEING OUR CUSTOMERS USE THAT. YOU CAN SEE PEOPLE USING IT ON WINDOWS AND MAC AND LINUX AND WE HAVE OVER 200 PEOPLE PUBLISHING TO LINUX USING . NET CORE. I'M EXCITED TO TALK ABOUT . NET5, THE NEXT VERSION THAT BRINGS CAPABILITIES TO YOUR APPLICATIONS. WE HAVE AWESOME SUPPORT FOR BUILDING WHAT I CALL A SINGLE FILE APPLICATION. THAT'S WHERE YOU TAKE YOUR APPLICATION AND YOU DON'T REQUIRE . NET TO BE ON THE MACHINE AT ALL, YOU COMPILE . NET INTO YOUR APPLICATION AND YOU GET A SMALL, SINGLE FILE EXECUTABLE THAT YOU CAN COPY TO MY MACHINE. THE THING IS DRYASOL CONTAINER IMAGES, WE ARE CONTINUALLY STRIVING TO MAKE . NET RUN BETTER AND BETTER IN CONSTRAINED ENVIRONMENTS SO YOU CAN MAKE THE SMALLEST CONTAINERS EVERY WITH . NET5. AND WE HAVE AMAZING WEB AND CLOUD -- MICROSERVICES AND CONTAINERS AND KUBERNETES WELL WE WANT TO BE THE BEST FOR THAT FOR YOU. AND NEW PLATFORMS ARE COMING OUT ALL THE TIME, YOU HAVE PROBABLY -- MICROSOFT PRODUCTS LIKE SURFACE X THAT RUN ON ARM 64 AND WE HAVE NATIVE SUPPORT FOR THAT IN . NET CORE AS WELL AND CONTINUED IMPROVEMENTS ARE COMING AS WELL AND NEW LANGUAGE FEATURES. WE'RE EXCITED ABOUT THIS RELEASE. WE JUST RELEASED . NET FOR APACHE SPARK. THE MECHANISM OR SERVICE FOR WRITING BIG DATA APPLICATIONS THAT CRUNCH HUNDREDS OF MILLIONS OF ROWS OF DATA AND HISTORICALLY IT WAS ALL DESIGNED FOR LANGUAGE LIKE SCALA BUT WE HAVE ADDED C SHARP AND S SHARP IN . NET AND IT'S PUBLICLY AVAILABLE AND WE HAVE AWESOME SUPPORT FOR THIS IN AZURE. I WANT TO TALK ABOUT THE PERFORMANCE IMPROVEMENTS WE HAVE DONE IN . NET. WE HAVE DONE A LOT. YOU CAN SEE HERE BETWEEN . NET 3. 1 AND NOW WE ARE 30 FASTER FOR SOCKET CONNECTIONS ON LINUX. SERIAL APPLICATIONS, THEY ARE DOING WEB APIS, AND IT'S ABOUT 20 FASTER NOW WITH . NET5 AND AS YOU SERIALIZE LARGE DATA WE WANT TO MAKE THAT FASTER AND WE ARE THREE TIMES FASTER, ALLOCATING NO MEMORY AND YOUR APP IS GOING TO RUN FASTER AND OF COURSE CUSTOMERS ARE FAMILY WITH . NET CODING, AND YOU ASK WHAT IS THE LANDSCAPE FOR THIS? GRPC. IT'S SIMILAR TO WCF, IT'S CROSS PLATFORM, WORKS ON NODE, ON JAV HAVE, JV GE AVA AND PYTHON AND WE HAVE THE FASTEST IMPLEMENTATIONS ON THE PLANET. WE ARE RIGHT IN HERE WITH RUST, GO, C++ AND JAVA AND WE EXPECT TO BE AT THE TOP OF THE CHART FOR THE FINAL BUILD. THE LAST FEW YEARS WE HAVE RELEASED AT RANDOM INTERVALS, WHICH IS CONFUSING AND NOW WE HAVE A FIXED SCHEDULE. YOU CAN SEE BY THIS WE SHIP EVERY NOVEMBER. WE SHIPPED . NET 3. 1 IN DECEMBER OF LAST YEAR AND 5 WILL BE THIS NOVEMBER, . NET 6 NEXT NOVEMBER AND SO ON. EVERY OTHER RELEASE IS A LONG-TERM SUPPORT RELEASE, YOU CAN STAY ON 3. 1 FOR THREE YEARS BEFORE YOU YOU HAVE TO UPGRADE. YOU CAN STAY ON THE LATEST VERSION IF YOU WANT, MOVING EVERY YEAR AND WE HOPE THAT'S MAKING IT CLEAR. I'M EXCITED TO ANNOUNCE . NET CONF 2020, THE CONFERENCE WE PUT ON EVERY YEAR, NOVEMBER 10-12TH, THAT'S THE HINT THAT THE NOVEMBER 10TH IS THE RELEASE DATE FOR . NET5, IT'S HALF PUT ON BY MICROSOFT AND HALF BY THE COMMUNITY WERE AROUND . NET AND THIS YEAR WE'RE GOING TO ANNOUNCE . NET5 THERE AND RELEASE IT, YOU WILL BE ABLE TO DOWNLOAD IT THAT DAY SO JOIN US AND YOU WILL BE ABLE TO LEARN ALL . NET5. WE DO DRYASOL CONFERENCES AS WELL, WE DID ONE ON MICROSOFT SERVICES AVAILABLE AND WE WILL DO MORE AS WE GO FORWARD. NOW I WANT TO TALK ABOUT THE VERSION OF 1. NET. WE HAVE TOO MANY . NETS, BUT MY VISION MOVING FORWARD IS WE ARE GOING TO TAKE ALL THESE AND MERGE THEM TOGETHER INTO . NET5. YOU CAN SEE HERE ALONG THE WAVE OF . NET5 AND 6 WE WILL STAY THE WORKLOADS AND BUILD THEM INTO . NETS AND WE CAN USE ALL THESE FEATURES IN THE NEW PLATFORM ALREADY. OF WHAT DOES THIS MEAN FOR YOU AS A DEFER? IT MEANS THERE IS ONE SD K. THAT WILL LET YOU BUILD WORKLOADS, AND NO MATTER WHICH YOU ARE BUILDING THEY WILL USE THE WORK CLASS APPLICATIONS, THESE ARE THE COMMON APIS THAT YOU WILL BE USING. WE WANT TO HELP YOU. MANY OF OUR CUSTOMERS ARE HAPPY WITH THE PRODUCT SYSTEM IN . NET CORE AND WE WANT THAT TO WORK ACROSS THE PLATFORM. IF YOU WANT TO BUILD AN APP THAT RUNS ON WINDOWS, MAC, ANDROID, IOS WE WANT . NET TO BE YOUR SOLUTION. IF YOU'RE FAMILIAR WITH BLAZER, IT'S OUR LATEST FRAMEWORK BUILDING MODERN APPLICATIONS USING THE WEB AND KUBERNETES, MICROSERVICES AND FOR THAT IN . NET. WE ARE ALWAYS TRYING TO MAKE IT FASTER, DRYASOL, AND I THINK AT THE END OF THE 5 TO 6 WAVE WE WILL BE THE BEST PLATFORM FOR ANYTHING YOU WANT TO BUILD. WE ARE MIGRATING TO C SHARP 9 AND I HAVE LISTED A FEW THINGS, ONE IS RECORDS. IF YOU HAVE AN API THAT NEEDS TO RETURN A TYPE YOU CREATE A CLASS AND THAT TAKES A FILE. NOW WE WILL LET YOU DO THINGS INLINE SO YOU CAN HAVE A SMALL, SUCCINCT WAY OF DESCRIBING THE RETURN TYPE YOU WANT. IN MICROSOFT MICROSERVICE WORLD YOU WANT THE LEAST LINES POSSIBLE. WITH TOP LEVEL PROGRAMS I DON'T HAVE TO WRITE ALL THE CEREMONY IN MY APP. YOU CAN BUILD A MICROSERVICE IN TEN LINES OF CODE WITH . NET USING TOP-LEVEL PROGRAMS. . THE NEXT THING IS CLOUD NATIVE. THE BUZZ WORDS YOU HEAR, WE THINK WE'RE THE BEST. -- OPEN API -- DEBUGGING YOUR APIS AND WE CAN -- FOREST AS WELL. WRITE YOUR SERVER AND WE WILL GENERATE THE CLIENT CODE. I MENTIONED EARLIER GRPC THAT'S A WAY OF DOING CONTRACT-BASED APIS AND WE HAVE THE SAME FEATURES FOR GRPC. YOU WRITE THE PROTO FILE AND WE WILL GENERATE THE SERVER CODE FOR YOU, THE CLIENT CODE FOR YOU AND AS I MENTIONED BEFORE IT IS SUPER FAST. ANOTHER THING WE ARE TRYING TO DO IS WE KNOW THAT MOST OF THE CLOUD APPS PEOPLE ARE BUILDING TODAY ARE RUNNING ON LINUX. WE INTRODUCED EARLIER THIS YEAR THE WINDOWS SUBSYSTEM IN LINUX AND WE DEVELOPED WINDOWS STUDIO WHERE YOU CAN DEVELOP YOUR PROJECTS IN LINUX IN WINDOWS. YOU SELECT D SL2 AND IT RUNS IN WINDOWSES, IT'S AMAZING. THERE ARE NEW FEATURES IN . NET5 THAT CAN GET IT DOWN TO 18MEGS SELF-CONTAINED AND WE WANT TO MAKE IT EASIER, THESE ARE APPS THAT CONTAIN A FRONT-P END, MULTI BACK-END APPLICATIONS AND WE ARE GEARED TOWARD USING MANY AUTOPSIES AND DEVELOPING THEM IN THE WAY THAT YOU DEVELOP APPS TODAY AND HERE IS WHAT THE PROJECT LOOKS LIKE. I HAVE FRONT END, A COUPLE OF BACK END SERVICES THAT KNOW HOW TO TALK TO ONE ANOTHER AND ONE OF THE THINGS THAT THIS DOES IS HELPS YOU FIGURE OUT THE SERVICES SO YOU DON'T NEED TO FIGURE OUT THE IP ADDRESSES. I DON'T WANT TO NAIL THESE ON MY MACHINE, YOU CAN ADD A SINGLE LANE AND WE WILL BRING IT DOWN AS A CONTAINER AND THAT MEANS I CAN GIVE THE APP TO SOMEBODY ELSE AND IT WILL WORK ON THEIR MACHINE, TOO, THEN WE WANT IT TO BE EASY TO RUN LOCALLY, AND THAT MEANS BOOT UP ALL THE SERVICES AND LET YOU WORK WITH THEM ALL TOGETHER. THEN WE HAVE AN AWESOME DASHBOARD AS YOU ARE BUILDING APPLICATIONS WHERE YOU CAN SEE THE PERFORMANCE OF THEM, THE LOGS OF THEM AND FIND OUT THE IP ADDRESSES SO YOU CAN LAUNCH YOUR BROWSER TO SEE THEM. THE BEST PART OF THIS IS WE MAKE IT SIMPLE. I CAN TAKE A . NET PROJECT, CONTAINERIZE IT, AND PUT IT INTO KUBERNETES IN 20 SECONDS. I CHALLENGE ANYONE ELSE TO DO THAT. WE HAVE AN OPEN SOURCE PROJECT CALLED STEEL TOE WHICH HELPS PEOPLE THAT ARE BUILDING APPLICATIONS IN SPRING, AND MANY USE JAVA AND . NET BOTH AND YOU CAN TAKE YOUR . NET PROJECT AND RUN THEM IN THERE SO IF YOU'RE A MIXED SHOT DOING JIAVA AND . NET TOGETHER YOU CAN DO THIS. THE FIRST THING I WANT TO DO IS TALK ABOUT WEB APIS AND HOW WE MADE THEM BETTER IN . NET. I'M GOING TO GO INTO THE VISUAL STUDIO AND SELECT APS . NET, ALL IT MY NEW WEB API AND I WILL CLICK CREATE AND BECAUSE I'M USING . NET5 I'M GOING TO SELECT AN API AND THE FIRST THING I WANT TO SHOW YOU IS THERE IS A BRAND NEW OPTION HERE, ENABLE OPEN API SUPPORT. THAT ENABLES FEATURES LIKE DEBUGGING AND CLIENT GENERATION, STUFF LIKE THAT. I'M GOING TO CREATE THIS VERSION OF VS OUT AND GO TO AN APP THAT I HAVE CREATED. HERE IS WHAT THAT WOULD HAVE CREATED IN VISUAL STUDIO AND IT'S AN API BUT WHAT'S DIFFERENT IS LET ME CHECK HERE. SOMETHING NEW THAT HAPPENS ON THIS API, NOTICE THAT WHEN I RUN AN API NORMALLY I WOULD GET A BLANK SCREEN OR ERROR IN MY BROWSER BECAUSE THERE IS NO WEB THERE, NO CODE THERE. NOW I GET THIS DASHBOARD WHERE ICAN SEE ALL THE CALLS IN MY API I HAVE ONE, GET WHETHER FORECAST I CAN PRESS THE GET BUTTON AND TRY IT OUT HERE AND PRESS EXECUTE AND RIGHT HERE IN MY BROWSER I GOT TO CALL AND TEST THAT API SO WE WILL MAKE THAT INTERLOOP OF WORKING ON APIS SO MUCH BETTER. I MENTIONED OPEN API IT'S A SPEC SO IF I CLICK THAT LINK HERE IS A JSON FORMAT AND I'M GOING TO TAKE THIS AND SAVE IT TO MY DISK IN MY DOWNLOAD FOLDER AND I WILL SHOW YOU WHAT I CAN DO WITH AT THAT. I WANT TO SHOW ONE MORE PART OF WHAT WE HAVE ADDED. BECAUSE OF THAT SWAGGER I CAN DO OTHER COOL THINGS, LIKE HERE I CAN DROP DOWN AND SWITCH MY BROWSER, AND HERE IS A NUGGET PACKAGE THAT YOU CAN INSTALL AND IT GIVES YOU A SALESMANED LINE INTERFACE FOR TRYING OUT YOUR APIS. SO LET'S GO TO MY CONTROLLER, BRING THAT UP, AND MAYBE I WILL PUT A BREAK POINT INSIDE MY CONTROLLER HERE AND LET'S LAUNCH THIS AGAIN, IN VISUAL STUDIO BUT NOW NOTICE I GET A NICE COMMAND INTERFACE, I CAN DO D ER AND SEE WHAT MY API LOOKS LIKE, GO INTO THE FOLDER FOR THE WEATHER FORECAST AND NOW THAT I'M IN THERE I CAN TYPE "GET" THAT MAKES THE REQUESTS, THE DATA COMES TO MY SCREEN JUST LIKE THAT. SO IT MAKES IT EASY FOR YOU TO DRIVE AROUND AND TRY YOUR API OUT. I DIDN'T START THE DEBUGGER UP, IF I DID IT WOULD HAVE ACTUALLY STOPPED BUT THIS SHOWS HOW EASY IT IS NOW. NOW THAT WE HAVE DEBUGGED AN API, I WANT TO SHOW YOU THE SAME TO GENERATE CLIENTS. I'M GOING TO COME BACK TO MY PROJECT AND ADD A NEW PROJECT. WE WILL DO A CONSOLE APP, WE WILL CALL IT TEST CLIENT. I WANT TO WRITE SOME CODE THAT CAN CALL THAT API THAT WE JUST WROTE. WE WILL CREATE THIS, IT'S GOT NO CODE IN IT. I'M GOING TO RIGHT CLICK HERE AND I AM GOING TO GO TO ADD AND I'M GOING TO SELECT CONNECTED SERVICE AND THERE IS A NEW OPTION WHERE I CAN SELECT OPEN API OR GRPC. I'M GOING TO CLICK ADD AND SELECT OPEN API AND I NEED TO GO WITH THE FILE AND THE DOWNLOAD FOLDER AND GRAB THAT SWAGGER FILE, THAT'S THE DINGS OF MY API AND FROM THAT WE CAN GENERATE THE CODE FOR YOU SO I WILL CLICK FINISH, IT ADS PACKAGES AND I'M DONE AND NOW ALL OF THE SUDDEN -- LET'S TRY SOME CODE. I WROTE A SNIPPET, SO LET'S DO THIS. HERE IS MY CODE. IF YOU LOOK HERE, GOT A FEW SQUIGGLES, LET'S FIX THOSE, AND INCLUDE THAT REFERENCE AND BECAUSE THEY'RE DOING ASYNC, WE NEED TO OPEN THAT, AND I CREATE A NEW SWAGGER CLIENT AND I CAN CALL THE FORECAST API SIMPLY. SO LET'S TRY THAT. TO TRY THAT I'M GOING TO GO TO MY SOLUTION, I'M GOING TO SET START A PROJECT TO RUN MORE THAN ONE, I NEED THE SERVER AND THE TEST TO RUN TOGETHER SO LET'S SAY THIS. WE WILL SAY START 'EM BOTH AND I WILL PRESS OKAY HERE AND NOW WHAT SHOULD HAPPEN IS WHEN I RUN VISUAL STUDIO WE WILL CREATE THAT API AND IT WILL START RUNNING AND IT WILL RUN MY CLIENT AND APP RUNNING NOW STEP INTO THIS. RUN OVER THAT CODE, WRITE THAT OUTPUT OUT TO THE SCREEN, I LOOK IN MY CONSOLE PROJECT, YOU CAN SEE THE RESULTS COMING TO THE SCREEN SO IN JUST A FEW MINUTES I WAS ABLE TO ADD AN API CLIENT TO MY API. I WANT TO SHOW ONE MORE FINAL THING FROM THIS ASPECT. WE THINK OF APIS AS EVEN MORE THAN JUST BEING ABLE TO BUILD THEM, WE WANT TO LET YOU PUBLISH THEM TO AZURE, AND I CAN SELECT AZURE, I WANT TO USE LINUX HERE, I WILL SELECT NEXT HERE. IT'S GOING TO GO OUT AND FIND THAT I'VE GOT A LINUX APP SERVICE UP THERE TO PUBLISH IT TO, THIS IS BRAND NEW, NEVER SEEN THIS BEFORE? WE CAN PUBLISH YOUR API TO API MANAGEMENT. ALL I GOTTA DO IS OPEN THIS UP, HERE IS MY APIS, I'M GOING TO SELECT MY WEB API, I'M GOING TO PRESS FINISH, IT WILL CREATE A PROFILE, AND NOT ONLY DO WE PUBLISH TO APP SERVICE BUT ALSO TO API MANAGEMENT. YOU CAN MANAGE IT WITH API MANAGEMENT. THAT'S WHAT WE HAVE NEW IN APIS AND . NET5. ANOTHER COOL FEATURE IN . NET IS SUPPORT FOR WHAT I CALL STATIC WEBB APPS, A NEW FEATURE IN AZURE. YOU CAN CREATE A FILE THAT DOESN'T REQUIRE A SERVER. IT RUNS IN CEB ASSEMBLY, DOESN'T REQUIRE A SERVER AT ALL, JUST NEEDS THE STATIC FILES. THIS SAVES YOU MONEY BECAUSE THERE IS NO COMPUTE RESOURCES NEEDED TO RUN IT. HOW WOULD YOU DO THAT WITH . NET? I'VE GOT AN APP HERE IT'S A BLAZER APP AND I'VE WRITTEN AN API AND IT WOULD BE A FUNCTION AND BLAZER APPLICATION AND WE'RE GOING TO DO THIS IN THE TOOL AND WE STARTED UP AN EMULATE OR FOR AZURE FUNCTIONS, AND HERE IS MY BLAZER FUNCTION, IT'S COOL, RUNS AROUND, SINGLE PAGE APPLICATION, IT'S AN SPA, MODERN WEB BUT HOW WOULD YOU HOST THIS IN AZURE AND DO IT WITH STATIC APPS? I'M GOING TO JUMP TO THE PORTAL AND I'VE GOT THIS SET UP SO FIRST I WILL SHOW A WORKING VERSION OF IT, HERE IT IS, I CAN CLICK THE LINK AND YOU'RE GOING TO SEE THE SAME APP RUNNING IN AZURE, THERE YOU GO, IT WENT AND GOT THE DATA BUT WHAT I WAS GOING TO BUILD THIS IN AZURE, WHAT I WOULD HAVE TO DO IS GO BACK TO THE PORTAL, I'M GOING HOME HERE I WILL SEARCH FOR STATIC WEB -- JUST ADDED RIGHT ABOUT NOW. I WILL CLICK "CREATE" AND I WILL DO ONE OF THESE HERE, LET'S DO THIS AND I WILL CALL THIS MY STATIC . NET. I WILL SELECT A REGION, EAST ASIA AND THEN THESE STATIC APPLICATIONS WORK THROUGH GITHUB. LET'S LOG IN, WE WILL DO THIS, MY PASSWORD MANAGER WILL FILL THIS IN, I'M GOOD TO GO. AUTHORIZE THIS. NOW WHAT YOU'RE GOING TO SEE IS MY GITHUB REPO AND I'M GOING TO CHOOSE AN ORGANIZATION, COOL CSH AND IT'S THE BLAZER STATIC WEB APP AND THE BRANCH REPO, SO WHAT'S GOING TO HAPPEN IS STATIC WEB APPS IS GOING TO PULL THAT CODE DOWN FOR ME AND ALL I HAVE TO DO NOW IS TELL IT HOW THE APP WORKS SO SYME GOING TO SELECT CUSTOM HERE AND FROM HERE I NEED AN APP LOCATION TO GO BACK TO VISUAL STUDIO, I'VE GOT A CLIENT FOLDER, THAT'S MY BLAZER APP SO I SAY WHACK CLIENT FROM MY API, ONCE AGAIN TO MATCH MY VISUAL STUDIO THEN FOR MY -- WHERE ARE MY WEB SOWED, IT'S IN THE WWW. ROOTFOLDERSOWEWILLSAY"WWW. ROOT". GOV IT WILL RUN MY API AND IT WORKS IN AZURE AND WEB APPS, SUPER EXCITED, YOU CAN SEE THE RESULTS, IT'S AMAZE, TRY IT OUT. NEXT I'M GOING TO SHOW A MICROSERVICE TILE APPLICATION IN .NET. TODAY OUR TOOLS ARE GREAT AT RUNNING A SINGLE APPLICATION AND TODAY IT CAN GET COMPLICATED. I'M GOING TO SWITCH TO VISUAL STUDIO CODE AND OVER HERE I'VE GOT THE SOLUTION HERE AND YOU CAN SEE THE BACK END PROJECT, I HAVE A FEW THINGS. TYPICALLY WE WILL MAKE A MISTAKE, I MIGHT COME OVER TO MY COMMAND PROMPT, I'M IN THE FRONT END I DO A . NET RUN THERE IT GOES, IT COMES UP, I TAKE THIS AND SHOVE IT INTO MY BROWSER, AND OF COURSE THIS IS NOT GOING TO WORK BECAUSE I FORGOT TO START THE BACK END.WE'RE NOT GOOD AT RUNNING LOTS OF PROJECTS SO LET'S FIX THAT. I WILL GO BACK HERE, STOP RUNNING THE APP, THE APP IS NOT HAPPY AND WHAT I'M GOING TO DO IS I'M GOING TO GO AND ADD A FEW THINGS. I'M GOING TO DO 365 RUN. IT WILL FIND ALL MY PROJECTS. OF THE SO TIE FOUND MY BACK END AND FRONT END PROJECTS AND GAVE ME A DASHBOARD. I HAVE THIS COOL EXTENSION THAT KNOWS ABOUT THIS, IT WILL LAUNCH THE DASHBOARD, I CAN SEE THE FRONT-END PROJECT, MY BACK-END PROJECT, I CAN LOOK AT THE METRICS, THE LOGS, WE'RE GIVING YOU MORE INFORMATION THAN WE EVER HAVE BEFORE BUT IF I RUN THIS IT'S GOING TO CRASH, DANG IT! IT CRASHED BECAUSE YOU CAN SEE HERE IN MOA CODE I HARD CODED THE FRONT END TO A PORT ON THE BACK END THAT I DON'T KNOW WHAT THAT'S GOING TO BE WHEN THE APP RUNS BUT PROJECT TIE SOLVES THIS. IT'S GOING TO BRING IN THE EXTENSION FOR TIE TO OUR CONFIGURATION SYSTEM HERE AND I'M GOING TO GO TO START-UP CS AND COME ON OUT THAT HARD-CODED LINE AND BRING IN A NEW ONE AND INSTEAD OF REFERENCING LOCAL HOST: 22299 I'M GOING TO SAY "BACK END" AND I WILL LET TIE SEE WHAT THE BACK END IS FOR ME. I'M GOING TO SAVE THAT, I SHOULDBE GOOD TO GO. GO TO MY TERMINAL HERE, RUN TIE RUN, AND SEE WHAT HAPPENS. PROJECTS ARE UP AND RUNNING, DASHBOARD. LOOK AT THAT. NOW THE BACK END RUNNING IS THEY'RE ALL TALKING TO EACH OTHER AND I DON'T HAVE TO WORRY ABOUT THAT, STILL CLEAN. NOW I WANT TO ADD A READ IS CACHE, I CAN HAVE A SQL SERVER AS WELL BUT I DON'T WANT TO INSTALL THAT ON MY MACHINE BUT I'M GOING TO TYPE TIE A NET AND IT'S GOING TO CREATE A FILE THAT DESCRIBES HOW IT RUNS. SO IF I GO TO TIE. YAMAL HERE, THAT'S WHAT HAPPENED WHEN I DID TIE RUN, IT AUTOMATICALLY DISCOVERED THAT. I'M GOING TO ADD FLARE TO THIS, ADD A NEW ELEMENT TO THIS. PASTE THIS IN RIGHT HERE AND WHAT I'M ADDING IS NOTICE I'M CALLING THIS REDDISH, IT'S GOT AN IMAGE, A CONTAINER IMAGE, NOT A DR. CSPROJ. LET'S TAKE AND SAVE THAT AND LET'S GO TO MY CSPROJ, I'M GOING TO REFERENCE ONE MORE CLIENT SO I CAN TALK TO THAT. I WILL GO BACK TO MY START-UP AND THIS WILL BASICALLY CONFIGURE THAT RED IS CACHE AND NOTICE NO CONNECTION STRING I CALL IT BY NAME FROM THE YAMAL FILE AND ALL I HAVE TO DO NOW IS SAVE THAT, GO TO MY FRONT END AND I HAVE THIS TAG HELPER AROUND DISTRIBUTED CACHE AND WHAT THIS DOES IS TELLS ASP . NET TO TAKE ALL THIS MARK-UP AND KEEP IT STORED FOR 5 SECONDS. SO I'VE DONE ALL THAT WORK. NOW WHAT I WILL DO IS GO BACK OVER HERE AND WE WILL DO A TIE RUN AGAIN AND THIS TIME IT'S GOING TO BOOT UP MY . NET PROJECT AND BOOT THE CONTAINER UP RUNNING REDISH AND NOW YOU CAN SEE IT KNOWS I HAVE TWO . NET PROJECTS AND A CONTAINER AND THEY'RE ALL HOOKED TOGETHER. IF I GO HERE AND RUN THE APPLICATION, BOOM, THE APP COMES UP, IT LOOKS GREAT, I CAN PRESS F5 TO REFRESH MY BROWSER, NOTICE NOTHING CHANGES. THAT'S BECAUSE IT'S CACHE IN REDISH, JUST LIKE WE WANTED. PERFECT. LET'S TAKE THIS TO THE FINAL STEP. WHAT I'M GOING TO DO NOW IS CLOSE THAT OUT AND I'VE GOT THIS APP WITH PROJECTS AND A CONTAINER. I WANT TO RUN THAT IN THE CLOUD. SO TO DO THAT, I CAN GO TO MY COMMAND PROMPT HERE, JUMP BACK A LITTLE BIT AND IN FACT LET ME STOP THE PROJECT RUNNING AND WHAT I'M GOING TO DO IS DO TIE DEPLOY -- ITERATIVE. AND THIS TELLS TIE TO GO TAKE THIS AND UPLOAD IT TO THE SHOUT FOR ME. IT NEEDS TO KNOW MY CONTAINER REGISTRY SO I GAVE IT THAT NAME AND YOU CAN SEE IT'S CREATING DOCKER IMAGES, DOING IT ALL FOR ME. IT'S NOW SAYING I NEED TO DO THIS, WHERE IS YOUR REDISH, SO LET'S GO BACK UP HERE, SIGN IS ME, MY CACHE, I'M GOING TO SHOW YOU MY CONNECTION STRING BUT BY THE TIME YOU SEE THIS I WILL HAVE DELETED IT SO YOU CAN'T HAVE IT AND WHAT I WILL DO IS PASTE THIS IN, YOU CAN SEE IT'S PUSHING THE DOCKER IMAGES AND RUNNING IN THE CLOUD. I FORGOT ONE STEP AND LET'S FIX THAT. WHILE IT IS RUNNING IN THE CLOUDY CAN'T HIT IT BECAUSE THERE IS NO PUBLIC IP ADDRESS FOR THAT. IT'S FUN TO SHOW HOUSE I W FAST I CAN DO THAT, IT ALL COMES DOWN TO DEPLOY AND I AM GOING TO MAKE ANOTHER CHANGE AND CREATE WHAT'S CALLED AN INGRESS AND THAT'S HOW YOU GET INTO A KUBERNETES CLUSTER. SO LET'S GO HERE. PASTE THIS IN UP HERE ACTUALLY AND IF YOU LOOK AT THIS, WHAT IT BASICALLY SAYS IS IT HAS A NAME LIKE EVERYTHING ELSE, BOUND TO A PORT AND WE TELL IT IF YOU HIT THE WHACK OF THE IP ADDRESS WE WANT TO FORWARD TRAFFIC TO THE FRONT END SERVICE SO I SAVE THAT. THIS LOOKS GOOD NOW, WE WILL GO BACK AND TRY TO DEPLOY ONE MORE TIME. YOU CAN SEE ALL THIS GOING, I WILL GIVE IT MY REGISTRY ONE MORE TIME AND I KNOW IT'S GOING TO ASK FOR THAT CONNECTION STRING TO MY REDISH, I WILL GRAB THAT ONE FINAL TIME, STICK THAT IN, THERE WE GO. LET'S CHECK CUBE CONTROL. GIVE IT A SECOND. THINGS PROCESS ON THE SERVER. AND WE WILL GO AND ASK IF WE CAN GET ACCESS TO THAT PUBLIC IP. THERE IT IS AND ALL I'VE GOT TO DO NOW IS GRAB THAT IP ADDRESS, PUT IT IN MY BROWSER. THERE YOU SEE I'VE GOT THIS APPLICATION AZURE KUBERNETES SERVICE. I WENT FROM RUNNING IT ON MY LOCAL MACHINE TO RUN IT IN KUBERNETES IN ONE OR TWO MINUTES IT'S THAT SIMPLE WITH PROJECT TIE. TO RECAP, . NET BEGINS THE JOURNEY OF UNIFYING . NET INTO A SINGLE PLATFORM. WE HAVE SHOWN HOW IT HAS AMAZING PERFORMANCE AND IS GREAT FOR PROJECTS LIKE TIE AND I SHOWED HOW REST AND GRC ARE EASY FOR DEBUGGING WITH . NET AND SINGLE FILES MAKE AWESOME MICROSERVICES AND TIE CAN HELP YOU BUILD AND PUBLISH THESE TO THE CLOUD QUICKLY. I RECOMMEND EVERYBODY GRAB THE RC AND DOWNLOAD IT AND GIVE US FEEDBACK. THANK YOU VERY MUCH. [END OF PRESENTATION]
.NET is awesome
Where are they getting that C# is a top 5 language on Github? I can't find that stat
Itβs an exciting time to be a .NET developer. So much great stuff happening. If you havenβt tried NET yet, November 10 is the time!
"THE FUTURE OF . NET IS THE NEXT VERSION, WHICH WILL COME OUT IN THE FUTURE."
y...yes? uh huh?
Feels good being a .NET developer. When I started my career, .NET was at version 2 if I remember correctly. Those were great times. Winforms for desktop apps, XNA for games... Things now are better then ever.
Is it getting an LTS version?
I can't help but think that we're getting closer to where we were 20 years ago.
I'm sure newer developers are excited about things like the autogenerated test pages and client code from OpenAPI. But as someone who used WCF, and Web Services before that, I can't help but say,
As for gRPC being a replacement for WCF,
A replacement for WCF should expose both OpenAPI and gRPC endpoints such that the client can connect to either based on what their stuff supports.
WCF is an abstraction layer. It was supposed to abstract the transport layers such as gRPC and REST/OpenAPI.
Now I'm not saying WCF shouldn't be redesigned or replaced. (Apparently the internals are a downright mess.) But anyone who says gRPC is a replacement doesn't understand what it was for in the first place.
Also, WTF is up with calling gRPC "cross-platform". They're all cross-platform. Even WS-* style web services are cross-platform. In fact, that was the whole point of web services. Yea, WCF did include Windows-only transports such as Named Pipes. But don't pretend like we didn't have cross-platform communication before gRPC.
will visual studio 2019 support .Net 5?
Project Tye looks interesting. I noticed the dashboard actually is a Blazor Server app which is a neat tidbit.