Most Popular Posts

Most Commented On

Current Bloggers

Sponsors

Wikis

  • You have not yet contributed to any pages.

Injecting dependencies into AngularJS routeProvider's resolve

Posted by Billy McCafferty, Saturday, September 28, 2013 (6,227 views)

Now I'm not sayin' I wasted half of my Saturday to discover that you cannot inject dependencies into an AngularJS module's config function directly, but that you can, instead, inject dependencies into routeProvider's resolve within config.  But hypothetically speaking...completely hypothetically...if I did waste half my Saturday doing that, finding these two links 3 1/2 hours earlier would have been really really convenient...like...really.



Just sayin'

Billy McCafferty
Discuss (13)

InDepth Knockout Validation PluralSight Course is Live

Posted by Derik Whittaker, Thursday, September 26, 2013 (5,585 views)

I am happy to announce that my latest Pluralsight course has gone live.  This course is an InDepth look at how to use the Knockout Js Validation Library.

knockout-xaml-developer

InDepth Knockout Validation

he In-depth Knockout Validation course will show you how to use every nook and cranny of the Knockout Validation library. You will see not only how to setup basic validation, but learn how to create your own rules. We will even go over how to tweak the configuration of the library to meet your particular needs.

This course is broken down into 4 different modules

Module 1 – Getting Started

This module is designed to provide you with an overview of the Knockout Validation library as well as get you up and running using the framework.

Module 2 – Basic Validation

In this module we review basic validation scenarios when using the library.  We will review each of the built in validators to ensure you have a clear understanding of what comes in the box

Module 3 – Advanced Validation

In this module we will learn how to create custom inline and custom shared validators.  We will also explore concepts such as conditional validation and HTML 5 validation techniques.

Module 4 – Advanced Configuration

In this module we will take a look at some of the advanced configuration scenarios that you may encounter when using this library.  These include items like changing the way messages are displayed to the user as well as how to provide custom styling for the validation.

Please take this course for a spin and let me know what you think

Till next time,

P.S. If you want to learn more about Knockout watch my Pluralsight Course on Knockout JS

P.S.S. If you want to learn how to transition your XAML skills to HTML you can watch my course on Html for the XAML Developer

Discuss (0)

Windows Phone HTTP Proxy Caching Issue

Posted by Derik Whittaker, Tuesday, September 17, 2013 (4,659 views)

Recently I noticed that when I did a http get to one of my API endpoints at work the request would come back with the same data no matter what.  I knew the data should be coming back differently because I would make a change to the backend data and it was not be reflected in the response.  To ensure that my API was working as expected I was able to verify that the response was coming back correctly in Postman as well as directly from the URL in Chrome.

I suspected my issue had something to do w/ request caching coming from the same client because I was making my get requests back to back, within 5 seconds.  To test my theory I added both a ‘Cache-Control’ and ‘Pragma’ request header to my request and set them both to ‘no-cache’ but that did not help.

Being a bit stumped here I reached out to our API developers to enlist their help.  The first thing they did was start watching the incoming traffic and noticed that my request was never actually leaving the device so there was no way it would ever return the new data.  To ensure this was just an emulator issue I deployed to my actual phone to see if the issue persisted there and sure enough it did.

We now knew that something inside of the Windows Phone was doing Http Get request caching… but how to fix it.

We figured we could solve the problem the simple, non-elegant way which is to take on a random query string to each request thus forcing each request to be unique.  This did work, but man did that feel dirty.

After doing a bit of research I came across the ‘If-Modified-Since’ request header.  The specs on this state the following:

The If-Modified-Since request-header field is used with a method to make it conditional: if the requested variant has not been modified since the time specified in this field, an entity will not be returned from the server; instead, a 304 (not modified) response will be returned without any message-body.

This should work great all I needed to do was use this with the current date time.  Sure enough I added this request header along with DateTime.Now() and my get request made it to the server and I was able to get my updated data as expected.

Hope this helps,

Till next time,

Discuss (0)

Leveraging your XAML MVVM Skills in HTML – Working with Observable Arrays

Posted by Derik Whittaker, Tuesday, September 03, 2013 (4,151 views)

This is a multi-part excerpt series from my PluralSight course Knockout for the XAML Developer 

knockout-xaml-developer

Knockout for the XAML Developer

The Knockout for the XAML developer course helps XAML developers, whether you’re a WPF or Silverlight developer, take their existing MVVM skills and transition them to the exciting world of HTML development.

This series is going to be broken down into 6 parts and should be enough show you show you can leverage your existing MVVM Skills you acquired while building XAML based and apply those to building HTML application with Knockout JS

Series Table of Context

  1. Setting up the Data Context
  2. Working with Observable Properties
  3. Working with Observable Arrays (this post)
  4. Handling User Click Events
  5. Handling Binding Context Changes
  6. Changing UI Appearances based on Bindings

 

After we have setup our view model and bound it to our markup thing we would typically do is start setting up our observables.  In my prior post we took a look at how to work with Observable Properties but what about working with an array of items? 

When working in XAML applications you would setup your observable collections as seen below.

How to setup an Observable Collection in XAML

image

The code above is pretty straight forward.  We have a property which is of type ObservableCollection.  When we setup our property we setup our backing field along with raising property change messages each time the array is populated.  One thing not illustrated here is what happens when an item is added or removed from the collection.  That is because this is handled by the ObservableCollection class.  Each time something is added or removed the underlying collection type will raise the notifications for us.

Now that we remember how to setup an observable collection in XAML how would we accomplish the same using KnockoutJS?

How to setup an Observable Array in Knockout Js

image

The image above is a 1 to 1 match for setting up an Observable Collection Knockout vs XAML.

If we break down our code (this code is written in Typescript)

  1. We first declare our property, in our case ReminderGuests
  2. We tell the Typescript Complier this is an ObservableArray of type UpcomingReminderModel (not needed if not using Typescript)
  3. We initialize our property via Knockout using ko.observableArray([]) (I like to init the array as empty out of convention)

We now have an observable array declared how do we use it in our Markup?

image

To use an Observable Array in Knockout as we need to do is use the ‘foreach’ binder and away we go.

If you want to learn more about how your XAML MVVM skills transfer to HTML Development watch my Pluralsight Course – Knockout for the XAML Developer

Till next time,

Discuss (2)

PuppetConf 2013

Posted by Rob Reynolds, Monday, August 26, 2013 (4,240 views)

I recently attended PuppetConf 2013 (the 3rd annual event) and all I can say coming away from that is wow. It was an amazing event with quite a few amazing speakers and sessions out there. There were over 100 speakers and more than 1200 attendees. And we had live streaming for quite a few sessions and keynotes that had a huge attendance (I don’t remember the number off the top of my head). With seven tracks going at a time, not including demos or hands on labs, it was quite an event.

Disclaimer: I work for Puppet Labs but my opinions are my own.

The venue was awesome (San Francisco at the Fairmont Hotel) and I wished that I had a little more time outside of the conference to go exploring. Being there as an attendee, speaker, employee, and volunteer, I saw all sides of the conference. Everything was well prepared and I saw no hiccups from any side. Walking around at some of the events I could hear a buzz in the air about Windows and I happened to overhear a few folks mention the word chocolatey, which was definitely cool considering the majority of folks that are at PuppetConf are mainly Linux with some mixing of environments. I’m hoping to see that start to tip next year.

There were 4 talks on Windows and I was able to make it to almost all of them (5 talks if you consider my hands on lab a talk). Only two of those were given by puppets, so it was nice to see some talks considering there were none last year (I need to verify this).

My Hands On Lab – Getting Chocolatey (Windows Package Provider) with Puppet

Link: http://puppetconf2013b.sched.org/event/ddd309df1b03712cf1ba39224ad5e852#.Uht-a2RgbVM

The hands on lab did not go so well. Apologies to the attendees of the lab, but there was an issue with the virtual machine that I had provided. It was corrupted somewhere between copying it from my box to all of the USB sticks that we gave to lab attendees. Since it was only a 40 minute lab, we had to switch to a quick demo.

I did promise those folks that I would get them a functional hands on lab and here it is: https://github.com/chocolatey/puppet-chocolatey-handsonlab (You can take advantage of it as well for free!).

My Talk – Puppet On Windows: Now You’re Getting Chocolatey!

Link: http://puppetconf2013b.sched.org/event/ecfda2ef5c398eca29b00ce756cd405d#.Uht_7GRgbVM

My talk went very smoothly. It was almost night and day having given a failing lab a little over an hour prior to a talk that had quite a bit of energy in the room. I enjoyed the feedback coming from the audience and the session went (I felt) very well. Sessions were recorded so be on the lookout for that to show up soon.  Until then you can check out the slides here: http://www.slideshare.net/ferventcoder/puppet-on-windows-now-youre-getting-chocolatey-puppetconf2013 – and if you came to the session, I’d appreciate feedback on how I did and where I can improve. You can do that here: http://speakerrate.com/talks/25271-puppet-on-windows-now-you-re-getting-chocolatey

Filed under: , , ,
Discuss (1)

Grunt Js and Maximum Call Stack Size Exceeded Warning

Posted by Derik Whittaker, Sunday, August 18, 2013 (4,401 views)

I am trying to setup a GruntJS build pipeline for one my side projects and ran into a very interesting warning today, shown below.

image 

 

What was weird was that this warning/error only started when I added my task to compile my typescript code.  If I called the default task, which did not compile the Typescript code, everything worked as expected.  Of course because the Typescript task was failing I assumed the error had something to do w/ its configuration.  However, as you can see my Typescript setup is pretty simple

image

 

Because my setup looked right I thought it would be a smart idea to run the task with the verbose output via the ‘grunt typescript –v’ command.  The second I ran this I saw the issue…

image

The ‘Running “typescript” task goes on and on until we hit our stack over flow.

I immediately changed focus from my Typescript configuration to my Task configuration and saw the issue.

image

Looking at my Task setup above I saw the issue.  It is bad idea to name your Grunt task the same as your one of the target tasks in your config…DOH.

After changing the name of my Grunt tasks as follows, the world was a happy place.

image

The moral of the story is 2 fold.

  1. Do NOT name your Grunt task the same as your configuration element
  2. Use the –v option to see what is really going on when a Grunt Task fails.

 

Till next time,

P.S. If you want to learn more about Knockout watch my Pluralsight Course on Knockout JS

P.S.S. If you want to learn how to transition your XAML skills to HTML you can watch my course on Html for the XAML Developer

Filed under: ,
Discuss (0)

Announcing Durandal 2.0 and Weyland 1.0

Posted by Rob Eisenberg, Friday, August 16, 2013 (8,963 views)

It is with great pleasure that I release to you today Durandal 2.0. This release represents a significant advancement in the framework's core capabilities and ease of use. With a modular architecture, a new router, greater consistency in design, tons of new features and bug fixes...you are going to love building JavaScript apps more than ever before. We truly believe this release makes Durandal the most powerful SPA framework today, but without sacrificing its unique simplicity.

What’s new in Durandal 2.0?

So many awesome things. Here’s a few highlights:

  • A streamlined core with a plugin model for official and community extensions.
  • Now lives side-by-side with other 3rd party scripts
  • A new router with no external dependencies. It supports parameterized routes, optional parameters, splats and query strings. The router handles hash change and push state, supports relative child routers, advanced deep linking hooks, convention-based routing, an event model…and more.
  • More powerful composition of screens, components and widgets. We’ve ironed out the kinks in composition by making the callback lifecycle more consistent and more granular. As part of the process we fixed bugs and extended it with new capabilities including: automatic activation, binding of activation data, inline views and templated view part overrides. There is no framework I know of on any platform that can do what Durandal’s composition engine can do. None.
  • Less “gotchas” throughout. Everything works more intuitively and consistently.
  • Two-Way Databinding to PLAIN JS objects. Use the new observable plugin when targeting ES5 browsers and stop having to create Knockout observables. Normal objects just work.
  • New Bower and Raw HTML project options.
  • VSIX support for VS2012 and 2013
  • A Super Kung Fu Mimosa template update, thanks to @dbashford, creator of Mimosa and @CraigCav.
  • An official TypeScript definition file.
  • More and better docs, including a fully deep-linked API doc, generated from the source.
  • Tons of bug fixes, new extensibility points and other improvements.
  • And, of course, there’s an upgrade guide for those moving from 1.x to 2.0.

We’ve had many early adopters working with 2.0, providing us with excellent feedback and helping us to make it an awesome release. Thank you to all of you! We’d like to call out the MapsJS team who have done something absolutely fantastic. Here’s what they had to say:

“The MapsJS project team has been successfully using Durandal for its single page app-dev. MapsJS is a free HTML5 map control for building complex cross-platform geospatial applications. Many of our larger customer projects required an SPA framework to minimize dev time and keep the projects well organized. We liked using Durandal so much that we decided to add support for it in our latest release. Today we’re making a MapsJS + Durandal starter project available on GitHub.”

– Brian Hearn, MapsJS Lead Architect

The MapsJS team has done fantastic work and was eager to share it with the Durandal community. If you do any sort of mapping, you owe it to yourself to check out the demo app and fork the code. Also, check out the new gallery for some other fun projects, including an excellent RSS reader, SilverReader.

Since the launch of Durandal 1.x only a few short months ago, we’ve heard so many amazing stories from developers putting apps into production, and in record time. Durandal now has apps deployed by members of the community across every major platform. I’m not just talking about the web browser here, but about phone, tablet and desktop as well. With the 2.0 release, we’re opening up even more opportunities by providing the simplest and most powerful SPA framework to date. And this is really just the beginning. There’s a long and rich future planned for Durandal. We hope you’ll be a part of it.

Now, about this thing called Weyland…what is that?

Weyland is Durandal’s NodeJS-based, cross-platform command line tool. This first release of Weyland is focused on providing build support for Durandal applications. It allows you to lint and minify your application source, as well as create an optimized build for deploy. Weyland has a simple task-based configuration DSL that makes it easy to set up the most common Durandal build configurations, while giving you access to all the underlying power of the supported tools. Weyland also specifically understands Durandal projects and uses its smarts to ease the process of using RequireJS for optimization. Our Nuget and HTML StarterKit as well as our VSIX all come with a weyland-config file ready to build your app.

This is a 1.0 release, focused not only on replacing our previous Windows-only optimizer with a cross-platform tool, but also on adding better support for multi-file build outputs, needed by large modularized apps. Of course, adding linting and better minifcation support is also nice. You are going to want to keep an eye on Weyland, even if you aren’t ready to use it yet. We’ve got some pretty amazing things planned for it.

Wow! Cross-platform Apps. Yes Please! But, how?

Durandal isn’t just some side project. It’s a major investment for my company. As part of this we provide both commercial support and consulting services. You aren’t on your own building Durandal apps. We can be the safety net for your team through one of our support options or by providing expert consulting at any point in your application’s lifecycle. We’ve also partnered with @The_UI_Guy to offer extensive UX/Usability analysis, interface design, interactive prototyping, app branding and more. Whether you just need a 4 hour code review or a full app design and build-out, we can do it.

I hope you can tell that we’re excited about Durandal 2.0 and our new Weyland tooling. I’ve said it before, but I’ll say it again: We are just getting started. There is so much more goodness coming. In the next months you are going to start seeing more training on Pluralsight and other places as well as official, regularly scheduled web casts and official training materials. Keep a look out and happy coding!

Leveraging your XAML MVVM Skills in HTML – Working with Observable Properties

Posted by Derik Whittaker, Sunday, August 11, 2013 (2,965 views)

This is a multi-part excerpt series from my PluralSight course Knockout for the XAML Developer 

knockout-xaml-developer

Knockout for the XAML Developer

The Knockout for the XAML developer course helps XAML developers, whether you’re a WPF or Silverlight developer, take their existing MVVM skills and transition them to the exciting world of HTML development.

This series is going to be broken down into 6 parts and should be enough show you show you can leverage your existing MVVM Skills you acquired while building XAML based and apply those to building HTML application with Knockout JS

Series Table of Context

  1. Setting up the Data Context
  2. Working with Observable Properties (this post)
  3. Working with Observable Arrays
  4. Handling User Click Events
  5. Handling Binding Context Changes
  6. Changing UI Appearances based on Bindings

 

Once we have our data context setup the next logic thing is to look at how to setup observable properties and bind them to UI elements.  When working in XAML applications you would setup your properties as seen below

How to setup observable properties in XAML

 image

The property above is pretty straight forward.  We have a string property which has a backing field and inside our Setter we are going to raise change notification for the given field to notify the UI that the display element needs to refresh to show the updated data.

Once we have our property setup we bind it to our UI elements as seen below

image 

How do we accomplish the same goal when using KnockoutJs?

How to setup the Observable Properties in Knockout Js

image

The image above is the 1 to 1 equivalent to setting up our observable property in Knockout

Breaking down this code (this code is in TypeScript).

  1. We first declared our observable property
  2. Next we need to initialize it, which we are doing with ko.observable()

Now that we have our property setup we need to bind it to our UI.  I can do this by using the knockout data-bind syntax as seen below

image

As you can see setting up your Observable Properties in Knockout is very similar to setting up the Observable Properties in a XAML based applications.

If you want to learn more about how your XAML MVVM skills transfer to HTML Development watch my Pluralsight Course – Knockout for the XAML Developer

Till next time,

Filed under: ,
Discuss (3)

Leveraging your XAML MVVM Skills in HTML –- Setting up the Data Context

Posted by Derik Whittaker, Saturday, August 10, 2013 (3,479 views)

This is a multi-part excerpt series from my PluralSight course Knockout for the XAML Developer 

knockout-xaml-developer

Knockout for the XAML Developer

The Knockout for the XAML developer course helps XAML developers, whether you’re a WPF or Silverlight developer, take their existing MVVM skills and transition them to the exciting world of HTML development.

This series is going to be broken down into 6 parts and should be enough show you show you can leverage your existing MVVM Skills you acquired while building XAML based and apply those to building HTML application with Knockout JS

Series Table of Context

  1. Setting up the Data Context (this post)
  2. Working with Observable Properties
  3. Working with Observable Arrays
  4. Handling User Click Events
  5. Handling Binding Context Changes
  6. Changing UI Appearances based on Bindings

 

One of the key tenants to MVVM in XAML is the ability to setup a data context and binding.  This post is going to be dedicated to comparing and contrasting the way you handle setting up your binding context in XAML vs Knockout.

How to setup the Data Context in XAML

 

image

The image above illustrates a very typical, and easy to bind your data context to your view.  All we have done is created an instance of our view model and pushed it into the views DataContext.  Once the line above has been executed all the bindings in your View will be updated and you are cooking with fire.

How do we accomplish the same goal when using KnockoutJs?

How to setup the Data Context in Knockout Js

image

The image above is the 1 to 1 equivalent to setting up your data context in Knockout Js.

Breaking down this code.

  1. We are creating a self executing function, you can think of this as the constructor for the HTML page (that is a stretch analogy but it works)
  2. We then create an instance of our ViewModel
  3. We call ko.applyBindings and provide our view model.  This is the line of code which binds our viewmodel to our view

 

As you can see setting up your Data Context in Knockout is very similar to setting up the Data Context in a XAML based applications.

If you want to learn more about how your XAML MVVM skills transfer to HTML Development watch my Pluralsight Course – Knockout for the XAML Developer

Till next time,

Filed under: , ,
Discuss (4)

Knockout Template and DOM access race conditions

Posted by Derik Whittaker, Saturday, July 27, 2013 (3,961 views)

I am working on a learning project and I am using the Knockout JS template bindings along w/ the Knockout External Template engine.  Things were working as expected until I wanted to add a pager to my list. 

The issue is that the Bootstrap Paginator needs access to the underlying DOM in order to build the paging component.  However, the because the fetching of the template and the loading of the DOM are both async I was having issues because in some cases my HTML would return prior to my data and everything work as expected but in other cases my data would load first and the DOM would not be ready. 

In the cases when my DOM was not ready I would not be able to get access to the DOM element in order to have my pager built.  What I needed was a way to be notified once the DOM was loaded.  Fortunately for me template binder exposes a ‘afterRender’ method which I could use to build my pager.  Once I hooked up this afterRender correctly I was able to remove the race condition and I was happy :)

Here is my original binding setup WITHOUT the ‘afterRender’:

image

Here is my updated bindings to use the ‘afterRender’

image

 

Hope this helps someone.

Till next time,

P.S. If you want to learn more about Knockout watch my Pluralsight Course on Knockout JS

P.S.S. If you want to learn how to transition your XAML skills to HTML you can watch my course on Html for the XAML Developer

Filed under: ,
Discuss (0)

Get your learn on – Watch awesome content on Pluralsight for free

Posted by Derik Whittaker, Monday, July 22, 2013 (4,177 views)

Recently I released by first 2 Pluarlsight courses and I am very happy with their results, but did you know that the Pluralsight library has over 550 courses?

 

html-for-xaml-developers

HTML for the XAML Developer

A guide for making the transition from being a XAML developer to being an HTML developer.
knockout-for-xaml-developers

Knockout for the XAML Developer

The Knockout for the XAML developer course helps XAML developers, whether you’re a WPF or Silverlight developer, take their existing MVVM skills and transition them to the exciting world of HTML development.

 

If you want to watch either of these courses are any of the other 550+ courses I have a stash of free trial cards I can give you.  Simply drop me an email (derik at graudo dot com) or leave a comment and I will get in touch with you. 

Remember, The More you Know the better you are.

Till next time,

Filed under:
Discuss (0)

Knockout JS Error: Uncaught Error: NoModificationAllowedError

Posted by Derik Whittaker, Friday, July 19, 2013 (6,238 views)

While trying to setup some bindings in Knockout I received the following error:

Uncaught Error: NoModificationAllowedError: DOM Exception 7

At first glance this was very odd to me as I have never seen this before.  Because I had made a few binding changes prior to my last refresh, I was not sure what was causing the error. In order to find out which was the culprit started removing one binding at a time until I found which binding was causing the issue.  Below is the binding which was bad, can you detect the issue?

image

If you don’t see the issue don’t worry, it took me a minute as well.  Below is the same code w/ the issue highlighted

image

In my carelessness I had used the text binder rather than the value binder.  This is NOT going to work when trying to binding to an input box, which makes perfect sense.  To resolve the issue I simply replaced my binder as below and everything worked correctly.

image

I understand why this fails but the error it produces is not very clear.  But remember anytime you get a binding error in Knockout make sure you are using the correct binder.

Till next time,

P.S. If you want to learn more about Knockout watch my Pluralsight Course on Knockout JS

P.S.S. If you want to learn how to transition your XAML skills to HTML you can watch my course on Html for the XAML Developer

Filed under:
Discuss (0)

Knockout JS, Attr Binding and Radio Button Values

Posted by Derik Whittaker, Thursday, July 11, 2013 (4,522 views)

When working with Knockout you have the ability to seamlessly bind to a radio buttons via the checked binder.  When working with Radio buttons it is very common to use the value attribute in order to know which radio button was selected.  In fact the code below should be very common if using this binding.

image

However, when I look at the code above I have 1 issue with it and that is the use of the hard coded value “1” as the value.  I HATE magic strings/values.  Having a raw value like this in your code does not lead to discoverability, I mean what what does ”1” mean?  I would much rather use a constant/enumeration here in order to provide better discoverability.  However, you straight up HTML does not lend itself to this.  For example the code below would NOT yield the results you are expecting.

image

However, we can harness the power of Knockouts Attr binding to solve our readability problem.  Take a look at the code below

image

By using the Attr binding I can use the Knockout binding engine to add the value 1 to my HTML at runtime which gives me the correct value as well having my enum value for readability at code time.  Below is the rendered HTML

image

Till next time,

P.S. If you want to learn more about Knockout watch my Pluralsight Course on Knockout JS

P.S.S. If you want to learn how to transition your XAML skills to HTML you can watch my course on Html for the XAML Developer

Filed under:
Discuss (0)

Pro Tip – When defining Custom Knockout Validation rules Wrap them in a Self Calling Anonymous function

Posted by Derik Whittaker, Friday, July 05, 2013 (3,420 views)

While setting up my coding examples for my next Pluralsight course on InDepth Knockout Validation (check out my HTML for Xaml Dev or Knockout for Xaml Dev) I was stumped because my custom validators were not working as expected.  In fact they were not working at ALL.

As I started to debug my code I set a few break points and immediately I saw the issue.  The initialization of my custom rules was being hit AFTER my view model was bound to my context

I had my Rules setup as follows:

image

 

Any my VM Binding setup as follows:

image

Given that I knew the order execution of my code was not right, does any one know why?  I mean I did reference the .js for my rule prior to my inline function. 

Well the reason was that I was not being consistent. In my rule I was using jQueries Document Ready but in my view I was using a Self Executing function. And the issue is that the jQuery Document ready will be executed AFTER the DOM is completely loaded while the Self Executing function will execute immediately.. DOH  I knew this was how the 2 worked but my inconsistent coding habits got me in trouble.

Once I wrapped my rule in an Self Executing function as below the world was a happy place, for me at least.

image

Till next time,

Filed under: ,
Discuss (0)

Knockout for the XAML Developer is Live on PluralSight

Posted by Derik Whittaker, Monday, July 01, 2013 (2,938 views)

It was not even 2 months ago that I announced that my first plural sight course Html for the XAML developer went live and here I am to announce my 2nd course, Knockout for the XAML developer has gone live.  It is safe to save that I have been bitten by the Pluralsight bug as I am currently working on getting topics 3 and 4 approved :)

What is this course about?

In this course you will take a look at many different MVVM binding scenarios a XAML developer faces and how we can use Knockoutjs to solve the same problems in HTML. By the end of this course you will be able to use Knockout with confidence in building your HTML applications. Click here to go directly to the TOC to get started learning.

Who is this course design for?

This course is targeted towards XAML developers, silverlight, WPF or Win8 developers who have pre-existing knowledge and skills on building applications using the MVVM pattern with binding.  I wanted to show these developers how their existing skills can translate very easily into building HTML applications w/ Knockout.

Course Highlights

Module 1 – Getting Started

Module 2 – Working w/ Input Controls

Module 3 – Handling User Interaction

Module 4 – Binding Context and Control Flow

Module 5 – Controlling Visual Appearance

Hope you enjoy the course

Till Next time,

Discuss (0)
More Posts « Previous page - Next page »

About The CodeBetter.Com Blog Network
CodeBetter.Com FAQ

Our Mission

Advertisers should contact Brendan

Subscribe
Google Reader or Homepage

del.icio.us CodeBetter.com Latest Items
Add to My Yahoo!
Subscribe with Bloglines
Subscribe in NewsGator Online
Subscribe with myFeedster
Add to My AOL
Furl CodeBetter.com Latest Items
Subscribe in Rojo

Member Projects
DimeCasts.Net - Derik Whittaker

Friends of Devlicio.us
Red-Gate Tools For SQL and .NET

NDepend

SlickEdit
 
SmartInspect .NET Logging
NGEDIT: ViEmu and Codekana
LiteAccounting.Com
DevExpress
Fixx
NHibernate Profiler
Unfuddle
Balsamiq Mockups
Scrumy
JetBrains - ReSharper
Umbraco
NServiceBus
RavenDb
Web Sequence Diagrams
Ducksboard<-- NEW Friend!

 



Site Copyright © 2007 CodeBetter.Com
Content Copyright Individual Bloggers

 

Community Server (Commercial Edition)