Click here to monitor SSC
Sunil Pardasani

Behaviour Driven Development: Part 2 – Implementing Scenarios and Step Definitions in Specflow

In Behaviour-driven Development, the scenarios that you work out with the participants in the development in order to specify the acceptance criteria of a feature are recorded in a language that clearly describes the way that a feature should works. The same code can then, via a utility such as SpecFlow, create the unit tests that are subsequently used to write the code, and finally the user-acceptance tests. Read more...

Tom Fischer

Safe(r) Custom User-Authentication

If you are still storing passwords with MD5 hashing you're doing it wrong. The .NET platform provides a Cryptography library that allows you to develop PBKDF2 user authentication to the standards of the Open Web Application Security Project. Tom Fischer explains the background, shows a solution, and discusses the issues. Read more...

Dino Esposito

Tracking Online Users

Sometimes, the requirements for a web application include a list of users that are currently logged-in. It would seem, at first glance, to be pretty trivial, but because few of us explicitly log out of web applications, the reality can get complicated. Even the best solution is a trade-off. Dino explains the issues and alternatives. Read more...

Sunil Pardasani

Behaviour Driven Development Overview Part 1 – Ubiquitous Language

Behaviour Driven Development is an Agile methodology that aims to allow software development and management teams to use shared tools and processes to communicate and collaborate, It describes the behaviour of the application in a language that is understood by business analysts, testers, developers in order to minimize misunderstandings and make the development process more visible. This structured description or 'Ubiquitous Language' then serves to define much of the testing. Read more...

Karsten Kempe

Building a Customised ALM Platform with TFS and VSO

The latest versions of Team Foundation Server are not only sophisticated, but extensible. Continue their course of openness, Microsoft have opened up TFS, and are making it possible to build custom systems on top of it. Karsten Kempe points out three new features that make it possible to build an ALM system to exactly suit you needs, using TFS as the underlying platform, and demonstrates what’s possible with an open source dashboard and work-tracking system. Read more...

Dino Esposito

ASP.NET SignalR: Old-fashioned Polling, Just Done Better

A website often needs to update a page as the underlying data changes. You can, of course, just poll the server every few seconds on the browser via JavaScript, but to receive live updates from a site it is better to push data to the browser, using server-based SignalR. This uses web sockets to do this rather than browser-based polling where web sockets are supported on the browser. Dino explains how. Read more...

Jaroslaw Szczegielniak

Introducing Single Sign-on to an existing ASP.NET MVC application

Implementing a single sign-on for a set of a company's business applications isn't hard if they are all new applications, especially if you use WS-Federation and and Identity server such as Thinktecture. If it is a mix of new and existing applications then it helps to sort out any problems if you first understand the technology as a whole, and appreciate how it works. Jarek shares his experiences. Read more...

Chris Hurley

Catching Performance Issues in Development

Refactoring code won’t cause performance problems, right? This was the assumption when Chris Hurley and his team went out to improve some legacy code. They decided to separate the database access from business logic and standardise on Entity Framework, but when it came time to test the code using real-world workloads, unexpected performance issues appeared. Chris recounts how they discovered, investigated, and resolved these issues using ANTS Performance Profiler. Read more...

Dino Esposito

Handmade Claims-based Authentication for Old-fashioned ASP.NET Sites

ASP.NET's identity framework gives you everything you need for using Claims-Based identities. However, claims-based identities can be simulated in plain old ASP.NET by means of a custom principal if you have an internal username/password login provider, and need to be able to display more information about a user. Read more...

Dino Esposito

Premature Scalability and the Root of All Evil

When you're designing an application, there is a temptation to build it to a super-scalable future-proof architecture, even when the immediate requirements can be met by a simple single-tier application that can exploit the pure power of IIS and SQL Server. Dino recounts the painful story of what happened when the gurus got their way. Read more...

Michael Sorens

The Zen of Code Reviews: Pre-Review Comments

Code Reviews can have a great deal of benefit if they are done well and thoroughly. They are done best if it it isn't a chore for the reviewers. If you make as easy as possible for them by explaining the background to the edits and pointing out the significant changes, then the process goes far better for all: But how would you go about doing that? Michael Sorens explains. Read more...

Casimir Saternos

R Basics

For exploring data and doing open-ended statistical analysis on it, nothing beats the R language. Over the years, this open-source tool has come to dominate the way we do analysis and visualization; It has attracted a rich and varied collection of third-party libraries that has given it remarkable versatility: But how do you get started? Casimir explains how to get started, and get familiar with the way it works. Read more...

Jon Smith

The Compromise Between Development Time and Performance in Data-Driven ASP.NET MVC

As developers we always want to produce efficient code, but efficient in what – development time or overall performance? In this article Jon Smith describes how to investigate and understand performance so that you can decide how to balance these two goals. The article starts with high level performance issues and drills down to detailed code tuning using examples taken from real applications. Read more...

Dino Esposito

RWD, Mobile-first, JavaScript and Performance

The easiest way to make a responsive web application perform well is to minimize requests and the amount of data that is downloaded. The most dramatic way of doing this, for mobile applications particularly, is to download just the data you need to use. There are additional ways of doing this, such as 'Mobile first', Prioritized content, Intelligent markup and Compression, but the most important task is to minimize the data-download requirements. Read more...

Dino Esposito

Quick and Dirty Web Data-Binding

Sometimes, the sheer byzantine complexity of the typical JavaScript frameworks underlying a typical web application can give you pause for thought. If all you need is a simple way of creating a mobile-first application that involves creating simple markup templates, loading them into a DOM fragment and dynamically populating them with JSON data, then maybe a lean micro-framework like Mustache.JS would provide a better, leaner approach. Read more...

Ambily Kavumkal Kamalasanan

Customizing Team Foundation Server 2013

Visual Studio Team Foundation Server (TFS) manages workflow of software development projects. It is designed for the typical development. If it doesn't support all your team development activities, you can extend it by various means, including the creation custom controls or new work items. Read more...

Nick Harrison

ASP.NET MVC Security through Validation

ASP.NET MVC provides a way of providing declarative validation of user inputs. It removes a lot of the tedium of this important task. Nick Harrison explains how to do it, and also points out why it is so important to provide input validation Read more...

Dino Esposito

Revisiting Partial View Rendering in ASP.NET MVC

For any browser-based application, it makes sense to load into the web page just the content that is immediately required and avoid whole-page refreshes whenever possible. Ajax technology and JSON makes this partial-rendering easy. It is, however, worth considering ASP.NET's own partial-rendering techniques, returning HTML. It requires less client-logic and is quicker to implement. Read more...

Jon Smith

Using Entity Framework with an Existing Database: User Interface

Pre-existing databases can pose some difficulties for software developers using an ORM. To demonstrate ways of circumventing them, Jon Smith builds an ASP.NET MVC application with Entity Framework (EF) to provide a user interface to Microsoft’s AdventureWorks sample SQL database. He shares his design approach for displaying and updating this data with real examples from the test web application he built. Read more...

Jim Holmes

Practical UI Test Automation – Locators and Asynchronous Loading

Having set us down an enlightened path of User Interface test automation, Jim Holmes returns to give some advice on how to start building smart, robust test harnesses, and some tools you might want to consider. Read this before you start trying to automate your UI tests, or if you’re about to start on a new project. Read more...

Most Viewed

A Complete URL Rewriting Solution for ASP.NET 2.0
 Ever wondered whether it's possible to create neater URLS, free of bulky Query String parameters?... Read more...

Visual Studio Setup - projects and custom actions
 This article describes the kinds of custom actions that can be used in your Visual Studio setup project. Read more...

.NET Application Architecture: the Data Access Layer
 Find out how to design a robust data access layer for your .NET applications. Read more...

Calling Cross Domain Web Services in AJAX
 The latest craze for mashups involves making cross-domain calls to Web Services from APIs made publicly... Read more...

10 Reasons Why Visual Basic is Better Than C#
 After having converted a whole lot of training materials based on VB.NET into C#, Andy ‘Wise Owl’ Brown... Read more...

Why Join

Over 400,000 Microsoft professionals subscribe to the Simple-Talk technical journal. Join today, it's fast, simple, free and secure.