Thursday, May 20, 2010

SharePoint 2010 Business Continuity Management

Business Continuity Management

Microsoft uses the term business continuity management in terms of new features that they are providing to support your ability to manage SharePoint backup/restore, high availability and disaster recovery scenarios. On the topic of backup and restored there are several new improvements that you should take note of:

  • Farm backup is available in Central Admin and will do backups of each service and content database. Microsoft SharePoint Server 2010 supports backup of databases up to 600GB and supports both Full and Differential. However System Center Data Protection Manager 2007 supports up to 5TB with Full, Differential and Incremental.
  • New Configuration only backup - configuration database settings can now be written into an XML file. This provides the ability to create a new farm with the same topology of the original farm.
  • Content database backups that will start a SQL Server backup for each individual content database selected. You then have the flexibility to restore the content database with a new name or overwrite an existing.
  • Search backups are little more involved (there are two phases) to support both search indexes and the search database. It is important that the index is preserved because rebuilding them from scratch is an expensive operation. You have to understand a little bit about how searching and crawling work but at a high level, crawl services will search for new content and that new content will be merged into the index which users search against. In the first phase of the search back up, the merging of indexes will be stopped so indexes can be copied from the query servers. Crawling for new content will still continue. As well all search databases will be backed up. In the second phase, crawls will be paused and all new indexes that were created while Phase 1 was going will be backed up. Then crawling and merging will be restarted. The reason why this is done to minimize the downtime of crawling for new content. When restoring, indexes are first restored, then the search databases and finally indexes from the second phase and merged into the index backed up in the first phase. Search back ups are only supported through SharePoint Admin.
  • Service applications in general have their own back and restore routines. The search one we just discussed is special for search. SharePoint will launch SQL Server backups of any associated database to the service application along with the service configuration database. Again this is specific to SharePoint Admin and not supported by SCDP Manager 2007.
  • Backup and restore of Site Collections have changed such that they are more granular and support back/restore of data that is unattached to a content database. Remember that a content database may have one-to-many site collections stored within it. SharePoint 2010 now supports backing up a collection by extracting data out of the content database instance using Select statements and then saving data to file. It is even possible to have SharePoint create a snapshot of the content database and then create the site collection back up from the snapshot to reduce performance against the live content database. The now unattached backup (.bak file) and be restored into any content database you may have.
  • Ability to back up both site and lists from central admin is now supported with SharePoint 2010. Similar to the backup/restore of site collections, sites and lists are extracted out using SQL Select statements and stored on file (.cmp file). They can then be restored into any content database you may have.
  • Improved site deletion logic that ensures that minimizes site blocking by using timer jobs that will perform this operation in the background and do chunk based deletion.
  • There are new improvements associated to high availability that you should be aware of for SharePoint 2010. The most noticeable one is a new feature support to support SQL Server Database Mirroring for all databases. All databases configured within SharePoint can now take advantage of this. In central admin, it is now as simple is identifying the Failover Server name when for example creating a new content database.

Business Continuity Management Thoughts

All of these topics usually came up when I talked with clients about SharePoint 2007. Many of clients did not put enough forethought into how they were going to support backup/recovery, disaster recovery and high availability. I think in many cases well intended clients missed the fact that there is a strong correlation between the logical design of SharePoint and how data should be managed for backup/restore. Typically backup/restored was pushed off to network administrators who would just spin up new site collections and content databases without any thought to context to what was being done with SharePoint. They would not know who is accessing what, how often, why and from where. Things like security and service level agreements were not considered because some site collections are more important than others. The net result was extremely bloated content databases and company has no agility to react to change or to sustain operations without have to buy a third party tool.

Now with SharePoint 2010 we have some better features that allow us better manage data. It is really exciting to see the granularity that has been introduced and the new unattached database feature is really interesting. Plus as well, the new SharePoint PowerShell really enables administrators to write robust scripts to support backup/recovery. I still think the third party market for very rich backup/recovery tools.

My only point is that I do not like seeing new powerful, robust tools being used as a crutch for not thinking ahead. This all goes towards having strong SharePoint governance and procedures in place to understand how SharePoint data should be managed to ensure that service level agreements are met with the business. These means that a strategy should be put in place for tiered support and then have criteria that you measure all new solutions against. For instance, if a group needs a new document center along with some new custom web parts and workflows to manage that data, what is the plan for how the data will be backed up and restored based on business operating scenarios? The architect, designer, or developer creating SharePoint solutions must be able to explain how their solution fits in or affects continuity of operations for other deployed solutions. If they cannot, you have some long term problems.

Free SharePoint 2010 Training

Back in March of 2010, Microsoft released the Ignite SharePoint 2010 training for free to the Microsoft Gold Partners - http://blogs.msdn.com/sharepoint/archive/2010/03/24/get-ready-for-sharepoint-2010-with-ignite-online-now-available-for-partners-on-the-partner-learning-center.aspx

I went back training to look at something and noticed all the slides have been updated with the May release of SharePoint 2010. There are also a ton of new presentations and slides available for each track area. I highly suggest going back through this because the information that was in here early was based on beta releases.

Saturday, May 15, 2010

New SharePoint 2010 Features Part 6 – Administrative Features

Administration Features

This is the last part of my new series on SharePoint 2010. In this blog I will focus on some of the new administrative features of SharePoint 2010 and why they are important for solving your challenges with managing SharePoint.

Monitoring and Health Analyzer (Reference)

We now have a new rules based infrastructure that monitors and maintains health called the SharePoint Health Analyzer. It can automatically check and monitor rules for configuration, performance and security and then notify farm administrators. There are several rules that come out of the box, however there is an extensible API that can be used to write custom ones and then deployed to the farm.

As well, there are tools like:

  • Unified Logging Service (ULS) logs – robust logging infrastructure of SharePoint.
  • New Health Reports provides insight into the overall farm performance and can aggregate reports across server farm environments. These reports can be leveraged to proactively manage issues that can arise at the site, web or even page level.
  • New Usage Infrastructure which provides for streamlined logging of usage data via an API. Data can be stored in log file which will subsequently picked up by a timer job and committed to a SQL database so the usage data can be aggregated for reporting.
  • Improved SharePoint Web Analytics Service which provides a lot of new reports than were not available in SharePoint 2007, the ability to filter data, report scheduling, customize reports using Excel,
  • A new developer dashboard that provides developers and administrators data to investigate the cause of run time errors with performance, call stack and exception information without having to dig into logs.
  • SPMonitoredScope is a function available to developers to allow them to identify the source of performance and resource usage on server side code. It will monitor execution time, number of SharePoint requests, number of SQL requests and will write this data out to ULS Logs.
  • Microsoft Systems Center Operations Manager Pack that provides real time notification of issues, aggregates data from both SharePoint ULS Logs and Windows Event Logs, and leverages the logging database and Health Analyzer reporting data.

Monitoring and Health Analyzer Thoughts

What have seen with the high adoption of SharePoint 2007 is SharePoint environments grow at a rate that was not anticipated. Organizations and companies now have to make investments in personnel to administer these environments. I think anything in this area to assist with configuration management of SharePoint 2010 was badly needed and it is great to see that Microsoft has incorporated these rich features into SharePoint 2010. Many of these new features are going to greatly empower SharePoint administrators that ability to monitor and manage their SharePoint environments.

Performance Monitoring and Request Throttling (Reference)

Microsoft has introduced new features to allow them to better handle performance. Specifically SharePoint has introduced a new programmable system for throttling HTTP requests when WFEs become too busy to handle all the requests. You have the ability to:

  • Identify Windows Server 2008 performance counters that will be used to determine which WFEs are too busy.
  • Define threshold values for counters that cause the worked thread to begin throttling.
  • Ability to define which type of HTTP requests is throttled.
  • Define HTTP requests that are exempt from throttling.

Performance Monitoring and Request Throttling Thoughts

This may seem not that interesting for a business user to understand but it great that this has been introduced. What this can allow us to do is better manage the types of HTTP requests that are being requested from our SharePoint WFEs. For instance you may have known Excel Service reports that require a lot of resources to run and can potentially lock out users from doing standard views on basic content pages on the main homepage. In this scenario, we now have the ability to better manage performance such that the homepage is given the highest priority.

Sandboxed Solutions (Reference)

Sandboxed solutions are a new concept to SharePoint 2010. What this basically does is allow site collection users the ability to upload their own custom code solutions into SharePoint. Sandboxed solutions can only use a subset of the Microsoft.SharePoint API. Sandboxed solutions are stored in a solution gallery and there facilities that allow farm administrators to monitor solutions that have been deployed. Performance can as well be monitored for CPU usage, memory consumption and database query time, abnormal termination, exceptions and data marshaling size.

Sandboxed Solutions Thoughts

Previous versions of SharePoint required us to be administrators to deploy solutions however this is no longer the case. Sandboxed Solutions are great in that they provide a solution to allow for custom solutions to be deployed into SharePoint without requiring administrative support. Even with a subset of functionality, this could still be very powerful and allow business to be more agile in meeting real-time demands. Plus having the administrative features ensures that bad custom solutions can be better monitored.

Security Enhancements (Reference)

There are some changes associated to security that you should be aware of for SharePoint 2010.

One of the first and foremost is support for Claims-Based authentications. At a high-level claims-based aware systems will take a claim (i.e. a username, email address, etc.) from a user and then an external identity system will provide your system with all the information needed about a user. Using a claims-based authentication, single sign-on becomes easier to achieve because SharePoint will no longer be responsible for authenticating users, storing usernames/passwords, calling user directories to look up identity details and need to integrate with identity systems on other platforms.

With SharePoint 2010 there are five supported sign-in modes supported:

  • Windows Classic-Mode Sign-In
  • Windows Claims-Mode Sign-In
  • SAML Passive Sign-in Mode
  • ASP.NET Membership and Role Passive Sign-In
  • Anonymous Access

Some other new features of SharePoint 2010 Security are:

  • Managed Accounts – This is a new feature that allows administrators to identify in one place the account (username/password) that would be used in the configuration of SharePoint (for instance the web application pools in IIS). Then when configuring Central Admin, users only have to select a managed account and do not need to know the password which system administrators may only know. As well, when a password needs to change, the administrator only has to change it one place and it will be replicated throughout.
  • Automatic Password Change – In correlation with Managed Accounts, there is a new automatic password change service that will update passwords without having to perform manual password update tasks across multiple accounts, applications or services. This feature can also be used to determine if a password is about to expire and to reset the password using a random string.
  • Check User/Group Permissions – There are some new features available to users and administrators to manage permissions. It is now very is to view site collection permission for a group and check permissions for a particular user/group on a web/list/item using the new ribbon. As well there is a feature the will give a visual indicator that content and been uniquely secured.
  • Secure Store Service – This replaces SharePoint 2007 SSO Feature.

Security Enhancement Thoughts

Obviously seeing that Claims Based Authentication has been adopted into SharePoint 2010 is a good thing which will help with over security. In my experience the managed accounts, automatic password change and check permissions features are way more exciting because these have been major pain in the side of administrators and developers when managing a SharePoint environment.

ULS Logging (Reference)

There have been several new improvements to ULS Logs for SharePoint 2010:

  • SPMonitoredScope is a code attribute that when decorated on a class or method will write logging information to the SharePoint usage database.
  • Request Usage Database captures every SharePoint resource request that is made when a page is rendered.
  • Developer Dashboard is a new utility for developers that can be enabled on any SharePoint web page. It is similar in concept to the ASP.net tracing pages from a long time ago.
  • API Improvements of SharePoint 2010 have made it easier for developers to write custom trace logs.

ULS Logging Thoughts

Anything that is provided to make developers lives easier to debug runtime, production issues was greatly needed. Having to dig through the ULS logs to find a specific error is very time consuming for SharePoint developers. These changes will be well received by development teams and allow them to more quickly support production environments.

Windows PowerShell for SharePoint (Reference)

PowerShell for SharePoint is a command line interface, tool and scripting language for SharePoint 2010. This replaces Stsadm.exe which was used for SharePoint 2007.

Windows PowerShell for SharePoint Thoughts

This is one of the hottest topics with SharePoint administrators and developers as this is significantly more powerful to the tools we have had in the past. PowerShell for SharePoint is a game changer for administration of SharePoint. I cannot say how many times we have had to create custom command line applications to do administrative tasks. Now system administrators, with no coding experience, have the ability to write robust administrative jobs to manage their environments.

New SharePoint 2010 Features Part 5 – Office and BI Features

SharePoint Office and BI Features

In this part of my new features of SharePoint 2010 blog series, I am going to focus on Office and Business Intelligence features of SharePoint 2010.

Excel Services (Reference and Reference)

Excel Services was introduced in SharePoint 2007 to much fanfare. It provided a great initial release however there were several limitations to it which hinder the highly advanced Excel power users when they tried to place their Excel Spreadsheets into Excel Services. However there have been several new improvements that will make Excel Services for SharePoint 2010 even more compelling. Two of the biggest changes are first we can now edit Excel workbooks in Excel Services programmatically. Second users can now edit workbooks within SharePoint and edit the data directly in the browser.

Excel Services Thoughts

It is great to see Excel Services mature as it is the second version of this solution offering by Microsoft. What we are going to start seeing is a shift of the standard Microsoft Office desktop being available over the web. It will never be as fully robust as running Excel locally as a client but what this does enable is better communication of business data. There are so many businesses that have mission critical data stored within Excel with no way to distribute or control it in an efficient manner. I have heard the condescending remarks before by software consultants who say "how can you be using Excel instead of a custom application to manage such mission critical data". My response is, live the day of life in the corporate world where IT resources may not always available. In these many cases, business users (Information Workers) are forced to come up with solutions with readily available software and one of them is Excel. I am really glad to see how this is being used.

One thing I think is needed to ensure success of Excel Services within an organization is an effective governance strategy for rolling it out across the enterprise. This would include, providing the proper infrastructure, correct SharePoint logical architecture, information worker training, rules for deployment, maintenance, etc. I think the biggest thing is lack of education of business users that they have such a powerful solution available for them to expose their data.

Access Services (Reference and Reference)

The goal of access services is basic – to provide the ability to make Access database available over the web. Access has been a tool that helps enable non-technical business users the ability to create business applications. Now users can continue to create these applications with Access 2010 on the client and then publish them to SharePoint 2010. The full functionality of Access 2010 on the client is not available over the web through SharePoint as there is only a limited subset of full client object functionality.

Access Services Thoughts

I am really excited about this new feature and I cannot believe I am saying that. I say that because from a professional services perspective we have had a lot business where have moved Access solutions to .NET/SQL Server based solutions because Access applications could not scale.

I think the vision of this is great but since it is a first release and there is only a limited subset of functionality initially available it will suffer from the same issues Excel Services in SharePoint 2007 suffered from. The biggest issue is that Access developers are very advanced and require full features which will not be available right now. That notwithstanding, I can name more than two past SharePoint 2007 clients of mine who could use this even though it is lightweight. Their business users know MS Access and they do not mind functionality limitations if they maximize the investments they have made in their current staff and they build simple applications.

I see down the road this as another option to allow business to create codeless applications that solve tactical business challenges that companies face every day.

InfoPath Form Services (Reference and Reference)

In SharePoint 2007 we were given the ability to use InfoPath within the browser and we subsequently saw a lot of adoption of InfoPath to create data capture forms for business processes. SharePoint 2010 has expanded the features of InfoPath to include the following:

  • Enhance SharePoint List Forms – This new capability allows you to very easily replace create, edit and view list item forms in a SharePoint List with a completely custom InfoPath form. This effectively allows you to add additional rules, load in data from other locations, incorporate business automation into lists, etc.
  • One Click Publish – You no longer have to click through the entire publishing wizard after you publish the form one time.
  • SharePoint Workspace 2010 – As part of this series I introduced SharePoint Workspace 2010 which is the replacement for the MS Groove solution. SharePoint Workspace uses InfoPath 2010 as the editor for all SharePoint list and library data that entered while offline. When SharePoint Workspace is brought back online, the data in the forms are synchronized back to SharePoint.
  • SharePoint Designer 2010 Integration – InfoPath 2010 is now integrated with SharePoint Designer 2010. We now have the ability to define and publish InfoPath forms along with a business process that is designed in SharePoint Designer 2010.
  • Business Connectivity Services (BCS) Integration – InfoPath 2010 has direct integration with BCS to expose enterprise data through InfoPath allowing for read, insert, update and delete operations.
  • InfoPath Web Part – There is a new InfoPath Web Part that allows you to embed and InfoPath form directly into a web part page. Previously we had to go to a special web page that could render an InfoPath form over the web or we had to write a bunch of custom code. Now the InfoPath form can be displayed along with web parts that may provide complete different functionality.
  • Deploy .NET Managed Code to Sandboxed – Publishing InfoPath forms with .NET managed code no longer require an administrator to publish the form through Central Admin. You can now simply publish the form using as a Sandbox Solution which I introduced this earlier in this series.
  • New Web Form Controls – With the previous version InfoPath, there are several controls which were not available when the InfoPath form was web enabled. With InfoPath 2010 we have nine new controls we can use.
  • Better Support for Open Standards.
  • Better support for digital signatures.
  • Integration with SharePoint PowerShell cmlets
  • Integration with SharePoint 2010 health and analysis tool called SharePoint Maintenance Manager which automatically checks for configuration, performance and usage issues. There are specific rules for SharePoint 2010 for monitoring.

InfoPath Form Services Thoughts

If you read my blog or talk with me you will find out I have been a huge proponent of InfoPath since Office 2003. Obviously I have some important rules that I follow, most notably if .NET managed code is needed stop using InfoPath move to another platform. However InfoPath is such a great tool because:

  • It is XML based.
  • Can be rendered over the web through SharePoint with no client desktop footprint.
  • It is very easy to create simple to medium level data capture forms.
  • Does not require a developer.
  • Very cost effective.
  • Very easy to hook into web services to persist data externally.

I really believe developers just get too wrapped up not have a full IDE to work with and just cannot architect a solution well.

I am really very very very excited to see these new features and expect great things from InfoPath for SharePoint 2010. I really think this is a game changer for organizations to build much more powerful applications and solutions within the SharePoint platform.

Visio Services (Reference)

For SharePoint 2010, there is a new service called Visio Services which provide the ability to load, display and interact programmatically with Visio 2010 documents published into SharePoint.

From a programmatic perspective you have two options. First you can create a data provider for Visio which can be used to load in external data in the Visio form. Second ECMAScript Object Model provides programmatic access to the objects and data within the Visio diagram allowing you to create mashups, create overlays on the diagram, respond to mouse clicks, allow for panning and zooming, etc.

Visio Services Thoughts

I will be very interested to see use cases on how Visio Services will be used with SharePoint 2010. I have had clients ask me in the past, how they can make their Visio diagrams available over SharePoint without having to deploy Visio to every desktop. Well that is now solved. However this release goes well beyond that in that Visio is being made into a data driven application that can graphically display data. I think this again just adds to the richness of the SharePoint platform as another technology we can use to solve business demand.

Word Automation Services (Reference)

Word Automation Services is a new application service to SharePoint 2010. What this service provides is unattended, server-side conversion of documents into formats that are supported by Microsoft Word on the desktop. What is basically does is replicated the Save As functionality that you are used to in Microsoft Word client.

Word Automation Services Thoughts

At first glance as a developer you may not see the immediate value of this however there are several scenarios (Reference) where this can be very helpful. For instance let's say every week or month a large set of invoices need to be generated from a custom database and saved out as Word documents on SharePoint, this service could be utilized to support that. Another scenario would be once a Word document has gone through approval process, when it is complete PDF of that Word document needs to be generated.

PerformancePoint Services (Reference)

When SharePoint 2007 first came out they provided some light weight but very effective tools for Business Intelligence (BI) with SharePoint. Microsoft acquired a company called ProClarity and rebranded their dishoarding BI solution as a product called PerformancePoint which was eventually made part of the SharePoint eCAL. This was done because everyone who wanted PerformancePoint wanted it integrated within SharePoint.

For SharePoint 2010, PerformancePoint has been completely integrated as an enterprise service. PerformancePoint services allow users to create interactive dashboards for displaying KPIs, scorecards, reports, filters, etc. As well there is a full API that developers can use to create highly customized solutions. The architecture of PerformancePoint (Reference) is pretty robust and like I mentioned completely integrated into SharePoint 2010.

PerformancePoint Services Thoughts

I openly admit this is one of the areas of SharePoint I have little knowledge of and feel bad about because I know PerformancePoint is a pretty good solution with lots of features for providing dashboarding solutions. I personally have not used much of PerformancePoint in SharePoint 2007 and do know that most of the challenges associated with getting it to work were around configuration. Our SharePoint team would get tons of questions in regards to Kerberos configuration and such. Now that PerformancePoint is integrated within SharePoint many of these challenges will go away.

Plus given this is the second generation of Microsoft's solution offering I highly anticipate that it will be a very strong offering. Microsoft has made a large investment into this and Dashboard solutions pretty much go hand-and-hand with SharePoint as this is where users want to access their data.

New SharePoint 2010 Features Part 4 – Enterprise Content Management

Enterprise Content Management Features (Reference)

In this part of my new features of SharePoint 2010 series, I am going to focus on enterprise content management.

There are a lot of new features that have been incorporated into SharePoint 2010 that fall under Enterprise Content Management (ECM). ECM (Reference) provides the ability to manage, store, retain, support workflow and make documents accessible across the enterprise. For SharePoint 2010 this providing support for managing digital assets, documents, records and eDiscovery, enterprise metadata, and web content.

Enterprise Content Management >> Managing Digital Assets (Reference)

SharePoint 2010 now provides the ability to manage audio, video and image as content types in SharePoint libraries. Audio and Video can be made available through Media Web Part or embedded Silverlight applications. It is stated that Digital Asset Management for SharePoint is designed to support three main scenarios.

  • First scenario is for portal, team and internet publishing sites where the ability to submit new content is controlled. Typically the digital asset is used to augment the delivery of content to consumers.
  • Second scenario is community-generated audio and video sites similar to YouTube. In this case more control is typically put in place to control the size of content and more metadata is needed to assist users in locating the digital content they are looking for.
  • Third scenario is supporting learning and training sites that can host instructional videos which are professionally made and augmented with metadata and linked to other ancillary content.

Enterprise Content Management >> Managing Digital Assets Thoughts

I am very excited to see this supported by SharePoint 2010 and it really needed to support business operations. Not that long ago, I was surfing ESPN and Washington Post and one thing I really noticed was the amount content that was being presented to consumers in the form of video. ESPN is an extreme where it seems almost half of their standard print content is augmented a video broadcast of the same content. I joked to myself that can people not read anymore and they need a person to tell? While reviewing this new SharePoint feature, that sentiment went through my mind on how this can be positioned and how does it add value to a business. It struck me; cost. The cost of producing content audio/video content versus writing a detailed whitepaper is a lot cheaper. A person can easily read through a slide presentation or visually capturing actions on a screen and discussing them without having to make a major time investment. Leveraging digital assets and removing the barriers for creating and managing them will allow organizations to quickly capture information and make it accessible across the organization.

Enterprise Content Management >> Managing Documents (Reference)

With SharePoint 2010 there are many new features and capabilities that have been introduced in the realm of document management. In SharePoint 2007 there were tons of new features which significantly improved document management such as recycle bins, check in/out, major/minor versions, item level permissions, content types, document policies, workflow, document center site templates, records management, etc.

Microsoft has identifies three standard roles for users who interact with SharePoint 2010 document management features:

  • Visitor (navigates and reads)
  • Contributor (modifies content)
  • Content steward (owner of content and responsible for managing features).

Microsoft has three goals when it comes to providing features and functionality to these users:

  • Ease of Use (intuitive functionality)
  • Enterprise Readiness (ability to scale and provide rich features to the enterprise on the large)
  • Broad Participation (organizational accessibility and customizable capabilities based on users' needs).

The following is a discussion on major new/revised features of document management that you should be aware of SharePoint 2010.

  • Document Center – One of the biggest improvements to the document center is its ability to handle significantly more content than SharePoint 2007. Microsoft is stating that is can scale upwards of a million documents however it can still be easily used for some collaboration spaces managing only a dozen documents.
  • Document Sets (Reference) – There is a new type called Document Set which is used in a scenario when many artifacts are used to create a single work product. Basically we now have the ability to manage multiple documents in the same way we are used to managing a single document. For instance a white paper many have many files such as Visio, Excel, Word, images, PDFs, etc. which are all used to create the white paper. We now have the ability to manage all these documents together as a single document where we can eventually designate the white paper to be created as the master document. There are several new pages, special versioning, workflow and folders that have been introduced to support this usage scenario.
  • Content Organizer (Reference) – The new Content Organizer for SharePoint 2010 builds upon and improves the records routing framework used with the Records Center that introduced in SharePoint 2007. At a high level, it supports more general document management scenarios and is not only focused on records management. What the Content Organizer does is routes documents by analyzing associated metadata rather than just document type (i.e. content type). Content Stewards have several screens that they can use to create and manage rules and conditions for routing documents.
  • Location-Based Meta Defaults (Reference) – This is a new feature which basically will set default values into a document's metadata based on the location of where the document was created. An example would be in a Document Center there are many content types defined and many folders defined to organize content by product. Let us assume that all content types have a column called product type. When a document is added in a specific product folder, the product type column will be defaulted with the product type associated to the folder. Now the user does not have to manually set this value ensuring that there is better metadata now associated to that document.
  • Metadata Navigation and Filtering (Reference) – This again is a new feature to SharePoint 2010 which supports the ability for a user to navigate to content based metadata. Instead of digging through document folders or search, it allows you to navigate to documents based on the values in the document taxonomy. What list owner can do is identify key navigational fields on a list and the users can use the values in those fields to filter. To support this new feature a new UI has been created to support this navigation. As well there is a process within SharePoint that will create an index automatically using the designated fields. There is also a process that will select the best index when a query is run to avoid list throttling.
  • Document IDs (Reference) – This is a new feature that has a unique identifier for a document or a set of documents regardless of the location of that document. A static URL is provided and if a valid unique Document ID is provided, the unique document will be returned. It possible to modify or even create custom Document ID generator which can be based on business rules of the organization. Note that the document ID service is managed is managed at the site collection level; so you cannot be guaranteed to have a unique ID across an entire SharePoint farm unless you wrote a custom Document ID generator. Still, you access documents by site collection to the user will have to go to the correct site collection to retrieve the document from the static url.

Enterprise Content Management >> Managing Documents Thoughts

There are a lot of new features that have been introduced in regards to ECM and I believe that this will really allow SharePoint to compete even better in this market space.

I really like the new Document Sets feature because in previous versions of SharePoint we have had to create document workspace, workflows to publish, create custom content types or even custom web parts that query for all documents that are associated to each other and provide the user a consolidated view of the work product. This required a lot of custom development to implement. However now Microsoft is providing support for this scenario out of the box and I believe content within SharePoint can be better organized by users by using this simple feature. For instance it will allow you specific metadata that is required for each content type that is in the document set, associate workflows form SPD 2010, synchronize metadata values across all documents in the document set, allow users to select which types of document types they want to use in a document set, define a default set of documents that should be created when the document set is created, specify a custom page that be used to create a document set, and a custom page to view the document set. I am really really excited to see these features as it will definitely reduce custom development costs.

The Content Organizer on the surface to be a great new feature to take advantage of because routing of documents is now done outside of the context of records management. This feature was badly needed for documents in general. With this business users will now be able to create rules without having to build custom solutions that manage where documents are ultimately stored.

Location based default values for metadata is interesting because it will ensure that better metadata is now stored along with content and the user has less work. To have implemented something like within SharePoint 2007 we would have to create custom event handler s to set data and these rules would be embedded down inside of custom code rather than in the taxonomy definition in SharePoint. In the end, I see this as a value feature that people will take advantage of.

I am very very excited to see the metadata navigation tool that is now provided in SharePoint 2010. I have seen the need for this with several clients and we typically had to buy a third party product or build something custom to support this. Scanning over search results is just sometimes not want a user wants to do. Instead the user wants to navigate over different types of corporate documents logically based on metadata.

The new unique Document ID feature is critically important because we no longer have to reference a URL to a document which may change over time. Specifically documents can be moved to other areas of the SharePoint site and they can still be found by users or external systems.

Enterprise Content Management >> Managing Enterprise Metadata (Reference)

SharePoint 2007 provided us a huge leap in regards to SharePoint 2003. In SharePoint 2007 we had content types and columns that we could define on our site collections which we could use to create taxonomies for lists and documents. With SharePoint 2010 this has been added upon again. One of the main limitations of SharePoint 2007 is that content types and column types were limited to the site collection scope. However in an enterprise deployment of SharePoint multiple site collections are typically used to keep content database sites manageable for backup and recovery procedures. Know that, it is commonplace that same taxonomy information would have to be defined more than once. With Managed Metadata, a single definition is created and centrally managed so that all site collections in the farm use the same metadata.

Managed Metadata feature of SharePoint 2010 has many benefits. First it facilitates a consistent use of terms and keywords across the enterprise. This in turn ensures that data will be better managed, will be less error prone and easier to use for business logic. Second, when utilized, managed metadata will provide more relevant search results. This is because content using enterprise metadata can receive a higher relevancy ranking because the metadata is well managed. Third, since the values (referred to as terms) are centrally managed, they will be kept in sync everywhere it is used across SharePoint 2010. So if term's value needs to change from Foo to Bar, then the value Bar will be updated everywhere.

Enterprise Content Management >> Managing Enterprise Metadata Thoughts

This feature is something I am truly excited to see because creating a corporate/enterprise taxonomy in SharePoint 2007 was challenging. I really believe this is going to be an important feature that will be highly utilized by organizations. To successfully create strong taxonomy, a good governance and management structure needs to be put in place as soon as possible to ensure that the taxonomy is correctly used. With the new Managed Metadata for SharePoint 2010, we will be better enabled to enforce governance policies.

Enterprise Content Management >> Managing Records and eDiscovery (Reference and Reference)

SharePoint 2010 provides new and revised features for records management. A record is any document that is important to an organization and must be managed by some sort or process. The following are core compliance scenarios that SharePoint 2010 can be used to support:

  • Identifying and Managing Records – a records manager (lawyer, compliance officer, etc.) identifies important documents/records and associates a business process to them.
  • eDiscovery and Holds – the records manager locates and locks content that is related to litigation.
  • Auditing – the records manager needs to track who performed what actions and when to content.
  • Retention and Expiration – are polices that exist to reduce the cost of eDiscovery by ensuring that content is kept for a specific length of time and then discarded when that date has passed.

For SharePoint 2010 biggest and noticeable improvement is the incorporation of eDiscovery. One of the main reasons why organizations seek out Records Management and eDiscovery solutions is to reduce business risk. We now have the ability to initiate an eDiscovery feature can be activated on any site. Once activated, any document in the site collection can have a hold placed against it.

Enterprise Content Management >> Managing Records and eDiscovery Thoughts

The topic of records management and eDiscovery seemed to always come up with SharePoint 2007. Clients recognized that a staggering amount of information was being placed into SharePoint and there were concerns that they would be exposed to litigation if the content was not properly management. SharePoint 2007 had a records management solution which could work well in basic use cases however it did not scale well to complex process. SharePoint 2010 has addressed this issue and has expanded upon to provide new features that can properly manage content no matter where it resides within the SharePoint farm.

Enterprise Content Management >> Web Content Management (WCM) (Reference)

For SharePoint 2010, WCM features provide the ability to control and logically organize content across site collections, sties, site templates, master pages, page layouts, custom fields, web parts, libraries, etc. WCM for SharePoint provides rich tools to customize the UI, extensive integration with Office products and the ability to provision highly customized web sites.

If you are familiar with SharePoint 2007, here are some noticeable changes for SharePoint 2010 web content management that you should be aware of:

  • Content by Query Web Part (CQWP) has been enhanced to now allow filtering query results based on the query string or current page content values.
  • Content Types can now be centrally defined and re-used across site collections; which was not possible in SharePoint 2007.
  • HTML Editor enhancements that allow better cross-browser support and tighter integration with the new SharePoint ribbon.
  • Simplified HTML and CSS that improves usability and reduces end-user perceived latency.

Enterprise Content Management >> Web Content Management (WCM) Thoughts

With all of these improvements, SharePoint 2010 will compete better as a WCM solution for the internet. Previous versions of SharePoint were primarily used for intranet and extranet scenarios. However with the WCM improvements coupled with improved search and a more scalable logical architecture, SharePoint 2010 will be considered a premier internet solution for public facing internet sites. I am really excited to see SharePoint 2010 bridge that gap and allow us to start using SharePoint both inside and outside the firewall.

Workflow Enhancements (Reference)

With SharePoint 2007, workflow was introduced to assist with the management of content or creation of custom solutions within SharePoint. This has been provided with SharePoint 2010 with the following:

  • New Workflow Activities
  • Pluggable Workflow Services – allows for interaction with external resources
  • Workflow Events – Allows for initiating workflows from more events that were available in SharePoint 2007 as well as the ability to create custom events that can trigger a workflow.
  • Site Workflows – Ability to initiate workflow instances outside of the context of a list item.
  • Declarative Workflows – Allows for workflows to be reusable across multiple lists.

Workflow Enhancements Thoughts

Some of these improvements were greatly needed as workflow had challenges in SharePoint 2007. With SharePoint Designer 2010, more robust workflows that can now be authored by business users and improvements with Visual Studio 2010 with SharePoint will allow developers to more easily deploy custom workflow solutions. Deployment of custom WF workflows was a barrier with SharePoint 2007. I am also very happy to see that workflow instances no longer have to be aligned to a SharePoint list item. It will be interesting to see what the adoption will be in this specific area and how third party vendors will compete.

New SharePoint 2010 Features Part 3 – Development Features

Development Features

In this part of this continuing series I am going to look at many of the new development features available to us in SharePoint 2010.

Client Object Model (Reference)

SharePoint 2010 provides a new client object model that allows us to access SharePoint data and features from remote machines or processes. We now have three new client APIs which we can use to access and utilize features and functionality of SharePoint 2010:

  • SharePoint 2010 can be accessed from .NET 3.5 or Higher
  • Can be accessed from Silverlight 2.0 or higher
  • ECMAScript (Javascript, Jscript) on the client site in a browser

Note this provides rich, but subset, of the SharePoint API.

Client Object Model Thoughts

I am personally very excited to see this as a developer because up to this point a lot of engineering work was required to utilize these web services to achieve sometimes what would be considered a simple operation if the code was using the SharePoint API.

What this enables us to do is access SharePoint data more quickly and easily from remote machines. We no longer have to only use SharePoint web services to access data. This allows us to rapidly create more seamless .NET solutions with SharePoint. I know it can be considered a more elegant solution to using SharePoint Web Service to retrieve SharePoint data from across application boundaries or domains. However there are still many ways you can architect a solution ensure there is strong decoupling maintained.

Seriously the ease getting data from lists and using that data in external processes using this new client object model is a game changer in my book. I have had so many instances where I have had to create solutions and wanted to use the SharePoint API, and had to host parts of that solution directly in SharePoint just when really did not need to. Now if I have custom ASP.net application, a web service connected to an InfoPath form, etc. I can simply use this API to integrate with SharePoint 2010.

Event Improvements (Reference)

What Microsoft means when referring to "New Event Improvements" are the events that are available to developers to create customizations to out of the box behavior. Typically in SharePoint 2007 this was adding an event handler to a SharePoint list for when a new item is added, deleted, checked out, etc.

So some of the new events that are available to us are:

  • New event handlers for when lists are added or deleted.
  • New event handlers for when before sites are created and after they have been provisioned.
  • Synchronous After Events. If you are a developer you will know that the default behavior that before events are synchronous and after events are asynchronous. Now you have the ability to make after events synchronous too so that you complete an operation after a list item has been committed to the database but before the user sees it in the list.
  • To support the new events for list and web events, events that typically could not be bound to the Site Collection level now can be.
  • Running under elevate privileges is commonplace to perform actions but when doing this you did not have access to the originating user. With SharePoint 2010 we now have access to this user.
  • Event Error page now allows developers to handle unexpected errors more gracefully than before.

New Event Improvements Thoughts

Many of these features really do not benefit the everyday business user however they really help developers create better solutions.

Alerts Enhancements (Reference)

The new important thing that is being supported is mobile messaging with Short Message Service (SMS) messages.

Alerts Enhancements Thoughts

This is really important because we all know how important mobile computing is for both consumers and business users. Better support of communication of content within SharePoint over mobile platforms is critical for the short-term success of SharePoint.

Mobile Device Development Enhancements (Reference)

For SharePoint 2010 there is greater support for mobile devices. We have already discussed SMS messaging is now supported. Along with we now have the ability to create mobile pages that function just like standard web part pages. This is supported through mobile adapters. A mobile adapter can be created for any web part that you write and most of the major web parts out of the box come with mobile adapters. Simply map mobile adapters to web parts on existing pages and when a mobile device accesses the web page, the web part page with the mobile web parts will be displayed.

As well, with SharePoint 2010 there several new mobile page templates and over 60 new public mobile controls. As well, there are new Mobile Document Viewers that enable users to open documents from document libraries on their device without having traditional desktop application installed.

Mobile Device Development Enhancements Thoughts

As I mentioned before business computing from mobile devices is only going to continue to grow over the next two years because they are not longer just viewed as communications tools for email or surfing the internet. It is imperative that SharePoint be able to support the sort of functionality that is being provided.

Query Enhancements (Reference)

SharePoint 2010 provides numerous new ways to access data that we did not have in previous versions of SharePoint. CAML queries are fine but the syntax could be challenging at times, especially if the queries had to be dynamic. This typically pushed developers down the path of using the SharePoint API to do "queries" however this could lead to other issues. How we have:

  • LINQ to SharePoint provider that will translate to CAML.
  • Ability to use client side code to perform queries. The new client object model can run either LINQ or CAML queries.
  • ADO.NET Data Services Framework provides to query content databases.

It was noted by Microsoft to avoid using the SharePoint Data Providing Web Services as better performance can be realized by using the client object model of ADO.net Data Services Framework. The web services will continue to be supported for interoperability and backwards compatibility.

Query Enhancement Thoughts

From a developer standpoint this is extremely exciting to see that SharePoint content and data is more quickly accessible than in previous versions of SharePoint. We now have the ability to use SharePoint data pretty much anywhere in the SharePoint stack by simply just referencing the SharePoint dll.

Ribbon

SharePoint now has a Server Ribbon which is the primary location where users can initiate commands from. The concept is identical to the MS Office 2007 Ribbon.

Ribbon Thoughts (Reference)

From what I have seen this is a great new way for users to initiate commands in SharePoint. In SharePoint 2007 there were several different places where menu items would be placed sometimes creating confusion. The ribbon concept as well allows new users to easily transition into using SharePoint based on their MS Office experience.

Service Application Framework (Reference)

The Service Application Framework provides developers with a platform in which they can build middle tier applications that can be hosted within SharePoint 2010. Services developed with this framework can be utilized natively within existing SharePoint features – like being centrally hosted, load balanced, claims based security, etc. As well they can take advantage of SharePoint 2010 administration as they can be managed in central administration just like any of the out of the box services, can upgrade packages created, made part of backup/restore and hook into account management. You can even build custom administration pages and host them in Central Admin.

Microsoft has used the Service Application Framework to develop their services like SharePoint Search. This framework is meant to replace the SSP of SharePoint 2007.

Service Application Framework Thoughts

This is again very exciting to see as it will open up a new market for Microsoft partners build solutions that can be hosted in SharePoint 2010. This can significantly reduce cost to create or purchase custom solutions as the entire SharePoint platform can be leveraged.

Silverlight Integration and Cross-Domain Data Access (Reference)

SharePoint 2010 now provides a web part that is made specifically for hosting Silverlight applications. This was possible on SharePoint 2007 however this has been made significantly easier with SharePoint 2010. All that needs to be done is deploy the Silverlight application and simply reference the URL to where it is hosted. If the Silverlight application accesses SharePoint data and is hosted in a different web domain a configuration file is needed.

In correlation with this there is Silverlight Cross-Domain Data Access (Silverlight CDA) which supports secure integration between SharePoint and Silverlight applications that reside on different domains. .

Silverlight Integration and Cross-Domain Data Access Thoughts

I am not sure if my description above does this justice but SharePoint 2010 and Silverlight integration is a game changer for delivery of custom solutions within SharePoint. Sometimes building custom applications with web parts does not always work well but Silverlight provides a platform to build Rich Internet Applications that can be easily accessible through SharePoint. I recently had a client who wanted to migrate off of Oracle Forms to save licensing costs and to reduce their desktop footprint. We recommended Silverlight because the new solution had to be web accessible, needed to support complex/dynamic data entry screens, and have little desktop footprint. ASP.net or WPF could not satisfy these requirements however Silverlight can. Now this new application can be embedded right into their Intranet providing users with a completely seamless user experience. I am really excited to see how this will be used.

UI Enhancements (Reference)

There are numerous, significant user interface enhancements that have been made to SharePoint 2010. For instance a new ribbon has been added to the screen which has an identical user experience to that of Office. Custom commands can be easily integrated into this framework. Second application pages now reference the site master pages which as not the case in SharePoint 2007. Third CSS has been significantly revamped and divided into multiple files to enable better customization and loading performance.

UI Enhancements Thoughts

Again the improvements to the athletics of SharePoint 2010 have been pretty good. It is more of a refinement of SharePoint 2007 which was a significant jump when compared to SharePoint 2003.

Custom Field Rendering Enhancements (Reference)

When building a custom list or refining an existing one, there was a file in WSS 3.0 called fldtypes*.xml which was used to control how fields were rendered on the Display, Edit, and New pages as well as Site Column, Change Site Column, Create Column, and Change Column pages. For SharePoint 2010 fields will be rendered on list view pages by using XSLT stylesheets.

Custom Field Rendering Enhancements Thoughts

This again is something more developers and just a change in the way custom fields will be defined. Only thing that you should consider is you are migrating custom solutions built for 2007, even though there is backwards compatibility, you should consider maybe refactoring the solution for 2010.

New SharePoint 2010 Features Part 2 – Enterprise Data Access and Management Features

Enterprise Data Access and Management Features

In this section I will discuss many of the new features associated to working with enterprise data with SharePoint 2010. SharePoint 2010 is much more compelling with than SharePoint 2007 with more robust out of the box functionality that allows you to integrate with enterprise data.

Business Connectivity Services (BCS)

Business Connectivity Services (BCS) is probably one of the top five most important new releases for SharePoint 2010. BCS is the enhancement to SharePoint 2007's Business Data Catalog (BDC) which was used to provide read-only access to Line of Business (LOB) data across the enterprise into SharePoint 2007. Note if you see BDC mentioned in the context of SharePoint 2010, it now means Business Data Connectivity.

BCS for SharePoint 2010 supports the follow:

  • Supports full Create, Read, Update, and Delete (CRUD). SharePoint 2007's BDC just supported only read operations.
  • Supports integration with databases and web services and additionally WCF, DLLS and custom domain services.
  • Provides an extensible model provider which provides a pluggable framework for which developers can write to other data source types that are not provided out of the box with BCS.
  • BCS supports batch processing for read operations unlike its predecessor which could only support processing a single item at a time.
  • Can now work with BLOB data type (i.e. streaming BLOBs of data from external systems).
  • It can support read/write of complex data types and not just primitive types.
  • Rich API that can be used by custom applications to use data services provided by BCS.
  • Tools like SharePoint Designer 2010 can be used to build solutions using a declarative model which does not require a developer to write code.
  • Users can effectively consume and work with data from multiple external data sources in a user interface that they are familiar with such as SharePoint lists, web parts, Outlook contacts/tasks/appointments, MS Word documents, etc.
  • BCS has a robust cache mechanism for supporting users to work with data provide by BCS offline. Solutions written in correlation with MS Outlook 2010 and SharePoint Workspace 2010 and work with data while offline and then be synchronized when back online.
  • BCS can be integrated with SharePoint Enterprise Search to allow users to search external SharePoint data.

Business Connectivity Service Thoughts

I am really excited to see BCS leveraged as a solution to build composite applications that expose enterprise data instead of building expensive, custom applications. Typically the cost of building these custom composite applications come in the form of heavy design, development and maintenance. In many instances the demise of these custom applications is that a significant investment is made in engineering of the solution but the flexibility and scalability does not meet the future business demand. BCS removes some of these challenges in that it is a framework provided by SharePoint to expose enterprise data so organizations, so they can focus on solving existing and reacting to new business requirements instead of trying to build an enterprise data access framework.

On a side note - I also believe that SharePoint 2007's BDC did exactly what it was supposed to do. SharePoint 2007's BDC was originally intended to be an enterprise search solution that could expose data from web services or databases in the result search of a search. However this was confused when BDC web parts were created to expose enterprise data. When these web parts were utilized business users typically asked to perform full CRUD operations (FYI, it was actually possible to support CRUD with SharePoint 2007 BDC but it was not great solution). Microsoft stepped up to the plate and solved both problems. First they acquired FAST and integrated it in the SharePoint solution architecture and we now have a true best in class enterprise search solution to work with which SharePont 2007's BDC cannot even compete with. Second they created the Business Connectivity Services which can support full CRUD operations which is fully integrated with the SharePoint Foundation.

Enterprise Search (Reference)

SharePoint 2010 includes significant improvements in regards to enterprise search. The biggest is Microsoft's acquisition of FAST (one of the top three enterprise solutions in the marketplace) which has subsequently been integrated into SharePoint 2010. FAST is an extremely rich and deep application that should be dived into separately. Basically you now have two options SharePoint 2010 Search and FAST for SharePoint 2010.

Let's first understand at a glance what in general the improvements to search for SharePoint 2010 are:

  • Better Keyword Query Syntax has been incorporated into SharePoint 2010 Search. Such new features as Boolean, proximity, synonym, wildcard operators, prefix matching for free-text, property restriction queries and property operators for non-text fields have been incorporated. What this basically means is creating complex queries to run against the search service is much easier in SharePoint 2010. Note that the new Keyword Query Syntax is supported for both SharePoint 2010 Search and FAST for SharePoint 2010.
  • The search web parts are unified so they support both SharePoint 2010 Search and FAST for SharePoint 2010. This will ensure there is some consistency in configuration, management and user experience regardless of which search engine you use. Note that the search web parts are built upon the federated search object model.
  • The search results page new includes a new refinement panel that gives the user a summary about the search results and provides them the ability to quickly filter results based on the taxonomy of the data.
  • New connector frameworks for both SharePoint 2010 Search and FAST for SharePoint 2010 have been incorporated to support indexing data external to SharePoint. SharePoint 2010 Search utilizes the new Business Connectivity Services (BCS) while FAST has its own highly scalable connector framework. Both of the connector frameworks are significantly better than the BDC used for SharePoint 2007.
  • Relevance has been enhanced for SharePoint 2010 Search while FAST provides an extremely rich and advanced relevance model. For SharePoint 2010 Search, we now have the ability to create customized ranking models to improve result relevancy by collection, content source and data verticals.
  • Federated Search is again supported by both search options for SharePoint 2010. If you are not familiar with it, what Federated Search supports is the ability to display search results that were crawled by other search services such as Bing, Google, etc.

Enterprise Search Thoughts

I personally believe that FAST for SharePoint 2010 is a game changer and one of the compelling reasons why organizations should upgrade as soon as possible. The features and functionality of it are unparalleled and it is a mature product that has been injected into SharePoint. Content and data stored in or out of SharePoint will be easily accessible utilizing highly advanced relevance models. To learn more about Enterprise Search and FAST in general to understand the value proposition of it, please read this blog series.

List Enhancements (Reference)

There are several new features that have been introduced into SharePoint 2010 to support their initiative to better handler larger quantities of data:

  • List throttling – To ensure that open ended queries for list data to not effect performance of the site for other users. Thresholds can be set to ensure web application level.
  • Referential Integrity – In previous versions of SharePoint it was possible to use lookup fields or custom events to enforce referential integrity betweens items between lists. With SharePoint 2010, referential integrity can be set up directly between two lists and SharePoint will manage it from there forth.
  • Enforcing Uniqueness in Column Values – There is now the ability to select which column in a list will define uniqueness. This does not have to be the internal ID column of the list.

List Enhancements Thoughts

The ability to efficiently and effectively handle list with large amounts of data is a very important new feature to SharePoint 2010. In SharePoint 2007 it was possible to create efficient solutions that had SharePoint lists with more than 2,000 items, however complete custom code solutions had to be written. I still have some hesitancy to make sure that data management be well thought out before dumping extremely large amounts of data into a SharePoint list (my old blog entry). If data is highly relational or must be reported on, it is probably best to use SQL Server and then expose the data to SharePoint using the new Business Connectivity Services.

Still the new ability to manage very large quantities of data is not just for SharePoint Lists, it is also for managing large values of documents in a document library. It is very exciting to see this and will be very interesting to see how SharePoint lists evolve as a new enterprise resource for data storage.

Microsoft Sync Framework and SharePoint Workspace 2010 (Reference)

Microsoft Sync Framework is a unified synchronization architecture that allows for bidirectional communications between SharePoint and Line of Business systems. This framework as a specific focus on synchronizing SharePoint data stored in either lists or document libraries. This architecture is used as the backbone for SharePoint Workspace 2010 which is the replacement for Microsoft Groove 2007. What this tool supports is the ability to work with data stored within SharePoint in a disconnected environment. This includes lists, document libraries and even data within BCS.

Microsoft Sync Framework Thoughts

This again is another very exciting release for SharePoint 2010 and provides a tool that no CMS competitors are providing. Users now can work while travel, we can ensure they have the latest information locally, etc. Groove was an initial release given this is Microsoft's second release of this technology I have high expectations that it will be a very effective tool.

User Profiles and Social Data (Reference)

There are several aspects to the new features that have been integrated into SharePoint 2010 to support social computing. There are new APIs discussed in this article about activity feeds, social data and user profiles. Activity Feeds API supports the sharing of data between users. Social Data is a new API that has been created to facilitate social tagging, rating and comments for content that is stored within SharePoint. The User Profiles API has been augmented to support both organization and user profiles.

The new social computing features of SharePoint 2010 support scenarios such as (this is not an entire list):

  • The ability to find commonalities between two user profiles.
  • Providing the ability for users modify profile data
  • Adding links to your profile.
  • Adding colleagues to your profile.
  • Social Data Statistics Web Part that displays social statistics such as each URL that has been tagged and their terms, the number of times that term has been used in a tag, each user who has added a social tag.
  • The ability to approve who is marking you as a colleague.
  • Ability to send content to colleagues.
  • Ability to pull in external social computing data like from LinkedIn.
  • Ability to create organizational charts based on enterprise data.
  • Ability to rank, tag and comment content within SharePoint and use that information to the most relevant information to users based on the data's actual usefulness.

User Profiles and Social Data Thoughts

At first glance this does not really seem like much however this new foundation provides a foundation for building social computing business solutions that was significantly lacking in SharePoint 2007. I cannot tell you how many clients wanted to incorporate social computing into their Internet, Extranets and Intranets. Common use cases were who is the SME for what I need and who do I contact them? What content is considered to have the best information? And so on. To support this in SharePoint 2010 typically highly customize solutions had to be created.

I know when I first started doing SharePoint 2007 projects I was little skeptical of social computing and how it applied to the business world. However client after client I saw that this was significantly important to companies and I even saw how it would be important to me at my company. Today I rely on the fact that I have been at a company for several years, I know everyone, I have seen people come and go, I have seen lots of projects and I know where to go find something or who I need to call to find it. But if I am new, how do I find what I need? We have talked about search, but that is only one piece of the puzzle. There is still an element of finding information which cannot be gleaned by a search engine. The data indexed is only as good as the metadata that supports it, and if there is no metadata, it is not relevant.

Another scenario is very geographically dispersed or remote environment can highly benefit from the adoption of business social computing. We are so used be able to crowd around the water-cooler, well we can now do that with SharePoint. With the new Social computing features we can find out who is doing what and when and if you should chime in with some information that stop that person from potentially making a costly business decision.

Now we are empowered with SharePoint 2010 to come up with these new business social computing solutions and I am truly excited to see how this is used over the few months.

New SharePoint 2010 Features Part 1 - Introduction

Introduction

It can be daunting to put your arms around all the new features and functionality of SharePoint 2010. SharePoint 2010 is much deeper and richer than the previous releases.

The goal of this blog series to provide insight to all the new features of SharePoint 2010 to people who are experienced on SharePoint 2007. I am not going to rehash existing functionality as I am going to be focusing on understanding the new features.

I unfortunately did not get to go to the SharePoint 2010 conference to get a SharePoint 2010 introduction. I really do not have the time to really listen to tons of recorded video to get an initial understanding of the breath of changes that have been made for SharePoint 2010. I really just needed something that summarized all the changes between SharePoint 2007 and 2010 in one sitting.

I actually found what I was looking for on SharePoint 2010 MSDN. There are two good articles called:

I was able to read through these articles to get an understanding of the breath of SharePoint 2010 and its new features. The following are my notes and thoughts while going through and reading each article.

I have organized my thoughts into the following feature sets:

I still plan to be doing a bunch more research and will have more releases like this over the coming months.

Thursday, May 13, 2010

Visual Studio 2010 Multiple Code Windows

Ok – I now love Visual Studio 2010. I can have many code windows open at once. For instance I am wiring up values to come out my resx and xaml files at the same time. Less flipping around means more I can get done quickly on things I find boring :-) Sometimes it is the small things that just make you happy.

Untitled

Sunday, May 9, 2010

Blog Name Change

If you have not noticed, I have changed the name of my blog from www.k2distillery.com to www.astaticstate.com. Why? This not any sort of indication of whether I like K2 blackpearl. I am still a super huge fan of K2 blackpearl and believe it adds tons of value to any organization looking to solve all their business process automation needs. However over the past few years my blog has focused on a lot of things, if not even more on MOSS and .NET in general. So I choose a new fun name for it and hope everyone continues to enjoy my contributions.

Regards,
Jason Apergis

Wednesday, May 5, 2010

Encountered Silverlight RIA Services Errors

I ran into a couple errors while working with Silverlight and RIA Services today and figure I provide the resolutions to them real quick if you run up against them.

Entity Referenced Across Multiple Domain Services

I got the following error when I created a DTO/Entity object and then used the same DTO/Entity in two different Domain Services. I was a little surprised to see that using the same DTO/Entity across Domain Services would cause an error when the proxy to the RIA service is being built in the Silverlight project.

The entity type 'XXX' is exposed by multiple DomainService types. Entity types cannot be shared across DomainServices.

The resolution is to move you code and put all of the methods that use the DTO/Entity into the same Domain Service.

Method Parameters Not Serializable

The error message is very obvious in that it is stating that primitive types like int, string, date, etc. can only be used. However there are some subtleties that you should understand.

Parameter 'XXX' of domain operation entry 'XXX' must be one of the predefined serializable types.

First you will get this error when you pass a complex type into a Domain Service method. However you will not get this error when you pass a complex type to an insert, update, delete entity method. I found that a little confusing.

Second I was actually coding this up in VB.net for the client. You will get this error if any of the parameters for a method are ByRef and not ByVal. You will get this whether you are passing in a primitive type or not.

Domain Service Methods Not Set Up Properly

Here is another error you may get if you do not set up your Domain Service methods incorrectly when the proxy is built in the Silverlight project.

Parameter 'XXX' of domain method 'XXX' must be an entity type exposed by the DomainService, either directly via a query operation, or indirectly via an included association.

This error is basically saying that I have an Insert, Update or Delete method but I have no methods that return an object of that type or the object type is not referenced through an association. Basically it is saying that an Insert, Update and Delete method cannot exist for an object type if it is never loaded – which makes sense.

You can also potentially get this error if you do not have a Key attribute defined on your DTO/Entity.

One scenario is that you may hypothetically only ever need an insert of a DTO/Entity so you will not want to have a get method. What you should do is just add an empty get method that returns a list of that object type. If you want, throw an exception when that method is called. What this will do is suppress the error and allow you to just perform inserts.