Click here to monitor SSC
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 VS2105 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...

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

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.