| A new feature in SharePoint 2010 is validation of item creation based on either individual column value validation or an overall item validation based on multiple columns. In this post, I'm going to look specifically at the column validation option. An example of where this might be useful is for reducing automated blog comment spam. In the example below, I have added a column to my SharePoint Blog Comments list called Antispam.
At the bottom of the column create page there is a new option to define the validation formula and message to display if the validation fails. In this example I require the user to enter the 3 character abbreviation for today.
Note: Initially I tried using [Today] which is the notation for substitution in filter conditions. Thanks Chakkaradeep for reminding me of this. When a user creates an item the validation will be checked and rejected if validation fails. 
|
| There are many options when it comes to applying metadata and taxonomy to SharePoint content. SharePoint 2010 introduces a new farm service to provide a centralized taxonomy that supports hierarchical terms. In 2007 we only had the choice and Lookup columns which are still available in 2010 so why would you still use the lookup column?
Figure 1: Column choices in 2010 Many people would say that you should drop the old columns from use because they can't be shared across site collection but this is not correct as they can be shared across site collections using the Content Type Hub syndication feature of the Managed Metadata Service. Limitations on Multiple Selection Unlike the Managed Metadata column, the Lookup field allows column filtering on a single value even if there are multiple values selected for list items. The example below shows a look-up column that has multi-selection enabled and list items that have more than one lookup value selected. Filtering the column on a single value will still display matching items that have other values also (uses "Contains").
Figure 2: Multi-select lookup column filtering Unfortunately this lookup column can't be used in the new Key Filters list navigation option. This is where the Term Store based multi select column does work.
Figure 3: Multi-select Term Store column filtering (Usability note: I think the new metadata navigation area should be at the top of the quick launch otherwise users may not notice they are available if the site has a lot of lists and libraries showing in the Quick Launch. ) So depending on how you want to use the metadata might determine the type of column that will work best. |
| There are several places where you can use the built in SharePoint permissions (apart from Code and Site Permission administration. I have blogged about the SPSecurityTrimmedControl and ddwrt:IfHasRights uses in 2007 but there is the new ribbon custom commands in 2010 that also make use of the SharePoint permissions. So here is an overview of how you can use these permissions in the following scenarios followed by a complete list of the permission values. Ribbon Custom Actions You can add these to any list or library using SharePoint Designer from the List summary page
The properties of the action allow you to specify the Rights Mask to control visibility of the action.
SPSecurityTrimmedControl Class Conditionally renders the contents of the control to the current user only if the current user has permissions defined in the PermissionString. You can use this in your master, page layouts or web part pages. <Sharepoint:SPSecurityTrimmedControl runat="server" PermissionsString="" ></SharePoint:SPSecurityTrimmedControl> Ddwrt xsl namespace You can use this in the Data View web part or any other web part that is derived from this (e.g. search or content query). <xsl:if test="ddwrt:IfHasRights(permissionMask)"> something... </xsl:if> SharePoint designer also makes this function available in the xpath expression builder dialog.
List of permissions and mask values: List/document perms | Mask | ViewListItems | 1 | AddListItems | 2 | EditListItems | 4 | DeleteListItems | 8 | ApproveItems | 16 | OpenItems | 32 | ViewVersions | 64 | DeleteVersions | 128 | CancelCheckout | 256 | ManagePersonalViews | 512 | ManageLists | 2,048 | ViewFormPages | 4,096 | Web level perms | Open | 65,536 | ViewPages | 131,072 | AddAndCustomizePages | 262,144 | ApplyThemeAndBorder | 524,288 | ApplyStyleSheets | 1,048,576 | ViewUsageData | 2,097,152 | CreateSSCSite | 4,194,314 | ManageSubwebs | 8,388,608 | CreateGroups | 16,777,216 | ManagePermissions | 33,554,432 | BrowseDirectories | 67,108,864 | BrowseUserInfo | 134,217,728 | AddDelPrivateWebParts | 268,435,456 | UpdatePersonalWebParts | 536,870,912 | ManageWeb | 1,073,741,824 | UseRemoteAPIs | 137,438,953,472 | ManageAlerts | 274,877,906,944 | CreateAlerts | 549,755,813,888 | EditMyUserInfo | 1,099,511,627,776 | special perms | EnumeratePermissions | 4,611,686,018,427,380,000 |
|
| The following certifications (According to the MS Partner web site https://partner.microsoft.com/global/40121316) should be available in June. IT Pro - 70-667 TS: Microsoft SharePoint 2010, Configuring
Microsoft Official Curriculum: Will cover configuration of SharePoint 2010 including deployment, upgrade, management, and operation on a server farm. - 70-668 PRO: SharePoint 2010, Administrator
Microsoft Official Curriculum: Will cover advanced SharePoint 2010 topics including capacity planning, topology designing, and performance tuning.
Developer - 70-573 TS: Microsoft SharePoint 2010, Application Development
Microsoft Official Curriculum: Five-day instructor-led course designed for developers with six months or more of .NET development experience. Course covers what you need to know to be an effective member of a SharePoint development team using Visual Studio 2010. - 70-576 PRO: Designing and Developing Microsoft SharePoint 2010 Applications
Microsoft Official Curriculum: Five-day instructor-led training course designed for development team leads who have already passed the Developing on SharePoint 2010 technical specialist exam. The course covers choosing technologies for and scoping a SharePoint project, best practices for SharePoint development, configuring a SharePoint development environment, advanced use of SharePoint developer features, and debugging of code in a SharePoint project.
|
| I had always struggled to find a compelling use for Groove that related to my heavy use of structured data (Lists) but with SharePoint Workspace now supporting Windows Desktop Search, I think I have found the killer use for it (read: I'm really excited about this :-).
From Vista or Windows 7, you can add a search shortcut to the Workspace…
And then search directly from Windows Explorer…
And open an item directly from the search results…
To enable this, you need to Sync the list to a SharePoint Workspace from the List Tools ribbon as shown below.
(It would be nice if you could publish a link to initiate the creation of a workspace for a list, I suspect this uses the client OM rather than a URL Moniker. I will investigate this)
Note: if this is the first time you have used the SharePoint Workspace client there will be a few additional account setup steps.
You can then access the list data in the Workspace client.
Notes:
- I found that I had to experiment with the list views to find one that worked well for offline use.
- Group by views don't work as expected.
- Can't sort or filter on columns (need to create a lot more views or export to Excel).
To create a Desktop Search shortcut, click on the Search icon in the view above, search for *, and click Save Search.
Now I have a reason to complete all the SharePoint PowerShell commands and details in this list http://www.wssdemo.com/Lists/PowerShell
You should be able to grab an offline copy of this list for yourself by using the guest logon corp\demouser pass@word1 but it looks like SharePoint Workspace requires contributor rights. |
| From http://www.useit.com/alertbox/intranet_design_2009.html In total, the 10 winners were built on 26 different products — substantially fewer than the 41 used in 2008 or the 49 used in 2007. Most impressively, fully half of the winning intranets used SharePoint, especially the recent MOSS platform (Microsoft Office SharePoint Server 2007). As the following chart shows, SharePoint use has grown dramatically in recent years. This is particularly impressive given that, from 2003–2006, the winning intranets didn't use earlier versions of SharePoint at all.  Microsoft SharePoint has seen substantially increased use among well-designed intranets in recent years.
|
| Nothing annoys me more than seeing structured information stored in a static HTML file (such as a blog or wiki) so I created SharePoint lists for the following: Enjoy... |
| I was playing around with custom list views assigned to a content type. This is much easier to do with SPD 2010 than it was with 2007. As you can see, http://alexgorbatchev.com/wiki/SyntaxHighlighter is included in the code field rendering.
Download the 2010 Site Template WSP http://www.wssdemo.com/Downloads/PSLibrary.wsp and load it into your solution gallery (_catalogs/solutions/Forms/AllItems.aspx) to create a site that includes this list (not tested on another farm so there may be some relative link issues, let me know if so). I would have created a list template for you (all the resources for SyntaxHighlighter are in a hidden folder in the list so it would be self contained) but there is a bug in Beta 2 which means that only the Title field is created L |
| Now that my site has been running on 2010 for a month I thought I would share some screen shots of the usage stats.
Figure 1: Unique daily visitors
Figure 2: Page Views
Figure 3: Referring Sites
Figure 4: Top Pages All of the reports allow you to specify time periods other than the default 30 days
|
View in Web Browser /Blog/_layouts/VisioWebAccess/VisioWebAccess.aspx?listguid={ListId}&itemid={ItemId}&DefaultItemOpen=1 0x0 0x1 FileType vdw 255 Edit in Browser /Blog/_layouts/PowerPoint.aspx?PowerPointView=EditView&PresentationId={ItemUrl}&source={Source} 0x0 0x4 FileType pptx 256 Edit in Browser /Blog/_layouts/PowerPoint.aspx?PowerPointView=EditView&PresentationId={ItemUrl}&source={Source} 0x0 0x4 FileType ppsx 256 View in Browser {SiteUrl}/_layouts/WordViewer.aspx?id={ItemUrl}&source={Source} 0x0 0x1 FileType docx 255 Edit in Browser {SiteUrl}/_layouts/WordEditor.aspx?id={ItemUrl}&source={Source} 0x0 0x4 FileType docx 255 View in Browser {SiteUrl}/_layouts/WordViewer.aspx?id={ItemUrl}&source={Source} 0x0 0x1 FileType doc 255 View in Browser {SiteUrl}/_layouts/WordViewer.aspx?id={ItemUrl}&source={Source} 0x0 0x1 FileType dotx 255 View in Browser {SiteUrl}/_layouts/WordViewer/WordViewer.aspx?id={ItemUrl} 0x0 0x1 FileType dot 255 View in Browser {SiteUrl}/_layouts/WordViewer.aspx?id={ItemUrl}&source={Source} 0x0 0x1 FileType dotm 255 View in Browser {SiteUrl}/_layouts/WordViewer.aspx?id={ItemUrl}&source={Source} 0x0 0x1 FileType docm 255 Edit in Browser {SiteUrl}/_layouts/WordEditor.aspx?id={ItemUrl}&source={Source} 0x0 0x1 FileType docm 255 View in Browser {SiteUrl}/_layouts/OneNote.aspx?id={ItemUrl}&source={Source} 0x0 0x1 FileType one 255 Edit in Browser {SiteUrl}/_layouts/OneNote.aspx?id={ItemUrl}&Edit=1&source={Source} 0x0 0x4 FileType one 255 View in Browser {SiteUrl}/_layouts/OneNote.aspx?id={ItemUrl}&source={Source} 0x0 0x1 ProgId OneNote.Notebook 1200 Edit in Browser {SiteUrl}/_layouts/OneNote.aspx?id={ItemUrl}&Edit=1&source={Source} 0x0 0x4 ProgId OneNote.Notebook 1200 Compliance Details javascript:commonShowModalDialog('{SiteUrl}/_layouts/itemexpiration.aspx?ID={ItemId}&List={ListId}', 'center:1;dialogHeight:500px;dialogWidth:500px;resizable:yes;status:no;location:no;menubar:no;help:no', function GotoPageAfterClose(pageid){if(pageid == 'hold') {STSNavigate(unescape(decodeURI('{SiteUrl}'))+'/_layouts/hold.aspx?ID={ItemId}&List={ListId}'); return false;} if(pageid == 'audit') {STSNavigate(unescape(decodeURI('{SiteUrl}'))+'/_layouts/Reporting.aspx?Category=Auditing&backtype=item&ID={ItemId}&List={ListId}'); return false;} if(pageid == 'config') {STSNavigate(unescape(decodeURI('{SiteUrl}'))+'/_layouts/expirationconfig.aspx?ID={ItemId}&List={ListId}'); return false;}}, null); return false; 0x0 0x1 ContentType 0x01 898 Edit in Browser /_layouts/images/icxddoc.gif /Blog/_layouts/formserver.aspx?XsnLocation={ItemUrl}&OpenIn=Browser&Source={Source} 0x0 0x1 FileType xsn 255 Edit in Browser /_layouts/images/icxddoc.gif /Blog/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser&Source={Source} 0x0 0x1 ProgId InfoPath.Document 255 Edit in Browser /_layouts/images/icxddoc.gif /Blog/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser&Source={Source} 0x0 0x1 ProgId InfoPath.Document.2 255 Edit in Browser /_layouts/images/icxddoc.gif /Blog/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser&Source={Source} 0x0 0x1 ProgId InfoPath.Document.3 255 Edit in Browser /_layouts/images/icxddoc.gif /Blog/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser&Source={Source} 0x0 0x1 ProgId InfoPath.Document.4 255 View in Browser /Blog/_layouts/xlviewer.aspx?list={ListId}&id={ItemId}&DefaultItemOpen=1 0x0 0x1 FileType xlsx 255 View in Browser /Blog/_layouts/xlviewer.aspx?list={ListId}&id={ItemId}&DefaultItemOpen=1 0x0 0x1 FileType xlsm 255 View in Browser /Blog/_layouts/xlviewer.aspx?list={ListId}&id={ItemId}&DefaultItemOpen=1 0x0 0x1 FileType xlsb 255 View in Browser /Blog/_layouts/PowerPoint.aspx?PowerPointView=ReadingView&PresentationId={ItemUrl}&source={Source} 0x0 0x1 FileType pptx 255 View in Browser /Blog/_layouts/PowerPoint.aspx?PowerPointView=ReadingView&PresentationId={ItemUrl}&source={Source} 0x0 0x1 FileType ppt 255 View in Browser /Blog/_layouts/PowerPoint.aspx?PowerPointView=ReadingView&PresentationId={ItemUrl}&source={Source} 0x0 0x1 FileType pptm 255 View in Browser /Blog/_layouts/PowerPoint.aspx?PowerPointView=ReadingView&PresentationId={ItemUrl}&source={Source} 0x0 0x1 FileType ppsx 255 View in Browser /Blog/_layouts/PowerPoint.aspx?PowerPointView=ReadingView&PresentationId={ItemUrl}&source={Source} 0x0 0x1 FileType ppsm 255 View in Browser /Blog/_layouts/PowerPoint.aspx?PowerPointView=ReadingView&PresentationId={ItemUrl}&source={Source} 0x0 0x1 FileType pps 255 View in Browser /Blog/_layouts/PowerPoint.aspx?PowerPointView=ReadingView&PresentationId={ItemUrl}&source={Source} 0x0 0x1 FileType potx 255 View in Browser /Blog/_layouts/PowerPoint.aspx?PowerPointView=ReadingView&PresentationId={ItemUrl}&source={Source} 0x0 0x1 FileType potm 255 View in Browser /Blog/_layouts/PowerPoint.aspx?PowerPointView=ReadingView&PresentationId={ItemUrl}&source={Source} 0x0 0x1 FileType pot 255 |
|
|
|