Visual studio feeds

All Visual Studio blogs in one place


Enter your email address:

Delivered by FeedBurner

Increase your website traffic with



Anti-spam: How many eyes has a typical person?

Follow us on FB


Excerpts from the RavenDB Performance team report: Etags and evil code, Part I

AddThis Social Bookmark Button
As part of the performance work we have been doing, we focused on the Etag class we use as a performance hot spot. For this post, I’m going to talk about Etag.Parse(string) and what we did to improve its performance. Etag is a core type in RavenDB, it is how we represent changes in the database, and we deal with it a lot. As such, it turned up as a performance hot spot in our profiling. This post is based mostly around Maxim’s work to improve the overall performance. One of the things that we do with Etag is to take a
string and turn that into an instance of an Etag. An Etag looks just like a Guid, but its structure has meaning that we care about. Here is what a typical Etag looks like: 01000000-0000-0005-0000-00000000012C We send them over the wire as strings for a lot of purposes. Here is the initial code that we used for parsing Etags:
public static Etag Parse2(string str) { if (string.IsNullOrEmpty(str)) throw new ArgumentException("str cannot be empty or null"); if (str.Length != 36) throw new ArgumentException(string.Format("str must be...(Read whole news on source site)

The Morning Brew #1780

AddThis Social Bookmark Button
Software Visual Studio 2015 CTP 5 Available – John Montgomery announces the release of the 5th Community Technology Preview release of Visual Studio 2015, featuring improved Debugging and Diagnostics features, updates to ASP.NET and more Announcing TypeScript 1.4 – Jonathan Turner announces the release of TypeScript 1.4, a release which adds further ECMAScript 6 feature […]

Sharing Data in an Angular Controller or an Angular Service

AddThis Social Bookmark Button
I received a great question about model data recently. A question I hear a lot that is about an extremely common situation that most Angular developers will face. The reason I think it comes up is that there are many examples showing different ways to code the situation, none of which are wrong, and none of which are absolutely right. I found myself typing up the answer and realized that this is a great opportunity to share the thought process on how I think about these situations. You may agree with my conclusion, or you may disagree, and that’s cool.

What’s new in C# 6.0? - Dictionary Initializer

AddThis Social Bookmark Button
Visual Studio 2015 and .NET 4.6 came up with another new feature (more precisely an enhancement) for C# 6.0 named “Dictionary Initializer”. It’s not a new thing but now you will be able to map the key/indexer directly at the time of dictionary object initialization. Today in this blog post, we will discuss about this with an example. Don’t forget to read the other new features which I posted earlier. Links can be found in this post.   Don’t forget to read my previous posts on this series: What’s new in C# 6.0? - Setting default

Averages are not good enough (F#)

AddThis Social Bookmark Button
Let's (no pun intended) look at a set of response times of a web service.

People like having a single number to summarize a piece of data. The average is the most popular candidate. The average is calculated by dividing the sum of the input elements by the number of input elements.

The average is a measure of centre which is fragile to outliers; one or two odd irregular values might skew the outcome. The median on the other hand is always representative of the centre, not just when the data distribution
is symmetric. The median is determined by sorting the input elements and picking the one in the middle.

Both measures are terrible at showing how the data is distributed though. The average and median response time might look fair, but maybe there are a few outliers which are giving a few customers a bad time.

Instead of reducing our input down to a single number, it might be better to extract a table that displays the frequency of various outcomes in the input.

Now this is more useful; we can clearly see that the data is not distributed...(Read whole news on source site)

You don't know what you don't know

AddThis Social Bookmark Button
More or less since the start of my assignment at my current client, four years ago, we have had some form of a cross-team stand-up at 10:00 every day (often named Scrum-of-Scrums). But now that we have around 10 teams, we started to notice some issues lately. People joined too late or didn't even show up at all. And if they were there, some of them didn't share much or were clearly bored by the things people were sharing. Nothing is more painful than a few people standing in a circle, playing with their phones and picking their noses.
I found that pretty frustrating, especially since I really valued that stand-up. In my role as chief architect, I'm working mostly on technical projects and long-term architectural guidance. Only when teams have to complete architectural changes as part of bigger functional user stories, I get involved. So spending 10 minutes a day on hearing what people are doing is a great investment for me. The only other colleague who felt the same was our support and release manager with which I collaborate a lot, often on cross-team topics like these: Detecting dependencies between teams on both...(Read whole news on source site)