October 2006 Entries
Connected Framework Rules Team Blog
posted @ Sunday, October 22, 2006 4:29 PM | Feedback (79)
Generics CommandHandler

Udi Dahan demonstrates how to leverage Generics for Command Handling, NICE.

public class CommandHandler<T> where T : IEntity
   public CommandHandler()
      NewCommand.Activated += delegate(object sender, EntityEventArgs e)   
         if (e.EntityType == typeof(T)) 
            IView v = this.builder.Build<IEntityView<T>>(); 

and then you'd just instantiate a command handler for each entity type like so:

new CommandHandler<Customer>();
new CommandHandler<Order>();

posted @ Saturday, October 14, 2006 7:04 PM | Feedback (222)
BRMS and Commercial Lending


Yet another insightful post by James Taylor.
Highlights from post -
  • Spending as little as possible on the approval (Cost)
  • Deciding in a very small window - while someone is sitting talking in the dealership (Speed)
  • But you cannot afford to lose track of your risk (Precision)
  • And yet the competitive marketplace changes all the time (Agility)
  • And customers are using the web to research all your offers before they go so you better not contradict yourself (Consistency)
posted @ Saturday, October 14, 2006 6:59 PM | Feedback (144)
Microsoft Research - Spec#


The Spec# programming system is a new attempt at a more cost effective way to develop and maintain high-quality software.  Spec# is pronounced "Spec sharp" and can be written (and searched for) as the "specsharp" or "Spec# programming system".  The Spec# system consists of:

  • The Spec# programming language.  Spec# is an extension of the object-oriented language C#.  It extends the type system to include non-null types and checked exceptions.  It provides method contracts in the form of pre- and postconditions as well as object invariants.
  • The Spec# compiler.  Integrated into the Microsoft Visual Studio development environment for the .NET platform, the compiler statically enforces non-null types, emits run-time checks for method contracts and invariants, and records the contracts as metadata for consumption by downstream tools.
  • The Spec# static program verifier.  This component (codenamed Boogie) generates logical verification conditions from a Spec# program.  Internally, it uses an automatic theorem prover that analyzes the verification conditions to prove the correctness of the program or find errors in it.

A unique feature of the Spec# programming system is its guarantee of maintaining invariants in object-oriented programs in the presence of callbacks, threads, and inter-object relationships.

posted @ Saturday, October 14, 2006 6:58 PM | Feedback (60)
Visual Studio Tools for Office 2005 Resource List

Here is a list of Visual Studio Tools for Office resources.

posted @ Saturday, October 14, 2006 6:15 PM | Feedback (101)
Web Services Enhancements (WSE) 3.0 for Microsoft .NET Redistributable Runtime MSI

Web Services Enhancements (WSE) 3.0 for Microsoft .NET Redistributable Runtime MSI

Web Services Enhancements (WSE) 3.0 for Microsoft® .NET Redistributable Package allows ISV's to bundle WSE 3.0 with their applications.

posted @ Saturday, October 14, 2006 6:14 PM | Feedback (51)

The custom SchemaImporterExtension allows fine control over code generation when an XML schema is imported using WSDL.EXE or XSD.EXE.

Devolutions XWSDL: This program is used to create Web Services proxies without the business object generation. It's useful when you want to share business object from the server into the client. The server must be created in .Net.  It's an extension to the original wsdl.exe from Microsoft.

It's now easy to create a Business library shared between the two sides. It's use the Schema Importer Extensions and it's simplify the depoyment of this extension. Without this tools, the extension must be deployed in the GAC and the machine.config must be changed. Or you can install it in the Visual Studio 2005 private assemblies directory and modifiy the devenv.exe.config.

SchemaImporterExtension Technology Sample:

MarkItUp: General Links

MarkItUp: How to debug SchemaImporterExtension:

Krik Allen Eveans:

John Bristowe:

Dale Preston:

Jelle Druyts:

Service Station - Aaron Skonnard:

posted @ Saturday, October 14, 2006 6:09 PM | Feedback (476)
Schema First Development

If you work for a medium or large company chances are your environment is heterogeneous. If so, you need to make sure your web-services are platform agnostic.  The link below describes a design/development style as well as a few tools used for developing agnostic web-services and messages.

posted @ Saturday, October 14, 2006 6:08 PM | Feedback (124)
Does SOA mean the end of OO?

Udi Dahan - responds with a thoughtful and insightful answer.

posted @ Saturday, October 14, 2006 6:07 PM | Feedback (48)
.Net custom WSDL

I love the .Net FX and VS.Net.  However, there are times I think VS.Net tries to out smart you.  Sometimes this is great if you put your blinders on and just need to get something done.  Other times, not so great.

I'm interested in creating my own WSDL's and/or how to manipulate the VS.Net code generator.  I found the MSDN articles below for future reference.

Splitting up WSDL: The Importance of targetNamespace:

Inside WSDL with .NET Attribution:

posted @ Saturday, October 14, 2006 5:54 PM | Feedback (205)
Save btye array to disk - example code

public class SaveByteArrayActivity
   public void SaveToDisk(string FullFilePath, byte[] data)
      //Create a file to hold the output.
      using (FileStream fileStream = new FileStream(FullFilePath, FileMode.Create, FileAccess.Write))
         using (BinaryWriter binaryWriter = new BinaryWriter(fileStream))

posted @ Wednesday, October 11, 2006 3:03 AM | Feedback (82)
JaxDUG Architecture SIG First Meeting - October 17th - WCF and Connected Systems - Jeff Barnes

JaxDUG Architecture SIG First Meeting - October 17th - WCF and Connected Systems - Jeff Barnes


Ok, so here is my one good architecture joke.  How many Architects does it take to architect "hello world"?  One and the world revolves around them!  LOL.

I've had a lot of people tell me how interested they are in an Architecture SIG.  Hopefully we'll have a great turn-out for the first meeting. 

posted @ Tuesday, October 10, 2006 2:26 AM | Feedback (227)
Feature pack for Microsoft SQL Server 2005

Some of the more interesting add-ins are:

Microsoft ADOMD.NET

    ADOMD.NET is a Microsoft .NET Framework object model that enables software developers to create client-side applications that browse metadata and query data stored in Microsoft SQL Server 2005 Analysis Services. ADOMD.NET is a Microsoft ADO.NET provider with enhancements for online analytical processing (OLAP) and data mining.

Microsoft Core XML Services (MSXML) 6.0

    Microsoft Core XML Services (MSXML) 6.0 is the latest version of the native XML processing stack. MSXML 6.0 provides standards-conformant implementations of XML 1.0, XML Schema (XSD) 1.0, XPath 1.0, and XSLT 1.0. In addition, it offers 64-bit support, increased security for working with untrusted XML data, and improved reliability over previous versions of MSXML.

Microsoft OLEDB Provider for DB2

    The Microsoft OLE DB Provider for DB2 is a COM component for integrating vital data stored in IBM DB2 databases with new solutions based on Microsoft SQL Server 2005 Enterprise Edition and Developer Edition. SQL Server developers and administrators can use the provider with SQL Server Integration Services, SQL Server Analysis Services, Replication, and Distributed Query Processor. Run the self-extracting download package to create an installation folder. The single setup program will install the provider and tools on both x86 and x64 computers. Read the installation guide and Readme for more information.

Microsoft SQL Server Management Pack for MOM 2005

    The Microsoft SQL Server Management Pack enables you to monitor SQL Server 2005 and SQL Server 2000 in an enterprise environment. Included are enterprise-level capabilities to monitor resource availability and configuration, collect performance data, and test default thresholds. Local and remote connectivity checks help ensure database availability.
    With the embedded expertise in the SQL Server Management Pack, you can identify issues and manage issues before they become critical. This Management Pack increases the security, availability, and performance of your SQL Server infrastructure.
    The Microsoft SQL Server Management Pack Guide that is included describes the content of the management pack and how to deploy it.

Microsoft SQL Server 2000 PivotTable Services

    PivotTable Services 8.0 is the OLE DB provider for SQL Server 2000 Analysis Services and is used to connect with an Analysis Services 2000 server. PivotTable Services does not work with SQL Server 2005 Analysis Services. Therefore, client applications that need connect to Analysis Services in both SQL Server 2000 and SQL Sever 2005 will need to install both PivotTable Services 8.0 and Analysis Services 9.0 OLE DB Provider in a side-by-side configuration.

Microsoft SQL Server 2000 DTS Designer Components

    The Microsoft SQL Server 2000 Data Transformation Services (DTS) package designer is a design tool used by developers and administrators of SQL Server 2005 servers to edit and maintain existing DTS packages until they can be upgraded or recreated in the SQL Server 2005 Integration Services package format. After installing this download, SQL Server 2005 users can continue to edit and maintain existing DTS packages from the Object Explorer in SQL Server 2005 Management Studio and from the Execute DTS 2000 Package Task Editor in Business Intelligence Development Studio, without needing to reinstall the SQL Server 2000 tools. The DTS package designer in this download was formerly accessed from the Data Transformation Services node in SQL Server 2000 Enterprise Manager.

Microsoft SQL Server Native Client

    Microsoft SQL Server Native Client (SQL Native Client) is a single dynamic-link library (DLL) containing both the SQL OLE DB provider and SQL ODBC driver. It contains run-time support for applications using native-code APIs (ODBC, OLE DB and ADO) to connect to Microsoft SQL Server 7.0, 2000 or 2005. SQL Native Client should be used to create new applications or enhance existing applications that need to take advantage of new SQL Server 2005 features. This redistributable installer for SQL Native Client installs the client components needed during run time to take advantage of new SQL Server 2005 features, and optionally installs the header files needed to develop an application that uses the SQL Native Client API.

Microsoft SQL Server 2005 Backward Compatibility Components

    The SQL Server Backward Compatibility package includes the latest versions of Data Transformation Services 2000 runtime (DTS), SQL Distributed Management Objects (SQL-DMO), Decision Support Objects (DSO), and SQL Virtual Device Interface (SQLVDI). These versions have been updated for compatibility with SQL Server 2005 and include all fixes shipped through SQL Server 2000 SP4.

Microsoft SQL Server 2005 Datamining Viewer Controls

    The Data Mining Web Controls Library is a set of Microsoft Windows Forms controls that enable software developers to display data mining models created using Microsoft SQL Server 2005 Analysis Services in their client-side applications. The controls in this library display the patterns that are contained in Analysis Services mining models.

Microsoft SQL Server 2005 JDBC Driver

    In its continued commitment to interoperability, Microsoft has released and supports a new Java Database Connectivity (JDBC) driver for SQL Server 2005. The SQL Server 2005 JDBC Driver download is available to all SQL Server users at no additional charge and provides access to SQL Server 2000 and SQL Server 2005 from any Java application, application server, or Java-enabled applet. This is a Type 4 JDBC driver that provides database connectivity through the standard JDBC application programming interfaces (APIs) available in J2EE (Java2 Enterprise Edition).

Microsoft SQL Server 2005 Management Objects Collection

    The Management Objects Collection package includes several key elements of the SQL Server 2005 management API, including Analysis Management Objects (AMO), Replication Management Objects (RMO), and SQL Server Management Objects (SMO). Developers and DBAs can use these components to programmatically manage SQL Server 2005.

Microsoft SQL Server 2005 Notification Services Client Components

    The SQL Server 2005 Notification Services Client Components package provides client APIs that enable subscription management and event submission within custom applications that include SQL Server 2005 Notification Services functionality. The subscription management APIs allow developers to create subscriptions and subscribers, and manage subscriber devices. The event submission APIs allow users to specify events using the event APIs or stored procedures.

Microsoft SQL Server 2005 Upgrade Advisor

    Upgrade Advisor analyzes instances of SQL Server 7.0 and SQL Server 2000 in preparation for upgrading to SQL Server 2005. Upgrade Advisor identifies deprecated features and configuration changes that might affect your upgrade, and it provides links to documentation that describes each identified issue and how to resolve it.

Microsoft Exception Message Box

    The exception message box is a programmatic interface that you can use in your applications for any tasks for which MessageBox may be used. The exception message box is a supported managed assembly designed to elegantly handle managed code exceptions. It provides significantly more control over the messaging experience and gives your users the options to save error message content for later reference and to get help on messages.

Mining Managed Plug-in Algorithm API for SQL Server 2005

    The Managed Plug-in API is a Microsoft .NET object model that enables software developers to create plug-in data mining algorithms for SQL Server 2005 by using CLI-compliant languages, such as Visual C# 2.0. The object model is available as source code and it needs to be built on the developer’s computer. The package includes a step-by-step tutorial, a compiled HTML help file (.chm), as well as a sample plug-in algorithm developed in C#.
posted @ Thursday, October 5, 2006 2:26 AM | Feedback (76)
A simple but practical explanation of SOA
"That really got me thinking: So maybe SOA is just away of IT, Operations and Business being able to describe services needed to deliver success for the business! or just an elephant!"
So simple my 9 year old and wife get it.  I've spent hours, weeks, months of effort trying to explain and define SOA using PowerPoint decks and debating with colleagues.  All this time it was just an elephant! 
posted @ Thursday, October 5, 2006 2:23 AM | Feedback (400)
Good Threading paper from MS Research
posted @ Thursday, October 5, 2006 1:57 AM | Feedback (74)
Open Source Service Buses
posted @ Tuesday, October 3, 2006 1:57 AM | Feedback (99)
Taking the lead
I'm known for saying "I'd rather be the manipulator than the manipulated".  A similar statement is the quote from Nick Malik below.
If you fail to take the lead, others will take it away from you.
Nick's statement sounds a bit more politically correct.
posted @ Tuesday, October 3, 2006 1:54 AM | Feedback (226)