Nik Patel's SharePoint World

An adventure in SharePoint and Microsoft in general.

Archive for the ‘SP2010 General’ Category

Recapping SharePoint Conference 2011

Posted by nikspatel on October 7, 2011

I had a privilege to attend my third Microsoft SharePoint Conference in a row. I had a wonderful time at the SharePoint Conference 2011 for various reasons and here are the highlights of my trip and my take on the conference.

Key Note
All of us over the conference were expecting some kind of announcements during Keynote. Although announcements of BCS integration in Office 365, new highest level certification MCA for architects were welcomed, many of us were disappointed by the key note. Jeff Taper had provided some hint during key note that they are working very closely with Azure team and heavy focus on UX for next version of SharePoint. Additionally, it’s worth to note that there were more jQuery sessions than Silverlight at this conference and it’s a testament of what future of SharePoint UX would look like.

As far as demos, there were two main demos of the key note. One was the capability of SQL Denali and live demo of failover of 14 TB database within fraction of seconds. It was bravest demo many of us have seen on live stage. Another demo was showcasing capability of SQL Azure, Windows Azure, and Office 365 and glimpse of SharePoint future.

Sessions and Technology Trends
Whenever I decide to go to the conference, I try to focus on specific topics. To me, conference is all about seeing trend for future and motivating yourself to steer your career in future direction. During SPC09, it was all about SharePoint 2010, IT Pro tracks, and Enterprise Search/FAST tracks. This year, it was all about custom development, cross-farm communication, UX trends, and Office 365. Looking at how Microsoft selected different sessions, I was surprised to see many sessions on Windows Azure, SQL Azure, Office 365, jQuery, branding, and focus on the SharePoint Development tracks. It means, windows Azure, Jquery/HTML5, and Office 365 would be future trend for SharePoint platform.

My favorite sessions among I attended were Andrew Connell’s Windows Azure and cloud applications (SPC410), Upgrading SharePoint Solutions and Features (SPC3995), Steve Fox’s Developing cloud based applications for SharePoint Online and Windows Azure (SPC276), Ted Pattison’s Developing SharePoint Apps with HTML5 and jQuery (SPC338), Cory Roth’s Extending SharePoint 2010 to customers and partners (SPC348), Chris O’Brian’s Application Lifecycle and Automatic Build for SharePoint Applications (SPC319), Phil Wicklund’s Data Access with Search API (SPC334), and Scott Hillier’s Step by Step Building Search Drivers Applications (SPC393)

Networking
First of all, any kind of conference is not all about learning and attending every single session. Networking is one of the most important aspects of any conferences. I wanted to meet many of my twitter friends and slalom colleagues from other offices. I believe I had achieved my goal at some level. I was able to meet other slalomers from the Seattle and Dallas office and had privileged to meet some of my best SharePoint buddies like Reza Alirezay, Fabian Williams, Tom Resing, and Clayton Cobb. As usual nice to see Kris Wagner, Asif Rehmani, Chris Geier, and Andrew Clark at various point of the conference.

Late Night Parties
Last but not least, SharePoint Conferences over the years has become great place for party junkies. If you like to party, sharepointers knows how to do it. Being close to Disneyland and amazing selection of restaurants, Anaheim convention center was great place for night owls. I was lucky enough to have Slalom colleagues to hang around with. It was wonderful week to learn by day and party by night.

Best of all, Microsoft is known for their Tuesday night party at SharePoint conferences and this year was unique – they had reserved Disneyland between 8-12 PM for sharerpointers and it was once in a lifetime experience. Walking around Disneyland with buffets, snacks, drinks, princesses, and mickey on the Disney streets with other sharerpointers was unique experience and unreal for Disney buffs. Personally, I had a great time riding Hunted Mansion and Space Mountain.

Next Steps and Future
During the keynote, Microsoft has announced next year conference will be in Las Vegas in November 2012. There are fair amount of expectations from current conference attendees that Microsoft will unveil some kind of vNext for SharePoint in next year conference.

Posted in SP2010 General | Leave a Comment »

Coming Soon – SharePoint 2010 and Office 2010 Service Pack 1

Posted by nikspatel on May 16, 2011

Microsoft has just announced at TechEd Atlanta that they will release the SharePoint 2010 and Office 2010 SP1 at the end of the june 2011.

http://blogs.technet.com/b/office_sustained_engineering/archive/2011/05/11/announcing-service-pack-1-for-office-2010-and-sharepoint-2010.aspx

http://sharepoint.microsoft.com/blog/Pages/BlogPost.aspx?pID=973

Some of the major features for me would be -

  • Site Recycle Bin kind of enhancements for the administrators to recover the site collections and sites without restoring the content databases (Same as Recycle Bin for Lists, Libraries, and Documents)
  • Internet Explorer 9 “Native” support for Office Web Applications and SharePoint
  • Office Web Applications Support for Google Chrome

For organizations adopting IE 9, this is no brainer update. For IT administrators, this is no brainer update which would enable the self-service site restorability reducing number of support calls and self-service site collection restorability without going through backups.

Keep up the great work, Microsoft.

Posted in SP2010 General | Leave a Comment »

SharePoint 2010 Training Resources for Developers, IT Pros, and End Users

Posted by nikspatel on October 26, 2010

SharePoint Updates

SharePoint 2010 End-User Resources

SharePoint 2010 Developer Resources

SharePoint 2010 IT Pro Resources

SharePoint 2010 Virtual Machine

Additional Microsoft SharePoint 2010 Resources

Microsoft Blogs

Major SharePoint Conferences

Magazines

My Favorite Community Links

Posted in SP2010 General | Leave a Comment »

Access Services 2010 SPSChicago Presentation is Available

Posted by nikspatel on October 17, 2010

First of all, thanks to everyone who has made to my Access Services 2010 session at the SharePoint Saturday Chicago yesterday. Overall, It was a great event and I was really excited to see many folks I knew from twitter and overall turnout. 

If you have access databases in your organization, please don’t ingore this wonderful product. As promised, here is the presentation available on the slideshare. Feel free to use it as a reference.

http://www.slideshare.net/patenik2/access-services-in-sharepoint-2010-all-you-need-to-know

Enjoy and hopefully this will be helpful to adopt the Access Services. Feel free to reach out to me if you have any questions.

Posted in SP2010 General, Speaking | Leave a Comment »

All you need to know about the Access Services 2010

Posted by nikspatel on August 13, 2010

Access Services 2010 is the new feature to host the entire Access databases within SharePoint 2010. It is only available in the SharePoint 2010 Enterprise Edition. This article not only covers the New Features in the Access 2010 and overview of the Access Services but also covers the benefits (both for business and IT), limitations, architectural details, typical Access Services Application Lifecycle (development, deployment, management process), and migration considerations for the Access 2007 (or earlier) databases to the Access Services 2010.

Access Services 2010 is the game changer in the Access 2010 space and may open new avenue for the departmental no-code database applications.  Hold tight and enjoy the reading.

Improvements in Access 2010

  • Integration of the Microsoft Office Backstage as part of the Microsoft Office Fluent User Interface
  • Web Database Format, Support for the Web Compatibility Checker, and Publish to Access Services
  • New Controls – Web Browser Control, Navigation Control ( Replaces the Switchboard View from previous version to navigate the Access objects)
  • New Data Type – Calculated Column Based on Expressions, much better improvements over the calculated values based on the queries
  • Support for the Office Themes for the Professional look and feel
  • Application Parts – Reusable forms, reports, or any other Access objects.
  • Data Type Parts – Custom Grouped Field Types, create your own group data type with the collection of fields to reuse in other tables.
  • Form and Report Designer – Live Data Preview , Improved Conditional Formatting on Reports & Forms (Conditional Formatting was added in the Access 2007)
  • Expression and Query Builder Intellisense
  • BDC Integration
  • Macros
    • Revamped Macro Designer
    • Form Macros/ UI Macros – Introduced in the Access 2007, Declarative Actions along with VBA Code for the UI logic, Additional Declarative Actions for the interactive forms programming in 2010
    • Data Macros – Works similar as SQL Server Triggers, Reusable Macro logic to create events at the table level (form level UI Macros are not reusable), Supports Before (Before Change, Before Delete) and After (After Insert, After Update, After Delete) events
    • Named Macros – Data level macros not attached to any events and can be called from the UI
    • Macros are XML based and easily portable from one environment to another
  • Ability to export to PDF and XPS files as a built-in feature (It was released in Access 2007 SP2) – Allows users to export forms, reports and datasheets to PDF and XML formats for easy distribution
  • Ability to connect to a web service as an external data source – Linked table to the Web Service Interface
  • Save as Template for creating access database templates, Download the Sample Templates from the Microsoft – http://office.microsoft.com/en-us/templates/CT010214400.aspx
  • Last but not least, Access 2010 (even 64-bit edition) has a limit of 2GB size.

  SharePoint Access Services 2010 – Benefits, Limitations, and Architectural Details

  • Access Services are nothing but Data driven web applications called web databases hosted in the SharePoint 2010 environment
  • Access Services Benefits and Usage
    • Balance between business agility and IT manageability
    • No Install Solution -  Web based Access
    • Improved Collaboration – Share and collaborate on the declarative RAD no-code web based team databases.
    • Centralized Data Storage – Single truth of the Application Logic and Data
    • Improved Reliability, Scalability, Security, and Manageability – Central IT management
    • Improved Backup/Restore – Access databases are part of the SharePoint Backup and Restore Process
    • Increased Concurrency – Locks the database at the object level, instead of database file level resulting in fewer conflicts
    • Access Applications Standardization using Templates – IT can configure/support services, start building out the web database standards, and let end-users manage it
    • RAD No-Code SharePoint Applications – Useful to build web based powerful RAD applications which supports query engine that can perform complex joins, filtering, aggregations, and parent-child relationships between lists.
    • RAD Reporting Tool – Useful as reporting tool to generate the customized reports (RDL files) based on SharePoint Lists hosted in the SharePoint.
  • Architecture Details
    • Access Service is a middle-tier service, which handles the  query processor and data access layer. It also manages communication between Access Web Application and SharePoint Content Databases.
    • Support for the Relational Database Data Integrity using SharePoint Lists Enhancements Infrastructure - Lists Relationships, Cascade Deletes, Unique Constraints, and Data level validations at the List and Item Level
    • Improved Performance/Scalability – Offers caching layer that addresses the limitations of the maximum number of list items that a query can return at one time by ignoring the List View Threshold. Improved Performance by allowing large record sets in the SharePoint List. Access DB supports more than 100K records. SharePoint Lists has filtering or sorting restrictions if you have more than 5K records in the list because content database blocks large calls. Access Services Data Sheets retrieves all the 100K SharePoint list items in the 2K records in chunk and later stitches them together in the ADO.NET record set in memory Layer as cached data for the performance. This allows sorting and filtering against cache instead of content database on the more than 50K records in the Access datasheet. Access datasheet View is rendered by the Project Datagrid object and it is smart enough to bring only 200 records at a time in the browser. With the smart navigation using AJAX experience, as you scroll down, it will bring additional records from the cache without affecting user experience. Access List Views are continuous forms supports paging, sorting, and filtering, and behaves same way as Datasheet View by retrieving data from the ADO.NET cache in the middle tier.
    • Concurrency Conflicts – Different users can make changes to different objects or different data items in a list without causing conflicts. When data conflicts do occur, a conflict resolution wizard enables the user to choose which version of data items to preserve. For object conflicts, Access provides the name of the user who made the saved changes and creates a renamed backup copy of the local object before downloading the other user’s changes.
    • Source Control – While downloading the database locally on file system,  Access client downloads the entire database only when a user doesn’t have local copy. Access fetches only objects or data items that have changed.
    • Only Web databases are supported in the Access Services. Web database supports two types of Access Objects – Web Objects that can run either in browser or Access Client and client objects (non-web objects) that can only run in the Access client. All design changes for both web and client objects must be made in Access Client. It is important to remember that client object definitions are published and stored in the SharePoint but they can accessed and executed during runtime only in the Access client.
      • All linked tables are client tables. Only client objects like reports, forms, macros can work with linked tables. Linked tables aren’t available to the web objects.
      • All the reports ,forms, and macros with VBA code makes these objects client objects.
      • All the web objects like reports, forms, and macros would work only with the web tables (Note web tables are Access DB tables fully compatible with SharePoint lists)
      • When working in the Access client and connected to the network where Access Service App is running, data and design changes to web tables automatically synchronize with the server.  When disconnected, Access client works with local copy and doesn’t allow changes to the tables. When reconnected, Access notifies users to synchronize and resolve any conflicts. Design changes to objects other than web tables synchronize only when users explicitly request sync by clicking Sync All button.
    • Forms and Reports gets rendered in the Data Form Web Part
    • Data Sheets rendered in the Project Datagrid JS Object to support large data sets
    • Reports are rendered in the Report Viewer Web Part installed with the SSRS Add-in
    • Access Service AJAX WS provides AJAX experience on the Access Web Applications
    • Better Administrative Control – Uses the OOB SharePoint Security for the Security Layer 
    • Managing and Fine Tuning the Access Services – From the Central Admin -> Manage Access Services Settings e.g. Max columns/rows per query, Max sources per query, Max calculated columns per query, Max order clauses per query, Max records per table in the join, Max sessions per users etc.
  • Limitations
    • Advanced SharePoint functionalities like Site Content Type, Metadata/Taxonomy, BCS are not supported in the Access Services 2010
    • Advanced Access functionalities like Linked Objects (Linked Tables, Linked SharePoint Lists, or BCS Links), VBA/Modules, Action Queries, Traditional Full UI Macros are not supported in the Access Services 2010
    • SharePoint Designer can’t open the Access Services Site. Any modifications in the Access Services Site requires Access 2010 client.
    • Access Services Application adopts look and feel from the Access Client. It  can’t be configured to inherit the master page branding or color scheme from the parent site collection/web application.
    • There is no site actions menu from the Access Services Web Application.

  Prepare the Environment to host the Access Services 2010

  • Access Services is installed part of the SharePoint 2010 Enterprise CAL
  • Make sure Service Infrastructure is enabled
    • Manage Services on Server – Access Database Service is started
    • Manage Services Applications – Review the Settings, No need to change any performance tuning settings
    • Manage Web Applications – Make sure application is associated with the Access Servic
  • Make sure all the features are activated
    • Central Admin -> System Settings -> Manage Farm Features -> Access Services Farm Feature
    • Central Admin -> Manage Web Applications -> Select Web Application hosting the Access Services Site -> Manage Web Application Features -> SharePoint Server Enterprise Web application features
    • Site Collection -> Site Settings -> SharePoint Server Enterprise Site Collection features
    • Site Collection -> Site Settings -> SharePoint Server Enterprise Site features
  • To the Access Reports on the web, Access Services requires

  Typical Access Services Application Lifecycle (Development, Deployment, and Management Process)

  • Development
    • Create Access Database using Access 2010 and Start with “Blank Web Database” or OOB/Custom Web Database Templates
    • Design Tables, Queries, Forms, Queries, Reports, Macros/Business Logic, Navigation, and Style/Theme
  • Deployment from the Microsoft Access Client using the Access Services “Publishing” Model
    • From the Backstage -> Publish to Access Services.  If there are errors during the Publishing Process, “Web Compatibility Issues” table will be created in the Access database for further review.
    • Publishing process creates a brand new SharePoint Site at the specified Path. Access Services Web Site is an isolated environment to host the Access database information.
    • Transformation Process to SharePoint (Client Objects  -> Web Objects, full fidelity between client and web objects)
      • ACCDB -> SharePoint Site
      • Access Tables and Data -> SharePoint Lists
      • Queries -> CAML Entries in the System Tables Rendered through Query Processor
      • Access Forms -> ASPX Pages using the Data Form Web Parts stored in SharePoint Document Libraries
      • UI Macros -> JavaScript Attached to SharePoint ASPX Pages
      • Popup Forms -> Floating Divs
      • Design Themes -> CSS Style Sheets
      • Access Reports -> RDL files (Requires SSRS 2008 R2 Add-in for the SharePoint 2010)
      • Data Macros -> SharePoint Workflow Actions
      • Modules, VBA Code Library -> It stored in the Access Services but not accessible/supported through browser interface. You can access them through the Access 2010 client.
      • Linked Tables, Linked SharePoint Lists, or BCS Links -> Linked Table Definitions or BCS Links Definitions are stored in the Access Services but not accessible/supported through browser interface. You can access them through client. Client objects in the Access Services will access to the linked table definitions but web objects in the Access Services can’t access the linked table definitions. Until Data in the SharePoint Lists (Natively as tables in the Microsoft Access), Web Objects in the Access Services can’t talk to data.
    • After the publish, what happens to the Accdb hosted on the server? Answer is during publishing process, Access 2010 Database Client stay as it is on the desktop or server in Accdb format. Access Services creates the backup copy of the Accdb on the server/desktop and makes the published Accdb as connected Access database to the Access Services Web Application. If you access the connected database after weeks or months from the desktop or server, Access DB client will sync/update the database with Access Services Site.
  • Deployment from the SharePoint without Access Client
    • Save the Access Database as a Template from the Backstage in Accdt format. 
    • Browse the SharePoint Site Collection’s Solutions Gallery and upload/Activate Accdt file in the SharePoint solution gallery, SharePoint is smart enough to treat it as a solution package file.
    • Visit the New Site Creation Section and Create a new Access Services site based on the custom Accdt web template database.
    • Use this approach if the person creating the new site based off the Access template need not have Microsoft Access installed on their machine or if you need to standardize the Access Services Web Database templates in your organization to create more than one sites based on same template.
  • Management  of Access Applications – To Modify Access DB After its been published using the Access Services “Sync” Model
    • Best Option: From the Options Menu, Click on the “Open In Access” to download the “Connected Microsoft Access” database for further modification
    • Any data changes on the client syncs to the web in real time. Any client changes of  the Table Schemas, Forms, Macros, Queries, reports doesn’t sync to web automatically. You have to use “Sync All” from the backstage to sync interface changes.
    • Individual objects in the Access Database on client can be modified independently and resynced to the SharePoint without affecting other objects. This allows better shared design and concurrency while updating the Access object design.
    • Please note that Access Services runtime environment is both browser and client but design environment is only Microsoft Access client. If you need to make changes in the reports or forms or schema, download the access db on the client, make the changes, and sync back to the SharePoint.

  Typical ways to integrate the Access database with the SharePoint 2010

  • MOSS 2007 supported sharing the Access DB on the SharePoint by uploading Access DB on the SharePoint Document Library just as any other documents and required Access 2007 on the user’s machine.
  • Three major options available
    • Good Solution – Basic Integration in the SharePoint Foundation 2010 (without Access Services 2010) 
      • Requires Access 2010 Client software must exists on the end-users machine.
      • Requires Access Database data must be compatible with the SharePoint.
      • Data and UI is centrally stored in the SharePoint and there is only one version of truth. Data is stored in the SharePoint Lists and UI is stored in the Document Library.
      • From the Access Client DB, visit the Database Tools Tab and Export the Access Tables to the SharePoint Site as a Lists using “SharePoint” ribbon button and Upload the Access DB to the SharePoint Document Library. 
      • Lock is per database. When multiple users are making design changes simultaneously, last person who upload the changes back to the SharePoint overwrite the other user changes. Make sure versioning and check out is required to avoid concurrent changes while making design changes.
      • Using this option, if you open the database read-only from the SharePoint, you can only change data in the linked tables from the Access Client. To make design changes, download the copy of the database to the hard drive, make changes, and upload it back to the document library replacing the previous version of the database. This option doesn’t provide the web UI on the SharePoint to view the data.
    • Better Solution – Supported as Access 2010 Services, Requires SharePoint Server 2010 Enterprise CAL
      • Doesn’t Require Access 2010 Client software exists on the end-users machine.
      • Requires Access Data and UI must be compatible with the SharePoint
      • Data and UI is centrally stored and there is only one version of truth. Access Database is published to SharePoint and hosted in the SharePoint as Access Services Web Application.
      • Lock is per object, as opposed to per whole database file. Using this option, while one user can make report changes, another user can create or modify the new form, and both changes can be synced back to the Access Services.
      • This will migrate the data as SharePoint lists and UI components as a client and web objects in the Access Services. Most of the Access Objects like web forms, reports will be transalated as web objects and can be accessed through the web UI. Many of the other objects like VBA code will be hosted in the Access Services as a client objects and will require Access Client software to view them.
      • Using this option, to make design or schema changes, save copy of the database to the hard drive.
    • Hybrid Solution
      • This scenario will cover most of all the Incompatible Access DBs in your organizations especially database applications created/maintained using the Access 2007 and prior versions.
      • What if you don’t have data compatible with the SharePoint? Can you share the Access database with SharePoint with above two solutions (good and better solutions)? Answer is No, Access DB must contain the SharePoint Compatible Data. Data must be compatible with SharePoint Lists. If any of the data can’t be moved to list, publishing can’t happen unless data is exported to separate database or changed to be compatible.
      • Instead use hybrid step by using the Linked Tables in the Access Services
        • Move any of the Incompatible Access Data to the SQL Server or another access db (from the database tools tab -> SQL Server or Access). This will move all the incompatible data to the access or SQL DB and keep the incompatible UI in the existing Access DB.
        • Next step is publishing the Access database with compatible data components and UI components to the Access Web Services. Client objects in the Access Web Services will reference to the external SQL Server for data and client objects can remain in the database without interfering with publishing process.
        • Later on, gradually, fix the incompatible data. Migrate the external data to the SharePoint lists and generate the web objects in the Access Web Services for full migration. To migrate the external data in the SharePoint lists, import the previously incompatible external SQL server or access db tables into the Access DB tables with valid UI and fix all the browser compatibility issues and republish it to the Access Web Services
  • Access Services feature comparisons supported in the SharePoint Foundation and SharePoint Enterprise CAL
    • Data in SharePoint Lists – SharePoint (included in the SharePoint Foundation)
    • Centrally Deployed Interface – SharePoint (included in the SharePoint Foundation)
    • Collaborative Design – Access Services only (Requires Enterprise CAL)
    • Web Forms in the Browser – Access Services only (Requires Enterprise CAL)
    • Web Reports in the Browser – Access Services only (Requires Enterprise CAL)
    • Server Macros – Access Services only (Requires Enterprise CAL)
  • Going forward, future direction should be Access 2010 and Access Services 2010
    • Start all the client Microsoft Access databases with the web database template to make sure its always compatible with SharePoint and Access Services.
  • How can you lock down the Access Services Publish Locations?
    • Client Level – Lockdown the registry key – HKCU\Software\Policies\Microsoft\Office\14.0\Access\Security\Allowed Publish Locations
    • Server Level – SharePoint security, define permission levels, Design, Contribute and Read only, Designers and above has permission to create the access web applications, contributors can read and write data, Users with read-only permission can only read data.

  Access 2007 to Access 2010 Migration Considerations for the Access Services 2010

  • Access 2010 will share the same native file format as Access 2007 – ACCDB format.
  • For Pre-Access 2007 version, follow the guide – “Transitioning Your Existing Access Applications to Access 2007″ to upgrade from MDB to the ACCDB version – http://msdn.microsoft.com/en-us/library/bb203849(office.12).aspx
  • Access 2007 Deprecated Features
    • Microsoft Calendar control (mscal.ocx) – Use Date Picker control as an alternative
    • Microsoft Replication Conflict Viewer
    • Option to export a report as a Snapshot file
    • Data Access Pages (DAPs
  • Rationalization Process – Analyze Access Databases in the Organization
  • Migration Process – Convert Access 2007 Databases in the Web Database Format
    • Look at Third-Party Web Conversion Service Offering:  http://www.access2010converter.com/index.html
    • Open the Access 2007 or Previous Versions of DB in the Access 2010 client
    • Fix the Access 2007 database objects web compatibility issues – Run the Web Compatibility Checker on the Access database to conforms the web compatible schema to meet the SharePoint requirements. This will create the “Web Compatibility Issues” table in the Access Database. The errors in table are explanatory with which table, which control you have and there is also a link for each error where you can also get info about what to do.
      • Analyze the Web Compatibility Issues Table , Fix the compatibility issues, and rerun the Web Compatibility Checker until Access database is web  compatible with Access Services and ready to be run on SharePoint.
        • Common Issues – Formatting, Data type, Validation Rules, and Structural Issues
        • Invalid Names -Tables and Columns Name should not conflict with reserved words or illegal characters. Changing the column names would not change all the Access objects. The Access Name AutoCorrect feature will propagate the changes to the queries and bound controls as long as objects are open at least once and saved. Please note that VBA Code and expressions are not automatically updated.
        • Compound Indexes – Indexes based on multiple columns are not supported over the web. One workaround for enforcing uniqueness on multiple columns are use the BeforeChange data macro.
        • Declarative Referential Integrity – Referential Integrity configured using the Relationships window that are not associated with a Web-compatible lookup are incompatible with the Web. You have to delete all relationships not based on lookups and create them using lookup wizard. Tables with relationships that aren’t implemented in lookup can’t be published. These lookups must be based on numeric data types.
        • Composite Keys – Composite keys are not supported in the Access Web Databases. If you have a database with composite indexes, you have to create a new primary index with AutoNumber type and create a data macro to preserve the uniqueness of your fields making up the composite key. Here is the article to write a data macros to resolve these issues – http://blogs.msdn.com/b/access/archive/2010/02/18/composite-keys-in-web-databases-through-data-macros.aspx
        • Primary and Foreign Text Keys -  Access supports primary and foreign keys on the text or dates.  SharePoint Supports relationship on numeric keys, not on the text based keys. Web database Primary key must be long integer. Easiest way to fix this add an auto number column to the parent table and add a corresponding long integer column in the child table as foreign key. You can then use the update query to sync the foreign key values in the child table. You would also need to delete the old relationship and create a new one using the lookup wizard. Make sure all other objects like queries, reports, forms are updated to use the new autonumber column before deleting the old text keys and relationships. You can also use data macros discussed in the Composite Keys section.
        • OLE data types needs converted into attachment data types. Update all the forms and reports where OLE data types were used for the pictures. Also, SharePoint supports only one attachment column per list so, make sure you have only attachment field per table in Access.
        • Tables with the recursive relationships to manage parents and child data in same table are not supported in SharePoint.
      • Please note that web compatibility checker doesn’t check all the database issues. Many of these issues may cause publishing fail. Any errors during the publishing process, Access logs the issues in the “Move to SharePoint Site Issues” table.
        • Incompatible data (e.g. invalid date, hyperlinks etc.) may cause publishing process fail.   Web compatibility checker checks data schema but  doesn’t check data values. Some of the Number/Currency/Date Time formats are not supported in Access Services and here is the guidelines around the supported format.
          • If you have a Number field, make sure it is formatted as General Number/Standard/Percent.
          • If you have a Currency field, make sure it is formatted as Currency/Euro.
          • If you have a Date/Time field, make sure it is formatted as General Date/Short Date. 
          • If you have hyperlink field, make sure it as fully qualified URL (relative URL doesn’t work) and URL length is less than 255 characters.
        • VBA code – It would require migration strategy to rewrite VBA code in the Data and UI macros. Please note that VBA code doesn’t cause publishing fail and require Access client to access them from the browser.
        • Invalid Expressions – Invalid Expressions entered manually without Expression Builder may cause publishing process fail. Invalid expressions in data schema definitions (e.g. validation rules or calculated column) will cause the publishing errors but Invalid Expressions in the web forms, reports, and queries can be found out only during runtime after publishing has been succeeded.  Access Services logs the compilation issues in the USysApplicationLog table.
    • Once Access 2007 objects are converted to the Access 2010 web legal format, Access 2007 (now converted to the Access 2010 web legal format) database is ready to publish to the Access Services. However, you can’t open your objects (Forms/Reports/Reports/Modules) other than tables in the browser if they are using the VBA code since they are still client objects. These client objects will reside in Access Services and Access s clients can open the forms and reports but they will not render in the browser.
    • For full web compatibility, plan for new web objects like navigation (tabbed interface), form and reports for the web interface with the new themes and look and feel, etc. You have to create new web objects if you want to open forms and reports in the SharePoint. You have to set the Web Display Form which will be displayed as splash page when you open your access application in the browser. To set your Web Display form go to the Backstage | Options | Current Database page and select a form from the Web Display Form dropdown menu.  Typically, it should be the main navigation form.

 Access Services 2010 Resources

Posted in Architecture, SP2010 General | Leave a Comment »

SharePoint Site Logo URL Limitations – Site Settings Page vs Web Part Pages

Posted by nikspatel on August 7, 2010

Have you ever tried to change the site logo for the SharePoint 2010 Team Site with lots of web part pages or have you ever tried to specify a Site URL tokens on the site logo URLs to easily migrate the site pages from one environment to another environment without getting broken? This is another item where it’s really hard to understand why Microsoft implemented one of the most obvious tasks such a confusing way.

Issue No.1 – Specify the Site Logo URL on both the Site Settings and each Web Part Pages.

Without any SharePoint Designer customizations or Custom Code, if you want to change the site logo through browser interface, you have to take different steps to change the site logo for the site pages and web part pages.

To change the site logo for the site pages or application pages hosted in the _layouts directory, visit the site settings -> Look and Feel Section -> Title, description, and icon link to change the site logo. This would apply to site logo to most of all the pages including lists, document libraries, wiki pages etc.

If you created a web part page through SPD or Browser Interface, one of the first things you would notice is site logo changed through the site settings page is not reflected on the web part pages. The reason for this is – every web part page includes the TitleBarWebPart control which overrides the standard ribbon interface with the web part ribbon bar. One way to change the site logo on the web part pages is editing the page and clicking “Title Bar Properties” on the Page tab. Once the properties bar loads on the right, change the URL to your site logo under Image Link.

Another way to apply the Site Logo page set by Site Settings Page to the web part pages is comment out the TitleBarWebPart control markup from the web part pages using the SharePoint Designer 2010. It would hide the TitleBarrWebPart control from the web part pages and show the site logo set by the site settings page. Downside of this approach is you will lose the page title on the web part pages. After exploring both options, I would rather change the site logo URL for each web part pages than changing each web part pages by hiding the TitleBarrWebPart control using the SPD 2010.

Bottom line is doesn’t matter what approach you take, please remember that using the browser and SharePoint designer no-code customization, you will have to apply the site logo on both site settings page and web part pages. This means, if you have 20 web part pages in your system, you have to change the site logo through Title Bar Properties 20 times.

Issue No. 2 – You can’t specify the Site URL token to the Site Logo URL

Another major issue with the site logo URL configured on the site settings page and web part pages is you can’t apply the site URL or site collection URL tokens in the logo path. Typically if you create custom LIM or Ribbon button, you can specify the Site URL token – {SiteUrl} so, whenever we migrate site to another environment, URLs won’t get broken.  e.g. {SiteUrl}/SitePages/Project%20Summary.aspx. One of the major limitation with the SharePoint 2010 is you can’t set the URL tokens – {SiteURL} or ~Site or ~SiteCollection on the site logo URL. At least, that’s my initial test says.

One way to resolve this issue is by deploying the Site Logo to the _layouts folder on all the WFE servers either manually or using feature and solutions framework. Typical path for the _layouts folder is <SharePoint Installation Folder>\TEMPLATE\IMAGES\CustomApplication where CustomApplication is custom folder name and typical SharePoint Installation Folder is C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14.

Once the Site Logo is deployed on the server, use the /_layouts/images/CustomApplication/Logo_small.jpg as Site Logo URL on the Site Settings and Web Part Pages. This would ensure that whenever you are moving your application from one environment to another, your site logo URL will always work as long as Site Logo image is deployed on the appropriate path on the server.

Posted in SP2010 General | Leave a Comment »

Hide “Add New Item” Link on the SharePoint 2010 List View Web Part

Posted by nikspatel on June 16, 2010

When you add SharePoint 2010 Lists in the web part pages or wiki pages, it shows the “Add New Item” at the bottom of the list by default. In most cases, wiki pages are considered as a mashup views along with other contents and you don’t want “Add New Item” as one of the options.

The reason for this link is web part toolbar type property sets to the “Summary Toolbar” by default. Change this setting to the “Full Toolbar” or “No Toolbar” and you will be able to hide the “Add New Item” link.

Hope this helps

Posted in SP2010 General | 2 Comments »

Enable the SharePoint 2010 Workflow Visualizations

Posted by nikspatel on June 14, 2010

Workflows represents business process and visualizing business process using flow charts are one of the first things everyone does when explaining the business processes to others. SharePoint workflows represents the business process and Workflow Visualizations are one of the most welcome features added in the SharePoint 2010 Workflows.

It is important to remember that workflow visualizations are powered by the SharePoint 2010 Visio Services available as an Enterprise CAL license. Contrary to many sources (including Sahil Malik’s SharePoint 2010 Book, Page 294), workflow visualizations don’t require Office Web Apps installed on the SharePoint farm.

To enable the workflow visualizations (or to troubleshoot why workflow visualizations doesn’t work), make sure following steps are already configured.

  • On the Manage Services on Server page in the Central Admin Site, verify that “Visio Graphics Services” is started.
  • On the Manage Web Applications in the Central Admin Site, verify that Visio Graphics Service is available as the Service Connections for the given web application hosting the site where workflow visualizations needs to be enabled.
  • On the Manage Farms feature page in the Central Admin Site, “Visio Web Access” feature is activated
  • On the Manage Site Collections Feature page hosting the site for the workflow visualizations “SharePoint Server Enterprise Site Collection features” feature is activated.
  • On the Manage Site Features page hosting the workflow visualizations, verify that “SharePoint Server Enterprise Site features” feature is activated.
  • Verify that Silverlight 3 or later is installed on the client browser.
  • From the workflow settings page in the SharePoint Designer, verify that “Show Workflow visualizations on Status Page” checkbox is selected.
  • Republish the SharePoint Designer workflow from the SPD

Once each of the above steps is properly configured, workflow visualizations should be visible on the workflow status page.

Posted in SP2010 General | Leave a Comment »

Creating the SharePoint 2010 RTM Virtual Machine – Step by Step Installation Guide

Posted by nikspatel on June 8, 2010

This article provides detailed steps to create the SharePoint 2010 RTM VM on the Windows 7 x64 Ultimate Edition as host OS and Windows Server 2008 R2 x64 Edition as Guest OS using VMware Workstation 7 and later version.

 ○   Verify that Software and Hardware Requirements of Your Computer

  • Your computer is running the 64-bit installation of Windows 7.
  • Your computer is running the VMware Workstation 7 or later version
  • Your computer has minimum 4 GB RAM (8 GB recommended), minimum 80 GB Hard Disk Space (Optionally you can use the external hard drive for storage) 
  • Your computer supports Virtualization (Enable Virtualization in the BIOS configuration)
  • Your computer is connected to the Internet

 ○   Create new VMware Workstation Virtual Machine with following settings

  • Guest OS – Windows Server 2008 x64 Edition
  • Allocate minimum 50GB Disk Capacity
  • Allocate minimum  2GB RAM (4 GB recommended)

 ○   Install and Configure the Operating System

  • Install Windows 2008 Server R2 x64 Enterprise Edition as Guest OS
  • Configure the Internet Connectivity on the VM.
  • Install VMware Tools for better VM experience. It will install Mouse, Audio, and Video (SVGA) Drivers.
  • Activate the Windows from the Initial Configuration Page
  • Perform the Windows Update – Turn on and Install the Windows Update from the Initial Configuration Page. Once Windows Update is completed, turn off the Windows Update to avoid any accidental updates.
  • Set the Administrator Password to Never Expires. Open the Server Manager -> Configurations -> Local Users and Groups -> Users. Change the Administrator user properties and verify that “User cannot change password” and “Password never expires” are checked.
  • Change the Computer Name to user defined name. Open the server manager and click on the “Change System Properties” link from the “Server Summary” page. Change the computer name (e.g. “SP2010VM”) and verify that computer is the member of the workgroup.
  • Disable the Windows Firewall. In the Server Manager, on the Server Summary page, Use the “Go to Windows Firewall” link in the Security Information to turn off the firewall for three windows profiles – domain profile, public profile, and private profile.
  • Disable the Enhanced Security Configuration to avoid the Trusted Site warnings. In the Server Manager, on the Server Summary page, Use the “Configure IE ESC” link in the Security Information to turn off the settings for both Administrators and Users.

 ○   Setup the DNS and Install the Active Directory as Domain Controller

  • Add Active Directory Domain Services through Add Roles wizard from the Initial configuration screen. This will also add Microsoft.NET Framework 3.5.1 windows feature.
  • Launch the Active Directory Domain Service Installation Wizard at the end of the Active Directory Domain Services installation process or Run the “dcpromo” command with following settings – create a new domain in a new forest, specify the domain name (e.g. niks.local), and Forest level – Windows Server 2008 R2.
  • You will be warned for the dynamically assigned IPAddress. Select Yes to use an automatically assigned IP address by DHCP Server.
  • Reboot the VM and verify that login prompts the domain.
  • Verify that DNS Server and Active Directory Domain Services roles are added on the Initial Configuration or Server Manager screen.
  • Verify the Domain Name (e.g. niks.local) and full computer name (e.g. SP2010VM.niks.local) on the Initial Configuration screen.
  • Verify that Administrative Password is set to never expire using Administrative Tools -> Active Directory Users and Computers. Verify that “Password never expires” and “User cannot change password” is checked.
  • Verify the TCP/IPv4 settings for the Local Area Connection in the Network Settings. It should use the self DNS address – 127.0.0.1

 ○   Option1:  Install the SQL Server 2008 x64 Edition and SP1 and CU2 Bits

  • Install the SQL Server 2008 x64 Edition – Full installation including reporting, integration, and analysis services. Specify the Administrator account (e.g. Niks\Administrator) and Mixed mode Authentication for Database Engine, Analysis Services, Integration Services, and Reporting Services.  Enable the FILESTREAM for the Transact-SQL and File I/O Streaming access.
  • Install the Reporting Services but DO NOT configure the report server.
  • Download and Install the Microsoft SQL Server 2008 SP1 (http://go.microsoft.com/fwlink/?LinkId=166490)
  • Download and Install the Cumulative Update Package 2 for SQL Server 2008 Service Pack 1 (http://support.microsoft.com/default.aspx/kb/970315)

 ○   Option2:  Install the SQL Server 2008 R2 Edition

  • Install the SQL Server 2008 R2 Edition – Full installation including reporting, integration, and analysis services. Specify the Administrator account (e.g. Niks\Administrator) and Mixed mode Authentication for Database Engine, Analysis Services, Integration Services, and Reporting Services.  Enable the FILESTREAM for the Transact-SQL and File I/O Streaming access.
  • Install the Reporting Services but DO NOT configure the report server.

 ○   Install the SharePoint 2010 RTM Pre-requisites

  • Review the Pre-requisites required for the SharePoint 2010 RTM (http://technet.microsoft.com/en-us/library/cc262485.aspx)
  • Activate the PowerShell V2 RTM on the Windows Server 2008 R2. Please remember that Microsoft .NET Framework 3.5 Service Pack 1 and PowerShell V2 RTM are shipped with the Windows Server 2008 R2 as windows features. Open the Administrative Tools -> Server Manager. Select Features node and click on the “Add Features” link to activate the “Windows PowerShell Integrated Scripting Environment” feature. Reboot the VM. After the reboot, Initial Configuration Screen should show PowerShell in the installed features section.
  • Download and Install ADO.NET Data Services Update for .NET Framework 3.5 SP1 for Windows 7 and Windows Server 2008 R2 (this will be added in the SharePoint 2010 SP1) –http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=3e102d74-37bf-4c1e-9da6-5175644fe22d
  • Run the SharePoint 2010 RTM Bits to run the Pre-requisite Installer. Please note that pre-requisite installer requires internet connectivity because it will download most of these pre-requisites during the installation process. Alternatively, you can download all the pre-requisites, install them manually or  create the pre-requisite installer package as shown in Jai Li’s FAQ page – (http://blogs.msdn.com/opal/archive/2010/04/25/faq-sharepoint-2010-rtm-installation.aspx), and later run the pre-requisite installer to validate all the pre-requisites are installed properly. We will install all the pre-requisites manually for full control and to understand the process.
    • Download and Install the Windows Server 2008 R2 FIX: A hotfix that provides a method to support the token authentication without transport security or message encryption in WCF is available for the .NET Framework 3.5 SP1 (http://go.microsoft.com/fwlink/?LinkID=166231). Run the Windows6.1-KB976462-v2-x64.msu.
    • Download and Install the Windows Identity Framework (WIF) for Windows Server 2008 R2. (http://go.microsoft.com/fwlink/?LinkID=166363) Please remember that if you have Microsoft “Geneva” Framework installed, you must uninstall it before you install the Windows Identity Foundation (WIF). Run the Windows6.1-KB974405-x64.msu.
    • Download and Install the Microsoft Sync Framework v1.0 (http://go.microsoft.com/fwlink/?LinkID=141237&clcid=0×409). Run the Synchronization.msi and it may confirm that it’s been already installed if you have installed SQL Server 2008 R2.
    • Download and Install the Microsoft Filter Pack 2.0. (http://go.microsoft.com/fwlink/?LinkId=191851). Run the FilterPack64bit.exe.
    • Download and Install the Microsoft Chart Controls for Microsoft .NET Framework 3.5. (http://go.microsoft.com/fwlink/?LinkID=141512). Run the MsChart.exe.
    • Install the Microsoft SQL Server 2008 Analysis Services ADOMD.NET. (http://go.microsoft.com/fwlink/?LinkId=130651). Run the SQLSERVER2008_ASADOMD10.msi
    • This is optional component – Install the Microsoft Server Speech Platform. (http://go.microsoft.com/fwlink/?LinkID=179612). It makes phonetic name matching work correctly for SharePoint Search 2010. Run the SpeechPlatformRuntime.msi. Please remember that installation process doesn’t inform the users that installation is completed.
    • This is optional component – Install the Speech Recognition Language for English. (http://go.microsoft.com/fwlink/?LinkID=179613). Run the MSSpeech_SR_en-US_TELE.msi. Please remember that installation process doesn’t inform the users that installation is completed.
    • This is optional component – Install the Microsoft SQL Server 2008 R2 Reporting Services Add-in for Microsoft SharePoint Technologies 2010. This is required to run the Access Services and List Reports. (http://go.microsoft.com/fwlink/?LinkID=164654&clcid=0×409). Run the rsSharePoint.msi.
    • Please reboot the machine to make sure all the pre-requisites are installed correctly before moving on the next step.
    • Run the SharePoint 2010 Product Preparation Tool (Pre-requisites Installer) to activate the Web Server and Application Server Role and verify all the pre-requisites installed.
  • After the installation, restart the VM, Verify that all the pre-requisites are installed or activated as features or server roles.

○   Install and Configure the SharePoint 2010 RTM

  • Run the SharePoint 2010 RTM Bits to install the SharePoint 2010 RTM. When you install SharePoint on a domain controller(DC), Setup doesn’t give you any option to choose installation type (standalone or server farm) or server type (complete or stand-alone) installation. This is a designed behavior. By default, installation will have following settings – Installation Option – Server Farm , Server Type – Complete
  • Run the SharePoint Products and Technologies Configuration to configure the SharePoint 2010 environment with following settings – Connect to a Server Farm – Create a new Server Farm, Database Server Name and Account – Use the Administrator account (e.g. Niks\Administrator), Farm Security Settings – Passphrase, Central Administration Web Site Settings (e.g. port -5000), Authentication Provider – NTLM etc.

○   Configure the SharePoint Services and Basic team site

  • Visit the Central Admin Web Site (e.g. http://sp2010vm:5000/default.aspx) and Click on the Configuration Wizards link to configure the service applications on the farm. This is not recommended option in real world scenarios with medium or large farm configurations but great for quick demo boxes where you can configure all the services by walking through steps of the wizard.
  • Launch Farm Configuration Wizard. Specify the service account (e.g. niks\administrator). Accept the default selection and click Next to provision the services on the server. It may take a while to configure the services on the server.
  • Last step is to configure the default site collection with the default web application using the URL of the machine name. (e.g. http://sp2010vm). You may skip this step if you want to configure the web application name with proper host header URL to host the root site collection. In this scenario, Select Team Site and Click OK to create the default site. It may take a while to provision the web application and root site collection. At the end of the process, wizard will show the summary of service applications provisioned and root site URL provisioned through the process.
  • Activate the services that are not automatically activated during the services configuration wizard – Claims to Windows Token Service and Microsoft SharePoint Foundation Sandboxed Code Service.
  • On the Central Administration Site, verify that Manage Servers in the farm and Manage Services on the Server displays all the services are running properly.
  • Visit the default site collection, team site to verify that installation and configuration is completed (e.g. http://sp2010vm/)
  • Configure the IE for automatic windows authentication to automatically login to the SharePoint Sites using logged in user using IE Browser -> Tools -> Internet Options ->  Security tab -> Local Intranet Zone, Sites -> Advanced

 ○   Install the Microsoft Office Professional Plus 2010 (32-bit)

  • After the installation, activate the office 2010  and open the Microsoft Word to verify it works properly. Please note that Office 2010 contains SharePoint Workspace 2010 along with standard Microsoft office applications like Access, Excel, InfoPath, OneNote, Outlook, PowerPoint, Publisher, and Word.
  • When installing Office 2010 on the same machine as SharePoint Server 2010, you must disable the protected view to save files to the SharePoint Server and view the Office 2010 documents from the SharePoint 2010. To turn off protected view, open the word, PowerPoint, and excel, Office Backspace -> Options -> Trust Center Tab -> Trust Center Settings -> Protected View Tab -> Uncheck any of all of the protected view options.
  • If you are planning to use the Office OneNote 2010, Activate the Desktop Experience feature on the Windows Server 2008 R2.
  • Upload the documents to the SharePoint Team Site and Verify that documents are accessible in the Office Clients.

 ○   Install Microsoft Office Web Applications 2010 (64-bit)

  • After the Installation, Run the SharePoint Products and Technologies Configuration. Visit the Central Admin site and configure the word viewer and PowerPoint service through farm configuration wizard.
  • Activate the OfficeWebApps feature on the Root Site Collection
  • Run the additional PowerShell commands and verify that Word and PowerPoint files are accessible through the Office Web Viewers. Excel documents should be opened by the Excel Services. See the Jai Li’s FAQ page – (http://blogs.msdn.com/opal/archive/2010/04/25/faq-sharepoint-2010-rtm-installation.aspx).

 ○   Download and Install Microsoft SharePoint Designer 2010 (32bit).

  • Please remember that you cannot install 64bit of SharePoint 2010 Designer with the 32-bit of the Office 2010 Professional plus Edition.
  • Download the free 32-bit version of the SharePoint Designer 2010. (http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=d88a1505-849b-4587-b854-a7054ee28d66) and run the SharePoint Designer 2010 x86.exe to install the 32-bit version of the SPD 2010.
  • Open the SharePoint Designer 2010 and click on the Open the Site to open the SharePoint Team Site (e.g. http://sp2010vm). SharePoint designer will communicate with SharePoint 2010 Server through web services interface and should open the site contents.

 ○   Install Microsoft Visio Premium 2010 (32-bit). Open the Visio Premium, activate the product, and verify that it installed correctly.

 ○   Install the Microsoft Visual Studio 2010 (32-bit). Open the Visual Studio 2010 and access the Server Explorer from the View menu. Expand the SharePoint Connections and verify that SharePoint team site contents are accessible from the explorer.

 ○   Next Steps

  • Upload content the team site for better Content Search experience
  • Configure the Enterprise Search
  • Configure the Basic Search Center for Content Search
  • Configure the Enterprise Search Center for both Content and People Search
  • Configure the User Profile Synchronization (http://blogs.msdn.com/sharepoint/archive/2009/11/18/path-to-user-profile-synchronization-success-in-sharepoint-2010-beta.aspx)
  • Configure the My Sites and Perform the People Search (Please note that default My Site Host is already created part of the Profile Service configured through Farm Configuration Wizard)
  • Configure the SharePoint and SSRS Integrated Mode Configuration
  • Configure the SharePoint and SSRS Native Mode Configuration
  • And, many many more…..

Posted in SP2010 General | Leave a Comment »

Automating the Office Documents with the Open XML SDK and SharePoint 2010 Word Automation Services

Posted by nikspatel on April 2, 2010

Microsoft has recently released RTM version of the Open XML SDK V2.0.

http://www.microsoft.com/downloads/details.aspx?FamilyId=C6E744E5-36E9-45F5-8D8C-331DF206E0D0&displaylang=en

Open XML SDK is one of the most hidden jewels of the Microsoft Stack of utility programs. Open XML SDK allows organizations to automate the office solutions (Word, Excel, and PowerPoint) through custom applications like ASP.NET Applications, Windows Services, WCF Services, or any other technologies based on the Microsoft.NET framework.  Open XML SDK is the .NET 3.5 framework based utility to create, update, and manipulate office documents from the server side code. Additionally, you can integrate Open XML SDK solutions with the SharePoint through Web Parts, Ribbons, Application Pages, Item level Action Menus, or Workflows to automate the office documents manipulation using the SharePoint features and solutions framework.

With the release of the SharePoint 2010, Microsoft has introduced new office service – Word Automation Service. Along with Excel Services and Open XML SDK, Microsoft has opened up the series of possibilities for the server side office document automation which would not only programmatically allow creating these documents but manipulating, assembling, shredding, and converting these documents into one format to another format.

If you are planning to automate the office solutions from the servers, please bookmark following links. There isn’t much out there if you search Google or Bing but we have been extremely blessed by the two of the most active MSFT bloggers (Zeyad Rajabi/Brian Jones and Eric White) sharing numerous scenarios, videos, examples, and downloadable code regarding Open XML and Office Automation Solutions.

http://blogs.msdn.com/brian_jones/default.aspx
http://blogs.msdn.com/ericwhite/default.aspx
http://msdn.microsoft.com/en-us/office/bb265236.aspx

I was lucky enough to aware of the Zeyad Rajabi’s “SharePoint 2010 Based Document Assembly and Manipulation using Word Automation Services and Open XML” session at the SPC 2009 and here are some of the highlights of the session notes.

Open XML File Format –

  • Open XML is an open ECMA 376 standard and ISO/IEC 29500 standard
  • Defines a set of XML schemas for representing spreadsheets, charts, presentations, and word processing documents.
  • Office Word 2007 and later, Excel 2007 and later, and PowerPoint 2007 and later all use Open XML as the default file format.
  • Users see as single file (.docx, .xslx, .pptx), Developers see as zip file with XML parts
  • Allows developers access to Office files without the need of the Office applications (no need of Office client requires to be installed)
 Open XML SDK -
  • Office Files Manipulation Tool
  • Allows you to create and modify Open XML documents
  • Allows manipulating file contents while users are co-authoring
  • SDK will support both Office 2007 SP2 and Office 2010 file formats
  • Based on Microsoft .NET Framework version 3.5 SP1 (C# and VB), Compatible with LINQ and LINQ-to-XML
  • SDK does NOT Perform file conversions to other formats, like PDF or XPS (Use word automation services)
  • SDK does NOT Perform layout + recalculation tasks (Use word automation services and Excel Services)
  • Open XML 2.0 RTM is latest release. It contains
    • Microsoft.NET managed class library that provides capabilities for reading, writing, modifying, and validating Open XML documents.
    • Productivity tool that includes the ability to diff Open XML documents, a C# code generator, and tools to explore and read about the class library and the standard.
  • Scenarios Possible -
    • Push data into office files from the database and any other data sources accessible from the .NET Framework (Read: It means, it will support virtually loading data from anywhere)
    • Pull data from the office files – query, extract etc.
    • Manipuate the office files – Add the content, Update the content, Swap the content, Append the content etc.
    • Validate office files – Make sure OpenXML format files work with office client
    • Can integrated with the SharePoint – Workflow based, custom action based, web part based, ribbon based by invoking the OpenXML code
    • Can create, download, manipulate, and upload the documents in the SharePoint document library – Use the SharePoint Object Model (if Open XML code runs on the SharePoint Server) or SharePoint Web Services (if Open XML code runs on the non-SharePoint servers)
  • SDK is super powerful at manipulating Office documents but There are still tasks that require application logic
    • Use Word Automation Service for: repagination, conversion to other document formats such as PDF, or updating of the table of contents, fields, and other dynamic content in documents
    • Use Excel Services for: Calculation, rendering complex charts/pivot tables
 Office Services – Word Automation Services
  • Office Files Conversion Tool         
  • Server-ready version of Word, Slimmed down version of word API, Read/write any format understood by Word client
  • Requires SharePoint 2010, standard or enterprise CAL
  • It is a shared service that provides unattended, server-side conversion of documents into other formats, as well as some other word document field manipulation capabilities
  • Convert the word documents to the PDF/XPS and spool them to the printer for the automated printing. Please note service does not include capabilities for printing documents
  • Word Automation Services provides:
    • Layout
    • Export to fixed format
    • File conversion – supports pre-Word 2007 formats, supports PDF/XPS format
    • Complex field calculation
    • Updating Table of contents

Here is the same presentation Zeyad Rajabi has delivered at the PDC,
http://blogs.msdn.com/brian_jones/archive/2009/11/23/open-xml-sdk-word-automation-services-presentation-at-pdc.aspx

Although reading Zeyad Rajabi blog would inspire many different scenarios for the office automations, here are some of the business scenarios are possible with the Open XML SDK and SharePoint 2010 Office Services

  • Server Side Document Assembly and Document Shredding – Merge documents together with OpenXML SDK.
  • Covert thousands of Word documents in the PDF file in batch using the word automation services
  • Assemble powerpoint, word, and excel documents into one master word document
  • Generate the word documents based on the data from any source supported by the .NET framework
  • Create and Manipulate word documents stored in the SharePoint document library

I am currently working on the project where I need to manipulate the word documents stored in the SharePoint document library through the program based on the Open XML SDK and update the word document with the data from the Azure Database which would be ultimately consumed by the ASP.NET application hosted in the Azure environment via .NET or WCF Web Services. As you can see, Open XML SDK opens up thousands of office automation scenarios and along with Word Automation Services and Excel Services, sky is the limit. Hopefully this blog entry makes you aware of what Open XML SDK and SharePoint Office Services are capable of.

Posted in SP2010 General | Leave a Comment »

 
Follow

Get every new post delivered to your Inbox.