views:

668

answers:

5

I've started digging around with using the Telerik Extensions for MVC. They don't integrate seemlessly into my current project, but I could reorganize things to fit it in.

But, I'm wondering if it would be worth it in the end. I've been searching for reviews on the extensions, I haven't seen too many. So I'm asking here.

On their website they claim:

You can achieve unprecedented performance for your web application with the lightweight, semantically rendered Extensions that completely leverage the ASP.NET MVC model of no postbacks, no ViewState, and no page life cycle.

So I'm curious, What is your opinion of the Telerik Extensions for MVC?

A: 

I've not used the MVC Telerik controls before but I have used the Telerik controls on multiple ASP.NET projects before and have not had a good experience with them. Most of the issues I've had related to the formatting or needing to do any form of customization. In all if I were to start another project I would try another component vendor (maybe ComponentArt?).

Kane
A: 

Unlike Kane i have had good experience with Telerik controls in ASP.NET Webforms apps in the past (~1 year using). I have not used Telerik for MVC and i don't suspect i ever will. The Telerik extensions need heavy wiring for MVC because it seems they've more or less 'ported' their WebForms controls to an MVC environment.

If Telerik ever started a new product line for MVC that were native mvc helper controls (i use the word 'helper' because 'control' certainly implies postback-based WebForms controls in this context) i might be interested. But these evidently 'hacked' WebForms controls for MVC are ugly at best and violate the MVC paradigm anyway.

Edit:

Code like this does not support the MVC paradigm:

IList<CustomerDto> customers = (IList<CustomerDto>)Session["Customers"];

Who wants to wire up their views to the Session like this?

cottsak
To be fair, that's not what the Extensions for MVC sound like. They're not the RadControls... they claim they're redone from the ground up for MVC. http://demos.telerik.com/aspnet-mvc/
Chad
Read korchev's comment above - these extensions are newly designed, from the ground up, components for ASP.NET MVC. This is not a port of a separate product line, but a completely new (and free) product intending to provide full support for the ASP.NET MVC platform and the MVC paradigm.
Kevin Babcock
see edits above
cottsak
The code you describe is only demo code. That isn't the way you would implement it in your real app. They simply throw the data into a session variable to "cache" it to your session, for performance reasons I'm sure.
Chad
@Chad: Yeh you're prob right. But from the looks of the example it seems the state of the control is not maintained by any manual wiring. It's prob maintained in ViewData or the Session under the hood. See MVC tries to do a lots of things: one goal is a RESTful approach to state management. The idea is that one would try not to persist state meta in things like ViewData or session. State should be passed by GETs and POSTs etc. Look, i'm not saying i dont like Tekerik controls. I've used them and i like them. If i had to use 3rd party controls i'd go 1st to Telerik.
cottsak
@cottsak: Again... it looks like they're persisting in ViewState for demo purposes (because they have that selector to choose various options for the grid).
Chad
I didn't just mean for those options. I meant for the page/sort states etc.. But on further examination it seems that those states are passed as query params so i guess that's good.
cottsak
+7  A: 

First a little disclaimer - I am the dev lead of the Telerik Mvc team so obviously my opinion is biased.

Telerik Extensions for ASP.NET MVC is our brand new suite targeting the ASP.NET MVC platform. It started from the ground up and has nothing related with RadControls for ASP.NET Ajax (our WebForms product) except from features and visual looks. This means no viewstate, no postbacks no web controls. It comes with source code (licensed under GPLv2) so this can easily be verified. In a word the statement that we ported our WebForms controls to ASP.NET MVC is untrue.

Indeed RadControls for ASP.NET Ajax (our WebForms product) do support ASP.NET MVC applications. However I would agree that all features which require ViewState (built-in editing in RadGrid for example) do not work. Nor will they ever work. We recommend using the RadControls inside ASP.NET MVC application if the required component is still not implemented in the MVC product line (which is still taking its baby steps and consists of 4 UI extensions now). Of course our plans are to release more UI extensions to match the WebForms suite.

For any technical questions or suggestions you can contact us at our online forums. We do try to reply to every single post.

korchev
My post wasn't necessarily about the technical problems with the extensions. I do appreciate how you cleared up the fact that they are indeed fresh "controls" for ASP.NET MVC and NOT a port of the RadControls.
Chad
Great work korchev, especially on releasing under GPL.
cxfx
+3  A: 

I have only played around with them for a short time, but so far they seem nice enough. The script combiner, and their fluent Intellisense-aware configuration is certainly nice.

My main worry is the Javascript side. In the past Teleriks WebForms components had a reputation for slow and fat Javascript. I'm sure Telerik is building this from the ground up (they're using jQuery for the MVC controls), but I still worry that old habits will re-appear. I would have preferred if Telerik had kept using jQuery UI for the Javascript side, this way they would have benefited from all the performance and compatibility efforts that go into jQuery UI...

Jesper Mortensen
I like the combiner... that alone could be a decent use for the extensions. :D
Chad
+1  A: 

I didn't like them very much (at least the grid implementation). They're just not enough features compared to the WebForms version. Plus, the server side code is confusing at best. Getting the helpers to recognize my own server copy of jQuery was a chore (I still didn't get it working).

But, then I found out the client controls are actually just implemented as jQuery plugins:

$(document).ready(function() {
    $("#Grid").tGrid({
        columns: 
        [
            {"name":null,"type":""},
            {"name":null,"type":""},
            {"name":"text","type":"String"}
        ], 
        pageSize:0, 
        onDataBinding:onDataBinding, 
        onRowDataBound:onRowDataBound
    });
});

There, the plugin tGrid() initializes a table I've defined in my markup to "radify" it ;)

Keep in mind this takes zero server-side code. There's a lot more plumbing on the client side you have to do, sure (eg stylesheet inclusions, scripts, and a preset markup structure), but hey at least I know what I'm doing there.

JPot
For future readers, you can easily disable the "auto jQuery reference" by using the .jQuery(false) method on the ScriptRegistrar. More details: http://www.telerik.com/help/aspnet-mvc/web-assets-working-with-javascript-web-assets.html#jQuery
Todd