Tuesday, 15 September 2009
Perth SharePoint User Group - September Presentation
The PowerPoint for the presentation can be downloaded here.
It was a blast! thanks to everyone who attended and the questions about SPDocGen, Database Management, Creating Explicit Managed Paths, Database Autogrowth settings and SharePoint Object Model Disposal.
Thursday, 3 September 2009
SPDocGen - SharePoint Documentation Generator - Full Source Code Uploaded
I've also uploaded the full source code for the solution, so feel free to modify it as you need.
SPDocGen - SharePoint Documentation Generator
Here's some ideas I have for further improving and building on the solution:
1. Implement command line parameters to let users specify what is output.
2. Create a winforms UI to allow users to specify what is output, and specify the XML, XSLT and DOC filenames.
3. Document even more Farm level information...
4. SPDocGen currently produces Farm Level documentation, the next step is to produce detailed Site Collection level documentation with detailed reporting of Site Collection specific info such as Content Types, Site Columns, Lists etc. etc.
Post a comment here if you're interested in being involved and collaborating on this further.
Tuesday, 1 September 2009
SPDocGen - SharePoint Documentation Generator
I've just created this project on CodePlex http://spdocgen.codeplex.com/
SPDocGen aka. SharePoint Documentation Generator is a console app that generates WSS 3.0 and MOSS 2007 farm documentation or reports using the SharePoint object model api. It produces an XML file, which is then transformed into a .doc file using XSLT and WordML.
I started this project to save myself time, because I've been tasked with documenting SharePoint Deployments quite a few times, and its usually a time consuming process of clicking through Central Admin, running batch commands of STSADM or using SharePoint Manager then copy and pasting the info into a word document. Service Pack 2 also has a preupgradecheck command that can produce some documentation for you. It might also be worth having a look at the SharePoint Admin Toolkit, SPSReport, SPDiag or MOSSRAP
Hope it saves everyone some documentation time so you can get back to spending your time on more worthwhile tasks like SharePoint dev or SharePoint admin.
Tuesday, 14 July 2009
SharePoint 2010 Sneak Peek
Go check out the movies and info here: http://sharepoint.microsoft.com/2010/Sneak_Peek
Microsoft plan to release a lot of info at the SharePoint conference in Vegas in October, http://www.mssharepointconference.com it's nice to get this sneak peek info while we wait for the conference.
Thursday, 30 April 2009
Can't Crawl Sites, Can't Access Sites on Server 401.1 Access Denied
I could access central admin fine on http://servername:port but when trying to crawl sites locally, the crawler failed on sites with a custom host header, returning access denied messages. That's strange I thought, so launched up IE on the server and tried to access the sites, get prompted to login 3 times then boom access denied 401.1. These same sites work just fine when accessed on other client machines in the network.
Something definetly aint right here!!!
Luckily Todd Klindt saved the day for me, he blogs this issue nicely here. Further to that Ishai Sagi also has a blog post on it. So have a read of those awesome blog posts and then check out http://support.microsoft.com/kb/896861 for a resolution, the cause is stated in the hotfix as:
"A loopback check security feature that is designed to help prevent reflection attacks on your computer. Therefore, authentication fails if the FQDN or the custom host header that you use does not match the local computer name."
The resolution involes a little bit of regedit.
Phew disaster averted!
Perth SharePoint User Group Lead
http://www.sharepointusers.org.au/Perth/Lists/Announcements/DispForm.aspx?ID=23
Rick Rosato of Connected Systems resurrected the Perth SharePoint User Group in early 2007 and has done a great job of running the user group since then, we’ve had some great sessions in the last two years and many people have benefitted from the user group. Rick has decided to hand over the presidency to me so he can focus on other things, and I gladly accept the position and all the responsibility that it entails – cheers Rick !
Recent Meetings & Presentations
Late last month, on the 25th March Jeremy Thake of Readify presented an excellent talk on unit testing in SharePoint, check out the webcast here.
For this months meeting, on the 21st April, the infamous Paul Culmsee of Seven Sigma Business Solutions graced the Perth SharePoint User Group as a speaker for the very first time, to present a talk on "Wicked Problems and SharePoint - Rethinking the Approach" you can view the presentation slides on Paul's blog.
If you are based in Perth and working with SharePoint, you've got to come along to our meetings!
Check out the user group website regularly for up and coming events. If you are keen on sharing your SharePoint adventures with others, get in contact with me, as we need speakers! We'll slot you in as a presenter so you can share your experiences with the community.
Friday, 20 March 2009
10 New Themes for SharePoint!
http://blog.drisgill.com/2009/03/microsoft-released-10-new-sharepoint.html
They look great - best themes for SharePoint I have ever laid my eyes on. I also agree with Randy that these should have been released in Solution package(s). Still the format they are released in are better than those extra Master pages released by Microsoft a year or two ago.
Download the 10 new themes here:
http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=0a87658f-20b8-4dcc-ad7a-09ad22641f3a
Update
Daniel Brown - SharePoint MVP based out of Adelaide, South Australia has "solutionised" the themes. Check them out here - http://www.danielbrown.id.au/Lists/Posts/Post.aspx?ID=256
Saturday, 31 January 2009
Go and download SPDisposeCheck !
http://code.msdn.microsoft.com/SPDisposeCheck
Announced by Paul Andrew at Microsoft -
http://blogs.msdn.com/pandrew/archive/2009/01/29/spdisposecheck-v1-3-1-is-released.aspx
Proper disposal of SharePoint objects in custom code is very important. If you are causing memory leaks you will create memory pressure problems in production Farms, which can result in serious side affects and system downtime.
Monday, 1 December 2008
Announcing SharePoint Site Configurator
One controversial topic of late is - should you develop with custom site definitions? A lot of people argue no - they are too complex and will cause upgrade problems into the future.
The majority of SharePoint developers should be familiar with the SharePoint Solutions and Features framework for developing and deploying customisations to SharePoint. A smaller number of developers work with and are familiar with custom site definitions - they are complex and difficult to master. This can cause problems with resourcing as some SharePoint developers will not be productive having to sort out and work with another developers site definition.
To complicate things further - when developing with custom site definitions one can go for the miniminalist approach where most work is implemented in Features, and these Features are simply referenced in the site definition for activation purposes, or you can go ahead and build the work straight into the site definitions. Another problem is developers use the OOTB WSS and MOSS site definitions as examples, and many of those implement functionality in the site definitions themselves instead of in Features.
So it's great to see MCS release the SharePoint Site Configurator on codeplex which will hopefully help to do away with complex custom site definitions.
Tuesday, 25 November 2008
Isolator for SharePoint !
Head over to Andrew Woodward's blog - http://www.21apps.com for some more TDD goodness - specifically these two posts that link to whitepapers and code for download.
http://www.21apps.com/agile/beginners-guide-to-test-driven-web-part-development/
http://www.21apps.com/agile/unit-testing-sharepoint-getting-into-the-object-model/
Typemock are offering their new product for unit testing SharePoint called Isolator For SharePoint, for a special introduction price. it is the only tool that allows you to unit test SharePoint without a SharePoint server. To learn more click here.
The first 50 bloggers who blog this text in their blog and tell us about it, will get a Full Isolator license, Free. for rules and info click here.
Thursday, 13 November 2008
Anouncing SPDisposeCheck for SharePoint Developers
So what is SPDisposeCheck
"SPDisposeCheck, will open your custom compiled assemblies recursively and validate them against the Microsoft published guidance. The output from the tool will contain messages that may indicate the SPSite and SPWeb Dispose() methods guidance is are not being followed in the customers source code. While these messages need expert evaluation in order to determine if the software is not performing properly, in some cases just running the tool on your custom code can lead you to simple fixes that improve the quality and performance of custom code on SharePoint. "
"This tool is planned for release during the coming North American Winter. Customers who are currently experiencing difficulties with memory management in their custom applications should review the guidance listed above. Customers who are currently experiencing difficulties with Microsoft Office SharePoint Server 2007 should contact their regular Microsoft Customer Support Services contact, or refer to http://support.microsoft.com/."
Disposing of SharePoint objects correctly is a big problem in custom developed code, if your SharePoint implementation is constantly "Dieing" ie, after regular use the memory and cpu max out and you need to reboot your server to get things going again then its highly likely you are running custom SharePoint Object Model code that is not correctly disposing of objects causing memory leaks. The rate of memory leakage can be significant.
I have since this ugly problem rear its head in a number of projects I have been involved in. So yeah when you finally do fixup the problem and dispose of objects correctly you will notice the improvement of system performance and your server should run as if it has a simple vanilla install of SharePoint.
Another major problem with this is that.... These Dispose() rules are COMPLEX. The biggest problem faced is the difference in coding patterns depending on where your custom code is running.
ie. If your SharePoint OM code is running in a Web Part or Custom Control then you have access to the SPContext.Current object which is your starting point to get to your SPSite, SPWeb, SPList, SPListItem, SPFile etc. etc. its important to note that objects accessed from the current context should not be disposed of. The SPContext.Current.Site and its SPWebs that hang of it are singletons and should not be disposed as SharePoint makes use of these and will need to possibly use these objects after your custom code executes. That means the using(SPWeb =...) pattern will dispose of objects you are not meant to, you will get an error.
BUT - if you are running the code in a console app or 'out-of-context' then you should always dispose the objects as you are the one creating them.
Confused? Complicated? Yeh it is but it is important to understand the issues if you are writing custom SharePoint Object Model code.
Friday, 7 November 2008
SharePoint MVP Blogs OPML
http://services.newsgator.com/sharepoint/opml
My friend Jeremy Thake also has a nice collection of SharePoint links on his Diigo that he seems to update quite often. Here's the RSS feed for Jeremy's SharePoint Diigo links - http://www.diigo.com/rss/user/Jthake/sharepoint
Thursday, 6 November 2008
Patterns & Practises SharePoint Guidance and Ramp-Up Program SharePoint for Developers
Microsoft Patterns and Practices - SharePoint Guidance
http://msdn.microsoft.com/en-us/library/dd203468.aspx
Guidance at a Glance
This guidance helps architects and developers build SharePoint intranet applications. The guidance contains a reference implementation (RI) that demonstrates solutions to common architectural, development, and lifecycle management challenges.
Ramp-Up !
(http://www.myrampup.com/) has just launched a brand-new learning track: SharePoint for Developers, Part I today.
http://msdn.microsoft.com/en-us/rampup/default.aspx
http://msdn.microsoft.com/en-us/rampup/dd221355.aspx
Monday, 3 November 2008
Free Open Source CMS / WCM on WSS 3.0 - CompleteSharePoint.NET
http://www.codeplex.com/completesharepoint
http://www.completesharepoint.net/Home/Pages/Default.aspx
Tommy is a great buddy of mine and we've worked on some cool projects together in the past - Nice work Tommy! I miss working with Tommy because he's probably one of the fastest developers I have ever worked with.
Enabling the Word 2007 Developer Tab in the Ribbon to Always Show the Document Information Panel (DIP) When Opening a Document
Last Friday I went to a special Perth SharePoint User Group presentation hosted by William Cornwill of Microsoft. The presentation was excellent and provided a nice overview on Custom Content Types, Templates and Document Information Panel interaction between SharePoint and Word 2007. Awesome presentation!
One question that came up in the user group presentation that a number of people wanted answered was –
"How do I always force the Document Information Panel to show on opening a document"
I had some trouble with this a few weeks ago until I figured out that you can add the Developer Toolbar to Word 2007 which provides the facility to configure quite a lot in the document.
I came across this excellent blog post by Andrew Coates also another Australian Microsofty like William Cornwill – and just like William, Andrew presented at the Perth SharePoint UG a few months ago.
So to enabled the Developer Toolbar in Word following the steps in Andrew's post :
Enabling the Word 2007 Developer Tab
http://blogs.msdn.com/acoat/archive/2007/02/28/enabling-the-word-2007-developer-tab.aspx
You basically go into Word 2007 options to enable the Developer tab in the Ribbon – fairly simple but it took me AGES to figure this out until I came across Andrew's blog.
After enabling the Developer Tab follow these steps to always force the Document Information Panel to show, click on the Developer Tab and then click on the last icon – Document Panel.

And then tick the Always show Document Information Panel on document on open and initial save checkbox to always show the DIP.

Its as simple as that! If you tick that checkbox and save the word document – and then use this word document as a Content Type template in a SharePoint Document Library – then every time a user creates a new document or opens a document they will be presented with the DIP showing.
UPDATE: You need to set this in the Content Type's settings page, there's a link to Document Information Panel Settings.
See - http://stephenmuller.com/2008/07/17/using-the-dip-and-quick-parts-with-office-pt-1/
The developer tab has a bunch of other useful goodies you can play with one of which is adding various content controls such as Picture content controls.
Another important function of the developer tab is Formatting quick parts. Have you ever wanted to change the date format of a Date Quick Part? Add a Quick Part to the page that is based on a Date and you get it formatted as dd/MM/yyyy.
With the quick part selected switch to the Developer tab and click the Properties button in the Controls section of the ribbon

You then have the following options available for configuring this Quick Part (Content Control).

Click Okay – and you now have applied a format to your Date Quick Part ! Other options available such as the Content cannot be edited forces users to always updated the DIP instead of the word document. Ie. By default users can type into quick parts/content controls in a word doc and changes are reflected in the DIP – with this option set users must edited this content in the DIP.

Another fine blog post on Andrew's blog that helped me recently is –
Linking Word 2007 Content Controls to Custom XML
http://blogs.msdn.com/acoat/archive/2007/03/01/linking-word-2007-content-controls-to-custom-xml.aspx
Andrew gives a nice overview of how to make use of the Word 2007 Content Control Toolkit to manipulate custom XML stored in a word document, the tool allows you to add ANY custom XML to a document and then bind it to a Content Control.
Finally in summary I came across the following EXCELLENT resource if you are implementing this sort of advanced document management in SharePoint –
Using Office Open XML Formats to Support Electronic Health Records Portability and Health Industry Standards
http://msdn.microsoft.com/en-us/library/bb879915.aspx
By the Ted Pattison Group – if those guys are involved then you know this is going to be top class.
And the Visual Studio Solution for the article is downloadable here - http://www.microsoft.com/downloads/details.aspx?FamilyId=B36AEBDC-8217-4D64-BFD0-187E58B708BD&displaylang=en
Tuesday, 28 October 2008
Cloud Computing - Announcing Azure Services Platform and Microsoft SharePoint Services
http://www.readwriteweb.com/archives/windows_azure.php
http://www.readwriteweb.com/archives/microsoft_azure_redefine_os.php
One problem is the name, I think it sounds too much like Azureus - http://azureus.sourceforge.net/
Azure http://en.wikipedia.org/wiki/Sky_blue "Commonly it refers to a bright blue, resembling the sky on a bright, clear day"
"The term azure derives from the Persian لاژورد (lazhward), which was the name of a place in modern Turkestan known for its deposits of lapis lazuli (“stone of lazhward”). The word was adopted into Old French by the twelfth century.
From the French it was adopted into English as a near synonym for "blue". The first recorded use of azure as a color name in English was in 1374."
Other than the name, this is exciting stuff people and likely to be the way to do work in the not too distant future.
Tuesday, 14 October 2008
What are you working on Sezai ?
I have been involved in quite a number of varying and complex Internet website projects in the last few years - and I have learned quite a bit in the process.
So what is the next Internet site I am working on?
I'm NOT working on a WCM project!!!
I am working on a custom Document Management System. I am building a system to migrate a paper based Business Excellence Framework system into SharePoint.
What is a Business Excellence Framework or BEF ?
Read up on it here - http://www.saiglobal.com/Improve/ExcellenceModels/BusinessExcellenceFramework/default.htm
I must mention - if you come across an organisation that implements a BEF as a management system they are EXCELLENT candidates for SharePoint implementations.
Why?
They are already VERY organised and follow structured methods, including workflow, so they already have their act together and it makes a big difference implementing business processes - as their processes ARE ALREADY DEFINED AND PROVEN TO WORK !
Compare that to implementing SharePoint for a disorganised organisation - and yeah SharePoint won't automatically instill a sense of process and organisation if they don't have that in place already.
Sunday, 12 October 2008
PhotoSynth of the 2009 MVP Award Trophy
Check out the Synth Here - http://photosynth.net/view.aspx?cid=00D9A997-BBF7-425A-8A42-318FBD75E36F
Saturday, 11 October 2008
Designing SharePoint Implementations - Visio Templates and Stencils for SharePoint
When designing and planning a system, a picture really is worth a thousand words. Good diagrams and illustrations can make a seemingly boring specification document into something that looks visually stunning and very appealing to the eye, more importantly good diagrams can impress project stake holders. A good looking diagram can also convey a lot more information to the reader with a lot less reading.
So what diagrams do you need?
The success of a SharePoint implementation depends a lot on the Infrastructure that is setup to support it. I have seen implementations result in failure in the past, not due to the SharePoint or development side of things, but because the infrastructure was poorly planned and cannot support the load that results from regular use of the system. So to help plan out the logical infrastructure you should check out this page on at Spence Harbar's blog - http://www.harbar.net/archive/2008/09/17/Investing-in-Logical-Architecture-Design-Samples.aspx
and this -
http://www.sharepointblogs.com/stopcollaborateandlisten/archive/2008/02/11/visio-shapes-for-moss-2007-amp-wss-v3.aspx
Every SharePoint site collection is made up of a hierarchy of subsites. So to help document the structure of a site collection before you even start creating a site you need a Site Map diagram which clearly documents the hierarchy of subsites in a site collection. You can then go into further detail and list out any specific lists or libraries in the site and if needed annotate these libraries with information related to their use and security access. Have a look at this Visio Template on Maxime Bombardier's blog.
http://blogs.msdn.com/maximeb/archive/2007/10/27/updated-visio-stencils-for-sharepoint-2007-site-structures-documentation-version-0-2.aspx
With the site map defined you then go in for a little more detail – in order to convey the functional differences between various pages in a site, you should put together some Wireframes of any important pages such as the home page and landing/welcome pages for subsites. Any highly custom pages containing custom web parts or server controls are also good candidates for producing wireframes. Any custom forms such as list edit forms or custom page layouts in edit mode that use custom field controls are also good wireframe candidates. Wireframes are excellent for conveying what each specific page does in the site and lets project stakeholders visualize the layout of pages – they may have ideas and preferences for laying out screens, it’s better for them to request these changes in the design phase instead of much later on when they’re already developed. Have a look at this Visio template -
http://www.siolon.com/blog/sharepoint-wireframes/
http://www.siolon.com/wp-content/uploads/MOSS.vst?PHPSESSID=0ceb4003a8538463cd82af9c27608202
and this one -
http://blogs.msdn.com/roberdan/archive/2006/03/05/543967.aspx
If your SharePoint implementation makes use of any custom workflow, then it may be worth illustrating these in a diagram as well. You can put together nice workflow diagrams to illustrate how workflow functions in the site. Have a look at these Visio templates -
http://www.nickfinck.com/stencils.html or any others that lets you document workflow process flow
Awesome - so now you have a set of diagrams clearly illustrating the logical infrastructure, site map / site structure, wireframes of important pages and how workflows… well - flow. A bunch of diagrams alone is not going to be a good spec. So you need to put these all together and start writing one.
If you are looking for a great example of a functional specification which makes use of nice Visio diagrams have a look AT THIS AWESOME FUNCTIONAL SPECIFICATION I came across prepared by Microsoft Consulting Services.
http://solshare.net/files/folders/funcspecs/entry1328.aspx
http://solshare.net/files/folders/1328/download.aspx
Happy documenting!
Always takes ages for me to make these diagrams and move shapes around though :(
I would also much rather be coding :)
If you come across any other nice Visio templates or stencils online - or any other good examples of Specifications for SharePoint Projects then please post a comment here to let me know about it !
Update -
Check out Jeremy Thake's Diigo http://www.diigo.com/user/jthake/visio for some more templates.
Sunday, 5 October 2008
I am a Microsoft MVP !

That's right - I got the news yesterday from Nick Ellery Aus/NZ MVP Lead - I have been awarded the MVP Award for 2009 which makes yours truly the only SharePoint MVP in Perth and Western Australia
It's been quite a journey working with SharePoint and it's great to get this award, I can now look back at all the time and effort I spent learning, working, blogging, writing and presenting with SharePoint over the last few years and it feels like it was all worth it.
Now that I have won the award I need to do more to pass on my knowledge to others to make their time working with SharePoint a little easier.
SO yes this blog has been RESURRECTED!!! Stay tuned for some long and detailed posts... Might be a few days before the first one, they take time to write :)
I also started at my new job last week - I now work for Ignia - http://www.ignia.com.au/ Microsoft Gold Partners in Perth (so nice to be back on the terrace again). I am excited about this job as there's some really awesome projects lined up, but more importantly there's heaps of opportunity to grow and learn from some really capable and specialised .NET, CRM and SharePoint people.