<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:georss="http://www.georss.org/georss" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>Mick's Breeze Blogs - Biztalk/Sharepoint/... - SharePoint</title>
    <link>http://blogs.breeze.net/mickb/</link>
    <description>Things hard and not so hard....</description>
    <language>en-us</language>
    <copyright>Breeze</copyright>
    <lastBuildDate>Mon, 11 Feb 2013 11:47:06 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.3.9074.18820</generator>
    <managingEditor>mickb@breezetraining.com.au</managingEditor>
    <webMaster>mickb@breezetraining.com.au</webMaster>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=d4bde347-853b-41b0-9e1c-11ce2ecbf500</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,d4bde347-853b-41b0-9e1c-11ce2ecbf500.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,d4bde347-853b-41b0-9e1c-11ce2ecbf500.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=d4bde347-853b-41b0-9e1c-11ce2ecbf500</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
After wrestling with this tonight for sometime I’ve finally cracked it. SP2013 RTMed
and alot of the sample code fails due to the fact that you need to now add ‘..;odata=verbose’
onto pretty much every call to SharePoint.
</p>
        <p>
Basically you get a series of errors such as:
</p>
        <p>
          <strong>MIME</strong>
          <strong>type</strong>
          <strong>could</strong>
          <strong>not</strong>
          <strong>be
found</strong>
          <strong>that matches</strong>
          <strong>the content</strong>
          <strong>type</strong>
          <strong>of
the response</strong>. <strong>None</strong><strong>of the supported</strong><strong>type</strong>(<strong>s</strong>)
'<strong>application/atom+xml;type=entry</strong>, <strong>application/atom+xml</strong>, <strong>application/json;odata=verbose</strong></p>
        <p>
 
</p>
        <p>
Previously alot of the sample code has
</p>
        <p>
$.getJSON(….) as part of the call to the server – as mentioned we now need to add
some custom header values of ‘<strong>odata=verbose</strong>’, so to save you hours
of slogging on this, the getJSON call doesn’t allow custom header values. You need
to use the <strong>$.ajax(…)</strong> for these calls.
</p>
        <p>
          <strong>READING FROM A LIST</strong>
        </p>
        <p>
          <strong>function getCustomers() {<br /></strong> 
</p>
        <p>
  // begin work to call across network<br />
  var requestUri = _spPageContextInfo.webAbsoluteUrl +<br />
               
"/_api/Web/Lists/getByTitle('CustomersREST')/items/" +<br />
               
"?$select=Id,FirstName,Title,WorkPhone" +<br />
               
"&amp;$orderby=Title,FirstName";<br />
    
<br />
  var requestHeaders = {<br />
      "accept": "application/json;odata=verbose"<br />
  }<br />
    // execute AJAX request 
<br />
  $.ajax({<br />
      url: requestUri,<br />
      type: 'GET',<br />
      dataType: 'json',<br />
      headers: requestHeaders,<br />
      success: onDataReturned,<br />
      error: onError<br />
  });<br />
}
</p>
        <p>
 
</p>
        <p>
          <strong>UPDATING A LIST ITEM</strong>
        </p>
        <p>
//Sample code to update a Customer List Item in a Customer List called ‘CustomersREST’
</p>
        <p>
          <strong>function updateCustomer(</strong>dialogResult, returnValue) {
</p>
        <p>
  if (dialogResult == SP.UI.DialogResult.OK) {<br />
    var Id = returnValue.Id;<br />
    var FirstName = returnValue.FirstName;<br />
    var LastName = returnValue.LastName;<br />
    var WorkPhone = returnValue.WorkPhone;<br />
    var etag = returnValue.etag;
</p>
        <p>
    var requestUri = _spPageContextInfo.webAbsoluteUrl +<br />
              "/_api/Web/Lists/getByTitle('CustomersREST')/items("
+ Id + ")";
</p>
        <p>
    var customerData = {<br />
      __metadata: { "type": "SP.Data.CustomersRESTListItem"
},<br />
      Title: LastName,<br />
      FirstName: FirstName,<br />
      WorkPhone: WorkPhone<br />
    };
</p>
        <p>
    requestBody = JSON.stringify(customerData);
</p>
        <p>
    var requestHeaders = {<br />
        "accept": "application/json;odata=verbose",<br />
        "X-RequestDigest": $("#__REQUESTDIGEST").val(),<br />
        "X-HTTP-Method": "MERGE",<br />
        "content-length": requestBody.length,<br />
        "content-type" : "application/json;odata=verbose",<br />
        "If-Match": etag<br />
    }
</p>
        <p>
    $.ajax({<br />
      url: requestUri,<br />
      type: "POST",<br />
      contentType: "application/json;odata=verbose",<br />
      headers: requestHeaders,<br />
      data: requestBody,<br />
      success: onSuccess,<br />
      error: onError<br />
    });
</p>
        <p>
  }
</p>
        <p>
}
</p>
        <img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=d4bde347-853b-41b0-9e1c-11ce2ecbf500" />
      </body>
      <title>SP2013: Updating a List using REST in OData format from JavaScript</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,d4bde347-853b-41b0-9e1c-11ce2ecbf500.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2013/02/11/SP2013UpdatingAListUsingRESTInODataFormatFromJavaScript.aspx</link>
      <pubDate>Mon, 11 Feb 2013 11:47:06 GMT</pubDate>
      <description>&lt;p&gt;
After wrestling with this tonight for sometime I’ve finally cracked it. SP2013 RTMed
and alot of the sample code fails due to the fact that you need to now add ‘..;odata=verbose’
onto pretty much every call to SharePoint.
&lt;/p&gt;
&lt;p&gt;
Basically you get a series of errors such as:
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;MIME&lt;/strong&gt; &lt;strong&gt;type&lt;/strong&gt; &lt;strong&gt;could&lt;/strong&gt; &lt;strong&gt;not&lt;/strong&gt; &lt;strong&gt;be
found&lt;/strong&gt; &lt;strong&gt;that matches&lt;/strong&gt; &lt;strong&gt;the content&lt;/strong&gt; &lt;strong&gt;type&lt;/strong&gt; &lt;strong&gt;of
the response&lt;/strong&gt;. &lt;strong&gt;None&lt;/strong&gt; &lt;strong&gt;of the supported&lt;/strong&gt; &lt;strong&gt;type&lt;/strong&gt;(&lt;strong&gt;s&lt;/strong&gt;)
'&lt;strong&gt;application/atom+xml;type=entry&lt;/strong&gt;, &lt;strong&gt;application/atom+xml&lt;/strong&gt;, &lt;strong&gt;application/json;odata=verbose&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Previously alot of the sample code has
&lt;/p&gt;
&lt;p&gt;
$.getJSON(….) as part of the call to the server – as mentioned we now need to add
some custom header values of ‘&lt;strong&gt;odata=verbose&lt;/strong&gt;’, so to save you hours
of slogging on this, the getJSON call doesn’t allow custom header values. You need
to use the &lt;strong&gt;$.ajax(…)&lt;/strong&gt; for these calls.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;READING FROM A LIST&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;function getCustomers() {&lt;br&gt;
&lt;/strong&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp; // begin work to call across network&lt;br&gt;
&amp;nbsp; var requestUri = _spPageContextInfo.webAbsoluteUrl +&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
"/_api/Web/Lists/getByTitle('CustomersREST')/items/" +&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
"?$select=Id,FirstName,Title,WorkPhone" +&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
"&amp;amp;$orderby=Title,FirstName";&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;br&gt;
&amp;nbsp; var requestHeaders = {&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "accept": "application/json;odata=verbose"&lt;br&gt;
&amp;nbsp; }&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; // execute AJAX request 
&lt;br&gt;
&amp;nbsp; $.ajax({&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; url: requestUri,&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; type: 'GET',&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dataType: 'json',&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; headers: requestHeaders,&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; success: onDataReturned,&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; error: onError&lt;br&gt;
&amp;nbsp; });&lt;br&gt;
}
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;UPDATING A LIST ITEM&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
//Sample code to update a Customer List Item in a Customer List called ‘CustomersREST’
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;function updateCustomer(&lt;/strong&gt;dialogResult, returnValue) {
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp; if (dialogResult == SP.UI.DialogResult.OK) {&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; var Id = returnValue.Id;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; var FirstName = returnValue.FirstName;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; var LastName = returnValue.LastName;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; var WorkPhone = returnValue.WorkPhone;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; var etag = returnValue.etag;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; var requestUri = _spPageContextInfo.webAbsoluteUrl +&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "/_api/Web/Lists/getByTitle('CustomersREST')/items("
+ Id + ")";
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; var customerData = {&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; __metadata: { "type": "SP.Data.CustomersRESTListItem"
},&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Title: LastName,&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FirstName: FirstName,&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WorkPhone: WorkPhone&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; };
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; requestBody = JSON.stringify(customerData);
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; var requestHeaders = {&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "accept": "application/json;odata=verbose",&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "X-RequestDigest": $("#__REQUESTDIGEST").val(),&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "X-HTTP-Method": "MERGE",&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "content-length": requestBody.length,&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "content-type" : "application/json;odata=verbose",&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "If-Match": etag&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; $.ajax({&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; url: requestUri,&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; type: "POST",&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; contentType: "application/json;odata=verbose",&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; headers: requestHeaders,&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data: requestBody,&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; success: onSuccess,&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; error: onError&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; });
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp; }
&lt;/p&gt;
&lt;p&gt;
}
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=d4bde347-853b-41b0-9e1c-11ce2ecbf500" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,d4bde347-853b-41b0-9e1c-11ce2ecbf500.aspx</comments>
      <category>.NET Developer</category>
      <category>SharePoint</category>
      <category>SharePoint/2013</category>
      <category>Tips</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=ddd50d57-dc54-42c7-97c5-7f47fef1fc27</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,ddd50d57-dc54-42c7-97c5-7f47fef1fc27.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,ddd50d57-dc54-42c7-97c5-7f47fef1fc27.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=ddd50d57-dc54-42c7-97c5-7f47fef1fc27</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
While on SharePoint 2013 training we came across all the different ways of calling
SharePoint and it’s data through JavaScript, JQuery and all the bits.
</p>
        <p>
It was all looking good until we needed to <strong>update sharepoint</strong> – e.g.
a list, a list item etc.
</p>
        <p>
The MS Course notes say – “if you’re in SharePoint you can get the Form Digest from
the main SharePoint Form….”
</p>
        <p>
 
</p>
        <p>
What about if you’re running outside of SharePoint (a Provider App – they now call
it, or Cloud Hosted…depending on who wrote the help article)
</p>
        <p>
 
</p>
        <p>
The answer in the notes is… <strong>go and make an old fashion call to Sites.asmx
SOAP WebService….</strong> from client side javascript this is going to be a feat.
</p>
        <p>
….
</p>
        <p>
The Answer – <strong>make a REST call to get the ‘Context Info’ first</strong>, then
you’ll have the form digest and you’re done.
</p>
        <p>
          <a title="http://msdn.microsoft.com/en-us/library/fp142386(office.15).aspx#bk_synchronize" href="http://msdn.microsoft.com/en-us/library/fp142386(office.15).aspx#bk_synchronize">http://msdn.microsoft.com/en-us/library/fp142386(office.15).aspx#bk_synchronize</a> (just
at the top of this page)
</p>
        <p>
 
</p>
        <div class="caption" style="word-wrap: break-word; height: 20px; clear: both">
          <font face="Segoe UI">
            <font style="font-size: 9.7pt" color="#3f529c">
              <strong>Table
1. SPContextWebInformation structure initialization properties</strong>
            </font>
          </font>
        </div>
        <div class="tableSection" style="word-wrap: break-word">
          <table style="border-top: #bbb 1px solid; border-right: #bbb 1px solid; border-collapse: collapse; border-bottom: #bbb 1px solid; border-left: #bbb 1px solid" width="100%">
            <tbody>
              <tr style="vertical-align: top">
                <th style="border-top: 1px solid; border-right: 1px solid; border-bottom: 1px solid; padding-bottom: 4px; padding-top: 4px; padding-left: 4px; border-left: 1px solid; padding-right: 4px; background-color: #e5e5e5" height="21" align="left">
                  <p>
                    <font face="Segoe UI">
                      <font style="font-size: 12.9pt">Property</font>
                    </font>
                  </p>
                </th>
                <th style="border-top: 1px solid; border-right: 1px solid; border-bottom: 1px solid; padding-bottom: 4px; padding-top: 4px; padding-left: 4px; border-left: 1px solid; padding-right: 4px; background-color: #e5e5e5" height="21" align="left">
                  <p>
                    <font face="Segoe UI">
                      <font style="font-size: 12.9pt">Description</font>
                    </font>
                  </p>
                </th>
              </tr>
              <tr style="vertical-align: top">
                <td style="border-top: 1px solid; border-right: 1px solid; border-bottom: 1px solid; padding-bottom: 9px; padding-top: 9px; padding-left: 4px; border-left: 1px solid; line-height: 17pt; padding-right: 4px; background-color: #fff">
                  <p style="margin-bottom: 0px; position: relative; margin-top: 0px">
                    <span>
                      <span class="input">
                        <font face="Segoe UI">
                          <font style="font-size: 12pt">
                            <strong>webFullUrl</strong>
                          </font>
                        </font>
                      </span>
                    </span>
                  </p>
                </td>
                <td style="border-top: 1px solid; border-right: 1px solid; border-bottom: 1px solid; padding-bottom: 9px; padding-top: 9px; padding-left: 4px; border-left: 1px solid; line-height: 17pt; padding-right: 4px; background-color: #fff">
                  <p style="margin-bottom: 0px; position: relative; margin-top: 0px">
                    <font face="Segoe UI">
                      <font style="font-size: 12pt">Gets the server-relative URL of
the nearest site.</font>
                    </font>
                  </p>
                </td>
              </tr>
              <tr style="vertical-align: top">
                <td style="border-top: 1px solid; border-right: 1px solid; border-bottom: 1px solid; padding-bottom: 9px; padding-top: 9px; padding-left: 4px; border-left: 1px solid; line-height: 17pt; padding-right: 4px; background-color: #fff">
                  <p style="margin-bottom: 0px; position: relative; margin-top: 0px">
                    <span>
                      <span class="input">
                        <font face="Segoe UI">
                          <font style="font-size: 12pt">
                            <strong>siteFullUrl</strong>
                          </font>
                        </font>
                      </span>
                    </span>
                  </p>
                </td>
                <td style="border-top: 1px solid; border-right: 1px solid; border-bottom: 1px solid; padding-bottom: 9px; padding-top: 9px; padding-left: 4px; border-left: 1px solid; line-height: 17pt; padding-right: 4px; background-color: #fff">
                  <p style="margin-bottom: 0px; position: relative; margin-top: 0px">
                    <font face="Segoe UI">
                      <font style="font-size: 12pt">Gets the server-relative URL of
the root of the site collection that the site is contained within.</font>
                    </font>
                  </p>
                  <p style="margin-bottom: 0px; position: relative; margin-top: 0px">
                    <font face="Segoe UI">
                      <font style="font-size: 12pt">If the nearest web is the root
of a site collection, then the value of the <span><span class="input"><strong>webFullUrl</strong></span></span> property
is equal to the <span><span class="input"><strong>siteFullUrl</strong></span></span> property.</font>
                    </font>
                  </p>
                </td>
              </tr>
              <tr style="vertical-align: top">
                <td style="border-top: 1px solid; border-right: 1px solid; border-bottom: 1px solid; padding-bottom: 9px; padding-top: 9px; padding-left: 4px; border-left: 1px solid; line-height: 17pt; padding-right: 4px; background-color: #fff">
                  <p style="margin-bottom: 0px; position: relative; margin-top: 0px">
                    <span>
                      <span class="input">
                        <font face="Segoe UI">
                          <font style="font-size: 12pt">
                            <strong>formDigestValue</strong>
                          </font>
                        </font>
                      </span>
                    </span>
                  </p>
                </td>
                <td style="border-top: 1px solid; border-right: 1px solid; border-bottom: 1px solid; padding-bottom: 9px; padding-top: 9px; padding-left: 4px; border-left: 1px solid; line-height: 17pt; padding-right: 4px; background-color: #fff">
                  <p style="margin-bottom: 0px; position: relative; margin-top: 0px">
                    <font face="Segoe UI">
                      <font style="font-size: 12pt">Gets the server's request form
digest.</font>
                    </font>
                  </p>
                </td>
              </tr>
              <tr style="vertical-align: top">
                <td style="border-top: 1px solid; border-right: 1px solid; border-bottom: 1px solid; padding-bottom: 9px; padding-top: 9px; padding-left: 4px; border-left: 1px solid; line-height: 17pt; padding-right: 4px; background-color: #fff">
                  <p style="margin-bottom: 0px; position: relative; margin-top: 0px">
                    <span>
                      <span class="input">
                        <font face="Segoe UI">
                          <font style="font-size: 12pt">
                            <strong>LibraryVersion</strong>
                          </font>
                        </font>
                      </span>
                    </span>
                  </p>
                </td>
                <td style="border-top: 1px solid; border-right: 1px solid; border-bottom: 1px solid; padding-bottom: 9px; padding-top: 9px; padding-left: 4px; border-left: 1px solid; line-height: 17pt; padding-right: 4px; background-color: #fff">
                  <p style="margin-bottom: 0px; position: relative; margin-top: 0px">
                    <font face="Segoe UI">
                      <font style="font-size: 12pt">Gets the current version of the
REST library.</font>
                    </font>
                  </p>
                </td>
              </tr>
              <tr style="vertical-align: top">
                <td style="border-top: 1px solid; border-right: 1px solid; border-bottom: 1px solid; padding-bottom: 9px; padding-top: 9px; padding-left: 4px; border-left: 1px solid; line-height: 17pt; padding-right: 4px; background-color: #fff">
                  <p style="margin-bottom: 0px; position: relative; margin-top: 0px">
                    <span>
                      <span class="input">
                        <font face="Segoe UI">
                          <font style="font-size: 12pt">
                            <strong>SupportedSchemaVersions</strong>
                          </font>
                        </font>
                      </span>
                    </span>
                  </p>
                </td>
                <td style="border-top: 1px solid; border-right: 1px solid; border-bottom: 1px solid; padding-bottom: 9px; padding-top: 9px; padding-left: 4px; border-left: 1px solid; line-height: 17pt; padding-right: 4px; background-color: #fff">
                  <p style="margin-bottom: 0px; position: relative; margin-top: 0px">
                    <font face="Segoe UI">
                      <font style="font-size: 12pt">Gets the versions of the schema
of the REST/CSOM library that are supported.</font>
                    </font>
                  </p>
                </td>
              </tr>
            </tbody>
          </table>
        </div>
        <p style="word-wrap: break-word">
          <font face="Segoe UI">
            <font style="font-size: 9.7pt">To access this information, use
the </font>
          </font>
          <span class="code">
            <font face="Courier New">
              <font style="font-size: 10.2pt" color="#000066">/contextinfo</font>
            </font>
          </span>
          <font face="Segoe UI">
            <font style="font-size: 9.7pt"> operator.
For example: </font>
          </font>
        </p>
        <p style="word-wrap: break-word">
          <span class="code">
            <font face="Courier New">
              <font style="font-size: 10.2pt" color="#000066">http://server/web/doclib/forms/_api/contextinfo</font>
            </font>
          </span>
        </p>
        <p style="word-wrap: break-word">
          <font face="Segoe UI">
            <font style="font-size: 9.7pt">To increase security against
cross-site scripting attempts, the </font>
          </font>
          <span class="code">
            <font face="Courier New">
              <font style="font-size: 10.2pt" color="#000066">/contextinfo</font>
            </font>
          </span>
          <font face="Segoe UI">
            <font style="font-size: 9.7pt"> operator
accepts only <span><span class="input"><strong>POST</strong></span></span> requests.</font>
          </font>
        </p>
        <img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=ddd50d57-dc54-42c7-97c5-7f47fef1fc27" />
      </body>
      <title>SP2013: Getting a Form Digest for Update REST calls</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,ddd50d57-dc54-42c7-97c5-7f47fef1fc27.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2012/11/20/SP2013GettingAFormDigestForUpdateRESTCalls.aspx</link>
      <pubDate>Tue, 20 Nov 2012 04:43:32 GMT</pubDate>
      <description>&lt;p&gt;
While on SharePoint 2013 training we came across all the different ways of calling
SharePoint and it’s data through JavaScript, JQuery and all the bits.
&lt;/p&gt;
&lt;p&gt;
It was all looking good until we needed to &lt;strong&gt;update sharepoint&lt;/strong&gt; – e.g.
a list, a list item etc.
&lt;/p&gt;
&lt;p&gt;
The MS Course notes say – “if you’re in SharePoint you can get the Form Digest from
the main SharePoint Form….”
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
What about if you’re running outside of SharePoint (a Provider App – they now call
it, or Cloud Hosted…depending on who wrote the help article)
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
The answer in the notes is… &lt;strong&gt;go and make an old fashion call to Sites.asmx
SOAP WebService….&lt;/strong&gt; from client side javascript this is going to be a feat.
&lt;/p&gt;
&lt;p&gt;
….
&lt;/p&gt;
&lt;p&gt;
The Answer – &lt;strong&gt;make a REST call to get the ‘Context Info’ first&lt;/strong&gt;, then
you’ll have the form digest and you’re done.
&lt;/p&gt;
&lt;p&gt;
&lt;a title="http://msdn.microsoft.com/en-us/library/fp142386(office.15).aspx#bk_synchronize" href="http://msdn.microsoft.com/en-us/library/fp142386(office.15).aspx#bk_synchronize"&gt;http://msdn.microsoft.com/en-us/library/fp142386(office.15).aspx#bk_synchronize&lt;/a&gt; (just
at the top of this page)
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;div class="caption" style="word-wrap: break-word; height: 20px; clear: both"&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 9.7pt" color="#3f529c"&gt;&lt;strong&gt;Table
1. SPContextWebInformation structure initialization properties&lt;/strong&gt;&lt;/font&gt;&lt;/font&gt;
&lt;/div&gt;
&lt;div class="tableSection" style="word-wrap: break-word"&gt;
&lt;table style="border-top: #bbb 1px solid; border-right: #bbb 1px solid; border-collapse: collapse; border-bottom: #bbb 1px solid; border-left: #bbb 1px solid" width="100%"&gt;
&lt;tbody&gt;
&lt;tr style="vertical-align: top"&gt;
&lt;th style="border-top: 1px solid; border-right: 1px solid; border-bottom: 1px solid; padding-bottom: 4px; padding-top: 4px; padding-left: 4px; border-left: 1px solid; padding-right: 4px; background-color: #e5e5e5" height="21" align="left"&gt;
&lt;p&gt;
&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 12.9pt"&gt;Property&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;/th&gt;
&lt;th style="border-top: 1px solid; border-right: 1px solid; border-bottom: 1px solid; padding-bottom: 4px; padding-top: 4px; padding-left: 4px; border-left: 1px solid; padding-right: 4px; background-color: #e5e5e5" height="21" align="left"&gt;
&lt;p&gt;
&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 12.9pt"&gt;Description&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;/th&gt;
&lt;/tr&gt;
&lt;tr style="vertical-align: top"&gt;
&lt;td style="border-top: 1px solid; border-right: 1px solid; border-bottom: 1px solid; padding-bottom: 9px; padding-top: 9px; padding-left: 4px; border-left: 1px solid; line-height: 17pt; padding-right: 4px; background-color: #fff"&gt;
&lt;p style="margin-bottom: 0px; position: relative; margin-top: 0px"&gt;
&lt;span&gt;&lt;span class="input"&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 12pt"&gt;&lt;strong&gt;webFullUrl&lt;/strong&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;/td&gt;
&lt;td style="border-top: 1px solid; border-right: 1px solid; border-bottom: 1px solid; padding-bottom: 9px; padding-top: 9px; padding-left: 4px; border-left: 1px solid; line-height: 17pt; padding-right: 4px; background-color: #fff"&gt;
&lt;p style="margin-bottom: 0px; position: relative; margin-top: 0px"&gt;
&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 12pt"&gt;Gets the server-relative URL of
the nearest site.&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="vertical-align: top"&gt;
&lt;td style="border-top: 1px solid; border-right: 1px solid; border-bottom: 1px solid; padding-bottom: 9px; padding-top: 9px; padding-left: 4px; border-left: 1px solid; line-height: 17pt; padding-right: 4px; background-color: #fff"&gt;
&lt;p style="margin-bottom: 0px; position: relative; margin-top: 0px"&gt;
&lt;span&gt;&lt;span class="input"&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 12pt"&gt;&lt;strong&gt;siteFullUrl&lt;/strong&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;/td&gt;
&lt;td style="border-top: 1px solid; border-right: 1px solid; border-bottom: 1px solid; padding-bottom: 9px; padding-top: 9px; padding-left: 4px; border-left: 1px solid; line-height: 17pt; padding-right: 4px; background-color: #fff"&gt;
&lt;p style="margin-bottom: 0px; position: relative; margin-top: 0px"&gt;
&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 12pt"&gt;Gets the server-relative URL of
the root of the site collection that the site is contained within.&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p style="margin-bottom: 0px; position: relative; margin-top: 0px"&gt;
&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 12pt"&gt;If the nearest web is the root
of a site collection, then the value of the &lt;span&gt;&lt;span class="input"&gt;&lt;strong&gt;webFullUrl&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt; property
is equal to the &lt;span&gt;&lt;span class="input"&gt;&lt;strong&gt;siteFullUrl&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt; property.&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="vertical-align: top"&gt;
&lt;td style="border-top: 1px solid; border-right: 1px solid; border-bottom: 1px solid; padding-bottom: 9px; padding-top: 9px; padding-left: 4px; border-left: 1px solid; line-height: 17pt; padding-right: 4px; background-color: #fff"&gt;
&lt;p style="margin-bottom: 0px; position: relative; margin-top: 0px"&gt;
&lt;span&gt;&lt;span class="input"&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 12pt"&gt;&lt;strong&gt;formDigestValue&lt;/strong&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;/td&gt;
&lt;td style="border-top: 1px solid; border-right: 1px solid; border-bottom: 1px solid; padding-bottom: 9px; padding-top: 9px; padding-left: 4px; border-left: 1px solid; line-height: 17pt; padding-right: 4px; background-color: #fff"&gt;
&lt;p style="margin-bottom: 0px; position: relative; margin-top: 0px"&gt;
&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 12pt"&gt;Gets the server's request form
digest.&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="vertical-align: top"&gt;
&lt;td style="border-top: 1px solid; border-right: 1px solid; border-bottom: 1px solid; padding-bottom: 9px; padding-top: 9px; padding-left: 4px; border-left: 1px solid; line-height: 17pt; padding-right: 4px; background-color: #fff"&gt;
&lt;p style="margin-bottom: 0px; position: relative; margin-top: 0px"&gt;
&lt;span&gt;&lt;span class="input"&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 12pt"&gt;&lt;strong&gt;LibraryVersion&lt;/strong&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;/td&gt;
&lt;td style="border-top: 1px solid; border-right: 1px solid; border-bottom: 1px solid; padding-bottom: 9px; padding-top: 9px; padding-left: 4px; border-left: 1px solid; line-height: 17pt; padding-right: 4px; background-color: #fff"&gt;
&lt;p style="margin-bottom: 0px; position: relative; margin-top: 0px"&gt;
&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 12pt"&gt;Gets the current version of the
REST library.&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="vertical-align: top"&gt;
&lt;td style="border-top: 1px solid; border-right: 1px solid; border-bottom: 1px solid; padding-bottom: 9px; padding-top: 9px; padding-left: 4px; border-left: 1px solid; line-height: 17pt; padding-right: 4px; background-color: #fff"&gt;
&lt;p style="margin-bottom: 0px; position: relative; margin-top: 0px"&gt;
&lt;span&gt;&lt;span class="input"&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 12pt"&gt;&lt;strong&gt;SupportedSchemaVersions&lt;/strong&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;/td&gt;
&lt;td style="border-top: 1px solid; border-right: 1px solid; border-bottom: 1px solid; padding-bottom: 9px; padding-top: 9px; padding-left: 4px; border-left: 1px solid; line-height: 17pt; padding-right: 4px; background-color: #fff"&gt;
&lt;p style="margin-bottom: 0px; position: relative; margin-top: 0px"&gt;
&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 12pt"&gt;Gets the versions of the schema
of the REST/CSOM library that are supported.&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p style="word-wrap: break-word"&gt;
&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 9.7pt"&gt;To access this information, use
the &lt;/font&gt;&lt;/font&gt;&lt;span class="code"&gt;&lt;font face="Courier New"&gt;&lt;font style="font-size: 10.2pt" color="#000066"&gt;/contextinfo&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 9.7pt"&gt; operator.
For example: &lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p style="word-wrap: break-word"&gt;
&lt;span class="code"&gt;&lt;font face="Courier New"&gt;&lt;font style="font-size: 10.2pt" color="#000066"&gt;http://server/web/doclib/forms/_api/contextinfo&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p style="word-wrap: break-word"&gt;
&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 9.7pt"&gt;To increase security against
cross-site scripting attempts, the &lt;/font&gt;&lt;/font&gt;&lt;span class="code"&gt;&lt;font face="Courier New"&gt;&lt;font style="font-size: 10.2pt" color="#000066"&gt;/contextinfo&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font face="Segoe UI"&gt;&lt;font style="font-size: 9.7pt"&gt; operator
accepts only &lt;span&gt;&lt;span class="input"&gt;&lt;strong&gt;POST&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt; requests.&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=ddd50d57-dc54-42c7-97c5-7f47fef1fc27" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,ddd50d57-dc54-42c7-97c5-7f47fef1fc27.aspx</comments>
      <category>Dev</category>
      <category>SharePoint</category>
      <category>SharePoint/2013</category>
      <category>Tips</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=4578714e-fffd-40bf-85f4-22c6dc8233dc</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,4578714e-fffd-40bf-85f4-22c6dc8233dc.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,4578714e-fffd-40bf-85f4-22c6dc8233dc.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=4578714e-fffd-40bf-85f4-22c6dc8233dc</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Hi folks, I’m just blown away by all the goodies in these 2 releases
</p>
        <p>
1) the SP1
</p>
        <p>
2) the Feature Pack SP1 
</p>
        <p>
Both have some pretty big improvements, especially around the SharePoint 2013 &lt;-&gt;
SQL scenario and pivot tables, analysis, mining etc.
</p>
        <p>
There’s even SQL Services that continuously copy data from Oracle to SQL – this I’ll
have to try on my next BizTalk project.
</p>
        <p>
Check it out - <a title="http://www.microsoft.com/en-us/download/details.aspx?id=35580" href="http://www.microsoft.com/en-us/download/details.aspx?id=35580">http://www.microsoft.com/en-us/download/details.aspx?id=35580</a></p>
        <p>
Now I’d love to have a single download for them all…. <img class="wlEmoticon wlEmoticon-smile" style="border-top-style: none; border-left-style: none; border-bottom-style: none; border-right-style: none" alt="Smile" src="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/SQL-2012-SP1-Released-and-Feature-Pack-S_1381D/wlEmoticon-smile_2.png" /></p>
        <img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=4578714e-fffd-40bf-85f4-22c6dc8233dc" />
      </body>
      <title>SQL 2012: SP1 Released and Feature Pack SP1</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,4578714e-fffd-40bf-85f4-22c6dc8233dc.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2012/11/13/SQL2012SP1ReleasedAndFeaturePackSP1.aspx</link>
      <pubDate>Tue, 13 Nov 2012 11:17:18 GMT</pubDate>
      <description>&lt;p&gt;
Hi folks, I’m just blown away by all the goodies in these 2 releases
&lt;/p&gt;
&lt;p&gt;
1) the SP1
&lt;/p&gt;
&lt;p&gt;
2) the Feature Pack SP1 
&lt;/p&gt;
&lt;p&gt;
Both have some pretty big improvements, especially around the SharePoint 2013 &amp;lt;-&amp;gt;
SQL scenario and pivot tables, analysis, mining etc.
&lt;/p&gt;
&lt;p&gt;
There’s even SQL Services that continuously copy data from Oracle to SQL – this I’ll
have to try on my next BizTalk project.
&lt;/p&gt;
&lt;p&gt;
Check it out - &lt;a title="http://www.microsoft.com/en-us/download/details.aspx?id=35580" href="http://www.microsoft.com/en-us/download/details.aspx?id=35580"&gt;http://www.microsoft.com/en-us/download/details.aspx?id=35580&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Now I’d love to have a single download for them all…. &lt;img class="wlEmoticon wlEmoticon-smile" style="border-top-style: none; border-left-style: none; border-bottom-style: none; border-right-style: none" alt="Smile" src="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/SQL-2012-SP1-Released-and-Feature-Pack-S_1381D/wlEmoticon-smile_2.png"&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=4578714e-fffd-40bf-85f4-22c6dc8233dc" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,4578714e-fffd-40bf-85f4-22c6dc8233dc.aspx</comments>
      <category>BizTalk</category>
      <category>General</category>
      <category>SharePoint</category>
      <category>SharePoint/2013</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=8a77d66e-fbf2-4b35-a9ff-b14dc8e040e0</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,8a77d66e-fbf2-4b35-a9ff-b14dc8e040e0.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <georss:point>0 0</georss:point>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,8a77d66e-fbf2-4b35-a9ff-b14dc8e040e0.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=8a77d66e-fbf2-4b35-a9ff-b14dc8e040e0</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Here's something I go this morning which I think is a SharePoint error:
</p>
        <img border="0" src="http://blogs.breeze.net/mickb/content/binary/copthis.JPG" />
        <img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=8a77d66e-fbf2-4b35-a9ff-b14dc8e040e0" />
      </body>
      <title>SP2010: Good Morning SharePoint - error 2613 I think.</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,8a77d66e-fbf2-4b35-a9ff-b14dc8e040e0.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2012/09/18/SP2010GoodMorningSharePointError2613IThink.aspx</link>
      <pubDate>Tue, 18 Sep 2012 00:53:25 GMT</pubDate>
      <description>&lt;p&gt;
Here's something I go this morning which I think is a SharePoint error:
&lt;/p&gt;
&lt;img border="0" src="http://blogs.breeze.net/mickb/content/binary/copthis.JPG"&gt;&lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=8a77d66e-fbf2-4b35-a9ff-b14dc8e040e0" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,8a77d66e-fbf2-4b35-a9ff-b14dc8e040e0.aspx</comments>
      <category>SharePoint</category>
      <category>SharePoint/2010</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=a91cb000-e8ab-4555-b075-1d8e0b1ae2d6</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,a91cb000-e8ab-4555-b075-1d8e0b1ae2d6.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,a91cb000-e8ab-4555-b075-1d8e0b1ae2d6.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=a91cb000-e8ab-4555-b075-1d8e0b1ae2d6</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I recently ran into an interesting one while building some InfoPath forms for SP2010/2013
forms services.
</p>
        <p>
I wanted to return <strong>some Rich Text (XHTML) </strong>fields back from a WCF
WebService call.
</p>
        <p>
I was at the point as a developer, where I couldn’t even say ‘<strong>Works on my
machine…</strong>’.
</p>
        <p>
The problem was – no matter what I tried, I would always have *plain text* and no
‘richness’ of the Rich Text. Didn’t work for me.
</p>
        <p>
So I have:
</p>
        <p>
1) a basic WCF Web service – running on my dev environment.
</p>
        <p>
2) an InfoPath Form that makes the call and displays the results.
</p>
        <p>
          <strong>The WCF Service:</strong>
        </p>
        <p>
          <a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/InfoPath-Returning-RichText-from-a-WCF-S_11FDD/image_4.png">
            <img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/InfoPath-Returning-RichText-from-a-WCF-S_11FDD/image_thumb_1.png" width="358" height="310" />
          </a>
        </p>
        <p>
This is the field that I eventually want to return as RichText to InfoPath.
</p>
        <p>
Here’s the Service Method code (which basically goes into a file and returns back
a list of clauses) – just focus on the <strong>CONTENT = …GetXHTMLRichText(…)</strong></p>
        <p>
          <a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/InfoPath-Returning-RichText-from-a-WCF-S_11FDD/image_6.png">
            <img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/InfoPath-Returning-RichText-from-a-WCF-S_11FDD/image_thumb_2.png" width="561" height="401" />
          </a>
        </p>
        <p>
 
</p>
        <p>
          <strong>InfoPath and Returning a RichTextField<br /></strong>2 things need to happen for this to work.
</p>
        <p>
1. When InfoPath adds the WCF Service to the form, it needs to ‘detect’ the field
correctly when it build the underlying schema.<br /><br /><a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/InfoPath-Returning-RichText-from-a-WCF-S_11FDD/image_8.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/InfoPath-Returning-RichText-from-a-WCF-S_11FDD/image_thumb_3.png" width="161" height="158" /></a><br /><br /><strong>You need (nb – ‘Content’ is my field name):<br /></strong>&lt;xs:element minOccurs="0" name="<strong>Content</strong>" nillable="true"&gt;<br />
               
&lt;xs:complexType mixed='true'&gt;<br />
                   
&lt;xs:sequence&gt;<br />
                       
&lt;xs:any minOccurs="0" processContents="lax" maxOccurs="unbounded" namespace="<a href="http://www.w3.org/1999/xhtml&quot;">http://www.w3.org/1999/xhtml"</a>&gt;&lt;/xs:any&gt;<br />
                   
&lt;/xs:sequence&gt;<br />
               
&lt;/xs:complexType&gt;
</p>
        <p>
&lt;/xs:element&gt;<br /><br />
Note the namespace on the ANY element above – this is the winner to tell InfoPath
that this is a richtext field.<br /></p>
        <p>
2. When returning data via this field (in my case the ‘<strong>Content’</strong> field),
it needs to be in a certain shape, as in:<br /><code>&lt;Content xmlns=<a href="http://yournamespace">http://yournamespace</a>&gt;<br />
    &lt;span xmlns="http://www.w3.org/1999/xhtml"&gt;Rich text here&lt;/div&gt;<br />
&lt;/Content&gt;</code></p>
        <p>
          <br />
Your rich text content needs to be ‘wrapped’ for InfoPath to play nicely with it.
</p>
        <p>
This was the purpose of my <strong>GetXMLRichText</strong> method as
</p>
        <p>
          <a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/InfoPath-Returning-RichText-from-a-WCF-S_11FDD/image_10.png">
            <img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/InfoPath-Returning-RichText-from-a-WCF-S_11FDD/image_thumb_4.png" width="546" height="263" />
          </a>
        </p>
        <p>
 
</p>
        <p>
          <strong>The gotcha</strong>:
</p>
        <p>
When I pointed InfoPath at my webservice and added a service reference I was getting
back a <strong>SimpleType</strong> for the field and not a <strong>ComplexType/Rich
Text field.</strong></p>
        <p>
The WCF Service WSDL was ‘almost there’ but not close enough:<br /><a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/InfoPath-Returning-RichText-from-a-WCF-S_11FDD/image_12.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/InfoPath-Returning-RichText-from-a-WCF-S_11FDD/image_thumb_5.png" width="669" height="257" /></a><br /><br />
The <strong>Content </strong>field described in a <strong>ComplexType</strong> which
is almost there, but not quite.
</p>
        <p>
It’s missing the &lt;xs:complexType <strong>mixed=’true’</strong>&gt;…&lt;xs:any <strong>namespace=’http://www.w3.org/1999/xhtml’ </strong>…/&gt;.
The rest were good.
</p>
        <p>
          <strong>The fix:</strong>
        </p>
        <p>
Cutting a long story short, the simplest way forward here was to simply edit the form
components that InfoPath had built and correct the schema. Then reuse the form.
</p>
        <p>
The form looks like this:
</p>
        <p>
          <a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/InfoPath-Returning-RichText-from-a-WCF-S_11FDD/image_18.png">
            <img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/InfoPath-Returning-RichText-from-a-WCF-S_11FDD/image_thumb_8.png" width="848" height="479" />
          </a>
        </p>
        <p>
 
</p>
        <p>
From the <strong>File-&gt;Publish-&gt;Export Source Files </strong>you can get to
the source and edit the correct schema (XSD) file.
</p>
        <p>
          <a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/InfoPath-Returning-RichText-from-a-WCF-S_11FDD/image_20.png">
            <img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/InfoPath-Returning-RichText-from-a-WCF-S_11FDD/image_thumb_9.png" width="483" height="140" />
          </a>
          <br />
Close the form down in InfoPath (or you may even need to close InfoPath) to edit the
Schema.
</p>
        <p>
          <a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/InfoPath-Returning-RichText-from-a-WCF-S_11FDD/image_22.png">
            <img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/InfoPath-Returning-RichText-from-a-WCF-S_11FDD/image_thumb_10.png" width="666" height="463" />
          </a>
        </p>
        <p>
You may need to hunt through a few of them to find the right one. My file was <strong>GetKCCTerms12.xsd </strong></p>
        <p>
Modify, save and close that file.
</p>
        <p>
Right click on <strong>manifest.xsf –&gt; Design </strong>to launch InfoPath and then
select <strong>Save As</strong> to work with it as *.XSN form (*.xsn files are just
CABs with all these files inside)
</p>
        <p>
          <a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/InfoPath-Returning-RichText-from-a-WCF-S_11FDD/image_24.png">
            <img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/InfoPath-Returning-RichText-from-a-WCF-S_11FDD/image_thumb_11.png" width="647" height="74" />
          </a>
        </p>
        <p>
The final result as viewed from an InfoPath form – notice the bolding sent through.
</p>
        <p>
Enjoy,
</p>
        <p>
Mick.
</p>
        <img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=a91cb000-e8ab-4555-b075-1d8e0b1ae2d6" />
      </body>
      <title>InfoPath: Returning RichText from a WCF Service to a Form</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,a91cb000-e8ab-4555-b075-1d8e0b1ae2d6.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2012/08/30/InfoPathReturningRichTextFromAWCFServiceToAForm.aspx</link>
      <pubDate>Thu, 30 Aug 2012 11:25:47 GMT</pubDate>
      <description>&lt;p&gt;
I recently ran into an interesting one while building some InfoPath forms for SP2010/2013
forms services.
&lt;/p&gt;
&lt;p&gt;
I wanted to return &lt;strong&gt;some Rich Text (XHTML) &lt;/strong&gt;fields back from a WCF
WebService call.
&lt;/p&gt;
&lt;p&gt;
I was at the point as a developer, where I couldn’t even say ‘&lt;strong&gt;Works on my
machine…&lt;/strong&gt;’.
&lt;/p&gt;
&lt;p&gt;
The problem was – no matter what I tried, I would always have *plain text* and no
‘richness’ of the Rich Text. Didn’t work for me.
&lt;/p&gt;
&lt;p&gt;
So I have:
&lt;/p&gt;
&lt;p&gt;
1) a basic WCF Web service – running on my dev environment.
&lt;/p&gt;
&lt;p&gt;
2) an InfoPath Form that makes the call and displays the results.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;The WCF Service:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/InfoPath-Returning-RichText-from-a-WCF-S_11FDD/image_4.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/InfoPath-Returning-RichText-from-a-WCF-S_11FDD/image_thumb_1.png" width="358" height="310"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
This is the field that I eventually want to return as RichText to InfoPath.
&lt;/p&gt;
&lt;p&gt;
Here’s the Service Method code (which basically goes into a file and returns back
a list of clauses) – just focus on the &lt;strong&gt;CONTENT = …GetXHTMLRichText(…)&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/InfoPath-Returning-RichText-from-a-WCF-S_11FDD/image_6.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/InfoPath-Returning-RichText-from-a-WCF-S_11FDD/image_thumb_2.png" width="561" height="401"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;InfoPath and Returning a RichTextField&lt;br&gt;
&lt;/strong&gt;2 things need to happen for this to work.
&lt;/p&gt;
&lt;p&gt;
1. When InfoPath adds the WCF Service to the form, it needs to ‘detect’ the field
correctly when it build the underlying schema.&lt;br&gt;
&lt;br&gt;
&lt;a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/InfoPath-Returning-RichText-from-a-WCF-S_11FDD/image_8.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/InfoPath-Returning-RichText-from-a-WCF-S_11FDD/image_thumb_3.png" width="161" height="158"&gt;&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;
&lt;strong&gt;You need (nb – ‘Content’ is my field name):&lt;br&gt;
&lt;/strong&gt;&amp;lt;xs:element minOccurs="0" name="&lt;strong&gt;Content&lt;/strong&gt;" nillable="true"&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;xs:complexType mixed='true'&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;xs:sequence&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;xs:any minOccurs="0" processContents="lax" maxOccurs="unbounded" namespace="&lt;a href="http://www.w3.org/1999/xhtml&amp;quot;"&gt;http://www.w3.org/1999/xhtml"&lt;/a&gt;&amp;gt;&amp;lt;/xs:any&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;/xs:sequence&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;/xs:complexType&amp;gt;
&lt;/p&gt;
&lt;p&gt;
&amp;lt;/xs:element&amp;gt;&lt;br&gt;
&lt;br&gt;
Note the namespace on the ANY element above – this is the winner to tell InfoPath
that this is a richtext field.&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
2. When returning data via this field (in my case the ‘&lt;strong&gt;Content’&lt;/strong&gt; field),
it needs to be in a certain shape, as in:&lt;br&gt;
&lt;code&gt;&amp;lt;Content xmlns=&lt;a href="http://yournamespace"&gt;http://yournamespace&lt;/a&gt;&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;span xmlns="http://www.w3.org/1999/xhtml"&amp;gt;Rich text here&amp;lt;/div&amp;gt;&lt;br&gt;
&amp;lt;/Content&amp;gt;&lt;/code&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;br&gt;
Your rich text content needs to be ‘wrapped’ for InfoPath to play nicely with it.
&lt;/p&gt;
&lt;p&gt;
This was the purpose of my &lt;strong&gt;GetXMLRichText&lt;/strong&gt; method as
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/InfoPath-Returning-RichText-from-a-WCF-S_11FDD/image_10.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/InfoPath-Returning-RichText-from-a-WCF-S_11FDD/image_thumb_4.png" width="546" height="263"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;The gotcha&lt;/strong&gt;:
&lt;/p&gt;
&lt;p&gt;
When I pointed InfoPath at my webservice and added a service reference I was getting
back a &lt;strong&gt;SimpleType&lt;/strong&gt; for the field and not a &lt;strong&gt;ComplexType/Rich
Text field.&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
The WCF Service WSDL was ‘almost there’ but not close enough:&lt;br&gt;
&lt;a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/InfoPath-Returning-RichText-from-a-WCF-S_11FDD/image_12.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/InfoPath-Returning-RichText-from-a-WCF-S_11FDD/image_thumb_5.png" width="669" height="257"&gt;&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;
The &lt;strong&gt;Content &lt;/strong&gt;field described in a &lt;strong&gt;ComplexType&lt;/strong&gt; which
is almost there, but not quite.
&lt;/p&gt;
&lt;p&gt;
It’s missing the &amp;lt;xs:complexType &lt;strong&gt;mixed=’true’&lt;/strong&gt;&amp;gt;…&amp;lt;xs:any &lt;strong&gt;namespace=’http://www.w3.org/1999/xhtml’ &lt;/strong&gt;…/&amp;gt;.
The rest were good.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;The fix:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Cutting a long story short, the simplest way forward here was to simply edit the form
components that InfoPath had built and correct the schema. Then reuse the form.
&lt;/p&gt;
&lt;p&gt;
The form looks like this:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/InfoPath-Returning-RichText-from-a-WCF-S_11FDD/image_18.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/InfoPath-Returning-RichText-from-a-WCF-S_11FDD/image_thumb_8.png" width="848" height="479"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
From the &lt;strong&gt;File-&amp;gt;Publish-&amp;gt;Export Source Files &lt;/strong&gt;you can get to
the source and edit the correct schema (XSD) file.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/InfoPath-Returning-RichText-from-a-WCF-S_11FDD/image_20.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/InfoPath-Returning-RichText-from-a-WCF-S_11FDD/image_thumb_9.png" width="483" height="140"&gt;&lt;/a&gt;
&lt;br&gt;
Close the form down in InfoPath (or you may even need to close InfoPath) to edit the
Schema.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/InfoPath-Returning-RichText-from-a-WCF-S_11FDD/image_22.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/InfoPath-Returning-RichText-from-a-WCF-S_11FDD/image_thumb_10.png" width="666" height="463"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
You may need to hunt through a few of them to find the right one. My file was &lt;strong&gt;GetKCCTerms12.xsd &lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Modify, save and close that file.
&lt;/p&gt;
&lt;p&gt;
Right click on &lt;strong&gt;manifest.xsf –&amp;gt; Design &lt;/strong&gt;to launch InfoPath and then
select &lt;strong&gt;Save As&lt;/strong&gt; to work with it as *.XSN form (*.xsn files are just
CABs with all these files inside)
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/InfoPath-Returning-RichText-from-a-WCF-S_11FDD/image_24.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/InfoPath-Returning-RichText-from-a-WCF-S_11FDD/image_thumb_11.png" width="647" height="74"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
The final result as viewed from an InfoPath form – notice the bolding sent through.
&lt;/p&gt;
&lt;p&gt;
Enjoy,
&lt;/p&gt;
&lt;p&gt;
Mick.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=a91cb000-e8ab-4555-b075-1d8e0b1ae2d6" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,a91cb000-e8ab-4555-b075-1d8e0b1ae2d6.aspx</comments>
      <category>.NET Developer</category>
      <category>Dev</category>
      <category>SharePoint</category>
      <category>SharePoint/2010</category>
      <category>Tips</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=103e65c3-384b-4a16-8a22-3f34b95c35db</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,103e65c3-384b-4a16-8a22-3f34b95c35db.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,103e65c3-384b-4a16-8a22-3f34b95c35db.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=103e65c3-384b-4a16-8a22-3f34b95c35db</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
You know it’s a Friday when…who can spot the <strong>‘yes/no/cancel’</strong> buttons?
</p>
        <p>
          <a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/SharePoint-Form-Template-Upgrade_9C70/image_4.png">
            <img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/SharePoint-Form-Template-Upgrade_9C70/image_thumb_1.png" width="449" height="272" />
          </a>
        </p>
        <img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=103e65c3-384b-4a16-8a22-3f34b95c35db" />
      </body>
      <title>SharePoint: Form Template Upgrade</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,103e65c3-384b-4a16-8a22-3f34b95c35db.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2012/02/10/SharePointFormTemplateUpgrade.aspx</link>
      <pubDate>Fri, 10 Feb 2012 00:09:15 GMT</pubDate>
      <description>&lt;p&gt;
You know it’s a Friday when…who can spot the &lt;strong&gt;‘yes/no/cancel’&lt;/strong&gt; buttons?
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/SharePoint-Form-Template-Upgrade_9C70/image_4.png"&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://blogs.breeze.net/mickb/content/binary/Windows-Live-Writer/SharePoint-Form-Template-Upgrade_9C70/image_thumb_1.png" width="449" height="272"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=103e65c3-384b-4a16-8a22-3f34b95c35db" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,103e65c3-384b-4a16-8a22-3f34b95c35db.aspx</comments>
      <category>SharePoint</category>
      <category>SharePoint/2010</category>
      <category>Tips</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=6f73ff34-2490-4749-b23a-19aac2630ab7</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,6f73ff34-2490-4749-b23a-19aac2630ab7.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,6f73ff34-2490-4749-b23a-19aac2630ab7.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=6f73ff34-2490-4749-b23a-19aac2630ab7</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
While wrestling with SharePoint 2007 SP2 today, I got a great error message.
</p>
        <p>
“SharePoint Products and Technologies Configuration <strong>Wiza</strong>” – Wizzzzzaaaaaaaaahhhhhhh!<br />
(this sits nicely with Shazza, Mappa, Timmy, Kimmy, and on it goes…”)
</p>
        <p>
          <a href="http://blogs.breezetraining.com.au/mickb/content/binary/Windows-Live-Writer/SharePoint-2007-SP2Turns-AUSSIE_C1E0/image_2.png">
            <img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/binary/Windows-Live-Writer/SharePoint-2007-SP2Turns-AUSSIE_C1E0/image_thumb.png" width="487" height="250" />
          </a>
        </p>
        <p>
Now to sort the problem out…
</p>
        <img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=6f73ff34-2490-4749-b23a-19aac2630ab7" />
      </body>
      <title>SharePoint 2007 SP2–Turns AUSSIE!!!!</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,6f73ff34-2490-4749-b23a-19aac2630ab7.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2011/10/18/SharePoint2007SP2TurnsAUSSIE.aspx</link>
      <pubDate>Tue, 18 Oct 2011 02:52:55 GMT</pubDate>
      <description>&lt;p&gt;
While wrestling with SharePoint 2007 SP2 today, I got a great error message.
&lt;/p&gt;
&lt;p&gt;
“SharePoint Products and Technologies Configuration &lt;strong&gt;Wiza&lt;/strong&gt;” – Wizzzzzaaaaaaaaahhhhhhh!&lt;br&gt;
(this sits nicely with Shazza, Mappa, Timmy, Kimmy, and on it goes…”)
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.breezetraining.com.au/mickb/content/binary/Windows-Live-Writer/SharePoint-2007-SP2Turns-AUSSIE_C1E0/image_2.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/binary/Windows-Live-Writer/SharePoint-2007-SP2Turns-AUSSIE_C1E0/image_thumb.png" width="487" height="250"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Now to sort the problem out…
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=6f73ff34-2490-4749-b23a-19aac2630ab7" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,6f73ff34-2490-4749-b23a-19aac2630ab7.aspx</comments>
      <category>General</category>
      <category>SharePoint</category>
      <category>Tips</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=ea5deff5-3650-4065-98a9-0868ba53c655</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,ea5deff5-3650-4065-98a9-0868ba53c655.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,ea5deff5-3650-4065-98a9-0868ba53c655.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=ea5deff5-3650-4065-98a9-0868ba53c655</wfw:commentRss>
      <title>SharePoint 2010: Sydney Bootcamp a couple of seats left….</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,ea5deff5-3650-4065-98a9-0868ba53c655.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2011/07/04/SharePoint2010SydneyBootcampACoupleOfSeatsLeft.aspx</link>
      <pubDate>Mon, 04 Jul 2011 11:51:23 GMT</pubDate>
      <description>&lt;p&gt;
See you there folks…I’m coming up from the trenches to share what’s in the real world
with the class…content types, deployments etc.&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
Hope to see you there.
&lt;/p&gt;
&lt;table style="border-collapse: collapse; margin-left: -0.4pt; mso-yfti-tbllook: 1184; mso-padding-alt: 0cm 0cm 0cm 0cm" class="MsoNormalTable" border="0" cellspacing="0" cellpadding="0"&gt;
&lt;tbody&gt;
&lt;tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-row-margin-right: 2.9pt"&gt;
&lt;td style="padding-bottom: 0cm; padding-left: 5.4pt; width: 449.8pt; padding-right: 5.4pt; padding-top: 0cm" valign="top" width="600" colspan="3"&gt;
&lt;p style="text-align: center" class="MsoNormal" align="center"&gt;&lt;?xml:namespace prefix = o /&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/p&gt;
&lt;/td&gt;
&lt;td style="border-bottom: medium none; border-left: medium none; padding-bottom: 0cm; padding-left: 0cm; padding-right: 0cm; border-top: medium none; border-right: medium none; padding-top: 0cm; mso-cell-special: placeholder" width="4"&gt;
&lt;p class="MsoNormal"&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="mso-yfti-irow: 1"&gt;
&lt;td style="padding-bottom: 0cm; padding-left: 0cm; width: 2.5pt; padding-right: 0cm; padding-top: 0cm" width="3"&gt;
&lt;p class="MsoNormal"&gt;
&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;
&lt;/p&gt;
&lt;/td&gt;
&lt;td style="padding-bottom: 0cm; padding-left: 5.4pt; width: 163.8pt; padding-right: 5.4pt; padding-top: 0cm" valign="top" width="218"&gt;
&lt;p class="MsoNormal"&gt;
&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;
&lt;/p&gt;
&lt;/td&gt;
&lt;td style="padding-bottom: 0cm; padding-left: 5.4pt; width: 286pt; padding-right: 5.4pt; padding-top: 0cm" valign="top" width="381" colspan="2"&gt;
&lt;p class="MsoNormal"&gt;
&lt;a href="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SharePoint2010SydneyBootcampacoupleofse_13349/clip_image001_8.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image001" border="0" hspace="12" alt="clip_image001" src="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SharePoint2010SydneyBootcampacoupleofse_13349/clip_image001_thumb_2.jpg" width="107" height="138" v:shapes="Picture_x0020_1"&gt;&lt;/a&gt;&lt;span style="font-size: 12pt; mso-fareast-font-family: 'Times New Roman'"&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="mso-yfti-irow: 2; mso-row-margin-right: 2.9pt; mso-yfti-lastrow: yes"&gt;
&lt;td style="padding-bottom: 0cm; padding-left: 5.4pt; width: 449.8pt; padding-right: 5.4pt; padding-top: 0cm" valign="top" width="600" colspan="3"&gt;
&lt;p style="text-align: center" class="MsoNormal" align="center"&gt;
&lt;b&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: #e36c0a; font-size: 20pt"&gt;Sydney
| SharePoint 2010 Bootcamp&lt;/span&gt;&lt;/b&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p style="text-align: center" class="MsoNormal" align="center"&gt;
&lt;b&gt;“The best course I have done in years!”&lt;/b&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p style="text-align: center" class="MsoNormal" align="center"&gt;
&lt;b&gt;“A fantastic course. Mick really has depth of knowledge and is a very engaging
trainer”&lt;/b&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p style="text-align: center" class="MsoNormal" align="center"&gt;
&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p style="text-align: center" class="MsoNormal" align="center"&gt;
&lt;b&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: red; font-size: 14pt"&gt;REGISTER
TODAY - 4 seats left!&lt;/span&gt;&lt;/b&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p style="text-align: center" class="MsoNormal" align="center"&gt;
&lt;b&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: red; font-size: 12pt"&gt;Special
offer of 15% discount if book &amp;amp; pay before June 30&lt;sup&gt;th&lt;/sup&gt; 2011.&lt;/span&gt;&lt;/b&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p style="text-align: justify" class="MsoNormal"&gt;
&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p style="text-align: justify" class="MsoNormal"&gt;
&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p style="text-align: justify" class="MsoNormal"&gt;
&lt;b&gt;&lt;span style="font-family: 'Calibri','sans-serif'; font-size: 11pt"&gt;Overview &lt;/span&gt;&lt;/b&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p style="text-align: justify" class="MsoNormal"&gt;
&lt;span style="font-family: 'Calibri','sans-serif'; font-size: 11pt"&gt;This is &lt;/span&gt;&lt;a href="http://www.breeze.net/Training/default.aspx?PermID=8cedaaba-0607-45b3-b6ce-d63cc8296550" target="_blank"&gt;a &lt;span style="font-family: 'Calibri','sans-serif'; font-size: 11pt"&gt;5-day
bootcamp&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: 'Calibri','sans-serif'; font-size: 11pt"&gt; designed
for both IT Professionals and Developers packed with fun and technical training to
explore the features of SharePoint 2010 ‘out of the box’. &lt;/span&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p style="text-align: justify" class="MsoNormal"&gt;
&amp;nbsp;&lt;span style="font-family: 'Calibri','sans-serif'; font-size: 11pt"&gt;At course
completion students will be able to upgrade their SharePoint V3 sites/portals to SharePoint
2010, to implement and extend Microsoft Office client side solutions, and also implement
custom workflows developed in Visual Studio. &lt;/span&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p style="text-align: justify" class="MsoNormal"&gt;
&amp;nbsp;&lt;span style="font-family: 'Calibri','sans-serif'; font-size: 11pt"&gt;They’ll be
equipped to care for their SharePoint farm, back it up and restore it, and set up
and configure SharePoint 2010 infrastructure. Architecting the portal and sub-sites
layouts is streamlined using best strategies and known best practices within the SharePoint
space. &lt;/span&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p style="text-align: justify" class="MsoNormal"&gt;
&amp;nbsp;&lt;span style="font-family: 'Calibri','sans-serif'; font-size: 11pt"&gt;Students
will create custom WebParts and SharePoint customisations easily, as well as site
wide features, event handlers and InfoPath Forms based solutions. They will also explore
Excel Services and Business Intelligence Offerings.&lt;/span&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p style="text-align: justify" class="MsoNormal"&gt;
&amp;nbsp;&lt;span style="font-family: 'Calibri','sans-serif'; font-size: 11pt"&gt;Be ready
to roll up your sleeves and start your adventure here!&lt;/span&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p style="text-align: justify" class="MsoNormal"&gt;
&lt;b&gt;&lt;span style="font-family: 'Calibri','sans-serif'; font-size: 11pt"&gt;Date:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: 'Calibri','sans-serif'; font-size: 11pt"&gt;Monday
25 – Friday 29 July 2011&lt;br&gt;
&lt;/span&gt;&lt;b&gt;&lt;span style="font-family: 'Calibri','sans-serif'; font-size: 11pt"&gt;Instructor:&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: 'Calibri','sans-serif'; font-size: 11pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;a href="http://blogs.breezetraining.com.au/mickb/" target="_blank"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; font-size: 11pt"&gt;Mick
Badran – MVP&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: 'Calibri','sans-serif'; font-size: 11pt"&gt; 
&lt;br&gt;
&lt;/span&gt;&lt;b&gt;&lt;span style="font-family: 'Calibri','sans-serif'; font-size: 11pt"&gt;Location:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: 'Calibri','sans-serif'; font-size: 11pt"&gt;Breeze
Office 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-family: 'Calibri','sans-serif'; font-size: 11pt"&gt;Edgecliff
Court, 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
Suite 5a 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-family: 'Calibri','sans-serif'; font-size: 11pt"&gt;2
New McLean Street, &lt;/span&gt;&lt;span style="font-family: 'Calibri','sans-serif'; font-size: 11pt"&gt;Edgecliff
NSW 2027&lt;/span&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p style="text-align: justify" class="MsoNormal"&gt;
&lt;b&gt;&lt;span style="font-family: 'Calibri','sans-serif'; font-size: 11pt"&gt;Time:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: 'Calibri','sans-serif'; font-size: 11pt"&gt;8.30am
– 4.30pm 
&lt;br&gt;
&lt;/span&gt;&lt;b&gt;&lt;span style="font-family: 'Calibri','sans-serif'; font-size: 11pt"&gt;Duration:&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: 'Calibri','sans-serif'; font-size: 11pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
5 Days 
&lt;br&gt;
&lt;/span&gt;&lt;b&gt;&lt;span style="font-family: 'Calibri','sans-serif'; font-size: 11pt"&gt;Course
Price:&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: 'Calibri','sans-serif'; font-size: 11pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
$3,450.00 + GST&lt;/span&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/p&gt;
&lt;p style="text-align: justify" class="MsoNormal"&gt;
&lt;b&gt;&lt;u&gt;&lt;span style="font-size: 12pt"&gt;Register NOW: &lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;b&gt;&lt;u&gt;&lt;span style="font-family: 'Calibri','sans-serif'; font-size: 12pt"&gt;Emmav(AT)breeze(DOT)net(NO
DOT)&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;
&lt;/p&gt;
&lt;/td&gt;
&lt;td style="border-bottom: medium none; border-left: medium none; padding-bottom: 0cm; padding-left: 0cm; padding-right: 0cm; border-top: medium none; border-right: medium none; padding-top: 0cm; mso-cell-special: placeholder" width="4"&gt;
&lt;p class="MsoNormal"&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="border-bottom: medium none; border-left: medium none; border-top: medium none; border-right: medium none" width="3"&gt;
&lt;/td&gt;
&lt;td style="border-bottom: medium none; border-left: medium none; border-top: medium none; border-right: medium none" width="218"&gt;
&lt;/td&gt;
&lt;td style="border-bottom: medium none; border-left: medium none; border-top: medium none; border-right: medium none" width="378"&gt;
&lt;/td&gt;
&lt;td style="border-bottom: medium none; border-left: medium none; border-top: medium none; border-right: medium none" width="4"&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p class="MsoNormal"&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=ea5deff5-3650-4065-98a9-0868ba53c655" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,ea5deff5-3650-4065-98a9-0868ba53c655.aspx</comments>
      <category>Events</category>
      <category>SharePoint</category>
      <category>SharePoint/2010</category>
      <category>Training</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=8f07056a-79e6-4f1a-bea9-46243f13a2a5</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,8f07056a-79e6-4f1a-bea9-46243f13a2a5.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,8f07056a-79e6-4f1a-bea9-46243f13a2a5.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=8f07056a-79e6-4f1a-bea9-46243f13a2a5</wfw:commentRss>
      <slash:comments>3</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Firstly thanks for all that attended my 5pm - ‘fireside’ session.
</p>
        <p>
I definitely was a first for me having a session so late in the day. I took my shoes
off, wiggled my toes and got into it up on stage.
</p>
        <p>
The session was pretty light and easy to follow along as to get bogged down into the
deep technicalities of data storage within SharePoint was going to put all to sleep.
</p>
        <p>
During the session I spoke about (&amp; demo-ed) each approach from Site/Web Property
bags, Custom Service Apps, Lists/External Lists Pros and Cons of each – all good.
</p>
        <p>
Here’s my slide deck guys – Enjoy.
</p>
        <p>
          <a href="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SharePoint2010AustralianSharePointConfer_14FF0/image_2.png">
            <img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SharePoint2010AustralianSharePointConfer_14FF0/image_thumb.png" width="644" height="484" />
          </a>
          <br />
        </p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:fb3a1972-4489-4e52-abe7-25a00bb07fdf:26c36510-90c1-4c62-a46c-ac5a52d38a40" class="wlWriterEditableSmartContent">
          <p>
            <a href="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SharePoint2010AustralianSharePointConfer_14FF0/Mick%20Badran%20-%20Storing%20the%20Data%20you%20NeedV2.0.pptx" target="_blank">SLIDE
DECK - PPTX</a>
          </p>
        </div>
        <p>
          <br />
          <font color="#ff0000">
            <strong>UPDATED – DEMOS USED IN THE PRESENTATION<br /><a href="/mickb/content/2011/SPConference_Demos.zip" target="_blank">DEMOS</a></strong>
          </font>
        </p>
        <img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=8f07056a-79e6-4f1a-bea9-46243f13a2a5" />
      </body>
      <title>SharePoint 2010: Australian SharePoint Conference 2011</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,8f07056a-79e6-4f1a-bea9-46243f13a2a5.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2011/03/09/SharePoint2010AustralianSharePointConference2011.aspx</link>
      <pubDate>Wed, 09 Mar 2011 12:53:37 GMT</pubDate>
      <description>&lt;p&gt;
Firstly thanks for all that attended my 5pm - ‘fireside’ session.
&lt;/p&gt;
&lt;p&gt;
I definitely was a first for me having a session so late in the day. I took my shoes
off, wiggled my toes and got into it up on stage.
&lt;/p&gt;
&lt;p&gt;
The session was pretty light and easy to follow along as to get bogged down into the
deep technicalities of data storage within SharePoint was going to put all to sleep.
&lt;/p&gt;
&lt;p&gt;
During the session I spoke about (&amp;amp; demo-ed) each approach from Site/Web Property
bags, Custom Service Apps, Lists/External Lists Pros and Cons of each – all good.
&lt;/p&gt;
&lt;p&gt;
Here’s my slide deck guys – Enjoy.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SharePoint2010AustralianSharePointConfer_14FF0/image_2.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SharePoint2010AustralianSharePointConfer_14FF0/image_thumb.png" width="644" height="484"&gt;&lt;/a&gt; 
&lt;br&gt;
&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:fb3a1972-4489-4e52-abe7-25a00bb07fdf:26c36510-90c1-4c62-a46c-ac5a52d38a40" class="wlWriterEditableSmartContent"&gt;
&lt;p&gt;
&lt;a href="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SharePoint2010AustralianSharePointConfer_14FF0/Mick%20Badran%20-%20Storing%20the%20Data%20you%20NeedV2.0.pptx" target="_blank"&gt;SLIDE
DECK - PPTX&lt;/a&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;
&lt;br&gt;
&lt;font color="#ff0000"&gt;&lt;strong&gt;UPDATED – DEMOS USED IN THE PRESENTATION&lt;br&gt;
&lt;a href="/mickb/content/2011/SPConference_Demos.zip" target="_blank"&gt;DEMOS&lt;/a&gt;&lt;/strong&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=8f07056a-79e6-4f1a-bea9-46243f13a2a5" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,8f07056a-79e6-4f1a-bea9-46243f13a2a5.aspx</comments>
      <category>Events</category>
      <category>Events/SPC2011</category>
      <category>SharePoint</category>
      <category>SharePoint/2010</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=a32b8b17-60ee-4234-a345-12cf355dd10c</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,a32b8b17-60ee-4234-a345-12cf355dd10c.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,a32b8b17-60ee-4234-a345-12cf355dd10c.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=a32b8b17-60ee-4234-a345-12cf355dd10c</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SharePoint2010XSharePointHealthScorewhat_EB0A/image_2.png">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SharePoint2010XSharePointHealthScorewhat_EB0A/image_thumb.png" width="491" height="222" />
          </a>
        </p>
        <p>
While looking into an authentication problem I discovered this ‘new’ header sent back
from a SharePoint 2010 machine.
</p>
        <p>
          <strong>Health Score? </strong>hmmm… I thought, what’s the max and what’s the min
values. Is this good/bad? or don’t care?
</p>
        <p>
So SharePoint 2010 has several Throttling features it used such as <strong>Client
Auto Back-off</strong> which predominately when triggered, prioritises HTTP requests
– such as HTTP POSTS are non delayed or throttled, but HTTP GETs are and new HTTP
connections are throttled.
</p>
        <p>
Here is one <a href="http://msdn.microsoft.com/en-us/library/ff764951.aspx" target="_blank">MS
page</a> that barely describes the Header – could do with updating that one.
</p>
        <p>
SharePoint 2010 determines the <strong>health of a server</strong> by initially looking
at <strong>system counters.</strong></p>
        <p>
          <strong>Let’s dig further….</strong>
        </p>
        <p>
Upon Reflecting the classic Microsoft.SharePoint.dll, there’s a Microsoft.SharePoint.Diagnostics
section which I thought would be a great place to start. I found a 
<br /><strong>SPWebFrontEndDiagnosticsPerformanceCounterProvider </strong>class (amongst
others there’s a SPDatabaseServer class as well)
</p>
        <p>
          <a href="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SharePoint2010XSharePointHealthScorewhat_EB0A/image_4.png">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SharePoint2010XSharePointHealthScorewhat_EB0A/image_thumb_1.png" width="567" height="350" />
          </a>
        </p>
        <p>
The line above <strong>collection[0] = ….</strong> refers to the following collection
</p>
        <p>
          <a href="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SharePoint2010XSharePointHealthScorewhat_EB0A/image_8.png">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SharePoint2010XSharePointHealthScorewhat_EB0A/image_thumb_3.png" width="554" height="83" />
          </a>
        </p>
        <p>
So putting all this together, the performance counters are:
</p>
        <ul>
          <li>
            <strong>WebAppPool - “SharePoint Foundation”</strong>
          </li>
          <ul>
            <li>
              <strong>Global Heap Size</strong>
            </li>
            <li>
              <strong>Native Heap Count</strong>
            </li>
            <li>
              <strong>Process ID</strong>
            </li>
          </ul>
          <li>
            <strong>OWSTimer &amp; W3WP</strong>
          </li>
          <ul>
            <li>
              <strong>Private Bytes</strong>
            </li>
          </ul>
          <li>
            <strong>Processor (_total)</strong>
          </li>
          <ul>
            <li>
              <strong>Processor Time</strong>
            </li>
          </ul>
        </ul>
        <p>
It appears the main class behind all of this is<br /><strong>SPHttpThrottleSettings </strong>where it appears that the throttling setting
is turned off in ‘Single-Server’ deployments.
</p>
        <p>
Digging further I came across the big-daddy class of it all (I think) - 
</p>
        <p>
          <a href="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SharePoint2010XSharePointHealthScorewhat_EB0A/image_10.png">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SharePoint2010XSharePointHealthScorewhat_EB0A/image_thumb_4.png" width="1028" height="644" />
          </a>
          <br />
          <strong>SPPerformanceInspector</strong> – notice the method <strong>IsInThrottling() </strong>and
the other is 2 constants that describe the displayed Throttled messages.
</p>
        <p>
I also noticed another method on this class <strong>SetupRegKeyHealthScore.</strong><br />
Where <strong>HKLM\SOFTWARE\Microsoft\Shared Tools\Web Server Extensions\14.0\WSS\ServerHealthScore</strong> is
the actual value you want to assign.
</p>
        <p>
          <a href="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SharePoint2010XSharePointHealthScorewhat_EB0A/image_12.png">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SharePoint2010XSharePointHealthScorewhat_EB0A/image_thumb_5.png" width="761" height="380" />
          </a>
        </p>
        <p>
A value of 0 is great, 10 is bad. Over 10 means the server will go into Throttling
(letting your clients know as well).
</p>
        <p>
There’s many other things here, but I’ve got to head swimming. 
</p>
        <p>
Hope we unraveled this mystery a little more.
</p>
        <p>
Mick.
</p>
        <img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=a32b8b17-60ee-4234-a345-12cf355dd10c" />
      </body>
      <title>SharePoint 2010: X-SharePointHealthScore what is this?</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,a32b8b17-60ee-4234-a345-12cf355dd10c.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2011/01/27/SharePoint2010XSharePointHealthScoreWhatIsThis.aspx</link>
      <pubDate>Thu, 27 Jan 2011 05:43:16 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SharePoint2010XSharePointHealthScorewhat_EB0A/image_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SharePoint2010XSharePointHealthScorewhat_EB0A/image_thumb.png" width="491" height="222"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
While looking into an authentication problem I discovered this ‘new’ header sent back
from a SharePoint 2010 machine.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Health Score? &lt;/strong&gt;hmmm… I thought, what’s the max and what’s the min
values. Is this good/bad? or don’t care?
&lt;/p&gt;
&lt;p&gt;
So SharePoint 2010 has several Throttling features it used such as &lt;strong&gt;Client
Auto Back-off&lt;/strong&gt; which predominately when triggered, prioritises HTTP requests
– such as HTTP POSTS are non delayed or throttled, but HTTP GETs are and new HTTP
connections are throttled.
&lt;/p&gt;
&lt;p&gt;
Here is one &lt;a href="http://msdn.microsoft.com/en-us/library/ff764951.aspx" target="_blank"&gt;MS
page&lt;/a&gt; that barely describes the Header – could do with updating that one.
&lt;/p&gt;
&lt;p&gt;
SharePoint 2010 determines the &lt;strong&gt;health of a server&lt;/strong&gt; by initially looking
at &lt;strong&gt;system counters.&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Let’s dig further….&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Upon Reflecting the classic Microsoft.SharePoint.dll, there’s a Microsoft.SharePoint.Diagnostics
section which I thought would be a great place to start. I found a 
&lt;br&gt;
&lt;strong&gt;SPWebFrontEndDiagnosticsPerformanceCounterProvider &lt;/strong&gt;class (amongst
others there’s a SPDatabaseServer class as well)
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SharePoint2010XSharePointHealthScorewhat_EB0A/image_4.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SharePoint2010XSharePointHealthScorewhat_EB0A/image_thumb_1.png" width="567" height="350"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
The line above &lt;strong&gt;collection[0] = ….&lt;/strong&gt; refers to the following collection
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SharePoint2010XSharePointHealthScorewhat_EB0A/image_8.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SharePoint2010XSharePointHealthScorewhat_EB0A/image_thumb_3.png" width="554" height="83"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
So putting all this together, the performance counters are:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;WebAppPool - “SharePoint Foundation”&lt;/strong&gt;
&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Global Heap Size&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Native Heap Count&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Process ID&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;
&lt;strong&gt;OWSTimer &amp;amp; W3WP&lt;/strong&gt;
&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Private Bytes&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;
&lt;strong&gt;Processor (_total)&lt;/strong&gt;
&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Processor Time&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;p&gt;
It appears the main class behind all of this is&lt;br&gt;
&lt;strong&gt;SPHttpThrottleSettings &lt;/strong&gt;where it appears that the throttling setting
is turned off in ‘Single-Server’ deployments.
&lt;/p&gt;
&lt;p&gt;
Digging further I came across the big-daddy class of it all (I think) - 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SharePoint2010XSharePointHealthScorewhat_EB0A/image_10.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SharePoint2010XSharePointHealthScorewhat_EB0A/image_thumb_4.png" width="1028" height="644"&gt;&lt;/a&gt; 
&lt;br&gt;
&lt;strong&gt;SPPerformanceInspector&lt;/strong&gt; – notice the method &lt;strong&gt;IsInThrottling() &lt;/strong&gt;and
the other is 2 constants that describe the displayed Throttled messages.
&lt;/p&gt;
&lt;p&gt;
I also noticed another method on this class &lt;strong&gt;SetupRegKeyHealthScore.&lt;/strong&gt;
&lt;br&gt;
Where &lt;strong&gt;HKLM\SOFTWARE\Microsoft\Shared Tools\Web Server Extensions\14.0\WSS\ServerHealthScore&lt;/strong&gt; is
the actual value you want to assign.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SharePoint2010XSharePointHealthScorewhat_EB0A/image_12.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SharePoint2010XSharePointHealthScorewhat_EB0A/image_thumb_5.png" width="761" height="380"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
A value of 0 is great, 10 is bad. Over 10 means the server will go into Throttling
(letting your clients know as well).
&lt;/p&gt;
&lt;p&gt;
There’s many other things here, but I’ve got to head swimming. 
&lt;/p&gt;
&lt;p&gt;
Hope we unraveled this mystery a little more.
&lt;/p&gt;
&lt;p&gt;
Mick.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=a32b8b17-60ee-4234-a345-12cf355dd10c" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,a32b8b17-60ee-4234-a345-12cf355dd10c.aspx</comments>
      <category>SharePoint</category>
      <category>SharePoint/2010</category>
      <category>Tips</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=9f08a8ad-7f84-49c8-8e4c-0048da4e730d</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,9f08a8ad-7f84-49c8-8e4c-0048da4e730d.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,9f08a8ad-7f84-49c8-8e4c-0048da4e730d.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=9f08a8ad-7f84-49c8-8e4c-0048da4e730d</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I recently came across a SharePoint Portal that previously was working a treat up
until Christmas (just gone) and then the client got this on their <strong>Create Site
Page</strong>:
</p>
        <p>
          <a href="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SharePoint2010StrangerthanS.whencreating_B071/image_2.png">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SharePoint2010StrangerthanS.whencreating_B071/image_thumb.png" width="595" height="235" />
          </a>
        </p>
        <p>
So the good old “Parameter name: key” error…that old chestnut I thought (like I had
any idea at that stage).<br /><strong>Null – </strong>is always an interesting thing. So something is going through
a collection and not finding the value, not that they should have tested for the existence
of the value first…but we’ll leave that for another story.
</p>
        <p>
Why this was happening now? I haven’t got to the bottom of it, could be an update?
security patch? SQL update? code somewhere? I find these things happen on the night
before an important release date.
</p>
        <p>
So after sheer luck of me just ‘doodling’ on the Create Site Page, this appears to
have fixed it:
</p>
        <p>
          <a href="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SharePoint2010StrangerthanS.whencreating_B071/image_4.png">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SharePoint2010StrangerthanS.whencreating_B071/image_thumb_1.png" width="1016" height="635" />
          </a>
        </p>
        <p>
From the highlighted area – just simply fill in the empty(null) search box EVEN though
we are <strong>Creating a Site here.</strong></p>
        <p>
Go figure…
</p>
        <p>
Do I add SharePoint to the Wonders of the World list?
</p>
        <img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=9f08a8ad-7f84-49c8-8e4c-0048da4e730d" />
      </body>
      <title>SharePoint 2010: Stranger than Strange error - “Key cannot be null.” when creating</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,9f08a8ad-7f84-49c8-8e4c-0048da4e730d.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2011/01/17/SharePoint2010StrangerThanStrangeErrorKeyCannotBeNullWhenCreating.aspx</link>
      <pubDate>Mon, 17 Jan 2011 01:33:00 GMT</pubDate>
      <description>&lt;p&gt;
I recently came across a SharePoint Portal that previously was working a treat up
until Christmas (just gone) and then the client got this on their &lt;strong&gt;Create Site
Page&lt;/strong&gt;:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SharePoint2010StrangerthanS.whencreating_B071/image_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SharePoint2010StrangerthanS.whencreating_B071/image_thumb.png" width="595" height="235"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
So the good old “Parameter name: key” error…that old chestnut I thought (like I had
any idea at that stage).&lt;br&gt;
&lt;strong&gt;Null – &lt;/strong&gt;is always an interesting thing. So something is going through
a collection and not finding the value, not that they should have tested for the existence
of the value first…but we’ll leave that for another story.
&lt;/p&gt;
&lt;p&gt;
Why this was happening now? I haven’t got to the bottom of it, could be an update?
security patch? SQL update? code somewhere? I find these things happen on the night
before an important release date.
&lt;/p&gt;
&lt;p&gt;
So after sheer luck of me just ‘doodling’ on the Create Site Page, this appears to
have fixed it:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SharePoint2010StrangerthanS.whencreating_B071/image_4.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SharePoint2010StrangerthanS.whencreating_B071/image_thumb_1.png" width="1016" height="635"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
From the highlighted area – just simply fill in the empty(null) search box EVEN though
we are &lt;strong&gt;Creating a Site here.&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Go figure…
&lt;/p&gt;
&lt;p&gt;
Do I add SharePoint to the Wonders of the World list?
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=9f08a8ad-7f84-49c8-8e4c-0048da4e730d" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,9f08a8ad-7f84-49c8-8e4c-0048da4e730d.aspx</comments>
      <category>SharePoint</category>
      <category>SharePoint/2010</category>
      <category>Tips</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=17cd1e6f-3d13-4026-af21-f1c81a9a959f</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,17cd1e6f-3d13-4026-af21-f1c81a9a959f.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,17cd1e6f-3d13-4026-af21-f1c81a9a959f.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=17cd1e6f-3d13-4026-af21-f1c81a9a959f</wfw:commentRss>
      <title>SharePoint 2010: Breeze SharePoint 2010 Bootcamp in Brisbane next week.</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,17cd1e6f-3d13-4026-af21-f1c81a9a959f.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2010/11/16/SharePoint2010BreezeSharePoint2010BootcampInBrisbaneNextWeek.aspx</link>
      <pubDate>Tue, 16 Nov 2010 22:55:16 GMT</pubDate>
      <description>&lt;p&gt;
Hi folks, I’ve got a lot of requests for when/where these are on, so we’re off and
running next week in Brisbane with 2 seats left.
&lt;/p&gt;
&lt;p&gt;
Just a quick blurb on the course - 
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="color: black"&gt;
&lt;br&gt;&lt;?xml:namespace prefix = o /&gt;
The Breeze SharePoint 2010 Bootcamp has been designed to provide just that. Our customers
asked for an in-depth, technical, customized course that, if they were to spend $$s
on just one SharePoint&amp;nbsp; 2010 course this year, would give them enough knowledge
of the technology to build real world solutions. 
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;span style="color: black"&gt;These bootcamps have been written for the ITPro &amp;amp; Developer
who need to upgrade their SharePoint skills, or are just starting out with SharePoint
2010. 
&lt;br&gt;
&lt;br&gt;
&lt;strong&gt;&lt;font color="#ff6600"&gt;&lt;a href="http://breeze.net/Training/default.aspx?PermID=8cedaaba-0607-45b3-b6ce-d63cc8296550" target="_blank"&gt;Check
them out HERE&lt;/a&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;img src="http://ts4.mm.bing.net/images/thumbnail.aspx?q=320867800943&amp;amp;id=a163a02067f613fcacb74bd68a903635&amp;amp;url=http%3a%2f%2f4.bp.blogspot.com%2f_o6smxmzPojI%2fS1czJ6NPOAI%2fAAAAAAAAAMI%2f-zrGL2BoXrY%2fs200%2fsharePoint2010logo.pn"&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=17cd1e6f-3d13-4026-af21-f1c81a9a959f" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,17cd1e6f-3d13-4026-af21-f1c81a9a959f.aspx</comments>
      <category>Events</category>
      <category>SharePoint</category>
      <category>SharePoint/2010</category>
      <category>Training</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=a125981c-195d-453f-8faf-947efac84e14</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,a125981c-195d-453f-8faf-947efac84e14.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,a125981c-195d-453f-8faf-947efac84e14.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=a125981c-195d-453f-8faf-947efac84e14</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Here’s something that I hope to save a few hours to you – <strong>InfoPath Forms Services.</strong></p>
        <p>
I recently ran into this dreaded error – "<a href="http://stackoverflow.com/questions/1237956/infopath-forms-services-is-not-turned-on">InfoPath
Forms Services is not turned on</a>” when trying to configure it from within SharePoint
Central Administration –&gt; General Application Settings.
</p>
        <p>
          <strong>Forms Services</strong> is part of <strong>SharePoint Enterprise Services</strong> (usually
activated via a Farm/Web Application/Site Collection or Site feature) and it relies
upon the <strong>State Service.</strong></p>
        <p>
So on our intranet, we’re revamping some InfoPath forms that were working in SP2007
and a new SP2010 using the database detach/attach method saw the intranet up and running…almost…except
for this <strong>InfoPath Forms Services.</strong></p>
        <p>
Most posts on the web talk about simply not having the feature enabled for either
a Site collection, and/or Central Admin (and various other red herrings in my case)<br /><a title="http://stackoverflow.com/questions/1237956/infopath-forms-services-is-not-turned-on" href="http://stackoverflow.com/questions/1237956/infopath-forms-services-is-not-turned-on">http://stackoverflow.com/questions/1237956/infopath-forms-services-is-not-turned-on</a><br /><a title="http://mundeep.wordpress.com/2009/02/17/infopath-forms-services-is-not-turned-on/" href="http://mundeep.wordpress.com/2009/02/17/infopath-forms-services-is-not-turned-on/">http://mundeep.wordpress.com/2009/02/17/infopath-forms-services-is-not-turned-on/</a></p>
        <p>
Basically my source of truth was <strong>SharePoint Manager 2010</strong> (great tool
from <a href="http://spm.codeplex.com/" target="_blank">CODEPLEX</a>) which allows
connections to SharePoint via the APIs as a standalone application (tip: make sure
you launch it in ‘run in administrator’ mode).<br /><br />
From here I saw that on my install I was <strong>missing</strong><strong>Forms Services </strong>listed
in the <strong>Farm’s Service Applications<br /><a href="http://blogs.breezetraining.com.au/mickb/content/2010/SharePoint2010InfoPathFormsServicesisnot_12734/image.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/2010/SharePoint2010InfoPathFormsServicesisnot_12734/image_thumb.png" width="635" height="484" /></a></strong></p>
        <p>
I initially thought it was some permissions issue and that I couldn’t see the service
under that account (even though I was farm admin), so I launched and checked under
the installer account and got the same result.
</p>
        <p>
My next questions were: <strong>How does Forms Services become missing? How do you
manually install/enable it?</strong></p>
        <p>
In this case, I had a classroom SharePoint 2010 VM easily available and looking at
it through SharePoint Manager, low and behold the <strong>Forms Service </strong>service
was there!! Listed.
</p>
        <p>
The machine I was having trouble with was a standard clean install, that I <strong>didn’t </strong>automatically
run the <strong>Configuration Wizard</strong> on – as I wanted to have control over
the naming of DBs. That was pretty much the difference between the two machines.
</p>
        <p>
So I tried a few things:
</p>
        <p>
a) installing just the InfoPath Web Admin Feature - <strong>stsadm -o installfeature
-name IPFSAdminWeb –force </strong>and then activating it with <strong>stsadm -o activatefeature
-name IPFSAdminWeb -url </strong><a href="http://sp2010:10000"><strong>http://sp2010:10000</strong></a><strong> –force</strong> (no
luck, it just gave me the InfoPath config under the Central Admin)
</p>
        <p>
b) reran the configuration wizard
</p>
        <p>
c) repaired setup
</p>
        <p>
d) tried to run just the InfoPath Forms Services MSI from the install source.
</p>
        <p>
…all to no avail.
</p>
        <p>
          <strong>InfoPath Forms Services – </strong>now with ‘deeper’ integration with SharePoint
2010, an internal service but with no real apparent way of getting to it.
</p>
        <p>
          <strong>The Answer:</strong>
          <br />
I got thinking and I decided to attempt a <strong>backup of the Service from my VM
and restore just the Service to the intranet Farm</strong>.
</p>
        <p>
- <strong>Perform a backup of just the configuration</strong></p>
        <p>
          <a href="http://blogs.breezetraining.com.au/mickb/content/2010/SharePoint2010InfoPathFormsServicesisnot_12734/image_3.png">
            <img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/2010/SharePoint2010InfoPathFormsServicesisnot_12734/image_thumb_3.png" width="644" height="384" />
          </a>
        </p>
        <p>
          <a href="http://blogs.breezetraining.com.au/mickb/content/2010/SharePoint2010InfoPathFormsServicesisnot_12734/image_4.png">
            <img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/2010/SharePoint2010InfoPathFormsServicesisnot_12734/image_thumb_4.png" width="1010" height="114" />
          </a>
        </p>
        <p>
Then from there I did a restore (more in hope than anything) such that this process
would ‘inject’ the right settings into the Farm Database.
</p>
        <p>
          <a href="http://blogs.breezetraining.com.au/mickb/content/2010/SharePoint2010InfoPathFormsServicesisnot_12734/image_5.png">
            <img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/2010/SharePoint2010InfoPathFormsServicesisnot_12734/image_thumb_5.png" width="644" height="227" />
          </a>
        </p>
        <p>
At this point anything with <strong>InfoPath Forms Services </strong>on it was a bonus.
</p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
In any rate, here’s the backup file in ZIP format from my VM, that you can use to
restore if ever faced with a similar challenge :)
</p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:fb3a1972-4489-4e52-abe7-25a00bb07fdf:1545f6bf-7625-43c8-ab85-dfcc498b1099" class="wlWriterEditableSmartContent">
          <p>
            <a href="http://blogs.breezetraining.com.au/mickb/content/2010/SharePoint2010InfoPathFormsServicesisnot_12734/InfoPathFormsServices.zip" target="_blank">InfoPathFormsServices.ZIP</a>
          </p>
        </div>
        <img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=a125981c-195d-453f-8faf-947efac84e14" />
      </body>
      <title>SharePoint 2010: InfoPath Forms Services is not turned on</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,a125981c-195d-453f-8faf-947efac84e14.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2010/10/25/SharePoint2010InfoPathFormsServicesIsNotTurnedOn.aspx</link>
      <pubDate>Mon, 25 Oct 2010 10:02:10 GMT</pubDate>
      <description>&lt;p&gt;
Here’s something that I hope to save a few hours to you – &lt;strong&gt;InfoPath Forms Services.&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
I recently ran into this dreaded error – "&lt;a href="http://stackoverflow.com/questions/1237956/infopath-forms-services-is-not-turned-on"&gt;InfoPath
Forms Services is not turned on&lt;/a&gt;” when trying to configure it from within SharePoint
Central Administration –&amp;gt; General Application Settings.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Forms Services&lt;/strong&gt; is part of &lt;strong&gt;SharePoint Enterprise Services&lt;/strong&gt; (usually
activated via a Farm/Web Application/Site Collection or Site feature) and it relies
upon the &lt;strong&gt;State Service.&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
So on our intranet, we’re revamping some InfoPath forms that were working in SP2007
and a new SP2010 using the database detach/attach method saw the intranet up and running…almost…except
for this &lt;strong&gt;InfoPath Forms Services.&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Most posts on the web talk about simply not having the feature enabled for either
a Site collection, and/or Central Admin (and various other red herrings in my case)&lt;br&gt;
&lt;a title="http://stackoverflow.com/questions/1237956/infopath-forms-services-is-not-turned-on" href="http://stackoverflow.com/questions/1237956/infopath-forms-services-is-not-turned-on"&gt;http://stackoverflow.com/questions/1237956/infopath-forms-services-is-not-turned-on&lt;/a&gt;
&lt;br&gt;
&lt;a title="http://mundeep.wordpress.com/2009/02/17/infopath-forms-services-is-not-turned-on/" href="http://mundeep.wordpress.com/2009/02/17/infopath-forms-services-is-not-turned-on/"&gt;http://mundeep.wordpress.com/2009/02/17/infopath-forms-services-is-not-turned-on/&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Basically my source of truth was &lt;strong&gt;SharePoint Manager 2010&lt;/strong&gt; (great tool
from &lt;a href="http://spm.codeplex.com/" target="_blank"&gt;CODEPLEX&lt;/a&gt;) which allows
connections to SharePoint via the APIs as a standalone application (tip: make sure
you launch it in ‘run in administrator’ mode).&lt;br&gt;
&lt;br&gt;
From here I saw that on my install I was &lt;strong&gt;missing&lt;/strong&gt; &lt;strong&gt;Forms Services &lt;/strong&gt;listed
in the &lt;strong&gt;Farm’s Service Applications&lt;br&gt;
&lt;a href="http://blogs.breezetraining.com.au/mickb/content/2010/SharePoint2010InfoPathFormsServicesisnot_12734/image.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/2010/SharePoint2010InfoPathFormsServicesisnot_12734/image_thumb.png" width="635" height="484"&gt;&lt;/a&gt; &lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
I initially thought it was some permissions issue and that I couldn’t see the service
under that account (even though I was farm admin), so I launched and checked under
the installer account and got the same result.
&lt;/p&gt;
&lt;p&gt;
My next questions were: &lt;strong&gt;How does Forms Services become missing? How do you
manually install/enable it?&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
In this case, I had a classroom SharePoint 2010 VM easily available and looking at
it through SharePoint Manager, low and behold the &lt;strong&gt;Forms Service &lt;/strong&gt;service
was there!! Listed.
&lt;/p&gt;
&lt;p&gt;
The machine I was having trouble with was a standard clean install, that I &lt;strong&gt;didn’t &lt;/strong&gt;automatically
run the &lt;strong&gt;Configuration Wizard&lt;/strong&gt; on – as I wanted to have control over
the naming of DBs. That was pretty much the difference between the two machines.
&lt;/p&gt;
&lt;p&gt;
So I tried a few things:
&lt;/p&gt;
&lt;p&gt;
a) installing just the InfoPath Web Admin Feature - &lt;strong&gt;stsadm -o installfeature
-name IPFSAdminWeb –force &lt;/strong&gt;and then activating it with &lt;strong&gt;stsadm -o activatefeature
-name IPFSAdminWeb -url &lt;/strong&gt;&lt;a href="http://sp2010:10000"&gt;&lt;strong&gt;http://sp2010:10000&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt; –force&lt;/strong&gt; (no
luck, it just gave me the InfoPath config under the Central Admin)
&lt;/p&gt;
&lt;p&gt;
b) reran the configuration wizard
&lt;/p&gt;
&lt;p&gt;
c) repaired setup
&lt;/p&gt;
&lt;p&gt;
d) tried to run just the InfoPath Forms Services MSI from the install source.
&lt;/p&gt;
&lt;p&gt;
…all to no avail.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;InfoPath Forms Services – &lt;/strong&gt;now with ‘deeper’ integration with SharePoint
2010, an internal service but with no real apparent way of getting to it.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;The Answer:&lt;/strong&gt;
&lt;br&gt;
I got thinking and I decided to attempt a &lt;strong&gt;backup of the Service from my VM
and restore just the Service to the intranet Farm&lt;/strong&gt;.
&lt;/p&gt;
&lt;p&gt;
- &lt;strong&gt;Perform a backup of just the configuration&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.breezetraining.com.au/mickb/content/2010/SharePoint2010InfoPathFormsServicesisnot_12734/image_3.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/2010/SharePoint2010InfoPathFormsServicesisnot_12734/image_thumb_3.png" width="644" height="384"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.breezetraining.com.au/mickb/content/2010/SharePoint2010InfoPathFormsServicesisnot_12734/image_4.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/2010/SharePoint2010InfoPathFormsServicesisnot_12734/image_thumb_4.png" width="1010" height="114"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Then from there I did a restore (more in hope than anything) such that this process
would ‘inject’ the right settings into the Farm Database.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.breezetraining.com.au/mickb/content/2010/SharePoint2010InfoPathFormsServicesisnot_12734/image_5.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/2010/SharePoint2010InfoPathFormsServicesisnot_12734/image_thumb_5.png" width="644" height="227"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
At this point anything with &lt;strong&gt;InfoPath Forms Services &lt;/strong&gt;on it was a bonus.
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
In any rate, here’s the backup file in ZIP format from my VM, that you can use to
restore if ever faced with a similar challenge :)
&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:fb3a1972-4489-4e52-abe7-25a00bb07fdf:1545f6bf-7625-43c8-ab85-dfcc498b1099" class="wlWriterEditableSmartContent"&gt;
&lt;p&gt;
&lt;a href="http://blogs.breezetraining.com.au/mickb/content/2010/SharePoint2010InfoPathFormsServicesisnot_12734/InfoPathFormsServices.zip" target="_blank"&gt;InfoPathFormsServices.ZIP&lt;/a&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=a125981c-195d-453f-8faf-947efac84e14" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,a125981c-195d-453f-8faf-947efac84e14.aspx</comments>
      <category>SharePoint</category>
      <category>SharePoint/2010</category>
      <category>Tips</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=ea43f413-7177-4ddf-8acd-fd3c410d5078</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,ea43f413-7177-4ddf-8acd-fd3c410d5078.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,ea43f413-7177-4ddf-8acd-fd3c410d5078.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=ea43f413-7177-4ddf-8acd-fd3c410d5078</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Today I decided to crack open the BTS 2010 SharePoint WS Adapter to see if it takes
advantage of the great new interfaces exposed by SharePoint 2010, specifically <strong>Microsoft.SharePoint.Client.dll
and Microsoft.SharePoint.Client.Runtime.dll</strong>.
</p>
        <p>
At a glance, the benefits of this new Client APIs are:
</p>
        <ol>
          <li>
Runs on a non SharePoint installed box.</li>
          <li>
Lightweight and flexible – only get back what you ask for. As opposed to the classic
SP Server API that populates the SPWeb collection (for e.g.) only if you just want
the <strong>title</strong> field and not 10MBs worth of other data.</li>
          <li>
Batch approach – load up several commands and batch them over the wire when needed.</li>
          <li>
Supports both read/write from the client back to SP Server.</li>
          <li>
Uses XML and JSON over the wire – small and fast.</li>
          <li>
We can’t do *everything* we can on the Server Side – e.g. Service Application management,
i.e. kicking off a search index crawl.</li>
        </ol>
        <p>
A little piccy of what’s going on:
</p>
        <p>
          <a href="http://blogs.breezetraining.com.au/mickb/content/2010/BizTalk2010MusingofthenewSharePoint2010W_C651/image.png">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/2010/BizTalk2010MusingofthenewSharePoint2010W_C651/image_thumb.png" width="486" height="363" />
          </a>
        </p>
        <p>
Some classic piece of code to achieve document library reading:
</p>
        <strong>
        </strong>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9D7513F9-C04C-4721-824A-2B34F0212519:60e8dfb3-1382-4e2f-9b78-9a4d1ef447b2" class="wlWriterEditableSmartContent">
          <pre style=" width: 836px; height: 410px;background-color:White;overflow: auto;">
            <div>
              <!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->
              <span style="color: #008080;"> 1</span>
              <span style="color: #0000FF;">static</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #0000FF;">void</span>
              <span style="color: #000000;"> Main(</span>
              <span style="color: #0000FF;">string</span>
              <span style="color: #000000;">[]
args) </span>
              <span style="color: #008080;"> 2</span>
              <span style="color: #000000;"> { </span>
              <span style="color: #008080;"> 3</span>
              <span style="color: #000000;"> ClientContext
ctx </span>
              <span style="color: #000000;">=</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #0000FF;">new</span>
              <span style="color: #000000;"> ClientContext(</span>
              <span style="color: #800000;">"</span>
              <span style="color: #800000;">http://intranet</span>
              <span style="color: #800000;">"</span>
              <span style="color: #000000;">); </span>
              <span style="color: #008080;"> 4</span>
              <span style="color: #000000;"> Web
web </span>
              <span style="color: #000000;">=</span>
              <span style="color: #000000;"> ctx.Web; </span>
              <span style="color: #008080;"> 5</span>
              <span style="color: #000000;"> List
docs </span>
              <span style="color: #000000;">=</span>
              <span style="color: #000000;"> web.Lists.GetByTitle(</span>
              <span style="color: #800000;">"</span>
              <span style="color: #800000;">Shared
Documents</span>
              <span style="color: #800000;">"</span>
              <span style="color: #000000;">); </span>
              <span style="color: #008080;"> 6</span>
              <span style="color: #000000;"> ListItemCollection
items </span>
              <span style="color: #000000;">=</span>
              <span style="color: #000000;"> docs.GetItems(CamlQuery.CreateAllItemsQuery()); </span>
              <span style="color: #008080;"> 7</span>
              <span style="color: #000000;"> ctx.Load</span>
              <span style="color: #000000;">&lt;</span>
              <span style="color: #000000;">Web</span>
              <span style="color: #000000;">&gt;</span>
              <span style="color: #000000;">(web); </span>
              <span style="color: #008080;"> 8</span>
              <span style="color: #000000;"> ctx.Load(docs); </span>
              <span style="color: #008080;"> 9</span>
              <span style="color: #000000;"> ctx.Load(items); </span>
              <span style="color: #008080;">10</span>
              <span style="color: #000000;"> ctx.ExecuteQuery(); </span>
              <span style="color: #008080;">11</span>
              <span style="color: #000000;"> Console.WriteLine(</span>
              <span style="color: #800000;">"</span>
              <span style="color: #800000;">The
list has {0} items.</span>
              <span style="color: #800000;">"</span>
              <span style="color: #000000;">,
docs.ItemCount); </span>
              <span style="color: #008080;">12</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #0000FF;">foreach</span>
              <span style="color: #000000;"> (ListItem
item </span>
              <span style="color: #0000FF;">in</span>
              <span style="color: #000000;"> items) </span>
              <span style="color: #008080;">13</span>
              <span style="color: #000000;"> { </span>
              <span style="color: #008080;">14</span>
              <span style="color: #000000;"> Console.WriteLine(</span>
              <span style="color: #800000;">"</span>
              <span style="color: #800000;">Item:{0}</span>
              <span style="color: #800000;">"</span>
              <span style="color: #000000;">,
item[</span>
              <span style="color: #800000;">"</span>
              <span style="color: #800000;">Title</span>
              <span style="color: #800000;">"</span>
              <span style="color: #000000;">]); </span>
              <span style="color: #008080;">15</span>
              <span style="color: #000000;"> } </span>
              <span style="color: #008080;">16</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #008000;">//</span>
              <span style="color: #008000;">delete
an item. </span>
              <span style="color: #008080;">17</span>
              <span style="color: #008000;">
              </span>
              <span style="color: #008000;">//</span>
              <span style="color: #008000;">items[1].Update(); </span>
              <span style="color: #008080;">18</span>
              <span style="color: #008000;">
              </span>
              <span style="color: #008000;">//</span>
              <span style="color: #008000;">items[1].DeleteObject(); </span>
              <span style="color: #008080;">19</span>
              <span style="color: #008000;">
              </span>
              <span style="color: #008000;">//</span>
              <span style="color: #008000;">ctx.Load(items); </span>
              <span style="color: #008080;">20</span>
              <span style="color: #008000;">
              </span>
              <span style="color: #008000;">//</span>
              <span style="color: #008000;">ctx.ExecuteQuery();</span>
              <span style="color: #008000;">
              </span>
              <span style="color: #008080;">21</span>
              <span style="color: #008000;">
              </span>
              <span style="color: #000000;"> Console.ReadLine(); </span>
              <span style="color: #008080;">22</span>
              <span style="color: #000000;"> }</span>
            </div>
          </pre>
          <!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com -->
        </div>
        <p>
          <strong>Note: </strong>Line 10 is where all the magic happens – if you imagine, we
load up the client OM classes and the props etc. are all ‘blank’ until we do an <strong>ExecuteQuery() </strong>which
then populates what we ask for. 
</p>
        <p>
The above sample is pretty simple showing how to connect to a document library on
a ‘remote’ server (security allowing – I didn’t add a ctx.Credentials=… line in the
above, but all possible).
</p>
        <p>
          <strong>So let’s move on a crack open the BTS 2010 SharePoint WS Adapter…</strong>
        </p>
        <p>
Just before we go there I’d like to point out that the <strong>Microsoft.SharePoint.dll</strong> (aka
Server API) has the ability to connect to remote servers, although the code needs
to be executed on a machine that has a local SharePoint install.
</p>
        <p>
e.g.
</p>
        <p>
SPSite site = new SPSite(“http://remoteserver.acme.com”);
</p>
        <p>
SPWeb web = site.OpenWeb();
</p>
        <p>
…
</p>
        <p>
What I am trying to avoid with the BTS SharePoint adapter is the need to have the
‘BTS Web Service’ component installed on remote Farms. Just complicates the issue
far too much with the SharePoint admins. 
</p>
        <p>
          <strong>The BTS 2010 Story</strong>
        </p>
        <p>
I setup and installed the BTS SharePoint WS Adapter through the <strong>Configuration.exe </strong>tool
successfully.
</p>
        <p>
Essentially this tools runs a ‘web site check’ to make sure SharePoint is successfully
setup and installed.
</p>
        <p>
          <a href="http://blogs.breezetraining.com.au/mickb/content/2010/BizTalk2010MusingofthenewSharePoint2010W_C651/image_3.png">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/2010/BizTalk2010MusingofthenewSharePoint2010W_C651/image_thumb_3.png" width="655" height="536" />
          </a>
        </p>
        <p>
To make this happen, the configuration tool runs either:
</p>
        <ol>
          <li>
Microsoft.BizTalk.KwTpm.StsOmInterop3.exe – for WSSv3</li>
          <li>
Microsoft.BizTalk.KwTpm.StsOmInterop4.exe – for WSSv4</li>
        </ol>
        <p>
to determine the site as follows:
</p>
        <p>
          <a href="http://blogs.breezetraining.com.au/mickb/content/2010/BizTalk2010MusingofthenewSharePoint2010W_C651/image_4.png">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/2010/BizTalk2010MusingofthenewSharePoint2010W_C651/image_thumb_4.png" width="666" height="157" />
          </a>
        </p>
        <p>
          <strong>Note:</strong> The URL and note the URL in the BTS Configuration above. Here
I’ve already configured the adapter and I’m just showing the commands that the configurator
runs behind the scenes.
</p>
        <p>
Once configuration is complete you will see a new <strong>virtual directory added</strong> 
to your selected site e.g. <a href="http://intranet">http://intranet</a>.
</p>
        <p>
As shown in <strong>IIS Manager.</strong></p>
        <p>
          <a href="http://blogs.breezetraining.com.au/mickb/content/2010/BizTalk2010MusingofthenewSharePoint2010W_C651/image_5.png">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/2010/BizTalk2010MusingofthenewSharePoint2010W_C651/image_thumb_5.png" width="284" height="500" />
          </a>
        </p>
        <p>
Depending on the SharePoint version this virtual directory will map to:
</p>
        <ol>
          <li>
C:\Program Files (x86)\Microsoft BizTalk Server 2010\Business Activity Services\BTSharePointV4AdapterWS<br />
or</li>
          <li>
C:\Program Files (x86)\Microsoft BizTalk Server 2010\Business Activity Services\BTSharePointV3AdapterWS
(previous bts2009 adapter)</li>
        </ol>
        <p>
          <strong>A Basic BTS/SharePoint picture</strong>
        </p>
        <p>
Essentially the BTS SharePoint Adapter consists of 2 parts:
</p>
        <ol>
          <li>
A BTS Adapter that talks to the BTS SharePoint WS. This is a ‘classic’ adapter and
does <strong>not talk the newer WCF framework </strong>(which does have advantages
and disadvantages)</li>
          <li>
A BTS SharePoint WS – this does all the work against the SharePoint library and talks
local SharePoint APIs.</li>
        </ol>
        <p>
          <a href="http://blogs.breezetraining.com.au/mickb/content/2010/BizTalk2010MusingofthenewSharePoint2010W_C651/image_6.png">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/2010/BizTalk2010MusingofthenewSharePoint2010W_C651/image_thumb_6.png" width="435" height="266" />
          </a>
        </p>
        <p>
 
</p>
        <p>
Let’s look closer at the <strong>BTSharePointV4AdapterWS folder</strong></p>
        <p>
          <a href="http://blogs.breezetraining.com.au/mickb/content/2010/BizTalk2010MusingofthenewSharePoint2010W_C651/image_7.png">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/2010/BizTalk2010MusingofthenewSharePoint2010W_C651/image_thumb_7.png" width="758" height="254" />
          </a>
        </p>
        <p>
- this folder, or addition needs to be available locally to whichever SharePoint site
you are calling through the OOTB BTS SharePoint adapter, even though the SharePoint
APIs support remote Servers.
</p>
        <p>
- the <strong>bin</strong> folder has the Microsoft.BizTalk.KwTpm.WssV4Adapter.WebService.dll
which is 78kb. 
</p>
        <p>
I wanted to find out whether this DLL used the new SharePoint Client APIs when meant
having a peek at the ‘references’ of this DLL in IL.
</p>
        <p>
          <strong>Dissassembling Microsoft.BizTalk.KwTpm.WssV4Adapter.WebService.dll </strong>
        </p>
        <p>
Using .NET Reflector I was able to get this picture…
</p>
        <p>
          <a href="http://blogs.breezetraining.com.au/mickb/content/2010/BizTalk2010MusingofthenewSharePoint2010W_C651/image_8.png">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/2010/BizTalk2010MusingofthenewSharePoint2010W_C651/image_thumb_8.png" width="344" height="226" />
          </a>
        </p>
        <p>
          <strong>NOTE: </strong>on this list there is Microsoft.SharePoint, but <strong>not</strong> Microsoft.SharePoint.Client.dll<br />
(this is not looking good…could be late bound, but… I doubt it)
</p>
        <p>
Digging into the actual <strong>WssAdapter class</strong> we get the following of
note:
</p>
        <p>
          <a href="http://blogs.breezetraining.com.au/mickb/content/2010/BizTalk2010MusingofthenewSharePoint2010W_C651/image_9.png">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/2010/BizTalk2010MusingofthenewSharePoint2010W_C651/image_thumb_9.png" width="1004" height="443" />
          </a>
        </p>
        <p>
The <strong>GetDocuments(string, string, string, Int32, DocExtOfficeIntegration)…</strong> is
a key method.
</p>
        <p>
The APIs show that the 1st parameter is a <strong>siteUrl</strong> (and following
the implementation code through) which has the potential to point to another SharePoint
server to make the connection (in the RequestInfo class if you’re going to dig yourself
:))<br /><strong>Note: the PREVIOUS version, BTS2009 has the same Interface/Method signature
and it requires the BTS SharePoint Adapter WS to be deployed on the remote SharePoint
Server, </strong>even though the signature looks as though it will support the remote
server.
</p>
        <p>
So in conclusion the BTS SharePoint Adapter WebService has:
</p>
        <ol>
          <li>
NOT got any newer SharePoint Client API code within in.</li>
          <li>
The ability to contact a remote server through the WebService APIs.</li>
          <li>
But depends on whether the BTS Adapter will pass the ‘remote’ URL to the ‘local’ WS,
or will the Adapter try to contact the remote SharePoint Server directly looking for
a WS there???</li>
        </ol>
        <p>
I’m thinking it’s the latter…
</p>
        <p>
A little more to unravel the SharePoint mystery…
</p>
        <img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=ea43f413-7177-4ddf-8acd-fd3c410d5078" />
      </body>
      <title>BizTalk 2010: Musing of the ‘new’ SharePoint 2010 WS Adapter</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,ea43f413-7177-4ddf-8acd-fd3c410d5078.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2010/10/12/BizTalk2010MusingOfTheNewSharePoint2010WSAdapter.aspx</link>
      <pubDate>Tue, 12 Oct 2010 03:08:00 GMT</pubDate>
      <description>&lt;p&gt;
Today I decided to crack open the BTS 2010 SharePoint WS Adapter to see if it takes
advantage of the great new interfaces exposed by SharePoint 2010, specifically &lt;strong&gt;Microsoft.SharePoint.Client.dll
and Microsoft.SharePoint.Client.Runtime.dll&lt;/strong&gt;.
&lt;/p&gt;
&lt;p&gt;
At a glance, the benefits of this new Client APIs are:
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
Runs on a non SharePoint installed box.&lt;/li&gt;
&lt;li&gt;
Lightweight and flexible – only get back what you ask for. As opposed to the classic
SP Server API that populates the SPWeb collection (for e.g.) only if you just want
the &lt;strong&gt;title&lt;/strong&gt; field and not 10MBs worth of other data.&lt;/li&gt;
&lt;li&gt;
Batch approach – load up several commands and batch them over the wire when needed.&lt;/li&gt;
&lt;li&gt;
Supports both read/write from the client back to SP Server.&lt;/li&gt;
&lt;li&gt;
Uses XML and JSON over the wire – small and fast.&lt;/li&gt;
&lt;li&gt;
We can’t do *everything* we can on the Server Side – e.g. Service Application management,
i.e. kicking off a search index crawl.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
A little piccy of what’s going on:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.breezetraining.com.au/mickb/content/2010/BizTalk2010MusingofthenewSharePoint2010W_C651/image.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/2010/BizTalk2010MusingofthenewSharePoint2010W_C651/image_thumb.png" width="486" height="363"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Some classic piece of code to achieve document library reading:
&lt;/p&gt;
&lt;strong&gt;&lt;/strong&gt; 
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9D7513F9-C04C-4721-824A-2B34F0212519:60e8dfb3-1382-4e2f-9b78-9a4d1ef447b2" class="wlWriterEditableSmartContent"&gt;&lt;pre style=" width: 836px; height: 410px;background-color:White;overflow: auto;"&gt;
&lt;div&gt;
&lt;!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--&gt;&lt;span style="color: #008080;"&gt; 1&lt;/span&gt; &lt;span style="color: #0000FF;"&gt;static&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;void&lt;/span&gt;&lt;span style="color: #000000;"&gt; Main(&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;[]
args) &lt;/span&gt;&lt;span style="color: #008080;"&gt; 2&lt;/span&gt; &lt;span style="color: #000000;"&gt; { &lt;/span&gt;&lt;span style="color: #008080;"&gt; 3&lt;/span&gt; &lt;span style="color: #000000;"&gt; ClientContext
ctx &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; ClientContext(&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;http://intranet&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;); &lt;/span&gt;&lt;span style="color: #008080;"&gt; 4&lt;/span&gt; &lt;span style="color: #000000;"&gt; Web
web &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; ctx.Web; &lt;/span&gt;&lt;span style="color: #008080;"&gt; 5&lt;/span&gt; &lt;span style="color: #000000;"&gt; List
docs &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; web.Lists.GetByTitle(&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Shared
Documents&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;); &lt;/span&gt;&lt;span style="color: #008080;"&gt; 6&lt;/span&gt; &lt;span style="color: #000000;"&gt; ListItemCollection
items &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; docs.GetItems(CamlQuery.CreateAllItemsQuery()); &lt;/span&gt;&lt;span style="color: #008080;"&gt; 7&lt;/span&gt; &lt;span style="color: #000000;"&gt; ctx.Load&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Web&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;(web); &lt;/span&gt;&lt;span style="color: #008080;"&gt; 8&lt;/span&gt; &lt;span style="color: #000000;"&gt; ctx.Load(docs); &lt;/span&gt;&lt;span style="color: #008080;"&gt; 9&lt;/span&gt; &lt;span style="color: #000000;"&gt; ctx.Load(items); &lt;/span&gt;&lt;span style="color: #008080;"&gt;10&lt;/span&gt; &lt;span style="color: #000000;"&gt; ctx.ExecuteQuery(); &lt;/span&gt;&lt;span style="color: #008080;"&gt;11&lt;/span&gt; &lt;span style="color: #000000;"&gt; Console.WriteLine(&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;The
list has {0} items.&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;,
docs.ItemCount); &lt;/span&gt;&lt;span style="color: #008080;"&gt;12&lt;/span&gt; &lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;foreach&lt;/span&gt;&lt;span style="color: #000000;"&gt; (ListItem
item &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;in&lt;/span&gt;&lt;span style="color: #000000;"&gt; items) &lt;/span&gt;&lt;span style="color: #008080;"&gt;13&lt;/span&gt; &lt;span style="color: #000000;"&gt; { &lt;/span&gt;&lt;span style="color: #008080;"&gt;14&lt;/span&gt; &lt;span style="color: #000000;"&gt; Console.WriteLine(&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Item:{0}&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;,
item[&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Title&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;]); &lt;/span&gt;&lt;span style="color: #008080;"&gt;15&lt;/span&gt; &lt;span style="color: #000000;"&gt; } &lt;/span&gt;&lt;span style="color: #008080;"&gt;16&lt;/span&gt; &lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;delete
an item. &lt;/span&gt;&lt;span style="color: #008080;"&gt;17&lt;/span&gt; &lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;items[1].Update(); &lt;/span&gt;&lt;span style="color: #008080;"&gt;18&lt;/span&gt; &lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;items[1].DeleteObject(); &lt;/span&gt;&lt;span style="color: #008080;"&gt;19&lt;/span&gt; &lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;ctx.Load(items); &lt;/span&gt;&lt;span style="color: #008080;"&gt;20&lt;/span&gt; &lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;ctx.ExecuteQuery();&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #008080;"&gt;21&lt;/span&gt; &lt;span style="color: #008000;"&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; Console.ReadLine(); &lt;/span&gt;&lt;span style="color: #008080;"&gt;22&lt;/span&gt; &lt;span style="color: #000000;"&gt; }&lt;/span&gt;
&lt;/div&gt;
&lt;/pre&gt;
&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;
&lt;/div&gt;
&lt;p&gt;
&lt;strong&gt;Note: &lt;/strong&gt;Line 10 is where all the magic happens – if you imagine, we
load up the client OM classes and the props etc. are all ‘blank’ until we do an &lt;strong&gt;ExecuteQuery() &lt;/strong&gt;which
then populates what we ask for. 
&lt;/p&gt;
&lt;p&gt;
The above sample is pretty simple showing how to connect to a document library on
a ‘remote’ server (security allowing – I didn’t add a ctx.Credentials=… line in the
above, but all possible).
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;So let’s move on a crack open the BTS 2010 SharePoint WS Adapter…&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Just before we go there I’d like to point out that the &lt;strong&gt;Microsoft.SharePoint.dll&lt;/strong&gt; (aka
Server API) has the ability to connect to remote servers, although the code needs
to be executed on a machine that has a local SharePoint install.
&lt;/p&gt;
&lt;p&gt;
e.g.
&lt;/p&gt;
&lt;p&gt;
SPSite site = new SPSite(“http://remoteserver.acme.com”);
&lt;/p&gt;
&lt;p&gt;
SPWeb web = site.OpenWeb();
&lt;/p&gt;
&lt;p&gt;
…
&lt;/p&gt;
&lt;p&gt;
What I am trying to avoid with the BTS SharePoint adapter is the need to have the
‘BTS Web Service’ component installed on remote Farms. Just complicates the issue
far too much with the SharePoint admins. 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;The BTS 2010 Story&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
I setup and installed the BTS SharePoint WS Adapter through the &lt;strong&gt;Configuration.exe &lt;/strong&gt;tool
successfully.
&lt;/p&gt;
&lt;p&gt;
Essentially this tools runs a ‘web site check’ to make sure SharePoint is successfully
setup and installed.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.breezetraining.com.au/mickb/content/2010/BizTalk2010MusingofthenewSharePoint2010W_C651/image_3.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/2010/BizTalk2010MusingofthenewSharePoint2010W_C651/image_thumb_3.png" width="655" height="536"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
To make this happen, the configuration tool runs either:
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
Microsoft.BizTalk.KwTpm.StsOmInterop3.exe – for WSSv3&lt;/li&gt;
&lt;li&gt;
Microsoft.BizTalk.KwTpm.StsOmInterop4.exe – for WSSv4&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
to determine the site as follows:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.breezetraining.com.au/mickb/content/2010/BizTalk2010MusingofthenewSharePoint2010W_C651/image_4.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/2010/BizTalk2010MusingofthenewSharePoint2010W_C651/image_thumb_4.png" width="666" height="157"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Note:&lt;/strong&gt; The URL and note the URL in the BTS Configuration above. Here
I’ve already configured the adapter and I’m just showing the commands that the configurator
runs behind the scenes.
&lt;/p&gt;
&lt;p&gt;
Once configuration is complete you will see a new &lt;strong&gt;virtual directory added&lt;/strong&gt;&amp;nbsp;
to your selected site e.g. &lt;a href="http://intranet"&gt;http://intranet&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
As shown in &lt;strong&gt;IIS Manager.&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.breezetraining.com.au/mickb/content/2010/BizTalk2010MusingofthenewSharePoint2010W_C651/image_5.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/2010/BizTalk2010MusingofthenewSharePoint2010W_C651/image_thumb_5.png" width="284" height="500"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Depending on the SharePoint version this virtual directory will map to:
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
C:\Program Files (x86)\Microsoft BizTalk Server 2010\Business Activity Services\BTSharePointV4AdapterWS&lt;br&gt;
or&lt;/li&gt;
&lt;li&gt;
C:\Program Files (x86)\Microsoft BizTalk Server 2010\Business Activity Services\BTSharePointV3AdapterWS
(previous bts2009 adapter)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
&lt;strong&gt;A Basic BTS/SharePoint picture&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Essentially the BTS SharePoint Adapter consists of 2 parts:
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
A BTS Adapter that talks to the BTS SharePoint WS. This is a ‘classic’ adapter and
does &lt;strong&gt;not talk the newer WCF framework &lt;/strong&gt;(which does have advantages
and disadvantages)&lt;/li&gt;
&lt;li&gt;
A BTS SharePoint WS – this does all the work against the SharePoint library and talks
local SharePoint APIs.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
&lt;a href="http://blogs.breezetraining.com.au/mickb/content/2010/BizTalk2010MusingofthenewSharePoint2010W_C651/image_6.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/2010/BizTalk2010MusingofthenewSharePoint2010W_C651/image_thumb_6.png" width="435" height="266"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Let’s look closer at the &lt;strong&gt;BTSharePointV4AdapterWS folder&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.breezetraining.com.au/mickb/content/2010/BizTalk2010MusingofthenewSharePoint2010W_C651/image_7.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/2010/BizTalk2010MusingofthenewSharePoint2010W_C651/image_thumb_7.png" width="758" height="254"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
- this folder, or addition needs to be available locally to whichever SharePoint site
you are calling through the OOTB BTS SharePoint adapter, even though the SharePoint
APIs support remote Servers.
&lt;/p&gt;
&lt;p&gt;
- the &lt;strong&gt;bin&lt;/strong&gt; folder has the Microsoft.BizTalk.KwTpm.WssV4Adapter.WebService.dll
which is 78kb. 
&lt;/p&gt;
&lt;p&gt;
I wanted to find out whether this DLL used the new SharePoint Client APIs when meant
having a peek at the ‘references’ of this DLL in IL.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Dissassembling Microsoft.BizTalk.KwTpm.WssV4Adapter.WebService.dll &lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Using .NET Reflector I was able to get this picture…
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.breezetraining.com.au/mickb/content/2010/BizTalk2010MusingofthenewSharePoint2010W_C651/image_8.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/2010/BizTalk2010MusingofthenewSharePoint2010W_C651/image_thumb_8.png" width="344" height="226"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;NOTE: &lt;/strong&gt;on this list there is Microsoft.SharePoint, but &lt;strong&gt;not&lt;/strong&gt; Microsoft.SharePoint.Client.dll&lt;br&gt;
(this is not looking good…could be late bound, but… I doubt it)
&lt;/p&gt;
&lt;p&gt;
Digging into the actual &lt;strong&gt;WssAdapter class&lt;/strong&gt; we get the following of
note:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.breezetraining.com.au/mickb/content/2010/BizTalk2010MusingofthenewSharePoint2010W_C651/image_9.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/2010/BizTalk2010MusingofthenewSharePoint2010W_C651/image_thumb_9.png" width="1004" height="443"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
The &lt;strong&gt;GetDocuments(string, string, string, Int32, DocExtOfficeIntegration)…&lt;/strong&gt; is
a key method.
&lt;/p&gt;
&lt;p&gt;
The APIs show that the 1st parameter is a &lt;strong&gt;siteUrl&lt;/strong&gt; (and following
the implementation code through) which has the potential to point to another SharePoint
server to make the connection (in the RequestInfo class if you’re going to dig yourself
:))&lt;br&gt;
&lt;strong&gt;Note: the PREVIOUS version, BTS2009 has the same Interface/Method signature
and it requires the BTS SharePoint Adapter WS to be deployed on the remote SharePoint
Server, &lt;/strong&gt;even though the signature looks as though it will support the remote
server.
&lt;/p&gt;
&lt;p&gt;
So in conclusion the BTS SharePoint Adapter WebService has:
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
NOT got any newer SharePoint Client API code within in.&lt;/li&gt;
&lt;li&gt;
The ability to contact a remote server through the WebService APIs.&lt;/li&gt;
&lt;li&gt;
But depends on whether the BTS Adapter will pass the ‘remote’ URL to the ‘local’ WS,
or will the Adapter try to contact the remote SharePoint Server directly looking for
a WS there???&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
I’m thinking it’s the latter…
&lt;/p&gt;
&lt;p&gt;
A little more to unravel the SharePoint mystery…
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=ea43f413-7177-4ddf-8acd-fd3c410d5078" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,ea43f413-7177-4ddf-8acd-fd3c410d5078.aspx</comments>
      <category>BizTalk</category>
      <category>BizTalk/2010</category>
      <category>BizTalk/Insights</category>
      <category>BizTalk/SharePoint</category>
      <category>SharePoint</category>
      <category>SharePoint/2010</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=2337dbfb-3232-4688-be47-96ff6a98413f</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,2337dbfb-3232-4688-be47-96ff6a98413f.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,2337dbfb-3232-4688-be47-96ff6a98413f.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=2337dbfb-3232-4688-be47-96ff6a98413f</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
The scene looks like this – while teaching a <strong>SharePoint 2010 class </strong>I
decided to build a Feature that used one of the OOTB Service Applications of SharePoint
2010.<br /><br /><a href="http://blogs.breezetraining.com.au/mickb/content/2010/SharePoint2010ASimpleWordtoPDFConverteru_12456/image.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/2010/SharePoint2010ASimpleWordtoPDFConverteru_12456/image_thumb.png" width="640" height="467" /></a> 
</p>
        <p>
I decided to create a PDF Converter ‘Feature’ that used the <strong>Word Automation</strong> Services
hosted in SharePoint 2010. Looking into the Word Automation Services, I’d say that
if you’ve already got a PDF creation process going, then stick with it as it appears
this service is pretty simple. However if you’ve got nothing, then Word Automation
Services will be great!<br />
(Having spent a previous life in a graphics company, there are many options that go
with creating just that perfect PDF…I could find none of these here :()<br /><br /><a href="http://blogs.breezetraining.com.au/mickb/content/2010/SharePoint2010ASimpleWordtoPDFConverteru_12456/image_3.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/2010/SharePoint2010ASimpleWordtoPDFConverteru_12456/image_thumb_3.png" width="738" height="221" /></a><br />
(yes the pdf icon needs work…)
</p>
        <p>
So I created a VS.NET 2010 Solution with a Feature.<br /><a href="http://blogs.breezetraining.com.au/mickb/content/2010/SharePoint2010ASimpleWordtoPDFConverteru_12456/image_4.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/2010/SharePoint2010ASimpleWordtoPDFConverteru_12456/image_thumb_4.png" width="229" height="322" /></a></p>
        <p>
The <strong>PDFConverter.cs </strong>is where the crux of the work is – the rest of
the solution is working out just the right spot to call it.
</p>
        <p>
          <strong>Couple of Interesting Points about the Solution</strong>
        </p>
        <p>
          <strong>1. ScriptLink</strong> – using this from a CustomAction within an Elements
file allows to inject Script into a site where the Feature is Activated. There is
also <strong>ScriptBody</strong> that allows you to inject script code right there.
</p>
        <p>
          <strong>2. RegistrationType</strong> – being declared as a FileType, currently this
will work with <strong>docx</strong>. Feel free to experiment and extend out.<br />
Also, seeing this action is activated on a list item, we need to track what list it
came from <strong>{ListId} </strong>and the item in that list <strong>{ItemId} </strong>which
is an integer.
</p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9D7513F9-C04C-4721-824A-2B34F0212519:618b44f1-5e70-4fe6-bc72-54703a8ebdbc" class="wlWriterEditableSmartContent">
          <pre style=" width: 836px; height: 270px;background-color:White;overflow: auto;">
            <div>
              <!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->
              <span style="color: #008080;"> 1</span>
              <span style="color: #000000;">&lt;</span>
              <span style="color: #000000;">Elements
xmlns</span>
              <span style="color: #000000;">=</span>
              <span style="color: #800000;">"</span>
              <span style="color: #800000;">http://schemas.microsoft.com/sharepoint/</span>
              <span style="color: #800000;">"</span>
              <span style="color: #000000;">&gt;</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #008080;"> 2</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #000000;">&lt;</span>
              <span style="color: #000000;">CustomAction
Id</span>
              <span style="color: #000000;">=</span>
              <span style="color: #800000;">"</span>
              <span style="color: #800000;">MicksPDFScript</span>
              <span style="color: #800000;">"</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #008080;"> 3</span>
              <span style="color: #000000;"> ScriptSrc</span>
              <span style="color: #000000;">=</span>
              <span style="color: #800000;">"</span>
              <span style="color: #800000;">~site/_layouts/WordAutomationServices/Scripts/MoveItMoveIt.js</span>
              <span style="color: #800000;">"</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #008080;"> 4</span>
              <span style="color: #000000;"> Location</span>
              <span style="color: #000000;">=</span>
              <span style="color: #800000;">"</span>
              <span style="color: #800000;">ScriptLink</span>
              <span style="color: #800000;">"</span>
              <span style="color: #000000;">&gt;</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #008080;"> 5</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #000000;">&lt;/</span>
              <span style="color: #000000;">CustomAction</span>
              <span style="color: #000000;">&gt;</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #008080;"> 6</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #008080;"> 7</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #000000;">&lt;</span>
              <span style="color: #000000;">CustomAction
Id</span>
              <span style="color: #000000;">=</span>
              <span style="color: #800000;">"</span>
              <span style="color: #800000;">MicksPDFConverter</span>
              <span style="color: #800000;">"</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #008080;"> 8</span>
              <span style="color: #000000;"> RegistrationType</span>
              <span style="color: #000000;">=</span>
              <span style="color: #800000;">"</span>
              <span style="color: #800000;">FileType</span>
              <span style="color: #800000;">"</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #008080;"> 9</span>
              <span style="color: #000000;"> RegistrationId</span>
              <span style="color: #000000;">=</span>
              <span style="color: #800000;">"</span>
              <span style="color: #800000;">docx</span>
              <span style="color: #800000;">"</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #008080;">10</span>
              <span style="color: #000000;"> Location</span>
              <span style="color: #000000;">=</span>
              <span style="color: #800000;">"</span>
              <span style="color: #800000;">EditControlBlock</span>
              <span style="color: #800000;">"</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #008080;">11</span>
              <span style="color: #000000;"> Sequence</span>
              <span style="color: #000000;">=</span>
              <span style="color: #800000;">"</span>
              <span style="color: #800000;">106</span>
              <span style="color: #800000;">"</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #008080;">12</span>
              <span style="color: #000000;"> Title</span>
              <span style="color: #000000;">=</span>
              <span style="color: #800000;">"</span>
              <span style="color: #800000;">Convert
to PDF</span>
              <span style="color: #800000;">"</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #008080;">13</span>
              <span style="color: #000000;"> ImageUrl</span>
              <span style="color: #000000;">=</span>
              <span style="color: #800000;">"</span>
              <span style="color: #800000;">~site/_layouts/WordAutomationServices/Images/pdf.gif</span>
              <span style="color: #800000;">"</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #008080;">14</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #000000;">&gt;</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #008080;">15</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #000000;">&lt;</span>
              <span style="color: #000000;">UrlAction
Url</span>
              <span style="color: #000000;">=</span>
              <span style="color: #800000;">"</span>
              <span style="color: #800000;">javascript:MicksOpenDialog('{ListId}','{ItemId}');</span>
              <span style="color: #800000;">"</span>
              <span style="color: #000000;">/&gt;</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #008080;">16</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #000000;">&lt;/</span>
              <span style="color: #000000;">CustomAction</span>
              <span style="color: #000000;">&gt;</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #008080;">17</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #008080;">18</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #000000;">&lt;/</span>
              <span style="color: #000000;">Elements</span>
              <span style="color: #000000;">&gt;</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #008080;">19</span>
              <span style="color: #000000;">
              </span>
            </div>
          </pre>
          <!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com -->
        </div>
        <p>
          <strong>3. Code that actually does the work</strong> – is pretty simple really with <strong>Folders
and entire Document Libraries able to be passed to the Conversion Job.</strong><br />
One annoying thing is that below in Line15, <strong>conversionJob.Start()</strong> is
called, really a job gets created and added to the Job Timer queue. Regardless of
what goes on, the <strong>Started</strong> property always returns <strong>true.</strong><br /><br />
Typically I’ve found the Timer Job to kick in every 5 mins to process the conversions
and eventually a PDF file is seen in the library.
</p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9D7513F9-C04C-4721-824A-2B34F0212519:099cac3e-eb47-48a6-a341-1ce82e3efbf2" class="wlWriterEditableSmartContent">
          <pre style=" width: 836px; height: 270px;background-color:White;overflow: auto;">
            <div>
              <!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->
              <span style="color: #008080;"> 1</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #0000FF;">public</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #0000FF;">bool</span>
              <span style="color: #000000;"> Convert(</span>
              <span style="color: #0000FF;">string</span>
              <span style="color: #000000;"> srcFile,</span>
              <span style="color: #0000FF;">string</span>
              <span style="color: #000000;"> dstFile) </span>
              <span style="color: #008080;"> 2</span>
              <span style="color: #000000;"> { </span>
              <span style="color: #008080;"> 3</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #008080;"> 4</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #008000;">//</span>
              <span style="color: #008000;">create
references to the Word Services.</span>
              <span style="color: #008000;">
              </span>
              <span style="color: #008080;"> 5</span>
              <span style="color: #008000;">
              </span>
              <span style="color: #000000;"> var
wdProxy </span>
              <span style="color: #000000;">=</span>
              <span style="color: #000000;"> (WordServiceApplicationProxy)SPServiceContext.Current.GetDefaultProxy(</span>
              <span style="color: #0000FF;">typeof</span>
              <span style="color: #000000;">(WordServiceApplicationProxy)); </span>
              <span style="color: #008080;"> 6</span>
              <span style="color: #000000;"> var
conversionJob </span>
              <span style="color: #000000;">=</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #0000FF;">new</span>
              <span style="color: #000000;"> ConversionJob(wdProxy); </span>
              <span style="color: #008080;"> 7</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #008080;"> 8</span>
              <span style="color: #000000;"> conversionJob.UserToken </span>
              <span style="color: #000000;">=</span>
              <span style="color: #000000;"> SPContext.Current.Web.CurrentUser.UserToken; </span>
              <span style="color: #008080;"> 9</span>
              <span style="color: #000000;"> conversionJob.Name </span>
              <span style="color: #000000;">=</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #800000;">"</span>
              <span style="color: #800000;">Micks
PDF Conversion Job </span>
              <span style="color: #800000;">"</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #000000;">+</span>
              <span style="color: #000000;"> DateTime.Now.ToString(</span>
              <span style="color: #800000;">"</span>
              <span style="color: #800000;">hhmmss</span>
              <span style="color: #800000;">"</span>
              <span style="color: #000000;">); </span>
              <span style="color: #008080;">10</span>
              <span style="color: #000000;"> conversionJob.Settings.OutputFormat </span>
              <span style="color: #000000;">=</span>
              <span style="color: #000000;"> SaveFormat.PDF; </span>
              <span style="color: #008080;">11</span>
              <span style="color: #000000;"> conversionJob.Settings.OutputSaveBehavior </span>
              <span style="color: #000000;">=</span>
              <span style="color: #000000;"> SaveBehavior.AlwaysOverwrite; </span>
              <span style="color: #008080;">12</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #008080;">13</span>
              <span style="color: #000000;"> conversionJob.AddFile(srcFile,
dstFile); </span>
              <span style="color: #008080;">14</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #008080;">15</span>
              <span style="color: #000000;"> conversionJob.Start(); </span>
              <span style="color: #008080;">16</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #0000FF;">return</span>
              <span style="color: #000000;"> (conversionJob.Started); </span>
              <span style="color: #008080;">17</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #008080;">18</span>
              <span style="color: #000000;"> }</span>
            </div>
          </pre>
          <!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com -->
        </div>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
A couple of screen shots in action:
</p>
        <p>
          <a href="http://blogs.breezetraining.com.au/mickb/content/2010/SharePoint2010ASimpleWordtoPDFConverteru_12456/image_5.png">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/2010/SharePoint2010ASimpleWordtoPDFConverteru_12456/image_thumb_5.png" width="501" height="431" />
          </a>
        </p>
        <p>
          <a href="http://blogs.breezetraining.com.au/mickb/content/2010/SharePoint2010ASimpleWordtoPDFConverteru_12456/image_6.png">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/2010/SharePoint2010ASimpleWordtoPDFConverteru_12456/image_thumb_6.png" width="502" height="238" />
          </a>
        </p>
        <p>
          <a href="http://blogs.breezetraining.com.au/mickb/content/2010/SharePoint2010ASimpleWordtoPDFConverteru_12456/image_7.png">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/2010/SharePoint2010ASimpleWordtoPDFConverteru_12456/image_thumb_7.png" width="653" height="391" />
          </a>
        </p>
        <p>
Of course this is not production ready, but it should give you a great start in getting
there. To start, simply install and Activate the Feature on a site collection to see
the functionality.
</p>
        <p>
Go to a document library and activate the item drop down to see the <strong>Convert
to PDF</strong> option. <strong>Must be a DOCX file</strong> currently.
</p>
        <p>
Grab the VSNET2010 Solution and go for it – have fun.
</p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:fb3a1972-4489-4e52-abe7-25a00bb07fdf:0b5a6e61-5690-4a40-adee-4f630a4ef089" class="wlWriterEditableSmartContent">
          <p>
            <a href="http://blogs.breezetraining.com.au/mickb/content/2010/SharePoint2010ASimpleWordtoPDFConverteru_12456/WordAuto.zip" target="_blank">PDF
CONVERTER SOLUTION</a>
          </p>
        </div>
        <img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=2337dbfb-3232-4688-be47-96ff6a98413f" />
      </body>
      <title>SharePoint 2010: A Simple Word to PDF Converter using Word Automation Services</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,2337dbfb-3232-4688-be47-96ff6a98413f.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2010/09/20/SharePoint2010ASimpleWordToPDFConverterUsingWordAutomationServices.aspx</link>
      <pubDate>Mon, 20 Sep 2010 11:06:48 GMT</pubDate>
      <description>&lt;p&gt;
The scene looks like this – while teaching a &lt;strong&gt;SharePoint 2010 class &lt;/strong&gt;I
decided to build a Feature that used one of the OOTB Service Applications of SharePoint
2010.&lt;br&gt;
&lt;br&gt;
&lt;a href="http://blogs.breezetraining.com.au/mickb/content/2010/SharePoint2010ASimpleWordtoPDFConverteru_12456/image.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/2010/SharePoint2010ASimpleWordtoPDFConverteru_12456/image_thumb.png" width="640" height="467"&gt;&lt;/a&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
I decided to create a PDF Converter ‘Feature’ that used the &lt;strong&gt;Word Automation&lt;/strong&gt; Services
hosted in SharePoint 2010. Looking into the Word Automation Services, I’d say that
if you’ve already got a PDF creation process going, then stick with it as it appears
this service is pretty simple. However if you’ve got nothing, then Word Automation
Services will be great!&lt;br&gt;
(Having spent a previous life in a graphics company, there are many options that go
with creating just that perfect PDF…I could find none of these here :()&lt;br&gt;
&lt;br&gt;
&lt;a href="http://blogs.breezetraining.com.au/mickb/content/2010/SharePoint2010ASimpleWordtoPDFConverteru_12456/image_3.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/2010/SharePoint2010ASimpleWordtoPDFConverteru_12456/image_thumb_3.png" width="738" height="221"&gt;&lt;/a&gt; 
&lt;br&gt;
(yes the pdf icon needs work…)
&lt;/p&gt;
&lt;p&gt;
So I created a VS.NET 2010 Solution with a Feature.&lt;br&gt;
&lt;a href="http://blogs.breezetraining.com.au/mickb/content/2010/SharePoint2010ASimpleWordtoPDFConverteru_12456/image_4.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/2010/SharePoint2010ASimpleWordtoPDFConverteru_12456/image_thumb_4.png" width="229" height="322"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
The &lt;strong&gt;PDFConverter.cs &lt;/strong&gt;is where the crux of the work is – the rest of
the solution is working out just the right spot to call it.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Couple of Interesting Points about the Solution&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;1. ScriptLink&lt;/strong&gt; – using this from a CustomAction within an Elements
file allows to inject Script into a site where the Feature is Activated. There is
also &lt;strong&gt;ScriptBody&lt;/strong&gt; that allows you to inject script code right there.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;2. RegistrationType&lt;/strong&gt; – being declared as a FileType, currently this
will work with &lt;strong&gt;docx&lt;/strong&gt;. Feel free to experiment and extend out.&lt;br&gt;
Also, seeing this action is activated on a list item, we need to track what list it
came from &lt;strong&gt;{ListId} &lt;/strong&gt;and the item in that list &lt;strong&gt;{ItemId} &lt;/strong&gt;which
is an integer.
&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9D7513F9-C04C-4721-824A-2B34F0212519:618b44f1-5e70-4fe6-bc72-54703a8ebdbc" class="wlWriterEditableSmartContent"&gt;&lt;pre style=" width: 836px; height: 270px;background-color:White;overflow: auto;"&gt;
&lt;div&gt;
&lt;!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--&gt;&lt;span style="color: #008080;"&gt; 1&lt;/span&gt; &lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;Elements
xmlns&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;http://schemas.microsoft.com/sharepoint/&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #008080;"&gt; 2&lt;/span&gt; &lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;CustomAction
Id&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;MicksPDFScript&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #008080;"&gt; 3&lt;/span&gt; &lt;span style="color: #000000;"&gt; ScriptSrc&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;~site/_layouts/WordAutomationServices/Scripts/MoveItMoveIt.js&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #008080;"&gt; 4&lt;/span&gt; &lt;span style="color: #000000;"&gt; Location&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;ScriptLink&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #008080;"&gt; 5&lt;/span&gt; &lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;CustomAction&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #008080;"&gt; 6&lt;/span&gt; &lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #008080;"&gt; 7&lt;/span&gt; &lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;CustomAction
Id&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;MicksPDFConverter&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #008080;"&gt; 8&lt;/span&gt; &lt;span style="color: #000000;"&gt; RegistrationType&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;FileType&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #008080;"&gt; 9&lt;/span&gt; &lt;span style="color: #000000;"&gt; RegistrationId&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;docx&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #008080;"&gt;10&lt;/span&gt; &lt;span style="color: #000000;"&gt; Location&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;EditControlBlock&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #008080;"&gt;11&lt;/span&gt; &lt;span style="color: #000000;"&gt; Sequence&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;106&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #008080;"&gt;12&lt;/span&gt; &lt;span style="color: #000000;"&gt; Title&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Convert
to PDF&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #008080;"&gt;13&lt;/span&gt; &lt;span style="color: #000000;"&gt; ImageUrl&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;~site/_layouts/WordAutomationServices/Images/pdf.gif&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #008080;"&gt;14&lt;/span&gt; &lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #008080;"&gt;15&lt;/span&gt; &lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;UrlAction
Url&lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;javascript:MicksOpenDialog('{ListId}','{ItemId}');&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #008080;"&gt;16&lt;/span&gt; &lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;CustomAction&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #008080;"&gt;17&lt;/span&gt; &lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #008080;"&gt;18&lt;/span&gt; &lt;span style="color: #000000;"&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #000000;"&gt;Elements&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #008080;"&gt;19&lt;/span&gt; &lt;span style="color: #000000;"&gt;&lt;/span&gt;
&lt;/div&gt;
&lt;/pre&gt;
&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;
&lt;/div&gt;
&lt;p&gt;
&lt;strong&gt;3. Code that actually does the work&lt;/strong&gt; – is pretty simple really with &lt;strong&gt;Folders
and entire Document Libraries able to be passed to the Conversion Job.&lt;/strong&gt;
&lt;br&gt;
One annoying thing is that below in Line15, &lt;strong&gt;conversionJob.Start()&lt;/strong&gt; is
called, really a job gets created and added to the Job Timer queue. Regardless of
what goes on, the &lt;strong&gt;Started&lt;/strong&gt; property always returns &lt;strong&gt;true.&lt;/strong&gt;
&lt;br&gt;
&lt;br&gt;
Typically I’ve found the Timer Job to kick in every 5 mins to process the conversions
and eventually a PDF file is seen in the library.
&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9D7513F9-C04C-4721-824A-2B34F0212519:099cac3e-eb47-48a6-a341-1ce82e3efbf2" class="wlWriterEditableSmartContent"&gt;&lt;pre style=" width: 836px; height: 270px;background-color:White;overflow: auto;"&gt;
&lt;div&gt;
&lt;!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--&gt;&lt;span style="color: #008080;"&gt; 1&lt;/span&gt; &lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;bool&lt;/span&gt;&lt;span style="color: #000000;"&gt; Convert(&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt; srcFile,&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt; dstFile) &lt;/span&gt;&lt;span style="color: #008080;"&gt; 2&lt;/span&gt; &lt;span style="color: #000000;"&gt; { &lt;/span&gt;&lt;span style="color: #008080;"&gt; 3&lt;/span&gt; &lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #008080;"&gt; 4&lt;/span&gt; &lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;create
references to the Word Services.&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #008080;"&gt; 5&lt;/span&gt; &lt;span style="color: #008000;"&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; var
wdProxy &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; (WordServiceApplicationProxy)SPServiceContext.Current.GetDefaultProxy(&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;typeof&lt;/span&gt;&lt;span style="color: #000000;"&gt;(WordServiceApplicationProxy)); &lt;/span&gt;&lt;span style="color: #008080;"&gt; 6&lt;/span&gt; &lt;span style="color: #000000;"&gt; var
conversionJob &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; ConversionJob(wdProxy); &lt;/span&gt;&lt;span style="color: #008080;"&gt; 7&lt;/span&gt; &lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #008080;"&gt; 8&lt;/span&gt; &lt;span style="color: #000000;"&gt; conversionJob.UserToken &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; SPContext.Current.Web.CurrentUser.UserToken; &lt;/span&gt;&lt;span style="color: #008080;"&gt; 9&lt;/span&gt; &lt;span style="color: #000000;"&gt; conversionJob.Name &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Micks
PDF Conversion Job &lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; DateTime.Now.ToString(&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;hhmmss&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;); &lt;/span&gt;&lt;span style="color: #008080;"&gt;10&lt;/span&gt; &lt;span style="color: #000000;"&gt; conversionJob.Settings.OutputFormat &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; SaveFormat.PDF; &lt;/span&gt;&lt;span style="color: #008080;"&gt;11&lt;/span&gt; &lt;span style="color: #000000;"&gt; conversionJob.Settings.OutputSaveBehavior &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; SaveBehavior.AlwaysOverwrite; &lt;/span&gt;&lt;span style="color: #008080;"&gt;12&lt;/span&gt; &lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #008080;"&gt;13&lt;/span&gt; &lt;span style="color: #000000;"&gt; conversionJob.AddFile(srcFile,
dstFile); &lt;/span&gt;&lt;span style="color: #008080;"&gt;14&lt;/span&gt; &lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #008080;"&gt;15&lt;/span&gt; &lt;span style="color: #000000;"&gt; conversionJob.Start(); &lt;/span&gt;&lt;span style="color: #008080;"&gt;16&lt;/span&gt; &lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; (conversionJob.Started); &lt;/span&gt;&lt;span style="color: #008080;"&gt;17&lt;/span&gt; &lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #008080;"&gt;18&lt;/span&gt; &lt;span style="color: #000000;"&gt; }&lt;/span&gt;
&lt;/div&gt;
&lt;/pre&gt;
&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;
&lt;/div&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
A couple of screen shots in action:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.breezetraining.com.au/mickb/content/2010/SharePoint2010ASimpleWordtoPDFConverteru_12456/image_5.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/2010/SharePoint2010ASimpleWordtoPDFConverteru_12456/image_thumb_5.png" width="501" height="431"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.breezetraining.com.au/mickb/content/2010/SharePoint2010ASimpleWordtoPDFConverteru_12456/image_6.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/2010/SharePoint2010ASimpleWordtoPDFConverteru_12456/image_thumb_6.png" width="502" height="238"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.breezetraining.com.au/mickb/content/2010/SharePoint2010ASimpleWordtoPDFConverteru_12456/image_7.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/2010/SharePoint2010ASimpleWordtoPDFConverteru_12456/image_thumb_7.png" width="653" height="391"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Of course this is not production ready, but it should give you a great start in getting
there. To start, simply install and Activate the Feature on a site collection to see
the functionality.
&lt;/p&gt;
&lt;p&gt;
Go to a document library and activate the item drop down to see the &lt;strong&gt;Convert
to PDF&lt;/strong&gt; option. &lt;strong&gt;Must be a DOCX file&lt;/strong&gt; currently.
&lt;/p&gt;
&lt;p&gt;
Grab the VSNET2010 Solution and go for it – have fun.
&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:fb3a1972-4489-4e52-abe7-25a00bb07fdf:0b5a6e61-5690-4a40-adee-4f630a4ef089" class="wlWriterEditableSmartContent"&gt;
&lt;p&gt;
&lt;a href="http://blogs.breezetraining.com.au/mickb/content/2010/SharePoint2010ASimpleWordtoPDFConverteru_12456/WordAuto.zip" target="_blank"&gt;PDF
CONVERTER SOLUTION&lt;/a&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=2337dbfb-3232-4688-be47-96ff6a98413f" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,2337dbfb-3232-4688-be47-96ff6a98413f.aspx</comments>
      <category>.NET Developer</category>
      <category>SharePoint</category>
      <category>SharePoint/2010</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=1b8f74db-b38e-487f-9877-f3879cb70114</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,1b8f74db-b38e-487f-9877-f3879cb70114.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,1b8f74db-b38e-487f-9877-f3879cb70114.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=1b8f74db-b38e-487f-9877-f3879cb70114</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
The other day I had a need to create many word documents in code and publish them
up to a SharePoint 2010 site.
</p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9D7513F9-C04C-4721-824A-2B34F0212519:fb3bccb3-0e64-477b-b51f-118189c602c0" class="wlWriterEditableSmartContent">
          <pre style=" width: 742px; height: 202px;background-color:White;overflow: auto;">
            <div>
              <!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->
              <span style="color: #008080;"> 1</span>
              <span style="color: #0000FF;">static</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #0000FF;">void</span>
              <span style="color: #000000;"> Main(</span>
              <span style="color: #0000FF;">string</span>
              <span style="color: #000000;">[]
args) </span>
              <span style="color: #008080;"> 2</span>
              <span style="color: #000000;"> { </span>
              <span style="color: #008080;"> 3</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #0000FF;">int</span>
              <span style="color: #000000;"> iMAXDocs </span>
              <span style="color: #000000;">=</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #800080;">200</span>
              <span style="color: #000000;">; </span>
              <span style="color: #008080;"> 4</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #0000FF;">string</span>
              <span style="color: #000000;"> fpath </span>
              <span style="color: #000000;">=</span>
              <span style="color: #000000;"> Path.Combine(Directory.GetCurrentDirectory(), </span>
              <span style="color: #800000;">"</span>
              <span style="color: #800000;">Docs</span>
              <span style="color: #800000;">"</span>
              <span style="color: #000000;">); </span>
              <span style="color: #008080;"> 5</span>
              <span style="color: #000000;"> Directory.CreateDirectory(fpath); </span>
              <span style="color: #008080;"> 6</span>
              <span style="color: #000000;"> Console.WriteLine(</span>
              <span style="color: #800000;">"</span>
              <span style="color: #800000;">Path
created</span>
              <span style="color: #800000;">"</span>
              <span style="color: #000000;">); </span>
              <span style="color: #008080;"> 7</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #0000FF;">for</span>
              <span style="color: #000000;"> (</span>
              <span style="color: #0000FF;">int</span>
              <span style="color: #000000;"> i </span>
              <span style="color: #000000;">=</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #800080;">0</span>
              <span style="color: #000000;">;
i </span>
              <span style="color: #000000;">&lt;</span>
              <span style="color: #000000;"> iMAXDocs;
i</span>
              <span style="color: #000000;">++</span>
              <span style="color: #000000;">) </span>
              <span style="color: #008080;"> 8</span>
              <span style="color: #000000;"> { </span>
              <span style="color: #008080;"> 9</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #0000FF;">string</span>
              <span style="color: #000000;"> docname </span>
              <span style="color: #000000;">=</span>
              <span style="color: #000000;"> Path.Combine(fpath, </span>
              <span style="color: #800000;">"</span>
              <span style="color: #800000;">Doc</span>
              <span style="color: #800000;">"</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #000000;">+</span>
              <span style="color: #000000;"> i.ToString() </span>
              <span style="color: #000000;">+</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #800000;">"</span>
              <span style="color: #800000;">.docx</span>
              <span style="color: #800000;">"</span>
              <span style="color: #000000;">); </span>
              <span style="color: #008080;">10</span>
              <span style="color: #000000;"> CreateWordDoc(docname); </span>
              <span style="color: #008080;">11</span>
              <span style="color: #000000;"> Console.WriteLine(</span>
              <span style="color: #800000;">"</span>
              <span style="color: #800000;">Created
Doc {0} of {1}</span>
              <span style="color: #800000;">"</span>
              <span style="color: #000000;">,
i, iMAXDocs); </span>
              <span style="color: #008080;">12</span>
              <span style="color: #000000;"> } </span>
              <span style="color: #008080;">13</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #008080;">14</span>
              <span style="color: #000000;"> }</span>
            </div>
          </pre>
          <!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com -->
        </div>
        <p>
So essentially it went something like that…with the key really being line#10 – <strong>CreateWordDoc</strong>(…).
The CreateWordDoc routine also adds a couple of custom String properties to the document.
</p>
        <p>
        </p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9D7513F9-C04C-4721-824A-2B34F0212519:643186a0-d267-4208-ad57-15c56761bb09" class="wlWriterEditableSmartContent">
          <pre style=" width: 836px; height: 270px;background-color:White;overflow: auto;">
            <div>
              <!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->
              <span style="color: #008080;"> 1</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #0000FF;">private</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #0000FF;">static</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #0000FF;">void</span>
              <span style="color: #000000;"> CreateWordDoc(</span>
              <span style="color: #0000FF;">string</span>
              <span style="color: #000000;"> docname) </span>
              <span style="color: #008080;"> 2</span>
              <span style="color: #000000;"> { </span>
              <span style="color: #008080;"> 3</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #0000FF;">using</span>
              <span style="color: #000000;"> (WordprocessingDocument
package </span>
              <span style="color: #000000;">=</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #008080;"> 4</span>
              <span style="color: #000000;"> WordprocessingDocument.Create(docname,
WordprocessingDocumentType.Document)) </span>
              <span style="color: #008080;"> 5</span>
              <span style="color: #000000;"> { </span>
              <span style="color: #008080;"> 6</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #008000;">//</span>
              <span style="color: #008000;"> Add
a new main document part. </span>
              <span style="color: #008000;">
              </span>
              <span style="color: #008080;"> 7</span>
              <span style="color: #008000;">
              </span>
              <span style="color: #000000;"> package.AddMainDocumentPart(); </span>
              <span style="color: #008080;"> 8</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #008080;"> 9</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #008000;">//</span>
              <span style="color: #008000;"> Create
the Document DOM - which could be from a template XML file or so. </span>
              <span style="color: #008000;">
              </span>
              <span style="color: #008080;">10</span>
              <span style="color: #008000;">
              </span>
              <span style="color: #000000;"> package.MainDocumentPart.Document </span>
              <span style="color: #000000;">=</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #008080;">11</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #0000FF;">new</span>
              <span style="color: #000000;"> Document( </span>
              <span style="color: #008080;">12</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #0000FF;">new</span>
              <span style="color: #000000;"> Body( </span>
              <span style="color: #008080;">13</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #0000FF;">new</span>
              <span style="color: #000000;"> Paragraph( </span>
              <span style="color: #008080;">14</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #0000FF;">new</span>
              <span style="color: #000000;"> Run( </span>
              <span style="color: #008080;">15</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #0000FF;">new</span>
              <span style="color: #000000;"> Text(</span>
              <span style="color: #800000;">"</span>
              <span style="color: #800000;">Hello
World!</span>
              <span style="color: #800000;">"</span>
              <span style="color: #000000;">))))); </span>
              <span style="color: #008080;">16</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #008080;">17</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #008000;">//</span>
              <span style="color: #008000;">add
props.</span>
              <span style="color: #008000;">
              </span>
              <span style="color: #008080;">18</span>
              <span style="color: #008000;">
              </span>
              <span style="color: #000000;"> CustomFilePropertiesPart
pt </span>
              <span style="color: #000000;">=</span>
              <span style="color: #000000;"> package.CustomFilePropertiesPart; </span>
              <span style="color: #008080;">19</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #0000FF;">if</span>
              <span style="color: #000000;"> (pt</span>
              <span style="color: #000000;">==</span>
              <span style="color: #0000FF;">null</span>
              <span style="color: #000000;">) </span>
              <span style="color: #008080;">20</span>
              <span style="color: #000000;"> pt </span>
              <span style="color: #000000;">=</span>
              <span style="color: #000000;"> package.AddCustomFilePropertiesPart(); </span>
              <span style="color: #008080;">21</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #008080;">22</span>
              <span style="color: #000000;"> XmlDocument
xdoc </span>
              <span style="color: #000000;">=</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #0000FF;">new</span>
              <span style="color: #000000;"> XmlDocument(); </span>
              <span style="color: #008080;">23</span>
              <span style="color: #000000;"> xdoc.LoadXml(</span>
              <span style="color: #800000;">"</span>
              <span style="color: #800000;">&lt;Properties
xmlns='http://schemas.openxmlformats.org/officeDocument/2006/custom-properties' </span>
              <span style="color: #800000;">"</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #008080;">24</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #000000;">+</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #800000;">"</span>
              <span style="color: #800000;">xmlns:vt='http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes'&gt;</span>
              <span style="color: #800000;">"</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #008080;">25</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #000000;">+</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #800000;">"</span>
              <span style="color: #800000;">&lt;property
fmtid='{D5CDD505-2E9C-101B-9397-08002B2CF9AE}' pid='2' name='temp'&gt; </span>
              <span style="color: #800000;">"</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #008080;">26</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #000000;">+</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #800000;">"</span>
              <span style="color: #800000;">&lt;vt:lpwstr&gt;Done
in Open XML&lt;/vt:lpwstr&gt;</span>
              <span style="color: #800000;">"</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #008080;">27</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #000000;">+</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #800000;">"</span>
              <span style="color: #800000;">&lt;/property&gt;</span>
              <span style="color: #800000;">"</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #008080;">28</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #000000;">+</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #800000;">"</span>
              <span style="color: #800000;">&lt;property
fmtid='{D5CDD505-2E9C-101B-9397-08002B2CF9AE}' pid='3' name='micksdemo'&gt;</span>
              <span style="color: #800000;">"</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #008080;">29</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #000000;">+</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #800000;">"</span>
              <span style="color: #800000;">&lt;vt:lpwstr&gt;SharePoint
is Cool&lt;/vt:lpwstr&gt;</span>
              <span style="color: #800000;">"</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #008080;">30</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #000000;">+</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #800000;">"</span>
              <span style="color: #800000;">&lt;/property&gt;</span>
              <span style="color: #800000;">"</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #008080;">31</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #000000;">+</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #800000;">"</span>
              <span style="color: #800000;">&lt;/Properties&gt;</span>
              <span style="color: #800000;">"</span>
              <span style="color: #000000;">); </span>
              <span style="color: #008080;">32</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #008080;">33</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #008000;">//</span>
              <span style="color: #008000;">save
the props</span>
              <span style="color: #008000;">
              </span>
              <span style="color: #008080;">34</span>
              <span style="color: #008000;">
              </span>
              <span style="color: #000000;"> xdoc.Save(pt.GetStream()); </span>
              <span style="color: #008080;">35</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #008080;">36</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #008000;">//</span>
              <span style="color: #008000;"> Save
changes to the main document part. </span>
              <span style="color: #008000;">
              </span>
              <span style="color: #008080;">37</span>
              <span style="color: #008000;">
              </span>
              <span style="color: #000000;"> package.MainDocumentPart.Document.Save(); </span>
              <span style="color: #008080;">38</span>
              <span style="color: #000000;">
              </span>
              <span style="color: #008080;">39</span>
              <span style="color: #000000;"> } </span>
              <span style="color: #008080;">40</span>
              <span style="color: #000000;"> }</span>
            </div>
          </pre>
          <!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com -->
        </div>
        <p>
All in all pretty straight forward using <strong>OpenXML Format SDK 2.0</strong></p>
        <p>
Here’s the VS.NET2010 Solution of the above code - 
</p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:fb3a1972-4489-4e52-abe7-25a00bb07fdf:23110ca9-876c-4ede-8fd8-f20f123c93af" class="wlWriterEditableSmartContent">
          <p>
            <a href="http://blogs.breezetraining.com.au/mickb/content/2010/SharePoint2010CreatingWordDocumentswitho_C120/WordDocCreator.zip" target="_blank">WordDocCreator</a>
          </p>
        </div>
        <img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=1b8f74db-b38e-487f-9877-f3879cb70114" />
      </body>
      <title>SharePoint 2010: Creating Word Documents without Word</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,1b8f74db-b38e-487f-9877-f3879cb70114.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2010/09/20/SharePoint2010CreatingWordDocumentsWithoutWord.aspx</link>
      <pubDate>Mon, 20 Sep 2010 03:44:10 GMT</pubDate>
      <description>&lt;p&gt;
The other day I had a need to create many word documents in code and publish them
up to a SharePoint 2010 site.
&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9D7513F9-C04C-4721-824A-2B34F0212519:fb3bccb3-0e64-477b-b51f-118189c602c0" class="wlWriterEditableSmartContent"&gt;&lt;pre style=" width: 742px; height: 202px;background-color:White;overflow: auto;"&gt;
&lt;div&gt;
&lt;!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--&gt;&lt;span style="color: #008080;"&gt; 1&lt;/span&gt; &lt;span style="color: #0000FF;"&gt;static&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;void&lt;/span&gt;&lt;span style="color: #000000;"&gt; Main(&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;[]
args) &lt;/span&gt;&lt;span style="color: #008080;"&gt; 2&lt;/span&gt; &lt;span style="color: #000000;"&gt; { &lt;/span&gt;&lt;span style="color: #008080;"&gt; 3&lt;/span&gt; &lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;int&lt;/span&gt;&lt;span style="color: #000000;"&gt; iMAXDocs &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;200&lt;/span&gt;&lt;span style="color: #000000;"&gt;; &lt;/span&gt;&lt;span style="color: #008080;"&gt; 4&lt;/span&gt; &lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt; fpath &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; Path.Combine(Directory.GetCurrentDirectory(), &lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Docs&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;); &lt;/span&gt;&lt;span style="color: #008080;"&gt; 5&lt;/span&gt; &lt;span style="color: #000000;"&gt; Directory.CreateDirectory(fpath); &lt;/span&gt;&lt;span style="color: #008080;"&gt; 6&lt;/span&gt; &lt;span style="color: #000000;"&gt; Console.WriteLine(&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Path
created&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;); &lt;/span&gt;&lt;span style="color: #008080;"&gt; 7&lt;/span&gt; &lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;for&lt;/span&gt;&lt;span style="color: #000000;"&gt; (&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;int&lt;/span&gt;&lt;span style="color: #000000;"&gt; i &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;;
i &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; iMAXDocs;
i&lt;/span&gt;&lt;span style="color: #000000;"&gt;++&lt;/span&gt;&lt;span style="color: #000000;"&gt;) &lt;/span&gt;&lt;span style="color: #008080;"&gt; 8&lt;/span&gt; &lt;span style="color: #000000;"&gt; { &lt;/span&gt;&lt;span style="color: #008080;"&gt; 9&lt;/span&gt; &lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt; docname &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; Path.Combine(fpath, &lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Doc&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; i.ToString() &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;.docx&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;); &lt;/span&gt;&lt;span style="color: #008080;"&gt;10&lt;/span&gt; &lt;span style="color: #000000;"&gt; CreateWordDoc(docname); &lt;/span&gt;&lt;span style="color: #008080;"&gt;11&lt;/span&gt; &lt;span style="color: #000000;"&gt; Console.WriteLine(&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Created
Doc {0} of {1}&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;,
i, iMAXDocs); &lt;/span&gt;&lt;span style="color: #008080;"&gt;12&lt;/span&gt; &lt;span style="color: #000000;"&gt; } &lt;/span&gt;&lt;span style="color: #008080;"&gt;13&lt;/span&gt; &lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #008080;"&gt;14&lt;/span&gt; &lt;span style="color: #000000;"&gt; }&lt;/span&gt;
&lt;/div&gt;
&lt;/pre&gt;
&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;
&lt;/div&gt;
&lt;p&gt;
So essentially it went something like that…with the key really being line#10 – &lt;strong&gt;CreateWordDoc&lt;/strong&gt;(…).
The CreateWordDoc routine also adds a couple of custom String properties to the document.
&lt;/p&gt;
&lt;p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9D7513F9-C04C-4721-824A-2B34F0212519:643186a0-d267-4208-ad57-15c56761bb09" class="wlWriterEditableSmartContent"&gt;&lt;pre style=" width: 836px; height: 270px;background-color:White;overflow: auto;"&gt;
&lt;div&gt;
&lt;!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--&gt;&lt;span style="color: #008080;"&gt; 1&lt;/span&gt; &lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;private&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;static&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;void&lt;/span&gt;&lt;span style="color: #000000;"&gt; CreateWordDoc(&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt; docname) &lt;/span&gt;&lt;span style="color: #008080;"&gt; 2&lt;/span&gt; &lt;span style="color: #000000;"&gt; { &lt;/span&gt;&lt;span style="color: #008080;"&gt; 3&lt;/span&gt; &lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt; (WordprocessingDocument
package &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #008080;"&gt; 4&lt;/span&gt; &lt;span style="color: #000000;"&gt; WordprocessingDocument.Create(docname,
WordprocessingDocumentType.Document)) &lt;/span&gt;&lt;span style="color: #008080;"&gt; 5&lt;/span&gt; &lt;span style="color: #000000;"&gt; { &lt;/span&gt;&lt;span style="color: #008080;"&gt; 6&lt;/span&gt; &lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt; Add
a new main document part. &lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #008080;"&gt; 7&lt;/span&gt; &lt;span style="color: #008000;"&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; package.AddMainDocumentPart(); &lt;/span&gt;&lt;span style="color: #008080;"&gt; 8&lt;/span&gt; &lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #008080;"&gt; 9&lt;/span&gt; &lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt; Create
the Document DOM - which could be from a template XML file or so. &lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #008080;"&gt;10&lt;/span&gt; &lt;span style="color: #008000;"&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; package.MainDocumentPart.Document &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #008080;"&gt;11&lt;/span&gt; &lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; Document( &lt;/span&gt;&lt;span style="color: #008080;"&gt;12&lt;/span&gt; &lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; Body( &lt;/span&gt;&lt;span style="color: #008080;"&gt;13&lt;/span&gt; &lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; Paragraph( &lt;/span&gt;&lt;span style="color: #008080;"&gt;14&lt;/span&gt; &lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; Run( &lt;/span&gt;&lt;span style="color: #008080;"&gt;15&lt;/span&gt; &lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; Text(&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Hello
World!&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;))))); &lt;/span&gt;&lt;span style="color: #008080;"&gt;16&lt;/span&gt; &lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #008080;"&gt;17&lt;/span&gt; &lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;add
props.&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #008080;"&gt;18&lt;/span&gt; &lt;span style="color: #008000;"&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; CustomFilePropertiesPart
pt &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; package.CustomFilePropertiesPart; &lt;/span&gt;&lt;span style="color: #008080;"&gt;19&lt;/span&gt; &lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (pt&lt;/span&gt;&lt;span style="color: #000000;"&gt;==&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;) &lt;/span&gt;&lt;span style="color: #008080;"&gt;20&lt;/span&gt; &lt;span style="color: #000000;"&gt; pt &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; package.AddCustomFilePropertiesPart(); &lt;/span&gt;&lt;span style="color: #008080;"&gt;21&lt;/span&gt; &lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #008080;"&gt;22&lt;/span&gt; &lt;span style="color: #000000;"&gt; XmlDocument
xdoc &lt;/span&gt;&lt;span style="color: #000000;"&gt;=&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; XmlDocument(); &lt;/span&gt;&lt;span style="color: #008080;"&gt;23&lt;/span&gt; &lt;span style="color: #000000;"&gt; xdoc.LoadXml(&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;lt;Properties
xmlns='http://schemas.openxmlformats.org/officeDocument/2006/custom-properties' &lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #008080;"&gt;24&lt;/span&gt; &lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;xmlns:vt='http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes'&amp;gt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #008080;"&gt;25&lt;/span&gt; &lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;lt;property
fmtid='{D5CDD505-2E9C-101B-9397-08002B2CF9AE}' pid='2' name='temp'&amp;gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #008080;"&gt;26&lt;/span&gt; &lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;lt;vt:lpwstr&amp;gt;Done
in Open XML&amp;lt;/vt:lpwstr&amp;gt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #008080;"&gt;27&lt;/span&gt; &lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;lt;/property&amp;gt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #008080;"&gt;28&lt;/span&gt; &lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;lt;property
fmtid='{D5CDD505-2E9C-101B-9397-08002B2CF9AE}' pid='3' name='micksdemo'&amp;gt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #008080;"&gt;29&lt;/span&gt; &lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;lt;vt:lpwstr&amp;gt;SharePoint
is Cool&amp;lt;/vt:lpwstr&amp;gt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #008080;"&gt;30&lt;/span&gt; &lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;lt;/property&amp;gt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #008080;"&gt;31&lt;/span&gt; &lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;lt;/Properties&amp;gt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000;"&gt;); &lt;/span&gt;&lt;span style="color: #008080;"&gt;32&lt;/span&gt; &lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #008080;"&gt;33&lt;/span&gt; &lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;save
the props&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #008080;"&gt;34&lt;/span&gt; &lt;span style="color: #008000;"&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; xdoc.Save(pt.GetStream()); &lt;/span&gt;&lt;span style="color: #008080;"&gt;35&lt;/span&gt; &lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #008080;"&gt;36&lt;/span&gt; &lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt; Save
changes to the main document part. &lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #008080;"&gt;37&lt;/span&gt; &lt;span style="color: #008000;"&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt; package.MainDocumentPart.Document.Save(); &lt;/span&gt;&lt;span style="color: #008080;"&gt;38&lt;/span&gt; &lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #008080;"&gt;39&lt;/span&gt; &lt;span style="color: #000000;"&gt; } &lt;/span&gt;&lt;span style="color: #008080;"&gt;40&lt;/span&gt; &lt;span style="color: #000000;"&gt; }&lt;/span&gt;
&lt;/div&gt;
&lt;/pre&gt;
&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;
&lt;/div&gt;
&gt;
&lt;p&gt;
All in all pretty straight forward using &lt;strong&gt;OpenXML Format SDK 2.0&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Here’s the VS.NET2010 Solution of the above code - 
&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:fb3a1972-4489-4e52-abe7-25a00bb07fdf:23110ca9-876c-4ede-8fd8-f20f123c93af" class="wlWriterEditableSmartContent"&gt;
&lt;p&gt;
&lt;a href="http://blogs.breezetraining.com.au/mickb/content/2010/SharePoint2010CreatingWordDocumentswitho_C120/WordDocCreator.zip" target="_blank"&gt;WordDocCreator&lt;/a&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=1b8f74db-b38e-487f-9877-f3879cb70114" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,1b8f74db-b38e-487f-9877-f3879cb70114.aspx</comments>
      <category>SharePoint</category>
      <category>SharePoint/2010</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=bdebdf7e-20c2-4d62-ac58-6565e0b2284d</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,bdebdf7e-20c2-4d62-ac58-6565e0b2284d.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,bdebdf7e-20c2-4d62-ac58-6565e0b2284d.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=bdebdf7e-20c2-4d62-ac58-6565e0b2284d</wfw:commentRss>
      <title>Running VMWare with VHDs – Getting rid of the STOP 0x7B BSOD Error…..</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,bdebdf7e-20c2-4d62-ac58-6565e0b2284d.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2010/08/13/RunningVMWareWithVHDsGettingRidOfTheSTOP0x7BBSODError.aspx</link>
      <pubDate>Fri, 13 Aug 2010 07:10:29 GMT</pubDate>
      <description>&lt;p&gt;
Well folks, after a recent week of performance issues running a SharePoint 2010 VM
image (40GB) on Virtual Box (v3.0.14 &amp; v3.2.8) Olaf (a fellow Breezer) and I sat down
and put our thinking caps on as how to improve things.
&lt;/p&gt;
&lt;p&gt;
- Hyper-V wasn’t an option due to classroom setups and portability issues.
&lt;/p&gt;
&lt;p&gt;
After scouring the forums, posts, blogs and other to see how to squeeze every last
bit of performance from Virtual Box – I’ve come to the conclusion that &lt;strong&gt;current
versions just don’t take full advantage of Core i7 architectures&lt;/strong&gt;, hence they
run dog slow (1 virtual cpu seems to run better than multiple).
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Enter VMWare – &lt;/strong&gt;I’m relatively new to the world of VMWare, although
others on my team swear by it. 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;So I downloaded VMWare Player&lt;/strong&gt; (free) &lt;a href="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/RunningVMWarewithVHDsGettingridoftheSTO_F172/image_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/RunningVMWarewithVHDsGettingridoftheSTO_F172/image_thumb.png" width="103" height="118"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
And configured a Virtual Machine (or two)
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/RunningVMWarewithVHDsGettingridoftheSTO_F172/image_4.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/RunningVMWarewithVHDsGettingridoftheSTO_F172/image_thumb_1.png" width="244" height="207"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
So the issue is (as I’m sure you’re well aware if you’re reading this), is that booting
up Windows 2008 R2 (in my case), the native disks are &lt;strong&gt;SCSI&lt;/strong&gt; and we
get the dreaded &lt;strong&gt;Inaccessible Boot Device error &lt;/strong&gt;(stop 0x7B).
&lt;/p&gt;
&lt;p&gt;
(Back in WinXP, Win2000 &amp; Win2003 (I think) there *used* to be a recovery option that
you could &lt;strong&gt;repair my boot environment&lt;/strong&gt; and it would ‘rediscover’ all
the disks etc and you’d be on your way)
&lt;/p&gt;
&lt;p&gt;
The aim is boot into Windows, allow it to discover, load and install the VMWare SCSI
drivers (from LSI…) and then in theory you’re good to go.
&lt;/p&gt;
&lt;p&gt;
After drilling down through the VMWare forums (a foreign place for me), there’s a
few articles on ‘injecting drivers’ into the system, startup etc – none of these techniques
worked for me (I booted to Repair window and ran regedit to ‘tweak’ some startup registry
keys).
&lt;/p&gt;
&lt;p&gt;
Still stuck and after many hours we noticed that &lt;strong&gt;CD/DVD (IDE) &lt;/strong&gt;was
an available device on the system as follows:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/RunningVMWarewithVHDsGettingridoftheSTO_F172/image_6.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/RunningVMWarewithVHDsGettingridoftheSTO_F172/image_thumb_2.png" width="244" height="199"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
I thought “&lt;strong&gt;I wonder if I can attach the VHD as an IDE??”&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
After locating the &lt;strong&gt;VMWare VM config file&lt;/strong&gt; – a *.VMX file I saw a couple
of entries…
&lt;/p&gt;
&lt;p&gt;
ide1:0.present = "TRUE"&lt;br&gt;
ide1:0.filename = “…MicksBootIso.iso” 
&lt;p&gt;
&lt;p&gt;
So I thought, let me try 
&lt;p&gt;
&lt;p&gt;
ide1:0.present = "TRUE"&lt;br&gt;
ide1:0.filename= "D:\VHDs\VHDs\SharePoint2010_v2_Child.vhd" 
&lt;p&gt;
&lt;p&gt;
&lt;a href="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/RunningVMWarewithVHDsGettingridoftheSTO_F172/image_8.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/RunningVMWarewithVHDsGettingridoftheSTO_F172/image_thumb_3.png" width="244" height="206"&gt;&lt;/a&gt; 
&lt;p&gt;
&lt;br&gt;
Saved and booted up like a bought one!
&lt;/p&gt;
&lt;p&gt;
So for now…this works fantastically &lt;strong&gt;AND THE PERFORMANCE is at least 3-4 times
faster than Virtual Box for this image&lt;/strong&gt;. Just really snappy!
&lt;/p&gt;
&lt;p&gt;
Here’s a sample file attached – enjoy.
&lt;/p&gt;
&lt;a href="http://blogs.breezetraining.com.au/mickb/content/binary/Windows Server 2008 R2 x64.zip"&gt;Windows
Server 2008 R2 x64.zip (1.12 KB)&lt;/a&gt;&lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=bdebdf7e-20c2-4d62-ac58-6565e0b2284d" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,bdebdf7e-20c2-4d62-ac58-6565e0b2284d.aspx</comments>
      <category>BizTalk</category>
      <category>General</category>
      <category>SharePoint</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=1922491d-23f6-4c5e-b6c5-a6533e693d7a</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,1922491d-23f6-4c5e-b6c5-a6533e693d7a.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,1922491d-23f6-4c5e-b6c5-a6533e693d7a.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=1922491d-23f6-4c5e-b6c5-a6533e693d7a</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Olaf and I were cracking away on some SharePoint 2010 work which we thought should
be simple…point SPMetal to the site and start LINQ-ing to our hearts content…..
</p>
        <p>
with the one exception that we couldn’t select items from a list based on their <strong>Content
Type</strong>.
</p>
        <p>
By default <strong>SPMetal.exe doesn’t include these ‘system’ fields</strong> (apart
from ID + Title – go figure) and the secret is to use an <strong>Override file.</strong></p>
        <p>
The good oil is:<a title="http://msdn.microsoft.com/en-us/library/ee535056.aspx" href="http://msdn.microsoft.com/en-us/library/ee535056.aspx">http://msdn.microsoft.com/en-us/library/ee535056.aspx</a><br />
(Here’s a good article on how .NET Types are mapped to SharePoint - <a title="http://msdn.microsoft.com/en-us/library/ee536245.aspx" href="http://msdn.microsoft.com/en-us/library/ee536245.aspx">http://msdn.microsoft.com/en-us/library/ee536245.aspx</a>)
</p>
        <p>
          <strong>The simple override/parameters file:</strong>
        </p>
        <pre style="font-family: consolas">
          <span style="color: blue">&lt;</span>
          <span style="color: #a31515">Web</span>
          <span style="color: blue"> </span>
          <span style="color: red">AccessModifier</span>
          <span style="color: blue">=</span>"<span style="color: blue">Internal</span>"<span style="color: blue"> </span><span style="color: red">xmlns</span><span style="color: blue">=</span>"<span style="color: blue">http://schemas.microsoft.com/SharePoint/2009/spmetal</span>"<span style="color: blue">&gt;</span><br /><span style="color: blue">  &lt;</span><span style="color: #a31515">ContentType</span><span style="color: blue"> </span><span style="color: red">Name</span><span style="color: blue">=</span>"<span style="color: blue">Item</span>"<span style="color: blue"> </span><span style="color: red">Class</span><span style="color: blue">=</span>"<span style="color: blue">Item</span>"<span style="color: blue">&gt;</span><br /><span style="color: blue">    &lt;</span><span style="color: #a31515">Column</span><span style="color: blue"> </span><span style="color: red">Name</span><span style="color: blue">=</span>"<span style="color: blue">ContentType</span>"<span style="color: blue"> </span><span style="color: red">Member</span><span style="color: blue">=</span>"<span style="color: blue">ContentType</span>"<span style="color: blue"> /&gt;</span><br /><span style="color: blue">   </span><br /><span style="color: blue">  &lt;/</span><span style="color: #a31515">ContentType</span><span style="color: blue">&gt;</span><br /><span style="color: blue">  </span><br /><span style="color: blue">&lt;/</span><span style="color: #a31515">Web</span><span style="color: blue">&gt;</span><br /></pre>
        <p>
 
</p>
        <p>
          <strong>The SPMetal Command Line</strong>
        </p>
        <p>
          <a href="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/Shar.exeandsystemfieldsnamelyContentType_FF88/image_2.png">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/Shar.exeandsystemfieldsnamelyContentType_FF88/image_thumb.png" width="667" height="52" />
          </a>
        </p>
        <p>
          <strong>The VS.NET Code</strong>
        </p>
        <blockquote>
          <pre style="font-family: consolas"> <span style="color: blue">static</span> <span style="color: blue">void</span> Main(<span style="color: blue">string</span>[]
args)<br />
        {<br />
            <span style="color: blue">using</span> (<span style="color: #2b91af">BreezeDataContext</span> dc
= <span style="color: blue">new</span> <span style="color: #2b91af">BreezeDataContext</span>(<span style="color: #a31515">"http://breezelocal"</span>))<br />
            {<br />
                <span style="color: blue">var</span> myitems
= <span style="color: blue">from</span> i <span style="color: blue">in</span> dc.GetList&lt;<span style="color: #2b91af">ContentListTraining</span>&gt;(<span style="color: #a31515">"My
Content List"</span>)<br />
                              <span style="color: blue">where</span> i.ContentType
== <span style="color: #a31515">"Training"</span><br />
                              <span style="color: blue">select</span> i;<br />
                <span style="color: blue">var</span> courses
= myitems.ToList&lt;<span style="color: #2b91af">ContentListTraining</span>&gt;();<br /><br />
                <span style="color: #2b91af">Console</span>.WriteLine(<span style="color: #a31515">"There
are {0} items"</span>,courses[0].Title);<br />
                    
<br />
            }<br /><br />
            <span style="color: #2b91af">Console</span>.ReadLine();<br />
        }</pre>
        </blockquote>
        <img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=1922491d-23f6-4c5e-b6c5-a6533e693d7a" />
      </body>
      <title>SharePoint 2010: SPMetal.exe and system fields namely ContentType</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,1922491d-23f6-4c5e-b6c5-a6533e693d7a.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2010/07/28/SharePoint2010SPMetalexeAndSystemFieldsNamelyContentType.aspx</link>
      <pubDate>Wed, 28 Jul 2010 08:10:19 GMT</pubDate>
      <description>&lt;p&gt;
Olaf and I were cracking away on some SharePoint 2010 work which we thought should
be simple…point SPMetal to the site and start LINQ-ing to our hearts content…..
&lt;/p&gt;
&lt;p&gt;
with the one exception that we couldn’t select items from a list based on their &lt;strong&gt;Content
Type&lt;/strong&gt;.
&lt;/p&gt;
&lt;p&gt;
By default &lt;strong&gt;SPMetal.exe doesn’t include these ‘system’ fields&lt;/strong&gt; (apart
from ID + Title – go figure) and the secret is to use an &lt;strong&gt;Override file.&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
The good oil is:&lt;a title="http://msdn.microsoft.com/en-us/library/ee535056.aspx" href="http://msdn.microsoft.com/en-us/library/ee535056.aspx"&gt;http://msdn.microsoft.com/en-us/library/ee535056.aspx&lt;/a&gt;
&lt;br&gt;
(Here’s a good article on how .NET Types are mapped to SharePoint - &lt;a title="http://msdn.microsoft.com/en-us/library/ee536245.aspx" href="http://msdn.microsoft.com/en-us/library/ee536245.aspx"&gt;http://msdn.microsoft.com/en-us/library/ee536245.aspx&lt;/a&gt;)
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;The simple override/parameters file:&lt;/strong&gt;
&lt;/p&gt;
&lt;pre style="font-family: consolas"&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Web&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: red"&gt;AccessModifier&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;Internal&lt;/span&gt;"&lt;span style="color: blue"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: red"&gt;xmlns&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;http://schemas.microsoft.com/SharePoint/2009/spmetal&lt;/span&gt;"&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color: blue"&gt;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;ContentType&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: red"&gt;Name&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;Item&lt;/span&gt;"&lt;span style="color: blue"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: red"&gt;Class&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;Item&lt;/span&gt;"&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Column&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: red"&gt;Name&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;ContentType&lt;/span&gt;"&lt;span style="color: blue"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: red"&gt;Member&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;ContentType&lt;/span&gt;"&lt;span style="color: blue"&gt; /&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color: blue"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;
&lt;br&gt;
&lt;span style="color: blue"&gt;&amp;nbsp; &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;ContentType&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;span style="color: blue"&gt;&amp;nbsp; &lt;/span&gt;
&lt;br&gt;
&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Web&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;/pre&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;The SPMetal Command Line&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/Shar.exeandsystemfieldsnamelyContentType_FF88/image_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/Shar.exeandsystemfieldsnamelyContentType_FF88/image_thumb.png" width="667" height="52"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;The VS.NET Code&lt;/strong&gt;
&lt;/p&gt;
&lt;blockquote&gt;&lt;pre style="font-family: consolas"&gt;&amp;nbsp;&lt;span style="color: blue"&gt;static&lt;/span&gt;&amp;nbsp;&lt;span style="color: blue"&gt;void&lt;/span&gt; Main(&lt;span style="color: blue"&gt;string&lt;/span&gt;[]
args)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;using&lt;/span&gt; (&lt;span style="color: #2b91af"&gt;BreezeDataContext&lt;/span&gt; dc
= &lt;span style="color: blue"&gt;new&lt;/span&gt;&amp;nbsp;&lt;span style="color: #2b91af"&gt;BreezeDataContext&lt;/span&gt;(&lt;span style="color: #a31515"&gt;"http://breezelocal"&lt;/span&gt;))&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;var&lt;/span&gt; myitems
= &lt;span style="color: blue"&gt;from&lt;/span&gt; i &lt;span style="color: blue"&gt;in&lt;/span&gt; dc.GetList&amp;lt;&lt;span style="color: #2b91af"&gt;ContentListTraining&lt;/span&gt;&amp;gt;(&lt;span style="color: #a31515"&gt;"My
Content List"&lt;/span&gt;)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;where&lt;/span&gt; i.ContentType
== &lt;span style="color: #a31515"&gt;"Training"&lt;/span&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;select&lt;/span&gt; i;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;var&lt;/span&gt; courses
= myitems.ToList&amp;lt;&lt;span style="color: #2b91af"&gt;ContentListTraining&lt;/span&gt;&amp;gt;();&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #2b91af"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color: #a31515"&gt;"There
are {0} items"&lt;/span&gt;,courses[0].Title);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #2b91af"&gt;Console&lt;/span&gt;.ReadLine();&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/pre&gt;&lt;/blockquote&gt;&lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=1922491d-23f6-4c5e-b6c5-a6533e693d7a" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,1922491d-23f6-4c5e-b6c5-a6533e693d7a.aspx</comments>
      <category>.NET Developer</category>
      <category>SharePoint</category>
      <category>SharePoint/2010</category>
      <category>Tips</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=49a2da15-d39a-48ba-bb70-7d8770a6385c</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,49a2da15-d39a-48ba-bb70-7d8770a6385c.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,49a2da15-d39a-48ba-bb70-7d8770a6385c.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=49a2da15-d39a-48ba-bb70-7d8770a6385c</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I’m in the process of planning a SP2007 to SP2010 ‘migration’ moving over the content
database and other web artifacts.
</p>
        <p>
I was making sure all things were ticked off and available in the new SP2010 environment
such as – additional external scripts, paths, externally accessible images, webparts
+ flash movie files.
</p>
        <p>
Migrated over – fired up the browser and after some minor tweaking most things came
over, except for the <strong>flash movies.</strong></p>
        <p>
          <strong>The flash movie was not being displayed</strong>.
</p>
        <p>
So naturally you think – must be a path, permission, activeX, flash object declaration,
upload or even a masterpage might need a tweak…
</p>
        <p>
Fired up FireBug in firefox and went to work – we could access the *.swf file directly
from within the browser, but when the Page loaded with the link in there… <strong>no
go</strong>.
</p>
        <p>
          <strong>In fact we got a ‘304 not modified’ response</strong> within <strong>FireBug</strong> –
which seems pretty normal if the flash player already has the movie locally and it’s
just comparing the server version versus the local…but still no flash playing.
</p>
        <p>
          <strong>SharePoint 2010 Web Applications restrict ‘active’ content – aka Flash out
of the box.</strong>
        </p>
        <p>
After some digging and a seemingly unrelated option appeared in<strong></strong>Web
Application –&gt; General Settings.<br /><strong>Browser File Handling - Default setting: STRICT</strong></p>
        <p>
This was the culprit, setting this to permissive did the trick. 
</p>
        <p>
          <a href="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SharePoint2010FlashGotcha_C2E1/image_2.png">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SharePoint2010FlashGotcha_C2E1/image_thumb.png" width="628" height="565" />
          </a>
        </p>
        <p>
Wow! Have a great weekend folks!
</p>
        <img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=49a2da15-d39a-48ba-bb70-7d8770a6385c" />
      </body>
      <title>SharePoint 2010: Flash Gotcha…</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,49a2da15-d39a-48ba-bb70-7d8770a6385c.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2010/07/16/SharePoint2010FlashGotcha.aspx</link>
      <pubDate>Fri, 16 Jul 2010 03:51:43 GMT</pubDate>
      <description>&lt;p&gt;
I’m in the process of planning a SP2007 to SP2010 ‘migration’ moving over the content
database and other web artifacts.
&lt;/p&gt;
&lt;p&gt;
I was making sure all things were ticked off and available in the new SP2010 environment
such as – additional external scripts, paths, externally accessible images, webparts
+ flash movie files.
&lt;/p&gt;
&lt;p&gt;
Migrated over – fired up the browser and after some minor tweaking most things came
over, except for the &lt;strong&gt;flash movies.&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;The flash movie was not being displayed&lt;/strong&gt;.
&lt;/p&gt;
&lt;p&gt;
So naturally you think – must be a path, permission, activeX, flash object declaration,
upload or even a masterpage might need a tweak…
&lt;/p&gt;
&lt;p&gt;
Fired up FireBug in firefox and went to work – we could access the *.swf file directly
from within the browser, but when the Page loaded with the link in there… &lt;strong&gt;no
go&lt;/strong&gt;.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;In fact we got a ‘304 not modified’ response&lt;/strong&gt; within &lt;strong&gt;FireBug&lt;/strong&gt; –
which seems pretty normal if the flash player already has the movie locally and it’s
just comparing the server version versus the local…but still no flash playing.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;SharePoint 2010 Web Applications restrict ‘active’ content – aka Flash out
of the box.&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
After some digging and a seemingly unrelated option appeared in&lt;strong&gt; &lt;/strong&gt;Web
Application –&amp;gt; General Settings.&lt;br&gt;
&lt;strong&gt;Browser File Handling - Default setting: STRICT&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
This was the culprit, setting this to permissive did the trick. 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SharePoint2010FlashGotcha_C2E1/image_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SharePoint2010FlashGotcha_C2E1/image_thumb.png" width="628" height="565"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Wow! Have a great weekend folks!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=49a2da15-d39a-48ba-bb70-7d8770a6385c" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,49a2da15-d39a-48ba-bb70-7d8770a6385c.aspx</comments>
      <category>SharePoint</category>
      <category>SharePoint/2010</category>
      <category>Tips</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=fd448cca-bed8-4d53-b1b3-bbeefa9cd280</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,fd448cca-bed8-4d53-b1b3-bbeefa9cd280.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,fd448cca-bed8-4d53-b1b3-bbeefa9cd280.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=fd448cca-bed8-4d53-b1b3-bbeefa9cd280</wfw:commentRss>
      <title>SharePoint 2010: Another Breeze Bootcamp fast approaching…</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,fd448cca-bed8-4d53-b1b3-bbeefa9cd280.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2010/07/12/SharePoint2010AnotherBreezeBootcampFastApproaching.aspx</link>
      <pubDate>Mon, 12 Jul 2010 13:21:46 GMT</pubDate>
      <description>&lt;p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;b style="mso-bidi-font-weight: normal"&gt;&lt;span style="font-family: 'Dotum','sans-serif'; letter-spacing: -0.9pt; color: #305480; font-size: 30pt"&gt;&lt;?xml:namespace prefix = w /&gt;
&lt;w:sdt id="1004468042" title="Title" storeitemid="X_6C3C8BC8-F283-45AE-878A-BAB7291924A1" text="t" xpath="/ns1:coreProperties[1]/ns0:title[1]" prefixmappings="xmlns:ns0='http://purl.org/dc/elements/1.1/' xmlns:ns1='http://schemas.openxmlformats.org/package/2006/metadata/core-properties' "&gt;Breeze SharePoint 2010 Bootcamp&lt;/w:sdt&gt;
&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: black; mso-fareast-font-family: 'Times New Roman'"&gt; &lt;/span&gt;&lt;span style="font-family: 'Dotum','sans-serif'; letter-spacing: -1.5pt; color: #4579b9; font-size: 30pt; mso-bidi-font-family: calibri"&gt;&lt;?xml:namespace prefix = o /&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p style="margin-bottom: 10pt" class="MsoNormal"&gt;
&lt;span style="font-family: 'Calibri','sans-serif'; color: #f4740a; font-size: 14pt"&gt;The
Breeze SharePoint 2010 Bootcamp is here!&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p style="margin-bottom: 10pt" class="MsoNormal"&gt;
&lt;span style="z-index: 251658240; position: relative; mso-ignore: vglayout"&gt;&lt;span style="position: absolute; width: 73px; height: 73px; top: -223px; left: -78px"&gt; 
&lt;table cellspacing="0" cellpadding="0"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style="border-bottom: black 0.75pt solid; border-left: black 0.75pt solid; background: white; vertical-align: top; border-top: black 0.75pt solid; border-right: black 0.75pt solid" bgcolor="white" height="73" width="73"&gt;
&lt;span style="z-index: 251658240; position: absolute; mso-ignore: vglayout"&gt; 
&lt;table cellspacing="0" cellpadding="0" width="100%"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;div style="padding-bottom: 4.35pt; padding-left: 7.95pt; padding-right: 7.95pt; padding-top: 4.35pt" class="shape" v:shape="_x0000_s1026"&gt;
&lt;p class="MsoNormal"&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;
&lt;/p&gt;
&lt;xml&gt;
&lt;v:imagedata o:title="logo-sharepoint-2010" src="file:///C:\Users\kiddies\AppData\Local\Temp\msohtmlclip1\01\clip_image001.png"&gt;&lt;/v:imagedata&gt;
&lt;/xml&gt;
&lt;w:wrap type="square"&gt;&lt;/w:wrap&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/span&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/span&gt;&lt;/span&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: #5f5f5f; font-size: 10pt; mso-bidi-font-size: 11.0pt"&gt;Breeze
SharePoint 2010 Bootcamps – Building Real World Solutions&lt;/span&gt;&lt;/b&gt;&lt;span style="color: #5f5f5f; font-size: 10pt; mso-bidi-font-size: 11.0pt"&gt;
&lt;br&gt;
&lt;br&gt;
&lt;/span&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: #5f5f5f; font-size: 10pt; mso-bidi-font-size: 11.0pt"&gt;The
eagerly anticipated SharePoint 2010 Bootcamps are underway in Australia, and here’s
what some of the excitement is about. Technical training this year is all about value
for money. After the change in the economy, customers are more careful about where
their training budget is being allocated. This year, customers need technical training
that is relevant and an investment to their business. They are looking for knowledge
that will improve business efficiencies, provide real world scenarios and give students
the confidence to be hands-on when they leave the classroom.&lt;br&gt;
&lt;br&gt;
The new Breeze SharePoint 2010 Bootcamp has been designed to provide just that. Our
customers asked for an in-depth, technical, customized course that, if they were to
spend $$s on just one SharePoint&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;2010
course this year, would give them enough knowledge of the technology to build real
world solutions. &lt;/span&gt;&lt;span style="color: #333399"&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p style="margin-bottom: 10pt" class="MsoNormal"&gt;
&lt;span style="font-family: 'Calibri','sans-serif'; color: #5f5f5f; font-size: 10pt; mso-bidi-font-size: 11.0pt"&gt;These
bootcamps have been written for the ITPro &amp;amp; Developer who need to upgrade their
SharePoint skills, or are just starting out with SharePoint 2010. 
&lt;br&gt;
&lt;br&gt;
Be ready to roll up your sleeves and start your adventure &lt;a href="http://www.breeze.net/Training/default.aspx?PermID=8cedaaba-0607-45b3-b6ce-d63cc8296550"&gt;here&lt;/a&gt;.&lt;/span&gt;&lt;span style="color: #333399"&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p style="margin-bottom: 10pt" class="MsoNormal"&gt;
&lt;strong&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: #5f5f5f; font-size: 10pt; mso-bidi-font-size: 11.0pt"&gt;Sydney:
2nd August 2010&lt;/span&gt;&lt;/strong&gt;&lt;span style="color: #333399"&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p style="margin-bottom: 10pt" class="MsoNormal"&gt;
&lt;strong&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: #5f5f5f; font-size: 10pt; mso-bidi-font-size: 11.0pt"&gt;Price:
$3450 ex GST&lt;/span&gt;&lt;/strong&gt;&lt;span style="color: #333399"&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p style="margin-bottom: 10pt" class="MsoNormal"&gt;
&lt;strong&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: #5f5f5f; font-size: 10pt; mso-bidi-font-size: 11.0pt"&gt;Register
NOW: info {at} breeze {d.o.t.} net&lt;/span&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;strong&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: #333333; font-size: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;*Quote
this blog article to receive a special promotion.&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family: 'Trebuchet MS','sans-serif'; color: #333399; font-size: 10pt; mso-fareast-font-family: 'Times New Roman'"&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
Enjoy,
&lt;/p&gt;
&lt;p&gt;
Mick.
&lt;/p&gt;
&lt;p&gt;
p.s. anyone seen the octopus…I’ve got destiny with it….
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=fd448cca-bed8-4d53-b1b3-bbeefa9cd280" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,fd448cca-bed8-4d53-b1b3-bbeefa9cd280.aspx</comments>
      <category>SharePoint</category>
      <category>SharePoint/2010</category>
      <category>Training</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=a26033ec-47e6-449a-a4b2-b5d1066ae0fb</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,a26033ec-47e6-449a-a4b2-b5d1066ae0fb.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,a26033ec-47e6-449a-a4b2-b5d1066ae0fb.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=a26033ec-47e6-449a-a4b2-b5d1066ae0fb</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Well if you’re cracking on and updating your SharePoint Beta 2 Installs to RTM and
wanting to make it out the door while there’s some daylight left…then you’re better
than me…right now it’s dark! :)
</p>
        <p>
Ok – so I figured, no probs just do a <strong>stsadm –o addcontentdb</strong> … and
we’re well on our way, exactly the same from Beta 1 to Beta 2.
</p>
        <p>
This time <strong>SharePoint RTM doesn’t want to play. </strong>I got this error:
</p>
        <blockquote>
          <p>
            <font color="#0000ff">Sequence [<strong>Microsoft.SharePoint.Upgrade.SPContentDatabaseSequence</strong>]
cannot upgrade<br />
an object [<strong>SPContentDatabase</strong> Name=WSS_Content_Int2010] whose build
version 
<br />
[14.0.4536.1000] is too old. Upgrade requires [14.0.4730.1000] or higher.</font>
          </p>
        </blockquote>
        <div class="csharpcode">So as you can see the Version numbers of my Beta2 ContentDB
is close, but RTM is not playing.
</div>
        <div class="csharpcode"> 
</div>
        <div class="csharpcode">I thought I’d take a punt and see what happened:
</div>
        <ol>
          <li>
            <div class="csharpcode">Open up the ContentDB in SQL Management Studio and open up
the <strong>Tables</strong> folder.
</div>
          </li>
          <li>
            <div class="csharpcode">Locate the <strong>Versions Table </strong>(down the bottom).
</div>
          </li>
          <li>
            <div class="csharpcode">Open the <strong>Versions Table </strong>in Edit Mode and <strong>modify
the Rows which have a Version=14.0.4536.1000</strong> next to them. 
</div>
          </li>
          <li>
            <div class="csharpcode">Simply change the version number to <strong>14.0.4730.1000</strong></div>
          </li>
          <li>
            <div class="csharpcode">Save the changes
</div>
          </li>
          <li>
            <div class="csharpcode">Rerun the <strong>stsadm –o addcontentdb</strong> command
and bob’s your uncle.
</div>
          </li>
        </ol>
        <p class="csharpcode">
The ContentDB I used here was 18GB in size and all has come up trumps.
</p>
        <p class="csharpcode">
This may save you a bit of time and sure it’s a hack, but we’re now in RTM land.
</p>
        <p class="csharpcode">
Good luck :)
</p>
        <div class="csharpcode"> 
</div>
        <div class="csharpcode"> 
</div>
        <style type="text/css">.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
        <p>
          <a href="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SharePointErrorUpgradingSPContentDB.1000_1383A/image_2.png">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SharePointErrorUpgradingSPContentDB.1000_1383A/image_thumb.png" width="668" height="263" />
          </a>
        </p>
        <img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=a26033ec-47e6-449a-a4b2-b5d1066ae0fb" />
      </body>
      <title>SharePoint: Error Upgrading SP ContentDB from Beta 2 to RTM (14.0.4536.1000 –&gt; 14.0.4730.1000)</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,a26033ec-47e6-449a-a4b2-b5d1066ae0fb.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2010/04/24/SharePointErrorUpgradingSPContentDBFromBeta2ToRTM1404536100014047301000.aspx</link>
      <pubDate>Sat, 24 Apr 2010 12:13:39 GMT</pubDate>
      <description>&lt;p&gt;
Well if you’re cracking on and updating your SharePoint Beta 2 Installs to RTM and
wanting to make it out the door while there’s some daylight left…then you’re better
than me…right now it’s dark! :)
&lt;/p&gt;
&lt;p&gt;
Ok – so I figured, no probs just do a &lt;strong&gt;stsadm –o addcontentdb&lt;/strong&gt; … and
we’re well on our way, exactly the same from Beta 1 to Beta 2.
&lt;/p&gt;
&lt;p&gt;
This time &lt;strong&gt;SharePoint RTM doesn’t want to play. &lt;/strong&gt;I got this error:
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
&lt;font color="#0000ff"&gt;Sequence [&lt;strong&gt;Microsoft.SharePoint.Upgrade.SPContentDatabaseSequence&lt;/strong&gt;]
cannot upgrade&lt;br&gt;
an object [&lt;strong&gt;SPContentDatabase&lt;/strong&gt; Name=WSS_Content_Int2010] whose build
version 
&lt;br&gt;
[14.0.4536.1000] is too old. Upgrade requires [14.0.4730.1000] or higher.&lt;/font&gt;
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;div class="csharpcode"&gt;So as you can see the Version numbers of my Beta2 ContentDB
is close, but RTM is not playing.
&lt;/div&gt;
&lt;div class="csharpcode"&gt;&amp;nbsp;
&lt;/div&gt;
&lt;div class="csharpcode"&gt;I thought I’d take a punt and see what happened:
&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;div class="csharpcode"&gt;Open up the ContentDB in SQL Management Studio and open up
the &lt;strong&gt;Tables&lt;/strong&gt; folder.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div class="csharpcode"&gt;Locate the &lt;strong&gt;Versions Table &lt;/strong&gt;(down the bottom).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div class="csharpcode"&gt;Open the &lt;strong&gt;Versions Table &lt;/strong&gt;in Edit Mode and &lt;strong&gt;modify
the Rows which have a Version=14.0.4536.1000&lt;/strong&gt; next to them. 
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div class="csharpcode"&gt;Simply change the version number to &lt;strong&gt;14.0.4730.1000&lt;/strong&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div class="csharpcode"&gt;Save the changes
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div class="csharpcode"&gt;Rerun the &lt;strong&gt;stsadm –o addcontentdb&lt;/strong&gt; command
and bob’s your uncle.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p class="csharpcode"&gt;
The ContentDB I used here was 18GB in size and all has come up trumps.
&lt;/p&gt;
&lt;p class="csharpcode"&gt;
This may save you a bit of time and sure it’s a hack, but we’re now in RTM land.
&lt;/p&gt;
&lt;p class="csharpcode"&gt;
Good luck :)
&lt;/p&gt;
&lt;div class="csharpcode"&gt;&amp;nbsp;
&lt;/div&gt;
&lt;div class="csharpcode"&gt;&amp;nbsp;
&lt;/div&gt;
&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
&lt;/style&gt;
&lt;p&gt;
&lt;a href="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SharePointErrorUpgradingSPContentDB.1000_1383A/image_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SharePointErrorUpgradingSPContentDB.1000_1383A/image_thumb.png" width="668" height="263"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=a26033ec-47e6-449a-a4b2-b5d1066ae0fb" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,a26033ec-47e6-449a-a4b2-b5d1066ae0fb.aspx</comments>
      <category>SharePoint</category>
      <category>SharePoint/2010</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=9530140e-b94b-4d6b-8f86-2169757d65c6</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,9530140e-b94b-4d6b-8f86-2169757d65c6.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,9530140e-b94b-4d6b-8f86-2169757d65c6.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=9530140e-b94b-4d6b-8f86-2169757d65c6</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I’ve just spent the past couple of days looking into the ‘upgrade’ process and I’ve
come out the other side. Here’s a quick jot down of what I encountered
</p>
        <ol>
          <li>
            <strong>Environment</strong>: Single WFE (Win2K8 R2 x64) and a separate SQL 2008 x64
'backend’. Currently running SP2010 Beta2 with content databases around 13GB</li>
          <li>
I haven’t uninstalled any of the existing SP2010 beta 2 bits – this is a VM and I
have a handy backup, so in case of emergency break glass was my plan b.</li>
          <li>
            <strong>Launched Setup.bat – </strong>up came the intro screen and I selected <strong>Install
PreReqs.</strong> In my case the prereqs failed their first installed with it grumbling
about the IIS Web Role not present (but this was an existing SP2010 server, so obviously
the Web Role was present and correctly running). 
<br /><br />
Ran the PreReqs again and all was fine :)</li>
          <li>
            <strong>Setup.exe – </strong>launched the product, provided a license key and we ran
all the way through no problems. Interestingly thRege installer didn’t mention anything
like “…I found a previous version of SharePoint do you want to …”</li>
          <li>
            <strong>Configuration Wizard</strong> – this is where my trouble started.</li>
        </ol>
        <ol>
          <li>
As the Wizard was launching, it appeared <strong>not to be able to recognise </strong>the
fact that we were already in a farm. It was like we were running on a machine, where
the DB Server wasn’t accessible.<br /><br />
I ‘removed’ the Server from the Farm (which were the only options in the Wizard for
me)</li>
          <li>
            <strong>Re-ran the Wizard Take#2, </strong>supplied the details at the beginning,
Server Farm etc etc and sent it on it’s way.</li>
          <li>
The Wizard ran up to <strong>step 3 of 10 </strong>(where it configures the Farm DB
+ creates the SharePoint Web Services IIS Site) <strong>and then FAILED</strong>.
What I noticed that the FarmDB was created successfully, but the IIS side was failing.<br />
(The error logs spoke about a socket based error – which I think was unrelated)</li>
          <li>
Tweaking, rerunning the Wizard didn’t fix things…so here’s my fix….</li>
          <li>
I also uninstalled SP2010 RTM a few times and reinstalled, but same error</li>
        </ol>
        <li>
          <strong>The fix -</strong>
        </li>
        <ol>
          <li>
            <strong>
            </strong>Delete the <strong>\14 hive</strong></li>
          <li>
Delete the <strong>Registry Key </strong>(and all under it) <strong>HKLM\Software\Microsoft\Shared
Tools\Web Server Extensions</strong></li>
          <li>
Uninstall/reinstall the <strong>IIS Web Role on the Server</strong></li>
        </ol>
        <li>
          <strong>Repair the SharePoint install </strong>from rerunning <strong>Setup.exe –
repair option. </strong>(you might be able to leave this step out, but I deleted the
Web Server Extensions key after I installed SP2010, so I needed it to be rewritten)</li>
        <li>
          <strong>Run Config Wizard</strong>
        </li>
        <li>
          <strong>Upgrade any Content DBs you want to mount – </strong>through <strong>stsadm
–o addcontentdb</strong> or <strong>Mount-ContentDB</strong> (powershell)</li>
        <p>
I’m sure you’ll be able to shorten this list of steps when you upgrade, but I’ve got
to get on and configure this environment.
</p>
        <p>
Have fun,
</p>
        <p>
Mick.
</p>
        <img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=9530140e-b94b-4d6b-8f86-2169757d65c6" />
      </body>
      <title>Upgrading from SharePoint 2010 Beta 2 to RTM</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,9530140e-b94b-4d6b-8f86-2169757d65c6.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2010/04/23/UpgradingFromSharePoint2010Beta2ToRTM.aspx</link>
      <pubDate>Fri, 23 Apr 2010 23:31:07 GMT</pubDate>
      <description>&lt;p&gt;
I’ve just spent the past couple of days looking into the ‘upgrade’ process and I’ve
come out the other side. Here’s a quick jot down of what I encountered
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Environment&lt;/strong&gt;: Single WFE (Win2K8 R2 x64) and a separate SQL 2008 x64
'backend’. Currently running SP2010 Beta2 with content databases around 13GB&lt;/li&gt;
&lt;li&gt;
I haven’t uninstalled any of the existing SP2010 beta 2 bits – this is a VM and I
have a handy backup, so in case of emergency break glass was my plan b.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Launched Setup.bat – &lt;/strong&gt;up came the intro screen and I selected &lt;strong&gt;Install
PreReqs.&lt;/strong&gt; In my case the prereqs failed their first installed with it grumbling
about the IIS Web Role not present (but this was an existing SP2010 server, so obviously
the Web Role was present and correctly running). 
&lt;br&gt;
&lt;br&gt;
Ran the PreReqs again and all was fine :)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Setup.exe – &lt;/strong&gt;launched the product, provided a license key and we ran
all the way through no problems. Interestingly thRege installer didn’t mention anything
like “…I found a previous version of SharePoint do you want to …”&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Configuration Wizard&lt;/strong&gt; – this is where my trouble started.&lt;/li&gt;
&lt;ol&gt;
&lt;li&gt;
As the Wizard was launching, it appeared &lt;strong&gt;not to be able to recognise &lt;/strong&gt;the
fact that we were already in a farm. It was like we were running on a machine, where
the DB Server wasn’t accessible.&lt;br&gt;
&lt;br&gt;
I ‘removed’ the Server from the Farm (which were the only options in the Wizard for
me)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Re-ran the Wizard Take#2, &lt;/strong&gt;supplied the details at the beginning,
Server Farm etc etc and sent it on it’s way.&lt;/li&gt;
&lt;li&gt;
The Wizard ran up to &lt;strong&gt;step 3 of 10 &lt;/strong&gt;(where it configures the Farm DB
+ creates the SharePoint Web Services IIS Site) &lt;strong&gt;and then FAILED&lt;/strong&gt;.
What I noticed that the FarmDB was created successfully, but the IIS side was failing.&lt;br&gt;
(The error logs spoke about a socket based error – which I think was unrelated)&lt;/li&gt;
&lt;li&gt;
Tweaking, rerunning the Wizard didn’t fix things…so here’s my fix….&lt;/li&gt;
&lt;li&gt;
I also uninstalled SP2010 RTM a few times and reinstalled, but same error&lt;/li&gt;
&lt;/ol&gt;
&lt;li&gt;
&lt;strong&gt;The fix -&lt;/strong&gt;
&lt;/li&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;&lt;/strong&gt;Delete the &lt;strong&gt;\14 hive&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
Delete the &lt;strong&gt;Registry Key &lt;/strong&gt;(and all under it) &lt;strong&gt;HKLM\Software\Microsoft\Shared
Tools\Web Server Extensions&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
Uninstall/reinstall the &lt;strong&gt;IIS Web Role on the Server&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;li&gt;
&lt;strong&gt;Repair the SharePoint install &lt;/strong&gt;from rerunning &lt;strong&gt;Setup.exe –
repair option. &lt;/strong&gt;(you might be able to leave this step out, but I deleted the
Web Server Extensions key after I installed SP2010, so I needed it to be rewritten)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Run Config Wizard&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Upgrade any Content DBs you want to mount – &lt;/strong&gt;through &lt;strong&gt;stsadm
–o addcontentdb&lt;/strong&gt; or &lt;strong&gt;Mount-ContentDB&lt;/strong&gt; (powershell)&lt;/li&gt;&gt;
&lt;p&gt;
I’m sure you’ll be able to shorten this list of steps when you upgrade, but I’ve got
to get on and configure this environment.
&lt;/p&gt;
&lt;p&gt;
Have fun,
&lt;/p&gt;
&lt;p&gt;
Mick.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=9530140e-b94b-4d6b-8f86-2169757d65c6" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,9530140e-b94b-4d6b-8f86-2169757d65c6.aspx</comments>
      <category>SharePoint</category>
      <category>SharePoint/2010</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=4d1ba29d-335e-43e9-a95b-b2f7237244fb</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,4d1ba29d-335e-43e9-a95b-b2f7237244fb.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,4d1ba29d-335e-43e9-a95b-b2f7237244fb.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=4d1ba29d-335e-43e9-a95b-b2f7237244fb</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Well folks we are partnering with Education leaders in the APAC region <strong>Excom</strong> to
deliver to you our Breeze SharePoint 2010 Bootcamp.
</p>
        <p>
I’ve recently come out of that code cave…the place which I’m sure a lot of us know
all too well. I discovered people…and conversations again :)
</p>
        <p>
We’ve put together 13 modules of original material and labs to match based on real
world examples. For e.g. Integrating with Oracle EB from SharePoint 2010 via the BizTalk
Adapter Pack (being a BTS MVP I couldn’t resist that one).
</p>
        <p>
I ran a course in Melbourne the week before last and it was a solid week which the
students loved with the average score for the course being <strong>8.2 </strong>(with
9 being the top) 
</p>
        <p>
          <strong>Our next city is Sydney this coming month and I’ve managed to grab a couple
of seats for you.</strong>
        </p>
        <p>
To Register in a city near you – <a href="https://www.microsoft.com.au/events/register/home.aspx?levent=451550&amp;linvitation">click
here</a></p>
        <p>
  
</p>
        <p>
          <a href="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/BreezeSharePoint2010BootcampSydneycouple_7EE5/image_2.png">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/BreezeSharePoint2010BootcampSydneycouple_7EE5/image_thumb.png" width="644" height="454" />
          </a>
          <img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=4d1ba29d-335e-43e9-a95b-b2f7237244fb" />
        </p>
      </body>
      <title>Breeze SharePoint 2010 Bootcamp – Sydney – couple of seats available…</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,4d1ba29d-335e-43e9-a95b-b2f7237244fb.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2010/04/21/BreezeSharePoint2010BootcampSydneyCoupleOfSeatsAvailable.aspx</link>
      <pubDate>Wed, 21 Apr 2010 23:01:58 GMT</pubDate>
      <description>&lt;p&gt;
Well folks we are partnering with Education leaders in the APAC region &lt;strong&gt;Excom&lt;/strong&gt; to
deliver to you our Breeze SharePoint 2010 Bootcamp.
&lt;/p&gt;
&lt;p&gt;
I’ve recently come out of that code cave…the place which I’m sure a lot of us know
all too well. I discovered people…and conversations again :)
&lt;/p&gt;
&lt;p&gt;
We’ve put together 13 modules of original material and labs to match based on real
world examples. For e.g. Integrating with Oracle EB from SharePoint 2010 via the BizTalk
Adapter Pack (being a BTS MVP I couldn’t resist that one).
&lt;/p&gt;
&lt;p&gt;
I ran a course in Melbourne the week before last and it was a solid week which the
students loved with the average score for the course being &lt;strong&gt;8.2 &lt;/strong&gt;(with
9 being the top) 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Our next city is Sydney this coming month and I’ve managed to grab a couple
of seats for you.&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
To Register in a city near you – &lt;a href="https://www.microsoft.com.au/events/register/home.aspx?levent=451550&amp;amp;linvitation"&gt;click
here&lt;/a&gt; 
&lt;p&gt;
&amp;nbsp; 
&lt;p&gt;
&lt;a href="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/BreezeSharePoint2010BootcampSydneycouple_7EE5/image_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/BreezeSharePoint2010BootcampSydneycouple_7EE5/image_thumb.png" width="644" height="454"&gt;&lt;/a&gt;&lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=4d1ba29d-335e-43e9-a95b-b2f7237244fb" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,4d1ba29d-335e-43e9-a95b-b2f7237244fb.aspx</comments>
      <category>SharePoint</category>
      <category>SharePoint/2010</category>
      <category>Training</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=d7a4be19-3619-474a-9c81-083b610287ec</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,d7a4be19-3619-474a-9c81-083b610287ec.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,d7a4be19-3619-474a-9c81-083b610287ec.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=d7a4be19-3619-474a-9c81-083b610287ec</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
May 12th has always been the big date for the release of the products, the icons will
be all completed (no more purple dots) questions about performance (how many, how
big, how fast…) can all start to be answered in the real world about lists and list
sizes.
</p>
        <p>
The <a href="http://sharepoint.microsoft.com/businessproductivity/proof/pages/2010-launch-events.aspx#fbid=N8d0sCNu5-O" target="_blank">Launch
of Office 2010 and SharePoint 2010</a> is due on May 12th.<br /><br />
Those on <strong>MSDN and TechNet</strong> will get access on <strong>April 22nd</strong> to
start downloading.
</p>
        <p>
          <a href="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SharePoint2010Office2010RTMsandclosetom_E309/image_2.png">
            <img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SharePoint2010Office2010RTMsandclosetom_E309/image_thumb.png" width="430" height="274" />
          </a>
          <br />
          <a href="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SharePoint2010Office2010RTMsandclosetom_E309/image_4.png">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SharePoint2010Office2010RTMsandclosetom_E309/image_thumb_1.png" width="452" height="132" />
          </a>
        </p>
        <img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=d7a4be19-3619-474a-9c81-083b610287ec" />
      </body>
      <title>SharePoint 2010 / Office 2010 – RTMs and close to materialisation.</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,d7a4be19-3619-474a-9c81-083b610287ec.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2010/04/19/SharePoint2010Office2010RTMsAndCloseToMaterialisation.aspx</link>
      <pubDate>Mon, 19 Apr 2010 06:08:41 GMT</pubDate>
      <description>&lt;p&gt;
May 12th has always been the big date for the release of the products, the icons will
be all completed (no more purple dots) questions about performance (how many, how
big, how fast…) can all start to be answered in the real world about lists and list
sizes.
&lt;/p&gt;
&lt;p&gt;
The &lt;a href="http://sharepoint.microsoft.com/businessproductivity/proof/pages/2010-launch-events.aspx#fbid=N8d0sCNu5-O" target="_blank"&gt;Launch
of Office 2010 and SharePoint 2010&lt;/a&gt; is due on May 12th.&lt;br&gt;
&lt;br&gt;
Those on &lt;strong&gt;MSDN and TechNet&lt;/strong&gt; will get access on &lt;strong&gt;April 22nd&lt;/strong&gt; to
start downloading.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SharePoint2010Office2010RTMsandclosetom_E309/image_2.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SharePoint2010Office2010RTMsandclosetom_E309/image_thumb.png" width="430" height="274"&gt;&lt;/a&gt;
&lt;br&gt;
&lt;a href="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SharePoint2010Office2010RTMsandclosetom_E309/image_4.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SharePoint2010Office2010RTMsandclosetom_E309/image_thumb_1.png" width="452" height="132"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=d7a4be19-3619-474a-9c81-083b610287ec" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,d7a4be19-3619-474a-9c81-083b610287ec.aspx</comments>
      <category>Office</category>
      <category>SharePoint</category>
      <category>SharePoint/2010</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=48efaf16-68be-4ca6-a3a6-79a251dc8b3b</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,48efaf16-68be-4ca6-a3a6-79a251dc8b3b.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,48efaf16-68be-4ca6-a3a6-79a251dc8b3b.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=48efaf16-68be-4ca6-a3a6-79a251dc8b3b</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
While writing a lab for an up and coming SharePoint 2010 course I came across a few
handy things.
</p>
        <p>
I’ve always been a big fan of the developer dashboard and until recently the example
code has been a little scarce.
</p>
        <p>
Fortunately I’ve found a couple of gems
</p>
        <p>
- one from <a href="http://blogs.msdn.com/pandrew/archive/2010/03/26/sharepoint-2010-developer-dashboard-for-debugging-code.aspx" target="_blank">Paul
Andrew’s blog</a> on how to get your own text in the debug tree<br /><strong>using (SPMonitoredScope sc = new SPMonitoredScope(“Some timed scope”)) 
<br />
{ 
<br />
  // some code in here that you think may take time 
<br />
}</strong></p>
        <p>
and for the right side of the screen:<br /><strong>SPCriticalTraceCounter.AddDataToScope(uCounter, “Your category”, traceLevel,
“Detailed long message”);</strong><br /><br />
- and the 2nd is an extension that sits on the Dashboard page that plots the time
taken for each component to process/render in the tree (it does this client side using
jquery and an ASCX control)<br /><a title="http://devdashvis.codeplex.com/releases/view/36559" href="http://devdashvis.codeplex.com/releases/view/36559">http://devdashvis.codeplex.com/releases/view/36559</a></p>
        <p>
Check them out.
</p>
        <p>
Cheers,
</p>
        <p>
Mick.
</p>
        <img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=48efaf16-68be-4ca6-a3a6-79a251dc8b3b" />
      </body>
      <title>SharePoint 2010 Developer Dashboard - extensions</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,48efaf16-68be-4ca6-a3a6-79a251dc8b3b.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2010/04/01/SharePoint2010DeveloperDashboardExtensions.aspx</link>
      <pubDate>Thu, 01 Apr 2010 15:25:44 GMT</pubDate>
      <description>&lt;p&gt;
While writing a lab for an up and coming SharePoint 2010 course I came across a few
handy things.
&lt;/p&gt;
&lt;p&gt;
I’ve always been a big fan of the developer dashboard and until recently the example
code has been a little scarce.
&lt;/p&gt;
&lt;p&gt;
Fortunately I’ve found a couple of gems
&lt;/p&gt;
&lt;p&gt;
- one from &lt;a href="http://blogs.msdn.com/pandrew/archive/2010/03/26/sharepoint-2010-developer-dashboard-for-debugging-code.aspx" target="_blank"&gt;Paul
Andrew’s blog&lt;/a&gt; on how to get your own text in the debug tree&lt;br&gt;
&lt;strong&gt;using (SPMonitoredScope sc = new SPMonitoredScope(“Some timed scope”)) 
&lt;br&gt;
{ 
&lt;br&gt;
&amp;nbsp; // some code in here that you think may take time 
&lt;br&gt;
}&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
and for the right side of the screen:&lt;br&gt;
&lt;strong&gt;SPCriticalTraceCounter.AddDataToScope(uCounter, “Your category”, traceLevel,
“Detailed long message”);&lt;/strong&gt;
&lt;br&gt;
&lt;br&gt;
- and the 2nd is an extension that sits on the Dashboard page that plots the time
taken for each component to process/render in the tree (it does this client side using
jquery and an ASCX control)&lt;br&gt;
&lt;a title="http://devdashvis.codeplex.com/releases/view/36559" href="http://devdashvis.codeplex.com/releases/view/36559"&gt;http://devdashvis.codeplex.com/releases/view/36559&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Check them out.
&lt;/p&gt;
&lt;p&gt;
Cheers,
&lt;/p&gt;
&lt;p&gt;
Mick.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=48efaf16-68be-4ca6-a3a6-79a251dc8b3b" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,48efaf16-68be-4ca6-a3a6-79a251dc8b3b.aspx</comments>
      <category>SharePoint</category>
      <category>SharePoint/2010</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=6694283d-a98c-46c2-a4d9-2f4d65d4a01f</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,6694283d-a98c-46c2-a4d9-2f4d65d4a01f.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <georss:point>0 0</georss:point>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,6694283d-a98c-46c2-a4d9-2f4d65d4a01f.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=6694283d-a98c-46c2-a4d9-2f4d65d4a01f</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Came across a great MS Article that gives you the broad brush strokes of updates and
changes.
</p>
        <p>
Very handy one
</p>
        <br />
        <a href="http://technet.microsoft.com/en-us/sharepoint/ee518662.aspx">http://technet.microsoft.com/en-us/sharepoint/ee518662.aspx</a>
        <br />
        <br />
Enjoy!<img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=6694283d-a98c-46c2-a4d9-2f4d65d4a01f" /></body>
      <title>SharePoint 2010: New Features at a glance</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,6694283d-a98c-46c2-a4d9-2f4d65d4a01f.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2009/12/10/SharePoint2010NewFeaturesAtAGlance.aspx</link>
      <pubDate>Thu, 10 Dec 2009 10:22:47 GMT</pubDate>
      <description>&lt;p&gt;
Came across a great MS Article that gives you the broad brush strokes of updates and
changes.
&lt;/p&gt;
&lt;p&gt;
Very handy one
&lt;/p&gt;
&lt;br&gt;
&lt;a href='http://technet.microsoft.com/en-us/sharepoint/ee518662.aspx'&gt;http://technet.microsoft.com/en-us/sharepoint/ee518662.aspx&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;
Enjoy!&lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=6694283d-a98c-46c2-a4d9-2f4d65d4a01f" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,6694283d-a98c-46c2-a4d9-2f4d65d4a01f.aspx</comments>
      <category>SharePoint</category>
      <category>SharePoint/1010/Guides</category>
      <category>SharePoint/2010</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=0d55e967-8144-4eed-8448-10145b4aa3e2</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,0d55e967-8144-4eed-8448-10145b4aa3e2.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,0d55e967-8144-4eed-8448-10145b4aa3e2.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=0d55e967-8144-4eed-8448-10145b4aa3e2</wfw:commentRss>
      <slash:comments>3</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Hi guys, I’ve been busy over the recent months always working and planning new ways
to train, deliver and impart knowledge to *you* in a variety of different ways.
</p>
        <p>
Truth be told our Region with respect to SharePoint Adoption and Knowledge, has been
ahead of the curve worlwide – that you guys “SharePoint-ies”.<br />
With the release of SharePoint 2010 soon-ish, we’ve been busy – to bring you the best
value and the most effective training for your time.<br /><br />
For the release of SharePoint 2007 some numbers:
</p>
        <ol>
          <li>
We trained over 1400 students on our Breeze SharePoint Bootcamp (we cover technical
in-depth approx 80-85% of major SharePoint features in a week. Not for the faint hearted) 
</li>
          <li>
You guys demanded excellence and we gave you that. 
</li>
          <li>
We train 50% of the time and consult 50% – we bring real world knowledge into the
classroom, what works, what doesn’t from a business perspective. 
</li>
          <li>
We’ve rolled out over 1000 different SharePoint 2007 sites (and are currently working
on migrations to SP2010) 
</li>
          <li>
The buck stops with me – which can be good thing…so I’m told :)<br /><br /><strong>The big congrats goes to you!</strong> For being driven, demanding better,
demanding more detail and better knowledge, you demand that the bar is raised and
meet and excel that challenge.<br /></li>
        </ol>
        <p>
Breeze has partnered with Microsoft &amp; Excom, allowing us to each focus on our
strengths, delivering to you the best possible offering in this space.
</p>
        <p>
          <strong>I’m pretty excited to announce our SharePoint 2010 Series running in Melb
+ Sydney initially </strong>(+ others soon)<br />
(running at Microsoft Offices)<br /><br /><font color="#ff0000"><strong>A Special Blog Reader offer: Would you like me to Webcast
these sessions for those whom can’t make it?<br />
Add a comment on this Post to let me know – I’ll get back to you with details.<br /></strong></font><font color="#000000">(we are giving away goodies and offers but I
can’t tell you too much)</font></p>
        <p>
Here’s the formal blurb: ------ snip ------
</p>
        <blockquote>
          <p>
            <a href="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SERIESItsChristmasandSharePoint2010iscom_350/image_2.png">
              <img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" title="image" border="0" alt="image" align="left" src="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SERIESItsChristmasandSharePoint2010iscom_350/image_thumb.png" width="85" height="108" />
            </a>
          </p>
        </blockquote>
        <p>
             <img src="http://www.cige.es/images/Logo-Microsoft.jpg" width="343" height="83" />        <a href="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SERIESItsChristmasandSharePoint2010iscom_350/image_8.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SERIESItsChristmasandSharePoint2010iscom_350/image_thumb_3.png" width="206" height="58" /></a></p>
        <p>
          <br />
  
</p>
        <p align="left">
          <b>Microsoft Australia</b>, is pleased to invite you to a <strong>FREE Seminar</strong> on <a href="https://www.microsoft.com.au/events/register/home.aspx?levent=343803&amp;linvitation" target="_blank">SharePoint
2010.</a><br /><b></b><br /></p>
        <p align="left">
          <b>
            <i>Melbourne – December 2, 2009</i>
          </b>
        </p>
        <p align="left">
          <b>
            <i>Sydney – December 11, 2009<br /><br /></i>
          </b>
        </p>
        <p>
Delivered by <strong>Breeze &amp; EXCOM Education</strong>, this seminar is the first
in a series that are designed to get you across the new functionality of SharePoint
2010 and importantly how your business can benefit.<br /><br />
SharePoint 2010 is the business collaboration platform that enables you to connect
and empower people through formal and informal business communities, within the enterprise
and beyond, and to manage content throughout the information lifecycle.<br /><br />
This next release of SharePoint has some exciting new enhancements for IT Professionals
and Developers we think you will want to see for yourself! 
<br /><br />
This seminar is for all SharePoint enthusiasts from IT Professionals, Developers to
Business Decision Makers and Information Workers. Bring along your questions to the
unveiling of SharePoint 2010! 
<br /><br />
Seats are limited. Register NOW !!!! 
<br />
For more information and to register, click <a href="https://www.microsoft.com.au/events/register/home.aspx?levent=343803&amp;linvitation" target="_blank">HERE</a><b></b></p>
        <p>
        </p>
        <p>
          <a href="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SERIESItsChristmasandSharePoint2010iscom_350/image_10.png">
            <img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SERIESItsChristmasandSharePoint2010iscom_350/image_thumb_4.png" width="240" height="159" />
          </a>
        </p>
        <img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=0d55e967-8144-4eed-8448-10145b4aa3e2" />
      </body>
      <title>SERIES: It’s Christmas and SharePoint 2010 is coming to town</title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,0d55e967-8144-4eed-8448-10145b4aa3e2.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2009/11/20/SERIESItsChristmasAndSharePoint2010IsComingToTown.aspx</link>
      <pubDate>Fri, 20 Nov 2009 13:14:28 GMT</pubDate>
      <description>&lt;p&gt;
Hi guys, I’ve been busy over the recent months always working and planning new ways
to train, deliver and impart knowledge to *you* in a variety of different ways.
&lt;/p&gt;
&lt;p&gt;
Truth be told our Region with respect to SharePoint Adoption and Knowledge, has been
ahead of the curve worlwide – that you guys “SharePoint-ies”.&lt;br&gt;
With the release of SharePoint 2010 soon-ish, we’ve been busy – to bring you the best
value and the most effective training for your time.&lt;br&gt;
&lt;br&gt;
For the release of SharePoint 2007 some numbers:
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
We trained over 1400 students on our Breeze SharePoint Bootcamp (we cover technical
in-depth approx 80-85% of major SharePoint features in a week. Not for the faint hearted) 
&lt;li&gt;
You guys demanded excellence and we gave you that. 
&lt;li&gt;
We train 50% of the time and consult 50% – we bring real world knowledge into the
classroom, what works, what doesn’t from a business perspective. 
&lt;li&gt;
We’ve rolled out over 1000 different SharePoint 2007 sites (and are currently working
on migrations to SP2010) 
&lt;li&gt;
The buck stops with me – which can be good thing…so I’m told :)&lt;br&gt;
&lt;br&gt;
&lt;strong&gt;The big congrats goes to you!&lt;/strong&gt; For being driven, demanding better,
demanding more detail and better knowledge, you demand that the bar is raised and
meet and excel that challenge.&lt;br&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
Breeze has partnered with Microsoft &amp;amp; Excom, allowing us to each focus on our
strengths, delivering to you the best possible offering in this space.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;I’m pretty excited to announce our SharePoint 2010 Series running in Melb
+ Sydney initially &lt;/strong&gt;(+ others soon)&lt;br&gt;
(running at Microsoft Offices)&lt;br&gt;
&lt;br&gt;
&lt;font color="#ff0000"&gt;&lt;strong&gt;A Special Blog Reader offer: Would you like me to Webcast
these sessions for those whom can’t make it?&lt;br&gt;
Add a comment on this Post to let me know – I’ll get back to you with details.&lt;br&gt;
&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;(we are giving away goodies and offers but I
can’t tell you too much)&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
Here’s the formal blurb: ------ snip ------
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
&lt;a href="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SERIESItsChristmasandSharePoint2010iscom_350/image_2.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" title="image" border="0" alt="image" align="left" src="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SERIESItsChristmasandSharePoint2010iscom_350/image_thumb.png" width="85" height="108"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;img src="http://www.cige.es/images/Logo-Microsoft.jpg" width="343" height="83"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SERIESItsChristmasandSharePoint2010iscom_350/image_8.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SERIESItsChristmasandSharePoint2010iscom_350/image_thumb_3.png" width="206" height="58"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;br&gt;
&amp;nbsp; 
&lt;p align="left"&gt;
&lt;b&gt;Microsoft Australia&lt;/b&gt;, is pleased to invite you to a &lt;strong&gt;FREE Seminar&lt;/strong&gt; on &lt;a href="https://www.microsoft.com.au/events/register/home.aspx?levent=343803&amp;amp;linvitation" target="_blank"&gt;SharePoint
2010.&lt;/a&gt;
&lt;br&gt;
&lt;b&gt;&lt;/b&gt;
&lt;br&gt;
&lt;/p&gt;
&lt;p align="left"&gt;
&lt;b&gt;&lt;i&gt;Melbourne – December 2, 2009&lt;/i&gt;&lt;/b&gt; 
&lt;p align="left"&gt;
&lt;b&gt;&lt;i&gt;Sydney – December 11, 2009&lt;br&gt;
&lt;br&gt;
&lt;/i&gt;&lt;/b&gt; 
&lt;p&gt;
Delivered by &lt;strong&gt;Breeze &amp;amp; EXCOM Education&lt;/strong&gt;, this seminar is the first
in a series that are designed to get you across the new functionality of SharePoint
2010 and importantly how your business can benefit.&lt;br&gt;
&lt;br&gt;
SharePoint 2010 is the business collaboration platform that enables you to connect
and empower people through formal and informal business communities, within the enterprise
and beyond, and to manage content throughout the information lifecycle.&lt;br&gt;
&lt;br&gt;
This next release of SharePoint has some exciting new enhancements for IT Professionals
and Developers we think you will want to see for yourself! 
&lt;br&gt;
&lt;br&gt;
This seminar is for all SharePoint enthusiasts from IT Professionals, Developers to
Business Decision Makers and Information Workers. Bring along your questions to the
unveiling of SharePoint 2010! 
&lt;br&gt;
&lt;br&gt;
Seats are limited. Register NOW !!!! 
&lt;br&gt;
For more information and to register, click &lt;a href="https://www.microsoft.com.au/events/register/home.aspx?levent=343803&amp;amp;linvitation" target="_blank"&gt;HERE&lt;/a&gt;&lt;b&gt;&lt;/b&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SERIESItsChristmasandSharePoint2010iscom_350/image_10.png"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="image" border="0" alt="image" src="http://blogs.breezetraining.com.au/mickb/content/binary/WindowsLiveWriter/SERIESItsChristmasandSharePoint2010iscom_350/image_thumb_4.png" width="240" height="159"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=0d55e967-8144-4eed-8448-10145b4aa3e2" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,0d55e967-8144-4eed-8448-10145b4aa3e2.aspx</comments>
      <category>SharePoint</category>
      <category>SharePoint/2010</category>
      <category>Training</category>
    </item>
    <item>
      <trackback:ping>http://blogs.breeze.net/mickb/Trackback.aspx?guid=4bc133bd-d485-4fa8-b1f1-9ba93b10cecd</trackback:ping>
      <pingback:server>http://blogs.breeze.net/mickb/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.breeze.net/mickb/PermaLink,guid,4bc133bd-d485-4fa8-b1f1-9ba93b10cecd.aspx</pingback:target>
      <dc:creator>Mick Badran</dc:creator>
      <georss:point>0 0</georss:point>
      <wfw:comment>http://blogs.breeze.net/mickb/CommentView,guid,4bc133bd-d485-4fa8-b1f1-9ba93b10cecd.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.breeze.net/mickb/SyndicationService.asmx/GetEntryCommentsRss?guid=4bc133bd-d485-4fa8-b1f1-9ba93b10cecd</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">We're moving into a public beta of <strike>Dublin </strike>"Windows
Server AppFabric" which you can grab from <a href="http://msdn.microsoft.com/en-au/windowsserver/ee695849.aspx">HERE</a>.<br /><br />
What does it mean - here's a blurb from the site.<br /><br />
So Velocity (distributed caching mechanism) is rolled up into this Beta (previously
a MS Partner did some benchmarking on Velocity which you can find a great white paper <a href="http://download.microsoft.com/download/1/B/2/1B21D4A1-C84C-4CB8-923A-740BD927CDEB/Velocity%20Benchmark%20White%20Paper.docx">HERE</a>)<br /><br />
Previously myself and <a href="http://blogs.breeze.net/scotts">Scotty</a> wrote a
hefty technical Dublin Course which the folks at TechEd loved - we did this on some
early bits of 'Dublin'. Realtime monitoring + tracking as well as recoverability were
some highlights of our 3D Realtime maze process we built up in the labs.<br /><br />
Here's a blurb from the AppFabric server (it's a shame that SP2010 didn't use this
framework for it's WF hosting...but that would have impacted delivery)<br /><br />
Enjoy<br /><br />
-------- Snippet ----------<br /><br /><p><b>Windows Server AppFabric has these core capabilities:</b></p><ul><li>
For Web applications, AppFabric provides <strong>caching</strong> capabilities to
provide high-speed access, scale, and high availability to application data. This
feature was previously codenamed <b>"Velocity"</b></li><li>
For composite applications, AppFabric makes it easier to <strong>build and manage
services</strong> built using <strong><a id="ctl00_mainContentContainer_ctl02" href="http://msdn.microsoft.com/netframework/aa663328.aspx" onclick="javascript:Track('ctl00_mainContentContainer_ctl00|ctl00_mainContentContainer_ctl02',this);">Windows
Workflow Foundation</a></strong> and <a id="ctl00_mainContentContainer_ctl03" href="http://msdn.microsoft.com/netframework/aa663324.aspx" onclick="javascript:Track('ctl00_mainContentContainer_ctl00|ctl00_mainContentContainer_ctl03',this);"><strong>Windows
Communication Foundation</strong></a>. This feature was previously codenamed<b> "Dublin."</b></li></ul><br /><br /><br /><p></p><img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=4bc133bd-d485-4fa8-b1f1-9ba93b10cecd" /></body>
      <title>Dublin finally gets a name "Windows Server AppFabric" </title>
      <guid isPermaLink="false">http://blogs.breeze.net/mickb/PermaLink,guid,4bc133bd-d485-4fa8-b1f1-9ba93b10cecd.aspx</guid>
      <link>http://blogs.breeze.net/mickb/2009/11/19/DublinFinallyGetsANameWindowsServerAppFabric.aspx</link>
      <pubDate>Thu, 19 Nov 2009 22:12:32 GMT</pubDate>
      <description>We're moving into a public beta of &lt;strike&gt;Dublin &lt;/strike&gt;"Windows Server AppFabric"
which you can grab from &lt;a href="http://msdn.microsoft.com/en-au/windowsserver/ee695849.aspx"&gt;HERE&lt;/a&gt;.&lt;br&gt;
&lt;br&gt;
What does it mean - here's a blurb from the site.&lt;br&gt;
&lt;br&gt;
So Velocity (distributed caching mechanism) is rolled up into this Beta (previously
a MS Partner did some benchmarking on Velocity which you can find a great white paper &lt;a href="http://download.microsoft.com/download/1/B/2/1B21D4A1-C84C-4CB8-923A-740BD927CDEB/Velocity%20Benchmark%20White%20Paper.docx"&gt;HERE&lt;/a&gt;)&lt;br&gt;
&lt;br&gt;
Previously myself and &lt;a href="http://blogs.breeze.net/scotts"&gt;Scotty&lt;/a&gt; wrote a
hefty technical Dublin Course which the folks at TechEd loved - we did this on some
early bits of 'Dublin'. Realtime monitoring + tracking as well as recoverability were
some highlights of our 3D Realtime maze process we built up in the labs.&lt;br&gt;
&lt;br&gt;
Here's a blurb from the AppFabric server (it's a shame that SP2010 didn't use this
framework for it's WF hosting...but that would have impacted delivery)&lt;br&gt;
&lt;br&gt;
Enjoy&lt;br&gt;
&lt;br&gt;
-------- Snippet ----------&lt;br&gt;
&lt;br&gt;
&lt;p&gt;
&lt;b&gt;Windows Server AppFabric has these core capabilities:&lt;/b&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
For Web applications, AppFabric provides &lt;strong&gt;caching&lt;/strong&gt; capabilities to
provide high-speed access, scale, and high availability to application data. This
feature was previously codenamed &lt;b&gt;"Velocity"&lt;/b&gt;
&lt;/li&gt;
&lt;li&gt;
For composite applications, AppFabric makes it easier to &lt;strong&gt;build and manage
services&lt;/strong&gt; built using &lt;strong&gt;&lt;a id="ctl00_mainContentContainer_ctl02" href="http://msdn.microsoft.com/netframework/aa663328.aspx" onclick="javascript:Track('ctl00_mainContentContainer_ctl00|ctl00_mainContentContainer_ctl02',this);"&gt;Windows
Workflow Foundation&lt;/a&gt;&lt;/strong&gt; and &lt;a id="ctl00_mainContentContainer_ctl03" href="http://msdn.microsoft.com/netframework/aa663324.aspx" onclick="javascript:Track('ctl00_mainContentContainer_ctl00|ctl00_mainContentContainer_ctl03',this);"&gt;&lt;strong&gt;Windows
Communication Foundation&lt;/strong&gt;&lt;/a&gt;. This feature was previously codenamed&lt;b&gt; "Dublin."&lt;/b&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.breeze.net/mickb/aggbug.ashx?id=4bc133bd-d485-4fa8-b1f1-9ba93b10cecd" /&gt;</description>
      <comments>http://blogs.breeze.net/mickb/CommentView,guid,4bc133bd-d485-4fa8-b1f1-9ba93b10cecd.aspx</comments>
      <category>BizTalk</category>
      <category>BizTalk/Insights</category>
      <category>SharePoint</category>
      <category>AppFabricServer</category>
    </item>
  </channel>
</rss>