Visual Studio Project Starter’s for CCAUII

Picking though the examples and documentation for UII to figure out how to setup your first ( or 10th ) hosted control, adapter, or CTI adapter is a bit of a pain.  Not to mention a bit time consuming… most of the time in the CCF Days, I would just grab another control I had written and use it as the ‘boiler plate’ for doing what ever I needed to do. 

As we put together training CCA\UII R1 for CRM I took the time to create a few project starters for things that I do a lot, such as Creating Hosted Controls, or Search controls and CTI adapters. Those of you that attend the CCA training events we held in the second quarter of 2010 will have seen one of them already as we use the Search Control template in module 3 of the training.  After kicking the tires on them ( so to speak ) with several POC’s and a few Customer engagements, I think they are in a state where other folks will find them useful. 

As such, I have posted the project installer for the UII Templates here  ,  This installer will work on Visual Studio 2008sp1 and Visual Studio 2010.

How to Use it:

There are 6 project templates in the vsi file, 
To Install them… just click the UII Hosted Controls_r1.vsi on a machine you have Visual Studio installed on.

That will open a window that looks like this :

image

Click Next and you will get a warning that looks like this:

image

That is because Iv not signed the package with a public Certificate.
Click Yes and Follow though the installer.

That will install and register the templates with Visual Studio.

You can verify that everything went fine by opening up VS and Clicking the “New Project”.  Under Visual C# you will see a new area called User Interface Integration for Microsoft Dynamics CRM (UII)

In it you will see 6 project templates.. in VS 2008 it looks like this:

 image

In VS 2010 it looks like this :

image

So What does each of these do?

The two simplest project starters are the UII Application Adapter and the UII Web Application Adapter Control templates.  These are used when your writing an adapter for either a web application or a low level adapter for a Win32 program.  Both adapters preset the UII interfaces and constructors.

Next is the Windows and WPF Hosted Control templates,  These are used when setting up a user control for UII. The templates lay out all of the plumbing and much of the “always used” bits in UII, such as Context, Action handlers and access UII Desktop Services layer. 

Next is the Customer Search Control templates,  also provided in WPF and Winform.  This lays out the framework to build a search provider that will work in UII\CCA.  There are a good deal of comments in the code to help you get though what you need to fill out to get things working.  There are several key functions in the template, however the most important method provided is the BuildCustomerResponse method, this is a method that sits on top of the CustomerSearchResult event and is the way that you start a Session in UII.

And finally is the CTI Starter Solution.
The CTI Starter Solution lays out a solution with all of the relevant bits you need to work with to set up a new CTI interface lib. It does not have the graphical bits, just the “behind the scenes” bits.
When you create a new CTI Starter Solution, Visual Studio will lay out the following solution:

image

If you are headed down the path of creating CTI adapters, I would highly encourage you to start from this Solution type. 

  • The BaseCitConnector project is the communication layer for talking to the downstream CTI solution. This control is setup to talk to the CTI solution via polling, however it can be adapted to whatever you need.
  • The BaseCitDesktopManager is the Interface layer that UII uses to manage events between UII and the BaseCTIConnector, it is also the control that instances the AgentState and CallState Manager Classes in the next assembly.
  • The BaseCtiStateManagers are the translators for CTI => CCA and places where you can add extended functionality beyond the core control set we offer.

The entire CTI solution template is heavily commented in the code to provide some guidance on where to do what.
In short development of a CTI interface works progresses as "BaseCTIConnector” –> BaseCitStateManagers –> BaseDesktopManager

Important Notes..

I have provided the templates in Visual C# only.  You will not find them in the VB.net area of Visual Studio 

All of the templates configured with “local” references to the UII framework directory, which means you will need to update the References Paths to point to the UII Install Directory \ Framework directory.

To Do that,

Right click on the project in the solution explore and choose “properties”:

image

then choose the “Reference Paths” from the project areas:

 image

Next, Click the … button next the folder box, and Navigate to your UII Install Directory.  If you used the default install that’s going to be C:\Program Files\Microsoft Uii\Framework

Once you have selected the folder, click “Add Folder” under the Folders box. 

That should fix all the reference problems and you should be good to go.

Hope you guys find this useful, and post comments on the codeplex site if you think other templates would be useful.