Menu

Home

mentis
Attachments
repository.jpg (52202 bytes)
services.bmp (842778 bytes)

Documentis .Net Cmis Repository

(Documentis .Net Content Managment Ineroperability Services)

The goal of this project is to provide a library and toolbox in Asp.Net, that allows develops to produce and consume CMIS, as defined in the Oasis cmis specification 1.0.

-Business classes and related enums for all CMIS entities: Repository, Document, Folder, Policy, Relationship, Property. Currently services for Relationship and Policy are not implemented.
-Protocol handlers for REST/ATOM and SOAP. Currently only SOAP is implemented.
-Abstract base classes for producers that can be inherited and extended to implement your own CMIS producer.
-.NET based CMIS Explorer to explore and test your CMIS producers.

  • additonal services for adding and editing custom object types and custom properties – not defined in Oasis cmis specification 1.0

There is still a lot of work to do and we are looking for volunteers on this project. If you are interested in contributing please let us know!

Overview

Documentis .Net Cmis Repozitory provides a class library for implementing CMIS services to a .NET-based CMS, in order to allow to expose the repository as a CMIS service. It also provides means for consuming an existing repository service.

Limitations

Supports only CMIS v 1.0
Supports only the Web Services Binding, i.e. there is no support for the Restful AtomPub Binding.

Starting the Service

The service is started by running the application. This being a WCF application it requires a host, such as a IIS or the Visual Studio Development Server. You may change the server settings in the Web tab of the project properties. By default the Visual Studio Development Server will be used.

Repository Entity Model

foobar

Service Model

The service model contains 9 sets of services, defined by the CMIS specification and 1 service not defined in CMIS specification.

foobar

SSL configuration

-generate SSL certificate on server (Example)
makecert -n "CN=ServerRootCert" -r -sv ServerCA.pvk ServerCA.cer
makecert -sk wcfssl –iv ServerCA.pvk -n "CN=servername" -ic ServerCA.cer -sr localmachine -ss my -sky exchange –pe
*CN must be server domain name

-registering SSL certificate for application
netsh http add sslcert ipport=0.0.0.0:port certhash=cc915cc4b38d6c8665446dcad4f88803beb7ac52 appid={274af1ea-952d-4b5b-814c-b341a8dec7f1} clientcertnegotiation=enable
*certhash must be hash of generated certificare, which CN=servername

cmisInit

Project cmisInit is windows forms application and contains forms for writing property definitions and type definitions to database, and for creating repository. Property and type definitons you can read from xml or create yours, and then write them to database or xml. Before you create repository, it is necessary to have specified property and type definitions writen in database.

  • cmisPropertyDefinitionType.xml:
    Contains predefined property definitions for Document object and Folder object, from CMIS specification 1.0.
  • cmisTypeDefinitionType.xml:
    Contains Document and Folder type definition with associated property definitions, from CMIS specification 1.0.

DocumentisCmisExplorer

DocumentisCmisExplorer is web application and provides functionalities to work with repository.
On repository tab you can view folder tree, with single click on folder his properties appears on the right side. To view folder content, only double click on it. With right click on folder appears menu with functionalities for creating sub folder, document or deleting folder. To move folder to another parent, yust simply drag it.
On Add CostumType tab you can create your own type definition, derived from cmis:document or cmis:folder and assign desired property definitions.
On Add PropertyDefinition tab you can create your costum property definitions.

cmisInit and DocumentisCmisExplorer use DotCMIS client to communicate with cmis server. You can get DotCMIS client here: https://svn.apache.org/repos/asf/chemistry/dotcmis/trunk/

cmisClientCostum

cmisClientCostum is designed to communicate with CostumService on Documentis .Net Cmis Repository. It is used by cmisInit and cmisTestClient.