Click here to monitor SSC
Michael Sorens

The Zen of Code Reviews: Best Practices

If you don't feel that you are getting helpful and comprehensive feedback from code reviews, it may well be your fault. Unless you are considerate to your reviewers in a number of ways, they might find it difficult to check your code and provide helpful advice. What ways? Michael Sorens outlines the eight golden rules that, if you follow them, might even even make your code a pleasure to review! Read more...

Casimir Saternos

Visualizing Data with R

It isn't just the attraction of the huge range of statistical analyses afforded by R that attracts data people to R. The language has also developed a rich ecosystem of charts, plots and visualisations over the years. In his second article about R Basics, Casimir Saternos shows how to get started with the three best-established graphics systems in R. Read more...

David Berry

Improving Web Page Performance

Visitors to a website are put off by having to wait for pages to load. Additionally, Google uses the metric to rank your site. Why, when there are tools and techniques around to help reduce web page lethargy, do we still experience slow page-loads? David Berry provides the simple ways of finding and fixing the problems. Read more...

Dino Esposito

Selective Updates with ASP.NET SignalR

SignalR is great for all those tasks that one would otherwise need to rely on AJAX. However, it is much more versatile than this: it allows, for example, a server process to update users' browser windows selectively rather than broadcast to all, and can treat groups of users in different ways. Dino explains how this magic works. Read more...

Sunil Pardasani

Behaviour Driven Development Part 3 – Benefits of using BDD Programming Methodology

Behaviour Driven Development requires the use of ubiquitous language to clearly state the requirements for a software project. As Sunil Pardasani explains, this clarity can bring substantial benefits to your organisation, reducing misunderstandings, competing visions, and setting clear goals that are directly tied to the development process. Read more...

Clive Tong

What is DNX?

In the past, working in .NET for non-Windows platforms has been dependent on third-party frameworks like Mono. Now, with VS2015 and DNX Microsoft have stepped up to provide everything you need to code multi-platform apps straight out of the box. Clive Tong introduces this new .NET technology. Read more...

Arkadiusz Pachucy

Multi-Platform Mobile Development with PhoneGap

It seems a great idea to have your application on all the main mobile platforms as well as on the desktop. Nothing beats writing an app specially for each device, but then you've created a full-scale maintenance headache. Are technologies like PhoneGap/Cordova or Adobe Air, using a browser-based UI, the perfect compromise? If so, what frameworks do you use? Read more...

Christos Matskas

An Introduction to Real-Time Communication with SignalR

SignalR, from Microsoft, solves many of the problems that come with developing web applications that need a communication channel with the server that is effective on a variety of server and client configurations. Christos Matskas gives an overview of the library and its potential. Read more...

Dino Esposito

Tracking Online Users with SignalR

SignalR is all about pushing notifications and data between web server and browser, but you can tap into a by-product of the work it has to do to keep track of the users who are currently online. This will provide a list of the users currently connected to a web community. SignalR has endpoints to push server events of any kind to the client, and thereby provides solutions for a number of common programming tasks. Read more...

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...

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.