 On today's Visual Studio Toolbox, we're going to explore a world where your apps look great and Telerik and Kendo UI do most of the work for you. Hi, welcome to Visual Studio Toolbox. I'm your host Robert Green and joining me today are Sam Bazou and Ed Charbonneau from Progress. Welcome to the show guys. Thank you, thanks for having us. We're going to talk about controls, UI controls, love doing this as a toolbox episode. We're going to talk about Telerik controls today, Kendo UI, so obviously controls have been an extremely important part of the ecosystem since before there was an ecosystem. I think that's the first one we had was the third party controls we used to call them. Now it's just part of the ecosystem and obviously, been very important and Telerik's been around for a while, Kendo UI, a little bit newer, but you guys work for progress. So the first thing we'll do is, let's make sense of all those names. Absolutely. All right. So once again, thanks for having us. So let's try doing two things in the show today. One is if you are a developer, indie or enterprise and if you have never heard of us or used our stuff. So let's talk about what Telerik and Kendo UI can do for you to make your lives a little easier. So that's if you have never used our stuff and then if you are already in this ecosystem using our stuff, maybe we can show you some cool new things that we have been busy with in the last couple of releases. So some demos that we'll show a little bit of code just to get everybody up to speed, that there's a lot of help in the ecosystem and we can make developers much more productive. So Telerik and Kendo UI are under the progress? Yes. So the company is called Progress and these are product lines and we'll break this down as to what each of them can do for web, desktop and mobile. Okay. Cool. All right. So let's start. So once again, I'm Sam Basu. I'm a developer advocate out of Pennsylvania and- and I'm Ed Sharbono, developer advocate out of Louisville, Kentucky and we're both longtime Microsoft MVPs as well. Yeah. So we are advocates of our products but we are also developers. We live and breathe this every day. So to your point, developers need a little bit of help sometimes because Microsoft and everybody else creates the tooling, creates the IDs, creates the rich ecosystem to get things going platform-wise. But there are little gaps and it's not Microsoft's job to- Sometimes there's huge gaps, yeah. And sometimes, you know, often we do that on purpose, right? Like, you know, data grids, a perfect example where people will come and say, oh, you should make the data grid do this, do that, do that, do that and do that. And we say, well, look at the data grids that are already out there by others who devote their lives to it. Wouldn't it be better if you just use theirs, right? We obviously need to provide one but rather than pour the resources in to making a data grid as good as some of the third-party ones, right? What's the point in that? And on the surface, some of these things might seem simple but then you get into the details of things like accessibility and that scope starts expanding. So we wanna make sure you have these things where all users can use them and they're accessible to everyone. Right, so it's never been our intention to make the absolute best controls ever, right? We as an ecosystem have great controls. Yeah, you make the platform, we fill in the gaps. So we are in the business of making developers successful. So let's talk about the UI frameworks that we make that kind of help developers ship apps faster. So first thing is Telerik. This is kind of where we started like 17 years back. So this is all of our .NET tooling that comes branded as under the Telerik flag. So this is when we say any app, any platform, we do actually mean that. So anything .NET that you're doing and there are multiple .NETs now. So you essentially choose the .NET that works for you. If you do .NET framework, you're likely building WPF, WinForms or WebForms applications. You may be doing .NET Core with the new ASP.NET stuff or you may be doing Mono for Xamarin. So whichever .NET you choose, we wanna make sure that we have all the tooling for you and these things integrate right inside of Visual Studio and can help you be more productive. So we'll talk about all of the Telerik tooling and then Kendo UI is something that is probably about five or six years old now. A lot of engineering that we have poured into it. This is our front end JavaScript framework for all things modern web and mobile. So things started out very on simple terms. We thought jQuery was a dependency. Everybody was happy to take and I mean jQuery gets a little bashing nowadays but it's fine. So but Kendo UI is a classic example of how the web dev toolkit has evolved over time because now we make components for Angular React and Vue. So go make web apps however you want with ASP.NET or if you're okay with JavaScript and spa frameworks then we will give you the tools to render our UI however you want and that's the whole point with Kendo UI. And these tools are things that I've used in production for many years before joining the company three years ago and a lot of people know us from the web forms days and a lot has changed since then and we have a lot of tools that are brand new, modern UI and we support all the JavaScript frameworks and all the .NET ecosystems, .NET core, MVC. We have tag helpers and all those great things we'll dive in deep in a little bit here. Yeah, yeah and let's start with the web. He's our resident web expert and then I'll talk about mobile and desktop. So for the web, if you are doing ASP.NET web forms then we have tools that will help you to kind of Ajaxify your applications. Web forms doesn't need to be old school and this is a question that we get a lot from developers who are using .NET framework. Web forms or WinForms and WPF are my platforms dying. Now it's fine, I mean .NET framework is part of Windows and some of our heaviest usage controls comes from web forms and WinForms and WPF. So if you are doing web forms keep doing it happily. You're going to be fine. If you are looking to modernize your apps then maybe look into MVC and then if you want to be on the bleeding edge look at .NET Core. So no matter what you're doing we want to make sure we give you rich tooling. I think by now .NET Core is not so much the bleeding edge. Yeah, it's not, yeah. And if you look at where .NET Core 3 is headed you're getting some of the .NET Core goodness back on to desktop. So really I mean choose whatever stack works for you. And we want to give you UI toolkits that are matured almost 100 plus controls. So don't rediscover the wheel if it makes sense for you. And if you want to do JavaScript then obviously we have Kendo UI which is full on JavaScript but you can render it through wrappers with ASP.NET MVC or JSP or PHP and then the same things power your web applications through ASP.NET Core. It's all Kendo UI under the covers. And Kendo UI works really well with people that just want to write web API in ASP.NET whether it's regular ASP.NET or Core and you have those web APIs stood up and you just want to consume and display data through Kendo UI it works fantastic. Yeah, another tool web developers and most likely most desktop developers have used for a long time as Fiddler. And we have poured a lot of love into Fiddler. Fiddler used to be a simple standalone tool which did like network proxies and showed you the network stack. We have kind of separated the UI from the core functionality. That's called Fiddler Core and we have that running on.NET Core now so we can make Fiddler run on Linux and Mac as well. And Fiddler Core is just an engine. You can actually embed that in your dashboard applications if that makes sense. Yeah, so don't be in doubt. Know what's going on in your network stack. I'll let Ed talk about all the web stuff. Let's talk about a few more things mobile. This is interesting because there are lots of things you can do. There is no one way of doing things. What you choose to do your mobile apps in really depends on the type of app, what type of skills you bring to the table and how you want to maintain your code base. There is no right or wrong. If C sharp is your thing, go all in with C sharp and XAML. With Xamarin, I think that boat has sailed. We have had heavy investments on the Xamarin stack because we see how much people are using Xamarin because for .NET developers it's an easy way to get your code and your expertise into these new platforms like iOS, Android. And it's not just those two, it's Samsung, Tizen now. And you see where all of these new platforms are coming up where Xamarin is able to port your code to newer and newer platforms. So that's exciting. But if the web is your thing and if you want to keep doing straight up JavaScript, then maybe you don't have to do C sharp. So to that point we have NativeScript, which is our open source framework for doing native cross-platform apps with JavaScript. Or we also work closely with Google. So if you wanted to do Angular and TypeScript, we'll let you do that as well. And you're kind of sharing code a little bit component-wise between web and mobile. So again, choose however you want to come at the mobile. You got some choices. And again, all of this is tuning that's integrated inside of Visual Studio, so you never have to leave. It's worth mentioning too that all of our web stuff is responsive mobile. So if you have a mobile app or a web application that you want to be compatible with the smaller displays on your phones and tablets, then our controls accommodate that as well. Okay, yeah, absolutely. Desktop, this doesn't get as much love we think that it deserves. Because think about how many million-dollar enterprises run things on desktop. Yeah, and I mean, WPF is here to stay. It's touch-friendly. It can power modern apps. And I mean, even if you're doing WinFroms, you don't have to do the old-school things. You see the kind of love that WinFrom gets from the dotnet framework itself, high DPI, and so on. So these are things that we started at Telerik with. So rich, rich UI controls for WPF and WinFroms. They get heavy usage. And if you are in the UWP Universal Windows Platform stack, this is rich because it lets you target anything that runs Windows 10. So you write a UWP app. It's going to run on HoloLens, on Surface Hub, on all tablets. So UWP is kind of in between desktop and mobile. It can do both. But it's one platform. So we want to empower developers to build modern Windows apps, however they want, with the UI tools that they need. Something that we don't often talk about enough is some of the other things we can do. Because modern enterprise apps also need some help, like reporting, report servers. Test Studio is another product we have that lets you automate testing for web, desktop, and mobile. And then we have lots of little things for developers which are very helpful for productivity. Things like mocking frameworks, looking inside of assemblies to see what's in it. So all of those things are free for developers to use to kind of boost their productivity. So that's kind of us. That's a lot of Telerik UI is .NET. A lot of Kendi UI is JavaScript. And then there are things that kind of augment enterprise apps through reporting and testing. Right. So with that, let's kind of jump into a few things. But this is one thing we want to talk about. This is new. If you are into chatbots, our conversational UI, then we can kind of help with polished UI for bot frameworks and chatbots that can be integrated inside of desktop, mobile, or web apps. And for the first time, we have been able to do something that kind of stretches all through our product stack, .NET and JavaScript. So we'll talk about this a little bit. You and I did, yesterday we recorded a couple of episodes on bots, which will be, those will go live sometime in the near future. This one's going live first. Those ones will follow in the near future. So we dive into that quite a bit in those other senses. And the point is chatbots and bots aren't just for the fluffy, nebulous stuff. They have real enterprise needs that they can fulfill. They can help you automate workflows. And we can help you put good UI in front of it. So we'll talk about bots all across our product lines. So with that, let's kind of take a look at some of this of what I think we're talking about. Yeah, let's have it over to Ed. So I'm going to start off with some demos of our UI products for all the web. So the first thing I would suggest people to do, if you're interested in the components from our Telerik and Kendo UI brands, is to go to demos.telerik.com. So we have lots of interactive demos on that page. I've got it up here on the screen now. And you can see at demos.telerik.com all of the different platforms that we support. So Kendo UI supports everything from jQuery to Angular, React, and Vue. Those Angular and React components, we wrote those from the ground up again. So those are written in the native frameworks that they belong to. So they're very performant, very feature rich, and geared for those JavaScript front end, single page spa applications. And then we've supported ASP.NET MVC since day one. So we have 70 plus UI controls for ASP.NET MVC. And then that same library works in ASP.NET Core as well. And then the ASP.NET Core version, of course, you can develop on iOS, Mac, Windows, and deploy on those systems as well. So you get the cross-platform capabilities. Those controls will work on those servers and those development environments. And as of the last release, we've even added tag helpers for all of those components that we have. So tag helpers is a feature that was launched with ASP.NET Core. And it's a way of writing UI markup with HTML attributes and tags much almost exactly like HTML structure. So those things light up in your development environment and they flow nicely along with the HTML that you're writing. So we have full coverage for that as well. And of course we have our tried and true web forms components as well. And those things are very mature, very feature rich. So you can find all of those demos at demos.teller.com. And I'm gonna jump into demos on our ASP.NET Core side because this is where all the latest and greatest stuff lives. One thing that you'll notice if you go to these pages, whenever we do updates, we flag them with these little update icons so you see all those green lights on there. That's all stuff that's been recently added. So we do this quite often. We update our UI controls with customer suggestions, things that people are asking for and need and then stuff that's on our roadmap that we think people will get used out of. So one of the things that's brand new is in our data grid and with the latest version of ASP.NET Core, we had a new release of SignalR. So this is web sockets. We're able to take data and push down to the browser through web sockets and do updates on the UI. So this is a really cool demo. In order to do this, I'm gonna duplicate this tab so I've got two of these demos running. And I'm gonna break these apart and put them side by side so we can see them both running at the same time. And I'm gonna go to the SignalR demo on these. So this is a demo. We've got a SignalR service on our server running. And what it's gonna do is if I'm in the grid and I make an edit, it's gonna live update the second grid and it's gonna keep those two things in sync. And it's doing this through a communication channel using SignalR. So I can say, hello, VS Toolbox. And when I update this, the grid on the right-hand side immediately updates with those changes. So you can have a multi-tenant application where you have people editing simultaneous data and those things can be updated in real time in both of those grids. Now, I mean, for context, we had SignalR in ASP.NET and MVC initially. And then ASP.NET Core first came out. They had to drop it because they were trying to ship it first. And we sorely missed it for like a year and a half. And now it's back. So what you see here is a SignalR hub that's connected to both of the clients. And that's where we can push updates back and forth. That's when, if you have to host it yourself, but there's also a new service now in Azure. It's an Azure SignalR hub, which will take care of all of the scaling needs. And you just have a hub in Azure that you can connect any number of clients to in its scales. And compatibility for that would be on the server. So it wouldn't affect the client side of this, but it's totally supported through that SignalR socket that we have. So we're able to bind SignalR data, other backend services as well. The grid is super powerful. I'm going to jump into a Visual Studio demo here and show just how powerful and simple it is to use. So I've got in my browser here another demo open. This is open to Visual Studio on my machine and I'm displaying the compiled application here. And I've got my Telerik UI for ASP.NET Core grid. Now the grid has paging, sorting, filtering. We can export to PDF and Excel and lots of really great things. The nice thing about the grid is it's really easy to set up. Let's look at the code behind here. A nice fluent API interface where we can define the columns, bind the data sources, do all of those great things. So if we go back to our grid, if I click on my headers, you can see we have sorting. This is optional. We can do server side or client side sorting. So if we have very large data sets, we don't want to send all of that down to the client and have that sorting on the client. So we can mix and match depending on our needs where we want that sorting to happen. We also have these nice filtering UIs that we can add. We just simply add in the code filterable equals true. So we just say filterable on that grid and those filters are automatically added for us. So we have the ability to do greater than less than all of those type of things. We can also drag and drop and do grouping right there on the grid. And these are touch friendly as well. I can just drag with my finger and drop that up there. And we could sort by city. These are collapsible. And if we wanted to even do some more advanced sorting or filtering, I like this UI. It's nice, but sometimes we have simpler needs. So maybe I don't need to set equal to greater than contains all of these things. I've only got a couple of cities in this column that I want to sort by. So we have this new feature that we added a couple of releases ago. And it's one of my favorite features. And I'm just going to go into that column that I was talking about, the city column. And I'm going to put another piece of code off the end of this chain that says filterable. And I'm going to set multi to true. So what this is, we kind of nicknamed it Excel like filtering. Because in Excel, if you have a filter on something, it's refresh the page so we get that change. Notice when I click on filter, it's going to scan that column for the data and then only prompt me with the values that I'd like to filter by. So I can say Louisville, because that's where I'm from, hit refresh and there's all my Louisville call data points in that column. So really cool stuff. All the grids support credit operations. You can do create, read, update, delete all day long. We have different modes of being able to do these credit operations. You can do them in line. You can do pop ups. You can even do batch editing. So I can enable batch editing on this grid and go through and make lots and lots of changes in the hit save button one time. And then I'll post back an array back to my controller so I can modify those on my database. We also support export to different formats. And it's really easy to do. Again, back in my configuration, all I have to do is modify one line of code and I'm gonna add a toolbar here and I'm gonna set the toolbar with a button called Excel. That's all I have to do for the grid to understand that I wanna export this entire thing to Excel. Notice when I refresh, I have an Excel export button. I click on that and it's gonna download an Excel file to my machine with all the data that's represented in the grid. Cool. We can do that to PDF as well and we can even do JPEG exports and all kinds of robust features with this. I mean, our app platforms have come a long way but something as universal as a grid is something everybody needs and like export functionality, every enterprise needs something like that, so. Now on the same page, I've got a nice chart that's being displayed. I won't go into the details on all of the configurations for a chart. We have a lot of varieties. If you go to demos.telleric.com, you'll see all of the different varieties of charts and you can imagine we have pies and bars and all of those things that you need. But what I wanted to show is we have that feature parody I was talking about with tag helpers. We have tag helpers now for all of our components on ASP.net core and that chart that you just saw on the screen is built using a tag helper and you can see that it's very HTML-like in its structure. So if you haven't seen tag helpers before, instead of writing this fluent API, some people prefer to see it in that same context, that HTML-like context. So we have that option available now. So we can define all the chart properties, you get IntelliSense with all of these. The bonus with the tag helpers is you get IntelliSense for normal HTML-like things as well. So you get your bootstrap classes fed to you and all of that great stuff. So I think developers have choice. Like you can do straight up jQuery if you want. If you're comfortable, you can do razor syntax, which you're mixing and matching C sharp and client-side a little bit too closely and then if you want it to be clean, you just do tag helpers. And notice on that previous page I had, I mixed the two together. They're not exclusive. So I can have HTML helpers for certain things if that works better for maybe a grid and then I can use them for other, tag helpers for other things as well and they can coexist, no problem. The next demo here, I'm not gonna go deep into chat but I wanted to show that our chat component is there. I have it on the page. What it does, it wraps up the API for the chat, gives it a nice visual look and feel to it. We can step through the chat bot and see its responses. And in this response, I'm looking for the fact that the chat bot wants a date. So our component library has a date picker. So I can actually say use our date picker in that chat bot and skin that interface so I can just select a date and click a button and there I have my answer for the chat bot. Now, what I really wanted to show about this chat bot is how simply I can take a tag helper and make this into a floating window that I can move around in my UI. Notice right now I just have a simple bounding box or a little gray line around it. I don't have any interactivity with the chat bot as far as moving that interface around. I guess that's how most websites have like chat embedded like a little thing pops up in a corner to say, hey, do you want to chat with us more? So one of the drawbacks of HTML helpers was that if they had embedded or child content within them, there was a lot of escaping going on to get the HTML to render the way that we wanted it to. It wasn't impossible, it just didn't flow very nicely. So on this form, I have my Kendo chat. So this is the tag helper that makes that chat UI show up. And I'm gonna wrap that chat in some more tag helpers. So I'm gonna declare a Kendo window tag helper around the outside of that chat window. And watch me uncomfortably remove comments from it and we'll reformat that so it indents nicely. So you can see that I'm wrapping it in a window and I'll go back and refresh the page. Just that simple little wrap of HTML around that element gives me this nice drag and drop window interface. And now I even have a close button so if I wanted to close the chat, I can just click there. All that functionality came out of those few tags that I wrapped it in. And while we're on the subject of simple tag helpers, this is our spreadsheet control. We added this about last year. It's a very, very complex UI component that if you built for yourself would take a force of people to create. It's very feature rich. So this is going to be very similar to the field that you get out of something like Microsoft Excel and it's something that you can embed in your webpage. Out of the box, this thing has import, export. So you can import from Excel files directly into it. You can export into other formats as well as Excel. And it does all of these capabilities with very little configuration. The code behind this page is going to be very small. And it's actually pretty impressive that I'm able to display something like that with a simple tag. So if I say Kendo spreadsheet and then just close that tag off, that's all I need for all that functionality. Now I can add more properties to this and configure it however I want. I can pre-populate it with data. I can send that data back to a controller and save it on the server. That data comes back as JSON. So we can just simply take that and pipe it into SQL. And the latest version to SQL support JSON format, we can just stash that right into a table field. So we can pull that in and out and we have nice interactivity for users. Cool. So this is some of the modern stuff that we have available. We have a lot of updates in that last release as you can see on that demo page. All those green lights coming up. Anytime you visit demos.teller.com, look for those and see what we've added. Cool. Sam, you were going to talk about some mobile stuff and some chat. Kind of demoed the chat a little bit, but you can get a little more into detail. Sure. And I mean, Robert and I made a show yesterday on all types of chatbots. So if you need to dive into those, please take a look. Let's switch up. I want to start back as to how things get started because sometimes we lose track of all the different ways in which you can kind of pull in our stuff into your development stack. If you are beginning green field projects, which is not every day. But we want to help you out. So if you head out to telleric.com, you'll see all of our stuff. And then we can kind of drill down based on products. You'll see what we have for web, desktop, and mobile. Whichever stack you are building on, I mean, go to that page, go to the landing page, and it'll tell you all about what we do. This one here is talking about Xamarin. Now there are several ways in which you can get started with our stuff and how you bring it in. If you just hit that big trial button on most product pages, we'll give you the binaries. We'll give you an example. Pretty much all of the code that I can demo today, those are code that we give out. It's either on GitHub or you can download it. So that's one way in which you can get the binaries. If you already use our stuff, like if you have a subscription, then you can go up here, go into your account, and you'll have all of your downloads. And these are also versions. So you can go back in time if you needed like older versions of it. So these are common ways in which you can just download the bits and get them in. Because they are DLLs, especially on the dot inside. They're just pure DLLs. You can just include them as dependencies in your project and you're good to go on existing projects. If you are starting up new things, we want to help you out a little bit with some Visual Studio templates. And we have templates for everything. ASP.NET, Xamarin, WPF, you name it. You can say File New Project, Telerik, WPF app. And we'll just give you all the DLLs right there. But sometimes we might want to have a little more control over how we are bringing things in. So in case of Xamarin, which is where I work a lot these days. So if you were doing Xamarin, let's take a look at some stuff here in Visual Studio. I'm on VS for Mac. You get the exact same experience on Visual Studio on Windows. If you just hit download on that page, we give you a little folder which has all of our stuff. So it'll have the binaries, it'll have some example code and everything. So I'm showing you that example app, which is also something you can download from iOS, Android, and UWB stores. So let's just say you are in Visual Studio on a project that you had already started. This isn't a new thing. So one thing that you can do is on any Visual Studio Windows or Mac, you can go in here into preferences and you can set up a Nougat feed. So notice how normal Nougat comes from apinougat.org. This is where you go to get any Nougat package. You can go to nougat.telerik.com forward slash Nougat. This is our Nougat server. So we can host all the bits for you. So that way you don't have to remember to download all the DLS and pull them in. You can just go here. It's going to ask for your credentials one time and then you're good to go with that in place. And you can also set up a local Nougat feed obviously. This is a Xamarin solution here. This is a.NET standard library. So what I can do here is add Nougat package. And this one here is pointed to our Telerik Nougat feed. So just about everything that he showed in ASP.NET, WPF, Xamarin, everything's available as a Nougat package. It's an easier way to kind of bring things in. And we're kind of are also conscious of the way. Oops, I hit add too quickly. Let's pull that up again. It is adding the Xamarin bits which it already has. So here if I go and search for Xamarin. So you see that even for UI for Xamarin, which is out of our UI suite, it's not one package. It's a whole bunch of packages. And this is because especially if you're doing a mobile app, you want to be conscious of how much your package size is. We don't want to give you everything that you probably are not using. So there are light packages. There are packages customized for individual controls that you're using. Sometimes we will use native UI for iOS, Android, and UWP. Sometimes we'll build a cross-platform UI with Skiashar, which is Google's 2D library. So if you are using things that you know you're gonna need, just get those bits as Nougat. So you're not bloating your app packages unnecessarily. And you can also version things on a Nougat package just as easily. So several ways in which you can just bring in our stuff, okay? Let's close this and let me go ahead and run this app. This is again the sample app. So it's gonna pull up my iOS simulator here, which works exactly the same way with Android or UWP. I'm gonna let it build for a second. Now is this the TellerTaget application that you're using? No, that's another sample app. So what he's referring to is if you will look up this app that we wrote. A lot of times we get a little dinged because we show simple stuff. So we want to actually show really a complex real-world app that we can put in the stores. So if you guys are interested in Xamarin Forms, take a look at this app that we actually have in iOS, Android, and UWP stores. It's a real full-on application that kind of scans your pictures in your photo library, calls into Azure Cognitive Services for their Vision API, and so we can tag things correctly so you can search on your photos. So we give out the whole source code, it's out on GitHub, but play with this app. It's kind of a real-world app made with our UI, kind of shows you how to use our stuff with Azure and so on. That's an attempt we are consciously making because apps don't live in silos. So for all of our stuff, we are showing integrations with Azure or Amazon or wherever you want to keep your data and your services. This one here is just a sample app here, so let me go pull this up. So let's change the background so it's not as disturbing. All right, so this is the app that you get. You can play with this on your phone. This has all of the stuff that we build and you'll see some of the latest stuff that we have done. We talked about conversational UI a little bit. This is our UI for chatpots. It works consistently. This one is connected to a bot framework that's hosted in Azure. So same exact experience as we get on the web. We can go get a start date. We can render a calendar. We can have different types of pickers like these buttons. There are pickers and then let's just say all three of us are going on a vacation. And then it's going to give you more pickers to choose from. And then these are what's called, next step is what's called hero cards. So we can have some imagery. We can have a richer experience and then the user simply chooses it. And again, this is independent of any bot framework that you use. Could be Amazon, could be a bot framework. Microsoft Bot framework is something we are all comfortable with. So you see the bot experience. It's simple, but it's smart polished UI in front of bots. I'm not sure that people might have noticed that's the exact same bot that I used on the web just a moment ago. So it was that same travel assistant in the same workflow that we just walked through on the web. So what it is, is a bot that is hosted in Azure. It's written in Microsoft Bot framework and it's using a direct line, either JS or .NET. So we are able to interface through it, to it in a restful way. And we get the results back from the bot framework. And bots by themselves don't do a whole lot unless you hook it up to other intelligent services like cognitive services, which will help you do natural language identification, all your rules, and all your state management. All that good stuff. One thing that was really cool about that is you had a calendar on yours that came from the Xamarin or the, sorry, the natural iOS formatted calendar that's out of our UI library. That we're able to inject into that chat experience. And then I was able to do the same thing with Kendo UI on the web. Our Kendo calendar got injected into that experience. The native UI on whichever platform that you're running on. Some new things that we did on the Xamarin platform because Xamarin gets a lot of love these days for developers because it's an easy way for C-Shot developers to take your code places. You've added barcodes for boarding passes and QR codes, whatever you name it, different types of encoding that you may have for your barcode galleries, all of that is in place. Obviously, we have our charts and graphs. These are things that you really don't want to create by hand. It takes a lot of effort and a lot of engineering to pull off native charts, but these are all interactive and they flow nicely. Other things we have done, let's go look at list views. This is something I always use. You often find us building components which have a corresponding default implementation in Xamarin or in ASP.NET, but we can just put it on steroids. We can add a whole lot more APIs and easy implementation and ease of use on these controls. This one, most mobile apps end up being a list of things. This is a very polished list view that has pull to refresh. You can slide left or right as you do with your mail. We can light all of that up. You can reorder things. For some reason, this thing died. Let's put it up again. Now, those barcodes are extremely useful for manufacturing scenarios. I used to work in manufacturing when I was doing app dev, and those are used all over factories to communicate between ERP systems and other machines and we were always scanning things in and out. So, it's a very helpful tool for doing development in those scenarios. Somehow, it's not like in the reorder. Let's look at some of the things, but you can reorder things once you're in a list view. That's the whole point of having a list view that's polished. You can open up just a couple of settings to have it do paging, sorting, filtering either client side or server side. I was a little hesitant about putting grids on mobile devices, but it turns out a lot of line of business apps actually need a grid, because you have a list of things that you want to show that is in a grid format. So, you can do grids pretty much the same functionality that you saw on the web. We can do custom filtering, sorting, and all of these things can be localized. So, if you change the language settings, if you have the right resource files, we can light this up in whatever language that you need. So, a lot of love has gone into Xamarin off late. We see how Xamarin.Forms really helps developers reach platforms that they have not. I'm not going to show a lot of code here because this entire solution you can just download and see all of this code. It's also out on GitHub. Let's look at a little bit of the desktop side of the story. I'm going to pull up my Windows 10 VM here. Hopefully, it's still running. Okay. So, this is Windows 10 and this is UWP. This is Universal Windows Platform. It works exactly the same way on desktop, tablets, phones, maybe, and then HoloLenses and other things. So, it's across all of Windows 10. If you head out actually to this URL here, Telerik forward slash open. We actually do a lot of open source work which people may not know. Some of it is commercial but not everything can be open source, but we actually do put out a lot of things that are open source and free for developers to use and come work with us collaboratively. NativeScript, which is our JavaScript native library for building cross-platform native apps that's entirely open source. All of the UI, all of the tooling is open source. We can do Cloud builds for you. If you don't have Apple devices, Kendo UI Core is open source and then this is what I'm talking about. You UI for Universal Windows Platform. Okay. This entire thing is open source. We worked closely with Microsoft last year and this has gotten a lot of love. This is more than two dozen really smart controls like grids and charts and graphs that in the entire thing is open source. It's actually part of the Windows template studio. If you want to build UWP apps, they'll pull in the Telerik grid from a fine new project. Okay. We talked about those fine details earlier. Remember, I mentioned accessibility. You mentioned localization. When you talk about Windows Universal, we actually have ink capability as well. So those are things that if you're going to try to create these controls yourself, the fine details like that are something that takes that extra time. The same things that you expect, charts and graphs, different types of charts and graphs, they all light up right here and we also give you the code that renders these things. You can check out how these things are working. It's a nice polished app and you don't have to install any bits. You can just go to the UWE Store and play around with this and see all that we can light up. Grids are really hard to do sometimes and then we are also known for different types of gauges, linear, radial, all of those things can be lit up fairly easily from your XAML. So that's the UWP story. It's XAML that is particular to UWP, but XAML for WPF has a slightly different variation. So it has XAML for XAML Informs and I mean, there are efforts underway to have it be uniform. We are keeping a watch on that to see how that can help developers have one piece of XAML that's rendered consistently across all platforms. So that's UWP. Let me show you one more demo of our WPF controls because again, WPF runs a whole lot of businesses because it's very popular. So let's close this and go to the WPF one. This is full-on WPF, native UI running on top of Windows. It has a lot of controls, rich, rich ecosystem, 100 plus controls. One thing to note is conversation UI again. So we were able to do chatbots across everything, mobile and web and desktop. This is again the same travel agency. If I can maybe flip to show you something else, let's do healthcare. So notice how it's just a bot, book a checkup, so you get the point. So this is all like chatbot UI. I don't want to give away too much of our bots episode. All right. So we were able to do this consistently across all platforms is what I'm saying. If you are using anything in WPF, don't rediscover the wheel. There's a lot of help on the WPF stack. We give you a lot of code, sample code, and these demo apps to show you how to hook these things up and render smart UI. Great. Yeah. So that was a lot of things we- That's a whirlwind tour. There's a little takeaway here. There's an awful lot that folks can take advantage of. Exactly. So we didn't dive a whole lot into code, but these sample apps are all out there. Yeah. Play around with it. You don't have to install anything. Just free trials, go see what's out there, see how easy they are to use, how much you can improve the look and feel of your apps. Yeah. For any of these things, just go to telleric.com, click free trial or go to demos.telleric.com, and play with it right there in the browser. Cool. So put modern UI on top of any app that you're building, it's going to help drive that delightful user experience for your users. So this was like I said, a quick primer for all the things we do. Thanks so much for watching. I'm Sam, and this is that again. Thanks so much for coming on. Thanks for having us, Robert. Hope you guys enjoyed that. Absolutely go out and check this stuff out, and we will see you next time on Visual Studio Toolbox. I know.