CCF Developer Tools

CCF provides three development tools: the HAT Software Factory, the MCE Software Factory, and the DCS Software Factory. These tools are packaged as software factories to facilitate rapid development of customer care solutions. The factories are add-ins to the Visual Studio development environment.

CCF also provides test tools that allow you to debug your CCF solution before you deploy it in a production environment.

The HAT Software Factory is a set of Microsoft Visual Studio add-ins and guidance automation extensions that allow you to inspect existing user interfaces, such as Windows and Web applications, and create UI automations as workflows. It also enables automatic deployment of the toolkit artifacts.

The MCE Software Factory is a set of Visual Studio add-ins and guidance automation extensions that allow you to create logical views, UI process workflows, and physical representations of logical views for Windows Forms and ASP.NET code.

The DCS Software Factory is a set of Microsoft Visual Studio add-ins and guidance automation extensions that allow rapid development of workflow-enabled services. The DCS Software Factory supports the creation of WCF-based messages, conversational workflows, service stubs from workflows, and DCS service agents. It also helps to define service contracts and services as workflows.

CCF includes several test tools that allow you to determine how your hosted applications and workflows will function in a real-world environment. These tools include the TAPI emulator described previously, the HAT test harness tool, and tools for testing the security of CCF components.

The HAT test harness tool is installed automatically when you install the source code. The tool is available in the CCF Framework folder. The test harness is designed to operate on applications exactly as it operates on CCF code. The test harness includes sample Windows and Web applications that you can use to examine how controls should work. In addition, the tool logs actions and results, and then reports those results. For information about using the test harness, see The HAT Test Harness.

To test secure URLs, you should download the Internet Information Services (IIS) Resource Kit and use SelfSSL.

The CCF Quick Starts are sample solutions that demonstrate how the CCF features work. You can use the Quick Starts as a starting point for own solutions. For more information about CCF QuickStarts, see HAT Quick Starts.

CCF uses standards-based security protocols, telephony integration, and design patterns, as follows:

  • Security – CCF provides support for common authentication and authorization methods. In addition, it includes extensions to help ensure the security of data in different CCF deployment scenarios. CCF provides support for Secure Sockets Layer (SSL) and HTTPS security.
  • Design Patterns – Many CCF components and processes are built on well-known patterns.
  • Provider – The Provider pattern lets you use a software module (a provider) to create a uniform interface between a service and a data source. Providers deliver a layer of abstraction between logical entities.
  • Listener – The Listener pattern is a model for sending messages (called events) between objects. The pattern defines the communication flow between eventproducers, and event consumers (or listeners). An event producer is a class that generates events, and an event consumer is a class that listens for events. An event producer fires an event that is consumed by an event listener.
  • Model-View-Controller (MVC) – The MVC pattern adds an intermediary to separate the user interface logic from the business logic. It is used in applications that have complex UIs that might display or acquire the same data in different ways or different views and in applications that have strict rules about decoupling the UI and the business layers. The MVC pattern uses an intermediary to access appropriate business model elements that the views require.
  • Singleton – The Singleton pattern ensures that a class has only one instance, and provides a global point of access to that class. The Singleton pattern is useful when you need exactly one object to coordinate actions across the system. In some cases, the pattern is applied to systems that operate more efficiently when only one or a few objects exist.