Friday, November 17, 2006

Mounting Office 2007 MSDN ISO Images in Vista


In the past I have been using Alcohol 120% or Daemon Tools to mount MSDN ISO images, but I was unable to get either of these tried-and-true utilities to work on the new Vista RTM.

The good news is I was able to get a program called CloneDrive working with no problems at all.

Nice sheep logo. I assume the sheep is an allusion to the genetic cloning thing. In any case, nice work to Elaborate Bytes AG, Cham, Switzerland for this free utility that actually works.

Virtual Sheep? Baahaaah.

Categories:

Thursday, November 16, 2006

Released! Download WSS v3 and MOSS 2007 RTM


After much anticipation and ballyhoo, the production releases of Windows SharePoint Services 3.0 and Microsoft Office SharePoint Portal Server 2007 are available for download.
Take a deep breath, and download the bits!
WSS v3
Download Details: Windows SharePoint Services 3.0
Download Details: Windows SharePoint Services 3.0 Lanuage Pack
Download Details: Windows SharePoint Services 3.0 x64
Download Details: Windows SharePoint Services 3.0 Language Pack x64
MOSS 2007
Download Details: Microsoft Office SharePoint Server 2007 Trial Version
* The trial keys for MOSS 2007 are listed in this blog post.
After you've got the bits, here are some instructions and howtos on getting up and running:
Version to Version Supported Upgrade Paths
Installing Windows SharePoint Services 3.0 on a Server Running Windows Small Business Server (This document shows you how to install Windows SharePoint Services 3.0 side-by-side with Windows SharePoint Services 2.0)
Installing MOSS 2007 RTM on a farm running MOSS 2007 Beta2 TR (Shane Young [MVP])
Upgrade from TR to RTM Work Around (Shane Young [MVP])
Upgrading from Windows SharePoint Services 3.0 Beta 2 Technical Refresh to Release Version (Joel Oleson)
Upgrading from Office SharePoint Server 2007 Beta 2 Technical Refresh to Release Version (Joel Oleson)
If you would like instructor-led assistance for upgrading to the latest versions of SharePoint, sign-up for our Upgrading From SharePoint 2003 to SharePoint 2007 course.
Once you've got things installed and running, send your information workers to our Applying SharePoint 2007 - Core Features course.
Categories: , , , ,

Wednesday, November 15, 2006

OBA RAP for SCM, ArcStream, and Skyscrapr


Today I was doing some research on the OBA RAP for SCM when I stumbled across ArcStream and Skyscapr

Sound Greek?  Well, the OBA Reference Application Pack for Supply Chain Management is a reference implementation put together by Microsoft to illustrate how we can build Microsoft Office System 2007 based composite solutions.  Microsoft calls these composite solutions Office Business Applications (OBAs) and describes an OBA as being "designed to support cross-functional processes and allow information workers to collaborate" across organizational boundaries.

ArcStream is a relatively new initiative from the East Region Microsoft Developer & Platform Evangelism Team which strives to provide "a constant flow of technical information as well as networking opportunities for enterprise, application, systems and aspiring architects living and working on the east coast".  A few of the key folks involved with ArcStream include Chad Brooks, Bob Familiar, Chris Bowen and Scott Jamison.

Finally, Skyscapr.net is maintained by the Architecture Strategy Team at Microsoft with the primary goal of "promoting a community-wide discussion about system architecture".  The  site provides access to videos, training, glossaries, ARCasts, and blogs that will help you learn more about technology architecture.

Good stuff! Now if I can just get all the way through Beyond Bullet Points.  So much to read, so little time!

Tuesday, November 14, 2006

The "Features" feature


The first time anyone hears about the "Features" feature in SharePoint, they either laugh or frown at it. I have yet to see anyone without at least some kind of reaction to it. However, once you get past the name, the concept of Features seems really appealing.

Features provide the “light up” functionality within SharePoint. You no longer need to decide on all the components of a site ahead of time. Each "Feature" can be added on and attached to a site after the site is provisioned. Features can be scoped at the Farm, WebApplication, Site Collection or Site level. Want to know more about Features?? Well, take a look at the following presentation and associated code that I used to present at the SharePoint Connections conference.

Features

Intro to Excel Services


Last week, Kevin Pine and I got a chance to present at the SharePoint Connections conference. This conference was able to draw a large number of SharePoint folks from all around the country (actually the world... I saw some people there from the Netherlands). Kevin and I presented 3 sessions at the conference with the attendee count of 200+ for our largest session.

Even though this conference was held in Vegas, we didn't want the phrase "What happens in Vegas, stays in Vegas" to be our mantra. We want our attendees to be able to implement the cool stuff we did in our presentations in their own environment back home. So we decided to post all our presentations and related demo notes to our SharePoint Solutions blog.

This first blog entry is associated with our very first presentation which was focused on Excel Services. Excel Services ships with the Enterprise Edition of MOSS 2007 and provides server based Excel Capabilities to the knowledge worker. Being able to share your spreadsheets by posting them to the Excel Server is a new paradigm, but one which is sure to catch on quickly in the business world. In this presentation, I present the overview of Excel Services and then build a Dashboard which takes advantage of the new scorecarding capabilities in MOSS. You can download the zip file containing the presentation and a sample data spreadsheet by clicking on the link below. Enjoy!

Intelligent Dashboard using Excel Services

Adding Custom Links in SharePoint Portal Server 2003 Top Navigation Bar


In SharePoint Portal Server 2003, there is no easy way to add custom links to the top navigation. All the links in the navigation bar are generated dynamically by the server. Using JavaScript, we can extract the code for the top navigation bar, add custom links, and then re-render the code for the navigation bar.

In the example screenshot below, you will notice that we've added both a text link and a graphical icon link to the toolbar. The text link goes to the Google search engine and the telephone icon goes to a phone list. We can mix and match text and images and add as many extra links to the navigation bar as our user's browsers will comfortably allow. Using this method, all our custom links will appear after the dynamic navigation links that are generated natively by Sharepoint Portal Server 2003. If you have links that you want to always be available to every portal user all the time, this is an easy way to add them.
To add links like this to your portal, add the code below to your OWS.JS file and customize it as needed.

Get the code. Sorry, Blogger didn’t seem to like having JavaScript code in the post. :(

Hopefully, the comments in the code are enough to explain what's going on here. Essentially I’m using JavaScript on the pageLoad event to extract the code for the navbar table. I store it in a string variable, remove the closing tags, add onto the end enough code to create a new table cell (or two), append the closing tags back on, and rewrite the navbar table back to the client. The IF statement that looks for the existance of the navbar keeps the code from generating errors on WSS pages since they don’t contain the same navbar element. If you do have any questions, just let me know.

I was inspired to write this script while learning techniques presented in our Extreme Makeover - Portal Edition class, which is being offered again the first week of December, 2006 in Chicago.

Thursday, November 09, 2006

Another point of view


Regarding Tony's post to this blog this morning, I have a somewhat different view from my vantage point. Tony is a developer and a lot of his work involves product design and quality development. He has some marketing responsibilities as well, but that is not his primary focus.

As President of SharePoint Solutions, I have a lot of responsibility for sales and marketing. And, one of the things I have learned over the years is that the sales and marketing function in most companies is critical. Not only is it critical for the company itself, but it is also critical for the customer. Without sales and marketing professionals and good tools for them to use to get the message out, customers would never find out about products that can help them solve their business problems.

I see the services that MSD2D provides as very important sales and marketing tools that help both the advertiser and the customers. We frequently use MSD2Ds tools and services and they have been extremely effective.

I think Tony does make a good point (although perhaps a little too strongly :)) that it is important to properly label advertisements as such. That may be something MSD2D could do a better job of on the article that normally hits our inboxes each Thursday.

Wednesday, November 08, 2006

Paid Inclusion Controversy, Ethics, SPAM, and MSD2D


In the early part of 2005, Yahoo (NasdaqGS:YHOO) ran headlong into an ethical debate over the inclusion of paid sponsors' links in the results of users' queries to their search engine. The practice of providing context-sensitive advertising based on a user's search query (i.e. paid inclusion) is nothing new, and of course companies such as Google (NasdaqGS:GOOG) make a living on it. However, the moral debate Yahoo encountered was that these paid advertisements were not distinguished in any way from organic results. In other words, users were led to believe that a given item was ranked highly in the results of their search because of relevance, but in fact the item was ranked highly because some company paid for it to be there. The fact that Yahoo would employ such an obviously unethical practice is one reason I continue to use Google.

What does Yahoo's paid inclusion controversy have to with SharePoint? Well, several times per week I receive e-mail messages from a company called Penton Media under auspices of their MSD2D brand. All incoming messages I receive from MSD2D now go directly to my junk e-mail spam folder. Why? Simply put, I block the MSD2D messages due to unethical practices. The main content area of these MSD2D e-mail messages is labeled "Feature Story" and for all practical purposes appears as though it is a SharePoint-related tip from some industry expert. However, the reality of the situation in that these "Feature Story" installments are actually written by paid advertisers to peddle their products and services. In fact, MSD2D requires that any advertiser which wants to run a banner ad in one of their "Special Issue" spam e-mails also submit a "Feature Story" to run concurrent with the more obvious banner advertisement. This practice of deliberately duping the reader is unethical and merits my spam blocker.

So here is my notice to MSD2D and Penton Media: If you want out of my spam blocker and back into my inbox, re-evaluate your advertising ethics. Provide real value by including unbiased content from actual industry experts, even if you have to pay them for it. Label your advertisements clearly with a "Paid Advertisement" heading or some such. You have the largest mailing list in the SharePoint industry, and paid advertisers need you in order to market their products and services. Stop sullying and diluting your brand with questionable practices and subjecting the members of your mailing list to valueless spam.

The contents of this post are my own personal opinion and do not necessarily reflect the views of my employer SharePoint Solutions.

Tuesday, November 07, 2006

F5 Debug WSS v3 Site Definition Provisioning with VSeWSS


With the new VSeWSS tools for Visual Studio 2005, SharePoint developers can now F5 debug WSS v3 Site Definition provisioning. To do so, follow these steps.

From the Visual Studio 2005 menu bar do a File->New->Project and create a new Team Site Definition.

Once the Site Definiton project is created, open the SiteProvisioning.cs file that VSeWSS created for you.

The SiteProvisioning.cs file contains a partial class stub made for implementing your own activation event code. (side note: the other part of this partial class is located in SiteProvisioning.Internal.cs. I'll cover the details of SiteProvisioning.Internal.cs in a future post.)

[Listing 1]

1 using System;
2 using System.Runtime.InteropServices;
3 using System.IO;
4
5 using Microsoft.SharePoint;
6
7 namespace Team_Site_Definition1
8 {
9 public partial class Team_Site_Definition1
10 {
11 /// <summary>
12 /// Define your own feature activation action code here
13 /// </summary>
14 public void OnActivated(SPFeatureReceiverProperties properties)
15 {
16
17 }
18 }
19 }

Place your custom code into the OnActivated method. For example, in Listing 2 I've included a few code snippets to do some error checking, promote feature properties to web properties and turn on TreeViewNavigation for the new site.

[Listing 2]

1 using System;
2 using System.Runtime.InteropServices;
3 using System.IO;
4
5 using Microsoft.SharePoint;
6
7 namespace Team_Site_Definition1
8 {
9 public partial class Team_Site_Definition1
10 {
11 /// <summary>
12 /// Define your own feature activation action code here
13 /// </summary>
14 public void OnActivated(SPFeatureReceiverProperties properties)
15 {
16 // Do some error checking
17 SPWeb web = (SPWeb)properties.Feature.Parent;
18 if (web == null)
19 throw new NullReferenceException("Failed to instantiate feature parent web.");
20
21 // Set Web Properties from Feature properties
22 bool updated = false;
23 foreach (SPFeatureProperty featureProperty in properties.Feature.Properties)
24 {
25 if ((!string.IsNullOrEmpty(featureProperty.Name)) && (!string.IsNullOrEmpty(featureProperty.Value)))
26 {
27 if (web.Properties.ContainsKey(featureProperty.Name))
28 {
29 web.Properties[featureProperty.Name] = featureProperty.Value;
30 }
31 else
32 {
33 web.Properties.Add(featureProperty.Name, featureProperty.Value);
34 updated = true;
35 }
36 }
37 }
38 if (updated) web.Properties.Update();
39
40 // Enable TreeView navigation
41 web.TreeViewEnabled = true;
42 web.Update();
43 }
44 }
45 }
After adding custom code to the OnActivated method, set a breakpoint somewhere in the method and then hit F5 to run. Listing 3 is the output from the project build.

[Listing 3]

1 ------ Build started: Project: Team Site Definition1, Configuration: Debug Any CPU ------
2 Team Site Definition1 -> C:\usr\src\KnowledgeManagementEnhancements\Mainline\Team Site Definition1\bin\Debug\Team Site Definition1.dll
3 ------ Deploy started: Project: Team Site Definition1, Configuration: Debug Any CPU ------
4 ------ Generate Team Site Definition1.wsp file and setup batch file------
5 Creating solution ...
6 Operation completed successfully.
7
8 Creating setup batch file ...
9 Operation completed successfully.
10
11 ------ Add and deploy Team Site Definition1.wsp to the SharePoint ------
12 Adding solution ...
13 Operation completed successfully.
14
15 Deploying solution ...
16 Operation completed successfully.
17
18 ------ Activate features in solution if necessary ------
19 No features in this solution were activated
20
21 Restarting IIS ...
22 Operation completed successfully.
23
24 ========== Build: 1 succeeded or up-to-date, 0 failed, 0 skipped ==========
25 ========== Deploy: 1 succeeded, 0 failed, 0 skipped ==========
Once the build completes successfully and launches SharePoint in your browser, create a new site from the Site Actions menu. For the site's template select Team Site Definition1 (or your project name) from the Development tab.

During the provisioning process, the break point we set in the OnActivated method will get hit.

Click for larger view

After inspecting property values and doing other interesting debugging stuff, hit F5 again to continue the site provisioning process.

Categories: , , , , , , ,

Monday, November 06, 2006

Walkthrough - Windows SharePoint Services 3.0 Tools: Visual Studio 2005 Extensions


Microsoft has today released the Visual Studio 2005 Extensions for Windows SharePoint Services 3.0 (VSeWSS).

"Tools for developing custom SharePoint applications: Visual Studio project templates for Web Parts, site definitions, and list definitions; and a stand-alone utility program, the SharePoint Solution Generator."

Let's take a quick walkthrough of this new toolset for SharePoint developers and see what Santa has brought us!

SharePoint Solution Generator

The first VSeWSS tool we'll take a look at is SharePoint Solution Generator (SPSolGen). SPSolGen is a stand-alone program, so after installation you'll find a link to SPSolGen has been placed in your Start Menu under All Programs.

SPSolGen can take an existing Site Definition or List Definition from WSS and automatically reverse engineer it into a Visual Studio 2005 development project. The value proposition of SPSolGen is that a designer can create a WSS Site from the browser or with SharePoint Designer and then hand it off to a developer for deeper customizations.

By default, SPSolGen will create a subfolder in your My Documents folder and place its output there.

The SPSolGen output project in Visual Studio 2005 Solution Explorer:

New Project Item Templates

If you right-click your new project in Visual Studio and select Add->New Item, you'll be greeted by five new project items:

Item Templates include:

Selecting a new List Definition launches a dialog which allows you to specify a base list type. You can optionally create an instance of the list and include an event receiver class:

The Content Type template lets you select a base type to derive from:

New Project Templates

There are also a few new project templates.

The Team Site Definition project includes an Onet.xml and provisioning receivers:

Over all this is a useful suite of tools from Microsoft, and will provide developers with a good starting point for their SharePoint projects. The reverse-engineering capabilities of SPSolGen are pretty cool. I'm looking forward to using these new templates.

Download Windows SharePoint Services 3.0 Tools: Visual Studio 2005 Extensions

Related Articles:

Anatomy of a SharePoint WSS v3 Feature Project in Visual Studio 2005

Automation in Visual Studio 2005 for WSS v3 Feature Development

Categories: , , , , , ,

Wednesday, November 01, 2006

KMWorld: Design in the Age of Web 2.0 by Jeffrey Veen


I'm out in San Jose this week attending the annual KMWorld 2006 Conference and Exposition. If you're unfamiliar with KMWorld, the show's tag line is "Strategies and Tools for Knowledge Management, Content Management, Intranets and Portals". Hands down the best session I attended on Tuesday was Design in the Age of Web 2.0 by Jeffrey Veen. Jeffrey Veen is a Design Manager for Google and founding partner of Adaptive Path. In addition to possessing solid technical acuity, Veen is a talented and charismatic speaker.

For a definition of the term Web 2.0 I'll defer to Wikipedia and term's originator Tim O'Reilly. In his standing room only presentation, Jeffrey debunked misconsceptions about the term Web 2.0, then spoke to the key elements of Web 2.0 as outlined in Tim O'Reilly's Web 2.0 Meme Map including the role of Ajax in the Web 2.0 equation.

You can download the rather large PDF (~20MB) of Jeffrey's graphic rich presentation from his website here.

Categories: , , , ,