Skip to main content


Showing posts from November, 2014

Angular.js performance tip: Disabling Debug Data

While reading through the Angular.js documentation I stumbled over the following great performance tip: By default AngularJS attaches information about scopes to DOM nodes, and adds CSS classes to data-bound elements. The information that is not included is: As a result of ngBind, ngBindHtml or {{...}} interpolations, binding data and CSS class ng-class is attached to the corresponding element. Where the compiler has created a new scope, the scope and either ng-scope or ng-isolated-scope CSS class are attached to the corresponding element. These scope references can then be accessed via element.scope() and element.isolateScope(). Tools like Protractor and Batarang need this information to run, but you can disable this in production for a significant performance boost with: myApp.config(['$compileProvider', function ($compileProvider) { $compileProvider.debugInfoEnabled(false); }]); If you wish to debug an application with this information then you should open up a d

Team Foundation Best Practices Analyzer - "%TFSServerURLValidated% error

When running the Team Foundation Best Practices Analyzer , it failed immediately with the following message: Cannot validate the URL provided The scan was generated using the corrected URL "%TFSServerURLValidated%". I never seen this issue before. On the Internet I found some related blog posts here and here . But in my case the solution was a lot simpler: I ran the tool again with the ‘Run as Administrator’ option. This time everything was working as expected.

Upgrading to Caliburn.Micro 2.0

As Microsoft announced some new WPF features , I found a good excuse to do a WPF blog post . Recently I had to do some changes to an WPF application I built some time ago. While implementing the change, I noticed that a new version of Caliburn.Micro was available. I always loved Caliburn.Micro , it is still one of the best MVVM frameworks out there. Now doing this upgrade wasn’t that hard but wasn’t a walk in the park either. Here are some of the problems I encountered: Bootstrapper<T> no longer exists. Instead you have to inherit from BootstrapperBase . Inside the Bootstrapper override the OnStartup method and call the DisplayRootViewFor<> method: protected override void OnStartup(object sender, StartupEventArgs e) {            DisplayRootViewFor<IShell>();  } EventAggregator.Publish now takes an action to marshal the event. You can still use the EventAggregator.PublishOnUIThread if you want the original behaviour. Message.

Integrating Google Analytics in your Single Page Application

If you want to learn the ins and outs of the Google Analytics API and understand how to integrate it inside a Single Page Application, try the ‘Poses by Khalil’ tutorial(for anyone wondering, Khalil is a cat). ‘Poses by Khalil’ is is a tutorial single page application (SPA) to show you how to track common interactions using the latest incarnation of Google Analytics, Universal Analytics.

Linq in your browser: underscore.js

While working on an Angular application, I ended in a situation where I had to add another tool in my toolbox: underscore.js . It not only offers over 100 functions that support functional helpers like map , filter , invoke — but also has a fluent API that allows to create LINQ style queries. An example:

Angular.js ui-router: Focus on view

In an Angular.js application we are building, we use the great ui-router module as a replacement for the default ngRoute module. From the documentation: AngularUI Router is a routing framework for AngularJS , which allows you to organize the parts of your interface into a state machine . Unlike the $route service in the Angular ngRoute module, which is organized around URL routes, UI-Router is organized around states , which may optionally have routes, as well as other behavior, attached. States are bound to named, nested and parallel views, allowing you to powerfully manage your application's interface. It offers a lot more flexibility than ngRoute and is our default choice when building Angular.js applications. This doesn’t mean that everything is perfect. Last week we got a bug from a user mentioning that the page scrolled down when loading the Angular.js application. We discovered that this is caused by the ui-route module which has autoscroll enabled by defa

Free ebook – Perspectives on Agile Software Testing

In celebration of the 10th anniversary of Selenium, the guys from Thoughtworks created a small ebook available for free: It's been 10 years since Selenium was born and the industry has changed tremendously since then. In honor of Selenium's first decade, we put together some our greatest hits and new pieces on software testing. How has testing evolved in the past decade? How do we adapt to the new challenges that mobile testing has to offer? Can testing in an agile environment lead to faster feedback? Download this free e-book and read more about the big developments in testing methods and tools, while looking closely at the advent of mobile testing and what the future holds for QAs.   The book can be downloaded here: . Remark: Be aware that you have to register first.

Microsoft is going Open Source… for real!

The last years Microsoft is making more and more stuff Open Source. So last week at the Connect() event, it was no surprise when they announced that they have open sourced the .NET Core Runtime and Libraries. If you still think that Microsoft isn’t serious about this whole Open Source move, have a look at their GitHub landing page and see the whole list of technologies and tools that they are creating in the open:

Windows Azure Readiness: Azure Website Migration Assistent

You have an existing web application running on premise and you are interested in moving to Windows Azure? Then go check out . In 3 steps this website will guide you through the process to get your website to the cloud. Step 1. Install MS Open Tech Migration Assistant Tool This small ClickOnce application should be installed on your local machine. It scans your local or remote IIS server for a bunch of information. Click on Install Tool to get going… Step 2. Run the Readiness Assessment. Once the installation has completed, the tool will start up and give you the option to either scan a local or remote IIS server. Click Continue to start the scanning process. It will scan through all your websites and give you a list with possible migration candidates. Check the ones you want to be evaluated and click Next . A Readiness Report is generated. You can now upload this report by clicking Upload . Step 3. Migrate your website.

Connect() on demand(in case you missed it)

In case you missed all the announcements at Connect() , it’s time to lock yourself up in your room and start watching all the videos .

DevIntersection 2014 – Interviewing developers

At the moment I’m in Las Vegas attending DevIntersection . Next to all the technical sessions, there was a whole track dedicated to leadership. One of the sessions in the Leadership track was ‘Interviewing Developers’ by Billy Hollis. Here are some of the notes I made during the session: Keep a professional attitude. You are here to find the perfect match for your team not to get new friends. Don’t try to become friends with the candidate. If you hire him (or her) you get time enough to get acquainted. It’s a good idea to ask the candidate to send some code up front. This should not be a whole project but just some files the developer can share. Unfortunately some developers work on proprietary projects and cannot provide any code. Do a review of the application letter. Chances are high that the candidate did write this letter himself, which could not be the case for his CV. Don’t be merciful on spelling mistakes! Do

DevIntersection 2014 – Visual Studio Announcements

At the moment I’m in Las Vegas attending DevIntersection . During the keynote by Steven Guggenheimer this morning, they shared some news about .NET and Visual Studio that was later repeated during the Connect conference. Here are some of the highlights: Visual Studio and Team Foundation Server 2013 Update 4 are available.  Release notes… The first public preview of Visual Studio 2015 and .NET 2015 are available.  Release notes… The .NET Framework is going open source and cross platform A free Visual Studio Community 2013 – a new edition of Visual Studio that combines everything in all the Express products and adds extensibility support.  Learn more… Enough announcements to keep us busy for a while… More information can be found at: Brian Harry’s blog: The Visual Studio blog:

DevIntersection 2014 – Cross platform mobile development and MacInCloud

At the moment I’m in Las Vegas attending DevIntersection . During the mobile development workshop I attended, the presenter mentioned MacInCloud , an online service to remote access a Mac in the Cloud. I’m a cross platform mobile developer, why should I care? If you are doing cross-platform development(with for example Xamarin), you’ll need a Mac sooner or later. Apple Licensing Terms doesn’t allow you to design and build your application on non-Apple hardware. So don’t think that creating a Virtual Machine and installing OS X on it, is a feasible solution. Now you would think that the only option left is to buy a Mac, but Macs are expensive. Thanks to MacInCloud , you can use a Mac and only pay for the time you are using it.

DevIntersection 2014 - MobiZen

At the moment I’m in Las Vegas attending DevIntersection . During the mobile development workshop I attended, the presenter was using a great tool called MobiZen . MobiZen allows you to share the screen of your Android device on your desktop or inside a web browser. You can even control your Android from your pc or laptop. This is the perfect tool not only during development but also when you want to demo some functionality to your client. And best of all, it’s free! From the documentation : Using your smartphone from your PC becomes a reality with Mobizen. Type using your keyboard, view photos and videos stored on your phone, and use mobile apps. Photo: Share your special moments on a larger screen. Music: The songs you listen to on-the-go can be enjoyed anywhere. Videos: Watch videos and movies stored on your smartphone. Files: Use drag and drop to transfer files between your smartphone and PC. This will certainly become a new tool in my m

Free Azure and Office 365 Exams

To accelerate the adoption of their cloud technologies, Microsoft made the following MCP exams available for free: 532: Developing Microsoft Azure Solutions 533: Implementing Azure Infrastructure Solutions 346: Managing Office 365 Identities and Requirements 347: Enabling Office 365 Services This offer is only valid until December 31, 2013 or while supplies last. So be quick and register for one or more of these exams. Get your voucher here: Good luck!