 |
| View in Web Browser | /_layouts/images/ichtmxls.gif | /blogs/GetThePoint/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&DefaultItemOpen=1 | 0x0 | 0x1 | FileType | xlsx | 255 | | View in Web Browser | /_layouts/images/ichtmxls.gif | /blogs/GetThePoint/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&DefaultItemOpen=1 | 0x0 | 0x1 | FileType | xlsb | 255 | | Snapshot in Excel | /_layouts/images/ewr134.gif | /blogs/GetThePoint/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&Snapshot=1 | 0x0 | 0x1 | FileType | xlsx | 256 | | Snapshot in Excel | /_layouts/images/ewr134.gif | /blogs/GetThePoint/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&Snapshot=1 | 0x0 | 0x1 | FileType | xlsb | 256 |
|
|
|
| View in Web Browser | /_layouts/images/ichtmxls.gif | /blogs/GetThePoint/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&DefaultItemOpen=1 | 0x0 | 0x1 | FileType | xlsx | 255 | | View in Web Browser | /_layouts/images/ichtmxls.gif | /blogs/GetThePoint/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&DefaultItemOpen=1 | 0x0 | 0x1 | FileType | xlsb | 255 | | Snapshot in Excel | /_layouts/images/ewr134.gif | /blogs/GetThePoint/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&Snapshot=1 | 0x0 | 0x1 | FileType | xlsx | 256 | | Snapshot in Excel | /_layouts/images/ewr134.gif | /blogs/GetThePoint/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&Snapshot=1 | 0x0 | 0x1 | FileType | xlsb | 256 |
|
|
| View in Web Browser | /_layouts/images/ichtmxls.gif | /blogs/GetThePoint/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&DefaultItemOpen=1 | 0x0 | 0x1 | FileType | xlsx | 255 | | View in Web Browser | /_layouts/images/ichtmxls.gif | /blogs/GetThePoint/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&DefaultItemOpen=1 | 0x0 | 0x1 | FileType | xlsb | 255 | | Snapshot in Excel | /_layouts/images/ewr134.gif | /blogs/GetThePoint/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&Snapshot=1 | 0x0 | 0x1 | FileType | xlsx | 256 | | Snapshot in Excel | /_layouts/images/ewr134.gif | /blogs/GetThePoint/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&Snapshot=1 | 0x0 | 0x1 | FileType | xlsb | 256 |
|
|
|
 |
|
|
|
|
|
SharePoint for End Users > Categories
|
10/14/2009
by Rod Stagg, SharePoint Solutions Architect/Developer http://www.rstagg.com
Overview
Recently our IT department embarked on a collaborative effort with a key business stakeholder to develop a standardized quoting and bidding solution. The solution is an interim solution (2 years) replacing a current set of processes (both manual and automated). We needed to develop the solution quickly and efficiently to address a current need.
The solution:
Take advantage of SharePoint’s collaboration and document sharing features and built-in workflow capabilities for lists and document libraries to provide a standardized workflow process and centralized repository for tracking and reporting purposes.
Example SharePoint Designer Workflow

The challenge:
Migrating historical data into existing SharePoint lists and libraries. A key requirement required migration of historical data into the new solution’s lists, document libraries, and ensure they function properly with existing SharePoint Designer workflows.
No Easy Button: 
We quickly determined that importing the data into SharePoint as entirely new lists from either Excel or Access by itself was not a viable option given the approximately 100 fields involved that varied in type from one datasource to another.
The historical data was stored in Excel spreadsheets and Access databases. In one case 10,000+ records were stored in a single Access 2003 database.
Solution approach for migrating the data:
Use SharePoint Designer workflows to map the fields and import the data into existing lists.
Steps we took to manage the migration:
- Import the existing historical data stored in Excel Spreadsheets directly into SharePoint as new temporary lists to be deleted when migration was complete.
- Export the data stored in the Access databases directly to temporary lists in SharePoint using the export to Windows SharePoint Services feature.
- Develop SharePoint Designer workflows for each temporary list and set the workflow to start manually and also whenever a list item is updated.
- Add a custom column to each list to track whether an item had been migrated.
- Add a workflow condition to check whether the item has already been migrated before starting the workflow i.e. if the custom migrated field equals “notmigrated” initiate the workflow.
- Add actions to create a new list item in the destination list(s) for each desired field/value from the source temporary list.
- Add a final step to the workflow to update the current item’s migrated field to “migrated” following the creation of the new list item preventing the workflow from looping endlessly.
- Run an append query from Access to update the custom migrated field in each list item of the temporary list. This update initiates the workflows.
- If necessary, develop a simple Windows application to append a specific field in every row of the temporary SharePoint list. In our case, Access was timing out for our large number of records.
- We handled special cases for data mapping in code in specific cases where our historical data contained values not present in our new choice fields.
- Monitor your source temporary lists and destination lists to ensure the workflow runs successfully.
Key Take-Aways:
Server Settings: Depending on your server settings it may be necessary to update your server’s workflow settings to accommodate a large number of concurrent workflows. I changed the timeout to 25 minutes.
See http://msdn.microsoft.com/en-us/library/dd441390.aspx
Create new list items rather than copying. Creating new list items in your workflows and providing the associated mappings turned out to be more reliable than copying list items.
Re-use workflows when possible. We saved time by reusing the same SharePoint Designer workflow on another separate list by simply replacing the listid GUID in your workflows .xoml file
CreateItemActivity ListId="{}{[yourlistsid]}" x:Name="ID30" Overwrite="False" __Context="{ActivityBind ROOT,Path=__context
Use content-types: When working with a large number of fields consider grouping into content types if appropriate. This is especially useful if you need the ability to easily filter based on the original datasource or want to provide a specialized form based on the originating datasource.
Manage list size:
For large number of data items consider using separate lists in your solution to limit the number of total list items in any one list to 5,000 or less.
Other Approaches we considered:
Develop the code in C# and use the SharePoint object model to both import/export the data to SharePoint and also provide the mapping of fields. Given the number of fields approached 100+ we determined handling everything in custom code was not the most efficient approach.
Use Access to import all of the Excel spreadsheets into the Access database and then create append queries in Access to append the data into the existing SharePoint lists. Seems like the obvious approach but after testing with a subset of the 100+ required fields we determined ensuring that each field/data type in Access was compatible with the corresponding fields/data type in the SharePoint lists was too time-consuming.
Also, possibly related to the large number of 10,000 records involved, the Access append query we used for testing frequently timed-out or locked-up before completing. 9/23/2009
Here's a quick and simple tip that can make life easier for you and the other people who use your SharePoint document library.
The subtlety of the way the icon changes when someone checks out a document often escapes people. Especially when they are new to SharePoint. What I like to do to make things more obvious is add the Checked Out To column to the default view for the list. It's quick and easy. This video shows you how in about 30 seconds.
Zip Tip video
I know, it's nothing ground-breaking or earth-shattering, but it's worth remembering.
If you like this one check out more fast tips on our GetStartedSharePoint YouTube channel. If you have your own Zip Tips that you want to share, leave a comment below.
Thanks,
Matt Evans
SharePoint End-User Content Team 7/28/2009
We have been looking at ways to increase the discoverability of internally produced video content and rich user experiences developed on Silverlight currently stored in various document libraries throughout our SharePoint intranet/extranet.
One area of particular interest is finding a way to easily incorporate rich user experiences and streaming video directly into individual blog posts taking advantage of the the built-in commenting form provided in the SharePoint blog template.
One challenge has been finding a "start small" approach that provides the performance benefits of streaming the video content vs. downloading from document libraries while being able to get started without the need to provision large media servers and associated infrastructure in the short-term.
Another challenge has been finding an approach to surface our rich user experiences developed on Silverlight onto our internet-facing website as well as our intranet.
To address these efforts we recently provisioned a Silverlight Streaming account and customized a standard SharePoint blog template using SharePoint Designer to display both our streaming video content and Silverlight 2 applications we currently have stored on the Silverlight Streaming Service.
Blog Home Page:
Features: Modified layout, video and/or Silverlight application plays inline, blog title linked to full post page, caption linked to full screen play.
Blog Full Post Page
Features: Video or Silverlight application plays inline, full screen link.
Benefits:
- Continued ability to publish regular blog posts.
- Ability to embed videos stored on Silverlight Streaming Service directly into blog posts.
- Ability to embed your own custom Silverlight applications directly into blog posts.
- Ability to categorize video posts.
- Ability to comment on video posts.
- Makes use of XSLT and CSS for customizations-no custom javascript to deploy or maintain.
- Ability to add functionality to existing blogs.
- Ability to further customize via centralized custom XSLT files and custom CSS.
Technical requirements:
You have access to edit the blog in SharePoint Designer, a free Silverlight Streaming account set-up with your Windows Live Id, and upload at least one video or Silverlight application to the service for use in your blog post.
What is the Silverlight Streaming Service?
Microsoft® Silverlight™ Streaming by Windows Live™ is a companion service for Silverlight that makes it easier for developers and designers to deliver and scale rich media as part of their Silverlight applications. The service offers web designers and developers a free (*) and convenient solution for hosting and streaming cross-platform, cross-browser media experiences and rich interactive applications that run on Windows™ and Mac. Combined with the ability to create content with Microsoft® Expression and other 3rd party tools, web designers and content publishers wishing to integrate Silverlight applications into their online properties can enjoy complete control of the end user experience.
Example video uploaded using the Upload Video feature:
Can I use my existing .wmv video files?
Yes, there are some exceptions and size restrictions but providing you have a valid Windows Live ID account you can upload your .wmv video files directly to the Silverlight Streaming Service using the Manage Videos, Upload Videos feature. For added features check out Expression Encoder 2 for encoding your videos to specific needs.
Can I use my existing Silverlight 2 .xap files?
Yes, there are some exceptions and size restrictions but providing you have a valid Windows Live ID account you can upload your Silverlight .xap files directly to the Silverlight Streaming Service using the Manage Applications, Upload Applications feature. For added features check out Expression Blend 2 for designing Silverlight applications without code.
What SharePoint Designer customizations do I need to make to add this functionality to my existing SharePoint blogs?
We added three new site columns on our blog's post list to allow users to add their own Silverlight Streaming videos and applications and a caption when creating a new post.
New columns added to Post list:
- SilverlightStreamingServiceApplicationUrl (Text Field: Multiple Lines of Text, Plain Text)
- PostImageCaption (Text Field: Muliple Lines of Text, Rich Text)
- PostImageUrl (Text Field: Single Line of Text, Plain Text)
Modifications to blog pages:
We modified the default.aspx and post.aspx pages to use a customized version of each XSLT that both reformats the layout and incorporates an iframe to display the user-provided SilverlightStreamingApplicationUrl since the default SharePoint editing controls strip out any iframe, embed, or script references. To accomplish this we first saved back-up versions of our default.aspx and post.aspx pages and then opened each in SharePoint Designer in design mode and converted the appropriate dataview Web Parts to XSLT (right click, convert to XSLT option).
Source XSLT and CSS files:
Modifications to Default.aspx
- Upload the provided default.xsl to the blog's root folder.
- Convert the post dataview web-part to XSLT (right-click-convert to XSLT).
- Apply the custom XSLT file provided: from the dataview web-part's Common Data View Properties pane choose DataView Properties, then select the XSLT Source tab and browse to the default.xsl file.
Modifications to Post.aspx
- Upload the provided post.xsl to the blog's root folder.
- Convert the post dataview web-part to XSLT (ignore @Author error message).
- Apply the custom XSLT: from the dataview web-part's Common Data View Properties pane choose DataView Properties, then select the XSLT Source tab and browse to the post.xsl file.
- Create a filter and parameter to filter the post DVWP by id : from the dataview web-part's Common Data View Properties pane choose Filter, if not displayed create a new URL parameter for ID and set the value to [id].
CSS Modifications:
We also created a custom version of the blog templates core.css and referenced the following from the default.aspx and post.aspx pages as a link:
Added custom style sheet reference in default.aspx:
<asp:Content ContentPlaceHolderId="PlaceHolderAdditionalPageHead" runat="server">
<SharePoint:RssLink runat="server"/>
<link rel="stylesheet" type="text/css" href="customblog.css">
</asp:Content>
Added custom style sheet reference in post.aspx:
<asp:Content ContentPlaceHolderId="PlaceHolderAdditionalPageHead" runat="server">
<SharePoint:RssLink runat="server"/>
<link rel="stylesheet" type="text/css" href="../../customblog.css">
</asp:Content>
Once my blog is configured, how do I create new blog posts that include this new functionaility?
Simply create your blog post as usual including your post title and post body.
Fill in the SilverlightStreamingApplicationUrl and PostImageCaption fields and save your post as usual (see Obtaining the SilverlightStreamingApplicationUrl below for details on the URL to use).
Obtaining the SilverlightStreamingApplicationUrl:
From Silverlight Administration Home upload your .wmv video or Silverlight 2 application to the Silverlight Streaming Service.
From Silverlight Administration Home select the link to the video or application.
From Method 1: Embed the video into a web page and obtain the embed link for the video or application.
Important: Copy only the URL inside the iframe (example in red) .
What's next?
- Investigate how to add YouTube and MSN videos into the posts.
- Simplify deployment for new blogs via site template (.stp file).
- Create custom site definition with custom columns included.
- Create SharePoint application page to allow users to upload videos/display in blog post in one step.
- Investigate using Silverlight Streaming Services API and existing solutions to provide reporting on #downloads, video streaming data, etc.
7/20/2009
by Sandra Tersteeg, Senior Project Manager/Business Analyst
Allyis | www.allyis.com
Introduction
The planning of content types begins with your requirements and is integrated into the design and specifications for your SharePoint content management system through your information architecture. However, before we dive into these areas, let’s begin by defining content types.
What is a Content Type?
Content types in SharePoint allow you to associate metadata, templates and workflow processes to assets found within your content management environment. Assets can include a body of text about a particular subject, an image, document, spreadsheet, video, presentation, form, web page or a page layout. An asset can be thought of as any resource that contributes to the successful rendering of useful information to the person viewing your content.
Turning Requirements into Content Types
During the gathering of the business requirements, several scenarios are good indications of where content types would be used. Such scenarios could be:
-
Associate similar metadata to multiple areas such as department, functional groups or subject area
-
Provide consistent processes across multiple areas or sites
-
Ability to find assets quickly
-
Implement and maintain consistency across multiple areas
-
A single template for multiple areas is used such as an absence request, presentation or a whitepaper
-
Approvals are required from a central area across all other areas such as an expense report that is to be approved by the manager, and then passed to an accounting department for final approval and reimbursement
Designing Content Types
Now that you have established what content types are required, you can then begin to see the need for specific properties about content types to be shared among other content types such as Department Name, Type of Document or a template shared among several content types. To accommodate this scenario, you would first create your most basic high-level content type, and then create the others by inheriting the first. This allows you to manage a template, process or site column (metadata) at a core level and have it automatically populate to all other content types inheriting it. For example, when a new expense report comes out for the upcoming fiscal year, a simple update to the core expense report populates to all other content types inheriting it from other departments. This allows a corporation to define specific metadata while allowing individual areas to further define additional metadata based on their group needs.
After you have determined your content types and their properties, you will need to capture this within your design and specification documentation for whoever will be actually building and configuring your SharePoint sites. For an example of how that might be done, click here to view a sample Content Type Design & Specification document. 7/15/2009
by Mark Anable
Office Content Publishing
As we launched our internal MOSS site for the Office Content Publishing group, we wanted to have a place where users of the site could add suggestions for site features or other feedback. So, we created a simple feedback list. We added a link to the default new form for the list (newform.aspx) in the footer of the site so people could add new items no matter where they were on the site.
It worked great. People were using it, and we could use it to track and triage the site updates. However, the list had a lot of information that the users didn’t need when filling out a form – stuff that we, as site administrators, used to triage and track the items. Users needed only to add a title and description of their request – and not stuff like whether the request was accepted for triage and by what date we were estimating it could be done.
Not a problem, I thought. I opened newform.aspx for the list in SharePoint Designer, deleted the built-in form, and added Custom List Form. Then I removed the fields that I didn't want to show up in the UI. Now users didn't have to see these unnecessary fields but we could still use them to manage items.
Everything seemed to work well. But we would always open the list in a datasheet in order to do bulk changes. We never really edited items individually. Until one day I needed to open just one item to add a note. And I got an error:
An unexpected error has occurred.
Then, soon after that, one of the other admins needed to add another item to the list, so in the list she clicked New and got this error:
Invalid Page URL
We could still add items by going to the newform.aspx directly and by editing items in bulk mode, so this wasn't a blocking issue, but I could see this situation coming up later in more important and urgent scenarios.
I did some quick troubleshooting on a test list and found that the errors appear when you delete the default form for any of these files:
· DispForm.aspx
· EditForm.aspx
· NewForm.aspx
Furthermore, I learned that once you delete the default form there is no way to get it back. Undo doesn't undo. You have to recreate your list and move all of your data over to the new list.
A quick search revealed this Knowledge Base article, which says that instead of deleting the default form, you can hide the default form. To do that:
1. Start SharePoint Designer 2007, and then open the NewForm.aspx page for the list.
2. Right-click the List Form Web Part, and then click Web Part Properties.
3. Expand Layout, click to select the Hidden check box, and then click OK.
This blog describes some great in depth troubleshooting of this issue as well: http://blogs.msdn.com/dszabo/archive/2007/02/20/custom-list-newform-aspx-ruined-in-wss-3-0.aspx
So don't go deleting the default forms for your SharePoint Lists!
6/23/2009
by Rod Stagg, SharePoint Solutions Architect/Developer http://www.rstagg.com | Allyis Inc., Kirkland, Wa
Overview:
We have been investigating ways on our intranet at Allyis to surface information via a more automatic and less manual process through various features and also to implement multiple ways for discovering data/information across the site. One area in particular we have been looking for improvement has been to increase the discoverability of our leadership blogs and encourage employees throughout our organization to blog as as way to increase collaboration and information sharing.
As a way to address these efforts we recently developed and deployed a suite of web-parts (one of which we call the BlogRollUp web-part) which displays details on the most recent post made to any of our SharePoint blogs. The web-part can be added to any site page, configured to point to a specific blog, and uploaded into the web-part gallery for others to use as well.
|
Single Post Version |
Multi-Post Version |
Features:
- Displays blog title as a hyperlink to the original full post.
- Displays the first 215 characters of the post body as an excerpt.
- Displays an image for the blogger or blog.
- Displays the post's category as a hyperlink to view all similiar posts.
- Displays the number of comments as a hyperlink to the comments page.
- Displays an alert icon hyperlinked to the blog's alert page.
- Highlights background on mouseover.
- Users can configure the web-part settings.
- Can be deployed across site collections.
|
|
Technical Approach:
- The user-interface was designed and developed entirely using Microsoft Expression Blend, Silverlight, and Visual Studio 2008.
- Custom SharePoint web-part to host the Silverlight application which allow users to configure which blog, blogger image, and alerts link from the web-part properties pane directly.
- The Silverlight application code uses the initParams provided from the webpart or HTML test page and the URL protocol to access the blog's post list directly.
- The web-part can be configured once and easily exported from and imported to the webpart gallery and added to any site page on any site collection.
- The Silverlight application was deployed into a SharePoint document library for ease of future updates.
Advantages of using Silverlight over a DataView Web-Part for instance include more portability, more rich user experience, and able to migrate to new sites/hardware easily.
- Can be added to any site page on any site collection easily by the user without a developer or SharePoint Designer involved.
- Can be easily deployed on our customer’s SharePoint sites and do not require a substantial effort to migrate to new hardware.
- A more rich UI is possible using Silverlight and development is simplified using Visual Studio and C#.
- The project files (.xap) developed in Silverlight are stored in standard SharePoint libraries and can be updated without the need for IT to be involved.
Deployment Methods:
Deployment using only a document library and a content editor web-part without the need to install server-side code and as such administrative access typically not required.
- Download the Visual Studio solution .zip and extract the files.
Download BlogRollUp.zip
- Create a folder named ClientBin in a SharePoint document library to store the Silverlight application.
- Locate the BlogRollUp_Web\ClientBin\BlogRollUp.xap file and copy into your new ClientBin folder
- Locate the BlogRollUpTestPage.html, update the initParams to use the settings for your particular blog including siteurl, imagepath, listid, and alerturl.
- Copy the updated BlogRollUpTestPage.html file to the root of your new document library.
- On a site page add a content editor web-part and reference the BlogRollUpTestPage.html file inside an iframe.
- Export the now pre-configured web-part to your desktop and upload back into the webpart gallery with an appropriate name identifying the BlogRollUp webpart so other users can add to their site pages without having to configure themselves.
Deployment using the custom web-part where server-side code is installed via the .wsp solution file for the webpart and typically requiring administrative access
- Download the Visual Studio solution .zip and extract the files.
Download BlogRollUp.zip
- Create a folder named ClientBin in a SharePoint document library to store the Silverlight application.
- Locate the BlogRollUp_Web\ClientBin\BlogRollUp.xap file and copy into your new ClientBin folder.
- Download the .wsp solution file
DownLoad BlogRollUpWP.wsp
- Install the provided .wsp solution file via stsadm -addsolution
- Activate the solution from SharePoint Central Administration or stsadm -activatefeature
- Upload the provided webpart .dwp file into your web-part gallery via site setting, web parts.
- Add the web-part to a site page, update the Silverlight web-part settings section with the appropriate .XAP fullpath, siteurl, imagepath, listid, and alerturl for your particular blog
- Export the now pre-configured web-part to your desktop and upload back into the webpart gallery with an appropriate name identifying the blogrollup webpart so other users can add to thier site pages without having to configure themselves.
Summary:
This is just one way of displaying some pertinent details on recent posts from the blogs dispersed throughout the intranet while also making it easy for users to add to any site page. Using Silverlight allows .NET developers to develop rich UI in Expression and Visual Studio and store the .xap files in SharePoint document libraries for future updates. 6/8/2009
by Sandra Tersteeg, MCTS
Allyis | www.allyis.com
A page of content on a site that is focused around a single subject or topic will often have related resources scattered throughout a SharePoint site collection in different libraries based on the team or groups that maintain them. A software product may have marketing requirements to define the features for an upcoming release that is produced by a product management team, while design specifications are managed by the development team and an administration guide is maintained by the technical editorial team. While each group maintains documents relating to the product within their own sites and libraries, there may be an area on the site that relates to everything about the product including its related documents.
Sometimes maintaining relevant documents is done manually by a single person or multiple people who are responsible for tying these related documents to the product information page or there may be very little process around maintaining related documents requiring the need to dig into each group.
Within SharePoint, there is a way to set this up so that any new or edited documents populate onto the page automatically. This is done through the use of SharePoint’s Content Type and Content Query Web Part. By utilizing Content Types to tag the documents, the Content Query Web Part will allow you to populate the related documents on the product page with no intervention after the initial configuration. Let me walk you through an example of how to create a page of content that will not only tell you what Product A is but will also automatically show all related documents to Product A.

Step 1: Create Site Columns
Within the site collection settings (Site Actions > Site Settings > Modify All Site Settings) begin by creating your site columns. For this example, I am using three site columns: Product, Version and Type of Document.
Step 2: Create Content Type & Associate Site Columns
Now create a new Content Type and associate the new site columns to the Content Type.

Note: If possible, try to make these site columns required on the Content Type or on the library.
Step 3: Associate Content Type to Document Libraries
-
In each library settings, turn on Allow Content Types in Advanced settings.
-
Then, add your new Content Type to the library. You may want to delete the default Document Content Type to prevent confusion and require the team members to use only the Content Type you just added.
-
Set any default values to the site columns within the library, but not the Content Type, to save the team from having to select them each time if possible.
Step 4: Apply Appropriate Metadata (Site Column) to Document
If you have a lot of documents to associate the content type to, the fastest way to do this is to turn off require checkout temporarily in Versioning Settings and edit the documents’ properties in a datasheet view. Make sure Content Type is checked as visible in the View, otherwise it will not appear in the datasheet view. Once you have modified documents, remember to turn back on require checkout.
All new documents created in the library using your new Content Type will have the columns already associated to the document.
Step 5: Configure Content Query Web Part
Now you are ready to add and configure your Content Query Web Part.

-
Create a web parts page anywhere on your SharePoint site collection. For this example, I am using a page of content that refers to ‘Product A.’
-
Now edit the page and add a new web part from the gallery named ‘Content Query Web Part.’
-
Initially, the web part will bring back everything on the site. You will need to fine tune it by choosing to Modify Shared Web Part.
-
On the right Content Query Web Part properties panel:
-
Leave the Source as the default ‘Show items from all sites in the site collection.’
-
Choose a Document Library List Type.
-
Select the new Content Type you applied to the document libraries that you want to display on the page.
-
Similar to a view within a list or library, select a Filter to show where Product column is equal to your product, in this instance, ‘Product A.’
-
Under Grouping and Sorting, you can choose how to group such as by Product Version and which column to sort by such as ‘Created’ which is the date the document was created in the library.
-
Choose a default style similar to the styles available in the Summary Link Field Control or Content Type. If you are not familiar with these styles play around until you find one that fits your display on the page.
-
Update the title of the web part and its chrome.
-
Finally, click OK and publish your page.
A few items to note about the Content Query Web Part is that multiple Content Query Web Parts on a page can begin to hinder the performance of the page loading and modifying styles, beyond what is readily available on the web part, displaying multiple columns and more advance features are not immediately available without some further customization to the CSS, XML and with the use of SharePoint Designer. However, it is great web part when you want to quickly display related documents from multiple sites in the SharePoint site collection. 5/12/2009
Using Multiple Forms for a Single List
by Sandra Tersteeg, MCTS, Sr. Project Manager Allyis, Inc. | www.allyis.com
Using lists in SharePoint is a great tool that allows users to submit items such as work requests or provide feedback. You can configure columns within the list for fields that you want users to complete for their submissions. However, managing the item itself typically requires more fields than the user needs to see. There are many ways that you can solve this, whether it be development work or a simple workflow to move the item from one list to another.
One way to solve this issue without requiring any customization, development work or building a workflow is to take advantage of SharePoint’s Content Types. By using Content Types inheritance, we are able to build a simple form for the user to submit their information and then a more detailed form for those managing the requests. For example, users of a particular SharePoint environment may want to submit changes they would like to see done on their sites. These submissions would come into an IT department and be assigned to a particular person for completion. The below steps will walk you through creating multiple forms with Content Types.
Step 1: Plan Fields for Each Form For each form, plan which fields are needed and what type of data will be stored in those fields. For example, ‘Request’ may be a field that is multiple lines of text for the user to describe their request. Requested By is already captured in the Created By column as well as the date in the Created column.
Step 2: Create Site Columns Since we will be using Content Types to provide the two different forms, one for submitting and one for managing the request, we will need to start by creating our site columns by navigating to Site Settings and clicking on Site Columns. Assigned To could be used from the core task site columns or you could create your own. I would suggest creating a new group for each form so that you can easily populate them into the Content Type. Then group all of the submission columns into the Form Submission Group and the Management of Request into another group.
Step 3: Create Submission Content Type Now that we have our site columns, we can create the first Content Type for the submission form. In Site Settings, go to the Content Type gallery and click Create. Here you will indicate that you want to create a Content Type based on the Lists group and Item parent. Provide your new Content Type with a title and description and then add the site columns for the submission only.
Step 4: Create the Item Management Content Type Next you will create another new Content Type just as you did above, however this time you will not inherit from Lists/Item, you will inherit from your freshly created Submission Content Type. Provide the title and description and then add in the additional site columns specific to managing the submissions.
The title will remain as is and be incorporated into your list. Changes to this label would not be done from within the Content Type. You will want to modify this from within the list itself.
Step 5: Create List & Configure for Content Types Now that you have your Content Types, you can either create a new custom list or use an existing list. Go to the List Settings and click on Advance Settings from within the General section. At the top in the Allow Management of Content Types section, click Yes. When you click OK, a new section will appear on the List Settings page called Content Types.

Step 6: Add New Content Types and Set Default In the Content Types section, add in the two Content Types you created for submissions and item management. Then set the submission one as the default. When a user clicks on New, either in the full or summary toolbar on the list view web part, they will be defaulted to the submission form. Optionally, you can delete the Item Content Type as a housecleaning item to prevent any confusion. Note, you will need to have both Content Types Visible on New Button in order to edit the Content Type from submission to manage work item on the form. The user submitting the request will not see the Content Type selection.
Step 7: Modify Title Now you can change the column Title to whatever you wish within the list column but not on the Content Type.
Step 8: Add List View to the Page or Hyperlink to New Submission Form Wherever you want the users to submit their requests, you can either create a hyperlink to the new form or use a List View Web Part on a page with the Summary toolbar. You can also include the Status in this view for the user to be able to keep track of the request status.
Ready, Set, Action! Now when a user submits a request, you can edit the item, select the management Content Type to display all the fields you need to manage their submission.
5/6/2009
Overview
Recently I had a client request an animated carousel or filmstrip like player for displaying both images and embedded .wmv videos on their SharePoint intranet. The idea is to display many images and videos without taking up a ton of screen space in the process. Also, they wanted to be able to manage what images and videos get displayed via a standard SharePoint list, i.e. they could add links and descriptions in the SharePoint list and those would display appropriately in the filmstrip.

Technical Analysis:
When evaluating a technical solution, it seemed like Silverlight would be the way to go for the filmstrip, Silverlight has built-in animation support, a media player for playing video, a rich set of controls, and good tool support with Expression Blend and Visual Studio 2008. For accessing the links, etc. stored in the SharePoint list, the SharePoint web service - lists.asmx - seemed a logical choice.
The catch:
The client’s IT department didn’t support custom ASPNET web applications or web services to be deployed without a huge review process or none at allJ. The client’s SharePoint was pretty locked down to any custom development.
The resolution:
There is a nifty yet fairly unknown protocol built in to SharePoint described on MSDN and the SharePoint SDK as the URL Protocol that allows you to query a list directly for all its list items. Plus, you can do this using a simple URL in the browser and also from Javascript on the client. I have used this fairly often since back in 2003 when I had to come up with a way to populate a Flash map with SharePoint data, so I was familiar with this protocol but not sure it would work in Silverlight.
I broke out my Swiss-Army knife for SharePoint (URL Protocol aka owssrv.dll) and - good news! - it actually worked! Silverlight can access data from a SharePoint list without the need to have a web service call. Essentially using the same built-in web client classes inside Silverlight designed to access external web pages or files.
So what is the SharePoint URL Protocol?
Excerpt from MSDN:
Embedding a request in a URL is a basic mechanism for issuing a method and its parameters to a server running Windows SharePoint Services.
The syntax
for using this mechanism is as follows:
[http://Server_Name/[sites/][Site_Name/]_vti_bin/owssvr.dll?Cmd=Display&List=GUID&XMLDATA=TRUE]
The details of using this syntax as part of your Silverlight application have been included in the code sample later in this post.
The technical approach for the solution using Silverlight, a SharePoint list, and the URL protocol:
Using Microsoft Expression Blend for the initial layout and Visual Studio 2008 for the C# code, I created an animated filmstrip (a variation of the all too familiar carousel in SilverlightJ) to display thumbnail images of the images and videos along with a main player area to display the larger view of the image/video when the user selected a thumbnail from the animated filmstrip.
Advantages of using Silverlight:
Rich support for animation, rich set of controls, good development tools, i.e. Microsoft Expression Blend and Visual Studio 2008, and all the advantages of coding in C# with a simple deployment process. You can even copy the Silverlight XAP files (essentially a compressed zip file with all your code) into a SharePoint document library and run from there along with a simple HTML page.
Advantage of using a SharePoint list as the source data for the filmstrip player:
The administrator of the SharePoint list can designate what gets displayed in the filmstrip player automatically via the SharePoint list:
· Designate the initial image/video that loads when the page loads.
· Turn individual items visibility on/off
· Select the appropriate thumbnail image and larger image
· Select the appropriate URL for a video to be played in the video player
Advantages of using the URL protocol to populate the Silverlight filmstrip items:
It’s a lightweight HTTP protocol, can be accessed via a simple URL, and does not require web services to access the data in a SharePoint list.
Example of the end solution:
Filmstrip player functionality:
· Animated filmstrip displaying thumbnail images based on links provided in the SharePoint list.
· Video player to play embedded .wmv video also based on links provided in the SharePoint list.
· Image viewer to display larger image based on user selection in the filmstrip.
· Main player section hot-linked to external URLs based on links provided in the SharePoint list.
· User controls for the filmstrip animation
· Pause/Play controls that turn on when video is loaded.
Other potential uses?
- Could be used on a Real Estate site to dynamically display images/video of the advertised home.
- A video player for a blog using the blog to collect comments.
- Basic slide show for a SharePoint document library or to display images from Flickr for instance in your SharePoint.
What's interesting about this implementation?
Using the URL protocol provides a simple mechanism for accessing SharePoint list data from within Silverlight without the need to add a web service reference.
Using LINQ to XML to parse the returned data from the SharePoint in XML greatly simplifies working with the SharePoint list data in Silverlight once it’s retrieved.
Using LINQ to XML also simplifies restructuring the data to a standard RSS feed format to use the data from the SharePoint list's built-in RSS feature as another option.
What's next on the feature front?
- Adding the ability for users to leave comments and ratings.
- Adding the ability for users to upload their own videos.
Code Example:
Example C# code for accessing the SharePoint list in Silverlight:
Silverlight 2 application attached to a ASPNET web project (I don't host the ASPNET app in SharePoint but easy way to generate the test.html and .XAP file)
public partial class Page : UserControl { private XNamespace z = "#RowsetSchema"; public Page() { InitializeComponent(); this.Loaded += new RoutedEventHandler(Page_Loaded); } public void Page_Loaded(object sender, RoutedEventArgs e) { string sUrl = "http://[server]/[site]/_vti_bin/owssvr.dll?Cmd=Display&List={[listguid]}&XMLDATA=TRUE"; WebClient sp = new WebClient(); sp.OpenReadCompleted += new OpenReadCompletedEventHandler(sp_OpenReadCompleted); sp.OpenReadAsync(new Uri(sUrl)); } void sp_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e) { if (e.Error == null) { var items = from item in results.Descendants(z + "row") where item.Attribute("ows_LinkTitle") != null orderby (DateTime)item.Attribute("ows_Created") descending select new FilmFrame { ItemTitle = (string)item.Attribute("ows_Title"), ItemLinkTitle = (string)item.Attribute("ows_LinkTitle"), ItemType = (string)item.Attribute("ows_ItemType"), ItemSourceUrl = (string)item.Attribute("ows_SourceUrl"), ItemThumbnailUrl = (string)item.Attribute("ows_Thumbnail"), ItemDescription = (string)item.Attribute("ows_Description"), ItemDisplayFilmStrip = (string)item.Attribute("ows_DisplayInFilmstrip"), ItemCreated = (DateTime)item.Attribute("ows_Created"), }; //You can bind to an itemtemplate for a listview directly for simplicity-the specfic example UI above builds the XAML dynamically to provide more
flexibility //ListView.ItemsSource = items; } }
Separate namespace for filmstripitem: namespace FilmStrip { public class FilmStripItem { public string ItemTitle { get; set; } public string ItemLinkTitle{ get; set; } public string ItemSourceUrl { get; set; } public string ItemType { get; set; } public string ItemDescription { get; set; } public string ItemDisplayFilmStrip { get; set; } public DateTime ItemCreated { get; set; } } }
Things you might want to consider when making use of this example:
The test.html and .xap file is being hosted inside SharePoint. In this case I just dropped on the SP Site at the root site level via SharePoint Designer.
For a quick way to databind the XML returned from the SharePoint list to XAML I initially used listbox and a data item template.
Summary:
The URL protocol is just one more option for accessing the data in your user's SharePoint lists and web client class in Silverlight provides a mechanism to use the list data inside your Silverlight applications hosted in SharePoint.
Rod Stagg http://www.rstagg.com SharePoint Solutions Architect Allyis Inc. Kirkland Wa http://www.Allyis.com 4/6/2009
Windows Live Writer from Windows Live is not only a great way to post to your SharePoint blog but it's also free.
What is Windows Live Writer?
Excerpt from Wikipedia:
Currently compatible with Windows Live Spaces, Blogger, LiveJournal, TypePad, Wordpress, Community_Server, PBlogs.gr, JournalHome, the MetaWeblog API, the Moveable Type API, and all blogs that support RSD (Really Simple Discoverability).
Windows Live Writer introduces the Provider Customization API that enables both rich customization of Windows Live Writer's behavior as well as the opportunity to add new functionality to the product. Currently Windows Live Spaces, WordPress, and TypePad have all taken advantage of this API to expose additional service-specific features within Windows Live Writer.
Windows Live Writer is currently available in 6 different languages.
Why Use It? It's easy to use, supports multiple blogging platforms, provides a good preview of the post prior to posting, and makes formatting, inserting images, and inserting inline videos much easier than coding by hand. Plus, you have the capability to use the add-in library and even write your own add-ins using the WLW API.
Since discovering WLW a year ago, it's all I use for blogging to my own blog on Windows Live Spaces, and also a blog I maintain on the SharePoint intranet where I work.
To make my posts stand out, I frequently incorporate images and video into my posts - on occasion creating my own training videos and then inserting them into my blog posts. WLW makes this easy.
Inserting Videos: Here is a training video I did using Windows Media Encoder for screen capture, Microsoft Media Encoder to encode and post directly to MSN SoapBox and the Silverlight Streaming Service. From Windows Live Writer I can insert a video from my Silverlight Streaming Service or MSN Soapbox - even get a preview mode of the video. Nice.
Using SharePoint Linked Data Sources Video
Inserting images: Inserting images is even easier - just choose Insert an image, browse to the image on your desktop, and WLW even posts the image into your SharePoint blog in a library for you, maintaing the correct image path.
Blogging while offline and to multiple platforms: WLW is also a great way to create and edit blog posts while offline and then post to your blog when convienent. Another plus is that it supports more than one blog platform so it's an ideal choice for creating a single blog post and publishing to multiple blog platforms including SharePoint. This is great for blogging on a plane, in meetings, and especially useful when blogging at a live event when internet access isn't available or is unreliable.
I use WLW to post to my Windows Live Spaces Blog and then syndicate to my notes in Facebook, Linked-In profile, and my personal blog page on our company SharePoint blog based on categories assigned in WLW and the built-in RSS Feeds provided by Windows Live Spaces. WLW really simplifies inserting pictures, videos, maps, etc., plus you can develop your own add-ins which is cool. Having the ability to blog offline and to multiple platforms is a huge plus. Did I mention it's free?
Check out the Windows Live Writer download page for more details.
Rod Stagg (website) http://rstagg.com SharePoint Solutions Architect Allyis Inc.
| View in Web Browser | /_layouts/images/ichtmxls.gif | /blogs/GetThePoint/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&DefaultItemOpen=1 | 0x0 | 0x1 | FileType | xlsx | 255 | | View in Web Browser | /_layouts/images/ichtmxls.gif | /blogs/GetThePoint/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&DefaultItemOpen=1 | 0x0 | 0x1 | FileType | xlsb | 255 | | Snapshot in Excel | /_layouts/images/ewr134.gif | /blogs/GetThePoint/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&Snapshot=1 | 0x0 | 0x1 | FileType | xlsx | 256 | | Snapshot in Excel | /_layouts/images/ewr134.gif | /blogs/GetThePoint/_layouts/xlviewer.aspx?listguid={ListId}&itemid={ItemId}&Snapshot=1 | 0x0 | 0x1 | FileType | xlsb | 256 |
|
|
|
|
|
|
|
|