Managed NTFS Provider Sample
The ManagedNTFSProvider sample shows how you can use C# or Microsoft Visual Basic to implement a synchronization provider that synchronizes files in a file folder. For simplicity, this sample does not handle subfolders.
Security Note |
---|
This sample code is provided to illustrate a concept. Because the sample might not use the safest coding practices, the code should not be used in applications or Web sites. Microsoft assumes no liability for incidental or consequential damages if the sample code is used for purposes other than as intended. |
File Location
The files for this sample are located where Sync Framework is installed. The default location is C:\Program Files\Microsoft SDKs\Microsoft Sync Framework\v1.0\Samples\ManagedNTFSSample.
Contents
This sample contains a C# and a Visual Basic implementation. Both of these are fairly similar. Each contains the following projects in a Microsoft Visual Studio solution:
ManagedNTFSProvider Combines a synchronization provider implementation together with a simple synchronization application
ManagedSampleTest Runs these components to perform synchronization.
Files
C# Implementation
The ManagedNTFSProvider project contains the following files.
Source file | Description |
---|---|
MetadataStore.cs |
A helper class that the sample uses to store synchronization metadata in the file system. |
MyStore.cs |
The synchronization provider class. This implements KnowledgeSyncProvider, IChangeDataRetriever, and INotifyingChangeApplierTarget to participate in synchronization. |
MyTransferMechanism.cs |
A class that encapsulates a file stream. This file stream is passed from one provider to another so that it can be used to copy the actual file data during synchronization. |
MySyncController.cs |
A class that creates and hosts the synchronization session object. |
The ManagedSampleTest project contains the following file.
Source file | Description |
---|---|
Program.cs |
The entry point to the application. This parses the command line, instantiates the providers and the controller object, connects them all to each other, and starts synchronization. |
Visual Basic Implementation
The ManagedNTFSProvider project contains the following files.
Source file | Description |
---|---|
MetadataStore.vb |
A helper class that the sample uses to store synchronization metadata in the file system. |
MyStore.vb |
The synchronization provider class. This implements KnowledgeSyncProvider, IChangeDataRetriever, and INotifyingChangeApplierTarget to participate in synchronization. |
MyTransferMechanism.vb |
A class that encapsulates a file stream. This file stream is passed from one provider to another so that it can be used to copy the actual file data during synchronization. |
MySyncController.vb |
A class that creates and hosts the synchronization session object. |
The ManagedSampleTest project contains the following file.
Source file | Description |
---|---|
Program.vb |
The entry point to the application. This parses the command line, instantiates the providers and the controller object, connects them all to each other, and starts synchronization. |
Interfaces
This sample demonstrates the following Sync Framework classes and interfaces:
KnowledgeSyncProvider |
|
IChangeDataRetriever |
|
INotifyingChangeApplierTarget |
|
|
Requirements
To build and run this sample, the following software must be installed:
Microsoft Visual Studio 2005 or Visual Studio 2008
Microsoft .NET Framework 2.0 or .NET Framework 3.0
Building the Sample
To build the sample by using Visual Studio
Open the ManagedNTFSProvider.sln file.
On the Build menu, select BuildSolution.
Running the Sample
To run ManagedSampleTest.exe
In the root folder, create two folders: Folder1 and Folder2.
Add some content, such as text files, to the folders. Make sure that the contents of Folder1 are different from the contents of Folder2.
To run the sample at a command prompt, open a Command Prompt window and locate the folder that contains ManagedSampleTest.exe. At the command prompt, type: ManagedSampleTest.exe C:\Folder1 C:\Folder2.
To run the sample in Visual Studio, open the Property Pages for the ManagedSampleTest project. In the Debug Command line arguments field, type: C:\Folder1 C:\Folder2. On the Debug menu, click Start Debugging.
When the sample finishes, Folder1 and Folder2 contain the same set of files. The folders also contain files that contain synchronization metadata, such as Knowledge.Sync, Metadata.Sync, Replica.Sync, and TickCount.Sync.