Its been a while since I posted a blog in my Knockout series. In the last couple of posts in this series we reviewed how Knockout implements the concept of Observable Arrays. Observable Arrays support the idea of detecting when objects are added and removed from the array. For a complete solution though we actually will want the array to contain observable objects so we can also detect when changes are made to each item.
Over the last couple of years I have been trying to get a handle on the “new” database technologies lumped together under the NoSQL banner. In that respect I have posted several articles to this blog.
More recently my focus has shifted from looking at NoSQL databases as a group to diving in deeper to a few select “NoSQL” databases. The one that intrigues me most is Neo4j – a graph database.
A couple of years ago I started a series on DotNetNuke Module Development but I didn’t get very far. Recently, I have been working on a new DNN Module Development video training course for Pluralsight and I have decided to use that module development course as a template to restart this series on how I think about DNN Module Development. Hopefully this time I will be able to provide you with some best practices on DNN Module Development.
Welcome to the new look “Thoughts from the Wet Coast”. This is the third incarnation of my blog. This time there have been a lot of changes.
A Responsive Skin
The first obvious change is the look of the site. I have created a new responsive skin for my site based on – you guessed it – Twitter Bootstrap. Twitter Bootstrap appears to be the #1 framework these days for developing responsive websites, and its fairly easy to integrate into a DNN 7 skin. My new skin is based on Twitter Bootstrap 3. The skin is quite basic and looks like a typical Twitter Bootstrap site. It was very easy to incorporate Bootstrap into a standard DNN skin and I am thinking of writing a blog to demonstrate how easy it is.
As Senior Architect for DNN Corp I get to be involved in interviewing candidates for developer positions within the company. Thankfully, I don’t have any direct management responsibilities - its not what I enjoy - but I am asked to interview candidates to determine both their technical competence as well as to help determine whether they will fit with the team chemistry.
A Happy New Year to all readers of my Blog. I hope 2013 was a good year for you and that 2014 will be prosperous for you and yours.
Here on the Wet Coast, one of my New Year’s resolutions has been to be more regular in my blogging activity, and I have already made some plans in that regard.
So, in the last post on Knockout.js, I introduced the concept of Observable Arrays. Observable Arrays can respond to a change in the number of items in the collection (array).
Lets look first at Adding items to an observable array. Lets add a method to our ViewModel to add a task to the tasks array that we created in the previous post.
Just as an observable responds to changes in an object, an observable array responds to a change in the number of items in the array. It tracks which objects are in the array - not the state of those objects.
So far we have seen how we can set up simple observable values. But what if we want to have calculated values in our ViewModel.
Lets extend our ViewModel from the previous examples, by renaming our personName property as firstName and add a second property called lastName.
So far in this series on Knockout.js we have seen how to do simple data-binding and how to use observables to automatically update the data bound elements. The real power of knockout though is its support of two-way data-binding.
What do we mean my two-way data-binding?
ASP.NET developers are familiar with the concept of data-binding - the ability to bind a control to a data source and update the control based on the value of the data source. Two way data-binding allows the control (View) to update the data source if its value changes.