No, there is no new product called RadMVC- that's just my "catchy" title for this episode of Telerik Watch Minute. As you might have guessed, though, this episode is focused on showing you how you can get started using the RadControls for ASP.NET AJAX in ASP.NET MVC. Telerik is one of the only ASP.NET component vendors supporting MVC and we're doing it without requiring you to learn a whole new set of controls. You can use the same RadControls for ASP.NET AJAX Q3 2008 SP2 that you use today in ASP.NET MVC. This is a big concept, though, so this is a longer than usual Telerik Watch Minute. Hopefully the extra time spent in the demo will help you gain a complete understanding of how you can get started with the RadControls in MVC and set you up for success on Microsoft's latest incantation of ASP.NET. Enjoy! Watch this epsidoe in full HD on Telerik TV (makes it easier to read the code)
Friday, January 30, 2009
Thursday, January 29, 2009
As you know, today (in fact, right now) was supposed to be a free Telerik Reporting Webinar. But you've probably noticed that there is no webinar to be found. Fret not, you did not miss the event. Unfortunately, today's speaker became seriously ill shortly before the scheduled start time of this webinar, so we have decided to postpone the event by a few days. We are very sorry that this last minute change had to be made, but I'm sure you'll agree you'd rather have a great webinar with a healthy speaker than a weak webinar with a sick speaker.
Wednesday, January 28, 2009
[Cross-post of content on my Telerik.com blog, for your reading convenience.]
Welcome back to the ongoing Optimization Tips series. It's been a while since the last installment, so it's high-time we took a look at more tips and tricks for optimizing your Telerik-powered web applications. In this the seventh article in this series, we'll take a look at Telerik's brand new RadCompression HttpModule and try to gain a deep understanding of how this tool can help improve application performance. Some of the concepts in this article build on things we've discussed in previous installments, so I encourage you to read the earlier articles before reading this if you have not already done so. Let's get started.
WHAT IS RADCOMPRESSION?
WHAT RADCOMPRESSION IS NOT
RadCompression is not designed to be a complete replacement for other HTTP compression tools, such as the built-in HTTP Compression in IIS 7. Instead, it is designed to work with those existing tools to cover scenarios they usually miss- namely the compression of bits moving back and forth in AJAX (and now Silverlight) applications. If you have HTTP Compression enabled in IIS7, you'll discover that it does not compress your AJAX and Web Service responses; it only compresses the initial bits sent to the browser when the page is requested. By adding RadCompression to your project, you cover those gaps and start compressing your XHR (XmlHttpRequest - i.e. the "X" in AJAX).
So, if RadCompression does not cover all HTTP traffic, what does it cover? Quite simply, RadCompression will automatically detect and compress requests that expect these content response types (as found in the HTTP request's "ContentType" header or "AcceptsTypes" header):
These types generally reflect the content types returned by AJAX Web Services, ADO.NET Data Services, and AJAX UpdatePanel responses, though there certainly are other scenarios that return these content types (such as a typical RSS feed). If a browser supports compression (and most modern browsers do), and RadCompression is enabled, all content of this type will be compressed. The one exception is IE6, which does not well support this compression, so RadCompression will automatically ignore requests coming from IE6 clients.
HOW DO YOU ENABLE RADCOMPRESSION?
Enabling RadCompression really couldn't be easier. It's a simple matter of adding a HttpModule registration to your site's web.config. Specifically, you need the following:
<httpModules> ... <!-- Add this line exactly as is - the name value is important --> <add name="RadCompression" type="Telerik.Web.UI.RadCompression" /> </httpModules> <!-- If you're using IIS7, then add this, too--> <system.webServer> <modules> ... <add name="RadCompression" type="Telerik.Web.UI.RadCompression" /> </modules> ...With that single line of configuration (or two lines if you're using IIS7 Integrated Pipeline), RadCompression is ready to work. You don't need to make any additional code or configuration changes. The compression module will automatically look for content that matches the conditions mentioned above and compress it. Remember that HttpModules, unlike HttpHandlers, touch every request processed by ASP.NET, so you don't have to do anything to your pages or services to make the compression work. All compression is handled by the module. All decompression is handled by the browser.
WHAT IS THE BENEFIT?
Time to get down to the brass tacks. Does RadCompression really help improve your application's performance? As you know, in the Optimization Series, we've been testing different optimization techniques and their effect on page load time. It's crude, but it gives you a relative idea of how the technique can improve your application's performance. For RadCompression, I ran eight unique tests, executing each six times to collect a reliable sample set. The tests are composed of two distinct scenarios:
- UpdatePanel Updates: In this scenario, there is a page with a RadGrid, bound server-side during the NeedsDataSource RadGrid event, with a RadAjaxManager on the page to "ajaxify" all Grid operations.
- Client-binding Updates: In this scenario, there is a page with a RadGrid that is declaratively bound to a ADO.NET Data Service (which, for the unfamiliar, is essentially a fancy WCF web service). The RadGrid fetches data via the service and initializes in the browser and uses the web service for all operations, such as paging.
For both scenarios, the data layer is a simple LinqToSql model using the AdventureWorks database. Both grids are bound to all Employees in the AdventureWorks data store, so the scenarios should be equal except for the way they handle initial data binding and binding for operations like paging. For each scenario, we'll test the following, measuring bytes sent during the request, bytes sent in the response, total requests, and page load time:
- Initial page load
- Paging the RadGrid with RadCompression disabled
- Paging the RadGrid with RadCompression enabled
- Loading and paging the RadGrid with RadCompression + the RadManagers (RadScriptManager, RadStyleSheetManager)
These tests will show us the relative impact of adding RadCompression to a site. Let's take a look at the results:
Average Bytes Received
This chart reveals some interesting facts. First, we see that choosing to use UpdatePanels (and server-side binding) or client-side binding does not significantly initial page load size. In fact, it takes a few more bytes to start with client-side binding (though we see when the RadManagers are used those bytes compress better). The real benefit of the client-side binding is revealed in the RadGrid paging operations, where the bytes received are reduced by 62% (on average). When we add the RadCompression HttpModule, we see improvement in both scenarios paging scenarios. With UpdatePanels and "traditional" AJAX, bytes sent over the wire are reduced by about 68% with RadCompression enabled, and by about 86% with client-side binding. So right away we see that RadCompression has a significant impact on reducing traffic for async operations like paging in RadGrid.
Average Page Load Time
The load time results can be a bit confusing at first. They are not nearly as dramatic as the reduction in bytes received, so you have to look close to understand what's happening. First of all, we can see that all operations- including the initial page load- are happening in less than one second. In fact, all of the paging operations are happening in about 1/10 of one second! That means the localhost environment makes it hard to see the impact of the compressed bytes on page load time while paging a RadGrid. You can see, of course, that the RadManagers help reduce the initial page load time by about 25%, but the RadCompression module has a negligible impact on the RadGrid paging load time. The take away: for sites deployed to a local network (i.e. intranet sites), you really don't need to worry about performance optimizations at the level RadCompression provides. The latency is low enough and the bandwidth high-enough that you won't see a significant impact on page load performance. For remote sites, though, the delta between load time with and without RadCompression should be much more obvious (thanks to the time required to transfer 75% more bytes over the wire).
OPTIMIZATION TIP SUMMARY
When it comes to RadCompression, the impact it has on your site just depends on where your users are located. If you have a site that is deployed over the web, where latency and connection speeds are unpredictable, reducing the bytes you send over the wire is an easy way to improve your site's performance. And since RadCompression can literally be implemented with a single change to your config file, you really don't have much to lose. In a quick word:
RadCompression is an easy way to reduce the bytes sent over the wire for XHR operations.
Hopefully you'll enjoy this new tool in your Telerik toolbox. Whether you use them or not, Telerik is working hard to give you all of the tools you need to optimize your websites with very little work. When combined correctly for the right sites, we believe we can enable you to not only to build sites quickly, but with measurable top performance.
If you're a web developer (and I know many of you reading this blog are), now's the time to download the latest version of Internet Explorer and begin seriously testing your sites. This week Microsoft released the first IE 8 RC build, which really is the last step before the big RTW (release to web) that makes IE 7's successor official. The new build of IE8 is supposed to be more stable and better performing than the betas, and it's also (according to the IE Team) "effectively complete and done." That means what you see today should pretty much be what you see when IE 8 starts shipping to the masses, so any problems your web sites exhibit need to be fixed (or made compatible via the handy IE8 Compatibility Meta Tag).
Tuesday, January 27, 2009
For those of you already working with Telerik's cool new OpenAccess ORM tool, there is a new service pack that dropped today that you definitely want to check out. The service pack- officially dubbed Q3 2008 SP3 (or 2008.03.1327.2 by the version number)- packs tons of fixes and improvements in to both the OpenAccess run-time and design-time experience. Among my favorite improvements is the new support for the LINQ Count method, which now allows you use .Count in your LINQ queries and have it it executed on the database server for optimum performance. For a complete run-down on what's fixed, check out the official release notes. For those of you not using OpenAccess ORM, what are you waiting for? I recently built the entire Telerik TV portal using OpenAccess ORM Forward Mapping, and speaking as a developer, the experience was great. It saved me a ton of time (and code), and made it very easy to build a complex site in my spare time in a matter of days. If you're using LinqToSql today and want something that gives you that same "quick start" experience, but then also has the power to perform when you need to take more control, give OpenAccess a try. With a free version for free databases, what do you have to lose?
Mark your calendars. This Thursday, January 29th (not 30th, as I suggested in the latest Telerik Watch Minute) at 11:00 AM EST (4:00 PM in London), Telerik Evangelist Kevin Babcock will be delivering a brand new webinar on Telerik Reporting. This is a developer oriented event- not a marketing event- so there will be code, you will see lots of Visual Studio, and you will learn everything you need to know to get started with Telerik's Reporting solution. This is a 101 session, though, designed for those of you still sitting on the fence about whether or not you should adopt a reporting solution for your projects and showing you the basic benefits of using reporting tools. For those looking for something a little more "201" or "301," stay tuned- more "advanced" sessions will be hosted in the future. If you want to learn more about reporting solutions and Telerik Reporting, register for this free live event now to save your spot. I'll be commenting more very soon on future webinars from Telerik, but in the mean time, you can also save the date for next Thursday (February 5th) if you want to catch a live webinar on Telerik's WPF tools (details to follow). Enjoy the event! Register now for free, live Telerik Reporting developer webinar
Friday, January 23, 2009
Have you ever wanted to enhance your ASP.NET applications with a little "Silverlight richness"? In this Telerik Watch Minute, I'll show you how you can use Telerik's RadGauge for Silverlight in a ASP.NET application. In fact, I'll show you how you can wrap the Silverlight control in an ASP.NET UserControl to make it easy to manipulate the Gauge from your ASP.NET code. There are a few news items in this episode, too, including an important announcement about upcoming Telerik events. Enjoy the episode and enjoy your weekend! Watch now in native HD resolution on Telerik TV (makes it easier to read code in video)
I just finished bundling two releases in one blog post, so I suppose it's not a crime to bundle two event notices, too. Right? Either way, there are a couple of opportunities coming-up where you can join the .NET community and Telerik for some good times and learning, so let me share the details.
I don't usually "bundle" news items in to a single post, but since it's Friday and I have a couple of releases to announce, I'll make an exception.
- All built-in templates are now Embedded Resources (making it much simpler to customize SF control templates and -significantly- reducing the SF file count)
- New, simplified custom module architecture (backwards compatible)
- Latest versions of both RadControls for ASP.NET AJAX and Silverlight
- Support for hierarchal categories (great when tagging related content)
- "Unbreakable" dynamic links
Wednesday, January 21, 2009
I just got back from the We Are Microsoft Charity Challenge Weekend- or WAM Weekend for short- and I'm happy to report it was a huge success! There were almost 20 teams of developers building sites for charities in the Dallas area, and it was great to see everyone work so hard over the weekend to produce some incredible sites. Many of the teams used Telerik's Sitefinity CMS to give their charities even more functionality and to save a ton of development time, and based on the training Gabe Sumner and I did on Saturday, the charities are very impressed! One team also used the Telerik RadControls for Silverlight to add rich gauges to their charity's site. Along the way, Gabe and I sat down with the event's "video bloggers" to talk a bit about the weekend and Telerik's involvement. You can check out the embeded video above or watch the original directly on Facebook. All-in-all, it was a great event for the .NET community that will have a huge impact on the charities that were involved. Hopefully this type of event will spread throughout the .NET community in 2009, giving you the opportunity to use your developer "skills" for a good cause, too.
Sunday, January 18, 2009
Telerik has two great products that- when combined- can enable very cool, object-driven reporting. Those products are, of course, Telerik Reporting and Telerik OpenAccess ORM. While the integration between these products is not nearly as "tight" as it's going to be in the future, you can already use these two products together with today's bits and a (very) little bit of code. In this TWM, I show you how to build a simple report that binds directly to an OpenAccess ORM DAL that's been reverse engineered from the AdventureWorks database. This episode is a little longer than nomral (about 12 minutes), but it shows you everything you need to know to get started using these two products together. Enjoy!
Saturday, January 17, 2009
Hopefully you know by now that Telerik's RadControls for ASP.NET AJAX fully support ASP.NET MVC. That's right. You can use the same RadControls that you know and love today in Microsoft's latest incantation of the ASP.NET framework. But since this is such a new feature, and since we know many of you are still trying to wrap your mind around MVC, we've built a full ASP.NET MVC demo application that uses many of the RadControls so you can see how this is all supposed to work. The demo is a simple- and stylish - forums application. It uses 9 of the RadControls, including RadGrid, RadEditor, RadChart, RadTreeView and RadUpload, to build a forum site that has basic thread/post navigation, formatted forum posting, user authentication (with support for custom avatars), and a site activity "Statistics" view. Everything you need to have a fully functional MVC forums app. The source is available for immediate download, so I encourage anyone interested in learning more about MVC or the RadControls in MVC to grab the bites and study the example. Hopefully this will help those of your adopting MVC find ways to use the RadControls in new and creative ways. We'll continue to expand our documentation and support for MVC as adoption continues, so let us know what you think! We want to know your thoughts on MVC and our current support for it. Is MVC starting to "woo" you away from WebForms? View the Telerik MVC Forums demo now
Thursday, January 15, 2009
One of the great things about being at Telerik- and the part of .NET community in general- is the pervasive sprit of charity and the desire to give back to the community at large. As programmers, we may not be able to donate our time to build a house, but we sure are good at building software. The We Are Microsoft (or WAM) Charity Challenge Weekend picks-up on that idea and hosts a 3-day "challenge" where .NET developers join teams to build websites for charities in the Dallas, Texas area. Telerik was a proud sponsor of this event in its inaugural year, and we are again sponsoring this charity event in 2009.
Wednesday, January 14, 2009
Today Telerik released the second service pack for the Q3 2008 RadControls for ASP.NET AJAX. It's been about a month and a half since SP1, and in that time a lot of great fixes and improvements have been added to the controls. The release notes, as always, have the full run down of what's changed in this release, but here are some especially cool highlights:
- New! Telerik HTTP Compression Module that works with AJAX and web services
- New! Code-less support for client-side binding directly to ADO.NET Data Services in RadGrid
- Top and Bottom pagers now supported with client-side data binding in RadGrid
- New! Web service validation in RadInputManager (and new Required Validation property for all input controls)
- New client-side events in many controls, including RadToolTip, RadTreeView, RadGrid, RadWindow, and RadCombobox
- Tons of fixes for all controls (11+ RadCombobox, 30+ RadEditor, 25+ RadGrid, 15+ RadScheduler)
Friday, January 09, 2009
The first Telerik Watch Minute of the new year kicks-off with a quick look at the new RadGridView for Silverlight beta that shipped in mid-December. You'll see how you can quickly get started with the RadGridView in a Silverlight project, and you'll get a close look at one of the GridView's more "advanced" features: grouping. I also show you the RadGridView beta and the standard Silverlight DataGrid side-by-side, so you can quickly see how the beta stacks-up to the OfTB (out-of-the-box) grid control. Clearly, what you're seeing today is just a beta, so the final version that ships towards the end of February is going to have many more features (and themes), but I think it's a good early look at what you can expect in about 8 weeks time. Also, a production note: since the new Telerik TV portal is now live, you can now watch this video in its full "native" size (and thus at the best quality possible) by visiting the video on tv.telerik.com. In fact, Telerik Watch Minute has a full "channel" on the new Telerik TV portal, so feel free to catch any old episodes while you're there. Hopefully this will make your Telerik Watch Minute fix even better! Watch this episode of Telerik Watch Minute in HD on Telerik TV
Did you miss the news? In yesterday's Microsoft CES keynote, Steve Ballmer announced that the first Windows 7 beta will be made publicly available today, January 9th. All you have to do to get your hands on the beta bits is visit Microsoft's Windows 7 website. Now, if you had any doubt that we wouldn't be seeing Windows 7 sooner rather than later in 2009, this should definitely put you on notice. Hopefully Microsoft will do a better job (which all likelihood, they will) than they did with Vista in getting the RTM out the door after Beta 1. As you may recall, it took nearly 18 months for Vista to go from Beta 1 to RTM. Assuming they don't repeat that timeline, we all need to prepare for a Windows 7 world sometime this year. And, if first impressions count, that's not a bad thing. I've had some time to see Windows 7 in action- both at PDC and recently when my brother (who works at Microsoft in Redmond) showed it running on his laptop- and I've got to admit it looks good. It's not "revolutionary," but it's a solid, practical step in the right direction for Windows- similar to the steps Apple has been making for years with OS X. And if the touted improvements in startup, shutdown, and standby time are true, this is definitely an upgrade worth evaluating early. Telerik, clearly, will be working with the Windows 7 betas to ensure all our UI components work with the new OS, and we'll post the news of our tests as the beta period progresses. You can be sure that when the new OS is ready to meet the world, Telerik's components will be ready, too, so you can deliver world class applications. Grab the Windows 7 beta bits now (or as soon as MS enables the download link)
Thursday, January 08, 2009
One of the new support resources we launched with our Q3 release in November was the brand new RadControls for ASP.NET AJAX Step By Step Learning Guide. The Learning Guide, written by the RadControl and training experts at Falafel, fills almost 800 pages (!) with everything you need to know to be a productive Telerik developer. In fact, there is so much content that we had to split the book in to two parts: the Step by Step Learning Guide (about 600 pages) and the companion ActiveSkill Guide (about 190 pages). The ActiveSkill Guide shows you how to take the knowledge you've gained in the Learning Guide and apply it to build a complete real world application with the RadControls.
Wednesday, January 07, 2009
Here's a new feature on Telerik.com that you may find pretty useful. Over the holiday break, Telerik launched a new tool on Telerik.com that enables you to download the latest "internal" RadControl builds anytime you need them. "Why would I need an "internal" build?" you ask. Let me explain. Every day, Telerik receives lots of good feedback from you, our customers. Sometimes you report an important issue that needs to be addressed urgently, and our incredible support guys (up 'til now) usually supply you with a custom "hotfix" build that fixes the problem. Then, during the next service pack release, we roll-up all of these hotfixes (along with some other improvements) and ship an "official release." The problem with this approach, though, is that you may have a problem that somebody else has already reported and had fixed in a hotfix build. Wouldn't it be great if there was a place you could download "out of band" hotfix builds of the RadControls that contain all the hotfixes that have been applied since the last "official" release and instantly fix your problem? Now you can. The "Latest Internal Builds" tool puts the latest internal build of the RadControls at your finger tips any time you need to fix a problem in-between official releases. There are a few important notes about this tool to keep in mind, though:
- These are out of band builds, which means they don't go through the full Telerik QA process. They are plenty stable to use for your active development, but they are not recommended for production environments (unless you're willing to accept the risk of using a build that's not fully QA'd).
- These are not "beta" builds. These are regular continuous integration builds from our internal "FIXES" code branch. That means they only contain hotfixes for features in the last official release. They do not contain new features, and they are not a vehicle for previewing our work for future Qs.
- These builds will not be updated daily, but they will be updated regularly. Only the latest build will be available online, so when you visit this tool and to download bits, you're always getting the most up-to-date, patched version of the RadControls that exists.
- Only the RadControls for ASP.NET AJAX are available through this tool now, but all RadControls and Telerik developer component wills be available here very soon. I'll update you when the other component suites are added.
Tuesday, January 06, 2009
I'm very excited to bring you this news. After much hard work and planning, we have finally launched the brand new Telerik video portal, dubbed Telerik TV. The new Telerik TV portal has been designed to bring you the best video experience possible on the web, and it's been built from the ground-up using the RadControls for ASP.NET AJAX and Telerik OpenAccess ORM. Among the most important features of the new video portal:
- Big, easy-to-view videos
- Ajax-enabled video commenting
- Super flexible RSS support (make any search an RSS feed)
- Easy video browsing by product type
- Descriptive video URLs that are easy to bookmark and share
- Video "channels" for shows like Telerik Watch Minute and RadTips
Monday, January 05, 2009
It is with great pleasure that I announce that I have been awarded the Microsoft MVP Award for 2009! I don't particularly care to "toot" my own horn, but I would like to thank everyone that helped me achieve this goal. The Microsoft MVP program is probably among the most respected "community MVP" programs in the software world, and I am honored to join the ranks. For those unaware, the Microsoft MVP Award is granted annually and it serves to recognize those people that go above and beyond serving the Microsoft community. It doesn't necessarily recognize the most talented developers in the world (though many great developers are often MVPs)- it is devoted to recognizing technical leadership and community involvement. I've been technically awarded as a "C# MVP," but that doesn't mean I can't relate you VBers out there. Last year's survey (run on this blog) should be proof enough of that. What is does mean is that I will continue working hard to serve the .NET community and make it as easy as possible for people to use .NET to write software. In any event, it's a great way to kick-off 2009 and it's further proof that Telerik is dedicated to being a leader in the .NET community. Happy New Year to everyone and here's to a great 2009!