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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
If you find yourself doing routine work repeatedly in ASP.NET MVC, it is worth exploring the possibilities that come from modifying or creating Editor Templates in Visual Studio. Templates can save you a lot of time when creating views or other default content. Nick Harrison explains.… Read more
Pre-existing SQL databases, particularly if complex, can often pose problems for software developers who are creating a new application. The data may be in a format that makes it hard to access or update, and may include functions and procedures. Jon Smith looks at what tools there are in Microsoft's Entity Framework's Data Access technology that can deal with these requirements.… Read more
User Interface test automation is a tricky practice, and it's not always obvious what the benefits are. UI tests are an essential part of protecting your application's critical paths, and it's easy to start building them in the wrong way. Jim Holmes urges us to ask some pointed questions before we get started, and get start testing our UI the right way, for the right reasons.… Read more
We all love recursion right up to the point of actually using it in production code. Why? Recursion can illustrate in code many of the excellent 'divide and conquer' algorithms, but will always provide the compiler with a challenge to implement as efficiently as an iterative solution, and can present the programmer a puzzle to test, debug and render resilient to bad data. … Read more