For those out there that are a little curious as to whether SAF is any use to your organisation, please read this FAQ.
What is SAF ?
SAF is free to use.
SAF is the "SharePoint Action Framework", it was built by myself and Hugo (plus a few others along the way).
SAF is written entirely in C# code available from : http://saf.codeplex.com.
SAF is a way to automate SharePoint configuration changes.
An Action is a command/class/task/script written in C# that performs a unit
of execution against SharePoint such as "CreateWeb" or "AddLookupColumn".
A SAF Macro is collection
of one or more Actions.
SAF Macro can be run from Msbuild, a Feature, StsAdm or common plain old .Net code.
Parameters can be passed to a Macro at run-time from a variety
of sources such as "Environment Variable", "*.config", "Msbuild Properties", Feature Properties, command line args, .net code.
SAF emits lots
of trace statements at run-time, these can be viewed using "DebugView".
One Action can pass parameters to another Action.
Parameters can be set using Expression Syntax such as "DateTime.Now".
You should consider SAF is you suffer from one
of the following symptoms...
"Our developers write lots
of code to deploy changes at release time - it's always rushed"
"I don't want my developers shelling out to Powershell or Stsadm from a Feature".
"We have loads
of Console applications now, I have lost track
of where they are, or what they do"
"We seem to be writing similar
scripts against SharePoint in lots
of ways, testing is hard".
"My
scripts often have lots
of errors - they are done at the last minute".
"When something goes wrong - I have no idea what went wrong or how to solve it".
"Our Features get stuck and bomb out half way through - there no way to roll them back".
"We have tons
of Features now - I can't keep track".
"We deploy Features to run one-off tasks"
"We have a library
of reusable
scripts, but, we can only run it in one way, sometimes we want to run it from MSbuild and a Feature".
"I want to automate the deployment
of changes to our development environment".
"I would like to run a housekeeping task on a scheduled basis"
So I like the sound
of SAF - what's the problems ?
Realistically, there are few things that need to be considered:
Someone on your team will need to spend a day or 2 understanding SAF and deciding exactly how you want to use it. I would suggest a Tech Lead, SysAdm or SP Architect will need to download it, try out the examples, look through the unit tests. Ask us questions. Although, SAF can be downloaded and set to go in a few minutes, you will still need to address issues such as - "Do you want to execute your Macros in MsBuild or from a Feature ?"
You will need to decide who is going to do your deployments - is it each developer to themself, or do you require a dedicated Build Manager ?
As most environments (Dev, QA, Live etc) require different settings (e.g. Urls, Database names, accounts etc), you will more than likely want to define these and set a properties file up for each environment. (These can then be injected into Saf at run-time).
There may be no Action to solve your particular problem. If this is the case, suggest it to us - we can try and write it, or write it yourself. It's very easy to write a new Action - we have an approach to easily unit test it, document it and author it. For example, I wrote one to deploy a WSP in 2 hours the other day. Alternatively, Saf can also call Stsadm commands and Powershell
scripts.
Anyway, I do hope this helps! If you still need help, or a quick start, we can also offer consultancy around SAF. If you want to know more give us a call or drop an email to
[email protected]