 Hi, welcome to Visual Studio Toolbox. I'm your host Robert Green, and joining me today is Daniel Jebaraj. Hey Daniel. Hey Robert, happy to be here. Daniel is from SyncFusion and today we're going to talk about SyncFusion and the controls and components and some other things that you offer for developers. Visual Studio has a long history of working very closely with partners such as yourself and providing these additional tools for Visual Studio. Since this show is Visual Studio Toolbox, we're going to talk about the tools that you guys provide for developers. Great. Thank you, Robert. For 17 years, SyncFusion has done really one thing. It's providing tools for the Visual Studio and the Microsoft ecosystem. Our customers build enterprise applications, and our goal is to really make the enterprise applications awesome and to be able to build those applications in lesser time and using fewer resources. So that's really what we've done. Today, we have about 800 different controls on 10 different platforms. We support Windows Forms, WPF, all the JavaScript variants. We do ASP.NET Web Forms. We do ASP.NET Core, ASP.NET NBC, standalone JavaScript, and so forth. We have- UWB, Xamarin, you name it. The whole line yards, basically. The last few years, a lot of excitement has been around the Xamarin platform though. So I'm going to be really focused on Xamarin for the demo portion of my talk of the show today. With Xamarin, the real cool thing is that a lot of our customers have tremendous assets on the Microsoft platform. C-Sharp and going back to the Windows Forms days even earlier, and they're very excited to be able to transfer, take those assets, and then make them available on mobile devices. That's the real big challenge that they've been facing for the past few years, and Xamarin really takes that step forward. Anytime something new is invented, and we saw this with WPF, we saw it with Silverlight, we saw it with Windows 8, Windows 10, new platforms come along, and everybody wants to know, where's the data grid, where's the tree view, where's this control, where's that control, where's the PDF viewer, and we don't build all of those things. Sometimes they're part of what we supply, but it's nice for us to be able to say, well, there's Syncfusion, others will talk about them later, but there's Syncfusion, you should go and see about there, because their data grid's pretty good. Yeah, it's definitely. In the Xamarin spaces, you're moving over to Xamarin, learning a new variant of XAML, and asking yourself what controls are out there. You guys can help fill that gap. Yeah, absolutely. I mean, I was talking with the development manager at a financial institution a few years ago, and this was right around the time Xamarin was coming to the fore, and he said, most of our business still runs on desktop, on the Microsoft desktop prominently, and they don't keep me up at night, and those things work and they work well. What keeps me up at night is emails from senior folks asking for that functionality to be available on mobile devices, and that's really what they were dealing with back then, and they had to deal with iOS separately writing with Objective-C, then with Java and managing the whole nine yards, and now with Xamarin, especially with the kinds of controls that we have available on the platform, it just makes it very easy to take care of the application. So I'm going to start with a simple getting started application. I'm going to show a chart, just show how easy it is to go to new get the assemblies and get started, and then once that's done, then we'll look at a few other demos basically. So I'm just going to create a new project in Visual Studio 2017. Just going to call it very creatively, chart sample. I'm just going to choose the defaults except blank. Spins, I've actually noticed that Xamarin Forms project creation is dramatically faster than it used to be with the latest version, so that's good since we stood here and watched it. Yeah, Visual Studio 2017, certainly much more tightly integrated with Xamarin. I'm just going to get- Syncfusion.xamarin.sf charts. So that's the package I'm getting from new get and in the interest of time, I'm just pulling it out using the command line. So did you have to have a subscription or purchase any product to be able to use that? No, we published the packages to new get by default. They're subject to the same license, it's a commercial license, but we typically have a 30 day evaluation period, so you can go out and get them and then work with them. We also have a community license which I'll talk about at the end, which makes it available to a broader audience basically. So that's there, it's added the references and that's really all we need. I'm going to go to the core chart sample and then I'm going to add an existing item because I want to bring in a simple view model that I'm going to consume in this. So I'm just going to go up a little bit here to this folder, I have that saved here. Okay. So I'm just going to explain this real quick. I have a really simple view model, I just have two data points, I have a category and sales, and this is a plain old CLR object, so there's no mandate on you need to have a certain interface or anything implemented, there's nothing there. It's just a category string and then sales information, and then I have the actual view model has two observable collections which are of type data model, and the first one is, you can think of it as information for the northern part and then the information for the southern part, and we're going to label that as such in the chart. Just have four data points, books and movies, games, music, and I expose that as bar data one and bar data two. That's really all there is in the view model. I'm going to open the XAML file now, main page dot XAML, I'm going to clear out the default label that the project template added for us, and then I'm going to copy paste some code. I'm just going to bring in a reference to the chart, just scoping it to the CLR namespace, Syncfusion, SF chart, X, Windows, I mean Xamarin forms, so that brings it in there, and then I'm going to copy this code here which I'll explain in a minute. So just looking at the code here that we bought in, I have the SF chart control, and the first thing that we do is set up a title for the chart. So we just have a chart title and then we set it's text to be sales by category for north and south. I set a font size and then I set the binding context to bring in the view model to actually bind it to the view model, and then I have a notion of a primary axis and a secondary axis. We'll look at more samples which have multiple secondary axis and so forth, but in this instance, I just have one primary axis and one secondary axis. This particular instance, I'm choosing a category axis for the X axis because I have labels for the X values, I don't have numerical data, and then the secondary axis is numerical information, so I chose a numerical axis. And then there are some settings for controlling major grid lines, minor grid lines, displaying tick marks and so forth. Very easy to make those changes depending on how you want the UI to look. And then I have a legend that I've added in here. The legend allows a setting which lets the user control visibility of a series. So if you have a multiple series and you want to toggle them on and off, you can do that. I'm moving into the position at the bottom of the screen and then some settings on icon widths and so forth basically. Then the next one that's interesting is the color model. Color model is simply the colors that the chart cycles through as it displays. I have it set to metro. We have other themes such as material and you can set up your own. And you could create your own if you had the skills and time to do it. You can create your own palette and consume that as well. If you're corporate colors, for instance. And then the interesting part is the chart series basically. The chart series is a collection and you have two series here reflecting the two sets of data points that we have in the view model. And it's straightforward binding. I set the item source for each of them. I configure each to be a bar series. If you had a line or other things then you would choose an appropriately typed series. But in this case both are going to be bar and I just do the binding to bar data one. The two other pieces of information that it needs. One is the X binding path. What is the X value bound to and what is the Y value bound to. In this case I only have one Y value. For certain charts I will have multiple Y values and we'll look at that as well. And that's about it. I set that up and I set the legend icon for displaying in a legend to be a circle for both. And I also enable animation to kind of display it when the chart comes up. So I should be ready to build. You're running this on your Android tablet. I have an Android tablet and have it configured, connected. And you're using Visor. I'm using Visor for the demo. So we use Visor for a lot of our development. It's faster. So that XAML is pretty straightforward. It's not terribly complicated. No, it's not. And while it's actually loading, I'm actually going to show you how you can actually go to the site and download the controls. Because if you go to the site, if you go to syncfusion.com and you look at the Xamarin platform and you can download by any platform or a combination of the whole thing as well. So it'll just load and give you an option to look at samples. The samples are published on both the Apple iOS platform and also on the Google Play Store. You can get them from there. Or you can choose to download the free trial. The difference between this and getting it from UGet is with this option, we give you the whole package. It comes with a lot of samples, basically. So you get the code for the samples and you can make changes and play around with it on your machine. And that's the experience that you get. Make sure we talk about these other things, the eBooks and the Metro Studio. We will be talking about the eBooks and Metro Studio as well at the end. You can sign them with whatever is your favorite network, LinkedIn, GitHub, Google, any of those basically. Should be published by now. Still going on. And I also have, let me quickly show the health files that we have available. So complete help is available online. So you can go to help.syncfusion.com and look at Xamarin, for example, Xamarin Forms. And the exact steps that I followed now for the chart, you can go to the SF Chart Control and there's usually a Getting Started section which walks you through everything, adding the chart references, setting them up from NuGet, all of that stuff. So this is done and it's available now. So that's the chart that we got with a few minutes of work. And the cool thing is that you have a chart like this and it's very easy to kind of set up and consume. When I'm going to switch to the demo now, the demo section, before that, let me actually show the UWP version of that just a little quick. So I'll switch to, so it's support, we support iOS and we support UWP as well. So exact same code. I didn't do anything extra basically. I'm just going to simply set this up as a startup project and it switches to UWP. I'm just going to build it and deploy it on UWP. And when that's happening, I'm just going to switch over to my mobile device and start the sample browser. I'm going to show the samples. So if you, the UWP sample, with the exact same code that we did for the Android version. So this is all Xamarin forms. So you're writing the code only once, both the business layer and the UI. You're not writing anything extra for this. So everything is just done once and then you can deploy to the other platforms as well. Okay. Now I'm running the sample browser experience. So if you install the product from the full download, not from the new get package, then we install a full sample browser. And I'm going to walk through some samples that I find interesting. And the cool thing is that the experience that you get with the sample browser, we try to replicate that across all the different platforms. So if you are, you may not be interested in Xamarin, but you may be interested in WPF for the JavaScript products. And you get a very similar kind of experience with each of these basically. So I'm going to go to the chart because we looked at it already and kind of minimize Visual Studio. And if you look at the, we have about 30 different chart types. And each of those chart types is represented with a sample. This is a line chart and this is a step line and a bar chart. The bar chart was the one that we looked at which is created. Let's actually look at, for example, an area or a spline and look at how the code looks, how it's different from the bar. You'll see that really not much of a difference between those two. So this is a spline chart. I will just quickly drill in and look at the code for that. So it's set up exactly the same way. It's not very different. You have a primary axis. You have a binding context. It's just got a different view model. And then you have the legend and then the series. The only difference is that instead of a bar series, you have a spline series basically. And then you configure it with the settings that you want. And then you have it working basically. So it's very straightforward to work with a chart. And this is true for any of the chart types. So you're looking at step area or all of these that are more, let me look at something with multiple data points. So I just want to bring up. So this is a hope and high, low close chart. And if you look at it, the only real difference here in configuring that is that you have multiple data points basically. And that's really all there is. So if you look at the view model, you look at each daytime basically. The daytime is on the x-axis and you have multiple y-values, one for each of those settings. And you pass that in. But other than that, it's very similar, very simple to configures really no different from anything that we saw so far basically. And then we also have, I'm going to look at a few of the features that are of interest. If you look at the chart, it's a little hard to see, but if you actually help if I have it displayed, you can see this trackball UI. So as I move along, you can actually see that show up basically. So this is even things like this, which would be usually a little tricky to do, are pretty straightforward. So I'll actually go to the trackball UI, basically the sample, and show the information on setting it up. It's also very powerful. It really builds on the paradigm of using templates. So what you saw there is not preconfigured. It's actually a template that you can actually design any way you want basically. So it's really. But it's still a type of chart. It is a type of chart. It's just that the trackball is, the UI is actually controlled. The trackball behavior, you just passed it, stop. Oh, it's right there basically. So the whole thing is controlled by a template, and you can actually configure it the way you want. Okay. And that's kind of how it's done. We have support for gradients with colors, so you can actually make it look really nice, depending on the color scheme that you're interested in. The axis can be configured to look exactly like you want. You can ship the crossing points of the axis. You can make it look offset to the left or right, or move it up or down, do all of those things. Annotations are really cool. We can place them anywhere on the screen. It's really no restriction. You can have different kinds of shapes. You can put different kinds of markers, and so forth. We have support for live updates. This is a very popular feature for us. If you have an observable collection and you're pushing data in, the chart is optimized for displaying live updates. So you can actually update that and display this in real time. This is just an example of category axis and numerical axis, which we already saw. Support for built-in logarithmic axis. So if you have logarithmic data, you don't actually have to do anything special. Everything kind of works. The daytime data axis is pretty cool because often with business applications, you have a need to visualize daytime data. And if the axis doesn't support it out of the box, you have to do a lot of formatting and you have to really play around with the data. But this is actually out of the box. So right now I'm looking at data that's displayed with August and September and that's the, every few days you have a data point that's marked on the tick marks, basically. But as I zoom in, you can see that the daytime axis updates itself, basically. And it makes it look with increasingly smaller intervals of data. And you don't have to do anything to achieve that. You can actually control the step sizes that are there and you can actually control the formatting if you want. But it does all of that for you, basically, just by incorporating a daytime axis. You want to show us some of the other samples? I think we've seen quite a bit about the chart. There's a whole bunch of other ones in there. I'm going to switch to the data grid. This is another one of our popular controls. So when we started out with the data grid, we've done data grids on Windows Forms share for many years and WPF also. One of the challenges was taking that a lot of the features and adapting them to use on a mobile device. It's one of our most popular controls now. It's really something that has been adapted very well for this platform. So just in terms of getting started, it's really, it's quite simple to initialize and set up a data grid. I'll just show you a real quick idea of how this is done. So I set data grid. So I'm going to look at the Installer Sample. So it's, we create a grid and then we pretty much just bind it to a source of data. So in this case, I have orders info. You can let it display all the columns itself, but in this particular sample, we have turned off the automatic generation of columns. So you can see that right here, it's set to false. And then we manually initialize all of the columns. Manual initialization will give you more control. So you can control the display that you want and so forth. But if you really want to let the grid handle that, you can let the grid handle that as well. And then you get the UI that you're seeing here. It's kind of really not much to set it up. It's very simple pointed at a data source and then provide the data template that you need to set it up and you have it up and running. It supports sorting. You can do custom sorting if you want. You plug in iCompatter and then you provide your own sorting and the grid will pick it up and use it for sorting. There's support for grouping, which you can see here. These are groups. And then you can actually have summary rows inserted. And those summary rows, we support different kinds of aggregates for the summary rows. In this case, it's actually calculating the totals. But you can do any kind of aggregate that you want. We provide several aggregates out of the box. But you can also write your own aggregate and plug it in, basically. And then resizing is another cool feature. You can actually drag and resize right on the mobile device. So this is a very popular feature because screen real estate is constrained and people want to be able to change things as they wish. We have support for unbound columns. The column highlighted in blue is an unbound column. And it's a formula column. So it's really just computing the value from a formula using the other columns, basically. It's a popular feature as well. And we have on mobile devices certain things that are really, you know, you can actually have a subset of your data displayed and then you can have load more items. So I can click that and it'll load items. The other paradigm that's quite commonly used is pull down to a fresh. And we have that built in. And it's just swiping, like with Outlook on mobile devices, so you can do that. And then have different verbs, kind of different commands attached to different segments and so forth. And then keeping in line with our PDF Word Excel products, you can export the data to PDF or you can export it to Excel. I'm going to click on exporting it to Excel. And you don't have to write any code to do this. This is all built into the grid. And it will run it and export it to Excel and open it in Excel. Cool. Hopefully I clicked that. Maybe I didn't. OK. So that's the data grid product. The other product I would like to take a little bit of time to show is I'm going to come back to some of the other UI controls that we have time. The Excel SIO product is really cool. Now a lot of business applications, I mean the link work that they talk, the language that they talk is really Microsoft Excel. And Microsoft Word sometimes and PDF and PowerPoint. So this is the most common form of exchange of data. And what we have done is really built a full-fledged product with a complete object model around all of these formats basically. So you can take Excel, you can take Word, and write on your mobile device. This is not going back to server or doing anything. It's just write on your mobile device. So if you have offline center, you can support that as well. You can process those files. You can generate them basically. And you can pretty much do whatever you do on the desktop as well. So I'll show an initial just a quick sample before we start looking at the code. I'm just going to switch to the formula sample. And I'm going to generate an Excel file on the mobile device and it'll generate the file and then kick it off to Excel to open it. So this is a full-fledged table with data and then you can see that the formulas are properly initialized. And it just is really a very rich kind of experience. There are often cases where you export data to CSV files, but that doesn't provide users the kind of experience that they want. And this makes it very simple to do this. Let me take a minute and show the code for this so we can see how simple it is to do something like this. The product is called XLSIO. And these are the samples. I'm going to look at the formulas page first. So this is non-UI, so everything is actually done in code. You can reference it in some or if you need, but that's all of the work is actually done in code. So it's very similar to the Automation API that's available on the desktop basically. So you can see that we instantiate an Excel engine and then we ask it. So you're building the spreadsheet in code here, that's what you're doing. You're building the spreadsheet in code. You can choose to use templates. We'll look at that also. Often it's kind of cumbersome to build everything that you need from code. So you can take a template and you can plug in everything kind of like mail merge works. You do all of the work inside Excel, and then you save it as a template. We can load the template and then just plug in the unique data, right? An Excel engine is something that you guys provide, right? Excel engine is something that we provide. And you instantiate that, and that's really the starting point for the other work. And then you ask it to create a workbook. I'm creating a workbook with one sheet. Do you need Excel installed on the device to create it or only to open it? No, you don't need Excel installed to create it. If you visualize it right there, you will need Excel installed or another variant that reads Excel files basically. You can create the Excel spreadsheet even if you don't have Excel on the device. That is correct. You're just writing out the file, right? It doesn't call in Excel or do any kind of automation. It's just working with the file format basically to accomplish this. And then you create the workbook with the worksheets. And then once you have that, then you can access the sheet. And again, an object model is built around that. And you can see how it initializes each part of the sheet basically. So there's a full object model around it. You have text, and then you can initialize each of those cell references, whether it's C6 or F6 or whatever, to whatever you want it to be. And this is all strongly typed as well. So you can set it to be text or you can set it to be numbers. You can set it to be daytime. It's very simple to do all of that and to format it. And then the formulas are kind of the interesting part that we do at the end. So these are actually style settings. So you have full access to that as well. So you can see here that I'm actually setting the cell style to be a sort of form. Yeah, it's taking me back to my VBA days. The API is very, very similar. It's meant to really be easy for someone to port over if they're running it on a mobile device or on a server, basically. And then the formulas are at the end, basically. So you provide a formula and then say, hey, this is where I want the formula to be. And these are the references. It's just traditional, like so, basically, but in code. Awesome. And that's kind of how you do that. Just one more quick thing with the Excel product. I want to show the chart page, basically, because that uses a template. And it's an interesting use of a template. So if you look at it here, this is actually loading a template from disk. So this is actually saved as a resource file as part of the application. And then loading it. And once it does it, then the rest of the stuff is the same, basically. So if you look at that code, just charts here. So the chart was embedded. The rest of the data was already initialized, basically. So we did the chart in code. Very cool. So we have this. Very cool. This is for Excel. And you can do pretty much anything. There's very little that's not supported. You can do pivot tables. You can do sparklines. You can do anything, pretty much. Even features that are not supported on the mobile version of Excel, basically, you can still generate them and then the visualization will scale up. You can email it to a client. And then they will be able to open it on desktop Excel. The doc.io product is also very similar. I'll just quickly show that code right there. And you can see that it's really similar to what we did with Excel. So you have a Word document. And then you can create sections. And then you can create paragraphs. You can do styles. You can insert data. The cool thing is that you can do mail merge with this. That's really a very common use case for a lot of business scenarios. So you have a document. And then you can actually do mail merge right on your mobile device. Well, this proves the point that a mobile device is a computer. And it really is. We call it a phone because that's the term we use, just as you call that your Lenovo or your ThinkPad. I call mine my Surface. But it's still just a computer. And then the phone is becoming more and more powerful. It's really super exciting to see all of these awesome use cases. Now, we wouldn't have really imagined this even a few years ago that you can do all of these things that you used to need a desktop for, basically. You don't have to do a callback to a server. Nothing, you just have it right there. And it just makes the whole experience. A lot of these capabilities are shared across, whether it's WinForms or WPF or UWP or mobile. A lot of similar things would also be in the controls for web and JavaScript. Yes, that is true. Let me actually show. If you go to the website, we looked at the downloading evaluation experience. If you look at the product page here, you can see all of the different platforms that are supported. And you can actually access any of them right from the site. And then you also have just one more thing that I would like to show on the product itself is we have this new JavaScript package called EJ2 that's coming out. And there's a demo that's available. There's also a feed for up-to-date versions of this being published on NPM. And we have that running on our server. And you can look at the samples. It's really, this is the chart that we looked at here on Xamarin. And it's really identical in terms of features and functionality and all of that. And you have a data grid and pretty much everything else. Well, it's kind of the cool thing about you guys' control vendors. You build controls for one platform. And then your spec for the next one is basically it should do this, add minus the things that don't work on that platform, maybe add a couple of things that do. But the bulk of your script is it should do this. We already know what a grid does. We already know what a chart does. Just make it work on the next platform. Yeah, logical equivalence is really important for us because we have to take a chart. And then the implementation languages or platforms are completely different dealing with Xamarin or WTF. The guts underneath are wild, very different. But the way I use it as a developer is much of the object model should be the same. The properties should be as similar as possible so that it wouldn't take me that long to learn how to build a chart in this if I've done it in a different platform. And that's the idea, whether it's JavaScript or XAML, you have a very similar experience. The logical parts carry over basically cool. That makes your job easier and that's the whole. So we'll have in the show notes a pointer to where people can look at all the other samples. Let's talk about two of my favorite Syncfusion products of all time. Metro Studio and then the Sysyncly series. So with the Sysyncly series, I have an announcement that's pretty exciting. So for those of you who haven't come across the Sysyncly series before, we are up at 130 plus eBooks now. And we publish these books every two weeks, basically. That's the title coming out every two weeks. And the cool thing is that they're all about 150 pages, nothing more than that. So it's something that you can grab and read in a few hours, basically, depending on the complexity of the topic in a few hours. And they're available as a PDF download that you can read on your iPads or desktop. They're also available as an Amazon Mobi file that you can upload to your Kindle and read from there. You also have ePub now, so you can read with them. And they really are Sysync. They're really well written. They're very Sysync, yes. I read the Xamarin Forms one on an airplane. And oh my god, it was fantastic. The UWP one's great. I've done the Link one, the Async one, the Git one was awesome. I could go on and on. I love these things. It's really, I mean, we get them. I want the ability to just subscribe to them and just get them. I actually don't want to have to go to your website and look to see what they are. I just want them to arrive. Well, that's what I want. Is there the ability to have that? We have that now. It's really not on the Android Store, the Play Store yet, but it's on the Apple Store. And this will be on the Android Store in a few days as well. So this is an application that we built with Xamarin, also Xamarin Forms. So this gives you the full list there. And then you can actually say, hey, I want to add this to my shelf. And then it will say, oh, I don't have internet connection on the device. But I have a shelf already configured. So I have these three books on my shelf. And I can just read them right here, basically, with the built-in PDF reader, Xamarin Forms. And then when you have a new title published, the thing lights up. It's a little icon on your screen. And then you just go in there and get it. You don't have to go to the site at all. So you've got your wish, Robert. So that's the cool announcement around the Succinctly series. And then also another one of our products that is very popular is the Metro Studio product. So this has been around for many years now, I think about five years. You have over 7,000 icons now, the base icons. But the cool thing is that what you can do with it. And some developers have really cool design skills, so I don't want to knock everyone out. Most of us don't. For the rest of us. For the rest of us who need help with that, Metro Studio is really very helpful. So you can actually do customize icons without having any kind of design skills. So for example, let me say I just want to edit this. I just click on this. And then I can actually change the color. I can do the background shapes. I can say, hey, I want to change the color to be something else. I want to change the icon to be another color. And I can change the size, do all of that. The cool thing is that not only can export to a Rasta format, but I can also export to Zaml. This is part of that was amazingly cool the first time I saw this. Here's the Zaml that you can just paste into your app, and there's that control. That icon, excuse me. That's very cool, and we kind of have. And what's the licensing around that? It's completely royalty free. I mean, you don't pay us anything. We take great care to make sure that these are all done by an in-house design team, so we're not really licensing it from anyone. So the rights are very broad. You can pretty much do whatever you want. So I can use these in an app that I'm going to put in the store or use myself. OK, cool. Absolutely you can. And that's precisely why a lot of people downloaded. This is just so much better than finding icons and taking a picture of them and trying to use that, versus trying to figure out how to do design skills. This is one of those things where when you see it, it's just amazing. Yeah, absolutely. A lot of people love it, and we get a lot of email about our products, but we get a lot of email about the succinctly series and the Metro Studio, which are really cool. Now, given that the XAML in WPF is a little bit different than the XAML in UWP, which is a little bit different than the XAML in Xamarin Forms, is that XAML, does that apply across all? How do you handle that part of it? Well, I'm told that this applies to all the platforms basically, so it applies to UWP and applies to WPF as well, basically. So it's supposed to be the platform. And Xamarin Forms as well, so. The Xamarin Forms also. OK, so you could just take that XAML, put it anywhere, and they work across all the boards. It should work across the board. With Xamarin Forms, you might need a little bit more tweaking. We also have an SVG option, basically, that's more commonly supported on mobile devices. So you can go that route. OK, so basically. Cool. That's Metro Studio. You can actually, the other cool thing is you can select any number of these, and then just drag them here and create a project. And you can edit them all as one, basically. And then save it out and get a whole portfolio of icons that you can consume in your application. Awesome. Great. This is great stuff. Thanks, Robert. So I hope you guys enjoyed that quick look, relatively quick look at all the things Syncfusion provides. We could spend all day looking at various controls. And we picked a few of your favorites. That's cool. Definitely check this stuff out. Check out the controls. Check out the succinctly series. Check out Metro Studio if you need icons. Thanks so much for coming on. Oh, thank you for having me, Robert. It was really nice. Thank you. Hope you enjoyed that. And we will see you next time on Visual Studio Toolbox. Thank you.