The previous post on IFilter development for Windows and SharePoint, I included several links to resources we used to code a custom IFilter; the hope being they would be useful to anyone looking to write their own, seeing as how difficult it was to find accurate information on the subject.
Alex Culp did an outstanding job with the IFilter, so much so that Microsoft asked him to write a MSDN article on the subject of writing a custom IFilter. The custom file type wasn't the issue, it was all the complexities of C++ and IFilter development combined with registry entries, properties, 32bit/64bit details and so forth, like how the 64-bit version of Visual Studio creates a 32-bit installer by default which then didn't install the correct version of the .Net dlls. Another bit-ness nugget is to pay attention to which Regedit you run when setting registry entries; 64-bit entries are not visible to the 32-bit executable.
Thursday, December 29, 2011
Monday, October 03, 2011
Mysteries of IFilter Development Revealed
Alex Culp and I worked on a IFilter for a customer file type. His page on writing an ifilter is down while he works on publishing an article on writing ifilters for Microsoft. [Update: His MSDN article on IFilter development has been published, see my post, http://codewright.blogspot.com/2011/12/sharepoint-2010-custom-ifilter.html] In the meantime, I figured I'd share my list of IFilter development links. Considering all the other technology out there and the age of the ifilter interface, I was surprised how difficult it was to find useful information.
A good start is this MSDN page: http://msdn.microsoft.com/en-us/library/ms916793.aspx. It's somewhat old but does cover lots of the details involved. We had the hardest time finding out how to create a custom property or property set for the ifilter to use when it found metadata. We ended up using an existing category, Basic, and creating property ID's above the range of existing properties, i.e. we started at 200 since the existing Basic properties didn't get above 100.
Here's info on debugging IFilters in MOSS. We did have trouble getting all the registry entries needed to properly register the IFilter with the server. Keep a log of the entries, there are quite a few and in confusingly similiar places, especially since GUIDs are involved.
Here is another page on ifilter development. Keep reading through the comments, lots more details are discussed there.
IFilter explorer. Shows information about the installed ifilters.
Good article series from Anne Stenberg on crawled properties and how to find the one you want to map. This is useful in understanding more about a crawled property, like when you want to make your own.
This post mentions a dev guide to writing your own SP2007 protocol handler. Might be a good resource.
Bookmark this on Delicious
A good start is this MSDN page: http://msdn.microsoft.com/en-us/library/ms916793.aspx. It's somewhat old but does cover lots of the details involved. We had the hardest time finding out how to create a custom property or property set for the ifilter to use when it found metadata. We ended up using an existing category, Basic, and creating property ID's above the range of existing properties, i.e. we started at 200 since the existing Basic properties didn't get above 100.
Here's info on debugging IFilters in MOSS. We did have trouble getting all the registry entries needed to properly register the IFilter with the server. Keep a log of the entries, there are quite a few and in confusingly similiar places, especially since GUIDs are involved.
Here is another page on ifilter development. Keep reading through the comments, lots more details are discussed there.
IFilter explorer. Shows information about the installed ifilters.
Good article series from Anne Stenberg on crawled properties and how to find the one you want to map. This is useful in understanding more about a crawled property, like when you want to make your own.
This post mentions a dev guide to writing your own SP2007 protocol handler. Might be a good resource.
Tuesday, January 11, 2011
Computer Science is an Art
Of the many eternal debates that spiral around software development blogs the one that seems the most intransigent is whether the practice of programming is an art or a science.
Chefs have a similar discussion over cooking and baking. Cooking is an art while baking is a science. Why? Because when you put something in the oven, you had better get it right the first time. Mistakes mean starting over. Cooking, on the other hand, allows the chef the leeway to make changes as the dish progresses. The chef can take action to keep the dish from heading off course. For example, when making gravy you keep adding flour until it is the right consistency and if you add too much flour you can add some milk to thin it down. It is incremental by nature.
Subscribe to:
Posts (Atom)