Monday, July 07, 2008

SiSense's Amazon S3 Analytics Tool: Update

Shortly after I posted about SiSense's new Prism Business Intelligence Viewer with Amazon S3 analytics add-on, their Product Manager Adi Azaria contacted me. I'd mentioned a bug that occurred when I was trying to view my files. He asked to see my Prism log files, which I sent, and provided me with the newest version of the product.

This version provides an enhanced UI including more help links, a set of "Common tasks", and the ability to quickly create new data connections. Most satisfying, it fixed my bug!

Looks like my bucket did not have logging turned on. The new version checks for this and prompts the user when this happens.

SiSense Prism Log

Thanks Adi for the quick follow-ups and the great support!

Amazon Simple Storage Service Analytics Add-On

ReadWriteWeb has a post on an Amazon Simple Storage Service S3 analytics add-on called Prism by the folks at SiSense.

It's in private beta right now but there is an invite code to the readers of the ReadWriteWeb blog. I've signed up to see how it can help me manage my Amazon S3 buckets.

Prism Viewer is a desktop installation that provides a Business Intelligence interface to view the S3 usage stats. The Amazon Analytics Dashboard is an additional file (Prism file: .psm) that lives inside the Prism Viewer and reports on your S3 buckets.

SiSense Amazon S3 Connect

Once you've entered your Amazon S3 connection information, you can start to create reports on its activity.

Unfortunately I can't synchronize my bucket's logs because an error occurs. It is a private beta but I'm disappointed I can't yet see my own statistics. For the moment here's a screenshot of their sample bucket to indicate what the tool will look like:

SiSense Amazon S3 File Display

I'll try again later and see how it works. Since I plan to store more and more information on S3 I definitely need this kind of reporting.

Amazon is starting to build a great ecosystem on top of its utility cloud computing platform, and software such as Prism, JungleDisk, TagCow, and DreamTeam Suite is the proof.

Thursday, July 03, 2008

Eating My Own Dog Food

After 10 years of rampant, unsupervised personal computer use I've copied and pasted myself into a corner. I no longer have much idea where the good copy of anything is.

I aim to fix that.

It seems like a daunting task. My short term efforts have been to keep buying new external hard drives and copying files onto that. Needless to say that's compounded the mess since I am now trying to figure out which is the Latest Version. So much for Single Source of Truth!

In many ways my problem is a perfect mirror to the sort of enterprise problems that SharePoint hopes to solve. It only makes sense that I  make SharePoint a part of the solution. It has the added benefit that I am at least practicing what I preach; I will be eating my own dog food.

I thought I would track my cleanup efforts and hopefully get some help from other people who have gone down this road before. Feedback on what you did / are doing / will do is very very welcome!

The Problem, By The Numbers

  • 2 users
  • 4 Laptops in various stages of obsolescence
  • 2 100-gig external drives
  • 1 200-gig external drive
  • 20 gigs of music including many duplicate files
  • 30 gigs of photos and videos, including some duplication
  • 10 years of ad hoc file management legacy crud
  • 2 personal email accounts
  • 2 or more business email accounts
  • 0 ability to share files collaboratively
  • 0 backup strategy

The Goal

At the end of this process, I want to have achieved the following:

  1. A Single Source of Truth for all files (cue Heavenly Choir)
  2. Highly available, online web access to files I frequently use
  3. Laptop access to all files
  4. Synchronization of file changes between online / offline work
  5. Phone access to personal email, contacts, calendars, and task information (and files if possible, although this is secondary)
  6. Phone access to business email, contacts, calendars, and task information
  7. A single personal email account and preferably only 1 business email account
  8. High level of security and encryption for all files stored in the cloud
  9. Weekly (or more frequent) incremental backups of all files
  10. Monthly full backups of all files

So here's the new plan:

The Bits and Pieces

  1. Get a hosted WSS 3 site for my personal site. On here: tasks, calendar, grocery list, personal (but not security sensitive) documents, licensing information. Parts of it will require a username and password to login.
  2. Get a business hosted WSS 3 site as an extranet for clients and also to store non-sensitive frequently used work documents
  3. Purchase Colligo Contributor Pro so I can sync my Personal and Business SharePoint sites and work offline while I travel.
  4. Get hosted Exchange (about to start trialing DNAMail).
  5. Purchase a smart phone with Windows Mobile so I can read these lists, contacts, calendars, and documents while on the go using Exchange Mobile Sync.
  6. The smart phone will initially also sync with my 2 personal and 2 business email accounts. Over time I will roll these over into 1 personal email account and 1 business email account (+x other company business emails when I'm on contract).
  7. Designate a "Hub" computer to store every "non-cloud" file I need. This includes all my songs and photos - basically anything normally residing on a personal computer. The hub computer will actually keeps the files on a large external drive so I can plug all this data into another machine as required (such as when sharing files with my girlfriend's computer).
  8. Get an Amazon S3 storage bucket for my hub computer. I calculate I need up to 60 gigs of storage for my photos, files, and music which amounts to about $180 USD per year including transfer and storage costs.
  9. Purchase JungleDisk Pro 2 for automatic behind-the-scenes file backup of my data. Again, I need 60 gigs which amounts to about per $18 USD / year. JungleDisk offers encrypted online web access to all stored files.
  10. All web interfaces such as JungleDisk and WSS sites will be SSL encrypted as well as password protected.

Creating A Single Source Of Truth

This is the HARD part....plowing through the files making sure I don't have duplicates. iTunes has already alerted me to the fact that my Music folder contains up to 4 copies of the same song! Dagnabit.

I'm currently investigating utilities that search for duplicate files, such as DoubleKiller and Easy Duplicate Finder (thanks to Lifehacker: http://lifehacker.com/software/lifehacker-top-10/top-10-free-windows-file-wranglers-330037.php)

For the moment I have created a new folder, called "Hub", on the Hub computer's external drive. I am manually copying the folders over and cleaning them up as I go. I will leave Photos and Music to the end in order to cling to sanity for as long as possible.

From now on, all work gets done from the Hub folder. If I need to access something and it isn't in the Hub folder yet, I will use that as the excuse to clean it up and move it. This is the "Go Forward" strategy for content migration.

Backup Strategy

  1. Weekly automatic incremental backups to S3 using JungleDisk Pro.
  2. Weekly manual site collection backup of the personal and business sites using SharePoint Designer.
  3. Monthly manual full copy of the content on the external file drive to another USB drive that I store offsite the rest of the time.

Thoughts, etc.

Thoughts? Feedback? Sympathetic handshakes? Mocking laughter?

Wednesday, July 02, 2008

echo for SharePoint 2007 - Weekly Webinars

Every week, as part of my work with echoTechnology, I deliver a one hour online demonstration of some of echo for SharePoint's capabilities. It's very high-level and accessible and revolves around creating some tasks and showing how SharePoint can be updated easily and frequently.

The tasks I currently demonstrate include: loading content from a SharePoint 2003 portal and a file share, applying content type metadata, changing the master page and theme, adding some custom web parts, and enabling a custom workflow. All of these changes are deployed to several sites in two different SharePoint farms at the same time.

From the invite:

At the online demonstration you will discover how echo for SharePoint 2007:

  • Easily replicates changes to SharePoint in bulk
  • Automates change management procedures
  • Tests and deploys changes portal wide
  • Replicates to remote portals
  • Rapidly loads and tags documents
  • Delivers cost effective maintenance of SharePoint
  • Provides a longer lasting more relevant portal for your business

The webinars are every Thursday at 1pm PST. Sign up online at the echo website: http://www.echotechnology.com/registration/Events.aspx?PID=8&EVTID=1&TimeZone=240

If you're a SharePoint Administrator you should definitely check it out. Hope to see you there!

TechEd 2008 Session Notes: MOSS Governance: From Chaos to Success in Ten Steps

This is the final set of notes from Tech Ed Orlando 2008. This presentation was given by Joel Oleson and Shane Young (and am I missing a presenter?).

Definition of Governance

Governance uses people, process ,technology, and policies to define a service, resolve ambiguity, and mitigate conflict within an organization.

Or:

People, Process, Technology, Policy!

The 10 Step Plan

1) Executive Sponsor

2) Governance Plan: Clear Goals, Vision, Mission, and Metrics: Reduce TCO, encourage standards & consistency, provide service and solution.

3) Skilled Teams:

Tip: Try to avoid having Jack of All Trades manage the portal. Even 2 half positions is better than 1 FTR (full time resource).

SharePoint specialist skills:

  1. SharePoint Business Analyst – high level of understanding of SharePoint.
  2. Creative Designer – often outsourced.
  3. Trainer: Often outsourced.
  4. Infrastructure Specialist – DB, OS, understands web world. Needs to know SQL issues and optimization of DB. Network understanding helps.
  5. SharePoint Developer – knows .NET. SharePoint Architect – has to compile roadmap for services & platform, must be willing to follow the KISS principle.

Forrester organization defines these roles:

  1. Executive Sponsor – CXO Evangelist, active participant in the process.
  2. Program Driver – Communicator, unbiased, coordinator of all stewards.
  3. Business Stewards – IT savvy, strong communicators, educator across the business.
  4. IT Stewards – business savvy, educators across IT.

4) Training and Resources:

Site collection admin training – champs, pros, gurus (1 day).

Train key IT pros, dev, and designers – up to 1 week + offer certification incentive.

TIP: Brown bag and informal internal training for end users to help learn business processes.

Service offering site – should have online resources.

End User Training Kit for SharePoint should be available to everybody.

5) Service Definition and Model: Tiered model for site collections, sites, web apps, and farms. Options for things like quotas, user self-provisioning, archiving, listing in site directories, help disk provisioning etc, expiration of documents.

6) Information Architecture

7) Standards & Policies

8) Change, Configuration, and Release Management Processes (ITIL/ MOF) . Policies for release management, configuration management, operations monitoring, security and patch management

9) Culture and adoption. Enterprise search = easy win. Gravity: people gravitate to where their data resides. Don’t cut corners.

10) KISS

Examples of How Deployments Fail

  • Cutting corners – “my devs are my admins!”
  • “Production is test and dev, and where I introduce my service packs!”
  • “SharePoint is a simple install!”
  • “Let’s just deploy it and then worry about governance!”

Tuesday, July 01, 2008

TechEd 2008 Session Notes: Creating Portals That Last: Microsoft SharePoint Products and Technologies, Governance and Information Architecture

This is the penultimate in my series of Tech Ed Orlando session notes. It covers a session on governance practices given by Shane Young and Jason Medero.

Goals

  1. Prevent content sprawl
  2. Drive user adoption
  3. Prevent single point of failure
  4. Drive efficiency
  5. User empowerment

Key Drivers

  1. Information Architecture
  2. Branding
  3. Communication Strategy
  4. Enterprise Search
  5. Training / UAT
  6. Operations Management

Things To Consider

Governance always has to involve the end users.

Use search reporting to decide what content to add / manage. It will illustrate what is being searched for and what can’t be found

Operations Management:

  • Monitoring
  • Backup/Restore / DR
  • Storage and Quotas
  • Service Level Agreements
  • Reporting
  • Deployment Process

Branding: Consistent Look and feel

Communication Strategy: Who, What, Where, When, How

Change Management

Users are like water – they follow the path of least resistance

Dev, Testing, Staging, Prod

Shane says 95% of customers do everything in Production

MOSS allows checking in pages and content

Shane advises customers to use the Dev, Testing, Lifecycle only for custom code

Need a plan for how changes are made

He never lets any custom code into the portal unless it is deployed via a solution

Where do I Start?

  • Define roles and responsibilities
  • Best Practice: Define success – make it quantifiable and tied to business objectives – usage rate, new functionality rollouts?
  • Identify executive sponsors / key stakeholders
  • Define taxonomy
  • Develop look and feel
  • Establish configuration and release management process
  • Site provisioning
  • Build a service offering
    • At what level do I enable self service?
    • Where do I want IT to step in?
    • What quota should I allow?
    • Offering types:
      • Unmanaged: Out of box, hard to find, inconsistent experience, difficult to manage & patch
      • Managed Decentralized: Easy to access, easier to isolate, distributed admin, challenges: brand, search, browse, support, backup
      • Managed Centralized: Easy to index, manage, find information, brand
  • Training / UAT
    • Put training in the budget
    • Quick reference guides for users

What to Expect from an Effective Governance Plan

  • Protection against regulatory issues
  • Enhance ability to find people and data
  • Improve efficiency of your organization

Monday, June 30, 2008

TechEd 2008 Session Notes: MOSS Administrative Architecture, Deployment, and Operations (Part 2 of 2)

This was the second in a two-part series given by Joel Oleson, Shane Young, and Mike Watson. The session was highly technical in nature and consisted of some very valuable and very specific do's and don'ts for advanced SharePoint administration.

Tip: Add command line environment variable shortcut pointing to the Office 12 Hive location on your server, since you will have to go there a lot

Site Collection & Content DB Management

Tip: Put similar sites together (based on content sizes and # of users). This can help manage functionality and configurations.

Best Practice: Separate My Sites from portals so they can be moved and managed separately.

Best Practice: Large site collections should be dedicated to a single database.

Tip: Application pools:

  1. 32 bit – can handle up to 1300 mb per app pool before recycle
  2. 64 bit - up to 6 gigs per app pool

No best practice for how many Content Databases is the right number. This is more of a management issue for the business's IT staff.

Tip: Don’t put too much content into one site collection. Try to keep DB sizes under 100 gig – rough rule of thumb

Best Practice: Database Maintenance Plan: In SQL Server, do not use default growth plan, don’t autogrow in production, and plan sizes ahead of time

Disaster Recovery can be done via Stsadm, SQL Backups, Log shipping, remote snapshots

Best Practice: When Moving Config databases: use preparetomove, then detach and reattach (otherwise you get GUID problems!)

Customization and Development

You have to have a policy for how this happens. It HAS to use features and solutions or it doesn’t make it on the server!

Best Practice: Use Code Access Security (CAS) when coding

Best Practice: Test for memory performance and disposal of objects

Best Practice: Test adding and removing solution to the farm

Tip: To see which solutions are running – go to admin/solutionstatus.aspx

Best Practice: Deploy Solutions off peak hours, because all deployments will recycle the app pool which will dump user sessions. Also be present so you can test it!

Defaults Have Faults

Server:

  1. Default log and app locations are not great
  2. Basic setup is NOT recommended since it installs SQL Express
  3. Having a different Application pool for every site collection is too much
  4. No backup is scheduled by default

Site Collections:

  1. No quotas, no expiration, no auditing
  2. No versioning, no checkout
  3. No approval or workflow required
  4. SharePoint Designer allowed for all admins and designers

Database:

  1. Max # of site collections is too high
  2. DB file location and growth plan are wrong

Sunday, June 29, 2008

TechEd 2008 Session Notes: Microsoft IT Best Practices

Microsoft IT ran several sessions on the topic of SharePoint governance. The ones I attended were Microsoft IT: Building Applications and Reusable Code on SharePoint, and Microsoft IT: How Microsoft Plans, Governs, and Operates Custom Applications and Portals within Microsoft. Both were hosted by David Johnson and Sean Squires. David and Sean did a great job sharing their practical experience and knowledge, and cultivating an open dialogue between themselves and the audience.

It was quite fascinating seeing how Microsoft "eats its own dogfood". However the resources they bring to bear make following their example a little problematic.  Microsoft IT use literally dozens of SharePoint farms, which from a licensing perspective alone would be prohibitive for any other organization.

SharePoint Structure

MS has several MOSS environments and many farms:

Vanilla SharePoint farms: staff can collaborate and use SharePoint Designer to tweak, but no custom code. Also includes My Sites. Most people use this.

Dedicated farms: Custom code deployed, no ability to use SharePoint Designer, supported by SLAs. They are currently trialing Enterprise Agreement-style process for helping Microsoft business units renew their portal use. They have to adhere to these agreed-upon standards or they can't use a dedicated farm.

Platinum – 7 major portals, specific customization and LOB applications, plus much more governance.

How They Do It

Created a diagram of information landscape and "pillars" - a catalog of existing code which allows reuse across the organization

Solution Catalog – list of custom solutions and samples

TIP: Don’t use MOSS as a relational database!

Best Practice: Standard application architecture - design for reusable components and in layers

Best Practice: All external UI labels and messages are stored in resource files (.resx) and SharePoint lists - this allows rapid UI changes without recompiling / redeploying. Configuration done via lists

TIP: XSL is critical to parse and present XML. Related to this, any custom UI uses token-based HTML templates

TIP: Make heavy use of Content Query webpart. There is a newer version of this with some changes to make it easier to modify

Security – typically use AD groups rather than SharePoint group. This is consistent with Microsoft's existing AD groups. Also when using SharePoint Groups, adding and removing users automatically causes a full recrawl. MSIT do create separate AD groups for publishers and creators

Runaway Successes

Vanilla SharePoint is basically a utility environment – employees can run wild subject only to quotas

MSIT – didn’t want to over-govern due to their highly technical staff

However this sometimes leads to “Runaway success”/runaway portals

Cleaning up a runaway portal becomes a matter of business negotiation

They are building new reports to at least assess what’s going on

To fix portal sprawl they are trying to migrate them back to vanilla environments, using scripts to do cleanup.

SharePoint Designer cleanup is much harder

Best Practice: You should organize portal on employee needs rather than org chart which often changes

Dogfooding

Microsoft has to upgrade early in the development cycle of the next generation of SharePoint, so vanilla environments help with migration

Dogfooding – Microsoft IT adopt 3 “9”’s for availability (99.9%) and no more than that, because they adopt Service Packs and new versions early

Best Practices for SharePoint Governance

MSIT are still trying to arrive at MOSS best practices themselves – they feel they are still in their infancy in terms of governance

Biggest Governance and IA challenge is breaking down organizational boundaries

Create a central place for governance

Create a central area for task checklists, best practices, and criteria for development

Best Practice: Create a “Playbook” of solution / configuration options – so business groups can look at this before they engage. This helps align them to existing solutions and the way SharePoint works.

Create scenarios – during consulting phase – to try to prove value of out of box functionality.

Saturday, June 28, 2008

TE2008 Session Notes: Planning and Implementing Global MOSS 2007 Deployments

The next session I attended was given by Doron Bar-Caspi, Mike Watson, and Joel Oleson. It gave a great overview of things that need to be considered when implementing SharePoint across a WAN. The session covered the various deployment options, suggested information architecture, and gave tips and best practices to handle LAN performance testing.

Geographically-Dispersed Portal Challenges

  • Cost vs Usability
  • Bandwidth can be bought but latency is bound to the laws of physics
  • User experience when accessing information across the WAN

General Options

  1. Central Model
  2. Central with Regional Portals Model
  3. Distributed Model

Global Scale Search

Search Options:

  1. Index centrally for everything. Impacts the WAN due to indexing but this can be throttled on the index server.
  2. Index regionally for regional users. Each region hosts its own SSP. Results in two crawls but can be optimized for search

Federated Search:

New option, part of Microsoft's new Search Engine (which uses the SharePoint Search engine).

MOSS can now get results from remote search servers

My Sites

Usually SharePoint services are centralized

TIP: Consider synchronizing user profiles using custom solutions

Distributed model

Local portals handle everything including their own searching

Legal requirements can force this due to restrictions on data storage and use

TIP: WAN accelerators can help improve perceived performance when accessing information from other portals

Optimizing Authentication

NTLM is faster for smaller sessions, but Kerberos is faster for longer sessions.

Kerberos packets are larger, NTLM is easier to support and troubleshoot.

Which Topology to use?

  • Know your usage profile
  • Know your network
  • Test from remote offices

TIP: Be aware that most work is done in My Site or project sites.

Best Practice: Evaluate bandwidth and latency before choosing a global deployment model. Also look at network maps first to decide whether hub and spoke model already exists.

TIP: Bandwidth and latency data was added to the Capacity Planning tool BEFORE the SharePoint model was added; therefore the calculations may not be fully representative of real world scenarios

Best Practice: Use ping to test latencies – using scripts to test at various times to develop a realistic understanding of network performance.

Consider end to end perceived network performance. Don’t assume anything: issues can be browser, computer, router, or network related

TIP: Use Fiddler to help assess network activity from SharePoint.

TIP: If you use the Business Data Catalogue it can be problematic because it makes big calls to SQL – no batching currently

Codeplex has a data population tool and whitepapers on managing geographically-dispersed SharePoint farms.

Friday, June 27, 2008

TE2008 Session Notes: MOSS 2007 Lifecycle Management: Methodologies, Tools, Best Practices

I thought I would upload my raw notes from Tech Ed 2008 Orlando in case they're of use to anyone. Hope these make some sense...

The first session I caught was given by Luis Camara Manoel and Satish Mathew, who are Program Managers at Microsoft. They gave a demo of new reporting tools which help to manage and report on SharePoint usage in an organization. The question they posed was:

How can you govern SharePoint if you don’t know what is out there? Discovery is required.

The emphasis of this session was on the following utilities.

SharePoint Asset Inventory Tool

Agentless utility; crawls network and reports on deployment and topology inventory.

How it works – runs WMI call to see if IIS is running somewhere. Then sees what web apps IIS is running.

Therefore “agentless” and CPU intensive only on the client, not the server (because it makes SOAP calls as if it were one user requesting).

Download: Currently in beta.

Executive Overview: http://technet.microsoft.com/en-us/library/cc295797(TechNet.10).aspx

SharePoint Capacity Planner

Helps see impact of various device utilizations: CPU, Network, Disk IO.

Steps to use: Assess, Recommend ,Simulate, Report. Can export models to Visio and Excel for further work.

Download: http://www.microsoft.com/downloads/details.aspx?FamilyID=DBEE0227-D4F7-48F8-85F0-E71493B2FD87&displaylang=en

Executive Overview: http://technet.microsoft.com/en-us/library/bb961988(TechNet.10).aspx

SharePoint Cross Configurator

Solution Deployment Package to enable / disable features and configuration. Includes audit, expiration policies, content types, master page deployment and enablement. Source code available in CodePlex at http://www.codeplex.com/SPConfigurator.

Leverages stsadm and makecab. To use: provide app.config file to setup.bat.

The tool will run against existing site collections only; new site collections will inherit the default settings. Only works across site collections, not across farms

Download: http://www.codeplex.com/SPConfigurator

Executive Overview: http://blogs.msdn.com/sharepoint/archive/2008/02/06/standardization-with-cross-site-collection-sharepoint-configurator.aspx

SharePoint Monitoring Toolkit

WSS / MOSS/ SQL / IIS Health roll-up

Uses System Center Operations Manager.

Download: http://www.microsoft.com/downloads/details.aspx?FamilyID=E4600FD9-F53D-4DED-88BF-6BB1932794F9&displaylang=en

Executive Overview: http://technet.microsoft.com/en-us/library/bb975149(TechNet.10).aspx

Wednesday, June 25, 2008

Virtual SharePoint Conference

Last Wednesday I had a chance to participate in a Virtual Trade Show for several SharePoint vendors. This was a nifty little vehicle to demonstrate our products to people all over the world.

The event was organized and hosted by DynTek, a consulting firm, using Live Meeting. They handled all the marketing and arranged for a representative of each vendor to present for up to 15 minutes on the product's capabilities and the value it adds to SharePoint. At the end of each presentation a live poll allowed the attendees to vote on how much a particular tool had captured their interest and notify us if they wanted a follow up demonstration or evaluation.

I ran the echo for SharePoint presentation. The other three vendors were Nintex (presented by Mike Fitzmaurice), ScriptLogic (presenter: Mike Perrault), and BA-Insight (Mark Aschemeyer). As the DynTek invitation put it:

Enhance Workflow & Reporting
Nintex will discuss how you can build complex workflow processes quickly and easily using a web browser interface and provide unprecedented insight into workplace usage, trends and behaviors.
Enhance Permissions
ScriptLogic will discuss how administrators can now backup and restore permissions as well as control the security of SharePoint environments the exact same, clear, intuitive way they would manage the security file servers - all from the same, intuitive console.
BA-Insight Software will discuss how to extend the search capabilities of SharePoint to deliver the most comprehensive and flexible Information Access Platform available in the marketplace today.

Enhance Management
Echo Technology will discuss how to easily migrate and manage change on your SharePoint platform through its entire lifecycle.
Enhance Search

It was a real challenge sticking to the 15 minutes time spot. It meant showing a few slides and setting the scene for why our products added value to SharePoint, and then (if time allowed) running a little demo.

I had a batch of echo Tasks setup ahead of time, so although the time was tight I was able to present live on how we could:

  • Deploy 3 custom web parts from one site to another;
  • Apply a new Theme and Master Page;
  • Migrate files from a file share, apply content type metadata, and insert into a document library;
  • Migrate files from a SharePoint 2003 portal into the same document library, again applying metadata as I went;
  • Activate a Nintex workflow feature to a site collection; and
  • Deploy a Nintex custom approval workflow to a document library

All of these changes were done from a local Development portal to a remote Production portal to demonstrate how easy echo makes that.

Kudos to DynTek for the cool concept and especially to Linda Ford, Julie Trautwein, and Dave Chennault who fronted the event. Well over 100 companies attended, and feedback has been very positive. Everyone seemed to enjoy the virtual format, which is so convenient. Hopefully DynTek will invite us to the next one!

Sunday, June 15, 2008

Tech.Ed Orlando 2008

I just spent the week in Orlando attending the sessions and helping to staff the echoTechnology booth. It was an excellent networking opportunity (as these things always are) and a great way to talk to people about their SharePoint implementations and pain points.

Tech.Ed Orlando 2008 echo Booth Garry Smith and RK BomminiTech.Ed Orlando 2008 Keynote Speach

By now many organizations have had a chance to evaluate SharePoint 2007 and have either implemented a farm or are about to. One complaint that came up again and again from early adopters is that the portals "ran away" from them and had become a real mess to manage. Another is that it was becoming so hard to maintain the portal that administrators were starting to push back at the business requirements, with the result that the SharePoint implementation was not evolving as well as predicted.

In some ways SharePoint is a victim of its own success - it looks like a wizard-driven software suite and it appears that after a couple of clicks a portal is up and running and ready for the business to use. This is not true!

SharePoint is most interesting and worthwhile when it is helping an organization solve its enterprise problems - tackling big challenges like document management, information-worker collaboration, and enterprise search. These challenges are far more that just technical; addressing them requires a great deal of communication, focus, and effort on the part of the business. SharePoint isn't a silver bullet, or a shortcut to avoid those hard yards.

The word that kept coming up during the SharePoint sessions and on the show floor was "governance". It's a catch-all phrase that really means making the appropriate and ongoing investments of time, thought, skills, and money in addition to the upfront investment of SharePoint licenses and servers. Without that additional commitment, there is little point attempting a SharePoint implementation - it will be doomed to failure.

So what are some of the practical tasks that need to be undertaken as part of governance? Much more on this in the next few days...

Thursday, June 12, 2008

I'm baaaaaack! Back from Oceania and freshly installed in my native city of Ottawa, Canada. The last couple of years have been a happy blur. I'll definitely miss Oz and the great people at Dimension Data Australia but it's nice to be in the same time zone as most of my friends and family.

As I mentioned in my previous post, I am working on some new projects.
One of these is collaborating with echoTechnology as their new Technical Product Manager to help develop and promote their tool, echo for SharePoint. This is like a Swiss-army knife utility suite that makes changing SharePoint easy. It's a product I've had my eye on for over a year, ever since I first interviewed the echo guys in these posts: echo demo and interview.

The reason I'm so keen on the tool, and why I agreed to work with them, is that after two years of SharePoint consulting I have yet to find a suite of tools that makes it so easy to manage SharePoint configurations and settings. Trying to migrate my solutions from Dev to Test to Prod has been an exercise in frustration. Keeping the state of a farm consistent when multiple team mates worked in parallel, pushing out changes to more than one site, or sharing the deltas with colleagues who are working in their own virtual machines has required a relentless search for scripts, code snippets, and any means possible to gain a little development consistency and control.

Part of my brief with echoTechnology is to work with the community to help develop best practices on SharePoint governance and change management. This is an area dear to my heart, and the focus of many of my workshops and engagements over the last few years. I've devoted a fair bit of space on this blog to those kinds of issues and that will continue.

Whenever possible I plan to release white papers, site templates, and snippets of code on this blog. I hope they will be useful to anyone planning to govern their SharePoint implementation - which should be EVERYONE!

Thursday, April 24, 2008

Hi everyone, just a little update: this blog will be "running silent" until June - as I am currently in the process of (very slowly) moving back to Canadia via the Pacific. I've got a couple of exciting new projects starting up and will be able to post much more frequently and regularly when I get back. Thanks for reading the blog up 'till now and I hope you tune in again in June!
Cheers,

Nick

Thursday, March 20, 2008

Colligo: SharePoint Unplugged

One of the bigger issues with SharePoint is how to make it available to offline or remote users, such as frequent business travellers. There are many vendors working in this space including iOra (now Infonic) and Syntergy, and tools such as Groove are also very useful for this kind of requirement.

One vendor I've heard good things about is Colligo. Colligo has a product that presents SharePoint sites in a seamless online/offline manner so users don't need retraining.

This morning I decided to download the Colligo Reader. It provides a one-way sync from a SharePoint site to a computer or laptop, and is free for non-commercial use. It works for Windows SharePoint Services 2.0 and 3.0 sites, for SharePoint Portal Server 2003, and for Microsoft Office SharePoint Server 2007.

Colligo requires a .NET framework client install on the destination computer, and uses the SharePoint web services so it will be fully supportive of any upgrades and does not require any additional components or installs on servers or any other kind of tinkering.

Downloading it required a quick and painless sign-up at Colligo's website, and then a small install process taking only 30 seconds. Following that I had to quickly activate the program over the internet and I was off and running.

The user interface is spartan and SharePoint-like: this is a good thing as such a tool should be simple and effective at displaying and managing the site content rather than tossing up lots of bells and whistles. The SharePoint look-and-feel is also a must as it makes the whole experience seamless to end users. Here's a screenshot of the basic interface.

 Basic View

To create a sync to a SharePoint site, I used a personal WSS 2.0 site I've had for a few years. In the top left-hand side of the screen I selected the "Site" dropdown and clicked "Download Site". This popped up a very simple box that asked for the URL and the security credentials.

In only a few seconds I was connected and presented with the names of all the SharePoint lists in the site. Next to each was a checkbox so I could choose to synchronize with them. Having selected them all, it began to download the contents:

Synchronization

Sync options include sync'ing a particular site, sync'ing multiple sites, and sync'ing everything. At the bottom of the screen is a "Sync Issues" panel that helps manage any items that failed.

Following the successful download, I was able to read all the content on my WSS 2 website. Each list showed the appropriate views and metadata columns. Filter and sorting were enabled to help manage the content display. On the left hand side the Quicklaunch menu items were all present and there was breadcrumb navigation at the top of each list.

One thing I didn't see (at least in the Reader version) was a search functionality. This would have been very useful. One of my main criticisms of Groove is that its lack of search makes it virtually impossible to find offline content once you have a lot of content and folders. Although Colligo Reader does a much better job at presenting and organizing content (due to its SharePoint nature) search is a must-have in any offline synchronization tool.

Security is applied to the site and list content according to the credentials used to access the site. At least in the Reader version this means no switching between various user accounts for different permissions. Frankly I doubt anyone using the Reader would want to do that - that tends to be an administrator / developer activity. For the purposes of such a tool it only makes sense to manage the content using one set of credentials so I don't regard this as a drawback.

You can download Colligo Reader at their website. http://www.colligo.com/products/sharepoint/reader_how_it_works.asp. In addition to the Reader, there is a two-way Contributor version that allows offline modification of SharePoint lists. This is obviously the real value-add for Colligo. According to their website, pricing for this varies depending on the flavour of Contributor you buy - there are versions that integrate with Outlook and others that work on  PocketPCs.

All in all I was favourably impressed with the Colligo Reader - it is simple and intuitive and functioned exactly as I expected, and I plan to use it in the future.

Sunday, March 16, 2008

Silverlight Blueprint for SharePoint

The Silverlight blueprint for SharePoint is being released by Microsoft to make it easy for SharePoint developers to figure out how to embed Silverlight in their portals. The link to the blueprint site is here: http://www.ssblueprints.net/sharepoint/. It contains a variety of examples of how Silverlight code might be used with SharePoint.

Although it's still embryonic, there's definitely a lot of potential here. Of the examples, the ones that jumped out at me were the Content Types (you can have dynamic sliders for example) and the video How To, which would be useful for user self-training. The examples that made the most sense were video- or picture-related since this obviously plays to Silverlight's strengths.

Some of the examples seem like a fair amount of effort to duplicate functionality that works perfectly fine out of the box. What may be a more compelling use for this kind of graphical technology (Silverlight or, say, WPF) is building a completely immersive interface and only using SharePoint behind the scenes as a (hidden) repository and framework.

Anyone who wants to play around with Silverlight can get free hosting at Microsoft's site, Silverlight Streaming by Windows Live (http://www.microsoft.com/silverlight/overview/streaming.aspx).

Monday, March 10, 2008

MOSS: Microsoft Online SharePoint Server

Awhile ago I blogged about the experiment Microsoft was making providing SharePoint managed services to some of its biggest clients, what I called "SharePoint + Services". I guess the verdict was favourable - Bill Gates recently announced SharePoint Online.

The announcement took place on March 3 at the SharePoint Conference in Seattle. http://blogs.msdn.com/sharepoint/archive/2008/03/02/don-t-miss-the-announcements-by-bill-gates-to-kick-off-the-sharepoint-conference.aspx

Some key features include a guaranteed uptime of 99.9%, the regular out of the box SharePoint functionality, Microsoft Forefront AV scanning, SSL access, and (in the case of the dedicated environment) a data trust to the clients' Active Directory to allow AD integration. Templates will likely include the Fantastic 40 and each user gets 100MB of storage standard.

From an auditing perspective Microsoft offers the following:

  • Sarbanes-Oxley self assessment and external audit support
  • SAS 70 Type II self assessment and external audit support
  • Security assessments
  • Intrusion monitoring and detection

The auditing is a good way of reassuring nervous customers that hosting in the clouds won't present any legal threats.

I rushed to sign up for the beta but this is currently only available to some US-based customers. After a few months of beta testing hopefully they will release to the global market.

It remains to be seen what the pricing structure will be (Microsoft suggests they will follow the regular Software-as a Service model of "pay per user per month").

For small and medium organizations online SharePoint hosting may be very tempting as they will forego the complexity of planning, configuring and managing SharePoint in their environment and concentrate on using it. Larger organizations may be better placed / more interested in managing their own systems, or (depending on the price) may find it too expensive when scaled to thousands of users.

Current MOSS managed service providers include WebCentral in Australia, eMantra, and Altus in Canada and the United States.

Sunday, March 02, 2008

Data In, Data Out

An important emerging web development initiative concerns "data portability", or how openly and transparently a website or application consumes and provides data. In a world of mashups, web services, and walled gardens like Facebook or MySpace, it is becoming an increasing concern for a variety of reasons.

To begin with, users want to know that the information they enter into a website is theirs to manage, share, and remove over time.  This matters for convenience (so they don't have to reenter it all the time) but also from a privacy perspective.

A famous recent example saw Robert Scoble temporarily banned from Facebook for breaking its terms of use by running a script to access his social graph (contacts). This focused a great deal of attention and debate on who "owns" this sort of information - the person entering the data, the website that hosts it, or the individuals whose information is being stored.

Developers also care about this as we are all tired of reinventing the  wheel every time we want to share data with another application. A major consequence of the recent wave of web development trends is the increasing importance of application integration and data integration standards. These days, "No Web App Is An Island".

To help address these needs, a community is coalescing under the banner of the DataPortability Group. Their website is located at http://www.dataportability.org/ and discusses the issues in detail. They define portability as

both physically moving data or simply porting the context in which the data is used

Their effort involves identifying and evangelizing existing data portability standards, rather than creating new ones. They also hope to encourage a trust framework that will benefit vendors and consumers.

The rapid adoption of this initiative shows how quickly things move in the IT world, if proof were needed. The project was first founded on October 11, 2007, and is already gaining a great deal of steam. The website has an interesting timeline showing how quickly support is building: http://groups.google.com/group/dataportability-public/web/buzz

Some recent events of note included Google, Plaxo, LinkedIn, Twitter, Flickr, Six Apart and Facebook joining the workgroup; Google, Yahoo, IBM, Microsoft, and VeriSign joining the OpenID Foundation board; and MySpace launching its Open Developer Platform.

Obviously most of the activity is driven by the Social websites as they have the most to win / lose. Issues of personal privacy and trust are crucial to their continued popularity (the Facebook Beacon PR disaster is a prime example of this). 

Nonetheless, I imagine within a few years every major Software vendor will have the DataPortability-compliant tickbox in their sales material, or their shareholders will demand to know why not. Case in point: Blogger, owned by Google, now supports OpenIDs on its blogs (such as this one), and Yahoo users can use their Yahoo! accounts as OpenIDs.

Interestingly enough, some of the standards the DataPortability group advocates are the ones that might lead to the long-envisioned semantic web - namely microformats, which can potentially add machine-readable "context" to data.

It's an interesting space to explore, and I plan to blog about it as I learn more.

Sunday, February 17, 2008

Starlight Day SharePoint Site

Starlight Day is an annual event when volunteers from across Australia donate their time and money to give sick children a wish. This year Dimension Data Australia worked with Starlight Children's Foundation to create a new public Internet site that would allow the Foundation to sign up and track volunteers, as well as modify content on the fly, rather than going through the existing manual and laborious process.

For the last few months I've watched my colleagues working hard to create a MOSS Internet with some custom application development and last week their efforts were rewarded when the site launched. I thought it would be nice to profile the site as another example of what can be done in a short time frame with SharePoint, and to identify the challenges that they overcame.

The Solution

MOSS 2007 was used with the Internet Connector License to allow content updates by Starlight staff. In addition, a custom volunteer roster system allowed visitors to find and sign up for Starlight Day activities based on a postal code.

The Team

In alphabetical order, the Microsoft Solutions - Application Integration team members who worked on Starlight Day are:

  • Slava Gorbunov (Roster custom web development)
  • Hatim Hamid (Quality Assurance)
  • Marianne Hidalgo (Quality Assurance)
  • Abdul Khan (Deployment)
  • David Langeder (Practice Manager)
  • David Marsh (Deployment and web development)
  • Karina Smith (Visual Design and Information Architecture)
  • Viraf Wadia (Project leader)

Viraf: “I was responsible [for] delivering the project...It has been a fantastic achievement from the team. Makes me feel proud in helping Starlight achieve their goal of having an internally hosted internet site that they can manage from a content and branding perspective”

Hatim: "Basically, I have been testing, testing and more testing. Specifically, I have been [testing] the Starlight Day Roster...The other thing I have been doing is some performance testing."

David Marsh: "It went well - I could have made more structure and process around the deployment strategy. The best part was seeing the final design come together using all the WCM features."

The Challenges

Essentially Starlight Day presented the familiar challenges of any custom web application and website launch:

  • Coming up with the Visual Design and site architecture
  • Content development
  • Coding and refactoring
  • Deployment and change management
  • Bug, integration, and performance testing
  • Project management
  • Timeframe: The entire project including planning, infrastructure, installation, customization, content delivery, and live deployment fell within a 3-month window.

Development

The idea was to use as much "out-of-the-box" as possible. The customizations were broadly limited to:

  • Preventing core.js from loading for anonymous users
  • Creating rotating list of images using Summary Links Web Part and JavaScript
  • Preloading image scripts
  • Storing images in separate libraries
  • The Volunteer Roster was the most significant development piece

The team had to quickly come up with functional requirements to identify precisely how the process would work. The requirements had to be "as simple as possible, but no simpler". Then visual design had to commence to identify what pages were required and what the flow was like. At this point coding began in earnest using .NET 3.0.

Deployment

Deployment was carried out using SharePoint's Feature and Solutions model with some batch files to automate. The team used STSDev from CodePlex to help manage features and solutions. Content was updated live by Starlight's staff while work was still underway, so coordination and communication was critical.

They did a content migration using WCM instead of a database migration (using attach and reattach). David Marsh suggests that might have been better because some things in content migration didn't work such as some pages became corrupted and some options in SharePoint no longer worked since they were referencing the old development server's URL. Fixing this required some manual tweaking. In hindsight he suggested they needed to plan for more time to fully integrate roster functionality into SharePoint (via custom web part or as ASPX pages).

Bug Testing

Not all URLs were fixed up automatically during the migration to production. Database migration would have fixed this. The design layout and content needed to be tested in all browsers. Not surprisingly, older browsers had issues with the CSS - not a SharePoint issue, rather CSS-related.

Key Learnings

  • More prototyping is required up front to verify and validate design concepts. This de-risks the project and nails down task deliverable times
  • Plan deployment earlier - document and test each type of deployment
  • Never underestimate the time it takes to test and deploy
  • Use enough environments to adequately develop, integrate, test, and manage content approval and staging

Starlight Day is May 2, 2008. You can view the live site at http://www.starlightday.org.au/. The custom roster page is at http://www.starlightday.org.au/StarlightDay/GetInvolved/Volunteering/Pages/VolunteerForStarlightDay.aspx. Congratulations to the team for a job very well done!

Tuesday, January 29, 2008

Microsoft Developer Roadmap Documentation

On Saturday Microsoft released documentation outlining step-by-step roadmaps for some common SharePoint tasks. So far these include the following activities:

  • Setting up SharePoint servers
  • Deploying code and customizations
  • Creating sites and subsites
  • Page designs
  • Document management
  • InfoPath forms
  • workflows
  • Business Intelligence
  • Records Management

Each section is a detailed, matter-of-fact outline of the tasks that should be undertaken and the order in which they should occur. The sections frequently reference content which already exists on MSDN, Technet, Microsoft team blogs or third party bloggers.

The SharePoint team hopes to fine-tune the content over time if the community marks these sections as helpful or submits suggestions or comments on them.

Full details are at http://blogs.msdn.com/sharepoint/archive/2008/01/25/announcing-design-and-build-sites-for-office-sharepoint-server-2007.aspx and the documentation itself can be found at the Technet site at http://technet2.microsoft.com/Office/en-us/library/df6a8515-f49a-4792-8d51-dec4648415541033.mspx?mfr=true

So far in the last year we've seen the release of a mass of content, ranging from

  • Microsoft's Interactive Development Map WPF desktop tool;
  • End user training via desktop install or the SharePoint Learning Kit;
  • SharePointPedia;
  • The SharePoint and WSS SDKs;
  • this latest MSDN and Technet documentation;
  • and of course a multitude of blogs.

It's a full-time job to keep up on the platform, but I guess it keeps us out of trouble!

Saturday, January 12, 2008

Anonymously Searching User Profiles in MOSS

I had a requirement the other day to enable anonymous access on an internal portal and allow users to search across the user profile database - to create what was essentially a corporate directory.

The anonymous "core requirement" was to ensure users didn't have to log in when trying to look up their colleagues (they are using the dreaded Novell e-Directory which does not play nicely with SharePoint). Anyway this time the issue wasn't importing the e-Directory accounts but rather a 401 - Unauthorized error that kept appearing when trying to view the people results.

I tried the following things:

  • I enabled Anonymous access first on the Search Centre lists and libraries and eventually on the entire site collection
  • I added IUSR as a member of Intranet Viewers and made sure that in the policy permissions for anonymous users they had a limited read policy setup
  • I tried to add IUSR_ to the SSP Settings - "Process Accounts with access to this SSP"
  • I manually turned on anonymous access to some of the individual mysite site collections that I was trying to view
  • I modified the My Site settings in the SSP to allow IUSR to be part of the default readers group and for any existing My Sites. Then I had to go to that My Sites collection and give READ permissions directly to the IUSR account
  • I created a custom permission level called "Anonymous View" in the site collection, added View Application Pages, View Items, View Pages, and Open permissions. Then I added the anonymous view permission in the "Intranet Visitors" group to ensure they could get these extra permissions.

Nothing worked. If I tried getting results back directly from the People Search page, the 401 error would instantly appear. For some reason though I could perform a user profile search if I used the regular All Items search with the People scope. However when clicking on the results the 401 error would subsequently appear.

The conclusion: anonymously accessing user profile data does not seem to be supported out of the box. I suppose some custom code might fix this but my goal was to adhere to the vanilla SharePoint as much as possible.

This issue seems to be by design - the user profile data includes colleague information, social relevance algorithms, and organizational hierarchies. None of that information would pertain to the anonymous user account. Additionally, the actual user profile data may be considered sensitive.

Has anyone else come across this limitation, and if so how did you resolve it please?

Sunday, December 23, 2007

Merry Christmas and Happy New Year!

2007 is almost over, and I hope it's been productive, successful, and happy for you. Best wishes for a great holiday season, and good luck in 2008!

Cheers,

Nick

Christmas Tree, Martin's Place Sydney

Tuesday, December 18, 2007

Multilingual MOSS

I investigated MOSS variants briefly in the Beta days but the language packs weren't out so I never had a chance to really play with them, until today.

I'm still learning about the feature set but I hope these instructions will help other people who need to setup or manage multilingual SharePoint portals.

Installing SharePoint Language Packs

To install the MOSS language kits:

  1. Change the Regional settings of your Web Front End, Query, and Index servers to support the additional languages by going to Control Panel > Regional and Language Option and adding the languages you intend to support.
  2. Download the MOSS language packs (make sure you pick the correct language from the drop-down list first!). The URL is http://www.microsoft.com/downloads/details.aspx?FamilyID=2447426b-8689-4768-bff0-cbb511599a45&DisplayLang=en
  3. Install this on your MOSS server.
  4. The installation, when complete, will prompt you to run the SharePoint Products and Technologies Configuration wizard. Do not change any of the settings and click "Do not disconnect from this server farm" if you see that option.
  5. All languages are installed in \Program Files\Common Files\Microsoft Shared\web server extensions\12\template\[number of the language, eg 1033 is English)

Testing The Variants

To test the variants functionality I have installed the French language pack and set up variants for English (Canada) and French (Canada).

  1. In your portal create a new site using the Publishing or Publishing Site with Workflow site template
  2. Go to the site collection and in Site Actions > All Site Settings, click "Variations"
  3. Browse to your publishing site (normally this will probably be your root publishing site, but this could be anywhere in your site collection). Leave the defaults and click OK.
  4. Go back to Site Actions > All Site Settings and click Variation Labels
  5. Create a variant label called en-CA and make it the source. Choose Publishing Site with Workflow.
  6. Variant Labels Create a new variant label called fr-CA, with display of French (Canada) and culture French (Canada).
  7. Go back to the list of labels (you should see both) and click "Create Hierarchies".All Variant Labels - Hierarchy Created
  8. Now the hierarchy will be set so en-CA is our source and fr-CA is our target.

Now we need to start modifying content and seeing how the variants work in practice.

  1. In Central Admin, there is a Variations Propagate Page Job Definition and Variations Propagate Site Job Definition that will run to publish any changes.
  2. Go to the publishing source site and edit some content and publish it with approval. A reminder will tell you to check for unpublished items, if you forget.
  3. After the content is published and approved, and the variation job has kicked in (usually a minute or two) the content will appear in your variant sites. You will still have to modify, translate, and approve those as normal.

Browser settings

When you visit a variant site in MOSS, the browser will try to default to your preferred language if it can detect it. You can experiment by adding a new French (France) (FR) variant  label  (in addition to the French (Canada) one) and then  adding French (France) and French (Canada) (FR-CA) to your internet browser's languages list.

Browsing to the root translation site will cause it to pick which label to use - if I put the France language first in my browser list of preferred languages, it will bypass the FR-CA site and show me the FR variant instead.

Gotchas

  1. If you create subsites, they have to be publishing sites to preserve this language ability. If you make a team subsite for instance it won't handle the variants for you.
  2. If you add new language labels later on, you have to create hierarchies again.
  3. If you add a new language variant, it doesn't seem to pick up the existing content, so you might have to "force" the update by modifying the source content again, even if it's just to update it with no changes - so if you are going to use variants plan ahead and try not to add language packs over time!
  4. If you update the source content, it seems to overwrite the target translations (although a version will be saved for them). This is a big GOTCHA!
  5. The use of publishing approval workflows is a very good idea because this kind of content translation usually requires some level of publishing oversight. However if you're testing variants in development it can involve a lot of clicking and approving, and sometimes it's easy to forget to approve content.

Are any of you using this in production? What do you like about the system, what gotchas have you found, what tips and tricks have you come up with?

Sunday, December 16, 2007

"Our World" - Free Environmental Site Templates

I thought it might be fun to create an environmental initiatives site template for MOSS 2007. The goal is to help organizations track the impact their policies have on the environment, in the hope of raising awareness around ecological issues.

I've tried to stay away from the political aspects of this kind of effort. There are links to several national environmental organizations, an RSS subscription to World Wildlife Foundation, and a link to a carbon footprint calculator, but I left out anything I thought might be too regional or controversial.

I've included an Excel spreadsheet I created asking some general questions about an organization's environmental policies. It's the standard 1 to 5, Strongly Disagree to Strongly Agree questionnaire format, and no it's not very scientific!

There are also a handful of nature images in the picture library - you are free to use those inside your portal.

I started with a blank site definition and used as many MOSS web parts as I could. There are two versions of the site templates: the first is for MOSS Standard license and contains the basic site, called "Our World". Feel free to change the site template name if you find it too cheezy :)

The Enterprise License version includes a child site called the Environmental Initiatives Dashboard. It's got KPIs mapped to the questions in the Excel spreadsheet.

  • To download the Standard .stp file contained in a zip file, click here. It is 4.8 megs.
  • To download the Enterprise version, I've created a zip file  containing 2 site templates (5 megs). First install the OurWorldEnterprise.stp file into your portal. Then under it, create a subsite with a url of "dashboard" (otherwise the links won't work). Pick the OurWorldDashboardEnterprise.stp site template and you should be good to go.

SharePoint's so easy to customize that the total effort was only a couple of hours, including all content generation. This is only a starting point - I would really love to hear from you about the site templates, especially if

  1. You are using them,
  2. You are making improvements to them, and / or
  3. You have other ideas on what can be done to them

Oh, last but not least - these site templates are licensed under Creative Commons Attribution ShareAlike 3.0. This means that you can use the template for business purposes (although you can't sell it), but you can only redistribute the template or derivative works under the same license terms. So you are pretty much free to modify and share as you like!

Enjoy!

Wednesday, December 12, 2007

SharePoint Service Pack 1 Released

SharePoint Service Pack 1 was released yesterday.

Joel Oleson has a detailed post on the update at http://feeds.feedburner.com/~r/sharepointteamblog/~3/198847357/announcing-the-release-of-wss-3-0-sp1-and-office-sharepoint-server-2007-sp1.aspx.

Joel mentions that a special page has been created on TechNet: http://technet.microsoft.com/en-us/office/sharepointserver/bb735839.aspx to help people evaluate and apply the service pack. He encourages everyone to look before they leap when it comes to applying the service pack.

The SP download is here: http://www.microsoft.com/downloads/details.aspx?FamilyId=9EC51594-992C-4165-A997-25DA01F388F5&displaylang=en

Tuesday, December 11, 2007

Quick and Dirty Web Parts

SharePoint is a joy for Rapid Application Development and prototyping. It's great fun to sit with clients and run up site hierarchy or document taxonomy on the fly, in response to their direct feedback.

When it comes to any custom development, there is a bit more heavy lifting - especially if there's a requirement for custom web parts. This starts to involve Code Access Security, custom control lifecycles, and change management.

What if you just want to do some RAD custom development?

There are some nifty shortcuts to help with web part prototyping. First of all, the SmartPart and Son of SmartPart are wonderful little controls created by Jan Tielens. They make it easy to create custom user controls with full design support and then make those work in a SharePoint context.

In a similar vein, MOSS includes the very useful Page Viewer Web Part. This is available right out of the box with no assembly required. Follow the steps of this example to use it with very little effort:

1. Create a basic web page, Default.aspx with the following script:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="CustomSharePointWebApp._Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:TextBox ID="Field1" runat="server"></asp:TextBox>
        <asp:Button ID="SubmitButton" runat="server" Text="Button" />
        <asp:Label ID="ResultLabel" runat="server" ></asp:Label></div>
        <asp:RequiredFieldValidator ID="Field1RequiredFieldValidator" ControlToValidate="Field1" ErrorMessage="Field 1 cannot be empty" runat="server"></asp:RequiredFieldValidator>
    </form>
</body>
</html>

2. Use the following code for the code-behind:

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

namespace CustomSharePointWebApp
{
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Page.IsPostBack)
            {
                ResultLabel.Text = Field1.Text;
            }
        }
    }
}

3. Now right-click the project file in the Solution Explorer and click "Publish". For target location, enter the full path to the _layouts folder as well as the name for your custom app, ie:

http://[Your Sharepoint Portal]/_layouts/[Your web app name]/

This will automatically migrate the code and create a folder in the _layouts directory.

4. Now create a test team site somewhere on your portal. Add a Page Viewer Web Part to the page, and point its link to your application's default.aspx page.

5. You should now see your application appearing in the team site, with full SharePoint context, Master Page, and site hierarchy. Notice that in the example we created, the default.aspx application lifecycle is handled completely outside of SharePoint. By deploying it in the _layouts folder we can lstill everage the SharePoint user context if we need to (for security trimming, user profile information and the like).

Custom Form with Page Viewer

Happy prototyping!

Caution: The Page Viewer Web Part uses iFrames, which present some potential security concerns, such as cross-site scripting attacks. iFrames are probably safest if hosted internally; don't deploy these to public-facing sites unless you've closely examined the security implications!

Saturday, December 01, 2007

SharePoint Kits

There's some cool pre-Christmas SharePoint gifts here or almost here:

First off, SharePoint Service Pack 1 is on the way. There are some new stsadm commands, a rollup of the various hotfixes that have come out, and support for creating custom web parts with the AJAX toolkit.

The SharePoint Team Blog dives into all the details at http://blogs.msdn.com/sharepoint/archive/2007/11/29/preview-into-wss-3-0-sp1-and-sharepoint-server-2007-sp1.aspx.

Just released is the Accessibility Kit for SharePoint from HiSoftware and Microsoft. I've blogged about this in the past and it will be important to many organizations that have been unable or unwilling to consider MOSS for public portals due to accessibility requirements. It's available on CodePlex. The nice touch with this kit is that it is intended to incorporate community contributions (as you'd expect on CodePlex) so the kit will improve as people contribute to it. The full details are at http://blogs.msdn.com/sharepoint/archive/2007/11/28/announcing-the-accessibility-kit-for-sharepoint-aks-1-0.aspx.

Finally, if you work with Business Objects, you'll be pleased to know they just released a free integration kit for SharePoint called the "BusinessObjects Enterprise XI R2 SharePoint 2007 Portal Integration Kit" (or BO E XI R2 SP 2007 PIK for short). You can download that here (5 mb zip file). The kit includes document and list view web parts to help create dashboards.

Each of these releases opens up worlds of development possibilities. The depth of SharePoint's integration capabilities continues to increase, and this is just Year One!

Friday, November 23, 2007

Visual Studio 2008 and .NET 3.5 Release

This week Microsoft released Visual Studio 2008 and .NET Framework 3.5.

Over the past month I've been running the Beta 2 in the Virtual PC Microsoft provided. This was an excellent way to evaluate the beta version since it isolated the code from my laptop - making it easy to remove now that I can upgrade to the RTM. I love this approach and hope to see more of it for CTP and Beta releases.

I remember upgrading from Visual Studio 2003 to Whidbey was a frustrating experience since there were a lot of incompatibilities due to the underlying changes in the .NET framework - particularly the change from the code-behind to the code-beside model. This time, the upgrade tool didn't seem to have too much to do. The code I was running in Beta 2 happily migrated to RTM without any problems, which was a nice little bonus. In fact I've always found the Visual Studio betas to be exceptional stable and this doesn't seem to have changed.

New Language Features

.NET Framework 3.5 introduces many new language features. These are powerful but sometimes a little hard to grasp. LINQ is probably the most significant change but it builds on existing .NET 2.0 functionality including Generics, as well as new language additions such as Lambda expressions and anonymous types.

Extension methods allow you to add static methods to add functionality to existing classes. This may be most useful when you need to add functionality to a library you can reference but not change (such as to someone else's code, or the .NET framework itself). Use with caution as extension methods are not a substitute for proper software architecture.

There are some nice new bits of syntactic sugar. One of these is Automatic Properties. Rather than creating member variables for parameters, I can now create parameters that look like this:

public String FirstName { get; set; }

public Int32 Age { get; set; }

Object and Collection initializers also make it easy to create and assign properties all on the same line.

Visual Studio 2008 and Training Kit

Visual Studio IDE itself doesn't seem to have changed too much. One nice new feature is the ability to target multiple version of the .NET framework within a solution. I used this to switch a couple of libraries in my custom framework to use framework 3.5 features (such as LINQ), while the rest of my class libraries stayed at 3.0.

Many of the changes in the studio target web development, which suits me fine. The split-pane window is a nice way of viewing the code and design views at the same time. CSS support is improved in the GUI by visually showcasing inheritance rules. The AJAX toolkit is included by default, as are WCF and Workflow templates (including SharePoint workflows, hooray!).

Testing is facilitated using Microsoft's MSTest framework which is now available with the Professional version (before it was only available with Team Studio). The online community is keener on MbUnit or Nunit but there's no harm in having a third option that's built-in.

There is a wonderful Visual Studio 2008 RTM Training Kit which provides tutorials and videos to help get users up to speed. From the kit's installed home page:

[The Training Kit] contains a full 5-days of technical content including 20hands-on labs, 28 presentations, and 20 scripted demos.   The technologies covered in the kit include:  LINQ, C# 3.0, VB 9, WCF, WF, WPF, Windows CardSpace, Silverlight, ASP.NET Ajax, .NET Compact Framework 3.5, VSTO 3.0, Visual Studio Team System, and Team Foundation Server.

Five full days of technical content? Better crack open that case of Jolt cola! The kit is publicly available at http://go.microsoft.com/?linkid=7602397.

"Paying Off Debt"

There is an interesting article on eWeek about Microsoft "paying off its debt". Soma Somasegar who is the corporate VP of the Microsoft Developer Division explains how he shut down all engineering on Visual Studio for four months and set everybody concentrating on removing as many bugs as possible.

Following this period, known as "MQ" or Milestone Quality, each feature team was limited to a certain number of outstanding bugs at one time. These actions, referred to as an "engineering investment", resulted in an increase in quality in the product. In fact the Visual Studio team won an internal engineering award from Bill Gates for this effort.

It's an interesting insight into Microsoft's development efforts. Presumably this work will also really pay off for future release of Visual Studio.

What's Next?

Speaking of which, now that the current version is RTM, it's time to look ahead again. Programmers are never satisfied! The Visual Studios "futures" roadmap is posted at

http://msdn2.microsoft.com/de-de/teamsystem/bb407307.aspx.

Rosario is the upcoming Team Edition version and will be next on the block.

As well, Microsoft will be providing a window into the .NET Framework source code within a few weeks. This will prove helpful in debugging, especially with lower-level coding. Scott Guthrie explains exactly how this will work. Currently this sort of framework-spelunking is usually done with Lutz Roeder's Reflector.

The Visual Studio 2008 website is located at http://msdn2.microsoft.com/en-us/vs2008/default.aspx.

Sunday, November 18, 2007

SharePointPedia Is Live

The Microsoft SharePoint group has launched SharePointPedia, which is intended to be a community site for sharing knowledge around SharePoint. Although the name might imply a Wikipedia style wiki collaboration system, the site is really an easy way to link to, find, and rate articles that exist elsewhere on the net. As the site itself says:

SharePointPedia is not a wiki. It’s a “pedia” in the sense of being a compendium of useful content, but rather than being limited by just wiki functionality, it leverages the much broader set of capabilities in SharePoint. SharePointPedia is also about community, where you can find and connect with others, who have similar interests as you or who have recommended content relevant to you.

It is easy to submit new content and there are a variety of folksonomy tags such as "Collaboration", "Personalization", "Web Publishing" to tag against the article submission.

The value of the site will largely depend on the community submissions but since there is so much content out there it may prove to be a useful launching pad. Right now everyone spends a great deal of time tracking all over the net trying to research particular SharePoint issues and hopefully this compendium will help streamline that.

You log in using your Windows Live ID and get ratings based on your contributions. The 'pedia is built using MOSS 2007 (of course!) and is located at http://sharepoint.microsoft.com/pedia/Pages/Home.aspx.

Monday, November 12, 2007

SharePoint Migration With MetaLogix

I recently had the chance to evaluate a number of SharePoint content and site migration tools. Past migrations I've done have been performed using the out-of-the-box content migration using the Pre-Upgrade scan, but I have an upcoming requirement to leave the existing SharePoint Portal Server 2003 site and content in place and migrate it slowly to the new MOSS 2007 server over time.

This required an evaluation of third-party site migration tools. One of the ones I looked at was the MetaLogix SharePoint Site Migration Manager. The evaluation license allows you to migrate 50% of the content for a few days, which is enough to run the software through its paces.

The Migration tool installs on a client desktop and this GUI handles 95% of the migration tasks. However if you want the migration process to do things like map the user accounts you'll also need to install a special service on the target server.

I liked MetaLogix Migration Manager's intuitive interface. After the installation it was easy for me to add a reference to both the test SPS 2003 portal and the test MOSS 2007 portal. This is done by typing in the URL and either using the default portal access account or manually specifying it.

The interface has three major views:

  1. The default "Explorer" view, which is a complete site hierarchy view of the sites you have added;
  2. "Browser" view, which renders whatever site node you have selected in the explorer view. It's a great way to quickly view the content of a site or list; and
  3. "Item" view, which shows you the content of lists and libraries.

Migrating content or sites between portals was as easy as right-clicking the source node, clicking "Copy", and right-clicking on the target site and clicking "Paste". A dialog box shows the progress and the result appears in the Log window at the bottom of the screen, which you can always refer to. There is verbose logging in a text file.

Paste Shared Documents List

Other nice features:

  • Batch mode, so that all actions can be scripted to run at scheduled times. The batch file is in XML format so it can be programmed and is human-readable.
  • Delta migration: You can choose to only migrate the changesets instead of all the content each time.
  • List copy: You can choose to append and concatenate multiple libraries or lists together which helps merge them in the new portal.
  • You can migrate versioning and security permissions
  • Replace Within Field: This is a quick string search that allows you to replace text in content you've migrated, such as URLs. In the future I'm told this will be an automatic step in the migration.
  • Mapping to site templates. You can explicitly map SharePoint 2003 site templates to the new MOSS templates (it will attempt to map them automatically by default). I noticed the mapping options seemed to include the Fantastic 40 site templates which was a nice touch.

The only issue I found with the product occurred when I tried to migrate the content on an SPS 2003 Area over to MOSS 2007. It brought all the content, web parts, lists, and libraries over with the exception of the Area Detail and Browse Area By web parts. However as those two web parts relate to the old SharePoint 2003 Area concept which no longer applies, I'm not too fussed. The MetaLogix staff were keen to help me investigate this, if I had been willing.

During the course of the trial I spoke to Julien Sellgren and Rasool Rayani at MetaLogix. They were helpful and responsive to my questions, giving me a walkthrough via a webcast and extending the evaluation period while I was testing area migration. Rasool also explained to me that they are releasing feature packs and updates on a 6-week basis so the product is evolving quickly.

You can learn more about MetaLogix and download the evaluation version at their website.

Wednesday, November 07, 2007

Microsoft Announces Search Server Express

Today Microsoft announced that it will be releasing a free search tool for enterprises based on SharePoint and SQL Server. Search Server Express for organizations can be installed on a standalone server and leverages Microsoft's SharePoint search engine.

The engine looks just like WSS and SharePoint Search. The administration console has many of the same options as the current MOSS Shared Service Provider search settings. These include content sources, best bets, and scopes. Alerts and RSS feeds are available on the results.

Some of the neat aspects of the new solution:

  • It supports the OpenSearch standard. This will help integrate Microsoft's search crawl and integrate with a wide variety of applications from other vendors.
  • Federated Security: Authentication against content sources can be done via NTLM, Basic authentication, Forms Based Authentication, Kerberos, and "cookies". Access control lists are applied to the indexes and security trimming is provided on queries.
  • Continuous Propagation Indexing: No need to wait for the whole corpus to be crawled before searching can be performed; the index will now be incrementally updated and searches can be performed on that increment immediately.

The express version can only be installed on one server. Naturally there is an upgrade path to more expensive solutions for those organizations that require scalability.

In 2008 Microsoft will also release some free connectors for Documentum and FileNet.

Microsoft has adopted a similar approach in the past with the releases of Visual Studio 2005 Express and SQL Server Express. In this case Search Server Express will provide a useful, free solution to give customers a taste of some core platform functionality and get developers using it.

The Enterprise Search website is located at http://www.microsoft.com/enterprisesearch/. You can download the release candidate here.