Best Practices Conference: Aug. 24-27, 2010

BPConf125x125 Ever wondered whether the way you’ve designed, implemented and continue to support your SharePoint installation is the best way possible? Or could there be easier, better, more efficient ways to get things done?

Almost every SharePoint practitioner I’ve met has wondered the same thing at one time or another.  Well here is your chance to find out.  Join some of the brightest SharePoint experts in the business to discuss just what are SharePoint’s Best Practices.

I’ll be speaking again at this summer’s SharePoint Best Practices Conference in Washington, DC.  The Conference is from Aug. 24-26 with an extra day of post conference workshops on Aug. 27th.  I’ll be speaking on the following topics:

  • SharePoint Designer 2010: Using it Safely in an Enterprise Environment – Many companies restrict the use of SharePoint Designer 2007 to a small group of people on the professional IT staff.  Some companies prohibit its use entirely.  But many users, in all but the most locked down corporate enterprises, can and do still download and install the free product for themselves.  This has made SharePoint Designer the product that many professionals love to hate.  But SharePoint Designer 2010 is changing all that.  In this session we will demonstrate how changes in SharePoint make it possible to control who can use SharePoint Designer and what they can use it for.  We’ll also examine how changes in SharePoint Designer itself have made it safe to use without the "unghosting" of pages that was the primary problem with previous versions.  Finally, we’ll discuss a Best Practice framework that will allow the controlled use of SharePoint Designer 2010 by average Information Workers in almost every corporate environment.
  • Internet Facing SharePoint Sites: Best Practices for a Secure Design – The advent of two licensing levels for unrestricted use of SharePoint 2010 as an Internet facing environment has opened the floodgates on companies considering using SharePoint for more than a corporate Internet.  But there are still issues to be faced when constructing an Interenet facing SharePoint site.  In this talk we will review how traditional Best Practices for Internet facing Web sites should be adapted to fit a SharePoint installation.  We’ll discuss whether to install SharePoint into a DMZ or as an internal server accessible through a firewall.  We’ll also look at the complications raised by SharePoint’s dependence on Active Directory and Microsoft SQL Server.  Along the way we’ll review various designs and highlight the strengths and weaknesses of each approach.
  • SharePoint’s Branding Continuum: Customizing your Look and Feel – SharePoint 2010 has expanded the possibilities available when you want to brand your SharePoint site with a custom "Look and Feel".  You can now change color schemes by using the new THMX themes, change the basic "look and feel" using custom CSS, or radically change the layout of the page using a custom master page.  In this talk we’ll help you decide which of these is the right approach for your branding project.  We’ll discuss the technical expertise required to pull it off and look at examples of just what you can accomplish with each approach.  Along the way we’ll also discuss general "Branding" Best Practices that will preserve the availability of the whole branding continuum no matter which approach you implement.

    I hope to see you there…

Disabling the Silverlight Prompt in SharePoint 2010

Don’t take the title of this post the wrong way.  I think Silverlight is a wonderful addition to SharePoint 2010 Foundation and Server.  After all, who would suggest that they really prefer the traditional user interface in screenshot 1 below, where the top half of the screen is taken up by instructions and a prompt to load Silverlight, over the Silverlight dialog interface in screenshot 2.  Unfortunately, silverlight requires that a plugin be installed on each user’s workstation and in some environments that is either problematic or forbidden by corporate policy.  This post will explore one option for solving that problem.

NoSilverlight

Screenshot1: No Silverlight

Silverlight

Screenshot2: Silverlight

I’ve been working recently on building an external facing SharePoint site for a client.  When we made the site available for internal users to test it we got reports back complaining about being prompted to install the Silverlight plugin.  Some of our testers either didn’t want to install Silverlight, or were on locked down workstations where they couldn’t install Silverlight.  Unfortunately, if they didn’t install Silverlight they kept getting the nag prompt to install it every time they did something that required Silverlight.  The client wanted a way to permanently remove the nag prompt so none of the external users were ever asked to install Silverlight.  If they already had Silverlight installed that was fine, but this web site should never prompt them to do the install.

In looking for a way to disable the prompt I found that the SPWebApplication object in SharePoint contains a property called AllowSilverlightPrompt.  When this property is set to false users will not be prompted to load Silverlight if it isn’t already installed.  This setting isn’t surfaced anywhere in Central Administration that I was able to discover.  I also found that trying to set it from a Web Part or _layouts application page required raising the privileges of the impersonated user changing the setting.  So in the end I decided to write some short PowerShell scripts that would handle changing the setting.  I wrote both a script to display the current setting and one to change the setting.  Let’s look at the simple Get-SilverlightSetting.ps1 script first.

   1: $webapp= $args[0]

   2: if ($webapp){$wa =  [microsoft.sharepoint.administration.spwebapplication]::lookup("$webapp")

   3: if($wa){

   4:     $switch = $wa.allowsilverlightprompt

   5:     if ($switch){

   6:         write-host "`nSilverlight Prompt " -nonewline;

   7:         write-host "Enabled" -foregroundcolor red -nonewline;

   8:         write-host " on $wa `n";}

   9:     else{

  10:         write-host "`nSilverlight Prompt " -nonewline;

  11:         write-host "Disabled" -foregroundcolor red -nonewline;

  12:         write-host " on $wa `n";}

  13: }else{

  14:     write-host "`nInvalid URL"; 

  15:     write-host "usage: get-silverlightsetting WebApplicationURL `n"}

  16: }else{

  17:     write-host "`nusage: get-silverlightsetting WebApplicationURL `n"}

This script checks in line 2 to see if you have passed a URL for a web application as a commandline parameter and prints out usage information in line 17 if you didn’t.  Line 2 then uses the URL to find a specific SPWebApplication object.  If it can’t find one then it prints out an error message and usage information in lines 14-15.  If the web application is found it uses lines 6-8 to print that its enavled if the allowSilverlightPrompt is True.  Otherwise it uses lines 10-12 to print that its disabled.  This script just displays the current setting and makes no changes.   (Note: the `n used in the write-host lines is an escaped newline character used in the script to format the output.)

Now let’s look at the Set-SilverlightSetting.ps1 script used to turn the silverlight prompt on or off.

   1: $webapp= $args[0]

   2: $switch = $args[1]

   3: if ($webapp){

   4:     $wa =  [microsoft.sharepoint.administration.spwebapplication]::lookup("$webapp");

   5:     if($wa){

   6:         if ($switch -eq $true){

   7:             $wa.allowsilverlightprompt = $switch;$wa.update()}

   8:         elseif ($switch -eq $false){

   9:             $wa.allowsilverlightprompt = $switch;$wa.update()}

  10:         else{

  11:             write-host "`nMissing Switch";

  12:             write-host "usage: set-silverlightsetting WebApplicationURL `$True|`$False`n"}

  13:     }else{

  14:         write-host "`nInvalid URL"; 

  15:         write-host "usage: set-silverlightsetting WebApplicationURL `$True|`$False`n"}

  16: }else{

  17:     write-host "`nusage: set-silverlightsetting WebApplicationURL `$True|`$False `n"}

This script is similar to the last one, but in line 2 it collects an extra commandline parameter representing whether the prompt should be turned on or off.  If it finds the web application it uses the parameter supplied to turn the prompt on in line 7 or off in line 9.  If the prompt is invalid an error message is printed using lines 11-12.   To use the scripts simply open the SharePoint 2010 Managment Shell (be sure to remember to use run as Administrator when opening the shell) and run the following command line from wherever you have the scripts.

.\Set-SilverlightSetting http://siteaddress $False

That will turn off the Silverlight prompt for all the sites on that Web Application.  Once you’ve done that screenshot #1 from above will look like this:

AfterSilverlight

I know it’s not a huge change, but it does remove the annoying yellow bar that makes it look like there is something wrong with your site if you don’t have Silverlight installed.  I hope that helps for all of you who work with SharePoint where Silverlight can’t be installed. 

For the rest of us….

I suggest you just install Silverlight and enjoy the newer interface.

June SharePoint Q&A with MVP Experts

MVP_FullColor_ForScreenDo you have tough technical questions regarding SharePoint for which you’re seeking answers? Do you want to tap into the deep knowledge of the talented Microsoft Most Valuable Professionals? Then join me and other SharePoint MVPs for answers to your questions in a live forum. So please join us and bring on the questions! These chats will cover WSS, MOSS and SharePoint 2010. Topics include setup and administration, design, development and general questions. This month there is only one time slot for the chat.  I’ll be there so bring your questions to the chat on Wednesday June 23rd.  Other MVPs who will also be attending include:

    • Amanda Perran (Canada)
    • Ben Curry
    • Bryan Phillips
    • Dan Attis
    • Daniel Larson
    • Jason Medero
    • Mike Oryszak
    • Muhanad Omar (Jordan)
    • Paul Schaeflein
    • Randy Drisgill
    • Rob Foster
    • Saifullah Shafiq Ahmed (Pakistan)
    • Serge Tremblay (Canada)
    • Shane Perran (Canada)
    • Spencer Harbar (UK)
    • Woody Windischman

Wed, June 23rd, 2010

Noon EDT (9am PDT)

Join the chat room on the day of the chat:

URL: http://www.microsoft.com/communities/chats/chatrooms/msdn.aspx

Twitter hastag:  #spmvpchat

Facebook Event:  http://www.facebook.com/#!/event.php?eid=125885194117000

SharePoint Team Blog post:  http://blogs.msdn.com/b/sharepoint/archive/2010/06/17/live-chats-to-learn-more-about-sharepoint-with-the-mvp-experts.aspx