Cloud-based SharePoint – Risks & Rewards

I just checked out a whitepaper-style document promoting the cloud offerings of a company named SpringCM on the topic of Enterprise Content Management and it got my gears turning about about the the concept of ECM and SharePoint in particular in the cloud. While Office 365 is a viable option for some businesses, in particular up here in Canada it’s a no-go as a lot of governmental and business clients cannot due to legal or policy reasons host on servers that are physically in the US or other countries.

Those types of situations aside, cloud-based ECM seems like a great idea on the surface – an automagically maintained and scaled SharePoint (or SharePoint-style) farm, with no messy details about hardware and networks capacity planning, no depreciation tables, on and on. I got into the Windows Azure platform around this time last year and have seen it grow from a latecomer second to Amazons cloud offerings, to a mature platform which leverages the one great thing Microsoft succeeds with: 100% integration.

You can definitely stand up SQL Server images on Amazon EC2 super-quick but in the end the hardware patterns and practices that MS’s dedicated cloud MS SQL offering uses is going to nail it for performance and overall ROI. So to that end, one would a forward-looking SharePoint shop to be diving headfirst into the fluffy cloud. Not so fast- let’s look at some of the ideas presented in the linked whitepaper and see why the “traditional” method of deploying SharePoint 2010 within the clients existing or new IT infrastructure is still in most scenarios the winning one:

Criteria Conventional ECM (SharePoint) ECM as a cloud platform
Availability
(their take)
High availability requires the construction of redundant costly infrastructure. Economies of scale make redundancy cost-effective for cloud platform provider
Availability
(my take)
While hardware is costly, it is a fixed asset that can be re-allocated internally or sold eventually, when it becomes too obsolete for front-line service. Cloud and hosted solution providers have to deal with physical asset depreciation just as everyone else does,
they just often overcome the hit in part by locking clients into years-long hosting agreements which towards the end leaves the client stuck on outdated hardware.Cloud hosting is supposed to keep your enterprise virtual and less tied to specific nodes of the hosting infrastructure, however there will always be hardware-level tie-downs at some level – nothing is ever completely virtualized.
Extensibility
(their take)
Support for remote users, contractors and other third parties requires special efforts by IT department Any authorized user can access the service from anywhere, securely
Extensibility
(my take)
Remote support services like GoToManage are typically in the arsenal of an enterprise client already. HTTPS VPN access into SharePoint sounds like “secure service” from “anywhere” to me!  Heck, if there was a burning need for it you could do Forms Based authentication on SharePoint instance outside your DMZ too.
Security
(their take)
Protection of a highly diverse enterprise computing environment requires significant investments of time and effort Uniformity and economies of scale enable cloud platforms to maintain the highest security standards at less cost
Security
(my take)
The whole premise of SharePoint is that it is the opposite of highly diverse and all your sensitive assets go into it. It’s the opposite of the nuclear war strategy of spreading out your silos in obscure locations – in SharePoint’s case the monolithic security approach is its edge. I can’t see how economies of scale are relevant to security. Security is a fundamental independent of scale.  If what they are talking about is that it’s cheaper for physical firewalls etc. by grouping a bunch of clients into one datacenter, I’d ask what security risks actually arise from locking a bunch of independent companies systems in the same room together.
Performance
(their take)
IT has to keep monitoring multiple services, discover the root-causes of performance shortfalls, figure out how to fix them, and decide whether it’s worthwhile to buy more infrastructure Cloud platform uses a single set of services and can easily allocate more capacity to any customer who needs it
Performance
(my take)
itgrooveleverages the out-of-the box performance and scalability of SharePoint so that potential future performance bottlenecks are accounted for strategically, not tactically.Features like sandboxed solutions and site collection limits allow us to delegate long-term performance management to SharePoint power users and admins who can proactively manage potential performance hits directly through Central Administration. The basic concern I’d have about a cloud or hosted solution is that it’s a lot like your home ADSL or cable-based internet connection: you may be paying for 50mbps however your telco certainly isn’t planning for everyone on your block to use that pipe at 100% capacity, 24/7.The “economies of scale” work in reverse at the enterprise level when with cloud data centers leased data backbones – they get a reasonable rate for their data pipe based on the assumption that one or more of their clients will not be pegging the network infrastructure.If your enterprise company was to grow in a spurt it’d certainly be worth assessing the risk that the service at the other end of your external host’s pipe might decide  their own economies of scale don’t fit with your hosting provider any more.
Best Practices
(their take)
A software solution typically involve third parties. Software often lags current best practices by years due to the lag time in incorporating latest releases Best practices can evolve quickly and be shared immediately
Best Practices
(my take)
Microsoft offers Cumulative Updates and Service Packs for SharePointon a constant basis.While no SharePoint consultant would in good conscience recommend blindly auto-patching the latest updates without some research and evaluation first, they can conservatively fall back a couple update versions and still not be behind by “years”. Sometimes sharing isn’t caring: Best Practices should not be tagged as such simply based on speed of evolution, but instead should come from demonstrated stability and experience.
Speed
(their take)
Ongoing software upgrades, like the original software and supporting technology, can take months to install, configure, integrate, test, and roll out Immediate benefits
Speed
(my take)
It’s a good thing there are consultants who can make that part as painless as possible! Business is a marathon, not a race. I’d opt for the stability and industry depth of SharePoint over some immediate new bells and whistles any day.Being able to calculate ROI effectively is a challenge, and having your intranet application zoom over the heads of your business decision makers by running its own proprietary feature release schedule can make for some sloppy planning.

In conclusion, i’d like to disclaim that as a geek I am an early adopter by nature. The cloud is fun and exciting, and certainly let’s you focus on core business without a lot of the drudgery and expense of traditional sysadmin responsibilities, however there’s more to contemplate than just how much network latency you’re going to be getting by basing your companies ECM system over the public internet.  You know what they say about being bold and old- the cloud is definitely bold but definitely not old. Time will tell how these traits merge and whether players like SpringCM can succeed.

Microsoft’s Office 365 service offering for mid-to-enterprise sized business is likely going to be your best bet should you decide that the cloud is practical for your companies ECM needs.

Save As Template for Publishing Site SharePoint 2010

If the publishing feature is enabled on a site in SP 2010, the Save As Template option becomes no longer available. This is because it’s not actually a Microsoft best practice to save Publishing Sites as Templates as there are a number of inherent issues with the process.

If you want to live on the wild side and get ‘er done anyways – get that publishing site saved as a template by appending the following to your base site URL:

/_layouts/SaveTmpl.aspx

..so https://go.site.com/sites/subsite/ becomes https://go.site.com/sites/subsite/_layouts/SaveTmpl.aspx, and you are officially on the side of the rebels.

Syntax Formatting for PowerShell in Visual Studio 2010

PowerShell is an essential tool for advanced SharePoint development & administration. Unfortunately Visual Studio doesn’t offer PowerShell code syntax highlighting or Intellisense natively. You can however use Adam Driscoll’s plugin PowerGUI VSX from Codeplex, which runs on top of PowerGUI :

PowerGUI V requires the free, standalone application PowerGUI. Please download the correct version:

Some useful sources for SharePoint PowerShell scripts and advice:
http://sharepointpsscripts.codeplex.com/releases/view/40582
http://powergui.org/servlet/KbServlet/download/2812-102-4534/SharePoint2010PowerShell.pdf
http://blog.falchionconsulting.com/

[learn_more caption=”From TechNet: ” state=”open”] Windows PowerShell™ command-line interface is a new command-line tool and supporting scripting language from Microsoft that complements Cmd.exe in the Windows administration context. In the SharePoint administration context, Windows PowerShell supersedes the Stsadm.exe administration tool. Moving forward, you should use Windows PowerShell scripting technology to develop any new command-line scripts in SharePoint Foundation 2010.[/learn_more]

 

Synonyms not working in SharePoint Search

The custom thesaurus functionality of SharePoint search should be old hat to those of us experienced with MS Full Text Search, which is a mature technology that’s been around for years. What may trip you up in trying to get custom synonyms working with SharePoint’s implementation is the nuances of the file paths and deployment across multiple physical servers in a farm.

A basic example of the thesaurus format is as follows. This one would match instances of “it” to “information technology”

<XML ID="Microsoft Search Thesaurus">
    <thesaurus xmlns="x-schema:tsSchema.xml">
 <diacritics_sensitive>1</diacritics_sensitive>
        <expansion>
            <sub>it</sub>
            <sub>information technology</sub>
        </expansion>
    </thesaurus>
</XML>

First, does your thesaurus file validate as proper XML? Sometimes a forgotten –> closing tag etc. can be a showstopper.

Thesaurus files are stored in several locations on a SharePoint Server:

  Program Files  Microsoft Office Servers  14.0  Data  Config  

Updates to the thesaurus files here will ensure that any new Search Service Applications that you create will have the updated thesaurus definitions when they spin up.

  Program Files  Microsoft Office Servers  14.0  Data  Applications  Config  

GUID is the guid of your Search Service Application, which you can get by using Get-SPServiceApplication. That powershell command will list your service applications and their corresponding GUID’s.

When you’ve verified your updated tsneu.xml files are in those locations, you’ll need to restart the search service with these commands:

net stop osearch
net start osearch

Once the service is restarted, go to your search center and plug in one of the newly added expansion/replacement terms to see your results.

If you’re running search on multiple servers, you will need to perform these steps on each server running search. If there are multiple search applications running, you have to copy your thesaurus files to each config directory under the GUID folder for each search service application.

You can run into the following situation when trying to get a custom thesaurus to kick in for the SharePoint search service:

1. You set up the thesaurus file(s), in our example we’ll use the basic tsneu.xml, which is the language-neutral default thesauraus.
2. You try putting the thesaurus XML file into

%ProgramFiles%  Microsoft Office Servers  14.0  Data  Applications  Config 

and in

%ProgramFiles%  Microsoft Office Servers  14.0  Data  office servers  applications  data  

but with no luck – you don’t see the search results.
3. You try creating a folder on each query/crawl server with the GUID of the search application.
4. Restart the services.

Still no synonyms? It may be that you have partitioned the index, in which case the path changes, and it´s not the default one but the one you set up into the Central Administration > Manage search topology.

Chang the files there, restart the search service and voila!

Fire up VMWare Workstation Image on Boot

​As a dev it is frustrating that there is no option to automatically start the VM(s) at boot time.

This simple batch script can be created and saved to the Startup directory to accomplish the task. Please note that your PC must be setup for your ID to auto-login if you want the VM to start automatically after a power outage, for example.

This has been tested using VMware Workstation 8 on Windows 7 64-bit. In this example VMware Workstation is installed to “C:Program Files (x86)”, the VM is located in D:VMs, and the .vmx file of the particular image is what you need to look for.

Just open up Notepad or your favorite text editor, copy and paste the text below, modify it to fit your environment, and save it.

You can then either drag and drop it into your Startup folder (Start -> All Programs -> Startup) or create a shortcut and copy that over.

@echo off
“C:Program Files (x86)VMwareVMware Workstationvmrun.exe” -T ws start “D:VMsTestAPP-01TestAPP-01.vmx”

The task kill command can be used to automatically close the GUI window that opens. Add this line to the bottom of your batch file if you don’t want to close the GUI manually every time you reboot:

taskkill /IM vmware.exe

Notes:
•The name of the batch file does not matter. You can call it anything but be sure that the extension is .bat
•Make sure that the command is on one line.

Make Windows Server a SharePoint – Development Friendly Workstation

A major limitation of developing against SharePoint is that Visual Studio must be on the same machine as a SharePoint Server instance.

After a brief experiment with some methods involving copying the collection of SharePoint .DLL’s to the GAC on your dev machine and referencing them Visual Studio Projects – I can confirm why there is general silence on MSDN when people gripe and ask why you need to burden your dev machine with a SharePoint server – because that’s just how it is if you want to develop effectively.

So until MS comes up with a way to allow Visual Studio to connect to remote SharePoint servers, we will be stuck with having to either plug Visual Studio into the dev servers we stand up, or install Visual Studio on our main dev workstations.

Although workstations are generally pretty juiced up these days, performance is an issue trying to run all those servers at once, so it’s looking like working on RDP with the dev workstation experience set up will be the best compromise.

To this end, we can try and remove a lot of the annoyances that come with using Windows Server 2k by making them behave more like desktop workstations. A basic laundry list is as follows:

a. Remove the shutdown tracker
b. Give the machine an intuitive name
c. Remove and disable screen saver
d. Install Desktop Experience
e. Enable graphics acceleration and sound
f. Enable RDP
g. Disable Internet Explorer Enhanced Configuration
h. Install other browsers and associated cool plugins (Firefox for example)
i. Full update and patch using Windows Update (duh!)

IF you want to go further and get more Win7 glory, check out this handy tool for making your Win2k server business on top but rock steady on the sides:

http://www.win2008workstation.com/win2008/windows-server-2008-workstation-converter

Firefox Friday #2 – SharePoint & Firefox

​Firefox does have issues when being used with SharePoint, let’s ID the known issues and workarounds:

Feature

Limitation

Connect to Outlook, Connect to Office, and Sync to
SharePoint Workspace

Works with an
ActiveX control, but requires a Firefox control adaptor. Microsoft Office
2010 does not provide a Firefox control adaptor for this control. The feature
also requires an application that is compatible with the stssync:// protocol,
such as Microsoft Outlook.

Datasheet view

Requires an
ActiveX control, such as the one that is delivered in Microsoft Office 2010,
and a Firefox control adaptor. Microsoft Office 2010 does not provide a
Firefox control adaptor for this control.

Drag and Drop Web Parts

Cannot be moved by
using drag and drop on Web Part pages. Users must click Edit on the Web Part, select Modify Web Part, and then select the zone
from the Layout section of the Web Part
properties page. Web Parts can be moved using drag and drop on Pages.

Edit in Microsoft Office application

Requires an
ActiveX control, such as the one that is delivered in SharePoint Server 2010,
and a Firefox control adaptor. For more information about Microsoft Office
2010 Firefox Plug-in, see FFWinPlugin Plug-in
(http://go.microsoft.com/fwlink/p/?LinkId=199867).
If you install and configure the Office Web Applications on the server, the
Edit functionality works and you can modify Office documents in your browser.
This functionality only works with Microsoft Office 2010 or an equivalent
product together with a Firefox plug-in.

Explorer view

Removed in
SharePoint Server 2010. Libraries that have been upgraded from earlier
versions of SharePoint Server 2010 may still have Explorer views, and these
may not work. Explorer view requires Internet Explorer.

Export to Excel

Downloads a file
with an .iqy extension to the Web browser. If Microsoft Excel is not
installed, and if no other application is configured to open this file, then
this feature will not work.

File upload and copy

Requires an
ActiveX control, such as the one that is delivered in Microsoft Office 2010,
and a Firefox control adaptor. Microsoft Office 2010 does not provide a
Firefox control adaptor for this control.

Microsoft InfoPath 2010 integration

Requires an
ActiveX control, such as the one that is delivered in Microsoft Office 2010,
and a Firefox control adaptor. Microsoft Office 2010 does not provide a
Firefox control adaptor for this control.

Microsoft PowerPoint 2010 Picture Library
integration

Requires an
ActiveX control, such as the one that is delivered in Microsoft Office 2010,
and a Firefox control adaptor. Microsoft Office 2010 does not provide a
Firefox control adaptor for this control. The user can use the following
workarounds when no control has been installed:

  • If a user wants to upload
    multiple pictures in a picture library, the user must upload one picture
    at a time by using Upload.aspx.
  • If a user wants to edit a
    picture in a picture library, the user must download the picture, edit
    it, and then upload the picture to the picture library.
  • If a user wants to download
    more than one picture from a picture library, the user must download one
    picture at a time by clicking on the picture link.

Microsoft Visio 2010 diagram creation

Requires an
ActiveX control, such as the one delivered in Microsoft Office 2010, and a
Firefox control adaptor. Microsoft Office 2010 does not provide a Firefox
control adaptor for this control.

New Document

Requires an
ActiveX control, such as the one delivered in Microsoft Office 2010, and a
Firefox control adaptor. For more information about Microsoft Office 2010
Firefox Plug-in, see FFWinPlugin
Plug-in
(http://go.microsoft.com/fwlink/p/?LinkId=199867).
Although the New Document command may
not work, you can use the Upload Document functionality. If you install and
configure Office Web Applications on the server, the New Document command works, and you can create an Office
document in your browser.

Rich Text Editor – Basic Toolbar

A user can update
the Rich Text Editor basic toolbar to a Full Rich Text Editor that includes
the ribbon by changing the field’s properties, as follows: On the
FldEdit.aspx, in the List Settings
menu, select Specific Field Settings.
Next, under Columns, click Description. In the Additional Columns Settings section, under Specify the type of text to allow, select Enhanced rich text (Rich text with pictures, tables,
and hyperlinks)
.

Send To

Can leverage an
ActiveX control, such as the one that is delivered in Microsoft Office 2010,
and a Firefox control adaptor. Microsoft Office 2010 does not provide a
Firefox control adaptor for this control. Without the control, files cannot
be sent from one SharePoint farm to another SharePoint farm. However, files
can still be sent from one site to another site.

Signing Forms (InfoPath Form Services)

Requires an
ActiveX control, such as the one that is delivered in Microsoft Office 2010,
and a Firefox control adaptor. Microsoft Office 2010 does not provide a
Firefox control adaptor for this control.

Spreadsheet and Database integration

Require ActiveX
controls, such as those that are delivered in Microsoft Office 2010, and
Firefox control adaptors. Microsoft Office 2010 does not provide a Firefox
control adaptor for this control. The user can use the following workarounds
when no control has been installed:

  • If a user wants to edit a
    document, the user must download the document, edit it, and then save it
    back to the server.
  • In a list that requires a
    document to be checked out for editing, a user must use the
    Edit menu to check out the
    document, edit it, and then check it in by using the
    Edit menu.
  • Export to spreadsheet.
    Users can export a SharePoint list as a spreadsheet by clicking
    Export to
    Spreadsheet
    on
    the
    List
    tab on the ribbon.

Web Part to Web Part Connections

May require
deactivation of browsers pop-up blockers for SharePoint sites.

Slide library and PowerPoint 2010 integration

Require ActiveX
controls, such as those that are delivered in Microsoft Office 2010, and
Firefox control adaptors. Microsoft Office 2010 does not provide a Firefox
control adaptor for this control. The user can use the following workarounds
when no control has been installed:

  • Delete a slide. Users can
    delete a slide by first clicking the slide, and then clicking
    Delete
    Slide
    . Repeat
    for each slide.

The following
features do not work on this platform:

  • Copy a slide to a
    presentation. This feature enables users to add a slide to a PowerPoint
    2010 presentation.
  • Publish a slide. This
    feature enables users to upload a single slide from a PowerPoint 2010
    presentation to a slide library. Microsoft Office must be installed on
    the client computer.

 


Firefox Friday #1 – Useful Plugins for SharePoint Development

As SharePoint developers we are bound to IE but often fallback to other browsers for various reasons such as performance, HTML standards compliance, or in my case with Firefox – the plugins available.   The official Technet on what is and is not supported on various browsers (Chrome is notably not even in there): http://technet.microsoft.com/en-us/library/cc263526.aspx. I will follow up this post with a list of what specifically will not work with SharePoint when using Firefox (so you can’t say I didn’t warn you!)

While Google Chrome is definitely a solid choice, if you are using Firefox the following plugins will help you out:

FasterFox Plugin

Download: http://fasterfox.mozdev.org/
Description:
Various network tweaks that deliver a zippy experience. This will also speed up your SharePoint user experience greatly too.

  • Prefetch Links
    Dynamic speed increases can be obtained with Fasterfox’s unique
    prefetching mechanism, which recycles idle bandwidth by silently
    loading and caching all of the links on the page you are browsing.
  • Tweak Network
    Fasterfox allows you to tweak many network and rendering
    settings such as simultaneous connections, pipelining, cache,
    DNS cache, and initial paint delay.
  • Page Load Timer
    A millisecond accurate page load timer tests the effectiveness
    of your settings.
  • Block Popups
    A popup blocker for popups initiated by Flash plug-ins is also
    included.

Notes:
1. Remember, just because you’ve got a turbocharged browser doesn’t mean your colleagues or clients do.  This plugin is a double-edged sword because you can get lazy or indifferent about performance problems on web applications. If you are developing, testing, or QA’ing systems you should either use a different browser (COUGH IETester COUGH) or temporarily disable Fasterfox.

2. The out of the box setting in the Firefox > Add-Ons > FasterFox > Options menu is “Optimized“. Set that bad boy to “Turbo Charged” and to hell with playing nice with server resources – our time is worth more!


Windows Media Player Plugin for Firefox

Download: http://www.interoperabilitybridges.com/windows-media-player-firefox-plugin-download
Description: Lets you run Windows Media content in Firefox. In particular you will be able to stream WMV videos such as the ones we have in the newly minted it groove SharePoint center directly in your browser window.

Web Developer Toolbar

Download: https://addons.mozilla.org/en-US/firefox/addon/web-developer/
Description: Adds a toolbar with a slew of options essential for anything webby. CSS, Forms, Images, Cookies, Viewing Source – instantly get Xray vision into any web page.

iMacros for Firefox

Download: https://addons.mozilla.org/en-US/firefox/addon/imacros-for-firefox/?src=collection&collection_id=da0ecd99-2289-7ab0-7d57-e7c489c845c3
Description: Automate Firefox. Record and replay repetitious work. If you love the
Firefox web browser, but are tired of repetitive tasks like visiting the
same sites every days, filling out forms, and remembering passwords,
then iMacros for Firefox is the solution you’ve been dreaming of!
***Whatever you do with Firefox, iMacros can automate it.***

Colorzilla

Download: https://addons.mozilla.org/en-US/firefox/addon/colorzilla/
Description: With ColorZilla you can get a color reading from any point in your
browser, quickly adjust this color and paste it into another program.
You can Zoom the page you are viewing and measure distances between any
two points on the page. The built-in palette browser allows choosing
colors from pre-defined color sets and saving the most used colors in
custom palettes.

Basic end-user usage could be grabbing the color code for the blue from a clients logo and matching it up to another design element.

Firebug

Download: http://getfirebug.com/
Description: Firebug integrates with Firefox to put a wealth of web development tools
at your fingertips while you browse. You can edit, debug, and monitor
CSS, HTML, and JavaScript live in any web page.

Learning to use Firebug is a whole different topic but it is possible for non-developers to get working with it to quickly id and delegate issues due to Javascript or CSS issues, broken images, etc.

Firebug also is required for Yahoo YSlow and the Google Pagespeed Firefox Plugins