 Hi, welcome to Visual Studio Toolbox. I'm your host Robert Green, and joining me today is Erika Early. Hey Erika. Hi Robert, thank you so much for having me. Erika is here to talk about the Smart Hotel 360 demo apps. Yeah, and the architecture. Cool. So at Connect, which was back in November, it's our annual conference to showcase what's new in Visual Studio and other goodness for developers. We do an app or set of apps every year, and this year chose Smart Hotel 360, very, very cool. What we're going to do on this episode is introduce the app, talk about the architecture, show the code which is available in GitHub, and then what we'll do in follow-up episodes is do more of a deep dive. We'll do an episode on the website and the Azure Functions. Then we'll do an episode on the Xamarin mobile apps, which is when James Montemagno will come back on the show. He doesn't visit me anymore because he's got his own show. Really? Oh yeah. But we made him so excited about Smart Hotel, he worked with us. So we've got that then. There's a bunch of services, back-end services doing things like making a hotel reservation, searching, stuff like that. Those are microservices running containers. We'll do an episode on that, and then we'll close off with some fun because we're going to look at mixed reality and see how that plays into this scenario. Yeah, that's it. Cool. So talk to us about the apps. All right. So in case you didn't watch Connect, we actually released a blog post in December, where we go through all the scenario. We actually link to the Scott Guthrie keynote, so you can watch it again. We also explained what Smart Hotel is. So Smart Hotel 360 is a big dishes company, we have to say it. But it's a company where we're trying to share both the experience for customers or consumers, but also for the business. So there's a set of applications, and many of these hotels already have existing apps and any company wants to modernize them. But there's also all these new technology. So what kind of experiences can you build for a company like these? So we have different personas like guests and business travelers. We have the hotel managers and the investors and have a campaign managers. So for all these people, we try to build these apps. The really nice thing is everything is on Azure. We have the architecture, and we used all our Visual Studio family tools to build these applications. So from Visual Studio, there's a lot of tooling to work with Azure. So that's really nice. We use VS Code for some of our tooling and our applications on like we have some node applications. We use Visual Studio App Center. It's a suite of applications that you can use for like testing and deploying and building your device applications. Also, something that is very interesting about this is, I have an architecture diagram and I'll go deep into it. But basically, you have to think that people are using applications everywhere they go and you have to find them where they are. So we have websites, like you said. We have phone applications. We also have desktop applications and we build some applications as well with Mixed Reality and we'll show them as well. So before I go deep into the applications, I want to show you first where to find the code. And then the architecture. So the links are on this blog post and if you want to go to GitHub, it's on the GitHub Microsoft Smart Hotel. But I also built this aka MS Smart Hotel 360. So you can get to GitHub and we split our repos in different repos. So on the first one on the main one, you will find more explanation of what the reference apps are and we have some documentation on it. Which is something I find good. It's not just code. We took the time to add related documentation so people can see what the scenario is and understand what's inside of it and those different apps. Two ways that people can benefit from the code. One is you can just go in and look at the code and borrow or steal code for your own apps and see how things are done. But then you also want the ability to actually run the app and see how it all works, right? So we're providing that. Yeah, we're providing that. So one of the things is if you go here to the docs, we actually have a slide deck, a walking deck. I've already downloaded this deck. It looks like this. It's this exact deck. So say you want to go talk about this scenario to your customers or your friends or you want to see more of the diagram. We have all these information here, including the architecture diagram. And before I keep walking through the rest of the GitHub repos, let me, since I have the diagram here, start going through this a little bit. If you see the center of the app, as I said, everything, the heart is Azure, right? So the way this works is we have a bunch of microservices that we built, and we have different APIs. And this is how the real world is. You have different people, developers who have built for these applications services in different languages. So we have different services on.NET Core, a few others are Node, others are Java, and say, I don't know why we were building these applications at some moment, we thought, well, why don't we add some discount functionality, and then it's so easy to add something new into the same thing without changing everything, right? So that's why we chose that. So the idea is that throughout this corporation, you've got teams of people building things. So we need somebody to write reviews and there's Java talent available. So you just write it as a service and provide a RESTful API. So the client calling it, whether it's the website or the mobile app or whatever, that doesn't care what it's written in. It's written in Java, it's written in C-Sharp, who cares? I send a message, I get data back, it works, it's goodness, right? Yeah, so it's exactly what you said, it's goodness. And we use Kubernetes, we have everything on Azure Container Service. And the nice thing is that's kind of the heart like I said, but then there's all these applications that will consume those services. So we have, first let me start with the mobile applications. We have a smart hotel customer app that we build, we know people are on the go. So we build phone app. But the nice thing is we built it with Samarin. So that way you know about 90% of our code is we use and the application works on iOS, on Android and Windows. We even have a desktop version of the app, right? Like the scenario is you're on your room and you just want to change the settings of the temperature of your room. And you can do it while you're on your computer and you're working, right? You don't have to go find your phone. Or even if you're booking. I mean, if I'm at home in the office on the computer, I don't want to context switch and haul up my phone just to do something, it'd be nice to have the app that runs on Windows 10 on my surface. Whereas if I'm downstairs in the kitchen and I want to book a hotel, I don't have to go upstairs and turn the computer on, then I'm going to pull out the phone. Yeah, no, I think there's a bunch of different scenarios where you can pick that one thing or the other. And we wanted people to have the flexibility. The other thing is we built the maintenance app. So the maintenance app, the scenario is you already have a native iOS application, right? And you have to bring it forward. So you can embed Samaritan into this maintenance app and all that is on the repo as well. And also I wanted to add some coolness on the applications, on the phone apps, right? So we wanted to make it really modern and I'll go through it in detail, but basically one of the things that we thought it would be super cool that you go to your hotel and when you arrive, instead of getting a key or like you go to your room like, oh, I lost my key or something like that, you can open your room with your phone using NFC. So we integrated that and there's an application for that. Both on the phone, it's integrated on Android and also on tablets. So I'll show you how it works. Then the other thing is the website, right? Like it's, you know, regular marketing website and we wanted it also to be more than just a bunch of nice fancy pages where you find information on the hotel and you do the typical booking, but we also wanted to add some intelligence. So something that developers need to start thinking about is there's all these cognitive services that allow you to add richness and intelligence to your applications. And in this case, we wanted our hotel to allow you to check in pets, but not any pet. I mean, not a snake or like a... Or even a cat, apparently. Yeah, cat, like there's a lot of people who are allergic to cats. So just dogs, right? So we integrated some functionality so you can upload a picture of your pet and through functions we check using the Vision API if you can, if you are allowed to bring that pet, right? And so we have that kind of integration. Also, there's a lot of data, right, in a hotel. And if you see at the bottom of my architecture, we have different data sources and we kind of documented which kind of database we have where and we use each database for different reasons. For example, something we could use and it was a very interesting scenario is we use Azure Cosmos EV in a scenario where we're doing Twitter sentiment analysis and we use this both for a Node sentiment app that Chris Dias was demoing at Connect. But we also use that same framework for our mixed reality experience that we build. We didn't show that at Connect at the keynote but we had that as an onsite experience for attendees. And we're gonna do that in our final episode. Yeah, so people will see, you know, it's a really cool application. And that's more or less like the architecture. Like I said, the diagram is available. There's a PNG version as well in there. And the thing about that is with the possible exception of NFC enabled door locks and hotels, everything that we're doing here is shipping, it's all shipping software, it's all real scenarios. So this isn't some vision of what development will look like in the future. Now the mixed reality part, okay, that maybe you're not gonna be doing that today but you can. We're gonna show a demo where you can do it. So I guess even that part's real. But this is real software stuff you can build today, built the Visual Studio 2017 and code. And, you know, the code's all there. You can actually run this stuff. So this is what you can do, science fiction. I agree with that. And I think developers always have a responsibility to learn what's available. And this is not so futuristic. It's real, just like you said, people can build the apps of the future today. This idea that you go to the website, you upload a picture of your pet and then there's something running in the background that says, hey, wait a minute, that's not a dog. That's a cat, right? No, you can't bring a cat. Oh, you upload a picture of dog. Okay, that's your dog. And then, you know, you could go to the hotel with your dog and you'd be able to say, wait, that's not the same dog you registered, right? Yeah, oh, that would be funny. That's a hamster. You didn't say you were bringing a hamster, yeah. Yeah, that's right. I totally agree with you. It just changes the way we build applications. So anyway, let me show you more or less what's on the repos. So there's this like main landing repo where we go through the main story and the resources, but then we link to other repos. So we have four repos that we're having available right now. This one, we're still working on the sentiment analysis. But let me start explaining what we have on backend services, public website and mobile applications. And I'll show you a little bit of the apps. And then just like you said, we will have shows where we will go deep into the code and into the solutions. So the first one is the backend services. So here's the thing. Like I said, everything is on Azure. And we have two kind of people that we always get feedback one way or the other of how people want to use these applications. We have people that already have an Azure subscription and they really wanna understand how to build applications and get good reference guidance and get an example, right? So this is an example. And if you want to deploy it to your subscription, you can. So this repo has very detailed instructions on how to do that. You need to get Docker. That's the only thing. You need to install Docker. And then you need to do a Docker compose. We have all the comments here that you have to follow. And we follow this guide many times, many steps on different machines. We've tested it and it works. So that builds the Docker images on your computer. Yes. And for this example, they're running in Linux containers. Yes. Linux images are pretty small. So that's not a big issue of disk space. Right, right. Yeah, so the idea is all these microservices will be running locally, how it's explained here. So like I said, this is a very detailed guide on how to do it. So that will deploy the microservices that you can use. And one thing, and we talked a little bit about it. This is a sample. You can use it. It's your Azure subscription. And whenever you stop playing, just remember to turn things off. Yes. So that it won't cost you. At this point though, they're all running locally, right? They're all running on your computer. Right. So there are instructions in there on how to get them up into Azure? Yes. At some point. Yeah, so you can deploy in Azure. To deploy in Azure, okay. And so we have also a topic on that. And we are demo people, we build demos. And we like to document everything step by step, because it's always nice to find code somewhere. Right. But you wanna know what to do and you wanna know all the steps. And we always try to explain everything as best as we can. In this case, repo has a lot of instructions on our other repos. We even have some demo scripts in case you wanna go through things and screens. And so we have that too. So this is just to create all the Azure resources and services. So we have that. And everything you can find in here, right? So that's a scenario where, hey, I want this on my Azure subscription. There's also a project in here. I mean, there's like the code in the same repo. Let me just go all the way up. So there's a source code. And I already opened that solution here on my computer on Visual Studio. So basically what you will find on that solution is all the different, well, the Docker Compose and all the different services. I'm gonna explain one of them. But basically you have the Docker file here and you have things like the queries that you're doing to the database for that. So you can explore this. It's all the different services we have in there and you can get the code as well for that. So that's for the backend. But we learn every year as we do this and people give us a lot of feedback, which is nice. But one of the things is they also want the applications. The backend is nice. And so let me start with the public website. So we have this repo as well and we have the functions we even have like I said. So back to the services for a second. So I can run them locally. I can put them in my own Azure subscription. Are those my only two choices? Did we set up public endpoints? Yeah, yeah, yeah. I'm gonna go to that. Okay. Yes, I'm jumping ahead. That's where I'm going. So basically for the websites and the phone applications, we have like the two situations. There's people that say, hey, your sample is really nice, but I want my own data, right? So that's the scenario where you have your own subscription and you can manage or tweak your data. But then we have people that wanna use the applications and they're more interested, for example, more on the summary side, right? I wanna learn summary and I don't wanna spend so much, you know, configuring something on a backend for whatever reason or I just wanna show this awesome application to my customers and the possibilities of the platform. So what we did is this time using our own subscription, we created public endpoints for both the website and for the phone applications. So that way, if you just wanna get the code for the app, but you don't wanna go and configure all the backend and spend a lot of time doing that, you can get the app working on the go and that's what I actually have on the phones right now and I'll show that to you. But yeah, definitely we understand there's different things that people wanna do and we try to like really stretch this time to build those different approaches. Right. So on the website, like I said, we have demo scripts. So we have a demo script you can download for the pet checker function. We were discussing and basically this is a website. It's a build with .NET Core 2.0. It's an interesting website because it's just like when we were thinking about the scenario is, well, the two main things that people wanna do is book rooms. We also thought about how about we have like smart conference rooms and you can book them in advance like if you're a business traveler, for example, and you're gonna have a conference there and you wanna book a room in advance, you can do that as well. The main landing page is the marketing page but the way this work with all those microservices is for example, there's a booking microservice that we are using to do the booking here. So say I wanna go back to connect in New York City and for example, I wanna go there in the States but wait, the pet thing, right? Let me show you where it is. You click apply and then you can like check in not just adults and kids and babies but also pets, right? So I just wanted to show you how to find it because it's kind of hidden. And then you say, are you bringing a pet, Jess? I'm gonna check it. And then what you do here is that you upload a picture of your pet and then that's where we're using an Azure function and where we are gonna kind of figure out if your pet can go or not, right? So this is a dog picture. So let's see that picture. But let me open, yeah, that's a great idea. Let me just open it so you can actually see the picture. Let's just do it on the front. That is a dog. That is a dog and if you see the dog is on the grass, right? It's a cute dog. It is a cute dog. All right. So what's happening here is we're uploading the picture and then we're gonna process the image using Azure functions and using the vision API. We're trying to figure out what kind of thing is in there and then we made some rules with code to figure out if this is something that we would allow or not. So the pet is processing, it would take some time. I can kind of cheat and it will work, it works. But here's that same image I did just before I started the show. So this that same image and it's, I mean, it's the same website, same thing, but basically it analyzed the picture and it says, well, your pet looks like a dog sitting on top of grass, covered field and it's accepted, right? So my function will run and eventually we'll get to that. I just did that same step before we started the show. But that's the website. And there's other things on the website. Let me just go back here and let me just show you what other things you can find. If you go through the whole booking process, you can also see other screens and we like this because it's a really good dotnet core sample and we use it for a bunch of demos. You can get the code on Visual Studio and you can work with it. But we also build other screens where as you go through the booking process, I'm not gonna select the pet now. Just gonna reset. And then find the room. And then there's like all sorts of rooms. So on this hotel, we also thought, well, we have different kinds of hotel. We have a platinum and gold business, right? And depending on what hotel you pick, there's different features. But basically you, all this data that's coming from Azure and this is all coming from the microservices as well. So this is the booking microservice, right? And there's different things that information that you can find in here. But everything is from the same backend that I was showing, right? Cool. Now that's the website. So let's demo on the phone. But before we demo on the phone, let me just go quickly to the repo. So on the same repo, we have mobile apps. So mobile apps, we have three mobile applications. And I have some good screenshots of those applications on the blog post and also here on the repo. And the blog post I like it because it's, you know, we went through the website. But basically here are the three main applications that we build. So the first one that I'm gonna show you is the smart hotel app. So we tried to be really smart about how we thought this scenario. You can build a lot of fancy, beautiful applications. They look nice. But you also want them to be intelligent. So we integrated cognitive services in them as well. We also added NFC. We added personalization. So you want the app to start getting to know you. So for example, one of the things is I am always cold, super cold. And I don't wanna go and adjust the temperature in my room every time I go to a hotel. I want them to start learning what I like. So you can start doing personalization for all those things. And I'll show you a little bit of how it works. But this application was built with Samaritan. It's the one that we have running on desktop and Android iOS and all Windows. And then the other thing that we did, this is a desktop app, is we built the NFC. That's the door. That's the one I have here. And I'll show you, but basically you bring your phone close and it will know what you are. Hey, that's you very good. And then it will open the door. And this is the application we had from before. It was already built. This hotel already had this application. They're not gonna throw that code away, right? So they just wanna modernize it. So basically they are using Samaritan forms, native forms, with iOS. And we even have it here. Like it's a great showcase of how we can modernize existing line of business applications, right? So that's what's on the repo. Let me go back to the repo. So same thing, you can get the code here. We also have demo scripts. And I will show you very quickly, more or less how these applications work in that configuration. But James is gonna do a very detailed show. And he will do a walkthrough of the code. So if we switch to this phone now, I can show you how this phone works. That's the one, okay. So this is the main screen. If you remember on my architecture, I was showing somewhere that I have AAD. So that's why we're using, so you can sign in with your Microsoft account. And it works, it's wired for real. It's all part of the backend. So that's why you do. But I'm gonna show you a cool trick. You see this smart hotel logo, the smart hotel 360 logo. If I tap it twice, that's the trick. It's a hidden secret. It's a hidden secret. So this is really nice because this is a JSON that has all my endpoints that are already pre-configured. So that way, if you go and download this application and run the code, you get this. You don't have to do anything on the backend. It will work and this is the data, right? Now if you want to change your endpoints and you wanna change your data and do everything, I mean that's a scenario I was discussing earlier. You know, sometimes people want to have the name that they want of their own hotels or things like that. Or you can change the endpoints and then you can change the JSON file and that will reset your application. Even like things like the tokens for the big maps, the analytics we're using, the IDs for the bots, things like that, or the maps location. You can change, for example, now I have the map location defaulted to somewhere. But sometimes I work to conferences and I go, well, I'm not in New York, I'm in San Francisco, so I want my map to be on San Francisco. So we don't have to go and change the code, right? So that's the trick. Now this is my app and the next step is I'm gonna sign in to avoid typing my password. I have this on the phone where I already signed in. Thank you. And so this is the home screen of the application of the smart hotel app. This is the one that works on all the devices because it was built with submarine. It's beautiful, it's fully native. We use like about 90% of the code as we use across all platforms. And what I wanna do is tell you a little bit about what's in some of these screens and things that you have to click so you can discover. So this is the menu, there's a home, there's the book room. You can go to your room and you can configure things. So the book room is pretty much very similar experience as the one that we had from the website. It's the same thing. I already booked the room here but I wanna show you how we can personalize settings. So if you go to my room here, this is kind of common, right? Like you get there and you're like I need something and instead of like finding out like who do I call, what do I do, you just click a button and the scenario is someone in reception will get a notification and they will know what you need and they will bring it to you, right? Okay. Also, imagine the scenario. We want you to get to this hotel. We don't want you to like go and check in and wait for hours, right? How can we optimize that? Well, what if you just like walk in the hotel and you don't even have to check in. I mean, you get in the hotel and they know you are there, they have your phone. But what are the two problems that you have? I mean, what are the two reasons why you need other than pay? Pay, they already have your credit card. Right. You need to find your room or your room number and you also need to open your door. So you need a key. Sure. What if you can do that? All that with your phone, right? So to find my room gives you a map and then you can walk and then you can find your room. So you don't have to ask someone, how do I get to my room? Especially on these like really large hotels that are huge and very complicated. But the NFC I'll show you but the other thing is you can check in with your application. We were also talking about personalization. This application knows me. So also on my room, if I go to ambient settings, that's where you can customize, for example, hey, you know, I'm always cold. So I like my room to be like this. You can also change the lighting to make it darker, lighter, things like that. It has happened to a lot of people that you're in a room and there's like, light switches like in 10 different places for different nights and what if everything is automated and you can just like turn off, turn on the lights. Like, I mean, you wake up in the middle of the night and you don't remember where the light switch is or you can do it with your phone. Then also you can adjust the volume of the music or move the blinds. So all of these you can do. You can also activate eco mode. So that's, you really wanna be like super friendly. So hotels can do this automatically when you're not in your room, right? Or when a room is empty for an extended period of time and that way they like optimize resources. Also, the scenario for do not disturb, you know, it's sometimes frequent that you are there in your room and like someone is knocking on the door and like, can we do room service and you're like already sleeping or still sleeping. So if you said to not disturb, they are able to know and you don't have to go and hang something on your door. So we try trying to optimize a lot of the things. You can also check out from your phone. So all that from my room. And lastly, there's like the suggestions, right? So this is where we have the personalization and integration with the maps. So they know where I am and they also know what I like. For example, I'm a total coffee addict, just like James. And so I'm getting coffee shop suggestions, right? So I am getting these really good suggestions here, right? So that's more or less the scenario of how you use this and all these screens are, I mean, all the codes for these screens are on the application you can open with Visual Studio. You can play with them with a live player. It's a really good example to use for live player. And I'm gonna now only show you on camera these, but this is the same application. It's on Android. Let me just wake these up and let me just do like a camera. Change to camera. I'm gonna, what's the camera? This one? Network. Well, this is the same application. It's on Android. And the nice thing is same functionality. We didn't have to change anything. It's just the application built on Android. But one of these things on this application is I click here and if you see now I have an NFC. So that's my door. So now this is my application that I built for my door. And so I'm just gonna open my door. That's all I have to do. There we go. All right. So that's my phone demo. And because you are signed into the app, the app knows who you are. And therefore the smart door lock is programmed to know who it's expecting. And so your phone is now your room key. Yeah, that's exactly right. So James is gonna show all of you how that code works in detail. One last thing is Visual Studio App Center. I talked a little bit about it. We used it internally for distributing all the applications. And that's how whenever we do a change and we do a build, we distribute among ourselves. The other nice thing is I want everybody to start exploring App Center. It's a really good framework if you wanna just build tests to do crashes and all that. This is mobile DevOps for people that don't know App Center. Build, release, test, crash analysis. Yeah. And one of the cool things is I have these phones here but you don't know what other phones people may have and you wanna test in multiple phones. So every time we add a new feature on the phone, we can just test it using App Center. So for example, I'm gonna do like the booking, right? And then I can go to any of these screens and then I can see if my tests are failing or working on the different phone applications. And this is running on real live devices. Yes. This is the, it used to be known as Xamarin Test Cloud. Now it's App Center test but it's the same product. So you get to test on any number of real devices. So you have an iPhone 8 and you have a Samsung Galaxy. Well, what if somebody comes with an iPhone 6 or an iPhone 10 or a Nexus device. You could go buy one of each phone and test. That's kind of a pain. Or you could use Test Center where somebody's already done that for you. They already have all those phones and then you can write a test suite and run the app on real live devices and it'll tell you where it works or where it doesn't work. Yeah, yeah. Which is just amazingly cool. Yes, it is amazingly cool. I totally agree with that. All right, so before I continue the, going back to the repo, so that's kind of the main repos. And like I said, we are still building the sentiment analysis one. Okay. And then the other thing that we have is the microservices architecture I was explaining. We will also have a show on that. And Steve will go into much more detail. We know people will wanna go deeper on some things or others. So the intention is that today we just talked about the generics of where to find it, what's the architecture, what's the main applications. One more application that we wanted to show and talked about it is the Mixed Reality. So the thing here that we were trying to do and I'll go back to the blog post is we have this with architecture, right? We have these set of applications. But there's new things like coming all the time, new technologies, devices, and software developers, we always have the power to learn and to like keep trying to understand how to integrate some of these experiences into things that we already have. So what we did was test, well why don't we use this same backend that we have and build an experience with Mixed Reality with both HoloLens and headsets and motion controllers. And so we built a scenario for that and we're very excited to show it and so I'm very happy that you and Brady are doing a show on that. That's cool stuff. So it's basically we're visualizing some of the backend data and then there is a scenario where we actually walk into the hotel to see how we can improve things. Yeah. That's very cool stuff. And the first time you do it, it's like wow, it's like you get blown away just to see what kind of experiences you can build with these devices. So that's interesting. One more thing, I think I'm done with most of these. On that same blog post, there's also a link for the YouTube channel where you can see the detailed demos that we did at Connect and all the new announcements we had. We also, if you like slides, like people are like, do you have a slide on containers or something like that? There's this Connect event in a box repo on GitHub. If you click on it, you will be able to find all the like guidance and content, things that we use. But even on the technical content, you can find presentations. And so these are actually the keynote decks. Yep. And all the decks that we use on all the different general sessions. If you're familiar with them, you can go watch them. If not, there's like all these like, for example, tools. There's, for example, the Samurai in C Sharp and Visual Studio App Center that I was talking about. There's a lot of decks that go through that in there and slides. And then you can also, of course, go and watch all the Connect keynotes as well as all the other presentations. Right. Yeah, and now let me just to finalize, talk a little bit about how we build this application and why we do it. Yeah, how many people, what was involved in building this? Yeah, so. Probably wasn't one person over a weekend. No, no. So this is the third year I get to do it and I've been working with a lot of people on building these reference applications. I find a lot of value on it because a lot of our samples or talks or sessions are centered on one thing. Right. And I really like that this is an end-to-end where you can integrate a bunch of the different technologies, API, tooling, platform services, everything that's coming into the solution. And you can see the value as an enterprise of how to integrate all these technology together. So we start working always on the summer, just brainstorming on what the scenario is and we always try to find something that is not only exciting and modern, but it's something that is appealing both for enterprises and for consumers. And then we come up with that and it's like creating your own startup, but it's so fake. But we have to go through like, even branding, what's the logo? I was showing the logo of the smart hotel. You have no idea. We do spend time thinking about it and what's the name that we're gonna use that we're not using any name that belongs to anybody else, we really check. Also, we do design like all these applications. We use it for like tier one events and conferences and our sessions and our websites. So they have to be really visually appealing. So we work with the design team on them. And also the other interesting thing is storytelling. We do a lot of storytelling. We have to tell a story that is exciting and it's people connect to it and I feel like, oh yeah, I understand why I would need an app like this. So we do that for probably a couple months in the summer, but then in August, September, that's when we start like viewing it for real. And this is VSTS, we use VSTS. We have our own chememboards and builds and we have our work items. We do everything in a very methodic way in VSTS. If you see here, this is more or less the time where we were developing the application. So we started like mid-September and finished, if you see there's a lot of activity towards connect. The team is, if you see here, there's about 60 people on the team. The 60 people are, it's a combination of people from our demo team, which is leading the effort. We are working with people from marketing just making sure we're landing the right products, the right messages. We're working with people from engineering. We have a lot of people from engineering. We're working with their newest build from last night and it's very exciting to do that, but we talk with them because we wanna learn how to use their products in the best way. It's multiple engineering teams across Microsoft, so that's also very interesting. We have to make every part, one hand talk to the other, every part talk to the other. That's not easy. Then we also work with our MVPs. We have MVPs for Azure for a summary, for example. We talk to them and they get involved in the development process and we have a development team for the application. And then lastly with speakers, right? Because in the end, we build all these apps and it's kind of a reference week, but then we have to build demos for them, right? So we work a lot with them and you would be surprised how much feedback and input we get from them. So it's actually a solution built by a lot of people and used by a lot of people and it's so good for us that we are releasing it so that others who are interested can use it. People ask, hey, why don't you just push a button after the keynote and get it up on GitHub right away? Well, there's a bunch of cleanup we have to do, but we did the effort and we're doing these shows so that people learn how to use the applications and we're very grateful that you are letting us have these shows. Thank you so much. That's why I'm here. Thank you. That's why we're here. All right, cool, thanks. Thanks for this excellent overview of the scenario and the apps. Again, we're going to do drill down episodes on the website, the mobile apps, the containers, all that code's available in the repos and then we'll do an episode on the mixed reality stuff just to show cool stuff and kind of a taste of what's possible. All right, so go get the code. We have all the links. Watch the connect videos if you haven't seen them. Go get the code and then join us for the deep dive drill downs. Thanks, we'll see you next time on Visual Studio Toolbox. Thank you.