This topic describes how to create a connected data source extension for an extensible management agent using C# and Visual Studio 2008.To create a password extension project, copy the Microsoft.MetadirectoryServices.dll assembly to your development system and manually create a reference to the assembly.

You can find the assembly in the bin\assemblies folder of the Forefront Identity Manager Synchronization Service (FIM Synchronization Service) program folder. The default folder for FIM Synchronization Service is %ProgramFiles%\Microsoft Forefront Identity Manager\2010\Synchronization Service\bin\assemblies\.

To create a connected data source extension, follow these steps:

  1. Create a new C# class library project.

  2. Add a reference to the Microsoft.MetadirectoryServices assembly.

  3. Implement the interfaces.

  4. Build the class library.

  5. Install the connected data source extension in the extensions folder (optional).

To create a new C# class library project using Visual Studio 2008

  1. Click Start, point to All Programs, and then click Microsoft Visual Studio 2008.

    The Visual Studio 2008 development environment appears.

  2. On the File menu, point to New, and then click Project.

  3. In the New Project dialog box, in Project Types, click Visual C#

  4. On the Templates menu, click Class Library.

  5. In the Name box, type the name of the rules extension that you are creating, and then click Browse.

  6. Browse to the location where you want to store the project files, click Open, and then click OK. The name of the new project now appears in Solution Explorer.

To add a reference to the Microsoft.MetadirectoryServices assembly

  1. On the Project menu in Visual Studio 2008, click Add Reference.

  2. On the .NET tab of the Add Reference dialog box, select Microsoft.MetadirectoryServices, and then click OK. If the file does not appear in the Component Name list, click the Browse tab. Browse to the folder that contains the assembly file, select Microsoft.MetadirectoryServices, and then click Open.

  3. Click OK to close the Add Reference dialog box.

    In Solution Explorer, Microsoft.MetadirectoryServices now appears as one of the references.

For the import interface, implement the IMAExtensibleFileImport interface. For the export interface for a call-based data source, implement the IMAExtensibleCallExport interface. For the export interface for a file-based data source, import the IMAExtensibleFileExport interface.

To implement the interfaces

  1. Add using Microsoft.MetadirectoryServices; to the declarations section above the namespace in the source code.

  2. Change Class1 to the name of your class by adding : IMAExtensibleFile Import,. For example, if the class name is SampleMAFileExport, the class declaration would be public class SampleMAFileExport: IMAExtensibleFileImport,.

  3. Add the name of the other interface that you have to implement. For example, if you are creating a file-based connected data source extension, you must implement the IMAExtensibleFileExport interface. The class declaration would be public class SampleMAFileExport: IMAExtensibleFileImport, IMAExtensibleFileExport.

  4. Add the following code to implement the IMAExtensibleFileImport interface.

    C#  Copy Code
    public void GenerateImportFile( 
    	string					filename, 
    	string					connectTo, 
    	string					user, 
    	string					password, 
    	ConfigParameterCollection   configParameters,
    	bool						fullImport, 
    	TypeDescriptionCollection   types,
    	ref string				customData 
    	)
    
    {
    
    }
    
  5. Add the following code to implement the IMAExtensibleFileExport interface to export data to a call-based data source:

    C#  Copy Code
    public void DeliverExportFile(
      string fileName,
      string connectTo,
      string user,
      string password,
      ConfigParameterCollection configParameters
    )
    
    {
    
    }
    

    If you are implementing the IMAExtensibleCallExport interface to export data to a call-based data source, change the code as appropriate.

To build the class library

  1. In Visual Studio, on the Build menu, click Build Solution.

    If you see the following message, the extension was successfully built:

      Copy Code
    ------ Build started: Project: Connected Data Source Extension, Configuration: Debug .NET ------
    
    Preparing resources...
    Updating references...
    Performing main compilation...
    Building satellite assemblies...
    
    
    
    ---------------------- Done ----------------------
    
    	Build: 1 succeeded, 0 failed, 0 skipped
    

    The connected data source extension file, which has a .dll extension, is in the bin\Debug folder of the project folder.

    Before you use the extension, install it in the FIM Synchronization Service rules extensions folder. The default folder for extensions is %ProgramFiles%\Microsoft Forefront Identity Manager\2010\Synchronization Service\Extensions.

The following procedure is optional. You can set Visual Studio 2008 to install the connected data source extension automatically in the extensions folder as part of the build process.

To install the connected data source extension in the extensions folder

  1. In Solution Explorer, select your class library project.

  2. On the View menu, click Property Pages

    There are two folders in the Property Pages dialog box: Common Properties and Configuration Properties.

  3. Open the Configuration Properties folder. In the Configuration drop-down list, click All Configurations.

  4. In the left pane of the Property Pages dialog box, click Build.

  5. In Output Path, type the name of the rules extensions folder, or browse to the location of the rules extensions folder. The default folder for rules extensions is %ProgramFiles%\Microsoft Forefront Identity Manager\2010\Synchronization Service\Extensions.

  6. Click OK to close the Property Pages dialog box.

See Also