SharePoint Site Notebook feature dependent on WOPI?

After integrating Office Web Apps Server 2013 with SharePoint Server 2013, a OneNote shared notebook will automatically be created upon creation of a Team Site. What if you don’t have OWA installed? Well, I got tasked to find this out today and here’s the results.

When you attempt to activate it, it simply will not activate – push the button and screen spins and goes back to deactivated state.

7-9-2013 3-25-00 PM

Reason being is, there is a FeatureActivated event which tries to create the Quick Links menu entry (doable), but also tries to spin up a new One Note Notebook- not doable without WOPI- how do I know this: well, SharePoint is not going to be able to create OneNote documents spontaneously in any other way. How do I know this- I cracked open a little binary called Microsoft.SharePoint.dll in Reflector and went to SPSiteNotebookFeatureReceiver, and it has the following code:

sharepoint-onenote-wopi

Here’s a Technet reference! You know you want it.

http://msdn.microsoft.com/en-ca/library/microsoft.sharepoint.spsitenotebookfeaturereceiver_members.aspx

..and here is the Feature definition as it lives in the SP2013 Hive:
sharepoint-site-notebook-feature-definition

I don’t know how useful it would be to anyone, as the instructions on the feature do warn you that you’re going to need that WOPR, er.. WOPI

wopr-vs-wopi

 

Organizing and Sharing with OneNote JumpStart

You may not know it yet, OneNote is a powerful tool for IT Pros to gather, manage, and use information essential for themselves and their team members. While this is an end user-friendly course, it is tailored to technologists looking for better ways to organize the information essential to both their professional and personal lives. Office.com’s Help & How-to trainers, Doug Thomas and Dave Ludwig lead a fast paced course full of samples and demos that shows how OneNote is used in common IT Pro scenarios like importing and commenting on requirements documents and easily capturing and sharing meeting notes. Learn how to streamline key projects, research, and task lists right alongside next year’s vacation plans and tonight’s grocery list.

6-28-2013 10-50-35 AM
http://www.microsoftvirtualacademy.com/Content/ViewContent.aspx?et=2942&m=2941&ct=16922  (sign in with your Microsoft Account)

All About OneNote Synching & SharePoint

What is OneNote?

Has to be asked – a surprising number of people are not aware of what OneNote is for and how powerful it can be for keeping organized.

OneNote is a Digital notebook application that enables users to gather, organize, and search notes and other types of information, and to share those notes with others.

OneNote homepage: http://office.microsoft.com/en-ca/onenote/

What Are OneNote Documents?

Unsurprisingly, OneNote 2010 documents are XML documents not unlike .DOCX or .XLSX files. This means CRUD operations incur less complexity and overhead as they would if they were old school binary documents.

For collaboration, the open XML format that your OneNote “stuff” (including the hierarchy of Section Groups & Sections, text, styling, and embedded images and other media) follows makes it easy to synch across disparate devices such as desktops & mobile devices (non-Windows devices included).

That’s Great Keith, How About A Bunch of Code?

I knew you’d ask! Here you go, this is an update of a OneNote page, at the plumbing level:

static void UpdatePageContent()
    {
        OneNote.Application onApplication = new OneNote.Application();
        String strImportXML;
strImportXML = "<?xml version="1.0"?>" +
            "<one:Page xmlns:one="http://schemas.microsoft.com/office/onenote/12/2004/onenote"
            ID="{3428B7BB-EF39-4B9C-A167-3FAE20630C37}{1}{B0}">" +
            "    <one:PageSettings RTL="false" color="automatic">" +
            "        <one:PageSize>" +
            "            <one:Automatic/>" +
            "        </one:PageSize>" +
            "        <one:RuleLines visible="false"/>" +
            "    </one:PageSettings>" +
            "    <one:Title style="font-family:Calibri;
                 font-size:17.0pt" lang="en-US">" +
            "        <one:OE alignment="left">" +
            "            <one:T>" +
            "                <![CDATA[My Sample Page]]>" +
            "            </one:T>" +
            "        </one:OE>" +
            "    </one:Title>" +
            "    <one:Outline >" +
            "        <one:Position x="120" y="160"/>" +
            "        <one:Size width="120" height="15"/>" +
            "        <one:OEChildren>" +
            "            <one:OE alignment="left">" +
            "                <one:T>" +
            "                    <![CDATA[Sample Text]]>" +
            "                </one:T>" +
            "            </one:OE>" +
            "        </one:OEChildren>" +
            "    </one:Outline>" +
            "</one:Page>";
// Update the page content.
        onApplication.UpdatePageContent(strImportXML, System.DateTime.MinValue);
    }

My Brain Hurts, What Does that Crap Mean?

It means, that since we can see it’s a simple XML (text file) update method, then the access methods for performing these updates are also likely to be simple. That they be. Web Services are a fundamental backbone to the Office suite and SharePoint, and OneNote is no black sheep.

There are three methods used by OneNote for communicating:

HTTP Extensions for Web Distributed Authoring and Versioning (WebDAV):

File Synchronization via SOAP over HTTP Protocol Specification

Windows Live SkyDrive Save to Web SOAP Web Service

All three of these methods are simply communication over HTTP via XML.

What Protocol is Used When?

To transfer and synchronize files that are stored on a server running SharePoint Products and Technologies, OneNote 2013 or OneNote 2010 determine which Web authoring protocol to use by sending a SOAP call to the protocol server by using the File Synchronization via SOAP over HTTP Protocol (MS-FSSHTTP), and then processing the response as follows.

1. If the protocol server responds in the format that is defined by the File Synchronization via SOAP over HTTP Protocol, OneNote 2013 or OneNote 2010 use the File Synchronization via SOAP over HTTP Protocol to access the file.

2. If the protocol server does not respond in the format that is defined by the File Synchronization via SOAP over HTTP Protocol or it responds incorrectly, OneNote 2013 or OneNote 2010 use either of the following, depending on the version of the operating system on which it is running:

  • If it is running on Windows Vista operating system or Windows 7 operating system, OneNote 2013 or OneNote 2010 use the Web Distributed Authoring and Versioning (WebDAV) Protocol Client Extensions.
  • If it is running on Windows XP operating system, OneNote 2013 or OneNote 2010 uses the FrontPage Server Extensions Remote Protocol.

The following table describes the additional protocols used by OneNote 2013, OneNote 2010, or Office OneNote 2007 when synchronizing files with servers running Windows SharePoint Services.

Protocol Name Description Short Name
Hypertext Transfer Protocol — HTTP/1.1 Sends HTTP OPTIONS requests to the server to identify the server version and supported protocols. Sends HTTP HEAD requests to files and folders to validate their existence, invoke authentication, and check file modified times. [RFC2616]
Lists Web Service Protocol Enumerates Office OneNote 2007, OneNote 2010, or OneNote 2013 files in the document library folder, and efficiently enumerates changed files. [MS-LISTSWS]
Webs Web Service Protocol Maps file path URLs to document libraries for subsequent calls to the Lists Web Service Protocol [MS-LISTSWS]. [MS-WEBSS]

For a complete reference of Microsoft Office Protocols, check out http://msdn.microsoft.com/en-us/library/cc307282%28v=office.14%29.aspx

About OneNote Notebook Synching

When you work in notebooks that are stored on your computer, Microsoft OneNote 2010 continually and automatically saves your changes as you work. However, if you set up a shared notebook on the Web or your organization’s network in order to share the notebook on other computers or with other people, saving and managing changes occurs a bit differently.
OneNote keeps a local cached copy of a shared notebook on each computer that accesses it and then periodically synchronizes any changes with the notebook files that are stored in the shared location. You can adjust the settings that control this process.

OneNote 2010 does do incremental syncing on notebooks. But if a file is an embedded file, such as a video, if that file changes, then the entire file would need to be uploaded again.
There is not a way to change the syncing interval of notebooks.

Notes About SharePoint & OneNote

Unlike Microsoft Word and Microsoft PowerPoint, Microsoft OneNote stores version information within the file itself. For this reason, administrators should follow these recommended practices when storing OneNote notebooks in a SharePoint Server document library:

  • Do not enable minor versioning. This is the default setting in SharePoint Server 2010.
  • If major versioning is enabled, set a reasonable maximum number of versions to store. By default, major versioning is not enabled in SharePoint Server 2010.

It should be understood that in SharePoint 2010 there are at 8 methods of data manipulation possible. See http://nikspatel.wordpress.com/2012/08/05/sharepoint-2010-data-querying-options-server-om-vs-client-om-vs-rest-vs-linq-vs-search-api/

Considering this, when the question comes up “How is OneNote pegging my SharePoint server resource-wise and what can I do to limit that”, one needs to carefully review the SharePoint access methods in comparison to the particular mode OneNote is communicating in.

As synched OneNote content is delivered via Office Web Application, all the standard SharePoint Resource Throttling approaches will apply – including being able to offload heavy queries to certain times of day. This is also the same for SharePoint Workspace (although there are some other built-in limits at play in Workspace) and a variety of third-party apps such as SharePlus.

Notes About Office Web Application Service Limits

This includes the Word Web App, PowerPoint Web App and OneNote Web App. There are several different perspectives that you have to look at each of these. Specifically you should focus on viewing versus editing because the resources required are quite different.

The drivers for performance are expected concurrent users and what type of operations are going to be done. Microsoft’s initial recommendations are 100 daily users with average of 10 concurrent can be supported by 1 WFE and 1 App Server. Going to 1000 daily and 30 concurrent would require 2 WFE and 2 App servers. Going to 10,000 daily and 300 concurrent would require 4 WFE and 3 app servers.
Much of the limits associated to OneNote Services are directly tied to the limits for list and libraries. This is because each section in OneNote is stored as folders and documents in a library.
The maximum size for each section of an OneNote section is again driven by the file size limits for lists and libraries.

If there are embedded images, files, etc. in OneNote, that are greater than 100KB, they will be split out into their own binary files within the SharePoint library.

Error Codes

The full reference to possible OneNote errors can be found here: http://msdn.microsoft.com/en-us/library/ff966472.aspx