Over the weekend I spent some of my own time trying to convert my current client's MVC3+DevExpress site over to use KendoUI instead of DevExpress. Not that I dislike DevExpress at all, I'm actually a fan, I just thought I'd find out if it would be better. KendoUI is the new thing and this was an excuse to spend a couple evenings to find out what it's like in the real world.
First of all, I'm new to MVC. I typically do web development in ASP.Net WebForms. It's possible that some of my issues were due to me not totally groking MVC but I don't think that's the case.
My feel so far: KendoUI is not ready for real ASP.Net MVC development. I had all kinds of trouble just getting it to work at all. From what I can tell some of the sample code on the site just isn’t correct. I ended up having to go to one of the local samples they install, do a view source and extract the code from there to get it to work.
After failing multiple times using different techniques I ended up encoding my model to json. That was mostly my last-ditch effort to get the features I want working. As far as I can tell if you just convert a table to a kendo grid it doesn't support paging, filtering and sorting. Not shocking but a bit disappointing. Unfortunately after working out the issues with getting it to understand my json data I found that Kendo doesn’t convert datetime values as they are encoded in json so all my dates looked like /date(009234203420)/ which isn’t useful at all. I tried implementing a formatting workaround suggested in the forums but then my whole table would appear empty. Even if I got that to work there’s yet another workaround in order to get filtering and sorting to work on dates because the original workaround only fixed the display issue, dates would still be filtered and sorted in their ugly form.
Turns out it’s wicked hard to debug issues with javascript libraries like that (I'm not a javascript pro, I can write it but that's not my main dev language). It would have been hugely helpful if it dumped some info to screen to tell me why my table was empty. When the library is handed json data with 10 records and doesn't display any of them I wish it had the smarts to realize it should tell me why. Maybe there's a debug option I didn't enable, that's quite possible. Remember this was just a quick test to see what it would be like and what the learning curve is. The KendoUI site makes it look really simple, I wanted to find out if it is.
After spending a couple late nights on it I scrapped the idea and went back to DevExpress. I REALLY wanted Kendo to work cause it looks so promising but I was only willing to give it a couple evenings. It was clear that the learning curve + pain + debugging problems + $400 price tag wasn't nearly worth the UI benefit + coolness factor. Of course being generally happy with DevExpress MVC3 didn't help KendoUI's case at all.
Looking at their roadmap they plan to have official ASP.Net MVC extensions sometime in the first half of this year I think. Maybe when they have actual extensions it will work better because those will run on the server directly and will translate the data however they need to in order to work right on the client. Unfortunately I think the Asp.net MVC extensions will require a license for their Asp.net suite and won’t be included in the basic $400 KendoUI product. Maybe I misunderstood their plans but that's what I remember from late last night.
It’s a nice looking library so I hope it becomes more usable for Asp.net dev some time soon. Like some Microsoft products in the past KendoUI looks great in simple demos but it doesn’t work so great in the real world. Maybe with heaps more of my time, lots of reading and some pluralsight style training I could have made it work but if a library doesn’t make my life better I’m not gonna use it unless the long term benefits are huge.
posted @ Monday, January 09, 2012 3:00 PM