The Visitor design pattern

I’ve always been a huge advocate for design patterns in the past, but up until recently, I didn’t get a chance to actually implement the Visitor design pattern. This changed last week, when one of my colleagues asked me to implement a small tool that handles one of our standard XML files. The tool was … Read more

Book Review: Peopleware: Productive Projects and Teams

I’ve just finished reading Peopleware, by Tom DeMarco and Timothy Lister. The first few chapters (essays) were great. However, as I dwelled deeper in the book, I’ve encountered myself feeling less and less interested. Now, I understand that the book might be a bit outdated (being written more than 20 years ago at the time … Read more

SharePoint Lists: Grouping/Paging by first letter

A very interesting blog entry, Alphabetical Paging on a SharePoint List View, by Tom Clarkson, talks about grouping/paging items in a SharePoint list based on their first letter. If you are just looking for the formula needed to create a calculated column that contains the first letter of the item’s Title, here it is:

User friendly file size

Based on a utility method found in the Microsoft.SharePoint.Utilities.SPUtility class, here’s a method to get a user-friendly text for a file size:

MIME Types and File Extensions

Whenever working with content of files, it is often useful to have a way to find the MIME type based on a file extension, or the other way around – finding the file extension from a MIME type. Below are 2 useful methods for such requirements:

SharePoint Associated groups

When you create a new sub-site in SharePoint, and choose the Use Unique Permissions option, three groups are created at the site-collection level: Owners, Members Visitors. These groups are associated to the sub-site that you’ve just created. But what does associated actually mean? First, I misled you a bit – the names of the groups … Read more

SqlCE doesn’t support TRUNCATE TABLE

Not long ago, I modified a piece of code to use SqlCE as a data store. The older code was using OleDb to access an MS Access file. As part of the modifications, our team did a general overview of much of the data access code. We did many changes, more than I can even … Read more

Connecting to Documentum using .Net

I’ve spoke in an earlier post about working with Documentum in .Net. In this post, I’ll show you how to connect to a DocBase, and get the list of cabinets. The following code will connect to a DocBase. It assumes that you have a Username, Password and DocBase variables declared that contain valid information: Now, … Read more

Retrieving extended permissions in Documentum with .Net

Following version 5 of the Documentum Content Server, security entities can have extended permissions on items. Those extended permissions include: Execute Procedure, Change Location, Change State, Change Permission and Change Ownership. In order to retrieve those permissions by code, it is required to manually check for those permissions. Assuming that you have the object ID … Read more

Retrieving a list of available Documentum DocBases

While adding support for EMC Documentum to the Tzunami Deployer, our SharePoint migration tool, I needed to allow the user to enter the name of a DocBase to connect to. I wanted an interface that is a bit more than just a TextBox where the user can enter the DocBase name. I ended up using … Read more

Updating GUI from different threads – Part 2

As part of my work at Tzunami Inc., I’m working on migrating our product Deployer – a SharePoint migration tool – from .Net 1.1 to .Net 2.0 and Visual Studio 2005. One of the first things we’ve encountered was the managed debugging assistants (MDA). I’ll talk about the MDAs in a later entry, but for … Read more

Populating a TreeView with Outlook folders

In this post I will demonstrate how to populate a TreeView with the different Outlook folders. We’ll be using the Outlook Object Model (OOM) to retrieve the folder and some basic information about them. The code itself is well documented, so I’ll not explain it.