Workflow Development Tools Comparison

The following table offers a detailed comparison between the capabilities offered by the Visual Studio 2005 Designer for Windows Workflow Foundation and Office SharePoint Designer 2007, and the workflows you can create with each.

Visual Studio 2005 Designer for Windows Workflow Foundation Office SharePoint Designer 2007
Can write workflows for Windows SharePoint Services 3.0 Can write workflows for Windows SharePoint Services 3.0
Code-behind file enables developer to write custom Microsoft Visual C# or Microsoft Visual Basic code to express business logic No code behind; workflow rules file declaratively encapsulates business logic instead
Generates workflow markup file Generates workflow markup file
Workflow is authored as a template, which can be associated with multiple sites and lists Workflow is authored against and data-bound to specific list at design time
Workflow markup file, or markup and code-behind files, compiled into workflow assembly Workflow markup, workflow rules, and supporting file are stored, uncompiled, in a specific document library on the site
Workflow template must be associated with each list on which it is to be available. Association happens when the workflow is authored against the specific list; no later association is necessary or possible
Workflow template can be associated with a site content type. Cannot author workflows against content types.
Can use any forms technology. For example, Microsoft ASP.NET 2.0 forms for Windows SharePoint Services 3.0 workflows. Automatically generates Microsoft ASP.NET 2.0 forms, which you can then customize.
Can include workflow modifications Workflow modifications are not available
Can author custom activities for inclusion in workflows Must use activities provided
Package workflow assembly and workflow definition as a SharePoint Feature, and deploy to the site Automatically handles deployment to specific list
Can use Initiation form to gather information from the user when they start the workflow Can use Initiation form to gather information from the user when they start the workflow
Can use custom forms for users to interact with tasks in Windows SharePoint Services 3.0 Can use custom forms for users to interact with SharePoint tasks
Visual Studio debugging available No step-by-step debugging available
Can author both sequential and state workflows Can author only sequential workflows

REFRESHING ASSEMBLY BEING LOADED BY IIS

Requirement: Drop an updated assembly in the GAC and ensure that IIS (Sharepoint) picks up the new assembly. I have been looking to do it programmitically and interestingly there are a number of alternatives:

1. Launch IISReset.exe /RESTART : This may not give sufficient control and error-handling functioanlity. I think it might be an overkill to do IISReset to achieve an assembly refresh – since IISReset seems to be doing a lot more under the wraps.

2. Use the Service Control Manager APIs to restart the W3SVC in IIS:  a more optimal solution as we need to just restart the W3SVC and not have to restart the whole of IIS which could potentially have other services (SMTP etc.). Please check the APIs out here.

3. Recycle the Application Pool which consumes the assembly: This is the most optimal solution because it hits the nail on the head – and does the least amount it is supposed to do ie. it only restarts the worker process which is consuming the assembly that needs to be refreshed. API to recycle app pools are here.

SharePoint Development Tools (Handy)

My colleague has shared with me an extensive list of SharePoint development tools which are pretty handy for a SharePoint pro. and they are:

  1. App Pool Manager (http://www.harbar.net/apm/apm2.zip)
  2. U2U CAML Query Builder (http://www.u2u.info/SharePoint/U2U%20Community%20Tools/U2U%20Caml%20Query%20Builder%202007%20v3.1.0.0%20(windows%20version).zip)
  3. .NET Reflector (http://reflector.red-gate.com/download.aspx)
  4. SharePoint Explorer for WSS 3.0 ( )
  5. SharePoint Log Reader (http://www.blogaboutsharepoint.com/wp-content/plugins/download-monitor/download.php?id=1)
  6. BDC Meta Man Tool (http://www.lightningtools.com/pages/service/customerdownloads.aspx)
  7. SharePoint Inspector 1.0.0.0 (http://spi.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=1652#DownloadId=5854)
  8. SharePoint Explorer for WSS 3.0 (http://download.mondosoft.com/Ontolica/SharePointExplorer_V1_5_1_For_WSS3.zip)
  9. SharePoint Dispose Checker Tool (http://download.microsoft.com/download/B/4/D/B4D279A0-E159-40BF-A5E8-F49ABDBE95C7/SPDisposeCheck.msi)
  10. Windows SharePoint Services 3.0 SDK (http://www.microsoft.com/downloads/details.aspx?familyid=05E0DD12-8394-402B-8936-A07FE8AFAFFD&displaylang=en)
  11. Microsoft Office SharePoint Server 2007 SDK (http://www.microsoft.com/downloads/details.aspx?familyid=6D94E307-67D9-41AC-B2D6-0074D6286FA9&displaylang=en)
  12. Microsoft InfoPath 2007
  13. Microsoft SharePoint Designer 2007
  14. Microsoft Office 2007
  15. WSP Builder for SharePoint (http://www.codeplex.com/wspbuilder)
  16. Windows SharePoint Services 3.0 Tools: Visual Studio 2005 Extensions (http://www.microsoft.com/downloads/details.aspx?FamilyID=3e1dcccd-1cca-433a-bb4d-97b96bf7ab63&DisplayLang=en)
  17. Windows SharePoint Services 3.0 Tools: Visual Studio 2008 Extensions (http://www.microsoft.com/downloads/details.aspx?familyid=7BF65B28-06E2-4E87-9BAD-086E32185E68&displaylang=en)
  18. SharePoint Administration Toolkit v2.0
    x64: http://www.microsoft.com/downloads/details.aspx?FamilyId=F8EEA8F0-FA30-4C10-ABC9-217EEACEC9CE&displaylang=en
    x86: http://www.microsoft.com/downloads/details.aspx?FamilyId=263CD480-F6EB-4FA3-9F2E-2D47618505F2&displaylang=en
  19. SmartPart (http://www.codeplex.com/smartpart)
  20. SharePoint Installer (http://www.codeplex.com/sharepointinstaller)
  21. SOAP calls to the SharePoint web services (http://www.soapui.org/)
  22. Microsoft Network Monitor 3.2 (http://www.microsoft.com/downloads/details.aspx?FamilyID=f4db40af-1e08-4a21-a26b-ec2f4dc4190d&DisplayLang=en#filelist ) Thanks to Patel for providing me this link.
  23. SharePoint Work Acceleration Toolkit 2007 aka (SWAT) (http://www.idevfactory.com/products/swat/)
  24. MetaVis Architect for SharePoint (www.metavistech.com/architect)
  25. SharePoint 2007 Test Data Population Tool (http://www.codeplex.com/sptdatapop) Capacity planning and performance testing tool that populates data for testing SharePoint deployments
  26. Imtech Test Content Generator v1.3.0.0
    (http://blog.mastykarz.nl/imtech-test-content-generator-v1300-free-sharepoint-2007-tool/)
    Creating a given number of publishing pages with the desired page layout and content
  27. SharePoint Tips Utility Pack
    (http://www.codeplex.com/spstipsUtilityPack)
    Collection of tools including recursively delete sites, create and modify lists in multiple sites at once, and push a web part to multiple sites at once.
  28. SharePoint Cross-site Configurator
    (http://www.codeplex.com/SPConfigurator)
    Automates the process of deploying MOSS site settings in all or selected sites in a server farm. Includes applying master pages, web titles, audit controls and expiration policies.
  29. SharePoint Content Deployment Wizard
    (http://www.codeplex.com/SPDeploymentWizard)
    Allows a granular selection of content to be exported from site collections, webs, lists, folders, and list items to a .cmp file (Content Migration Package) which can be copied to other servers for import.
  30. Sushi Tool for SharePoint
    (http://www.codeplex.com/sushi)
    Performs common administrative tasks. Can backup sites, copy views between sites, bulk create sites, apply themes just to name a few functions
  31. SharePoint Developer Bookmarklets
    (http://blog.mastykarz.nl/go/bookmarklets)
    Great set of bookmarks to make navigating a SharePoint Web Site easier.
  32. LINQ to SharePoint
    (http://www.codeplex.com/LINQtoSharePoint)
    Provides a custom query provider for LINQ that allows the querying of SharePoint lists using LINQ syntax
  33. SharePoint config store
    (http://www.codeplex.com/SPConfigStore)
    Provides the framework for using a SharePoint list for application configuration values
  34. SharePoint Dispose Checker Tool
    (http://code.msdn.microsoft.com/SPDisposeCheck)
    Helps to check that unmanaged SharePoint objects are correctly disposed of in code
  35. PowerShell Extensions for SharePoint
    (http://www.codeplex.com/SPPSExtensions)
    Provides functionality for working with the SPWeb object.
  36. SharePoint Automation
    (http://stsadm.blogspot.com)
    Extensions that assist in the use of working with the SharePoint object model from Powershell.
  37. The SharePoint PowerShell Module (SPoshMod)
    (http://www.codeplex.com/SPoshMod)
    Framework for SharePoint PowerShell scripts.
  38. AC’s WCM Custom Commands for STSADM.EXE
    (http://www.andrewconnell.com/blog/articles/MossStsadmWcmCommands.aspx)
    STSADM extensions for publishing sites and generating content type and column features.
  39. Imtech OCD Export
    (http://blog.mastykarz.nl/export-publishing-pages-features-imtech-ocd-export-page/)
    Simplifies the process of provisioning Publishing Pages by extracting existing pages to XML. The files generated allow you to wrap your Publishing Pages in a Feature.
  40. SharePoint Automation
    (http://stsadm.blogspot.com)
    List of almost 100 STSADM extensions that cover a variety of development and administrative tasks.
  41. stsadmWin 2007
    (http://blogs.msdn.com/ronalus/archive/2007/01/04/stsadmwin-has-an-2007-version.aspx)
    Provides a Windows UI version of the STSADM tool
  42. SharePoint 2007 Features
    (http://www.codeplex.com/features)
    Large collection of SharePoint features designed for developers and administrators. Provides assistance for debugging, logs, field and content type development, publishing sites, event receivers, and many more.
  43. SmartTools for SharePoint
    (http://www.codeplex.com/smarttools)
    Collection of SharePoint features such as What’s New, Autocomplete Text Field, Enhanced Site Actions, and more
  44. Yet Another CAML Query Tool
    (http://www.ideseg.com/SharePointYetAnotherCAMLQueryTool2.aspx)
    Converts SQL-like queries into CAML.
  45. Imtech ListInstance Generator
    (http://blog.mastykarz.nl/generating-list-instances-xml-imtech-listinstance-generator/)
    Generates the ListInstance based on the List Template from a particular Feature
  46. CAML.NET
    (http://www.codeplex.com/camldotnet)
    Set of .NET language-based tools for creating dynamic, reusable CAML query components. Build CAML queries dynamically in code while preserving the syntactic structure of the native CAML language.
  47. SharePoint Manager
    (http://www.codeplex.com/spm)
    SharePoint object model explorer for inspecting your SharePoint environment. Can browse every site on the local farm and view every web, list, event receiver, etc… Enables the changing of properties
  48. RedGate Reflector
    (http://www.red-gate.com/products/reflector/)
    Allows exploration of any .NET assembly, including those provided by SharePoint. Shows where and how methods and objects are used. Find feature for fields, properties, and methods.
  49. Search Community Toolkit
    (http://www.codeplex.com/sct)
    A number of tools and code samples that have been contributed to enhance the Microsoft search experience (Microsoft Office SharePoint Server 2007 (MOSS) Search, Search Server 2008 and Search Server 2008 Express).
  50. SharePoint Search Service Tool
    (http://www.codeplex.com/SharePointSearchServ)
    Web service client that can explore the scopes and managed properties of a given SharePoint Search SSP, build queries in either Keyword or SQL Syntax, submit queries, and examine the raw web service results.
  51. zevenseas SharePoint SearchCoder
    (http://www.codeplex.com/MOSSSearchCoder)
    Allows graphical building of queries and examination and testing of the SQL generated by the object model.
  52. SharePoint Query Web Service Test Tool
    (http://www.wsssearch.com/querywebservice.html)
    Test tool for WSS V3’s Query web service. Allows you to generate the request XML and send it to the web service.
  53. STORM
    (http://storm.codeplex.com/)
    Tests any web service (including SharePoint)
  54. Fiddler
    (http://www.fiddlertool.com/fiddler/)
    Examines the network traffic of pages as they load. Check the size of pages. Recommended for deploying public facing websites.
  55. Firebug for Firefox
    (http://getfirebug.com/)
    Net console provides network statistics.
  56. YSlow for Firebug for Firefox
    (http://developer.yahoo.com/yslow/)
    Analyses page performance and provides network statistics
  57. SharePoint Development Environment Modifications (SPDevMod)
    (http://www.codeplex.com/SPDevMod)
    Collection of STSADM extensions and plugins for Visual Studio
  58. CodeRush/Refactor Tools for SharePoint Developers
    (http://andrewconnell.com/blog/articles/ProductivityToolsForSharePointDevelopers.aspx)
    Extensions to CodeRush/Refactor to assist SharePoint development.
  59. Imtech Fields Explorer Visual Studio 2008 plugin
    (http://blog.mastykarz.nl/imtech-fields-explorer-visual-studio-2008-plugin/)
    Quickly find the field names needed for CAML queries and controls
  60. Microsoft – BDC Definition Editor
    (http://blogs.msdn.com/sharepoint/archive/2007/08/22/announcing-the-microsoft-business-data-catalog-definition-editor-for-microsoft-office-sharepoint-server-2007.aspx)
  61. ARF is a FREE development framework for SharePoint
    (http://www.spworks.co.uk/downloads/latest.aspx)
  62. CSS Friendly Adapters
    (http://www.sharepointblogs.com/mossman/archive/2007/03/08/css-friendly-control-adapters-in-sharepoint-2007-a-walk-through.aspx)
  63. Mobile Entrée(TM) is the first ever SharePoint mobile application framework (http://www.mobileentree.com/default.aspx)

Why there are two SharePoint Search Services?

When you are trying to start search services on the farm using central administration, you will notice two Search services. Namely, Office SharePoint Server Search and Windows SharePoint Services Help Search.

You need to turn on both of them for a complete server configuration.

Why do we have two SharePoint Search services?

Office SharePoint Server 2007 provides two search services:

1) Office SharePoint Server Search and

2) Windows SharePoint Services Help Search.

Each of these services can be used to crawl, index, and query content, and each service uses a separate index.

The Office SharePoint Server Search service is based on the search service that is provided with earlier versions of SharePoint Products & Technologies, but with many improvements. You should use the Office SharePoint Server Search service to crawl and index all content that you want to be searchable (other than the Help system).

The Windows SharePoint Services Help Search service is the same service provided by Windows SharePoint Services 3.0, although in Windows SharePoint Services 3.0 it is called the Windows SharePoint Services Search service. Windows SharePoint Services 3.0 uses this service to index site content, index Help content, and serve queries.

As its name implies, in Office SharePoint Server 2007 the purpose of the Windows SharePoint Services Help Search service is to enable searching of the Help system that is built into Office SharePoint Server 2007.

Because the Windows SharePoint Services Help Search service uses an index that is separate from the other search service, users’ queries in the Search box for the Help system return hits for only Help content. If you do not want users to be able to search the Help system, you do not need to start this service.

Simple words: WSS search is for Help system and Office SharePoint Services Search is for the searching and indexing system.