Skip to content

kathleenwest/WCFMathServiceLibraryMultiThreadedCapableWithConsoleServiceHost-ClientTester

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WCFMathServiceLibraryMultiThreadedCapableWithConsoleServiceHost&ClientTester

WCF Math Service Library with Multi-Threaded Capabilities & Console Service Host and a Client “Tester” ChannelFactory Implementation

Project Blog Article here: https://portfolio.katiegirl.net/2019/03/25/wcf-math-service-library-with-multi-threaded-capabilities-console-service-host-and-a-client-tester-channelfactory-implementation/

About

This project presents a WCF Service Library (MathServiceLib) that consists of a math library that contains complex, long-running methods. This WCF Math Service and Client demonstrates multi-threaded access with various combinations of instance context modes and concurrency levels. The client accesses these methods using sequential and multi-threaded techniques to demonstrate the difference in performance. The service is hosted via a console application (MathServiceHost). The client (MathClient) uses the ChannelFactory pattern as opposed to “Add Service Reference” with SVCUTIL. The client and service share a common assembly (SharedLib) that contains the key contract and data model information. Furthermore, a Utilities project is used by the client console application to facilitate user data entry and the complicated details of building and managing the WCF ChannelFactory connection implementation. The ProxyGen class inside the Utilities project abstracts the details of implementing and managing a generic ChannelFactory connection to a generic service for a client. Note: The Utilities project library was included as base code for my lab project to facilitate speedy completion; we were not expected to code this Utilities project ourselves due to complexity and time constraints. The remaining projects in the solution (SharedLib, MathClient, MathServiceHost, and MathServiceLib), I completed individually per requirements for the lab project.

Architecture

The MathService Visual Studio solution application consists of five project assemblies:

• SharedLib (Class Library) “Service and Data Contracts” • MathServiceLib (WCF Service Library) “Implements the Service” • MathServiceHost (Console Application) “Hosts the Service” • MathClient (Console Application) “Client Tester to Service” • Utilities (Class Library) “Helper classes”