Download Composite Application Guidance for WPF and Silverlight

Download Composite Application Guidance for WPF and Silverlight

The Composite Application Guidance for WPF and Silverlight is designed to help you more easily build enterprise-level Windows Presentation Foundation (WPF) client applications. This guidance will help you design and build flexiblecompositeclient applications-composite applications use loosely coupled, independently evolvable pieces that work together in the overall application.
The Composite Application Guidance can help you develop your […]

Find a value in any table in a database

Find a value in any table in a database

I’ve many times needed to find a value within an entire database.

Here’s a stored procedure that accomplishes that.

CREATE PROCEDURE [Developer].[FindMatchingValueInAnyTable]
@Value VARCHAR(64)
TableName VARCHAR(64)
, ColumnName VARCHAR(64)
FROM syscolumns c
INNER JOIN sysobjects o
ON =
WHERE o.type = ‘U’
AND c.xtype IN (167, 175, 231, 239)
INTO @TableName
, @ColumnName
SET @sql = ‘IF EXISTS(SELECT NULL FROM [‘ + @TableName + ‘] ‘
SET @sql = @sql + ‘WHERE RTRIM(LTRIM([‘ + @ColumnName + ‘])) LIKE ”%’ + @value + ‘%”) ‘
SET @sql = @sql + ‘INSERT INTO #Results ( TableName, ColumnName ) VALUES (”’ + @TableName + ”’, ”’
SET @sql = @sql + @ColumnName + ”’)’
INTO @TableName
, @ColumnName
FROM #Results

Resolving WCF Fatal Execution Engine Error…

Resolving WCF Fatal Execution Engine Error…

I haven’t seen many “Fatal Execution Engine Error (79FFEE24)” sorts of messages lately – not since .NET 1.0/1.1 days.

But we were wrestling with an issue for multiple weeks in which a WCF service would
crash with exactly this error.  Since this service uses the DataContractSerializer, this
seemed quite relevant.  The workarounds suggested there were not going
to be a fit for us, unfortunately.

The really insidious part of this problem was that the initial failure mode
was causing a third party library (that our service invoked) to fail…complete with
a stack trace that pointed deep into the third party code.  However, when we removed the
call to this library, we got the “Fatal Execution Engine” exception while WCF was
attempting to serialize the service response.  (Really nasty, and it points to
some sort of stack corruption perhaps.)  You could see that WCF serialization
was at fault by analyzing a crash dump of the IIS worker process with WinDbg.

After talking with some folks at Microsoft support, they indicated that the DataContractSerializer
issue is fixed in .NET 4.0, but there is not a hotfix available for .NET 3.5sp1
at this time.

The workaround they proposed – and which has resolved our issue – was to place all
assemblies that contain types “T” used in contracts that have IEnumerable<T>
into the GAC.  (In other words, if your contract has IEnumerable<T> elements,
then all types T have to be strong-named & in the GAC.)

Why does this work?  The bug with DataContractSerializer apparently does not manifest
itself when assemblies are loaded as “domain neutral” (shared across all appdomains.) 
You can force strong-named/GAC’d assemblies to be loaded as “domain neutral” by using
the LoaderOptimization attribute. 
But if you’re hosting in IIS, you are automatically getting LoaderOptimization(LoaderOptimization.MultiDomainHost)
behavior for your application.  If you’re not hosting in IIS, this bug doesn’t
seem to appear at all.

This workaround is a hassle, of course – it ripples across the application in many ways…but
it does resolve the issue.

Windows 7 beta – late to the game impressions

Windows 7 beta – late to the game impressions

Ok, so I finally made up my mind, after getting feedback that apps like the Zune Software, Live Mesh, and VMWare Workstation seem to work under the Windows 7 beta, and went for an upgrade from my main Vista laptop.

Here are some notes on the process:

  • The upgrade itself took some time (4-6 hours), and apart from one of the pre-conditions being the uninstalallation of Windows Powershell, it went smoothly;
  • Windows Live Writer lost the preview themes, which I had to re-download/update;
  • The apps I had pinned to the start menu are gone, as well as the Quick Launch toolbar;
  • Apps that seem to be working fine: FeedDemon 2.7, Simp Pro, Colligo Contributor 3.2 Pro, Twhirl, Firefox 3, Word/Excel/PowerPoint, SnagIt, Zune Software, Mesh;
  • The Zune Software starts when I plug in the Zune in the USB, but it doesn’t sync. The Zune forums helped: just run the Zune app “as an Administrator”;
  • The upgrade process did a strange change to my files: it moved them from C:\Users\jota.CREATE to C:\Users\jota. As you can guess, this caused several problems, with Outlook 2007, Zune, Mesh, and others. Mesh especially was especially troublesome, because it started sync’ing files back to the original location, thus doubling the files. I had to manually move the folders, one by one, and this was not a good experience.
  • VMWare Workstation 6.5 worked fine, if ran as an administrator.

Overal, I must say this has been a great experience until now. Things work correctly, no major issues (I do have occasional intermittent wireless network losses, but I can’t pin it down yet to Win7), it doesn’t look like a beta. The only thing I don’t really like is the default display in Windows Explorer. I much prefered it to open in the My Documents folder, not the library list. I’m pleased, anyway.

Windows Azure and Windows Server – Licensing Model

Windows Azure and Windows Server – Licensing Model

Press and blog coverage over the last few weeks spurred several folks to ask questions about our licensing model for cloud technology – specifically Windows Azure.

I posted a blog last week which covered a variety of topics related to Azure (Microsoft’s Cloud Services Platform). It’s clear from the feedback that it addressed a variety of issues but spawned some additional questions.  These are really important topics and something I’d like to share broadly rather than answer in email. The most popular follow up question was “Are you going to license Windows Azure to 3rd parties for them to run on their own?” While the answer to the question in pure terms is no, the approach regarding innovation is the more interesting question to answer.  Why?  Many of the innovations we make in Windows Azure will become available through Windows Server and System Center.

First, a little background As I have indicated previously, Windows Azure is an extension to the Windows Server code base.  We are building a ton of new IP, which takes advantage of the Windows Server and System Center codebases, and provides a cloud compute fabric as well as an extensive set of management technologies that help us run the service.  This is an instantiation of our Software + Services vision as we evolve technology to meet the needs of customers across cloud and on premises.

Windows Azure innovations are being shared with the Windows Server code base. Down the road, many features that drive our cloud fabric in Windows Azure will land in our premises technology, including Windows Server and System Center.  You could imagine that at some point a “cloud” and an enterprise data center will share a lot of the same attributes in terms of the functionality it delivers and the way it runs. There will be places where Windows Azure features will make good sense for customers across multiple segments, and we want to make sure that functionality is offered to them as broadly as possible for their on-premises solutions.

We don’t envision something on our price list called “Windows Azure” that is sold for on-premises deployment.  Some implementation details aren’t going to be practical for customers, such as our global data-center hardware design and large scale multi-tenancy features which are integral to Windows Azure and the Azure Services Platform.  Why? We will continue to evolve Windows Server and System Center focusing significantly on technologies like virtualization, app and web server capabilities, single-pane management tools for managing on-premise and cloud in the same way, etc. which extend the enterprise data center in significant ways.  We’ll continue to license Windows Server and System Center (and therefore the shared innovation derived from Windows Azure) to hosters through our SPLA program.

Here are some scenarios which may further clarify:


Our approach

What you consume

You’re an enterprise who wants to get more capacity and flexibility from your datacenter.

We are working night and day to expand the virtualization and management capabilities in Windows Server and System Center to meet this need.

Windows Server 

System Center Virtual Machine Manager

You’re an ISV who wants to build an application in the cloud to get geo-scale without geo-cost.

We are working hard to make Windows Azure and the broader Azure Services Platform the most compelling option to host and scale this application.

Windows Azure – via consumptive business model (cloud hosting)

You’re a mid-size business and want to consolidate your server environment and outsource some pieces.

We offer Exchange Online and more for hosted email both directly as well as through partners. We continue to build on core app server and web server capabilities in Windows Server to help customers stretch their capacity.

Exchange Online Windows Server

Windows Server Hosting Partners who offer Windows Server as a service

You’re a small business with no IT experience and prefer not to manage a local server for your application that drives your business.

This customer would license an application experience (SaaS) through an ISV or CRM provider that runs on Windows Azure or Windows Server Hosting partners.


Windows Azure – via consumptive business model (cloud hosting).

Windows  Server Hosting Partners

You’re a hoster / IT Outsourcer and want to increase your hardware utilization through Virtualization.

Virtualization will continue to be a key area of focus for the next version of Windows Server.  Future versions of Windows Server (licensed directly and through SPLA) and System Center will reflect innovations from Windows Azure.

Windows Server

System Center


So, to net this out While Windows Azure isn’t something we will license for premises deployment, we will license many of the innovations via future versions of Windows Server and System Center.  As always, your comments, questions, thoughts, suggestions are much appreciated. 

Anyone know who is going to win the NCAA tournament?

MBV  – HOW TO use MBV as a periodic Monitoring tool alerting user of warnings

MBV – HOW TO use MBV as a periodic Monitoring tool alerting user of warnings

Hello everyone,


This is another “MBV – HOW TO” post, this time about a MBV usage as some sort of periodic Monitoring tool.



MBV can also be used indeed as a  periodic Monitoring tool alerting user of warnings but w/o need to look each time at the HTML Summary Report

Indeed, since version 10.00, MBV can generate Red and/or Yellow warnings in the Application EventLog in the following Format :



Event Type:       Error

Event Source:   MBV Engine

Event Category:               None

Event ID:             0

Date:                    23/03/2009

Time:                    09:41:50

User:                    N/A

Computer:         MJPIERAUC2K3B


Category : Other MsgBox Checks

Caption : Total active ‘Cache msg’ for MsgBox MSGBOX DB 1 (MASTER) “BizTalkMsgBoxDb” on FRDSIBTS-BTS2K6

Value : 6087 (they do NOT appear in HAT or BTS MMC and large number can impact MsgBox perfs) !!




kb 944426 – Orphaned cache instances may be built in the Instances table:

You experience performance issues with BizTalk Server 2006 and throttling messages are logged in the performance log file:




This feature can be specially interesting if MBV user  has already some  tool monitoring the EventLog application


You can enable this feature with or w/o generating a HTML report.



These are for example the few steps to raise ALL REDS warnings in the application EventLog and generate NO HTML Report and Output files in the MBV Folder:


          Select the global property “Log RED Warnings in the Journal” to “True”

          Select the global property “Generate HTML file” to “False”

          If you don’t want keep history of MBV report, Select the global property “Update History File” to “False”

          If you don’t want keeping Status of MBV report, Select the global property “Update status File” to “False”



Once these global properties configured, each next Collect process will also raise in  Application EventLog all Red warnings raised but will  NOT produce any HTML or text files. You can of course  select also the Yellow warnings if you want


All these changes will be kept in MBVSETTINGS.XML located in same folderv than MBV


Now, you can schedule  Console version of MBV (BTSDBCOLLECT.EXE) to run perdiocally and it will use this settings file if is also present in the folder of BTSDBCOLLECT.EXE.


Look at this post from Richard about scheduling Btsdbcollect.exe using Windows Task scheduler :





Let me know your comments/questions on this post





MIX Day 3: Oslo – "M" and the MSC

MIX Day 3: Oslo – "M" and the MSC

Last Friday we spent time talking about Oslo, which included a drill into “M” and demos.  Doug Purdy and Chris Sells presented their session ’Developing RESTful Services and Clients with “M”’.   During the session, Doug demonstrated two DSLs: a sample DSL for RESTful client development called “MUrl”, and a second DSL called “MService” which targets RESTful service development.  These DSLs are part of our broader efforts to highlight how Oslo can help increase productivity in web development.   


We also announced a community-driven process for getting input on the “M” specification called the “M” Specification Community, or MSC.  The MSC is an online discussion group that we will use to gather feedback on the M specification, before we finalize it under the terms of the Open Specification Promise (OSP), a commitment we disclosed at PDC.  The MSC will allow a diverse set of industry folks to participate in M’s development, which will in turn make M an even better and more approachable tool for developers. We are interested in working with the industry to generalize an approach to model-driven programming and develop consistent programming concepts to make this a mainstream application development activity. 


So, join the MSC, download the Oslo CTP, and check out the DSLs here, and please keep the feedback coming. Web developers – we think this content is especially relevant to you, and are excited to hear what you think.