Articles tagged

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

The JavaScript Landscape in Broad Brushstrokes

JavaScript has come a long way from its humble origins as a simple interpreted object-oriented language for browser-side scripting of web pages. It's many inadequacies, poor debugging and testing, and its design weaknesses, have now been circumvented by frameworks and libraries. JavaScript is now ubiquitous, but is it now suitable for a central role in corporate applications?… Read more

The .NET 4.5 async/await feature in Promise and Practice

The .NET 4.5 async/await feature provides an opportunity for improving the scalability and performance of applications, particularly where tasks are more effectively done in parallel. The question is: do the scalability gains come at a cost of slowing individual methods? In this article Jon Smith investigates this issue by conducting a side-by-side evaluation of the standard synchronous methods and the new async methods in real applications.… Read more

A TDD Journey: 1-Trials and Tribulations

Test-Driven Development (TDD) has a misleading name, because the objective is to design and specify that the system you are developing behaves in the ways that the customer expects, and to prove that it does so for the lifetime of the system. It isn't an intuitive way of coding but by automating the specifications of a system, we end up with tests and documentation as a by-product. Michael Sorens starts an introduction to TDD that is more of a journey in six parts:… Read more

Catching Bad Data in Entity Framework

Any website that rejects the users' input without giving enough information to correct what they're doing is doomed to be unpopular. Entity Framework offers three different ways of validating data before writing it to the database. As well as describing how to harness these validation methods Jon Smith shows how capture these errors to make the feedback to the user less cryptic.… Read more

Configuration Management with PowerShell and XML

For the rapid delivery of any software application, there must be an effective configuration management system that is scripted. As the application increases in size it becomes more important that configuration information is kept in one place, without repetition, in version control. How to achieve this in practice? Konrad Lukasik explains a working solution.… Read more