Thursday, 30 April 2009

Can't Crawl Sites, Can't Access Sites on Server 401.1 Access Denied

I hit this nasty problem recently.

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

I am the new Lead of the Perth SharePoint User Group !

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!

Noticed this post on Randy Drisgills blog regarding 10 new awesome themes recently released by Microsoft
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 !

If you are into WSS 3.0 and MOSS 2007 custom development go and download the SharePoint Dispose Checker Tool (aka 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

http://www.codeplex.com/spsiteconfigurator

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 !

If you are a big fan of TDD and you develop on SharePoint then you need to check out Typemock Isolator for SharePoint - develop and test SharePoint code without a SharePoint server - how cool is that!!!

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

http://blogs.msdn.com/sharepoint/archive/2008/11/12/announcing-spdisposecheck-tool-for-sharepoint-developers.aspx

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

If you're big on RSS and use it to keep track of the latest SharePoint news out there, then here's a link to the 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

My old buddy Tommy Segoro recently released CompleteSharePoint.NET a free, open source CMS / WCM system that sits on top of WSS 3.0
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


Ray Ozzie opened the PDC 2008 by anouncing Windows Azure - Microsoft's big solution to Cloud Computing.



To learn more about Azure go to - http://www.azure.com/


http://blogs.msdn.com/sharepoint/archive/2008/10/27/pdc-2008-announcing-azure-services-platform-and-microsoft-sharepoint-services.aspx

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 ?

You may know me from my work with MOSS 2007 WCM Internet sites - which I enjoy working on a lot. MOSS 2007 is an AWESOME platform for powering an Internet site - no matter what the nay sayers say.

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

I bought a new Sony CyberShot Digital Camera yesterday and thought I'ld test it out by snapping some pics of the MVP Award and creating a PhotoSynth of it.

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 building any system for an enterprise it is best practise to initially scope the project to gather requirements and then commence writing a Functional Specification. The same should apply to SharePoint projects, no one should let you to start development without first designing and planning what you intend to build (I hope! ).

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.








Friday, 12 September 2008

Blog going into hibernation mode - no more blogging for a while

Until further notice I won't be blogging any more and this blog is going into hibernation mode.

It's been fun blogging but I need to spend more time on other things and may decide to start up another blog months (years?!) from now....

bye.

Sezai.

Tuesday, 12 August 2008

The New Central TAFE Website - Powered by MOSS 2007 developed by the Vivid Group



Vivid Group finished development of a new website for Central TAFE, which is one of the TAFE colleges in Western Australia.

Check it out here - http://www.centraltafe.wa.edu.au

The site contains font resizing, print friendly mode, RSS, Videos and more.

A custom course search was also developed which searches across Central TAFE's course database.

Wednesday, 18 June 2008

Perth SharePoint User Group Presentation June 2008

I presented at the June 2008 Perth SharePoint User Group meeting.

The topic was - Optimising MOSS 2007 for the Internet

The turnout was great, standing room only and the presentation went very well.

You can download the presentation here



I demoed customising Master Pages and Page Layouts and inheriting from custom base classes which allow you to add advanced custom functionality.



The easiest thing to implement is BlendTrans meta tags in your master page which stop refresh flicker in IE. These are great and were mentioned in the SharePoint Team Blog Post we wrote recently.



I first learned of these awesome BlendTrans tags from Stefan Sedich who sits next to me at work.


-----------------------------------------------------------------------------

The VS Project Templates used for the presentation are based on these - http://blogs.msdn.com/gderun/archive/2008/01/11/sharepoint-visual-studio-project-and-deployment-templates.aspx

Thursday, 5 June 2008

Publishing Feature Properties

Various Features referenced in ONET.XML site definition files can be activated with Properties.

One example is the publishing feature which makes use of properties like ChromeMasterUrl, AvailablePageLayouts, SimplePublishing etc. etc.

I've tried looking online for a listing of these feature properties but there's not much out there.

One example I found was someone making use of a EnableApprovalWorflowOnPages feature property.

http://www.sharepointblogs.com/niklas/archive/2007/09/06/using-scheduling-of-pages-but-not-the-authoring-workflow.aspx


So where can I get a full listing of the properties I can specify in ONET.XML ?

I fired up Reflector and had a look into the Publishing Feature Receiver code and came up with the following list -

AlternateCssUrl
AvailablePageLayouts
AvailableWebTemplates
ChromeMasterUrl
EnableApprovalWorkflowOnDocuments
EnableApprovalWorkflowOnImages
EnableApprovalWorkflowOnPages
EnableModerationOnDocuments
EnableModerationOnImages
EnableModerationOnPages
EnableSchedulingOnDocuments
EnableSchedulingOnImages
EnableSchedulingOnPages
MigrationOverride
PagesListUrl
RequireCheckoutOnDocuments
RequireCheckoutOnImages
RequireCheckoutOnPages
SimplePublishing
VersioningOnDocuments
VersioningOnImages
VersioningOnPages

Some property names are descriptive enough to work out what they do.