CodeplexHeader.jpg

Welcome to SPSF SharePoint SoftwareFactory

The SPSF Core Recipes for SharePoint SoftwareFactory is brought to you by the team of SharePoint Consultants of Steria Mummert Consulting AG www.steria-mummert.com in Germany. We are specialized in establishing SharePoint development processes in companies, starting with SharePoint requirements engineering, architecture, development, SharePoint code analysis, SharePoint testing and deployment processes. We call the whole process SPALM (SharePoint Application Lifecycle Management) http://spalm.codeplex.com
Our intention is to provide our tools and concepts to the SharePoint community to make it easier to develop custom applications in SharePoint.

Announcement: Next release of SPSF SharePoint Software Factory (version 3.0) will be available right after release of VS 2010 (expected 12.04.2010). You can find a preview of our current work here http://www.matthiaseinig.de/?p=139. Version 3.0 will support development for SharePoint 2007 and 2010 from within VS 2010 and VS 2008.

SPSF is based on open technology by Microsoft

SPSF Core Recipes for SharePoint SoftwareFactory is based on the free Microsoft Guidance Automation Extensions (GAX) http://msdn.microsoft.com/en-us/teamsystem/aa718948.aspx. This toolkit is used to create software factories and several software factories are already provided by Microsoft, e.g. SFSF Smart Client Software Factory, WSSF Web Service Software Factory etc.

SPSF is NOT "yet another SharePoint framework"

We want to make sure that SPSF is not a SharePoint framework which needs to be installed in SharePoint or has dependencies to custom assemblies for SharePoint applications.
  • SPSF helps to generate SharePoint code like an experienced developer would write. The generated code is based on our projects or taken from MSDN.
  • There is no dependency to SPSF. Projects created with SPSF can be opended and compiled on any other plain computer with Visual Studio 2008.

SPSF Highlights

  • F5 Deployment with automatic Debugging
  • Import of existing WSP into Visual Studio
  • Import of Content Types, Site Columns, List Templates from SharePoint into Visual Studio
  • Automatic manifest.xml creation (and you can read the manifest.xml in your project)
  • Automatic creating of .resx files (optionally)
  • Wizards for SiteColumns, ContentTypes, ListDefinitions, ListInstances, Custom Actions etc.
  • Wizards for WebServices, Application Pages, Delegate Controls etc.
  • Wizards for Publishing Site Definition
  • Automatic creation of a deployment package (with wizards)
  • Integrates into existing WSPBuilder projects
  • and a lot more...

Contents

  1. How to use SharePoint Software Factory
  2. How to use the SharePoint recipes
  3. How are WSP files created?
  4. How do I deploy and debug SPSF applications on my local computer
  5. How do I deploy my application to other SharePoint environments?
  6. Integration with WSPBuilder
  7. Get Help
  8. Your support !!!
  9. Available Recipes

How to use SharePoint Software Factory

To unleash the power of the sharepoint software factory, the sharepoint application project has to fulfill some requirements like solution/project structure and existing configuration files. As mentioned creating such a project with SPSF does NOT leave you stuck with it forever. At any time you wish to continue development without SPSF, you can uninstall it and your projects will still be compilable and deployable.

To create a project in Visual Studio, open the "New Project" Wizard and choose an application template from the Guidance Packages Group.

ProjectDialog.gif

The following wizard gathers information about the application and the deployment, creates the solution structure compatible with SPSF and activates the SharePoint recipies. BTW SPSF supports F5 compiling, deployment and debugging (resp. automatic attachment to the correct worker process).

ProjectWizard.gif

Back to contents

How to use the SharePoint recipes

Most SharePoint recipes like "Create new Content Type" are displayed in context menus depending on the current selection. For instance the recipe "Create new Content Type" is only displayed on projects which will create a .wsp solution.

RunRecipes.gif

Alternatively you can use the "New Item" dialog to run the SharePoint recipes.

NewItem.gif

After selection of a recipe often a wizard is displayed where you can enter the arguments of the SharePoint artefact.

wizardsample.jpg

Based on the entered arguments the SharePoint code and all files are generated in Visual Studio 2008 (e.g. see in screen below all files and the code for a typical content type).

GeneratedCode.jpg

Back to contents

How are WSP files created?

We are not using a third party tool like WSPBuilder or STSDEV to generate WSP files. We create WSP files with makecab.exe (as recommended by Microsoft).
The necessary files "manifest.xml" and "makecab.ddf" are generated automatically with the Microsoft TextTemplating technique (aka T4 templates). Both files are contained in every project.
Alternatively these files could also be edited by the developer themselves (sometimes this is required).

wspgeneration.gif

Back to contents

How do I deploy and debug SPSF applications on my local computer?

SPSF applications can be compiled by hitting F5 as any other project. Furthermore SPSF will deploy your solution to the bin-Folder or GAC of the webapplication you have configured upon creation of the project. The configuration can be changed by using one of the core recipies. The deployment process will retract the solution before deployment if requested, recycle the IIS application pool and will attach to the correct worker process for instant debugging.
As the whole process of compiling, deploying, recycling and attaching is a bit time consuming it might not be suitable for every little change. The quick deploy recipie will help you to use it only when neccesary.

Back to contents

How do I deploy my application to other SharePoint environments (e.g. DEV, TEST, INTEGRATION, PRODUCTION)?

Compiling a SPSF application automatically creates a deployment package in the VS project with all SharePoint artefacts. This package includes e.g. all .wsp solutions and deployment files based on MSBuild. With MSBuild you have full control over the deployment process which often includes several steps (like deployment of solutions, activation of features, iisreset, creation of sites etc.).

ProjectOutput.gif

The deployment package includes batch files to start the deployment of the developed SharePoint application. The deployment process (written in MSBuild) often contains parameters like web application URLs. These parameters can be included in MSBuild-files or they can be collected from the user during the deployment. SPSF provides several forms (like a setup wizard) to collect for instance the web application URLs for the deployment of the wsp solutions files.

Deployment.gif

Back to contents

Integration with WSPBuilder

Since release 2.4.3 you can use SPSF in your existing WSPBuilder projects.
To enable SPSF open your WSPBuilder project and click menu "Tools -> Guidance Manager".

GuidanceManager.gif

In dialog "Enable and Disable Packages" check "SPSF Core Recipes for SharePoint Software Factory" and click OK. With this dialog you can also disable SPSF in all your projects.

EnablePackage.gif

After enabling SPSF you can use the recipes in your project

WSPBuilderWithSPSF.gif

Back to contents

Get Help

SPSF SharePoint SoftwareFactory provides an extensive help which is also integrated into the Visual Studio help.
More information can also be found on our blog: www.spalmblogger.de
Further information
For more information on guidance automation, please see the following resources:
See below integration of SPSF into the help system of Visual Studio (includes Search).

VSHelp.gif

Back to contents

Your support !!!

We will expand and improve SPSF over time. Our primary focus is to support SharePoint 2010 and, as soon as MS releases new versions of GAX and GAT, also VS2010. If you want to support this project, you can either extend the SPSF with your own Guidance Package (just download the source code to see how it works) or provide us with ideas, code and feedback for new recipes which we can include.
If you already have a project at codeplex with code snippets, webpart templates, code for sharepoint artefacts etc. please drop us a note if you want us to include it in SPSF.

Back to contents

Available Recipes

Features
Empty Feature This recipe creates an empty farm, web application, site or web feature.
List and DocLib
Content Type Adds a content type to the current selected feature
List Definition Adds a list definition based on a local installed list definition
Content Type Binding Adds a binding between a content type and a list
Module Adds a module to the current selected feature to provision files
List Instance Adds a list instance definition to a feature.
Site Column Adds a site column to the current selected feature
Field Types
Simple Field Type Adds a field type to the project
Field Type with a complex value Adds a custom field type to store complex objects
Field Type with multiple columns Sample to store a address with multiple columns.
Field Type Choice Sample to store an employee status
Field Type Sample ISBN10 (Sample) Sample from MSDN for a custom field type to store a ISBN10 number including validation rule
Field Type Social Security Number (Sample) Sample from Ted Pattison for a custom field type to store social security number
Field Type for Flash Movie (Sample) Sample for a custom field type to render a flash movie
Field Type for Ratings (Sample) Sample for a custom field type to show a rating with graphics
Custom Actions
Custom Action for Content Type Adds a custom action to content type menu (ECB)
Custom Action for File Extension Adds a custom action for a specific extension (e.g. .docx)
Custom Action for ProgID (Document Type) Adds a custom action to a document type e.g. "InfoPath.Document"
Custom Action for List Adds a custom action to existing menus in a list view (Settings, Actions etc.)
Custom Action for List Toolbar Adds a custom action to a toolbar in a list (View, Edit, Display etc.)
Custom Action for Site Adds a custom action to a site
Custom Action for SiteActions menu Adds a custom action to the SiteActions menu
Custom Action Group Adds a custom action to a site
Hide Custom Action Hides an action of an item
Event Receivers
Item Event Handler Adds a event handler to react of event like ItemAdded, ItemUpdating etc.
List Event Handler Adds a event handler to handle events like FieldAdded, FieldUpdating etc.
Web Event Handler Adds a event handler to webs
Email Event Handler Adds a event handler to handle events like EmailReceived
Webs and Sites
Team Site Definition Adds a custom team site definition
Blank Site Definition Adds a custom blank site definition
Feature Stapling Adds a FeatureSitetemplateAssocation to the selected feature
Theme Adds a theme to the project
Theme Activation Adds code to activate a theme with a web feature
Publishing
Publishing Site Definition Adds a standard publishing site definition along with the required features.
Master Page Adds a master page current selected project.
Page Layout Adds a page layout to the current selected project.
Import
Import List Instance Import list instance
Import .wsp solution from local farm Imports an existing WSP solution from the local SharePoint farm into the project
Import Site Column Import a site column from the local SharePoint into the current selected feature
Import List Template Import list template
Import Content Imports content from SharePoint into the project
Import Content Type Imports an existing content type from a given SharePoint site
Import .wsp solution Imports an existing WSP solution file into the project
Application Pages
Application Page Add a layouts page to the project inherited from LayoutsPageBase
Administration Page Add an administration page to the project inherited from LayoutsPageBase
Unrestricted Layouts Page Add a unsecured layouts page to the project inherited from LayoutsPageBase
ASP.NET
Create WSDL and DISCO Creates the wsdl and disco file
Webservice Adds a ASP.NET web service
Administration Web Service Adds a ASP.NET web service for administration
Delegate Control (.ASCX) Adds a delegate template with a asxc control
Delegate Control (.CS) Adds a delegate template with a webcontrol (.cs)
Http Handler Adds a http handler to the project and a feature to deploy the web.config modifications for the http handler
Http Module Adds a http module to the project and a feature to deploy the web.config modifications for the http handler
WebParts
SharePoint Web Part Adds a web part to the project derived from Microsoft.SharePoint.WebPartPages.WebPart
ASP Web Part Adds a web part to the project derived from System.Web.UI.WebControls.WebParts.WebPart
Ajax Web Part Adds a Ajax web part to the project
Visual Web Part Adds a smart part to the project
Simple Filter Consumer Web Part Adds a filter web part to the project
Filter Provider Web Part Sample filter provider web part to provide multiple values (MSDN sample)
Filter Consumer Web Part Sample filter consumer web part to consumer multiple values (MSDN sample)
Workflows
Sequential Workflow (ASPX Forms) Adds a sequential workflow with optional ASPX forms to the project
Advanced
Minimal CAS Adds a minimal Code Access Security policy
Deployment
Deploy Solution(s) Deploys the selected wsp solution(s) to the local SharePoint farm.
Redeploy Solution(s) Redeploys the selected wsp solution(s) to the local SharePoint farm (complete undeploy before a deploy).
Undeploy Solution(s) Undeploys the selected wsp solution from the local SharePoint farm (retract and delete solution).
Upgrade Solution(s) Upgrades the selected wsp solution in the local SharePoint farm.
Quick Deploy
Copy Assembly Copies the assembly of the selected project to GAC.
Copy Both Copies the assembly of the selected project to GAC and all files in folder "12".
Copy to SharePoint Hive Copies all files in project folder "12" or "14" to the SharePoint hive on the local machine.
Debugging
Attach to Worker Process Starts the debugging of the selected project and attaches the debugger to the selected w3wp worker process (IIS).
Recycle App Pool Recycles the selected application pool in IIS.
IIS Reset Performs an iisreset on the local maschine.
Attach to owstimer.exe Starts the debugging of the selected project and attaches the debugger to the ows timer process (OWSTIMER.EXE).
Restart owstimer.exe Restarts the owstimer service.
STSADM
stsadm activatefeature Activates the selected feature in the selected site or web.
stsadm deactivatefeature Deactivates the selected feature in the selected site or web.
stsadm uninstallfeature Uninstalls the selected feature.
stsadm copyappbincontent Runs stsadm -o copyappbincontent.
stsadm execadmsvcjobs Runs stsadm -o execadmsvcjobs to run all pending deployment jobs.
Open stsadm Prompt Opens a prompt to enter stsadm commands manually.
CodeAnalysis
Run SPCop Checks to SharePoint project for violations of best practices and recommendations
Run SPDisposeChecker Runs SPDisposeChecker for selected project.
Helpers
Check Broken Fields Checks a site collection for fields which are not properly installed.
Delete Failed Deployment Jobs Deletes failed deployment jobs in the local SharePoint farm.
Get AssemblyName Displayes the full assembly name of the current selected project.
Get SharePoint Version Displays the installed SharePoint version on the local machine
Open CA Solutions Displays the web page "Solution Management" in SharePoint Central Administration.
Open Debugging Webapp Opens the debugging webapplication of the project in the browser.


Back to contents
Last edited Mar 29 at 8:00 PM by matein78, version 60

 

Want to leave feedback?
Please use Discussions or Reviews instead.

Updating...
© 2006-2010 Microsoft | Get Help | Privacy Statement | Terms of Use | Code of Conduct | Advertise With Us | Version 2010.8.10.17093