Friday, December 23, 2011

HTML 5 and CSS: Six Complete Lessons

You want to learn HTML 5 and CSS? Microsft has created six complete lessons that cover the most interesting and dynamic new features of HTML 5 that are ready to drop into a web development or intro programming course. Each lesson comes with instructor PowerPoint slides, a complete reading assignment with hands-on examples, including the files and assets to use in each assignment. A single lesson has enough content for a 75-100 minute class session, and the hands-on examples are great for either a lab session or homework assignment.

The six lessons are:

  • Lesson 1 – Defining HTML 5
  • Lesson 2 – Fundamentals of HTML 5, XHTML, and CSS
  • Lesson 3 – Introduction to CSS Layout
  • Lesson 4 – Using HTML 5 Markup
  • Lesson 5 – Working with Canvas
  • Lesson 6 – HTML 5 Multi-Media and Drag and Drop

This content is available at no charge and can be downloaded from here: http://www.mis-laboratory.com/faculty/

Thursday, December 22, 2011

Telerik MVC Grid won't refresh after delete

For a project we are using the Telerik MVC controls. I have to say that I was really pleased with the experience in general, although I had some small issues.

One of the problems I had was with the editing feature of the Telerik MVC Grid. Everything appears to work as expected except for the delete. The delete MVC action is called and the row is  deleted from the database but the grid does not refresh.

[HttpPost]
[GridAction]
public ActionResult DeleteCodetable(string codetableType, Codetable codetable)
{
_codetabelService.Delete(codetable);
//Rebind the grid
return LoadCodetable(codetableType, refreshCache: true);
}


It took me some time to find the answer on the forums. The delete action only passes the id of the element to delete to the action method. This causes some model binding validation errors as the Code and Description field are required on my Codetable object.



public class Codetable
{
[Required]
public virtual int Id { get; set; }
[Required]
public virtual string Code { get; set; }
[Required]
public virtual string Description{ get; set; }
}


By design if there are model state errors (validation didn't work) the grid is not rebound. So when the DeleteCodetable method returns the result, the grid will not refresh. I solved it by introducing the IgnoreModelErrors attribute in my code.



[HttpPost]
[IgnoreModelErrors("Code,Description"]
[GridAction]
public ActionResult DeleteCodetable(string codetableType, Codetable codetable)
{
_codetabelService.Delete(codetable);
//Rebind the grid
return LoadCodetable(codetableType, refreshCache: true);
}

Wednesday, December 21, 2011

Microsoft Product Lifecycle Search

I get a lot of questions about the lifetime and end of support of multiple Microsoft products (especially about one you probably heard of before… Silverlight Knipogende emoticon).

So how do you know how long Microsoft will officially support a product or technology?

It’s not a secret. You only have to browse to the Microsoft Product Lifecycle Search Page and search the product or technology.

Let’s do the test with Silverlight 5:

image

So now it’s official… Silverlight 5 is dead in 2021. I guess that gives you the time you need to upgrade…

Tuesday, December 20, 2011

Look up DB2 error codes: the fast way

I have to admit that I’m not a big fan of DB2 although there is not much wrong with the database itself. I have more problems with the far-from-perfect tooling.

One of the things that keep annoying me are the cryptic error messages including an even more cryptic SQL error code that DB2 returns. Normally I look up the error code in the DB2 Information Center, but if you need a shorter and faster way to get at least a short explanation of what an error code means, you can use the following SQL query:

VALUES SQLERRM(-161)

Result:

1
------------------------------------------------------------------------------------------------------
SQL0161N The resulting row of the insert or update operation does not conform to the view definition.

Monday, December 19, 2011

Team Foundation Server 2010 Power Tools for Eclipse

Visual Studio users already know this for a long time, Microsoft has the Team Foundation Server Power tools. These tools extend the Visual Studio and Team Explorer IDE with lots of extra functionality.

Now these features finally become available to Eclipse Developers as Microsoft released the first version of the Team Foundation Server 2010 Power Tools for Eclipse.

“A set of Team Foundation Server power tools targeted for Eclipse developers already using Team Explorer Everywhere 2010 with SP1 to talk to TFS. This release brings the ability to be able to sign up for Team Foundation Server alerts directly from Eclipse, to save common work item details into a work item template for quick creation of new work items and to allow searching of files in source control by file name, wildcard or by the developer who has the file checked out.”

Friday, December 16, 2011

Techniques to improve your training feedback: The happiness door

Useful feedback is one the best ways to improve your training skills. But how do you know what people think?

Of course you can always ask to fill in a questionnaire but that takes a lot of work, so you probably only do this at the end of your training. But this gives you only a general overview and actually it’s already too late. Wouldn’t it be nice to get feedback during the training and adapt immediately?

One feedback technique I’ll give a try during my next training is ‘The Happiness Door’ as described by Jurgen Appelo in this blog post: http://www.noop.nl/2011/11/the-happiness-door.html. Don’t forget to read his tips before trying this technique.

The method is very simple. You ask people to give you immediate feedback after a training session. They do this by adding notes to on a wall or door and placing it next to the happiness index (5 = excellent … 1 = bad) they want. People can add empty notes or leave some comments.

Happinessdoor

Thursday, December 15, 2011

CSSCop: Integrate CSS Lint into Visual Studio

To all .NET Web developers: this is a must have tool for in your tool belt!

 CSSCop makes it easy to adhere to best practices for writing stylesheets. It catches common errors that affect browser compatibility and much more.

It uses the widely used CSS Lint tool behind the scenes. CSSCop brings it directly into Visual Studio in an easy and convinient way.

Download available here: http://visualstudiogallery.msdn.microsoft.com/a921b98e-9430-4be2-bf53-1169e12bdb50

Wednesday, December 14, 2011

Team Foundation Server WorkItem FieldControl Attributes

Probably the easiest way to customize a TFS WorkItem is by using the Process editor, a part of the TFS Power Tools. Using this editor you can add your own work item fields, customize the layout and change the corresponding workflow. Next to the obvious list of settings there are some less known things you can change using the Attributes property.

image

By using these attributes you can add custom attributes to the Work Item XML. Here are some useful attribute samples:

  • NumberFormat (for FieldControl only): Useful if a number value is displayed in the field. Possible values: WholeNumbers, SignedWholeNumbers, DecimalNumbers, SignedDecimalNumbers. Setting this attribute determines what characters are allowed to be entered in this control.
  • MaxLength (for FieldControl only): Maximum length of allowed characters for field control in form UI.
  • Format (for DateTimeControl only): One of values of DateTimePickerFormat enum. Possible values: Long, Short, Time and Custom. Custom format can be set by having 'Custom' as value for this attribute, and setting another attribute named CustomFormat with actual custom format string.

TF215097: An error occurred while initializing a build for build definition: Cannot create unknown type

While creating some custom build activities for TFS Build I ran into this error

TF215097: An error occurred while initializing a build for build definition \OrdinaALM\TestBuild: Cannot create unknown type '{clr-namespace=Ordina.CustomActivities;assembly=Ordina.CustomActivities}Ndepend'.

I discovered that my solution couldn't be loaded because TFS is looking for a particular attribute to my class. As my custom activity was completely build in XAML I had to use a partial class definition to get the attribute added.

namespace Ordina.CustomActivities
{
[Microsoft.TeamFoundation.Build.Client.BuildActivity(Microsoft.TeamFoundation.Build.Client.HostEnvironmentOption.All)]
partial class Ndepend
{
}
}

Tuesday, December 13, 2011

QFEs and Hotfix Rollup Package for Microsoft Test Manager 2010

If you are using Microsoft Test Manager, this post is for you.

It’s a good idea to check if you have all the hotfixes and updates installed.These updates contains features like:

  • Multi-line support for editing test cases in Microsoft Test Manager
  • Reduce the size of test data saved to the TFS Database
  • Performance improvements for loading automated test cases from a build-drop path
  • Performance improvements for publishing test results on a test suite that contains thousands of test cases in Test Manager

I recommend to have a look at the full list of updates(QFEs for Microsoft Test Manager 2010) and download them if one or more are missing.

Monday, December 12, 2011

Team Foundation Services Update

Last week Microsoft releases the first Team Foundation Services update that introduces some significant new functionality. Normally all features we’ll see are also going to be part of the new TFS 11.

So what’s new?

  • Redone navigation model to add a bit more style, rework administration mode and more.

NewNav

  • Enhanced homepages for teams and team projects to make them more interactive and intuitive.

homepage graphics

  • Simplified Web UI for Small Teams
  • Improved performance
  • E-mail Notifications and a new UI for managing subscriptions.

image

  • Forecast Lines to project where your iteration boundaries are likely to fall based on your team’s velocity and the estimates on your product backlog items.

forecast lines

  • In-Tile Taskboard Editing on the taskboard.

on-tile editing

Read the official announcement and all the details here: http://blogs.msdn.com/b/visualstudioalm/archive/2011/12/08/team-foundation-service-december-update.aspx

Friday, December 9, 2011

Microsoft Patterns & Practices Roadmap

Interested in what the Microsoft Patterns & Practices has in the pipeline for us? Have a look at their roadmap. I’m especially looking forward to the Windows 8 Guidance and the CQRS guide.

More information here: http://msdn.microsoft.com/en-us/practices/bb232643

Thursday, December 8, 2011

Clean up your development PC

Maybe you didn’t notice it yet, but Visual Studio leaves tons of temporary files all over your hard drive. This is why, over time, your computer loses hard disk space. Same thing for Windows updates, fixes, etc…

As I was running out of disk space I was looking for some ways to free some space. I found two very useful links that saved me a lot of disk space:

Tuesday, December 6, 2011

Unlocalize.com: Translate localized error messages

If you are working on a non-English OS, you probably have seen it: these localized error messages. Very useful for the end user but very annoying for us developers who want to google or bing for this specific problem. And while searching for an English error message gives you thousands of hits, you only get a few when you use the localized error message as the search term.

Last week I got the following tip from a colleague: Unlocalize.com, a very useful website which allows you to translate your localized error messages back to English. It’s even available as a browser plugin for your favorite browser.

A must have for every developer!

image

Monday, December 5, 2011

TFS Build: Build by label

By Default Team Foundation Build services allows you to build your solutions either based on the latest version available or on a combination of the latest version and a specific shelveset.

But what if you want to build a labeled version of your code?

You can specify a Label in the GetVersion parameter in the Queue new Build Wizard, going to the Parameters tab (for labels add the “L” prefix):

image

Friday, December 2, 2011

Integrate NuGet in your build process: TFS NuGetter

Although it’s not that hard to integrate NuGet in your build process, it can always be easier.

NuGettter is an extension to the Team Foundation Server 2010 build process that will perform all of the necessary versioning, packaging and deployment functions in a customizable and completely repeatable way.

Capabilities/Features:

  • Includes all phases of the build process: compile, version, pre-package, package, push/deploy and publish - managed within TFS 2010 automated build
  • NuGet Package and deploy features for a simple to an extremely complex library package
  • Single or multiple solution builds
  • Single or multiple configuration builds
  • Manage versioning of the assemblies coordinated or separately from the NuGet package
  • Create a package, create and push a package or create a package and push and publish to a NuGet gallery
  • Build and have immediate access to the package in a test environment through inherent "Push/Deploy" feature
  • Push locations include the NuGet Gallery, a local directory, network share or web site
  • Use in any combination of manual, continuous integration or scheduled builds
  • Ability to execute PowerShell scripts prior to packaging to organize the files (e.g., lib, tools, content) for the NuGet packaging process (pre-packaging)
  • No requirement for NuGet.exe to be installed on the build machine – NuGet.exe can be held in source control and deployed only at the time of the build
  • All of the above is managed through the standard TFS Build Workflow process
  • Remotely store/manage package information such as version numbers, API keys, and NuSpec manifest files
  • All of this is managed via a Team Foundation Server automated build process
  • Includes updated build process template "NuGetterVersioningBuildTemplate15.xaml" to work with the TfsVersioning v1.5 extended versioning capabilities.

NuGetter Build Process:

NuGetter Build Process

Build Definition Sample:

NuGetter Build Definition Example

Thursday, December 1, 2011

JavaScript Unit Testing in Visual Studio: Chutzpah 1.3 released

A new version of Chutzpah is now live on Visual Studio Gallery, CodePlex and now NuGet.

This release contains the following changes:

Features

1. Chutzpah is now able to run Jasmine tests in addition to QUnit.

2. Added a new configuration option to set the timeout on a test file.

Official announcement here: http://matthewmanela.com/blog/chutzpah-1-3-0-released/