Last post Apr 11, 2013 09:53 PM by johnpapa
Apr 07, 2013 02:37 AM|TridyDotNet|LINK
I am new to SPA and there are several libraries that are trying to help building them. Durandal, Knockout, Angular, Breeze , Ember (from John Papa's slides). Hot Towel takes advantage of several of them as well.
For a beginner like me, who comes from UX oriented, WPF and MVVM worlds, which library would you recommend? Has most features? Is the most powerful? Easiest to use in Visual Studio? Easiest to lunderstand and learn? Is it that a combination needed?
Or if someone could shortly point out what each library does and does not and what's the best usage of it.
Apr 08, 2013 06:50 AM|DarrellNorton|LINK
So the Hot Towel SPA template is a compilation of several client-side frameworks.
Hot Towel Template page on this site lists what each framework does:
For someone with a WPF and MVVM background, Knockout.js is going to be most familar for data binding. That doesn't mean it's the best but it works and you will probably pick it up quickly (like I did).
There are a LOT of frameworks out there that do similar things. It is impossible for one post to answer that. Instead I can point you at a few things to help you make a decision.
One of the best sites I've seen is ToDoMVC. It shows 18 different framework implementations of the same MVC "To Do List" application. You just download them and can look at the code, run them, etc.
Check it out here: http://todomvc.com/
That should help you if really want to dig in. Note that each framework solves different problems in different ways. The interesting thing about Hot Towel is that there are some nice training resources (videos, content, etc.) and Durandal ends up using Require.js
and Knockout.js already, and provides functionality on top of it.
Apr 08, 2013 12:14 PM|TridyDotNet|LINK
Thanks for the reply.
ToDoMVC is indeed a nice piece of work to look at how things are implemented with different libraries. Hot Towel does seem like "Greatest Hits" collection so far.
Apr 11, 2013 07:59 AM|Georgi Stavrev|LINK
Apr 11, 2013 08:41 AM|TridyDotNet|LINK
i have access to pluralsight which covers the topic extensively by John Papa. I will surely look at your articles as well.
My question was more of the type, if we have a lt of data to work with in a SPA app, with a grid, for example, is there any library that is targeting this case better than others.
I like the idea of Hot Towel because you can develop with it without knowing all of the details and adopt the template to your needs instead of writing everything from the beginning. It is a nice way to learn as well.
Apr 11, 2013 11:21 AM|Georgi Stavrev|LINK
I don't know of the existence of such a library. I suppose it can be done with a combination of Breeze and Knockout.
Since Breeze returns observable properties to Knockout, we can build a grid template in Knockout and bind the data to it. We can add data validation by adding data annotations on the server side and use Breeze validation on the client side. All rows updates
can be flushed to the server with a single call with Breeze.
The idea of a grid in a SPA has already passed my mind but I didn't have the time to explore it. I'll try to implement it in my sample app :)
Apr 11, 2013 09:53 PM|johnpapa|LINK
A lot depends on your style. Both are great options. While it is true that I use all of these in Hot Towel, many of those would also be needed with Angular. For example, Hot Towel uses:
Angular could replace osme of those, but not all. You would remove Knockout and Durandal for sure, and replace it with Angular. You could remove require.js too and still get dependency injection, though you would not get async module loading. My point is
that while Angular is great and does a lot, it doesn't do everything.
I think you would be happy with either choice.
Regarding data grids ... neither has those. That's a UI component focus. Kendo, WijMo, etc