#SPSVAN – SharePoint Saturday Vancouver 2010 – Successful Community Event

I just want to give a BIG SHOUT OUT to everyone who organized, presented, participated and attended VANSPUG‘s SharePoint Saturday in Vancouver (#SPSVAN). This is honestly one of the most organized, professional community I’ve attended in the last little while. All the sessions I attended were excellent, and yes – you do get that warm touchy-feely feeling after the event that kind of feels like you attended some kind of reunion (saw and talked to @jasonklatt too – we went to BCIT CST in the same batch! Although we were not in the same set, we were in the same labs).

Thank you to our presenters, including Todd Klindt (@toddklindt), Sean McDonough (@spmcdonough), Cathy Dew (@catpaint1) and Yaroslav Pentsarskyy (@spentsarsky) :) who devoted time and energy in coming to Vancouver, and presenting excellent materials to the inquisitive Vancouver techie community.

I know it’s been a lot of work for everyone who made this happen, especially the event chairs Sherman Woo (@SPSherm) and Michal Pisarek (@MichalPisarek). But I can’t say enough that it’s been a GREAT event. They gave out lots of cool prizes:
– Telerik Ultimate Suite Licenses
– Critical Path Training voucher
– Amazon Kindles
– Dell LCD Monitors
– Microsoft keyboard/mouse
– Bamboo Store Certificate
– KWizcom Store Certificates
– Awesome SharePoint books – including Todd Klindt’s Wrox SharePoint Administration 2010 book, Sean McDonough’s SharePoint 2010 Disaster Recovery book, and Yaroslav Pentsarskyy’s (@spentsarsky) Top 60 Custom Solutions built on Microsoft SharePoint Server 2010 . … (yes, yes, all awesome books but Lady Luck was not with me today so I didn’t win any …)

Generous sponsors include AvePoint, Habanero Consulting Group, K2, Quest Software, WPCG, Colligo Networks, Idera – and in our own little way – Black Ninja Software. Shereen (blog | twitter) and I would have wanted to present as well, but sometimes 24 hours is just not enough in a day :)

As someone who is part of the community – thank you again – for making this happen. And I just want to reiterate – this is an excellent community event – to share knowledge and experiences – and I look forward to more in the future. I look forward to being more active myself in the future.

And if you happen to be reading my blog, let’s continue supporting VANSPUG. It’s a great community initiative.

Here’s just a few points worth noting in the sessions I attended:

Upgrading SharePoint 2007 to SharePoint 2010 by Todd Klindt

– Never have your only resume on SharePoint :)
– When upgrading, key type should be the same. Ie, Trial 2007 to Trial 2010, or Enterprise 2007 to Enterprise 2010
– Some goofiness even after visual upgrade, for example, broken breadcrumbs
– MySite upgrade is a whole different story. The MySite site collection is upgraded – but the MySite Host is not. Also, links in mysites do get lost ..
– (eherm) .. DBAs are sometimes not gracious hosts, so you need to plan when your DB detach/attach is going to happen.
– DB attach with AAM redirect – option for Terabyte databases/big sites and site collections
– PowerShell, baby! — when you’re upgrading multiple sites.

Saving SharePoint by Sean McDonough

– RPO (Recovery Point Objective), RTO (Recovery Time Objective), RLO (Recovery Level Objective)
– At the end of the day, the questions to ask are what does your business need to be back in the event of the disaster? What is the money you stand to lose if your system is down x amount of hours?
– Content is king. Protect your king.
– When applying Service Packs, patches and hotfixes, do a Central Admin backup before and after the patch.
– Your site collections can be big – terabytes big – SharePoint can handle that, but backup becomes the boundary. You just need to plan your backup and recovery. How long will it take for you to backup the whole thing?
– For big site collections, worth looking at Remote Blob Storage solutions.
– Be careful with VM snapshots and cloning. Always test, test, test. Consistency is key.
– SharePoint 2010 is mirroring aware.
– There is a PowerShell script that can help you document your SharePoint sites. It runs for a long time, but it’s worth it. Here’s the link (http://technet.microsoft.com/en-us/library/ff645391.aspx).
– Have confidence in your solution. And confidence is gained through testing.
– If you need to back up on the cloud, check RackSpace.

Making PowerShell Less Scary for the SharePoint Administrator by Todd Klindt

(I love PowerShell. It rocketh. To the nth degree. (Ok, ok, I know I sound very geeky. I’ll stop))
– Task driven learning is an effective way to learn PowerShell. Have a task at hand. See how that can be done in PowerShell.
– Your friends are Get-Help, Get-Command, Get-Member
– When doing EnumWebs, and you want to see all, use -LIMIT ALL
– Make sure you dispose any SP objects properly, use Start-SPAssignment -Global, then your code, then Stop-SPAssignment
– Few tasks you can do with SP and Powershell:
– Activate features across site collections
– Provisioning of Managed Accounts
– Create new sites
– Backup all site Collections

VN:F [1.9.22_1171]
Rating: 10.0/10 (8 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Just blogged on the Black Ninja Site:

Programmatically and Selectively Revoke SharePoint Item Level Permissions Using PowerShell

VN:F [1.9.22_1171]
Rating: 6.5/10 (6 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Now that you have collected all your information in your SharePoint lists, your business users will want to see reports off them.

You may want to leverage SQL Server Reporting Services for this (I would! I’d love to use SSRS for all the reports I need to create!), but we know it’s not an easy task.
Your options are:
Read the rest of this entry »

VN:F [1.9.22_1171]
Rating: 7.5/10 (38 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 4 votes)

I just wrote a couple of SharePoint posts at the Black Ninja Software blog:

How to Programmatically Impersonate Users in SharePoint
– this post shows how you can programmatically execute code in another user’s context, and you can do this by getting a handle to that user’s UserToken

How to Invoke Javascript Snippets Without Using RegisterClientScriptBlock
– this post shows how to invoke and change Javascript code without needing to register that code. This approach uses asp:Literal

And in case you missed this one:
SharePoint Readiness Checklist – Reposted

VN:F [1.9.22_1171]
Rating: 10.0/10 (3 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Victoria Code Camp Materials

Sorry I have been sick and out of commission for a week. The past few days, I’ve been drinking the meds the doctor gave me, which just really knocks me right out.

I apologize for the delay, but here are the materials, finally.

SharePoint 101

SharePoint 101 – Slides

SharePoint Web Parts

SharePoint Web Parts 101 – Slides

SharePoint Web Part Sample Projects:

1. Hello World Web Part

2. Simple Web Part with Custom Properties and Verbs

3. Connectable Web Parts

Enjoy! I’ll start blogging more again, as soon as I’m 100% better :)

VN:F [1.9.22_1171]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Victoria Code Camp, January 26, 2008

I’m doing a couple of sessions at the Victoria Code Camp on January 26, 2008! Thank you to Nolan Zak for giving me this opportunity.

These are my two sessions:

SharePoint 101
This session will provide a high level overview of Windows Sharepoint Services 3.0 and Microsoft Office Sharepoint Server (MOSS 2007). This session will also cover demos of out-of-the-box Sharepoint components like: sites, lists, document libraries, and web parts.

SharePoint Web Parts
This session will cover Web Part concepts, and will walk you through creating custom ASP.NET Web Parts for SharePoint (MOSS 2007, WSS 3.0). Features will also be introduced towards the end of the session.

Schedule is posted at http://www.victoriacodecamp.com/SessionSchedule.aspx.
The list of speakers can be found at http://www.victoriacodecamp.com/CampSpeakers.aspx

Just posting the schedule here as well for your reference:

Morning Schedule

Afternoon Schedule

As usual, I will be posting the materials I will use at the presentations. Hope to see you there! Beautiful Victoria, here I come!

VN:F [1.9.22_1171]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

DEVTEACH/VANTUG 2007 – Sharepoint Integration Presentation Materials

Yaroslav and I did a presentation at VANTUG on November 22, 2007 (Thanks to Graham Jones, President of VANTUG, for inviting us to speak!). As promised, here are the presentation materials. These are the same materials we are going to use for DEVTEACH on November 28, 2007.

As we mentioned in the presentation, we used a real business case as a basis for the demo. The solution in our project involved:
– Sharepoint as portal/framework (specifically MOSS)
– WCF for communication between Sharepoint and backend databases
– Custom Web Part for entry forms and client-side validation
– BDC for search and data display
– SSNS for notification and audit trails

We tried to create a simpler version that uses most of the features above, and highlights the flexibility of Sharepoint as a framework.


PRESENTATION FILE – Download the Powerpoint Presentations from here:
VANTUG November 2007 – Sharepoint Integration


Looking for additional references? You can check out the resource list for this presentation from my previous blog:
DevTeach/VANTUG Sharepoint 2007 Integration Presentation (Nov 2007): Resources

Screenshots: At A Glance




Custom Web Part with SSNS

Looking for additional references? You can check out the resource list for this presentation from my previous blog:
DevTeach/VANTUG Sharepoint 2007 Integration Presentation (Nov 2007): Resources


Database File (setup_productdetail.zip)
This contains the ProductDetail table, and related views and stored procedures. This .sql file is enough for you to get the BDC and SSRS part of the demo working.

We used the AdventureWorksLT database as our base database, and added a few tables/view/stored procedures.

This is the ProductDetail ERD:

1. Download the AdventureWorksLT database. You can download the AdventureWorksLT database from CodePlex (http://www.codeplex.com/MSFTDBProdSamples/Release/ProjectReleases.aspx?ReleaseId=4004).
2. Download the SQL file for the presentation here.
3. Open up the setup_productdetail.sql file in SQL Server Management Studio.
4. Execute

Business Data Catalog (BDC)

BDC File (AdventureWorksProductDetailADF.zip)
This file contains the ProductDetail BDC Application Definition File

The BDC is a MOSS (Microsoft Office Sharepoint Server) only feature. This will not run on WSS.

Sample Screenshot:

1. If you don’t have access to MOSS, you can download the MOSS trial version from http://www.microsoft.com/downloads/details.aspx?FamilyId=2E6E5A9C-EBF6-4F7F-8467-F4DE6BD6B831&displaylang=en
2. Open Central Administration
3. Go to Shared Services
4. Under the Business Data Catalog section, click on Import Application Definition.
5. Browse to AdventureWorksProductDetailADF.xml, accept defaults and click on OK.

Some people asked during the presentation what I use to create the BDCs. Since I started working on the BDC since MOSS’s B2TR, I’ve grown accustomed to writing the ADF by hand. I did try the BDC Metaman at that time – which was then still a beta (and free!) version developed by Todd Baginski.

To debug BDC’s to date, however, you have 2 indispensible friends:
1. Event Viewer
2. 12 Hive LOGS folder (C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12LOGS). If you can’t see any relevant logs, check Central Admin and get MOSS to log “Business Data”.
3. When updating the BDC:
– you will need to manually update the Version in the ADF
– you may need to disable caching (from Web Part properties)
– at times, you may need to delete the BDC Application Instance and recreate
(Not sure exactly when these things happen, but this will be one my next discovery quests!)
4. Last but not least, make sure you check the permissions. Whoever’s using the BDC needs to be added to the BDC permissions list with EXECUTE permissions.

SQL Server 2005 Reporting Services – Integrated Mode with Sharepoint

Sample Report Project on ProductDetail table

The bulk of the work in this section is not about creating the reports, it is configuring the environment.
I’ve used three main resources, which I reference in a previous blog (DevTeach/VANTUG Sharepoint 2007 Integration Presentation (Nov 2007): Resources)

Raju Sakthivel. Microsoft SQL Server Reporting Services – Installation and Configuration Guide for SharePoint Integration Mode (very good resource, and a must read if you are planning to deploy SSRS Integrated Mode)

How to: Configure SharePoint Integration on Multiple Servers

How to: Configure SharePoint Integration on a Standalone Server

Sample Screenshot:

SSRS Integrated Mode introduces 3 new content types to Sharepoint: Report Builder Model, Report Builder Report and Report Data Source.

Points to note before you pull your hair out:
– You must get Kerberos working. Make sure your SPNs are in place.
– You must install SQL Server 2005 SP2.
– Don’t look for Report Manager. It’s not there. Sharepoint Integrated mode does away with the Report Manager. Other unsupported features are documented here: http://technet.microsoft.com/en-us/library/bb326290.aspx
– When deploying, you need to provide the URL to the document libraries and URL to the site you are deploying to. This could be easy to miss especially if you are used to the Report Manager. To check this:
– Open your Project in Visual Studio
– Right click on your project from the Object Explorer > Properties
– Make sure your

Custom Web Part – Hello World

PRESENTATION FILE – Basic Custom Web Part:
These are the files provided by Yaroslav for creating your basic hello world custom web part:

SQL Server 2005 Notification Services

SSNS File (SSNS – NSProduct2.zip)
This file contains the ADF, ICF, XSL, schemas, sample events you need to get started on Notification Services.

Microsoft has provided a number of good step-by-step tutorials. You can start with:
MSDN. SQL Server 2005 Notification Services Tutorial

Here’s a quick start guide:
1. If you don’t have Notification Services installed, install notification service:
a. Run the SQL Server 2005 Setup Disk
b. Choose to add components.
1. Create your ADF file.
2. Create your ICF file.
3. Create a new SQL Server Notification Services instance and enable
4. Register the Notification Service you created as a Windows Service
5. Assign permissions to an Event folder if you are using a FileWatcher
6. Start the service
7. Add subscribers
8. Test, test, test

If you are debugging:
1. Check the NotificationDistribution table in the generated [InstanceName][ApplicationName] database. This should tell you if your notifications were successfully delivered or not.
2. Check the Event Viewer
3. Check the SQL Logs

Other things worth checking:
1. throttle
2. illegal XML characters

Oh, and if you want to update your CSS/HTML/XSL file, you need to update your notification instance. It’s not just going to pick up the style or content changes.

UNFORTUNATELY, to my dismay, the July CTP of Katmai’s readme file announces very silently that Notification Services days are over (or at least that’s what it sounds like). I liked working with Notification Services :(

“SQL Server Notification Services will not be included as a component of SQL Server 2008, but will continue to be supported as part of the SQL Server 2005 product support life-cycle. Moving forward, support for key notification scenarios will be incorporated into SQL Server Reporting Services. Existing Reporting Services functionality, such as data driven subscriptions, addresses some of the notification requirements. Features to support additional notification scenarios may be expected in future releases.”

VN:F [1.9.22_1171]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

VANTUG (Nov 2007) Sharepoint 2007 Integration Presentation

Here is the invite posted at the VANTUG site!

VANTUG Presentation

I will be posting all the materials soon :)

If you are looking for the DEVTEACH/VANTUG files, you can find them in this blog entry: DEVTEACH/VANTUG 2007 – Sharepoint Integration Presentation Materials

VN:F [1.9.22_1171]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)