Understanding the Concepts

MM .NET's family of Windows Communication Foundation classes allow you to access data remotely by means of WCF. Our flexible architecture allows you to access data locally (for example, on a LAN) and then switch dynamically at run time to accessing data remotely via WCF! Normally workstations attach directly to the company's LAN and access the data server directly:

This architecture works well with a small to medium number of workstations. However, when you need to scale up to hundreds of workstations the number of connections to the database can cause a degradation in performance. At this point, you can use the MM .NET WCF Data Access classes to distribute the data access portion of the business object to another physical server:

Here's the good news--based on MM .NET's practice of programming to an interface rather than an implementation, you don't have to change anything about your existing application to access data both locally and remotely! Here's why...

Normally, an MM .NET business object uses a data access class which creates a connection to the back end database for retrieving and updating data:

When using a WCF data access class, as shown in this diagram the business object instantiates the WCF Data access class which looks just like a regular MM .NET data access class:

Here's how messages flow:

  1. The business object makes a call to the WCF data access class

  2. The WCF data access class calls the WCF Data Service class using one of the WCF connection/protocol combinations.

  3. The WCF Service passes the call to the real data access class.

  4. The real data access class passes the result back to the WCF Data Service

  5. The WCF Data Service passes the result back

  6. The WCF Data Service class passes the result back to the business object.

Performance Benefits of this Architectural Model

This architectural model allows you to create a logical n-tier architecture that can be physically distributed to multiple machines such as workstations, application servers, web servers and data servers. Although you can distribute the entire business object to another machine we recommend this more performant architecture where you keep the business object on the local workstation and distribute the data access layer to another physical machine. This provides scalability without affecting performance, since a call to a business object method on a remote machine is a few thousand times slower than a call to a business object on a local machine. It is a better distribution of responsibilities because it leverages the processing power of the local workstation allowing business objects on the workstation to validate business rules and only send fully qualified requests to the application server.

You can automate the deployment of both user interface and business object assemblies to workstations by means of Microsoft's ClickOnce technology.


© (c) 2026 Oak Leaf Enterprises, Inc., 1996-2026 • Updated: 04/26/18
Comment or report problem with topic