KnowledgeOffice is licensed under the GNU Lesser GPL license.
KnowledgeTree is a web-enabled enterprise document management system developed by Jam Warehouse
(download here) that facilitates
(amongst other things):
KnowledgeTree is a well-designed PHP, Open Source product that provides extremely powerful functionality in terms of
knowledge management and dissemination within an organization. The response to KnowledgeTree has been overwhelmingly
positive and its uptake in Open Source orientated organizations has been hugely successful. Having used KnowledgeTree
a fair amount myself, I can say the product is extremely valuable. I have, however, experienced what I am sure is a common frustration with any web-enabled document
management system - it is extremely painful having to launch a web browser every time you wish to add, check in or
check out a document from KnowledgeTree.
- Version control
- Document workflow management
- Document specific discussion forums
- Document subscription and notification
- Full text searching
KnowledgeOffice's aim is to alleviate this frustration, thereby allow organizations to successfully maximize
their use of KnowledgeTree.
The stated goal is to relieve some of the headache associated with launching a new web browser for core interactions
(check in/out and document addition) with KnowledgeTree. Given that most of my own documents are generated using
Microsoft Office, KnowledgeOffice integrates directly into
Using KnowledgeOffice you can add new documents to, check documents out from and check documents into KnowledgeTree directly
from one of the above mentioned Office products. KnowledgeOffice will also keep track of document locations so that, once
a document has been checked out for the first time, you never have to browse to a folder in KnowledgeTree when checking it
in or out again.
For those of you wondering, KnowledgeOffice is written entirely in C#. KnowledgeOffice has three distinct parts:
- The client
- The server
- The core
The client portion of KnowledgeOffice is the part the integrates into Office. It's what most people will use. When installed,
the KnowledgeOffice client will appear as a new button labeled 'KnowledgeOffice' on the main Office toolbar. The button
is context sensitive and will provide the user with different functionality depending on the current context.
The server portion of KnowledgeOffice is that part that sits on the server the runs KnowledgeTree (yes, it's written in C# and
yes that means you *nix fundis out there will wail and gnash your teeth, but that's they way it is. If you REALLY want to use KnowledgeOffice you're going to have to get a Windows machine, run Apache on it and run KnowledgeTree and KnowledgeOffice from there). The server is the link between the KnowledgeOffice client and the KnowledgeTree database and document file system. It provides the client with functionality such as checking in/out, user authentication, document addition etc.
The core is a very small class library that contains components used by both the client and the server.
C# and .NET Remoting?
Some of you maybe wondering why I chose C# as my base language and why I used .NET Remoting for my server-side functionality, instead
of maybe a web service or maybe re-using the existing KnowledgeTree architecture? There are a couple of reasons and they're actually all pretty simple:
So now you know!
- I work for a Microsoft orientated company and have a fair bit of C# experience;
- I needed to evaluate remoting for an upcoming project;
- Using C# and .NET Remoting (as opposed to an entirely platform independent solution) cut down my development time quite significantly and;
- Much as I hate to admit it, I've become quite a C# fan