There are a lot of control vendors in the Silverlight Space, with more coming on
at an amazing clip. Telerik has been around since 2002 (Ancient History in .NET
Terms!) and has been involved with the Silverlight platform since its very inception.
I believe the key factors that distinguish Telerik from other vendors are the
very high quality of their control suite offerings (I have used both the Silverlight
and the ASP.NET AJAX control suites), and secondly, their almost fanatical attention
to product support for developers - currently they have a staff of 220 professionals,
over 375,000 searchable forum posts, over 80 monthly blog posts, 90+ Telerik
Bloggers, and over 312,000 forum members.
In addition, Telerik has Demos,Sample Applications, Video Tutorials, Webinars, Documentation,
a Knowledge Base, a Code Library, and a Telerik Trainer. When I had a minor issue
related to installation, the email response was fast and complete.
All these things may not seem to be readily apparent as important when purchasing
a control suite, but when you make a commitment to purchase and use a vendor's
controls, they sure make a difference. I know this from personal experience when
having an issue with another vendor's product - the support was lacking, and
when I did get it, the attitude was pretty much "I don't care".
RadControls are built on Microsoft Silverlight and include 40+ UI controls for building
rich line-of-business Silverlight applications. These share the same codebase
with Telerik WPF controls. The Silverlight controls offer a clean and intuitive
API, Expression Blend support, Visual Studio 2010 and SharePoint 2010 support,
and powerful theming capabilities that can radically improve your RIA development.
RadControls for Silverlight are natively built on the Silverlight 4 platform, taking
advantages of the capabilities of the latest Silverlight version, such as clipboard
integration, right-click support, multi-touch support and more. The suite offers
a rich environment for developing robust and lightning-fast enterprise applications.
Here is a brief listing of the controls with links to their description page at the
Telerik web site:
All of these controls provide support for Visual Studio 2010, offering toolbox support,
property browsing and WYSIWYG preview. You can develop in Visual Studio 2010
and style these controls in Expression Blend with ease.
Telerlik utilizes streamlined themes and templates, as well as incorporating virtualized
scrolling in the more data-centric controls. They have also engineered an innovative
LINQ-based data engine, built-in support for asynchronous databinding, RadCompression module and other techniques that help reduce page loading time and speed up data operations.
All data-bound Telerik Silverlight controls support completely codeless binding to
WCF RIA Services. And now that v1.0 of RIA Services is out and feature-complete,
that can be a developer's dream, in my opinion.
You can read up on a lot more of these features at the product overview page here.
Among other controls, I was particularly impressed with the MediaPlayer control,
which supports creating and loading playlists, set chapters, watch the video
in a full-screen mode, completely customize the appearance of the control or
integrate the control with RadCoverFlow for a brilliant visual presentation.
Telerik also offers a free Testing Framework that you can use to build unit tests
for all your controls. In addtion, controls provide full implementation of the
Command pattern, facilitating the building of complex UIs and yet keeping the
code simple by using Commands.
To get an idea of the quality of this controls suite for Silverlight 4, have a look
at some of these demos on the Telerik site. Another very useful offering is this video on the process of developing a Silverlight app with Telerik RadControls.
Finally, Telerik offers a downloadable "Step By Step Tutorial" that makes learning RadControls easy.
Another great feature is the Telerik RichTextBox Control, which, unlike competitors'
editor controls, can be sited in a dockable window and does not depend on the
browser in any way. Here is a demo where they have the RichTextBox control emulating MS Word - inside a RadWindow.
The words "Performant" and "Performance" are highly overused
buzz-phrases in programming. But facts tell the real story.
In order to keep performance optimal in their controls, Telerik has incorporated
the concepts of UI and Data Virtualization into their more data-centric controls.
In the simplest scenario, utilizing this virtualization involves putting elements
into a VirtualizingStackPanel, thus gaining the advantage of only having the
UI Elements which are visible on screen generated and taking up memory. The VirtualizingStackPanel
calculates the number of visible items and works with the ItemContainerGenerator
from an ItemsControl to create UI elements only for visible items. This saves
a lot of CPU cycles and renders the view much faster.
So, for example, if you had a combo box that contained 10,000 items, only the 15
or so that are visible in the dropdown will be created, the others existing in
the dataset but not requiring visual elements.
Telerik has extended this concept to such controls as their RadGridView, RadTreeView,
and RadChart controls. Even with virtualization, there is still a problem in
that each time a cell moves into view, a new element is created for it, causing
a lot of garbage collection. Telerik solves this with Container recycling , in
which containers for data items are created once and then re-used as you scroll,
group, and sort through data. Instead of the constant back and forth with garbage
collection and new elements being created, the RadGrid simply re-uses the elements
it has already created, contributing to lightning-fast scrolling and data operations
on the client-side.
In the RadTreeView, the root level items are virtualized - allowing for peak performance
with large lists, with child nodes being cached for a period of time. Utilizing
these techniques allows for RadTreeView to provide seamless performance with
large and small datasets, all the while not utilizing any more memory than necessary
to get the rich functionality which is included in RadTreeView.
Finally, in the RadChart the Data virtualization approach leads to significant performance
gains, even when working with a million records. The technique is that not all
the data is actually shown on the screen – it is summarized. RadChart achieves
this using a technique called Sampling. The control splits the data into groups
and aggregates each group using one of the many provided sampling functions --
and you can even write your own. The end result is a graph that summarizes the
real data close enough while performing dramatically faster than competing controls.
To see these performance enhancing techniques in action for yourself, visit their demo page here. Watching a grid control handle 50 Million cells in real time is pretty impressive.
Using a WCF service gives you control over sending data back and forth to the client
through operations which you define. Easily tie the .ItemsSource of a RadControl
to the resulting data set from an operation or use it in complex operations before
handling it in your application.
ADO.Net Data Services
Useful when working with the Entity Framework, ADO.Net Data Services helps utilize
http requests to send and receive data between the client and server.
WCF RIA Services
Telerik has been keeping up with the latest versions of WCF RIA Services. Utilizing
WCF RIA Services, you can quickly and easily design a data layer, complete with
metadata and validation, that maintains the object model between the server and
client and allows for easy data manipulation.
WCF RIA Services has matured in Visual Studio 2010 and Silverlight 4. With RIA Services
Completely codeless binding
Simple access to server-side data
Validation support on the client and on the server
Patterns for dealing with common Line of Business scenarios
Automatic data paging by using the pager control
Easy re-use of the ASP.NET Membership and Role Providers
Faster server-side sorting, filtering and paging for all data
All data-bound Telerik Silverlight controls support binding to WCF RIA Services via
DomainDataSource. With completely codeless binding, it takes almost no extra
effort to bind RadControls for Silverlight to RIA Services.
The control that benefits the most from using WCF RIA Services is RadGridView for
Silverlight, which now can handle an enormous amount of records server-side in
no time. All data operations are executed on the server, which results in faster
sorting, filtering and paging. Telerik Silverlight Grid can be directly bound
to a RIA Service through its ItemSource property, or to a Silverlight DomainDataSource
contol. Either way, no coding is required, as both approaches allow you to declaratively
set the RIA Service.
All Telerik Silverlight input controls support metadata-driven validation via data
annotations. You can use RadControls for Silverlight with the Validation Summary
class, and all input controls implement the automatic validation UI provided
by the platform. Server-side validation attributes are also supported.
A developer license for the RAD Controls for Silverlight suite is $999.00, and includes
unlimited deployments, full redistribution rights, the support package, major
version updates, and source code.
If you're serious about developing really professional Silverlight LOB applications
that look great and perform well, this control suite is an investment that is
well worth the money. The controls are a pleasure to use, the documentation and
samples are great, and the support is top-notch.