Simon Mourier's Samples Site
 .Net Projects

  SkedView
   BizTalk viewer

  Visual SourceSafe
   Web Explorer and
   Web Service

  ActiveX Scripting
   WebPart for
   SharePoint

  .Zip IHttpHandler

  Html Agility Pack
  Trace Server


 Links

  My Main WebLog
 
07/22/2004: Visual SourceSafe Web Explorer and Web Service


BINARIES DOWNLOAD AVAILABLE HERE!

My good friend Omid has already written one available here, but it has some limitations and especially in terms of performance. If you want to index your SourceSafe database using SharePoint Portal Server 2003 for example (or any other valid web crawler), it may not work very well.

Here are the basic features:

* based on ASP.Net IHttpHandler technology. Every file, project or version is accessible using a unique Url.
* get file or project information (including length and last write time)
* get file's history (versions)
* get file's content (as well as item's old versions content)
* a Web Service is also provided to get the same item or project information, history and content using SOAP

And here are the specific features:

* the web site running the handler can run as NT AUTHORITY\NETWORK_SERVICE (the default for W3WP.exe ASP.Net host process on Windows Server 2003), there is not need for a "real" account
* no write access to the VSS database needed
* no VSS account needed
* no working folder needed
* supports of client Browser's cache to minimize network usage

There is still no support for any write operations (checkout, checkin, ...) and nothing planned for this in the future. And there is not the cool .cs coloration feature either (Omid's one does it). Of course, the VSS client (6.0d please) needs to be installed on the IIS Server. The handler has been tested on Windows Server 2003 only.

If you use SharePoint Portal Server 2003 and you want to index your VSS database, you will need to tell the SPS search engine how to index .cs file (or .vb) for example. This is very simple. Just copy the registry key

HKEY_LOCAL_MACHINE\
 SOFTWARE\
  Microsoft\
   SPSSearch\
    ContentIndexCommon\
      Filters\
       Extension\
        .txt

to a new registry key:

HKEY_LOCAL_MACHINE\
 SOFTWARE\
  Microsoft\
   SPSSearch\
    ContentIndexCommon\
     Filters\
      Extension\
       .cs

(for .cs file). This way, .cs files will be indexed as plain text file, which is in general fine. If anyone is aware of a specific .cs IFilter that would skip C# keywords, please post a link here!

This is what a .reg file to register the .cs extension would contain:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\
SOFTWARE\Microsoft\SPSSearch\ContentIndexCommon\Filters\Extension\.cs]
@=hex(7):7b,00,41,00,33,00,37,00,33,00,45,00,35,00,44,00,39,00,2d,00,37,00,41,\
00,38,00,37,00,2d,00,31,00,31,00,44,00,33,00,2d,00,42,00,31,00,43,00,31,00,\
2d,00,30,00,30,00,43,00,30,00,34,00,46,00,36,00,38,00,31,00,35,00,35,00,43,\
00,7d,00,00,00,00,00,00,00


PS: Oh, by the way, make sure you stop by the Visual SourceSafe team blog here where you will find VSS PowerToys.