The Care and Feeding of Tuples in C#

Tuples have many uses in languages like F# and Python; they underlie relational theory. The .NET support for tuples seems rather limp by comparison. Why is this, and what are the obvious uses for tuples in C#? Tom Fischer takes on the cause of C# tuples and tackles the 'what', 'why' and 'when'. He makes the case for using them, while explaining the tribulations of the .NET implementation in the past.… Read more

Encrypting connection strings in web.config

Encrypting web.config elements is a good security feature. Web.Config elements can include passwords and important keys that we need to protect.Encrypting web.config elements is a good security feature. Web.Config elements can include passwords and important keys that we need to protect. There are several methods to encrypt the web.config: Using a command line statement Using … Read more

High Performance PowerShell with LINQ

PowerShell is a scripting language, and like all scripting languages it struggles to perform well with rapid iterative processes such as aggregation. It isn't well-known that PowerShell can use LINQ for many of those tasks which would otherwise use iteration, though somewhat awkwardly. However, some of the speed improvements you can get are startling. To get you well started, Michael explains every LINQ function , gives you example code in C#, The PowerShell way of getting the result, and finally Powershell's use of LINQ. This article could change the way you use PowerShell.… Read more

The Zen of Code Reviews: Review As If You Own the Code

A code review is a serious business; an essential part of development. Whoever signs off on a code review agrees, essentially, that they would be able to support it in the future, should the original author of the code be unavailable to do it. Review code with the energy you'd use if you owned the code. Michael Sorens runs through the principles of reviewing C# code.… Read more

What’s New in C# 6

The C# language itself has changed little in version 6, the main importance of the release being the introduction of the Roslyn .NET Compiler Platform. However the New features and improvements that have been made to C# are welcome because they are aimed at aiding productivity. Paulo Morgado explains what they are, and how to use them.… Read more

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

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

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

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

Using Entity Framework With an Existing Database: Data Access

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

Rethinking the Practicalities of Recursion

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

Take your CRUD to the next level with DDD concepts

Sometimes, in a software development, the level of complexity in part of the project can get to a point where the experienced developers will rethink their strategy. Domain-Driven Design can often help, but if the necessary prerequisites aren't there, it could be that DDD-Lite can help. Konrad Lukasik gives a simple example where some DDD patterns can help to clarify complex logic. … Read more

A TDD Journey: 3- Mocks vs. Stubs; Test Frameworks; Assertions; ReSharper Accelerators

Test-Driven Development (TDD) involves the repetition of a very short development cycle that begins with an initially-failing test that defines the required functionality, and ends with producing the minimum amount of code to pass that test, and finally refactoring the new code. Michael Sorens continues his introduction to TDD that is more of a journey in six parts, by implementing the first tests and introducing the topics of Test doubles; Test Runners, Constraints and assertions… Read more

A TDD Journey: 4-Tests as Documentation; False Positive Results; Component Isolation

In Test-Driven Development (TDD) , The writing of a unit test is done more to design and to document than to verifiy. By writing a unit test you close a number of feedback loops, and verifying the functionality of the code is just a minor one. everything you need to know about your class under test is embodied in a simple list of the names of the tests. Michael Sorens continues his introduction to TDD that is more of a journey in six parts, by discussing Tests as Documentation, False Positive Results and Component Isolation.… Read more

A TDD Journey: 5- Tests vs. Code; Refactor Friendliness; Test Parameterization

Test-Driven Development (TDD) has a workflow of writing some test code, and then writing some production code to make the test pass. That is necessary but not sufficient-you must also make sure the test and the code together are doing what you think! Michael Sorens continues his series by introducing Test case parameterization for avoiding code duplication with no additional code complexity. … Read more

A TDD Journey: 2- Naming Tests; Mocking Frameworks; Dependency Injection

Test-Driven Development (TDD) relies on the repetition of a very short development cycle Starting from an initially failing automated¬†test that defines the functionality that is required, and then producing the minimum amount of code to pass that test, and finally¬†refactoring the new code. Michael Sorens continues his introduction to TDD that is more of a journey in six parts, by implementing the first tests and introducing the topics of Test Naming, Mocking Frameworks and Dependency Injection… Read more