Team4Talent, the company I work for, was kind enough to allow me to go to ngEurope in Paris. ngEurope is Europe’s first Angular conference. In a few upcoming posts, I’ll share what I’ve learnt, along with some personal thoughts of mine. I’ll also (try to) answer some questions several people asked me. But if you can’t wait, the conclusion is that I love Angular and plan to use it. Where I work at the moment, we’ve decided HTML5 and javascript

In my previous post, I outlined how to use ASP.NET MVC and Angular together, making certain views pure MVC and others Angular. When I first used Angular this way, I was so happy, I went the full Angular way making requests from Angular for my data. Essentially, something like this: $http({ method: ‘GET’, url: ‘/api/rest/’ }) .success(function (data, status, headers, config) { vm.names = data; }) .error(function (data, status, headers, config) {}); This is code inside my customers.js. It’s just

Angular is a great tool, but it took me some time to find a way to combine it elegantly with ASP.NET MVC. This is basically how I did it. First, create a new ASP.NET MVC application. Next, install the Angular package via NuGet. Now for the customization. The objective is to use the normal ASP.NET MVC navigation, unless for certain URLs, when we’ll let Angular take over. So http://www.example.com/Account/Login would be handled by ASP.NET (“ASP.NET-mode”), but http://www.example.com/#/Customers would be handled

At Techorama 2014, Nik Molnar mentioned very shortly that you should use CDNs. CDNs, or Content Delivery Networks (or Distribution), are public repositories of javascript libraries, css files, images, etc that anyone can reference. There are lots of CDNs out there. A popular one is Google Hosted Libraries. You’ll find Angular, jQuery, jQuery UI, etc. The main advantage of using a CDN is performance. There’s a good chance that people who visit your site will already have visited a site

With all these javascript frameworks, which one should you choose? Which one is winning? The short answer: it’s too soon to tell and it doesn’t really matter. But there are some more or less safe bets. A while ago, I was talking with a colleague over lunch about a presentation I’m preparing on Durandal (in Dutch), a javascript framework for single-page applications. I also mentioned Angular and he asked me which one is most popular, which one is winning. If

I’ve been playing around with Durandal lately, and was wondering how you get a Durandal SPA to work with Google Analytics. The problem is the visitor is staying on the same html page. Yet you want analytics for your different views (so everytime the hash in the browsers navigation bar changes). It turns out this is fairly easy. I’m putting this here for my own and anyone else’s reference. It probably works with other SPA frameworks too (Angular for example).

Mimosa is a build tool for Node.js apps. But it’s more than just building. For a very nice introduction, check out the ‘Tour of Mimosa’ slideshow on their homepage. In short, it will do almost anything you need to get from the source of your web app to something that you can deploy to the server: JS transpiling, CSS linting, JS hinting, minification, dependencies, etc. But it also helps while developing, for example by allowing live reload so you see

At Team4Talent we recently held an entire day of developer sessions. We regularly have someone give a session on an interesting topic, but always after work. This limits time somewhat. An entire day makes it possible to have multiple sessions and dive more deeply into the topics at hand.I myself gave a session on using Durandal for single page applications. Some of my colleagues are very much pro-javascript (looking at you Tim!), while others are sceptical. I hope I could

If you switched to **IE10 **and your Knockout bindings that previously worked in IE (8 in my case) now give you the following error: "String expected", you might want to check your bindings. Mine had a computed ‘toString’ member. I’m not sure what’s happening but choosing the name of an existing, default member might not be a good idea. Replacing it with something else (i.e. "description") and updating my markup fixed this issue. Just putting this out here in case

This is a classic problem: you want to style your <input type=”file” /> control but the options are kind of limited. The solution is to hide the control and add your own controls, passing any actions from one to the other. With jQuery this can be fairly easily achieved by the following script: $(function () { $(‘input[type=file]’).each(function () { var fileUpload = $(this); var textBox = $(‘<input type=”text” />’); textBox .css(‘width’, fileUpload.width() – 85) .css(‘margin-right’, 5) .prop(‘disabled’, fileUpload.prop(‘disabled’)); var button