.NET news » Visual Studio Visual Studio Rss Feed

Less Loosely Coupled Than Meets The Eye

I don’t know that it is possible to write anything like a unitary software system in a way that is truly loosely coupled.   It’s not that you can’t make boxes and lines that are cleanly separated in all sorts of pretty ways, though that’s hard enough.  The problem is that even if you manage to do that, what you end up with is actually still pretty tightly coupled.

What do I mean?

Well, let me use Visual Studio as an example.  It’s made up of all kinds of extensions which communicate through formal interfaces.  Putting aside the warts and just looking at how it was intended to work it seems pretty good.  You can make and replace pieces independently, there is a story for how now features light up; it’s all pretty good.  Yes, it could be better but let’s for the moment idealize what is there.  But is it loosely coupled, really?

Well the answer is heck no.

These systems all share resources in fundamental ways that actually tie them together pretty tightly.  It starts with the address space, each extension can be victimized by the others, and it goes on.  In fact every important resource on the machine is subject to direct interference between nominally isolated extensions.  Is this avoidable?

I don’t think it is actually.  I think unitary software systems are fundamentally tightly coupled when you look at them through a performance lens.  And that is why I’m so often telling people that they need to look at their overall system and see if, when it’s all put together, it has any hope of working the way you want.  Two subsystems that both (loosely) use 2/3 of the L2 cache are going to use 4/3 of a cache… that’s not good.  There may be no lines between them in the architecture diagram but they are going to destroy each others ability to work.

So, does that about wrap it up for agile then?  Should we just waterfall our way to victory?

Hardly. 

Everything you’ve ever read about requirements changing and not over-designing systems that are loosely specified (much less loosely coupled) still applies, but just because you’re going agile and you want to keep your flexibility is no reason to not think about what it’s all going to look like when you put it all together.  Some kind of blend is needed.

If you do run into problems that loose architecture is going to help you.  But waiting until you’re done and counting on your agility to save you at the finish line isn’t so smart either.  Agile development doesn’t prohibit you from planning out the parts that need planning and understanding your key constraints.  In fact I think it encourages this – knowing your constraints keeps you honest and lets you make adjustments smartly as you go.

Performance is never loosely coupled.  Don’t be fooled by your diagram, the profiler doesn’t know where your little boxes and lines are.  Trust me :)

27 Sep 2010, 23:35:00   Source: Less Loosely Coupled Than Meets The Eye   Tags: Visual Studio

SQL Server and MapPoint: Making MapPoint 2010 and SQL Server Spatial Work Together

While SQL Server is a good repository for geospatial data, it doesn’t communicate with MapPoint as well as it could. So our geo-data experts show you how to read point and polygon objects from SQL Server and render them in MapPoint and how to write points and polygons back to SQL Server using Entity Framework 4.0 included with Visual Studio 2010.
30 Aug 2010, 19:00:00   Source: SQL Server and MapPoint: Making MapPoint 2010 and SQL...   Tags: Visual Studio

Data-Bound Design: Create a Silverlight 4 Web Part for SharePoint 2010

When building custom SharePoint 2010 solutions, it makes a lot of sense to take advantage of Silverlight 4 on the front end. We’ll walk you through the process of building a Silverlight Web Part with Visual Studio and Expression Blend.

Continuous Integration for Databases with Visual Studio

Provides a framework for predictably compiling, extracting, and deploying a database project.
24 Aug 2010, 10:13:00   Source: Continuous Integration for Databases with Visual Studio   Tags: Visual Studio

Add Some Spark to Your OData: Creating and Consuming Data Services with Visual Studio and Excel 2010

The Open Data Protocol (OData) is an open REST-ful protocol for exposing and consuming data on the web. Also known as Astoria, ADO.NET Data Services, now officially called WCF Data Services in the .NET Framework. There are also SDKs available for other platforms like JavaScript and PHP. Visit the OData site at www.odata.org.

Speed SQL: Tuning Your Database Calls with Tier Interaction Profiling

Tier interaction profiling (TIP) is a feature of the Visual Studio profiling tools that measures the duration of synchronous calls to ADO.NET-compliant data stores. We’ll show you how TIP works and provide some best practices for using TIP to diagnose performance problems in your apps.
29 Jul 2010, 19:00:00   Source: Speed SQL: Tuning Your Database Calls with Tier...   Tags: Visual Studio

A Document Outline window for C# files, in WPF

A Document Outline Visual Studio tool window for C# files, coded in WPF
28 Jul 2010, 10:39:00   Source: A Document Outline window for C# files, in WPF   Tags: Visual Studio

Entity Framework 4 Tips for WinForms Development

I've been recently working on a smart client (WinForms) application backed by Entitiy Framework 4 (EF4) on Visual Studio 2010. In this blog post I will try to give you some tips regarding some limitations and points to be careful about EF4.
30 Jun 2010, 06:50:00   Source: Entity Framework 4 Tips for WinForms Development   Tags: Visual Studio

Microsft Visual Studio 2005 Doxygen Add-In

This MSVS Add-in allows select multiple files contained in loaded solution and pass them to Doxygen. Also it gives availability to choose the name of the project and the destination folder. All other Doxygen options can be set using Doxywizard executed from the add-in. I tried to do it as simple as possible for future extension which will be done next time.
26 Jun 2010, 06:53:00   Source: Microsft Visual Studio 2005 Doxygen Add-In   Tags: Visual Studio Addins

Multi-Targeting Visual Basic Applications in Visual Studio 2010

Visual Studio 2010 lets you create applications that target versions of the Microsoft .NET Framework from 2.0 to 4, and each step in between. We take a look at how multi-targeting works in Visual Studio today, and explain how you should approach multi-targeting in your projects.
6 Jun 2010, 19:00:00   Source: Multi-Targeting Visual Basic Applications in Visual...   Tags: Visual Studio