Tuning service runtime performance will improve the utilization of individual services as well as the performance of service compositions that aggregate these services. Even though it is important to optimize every service architecture, agnostic services in particular, need to be carefully tuned to maximize their potential for reuse and recomposition.
Because the logic within a service is comprised of the collective logic of service capabilities, we need to begin by focusing on performance optimization on the service capability level.
In this article we will explore several approaches for reducing the duration of service capability processing. The upcoming techniques specifically focus on avoiding redundant processing, minimizing idle time, minimizing concurrent access to shared resources, and optimizing the data transfer between service capabilities and service consumers.
The capability granularity and constraint granularity of a service contract can greatly impact performance of the service architecture. A service consumer communicating over a network connection can experience significant latency between request and response when exchanging large messages over poor network connections. Network latency is often beyond your control, especially when you consume third party services over a public network. Nevertheless you can architect your services to minimize the performance impact of remote service interactions.
This article explores static code analysis and discusses how it can be used with Code Contracts to save you time in your builds and, more importantly, save you from nasty bugs that hit your software only in corner cases.
The Code Contracts project at Microsoft Research enables programmers on the .NET platform to author specifications in existing languages such as C# and VisualBasic. To take advantage of these specifications, we provide tools for documentation generation, run-time contract checking, and static contract verication. This talk details the overall approach of the static contract checker and examines where and how we trade-off soundness in order to obtain a practical tool that works on a full-edged object-oriented intermediate language such as the .NET Common Intermediate Language.
This article explains why such habits as using nested HTML Tables to position content in the right place on the browser page is bad practice and, nowadays, avoidable. It is just one 'Markup smell' that it discusses on the way to demonstrating the benefits of CSS Style-sheets and ASP.NET Master Pages.