<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5591885701432628793</id><updated>2012-01-25T14:20:29.530Z</updated><category term='Azure Publication'/><category term='Microsoft Test Manager'/><category term='SharePoint Server 2007'/><category term='Visual Studio'/><category term='Webcasts'/><category term='Team Foundation Server'/><category term='Information Management'/><category term='Feature Pack'/><category term='Architecture'/><category term='Silverlight 5'/><category term='RTM'/><category term='SQL'/><category term='SharePoint 2010 WCM'/><category term='Exchange'/><category term='SharePoint Themes'/><category term='CRM 5'/><category term='BizTalk'/><category term='.NET 1.0/1.1/2.0/3.5/4.0'/><category term='PerformancePoint Services 2010'/><category term='B2B'/><category term='SharePoint 2010 Search Model'/><category term='SharePoint Configuration File Update'/><category term='Windows'/><category term='SharePoint Foundation'/><category term='Open XML'/><category term='Operations Manager'/><category term='Web Content Management'/><category term='Azure'/><category term='BizTalk Schemas'/><category term='ASP.NET'/><category term='Annoucement'/><category term='MasterPage Customization'/><category term='User Profile Service'/><category term='Themes'/><category term='Videos'/><category term='SaaS'/><category term='Host Integration Server'/><category term='Software Design'/><category term='Beta'/><category term='Vulnerability'/><category term='Software+Services'/><category term='MOSS'/><category term='BSC'/><category term='SharePoint Deployement'/><category term='EAI'/><category term='Events'/><category term='TechDays'/><category term='Preview'/><category term='Services'/><category term='Internet Explorer 9'/><category term='Service Packs'/><category term='SharePoint SDK'/><category term='Search Crawl'/><category term='SharePoint Governance Model'/><category term='Project Management'/><category term='IT Governance'/><category term='SQL Server 2008'/><category term='CRM'/><category term='CSS'/><category term='Application Management'/><category term='Rich Internet Applications'/><category term='Cloud Computing'/><category term='Office'/><category term='SharePoint'/><category term='PerformancePoint'/><category term='MasterPages'/><category term='XML'/><category term='BPM'/><category term='Training Kit'/><category term='SharePoint 2010'/><category term='Fun'/><category term='Reporting Services'/><category term='Presentations'/><category term='TechEd'/><category term='WSS'/><category term='HOL&apos;s'/><category term='Office File Formats'/><category term='C#'/><category term='Enterprise Search'/><category term='Claims Based Authentication'/><category term='WCF'/><category term='PDC'/><category term='IE'/><category term='Internet Explorer'/><category term='IE 9'/><category term='Windows SharePoint Services 3.0'/><category term='Monitoring'/><category term='Silverlight'/><category term='BizTalk Server 2010'/><title type='text'>Moez T's Technical Blog!</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://blog.reversingmotions.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://blog.reversingmotions.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Moez Tounsi</name><uri>https://profiles.google.com/112395018233684788902</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-7J1Be4Pf7gA/AAAAAAAAAAI/AAAAAAAAAJ4/3Wf7Ljaf8Ik/s512-c/photo.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>54</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5591885701432628793.post-4177280380308754642</id><published>2011-06-27T14:17:00.001+01:00</published><updated>2011-06-27T14:20:47.059+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint Governance Model'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint Foundation'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint Deployement'/><category scheme='http://www.blogger.com/atom/ns#' term='Claims Based Authentication'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint Configuration File Update'/><title type='text'>Understanding Claims Based Authentication, Video from Channel 9</title><content type='html'>&lt;p align="center"&gt;   &lt;br /&gt;&lt;iframe style="width: 512px; height: 288px" src="http://channel9.msdn.com/Shows/SharePointSideshow/Understanding-SharePoint-2010-Claims-Based-Security/player?w=512&amp;amp;h=288" frameborder="0" scrolling="no"&gt;&lt;/iframe&gt;    &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;Full article here : &lt;a title="http://channel9.msdn.com/Shows/SharePointSideshow/Understanding-SharePoint-2010-Claims-Based-Security" href="http://channel9.msdn.com/Shows/SharePointSideshow/Understanding-SharePoint-2010-Claims-Based-Security"&gt;http://channel9.msdn.com/Shows/SharePointSideshow/Understanding-SharePoint-2010-Claims-Based-Security&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Useful links&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/b/speschka/archive/2010/03/13/writing-a-custom-claims-provider-for-sharepoint-2010-part-1.aspx"&gt;http://blogs.technet.com/b/speschka/archive/2010/03/13/writing-a-custom-claims-provider-for-sharepoint-2010-part-1.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/b/speschka/archive/2010/03/13/writing-a-custom-claims-provider-for-sharepoint-2010-part-2.aspx"&gt;http://blogs.technet.com/b/speschka/archive/2010/03/13/writing-a-custom-claims-provider-for-sharepoint-2010-part-2.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/b/speschka/archive/2010/03/13/writing-a-custom-claims-provider-for-sharepoint-2010-part-3-searching-claims.aspx"&gt;http://blogs.technet.com/b/speschka/archive/2010/03/13/writing-a-custom-claims-provider-for-sharepoint-2010-part-3-searching-claims.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/b/speschka/archive/2010/02/13/figuring-out-what-claims-you-have-in-sharepoint-2010.aspx"&gt;http://blogs.technet.com/b/speschka/archive/2010/02/13/figuring-out-what-claims-you-have-in-sharepoint-2010.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.httpwatch.com/"&gt;http://www.httpwatch.com/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://powergui.org"&gt;http://powergui.org&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://ulsviewer.codeplex.com/"&gt;http://ulsviewer.codeplex.com/&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5591885701432628793-4177280380308754642?l=blog.reversingmotions.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.reversingmotions.com/feeds/4177280380308754642/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.reversingmotions.com/2011/06/understanding-claims-based.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/4177280380308754642'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/4177280380308754642'/><link rel='alternate' type='text/html' href='http://blog.reversingmotions.com/2011/06/understanding-claims-based.html' title='Understanding Claims Based Authentication, Video from Channel 9'/><author><name>Moez Tounsi</name><uri>https://profiles.google.com/112395018233684788902</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-7J1Be4Pf7gA/AAAAAAAAAAI/AAAAAAAAAJ4/3Wf7Ljaf8Ik/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5591885701432628793.post-5183228694563975612</id><published>2011-06-27T10:44:00.001+01:00</published><updated>2011-06-27T10:44:31.404+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET 1.0/1.1/2.0/3.5/4.0'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><title type='text'>Visual Studio Light Switch Advanced Sample from Beth Massi</title><content type='html'>&lt;p&gt;Well thanks to &lt;a href="http://blogs.msdn.com/b/bethmassi"&gt;Beth&lt;/a&gt; for the great post about &lt;a href="http://blogs.msdn.com/b/bethmassi/archive/2011/05/25/contoso-construction-lightswitch-advanced-development-sample.aspx"&gt;VS Light Switch Sample&lt;/a&gt;, today was diggin’ in it and it was superb.&lt;/p&gt;  &lt;p&gt;To download the Sample &lt;a href="http://code.msdn.microsoft.com/Contoso-Construction-9f944948"&gt;Click Here&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;“This sample demonstrates some of the more advanced code, screen, and data customizations you can do with &lt;a href="http://msdn.com/lightswitch"&gt;Visual Studio LightSwitch Beta 2&lt;/a&gt; as a professional developer (you get paid to write code). &lt;strong&gt;If you are not a professional developer or do not have any experience with LightSwitch, please see the &lt;/strong&gt;&lt;a href="http://msdn.microsoft.com/en-us/lightswitch/ff938857"&gt;Getting Started&lt;/a&gt;&lt;strong&gt; section of the &lt;/strong&gt;&lt;a href="http://msdn.com/lightswitch"&gt;LightSwitch Developer Center&lt;/a&gt;&lt;strong&gt; for step-by-step walkthroughs and How-to videos. &lt;/strong&gt;Also please make sure you read the setup instructions below.” … &lt;a href="http://blogs.msdn.com/b/bethmassi/archive/2011/05/25/contoso-construction-lightswitch-advanced-development-sample.aspx"&gt;read more&lt;/a&gt;&lt;/p&gt;  &lt;h3&gt;Building the Sample&lt;/h3&gt;  &lt;p&gt;You will need &lt;a href="http://msdn.com/lightswitch"&gt;Visual Studio LightSwitch Beta 2 &lt;/a&gt;installed to run this sample. Before building the sample you will need to set up a few things so that all the pieces work. Once you complete the following steps, press F5 to run the application in debug mode.&lt;/p&gt;  &lt;h5&gt;Install Extensions&lt;/h5&gt;  &lt;p&gt;You will need the following extensions installed to load this application:    &lt;br /&gt;&lt;a href="http://code.msdn.microsoft.com/Filter-Control-for-Visual-90fb8e93"&gt;http://code.msdn.microsoft.com/Filter-Control-for-Visual-90fb8e93&lt;/a&gt;    &lt;br /&gt;&lt;a href="http://code.msdn.microsoft.com/Excel-Importer-for-Visual-61dd4a90"&gt;http://code.msdn.microsoft.com/Excel-Importer-for-Visual-61dd4a90&lt;/a&gt;    &lt;br /&gt;And the Bing Map control from the Training Kit:     &lt;br /&gt;&lt;a href="http://go.microsoft.com/?linkid=9741442"&gt;http://go.microsoft.com/?linkid=9741442&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;These are .VSIX packages and are also located in the root folder of this sample. Close Visual Studio and then double-click them to install.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5591885701432628793-5183228694563975612?l=blog.reversingmotions.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.reversingmotions.com/feeds/5183228694563975612/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.reversingmotions.com/2011/06/visual-studio-light-switch-advanced.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/5183228694563975612'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/5183228694563975612'/><link rel='alternate' type='text/html' href='http://blog.reversingmotions.com/2011/06/visual-studio-light-switch-advanced.html' title='Visual Studio Light Switch Advanced Sample from Beth Massi'/><author><name>Moez Tounsi</name><uri>https://profiles.google.com/112395018233684788902</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-7J1Be4Pf7gA/AAAAAAAAAAI/AAAAAAAAAJ4/3Wf7Ljaf8Ik/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5591885701432628793.post-6955862523945581789</id><published>2011-06-20T06:45:00.000+01:00</published><updated>2011-06-20T11:22:57.033+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Team Foundation Server'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft Test Manager'/><category scheme='http://www.blogger.com/atom/ns#' term='Project Management'/><category scheme='http://www.blogger.com/atom/ns#' term='Application Management'/><title type='text'>Running Excel reports against TSF Queries</title><content type='html'>From Microsoft Test Manager, you can create a &lt;a href="http://msdn.microsoft.com/en-us/library/dd286578.aspx"&gt;Requirement based suite&lt;/a&gt; to see the associated test cases for a given user story or a requirement.   &lt;p&gt;&lt;a href="http://images.reversingmotions.com/b14aa044976d_5DA8/0310.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="0310" border="0" alt="0310" src="http://images.reversingmotions.com/b14aa044976d_5DA8/0310_thumb.png" width="405" height="121" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;On the right side pane, under the Test Activity, you can see the test pass/ fail status for all test cases associated with this user story.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Problem Statement:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;The right side pane of the Requirement based suite will only show the test case status based on whatever the tester status the tester has provided in this particular suite. If the test cases present in the Requirement based suites are also present elsewhere (in another test suite or another test plan) and you just want to see the status of these test cases (most recent pass/ fail information), Excel reports are the way to go.&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Note:&lt;/em&gt; Using the report given below, you can see the status of test cases that are associated (linked) to a generic work item, not necessarily a user story. If some test cases are linked to each other (slightly modified versions of the same test case with different iteration paths/ area paths etc) and you want to see the status of these linked test cases, the same report can also be used.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;The Excel Report:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;You can &lt;a href="http://msdn.microsoft.com/en-us/library/ms244699.aspx"&gt;create an Excel report&lt;/a&gt; as follows:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://images.reversingmotions.com/b14aa044976d_5DA8/8322.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="8322" border="0" alt="8322" src="http://images.reversingmotions.com/b14aa044976d_5DA8/8322_thumb.png" width="189" height="242" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: calibri"&gt;Report Filter:&lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;span&gt;&lt;span style="font-family: calibri"&gt;1.&lt;/span&gt;&lt;span style="line-height: normal; font-variant: normal; font-style: normal; font-weight: normal; font-size-adjust: none; font-stretch: normalfont-family:&amp;#39;Times New Roman&amp;#39;"&gt; &lt;/span&gt;&lt;span style="font-family: calibri"&gt;Work Item Linked.[System_Title] – Select the the user story as the linked item. Use this filter to get all test cases linked to a user story&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: calibri"&gt;Row Labels:&lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;span&gt;&lt;span style="font-family: calibri"&gt;1.&lt;/span&gt;&lt;span style="line-height: normal; font-variant: normal; font-style: normal; font-weight: normal; font-size-adjust: none; font-stretch: normalfont-family:&amp;#39;Times New Roman&amp;#39;"&gt; &lt;/span&gt;&lt;span style="font-family: calibri"&gt;Test Configuration.[Configuration Name] – Test Configurations selected under the report filters.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span&gt;&lt;span style="font-family: calibri"&gt;2.&lt;/span&gt;&lt;span style="line-height: normal; font-variant: normal; font-style: normal; font-weight: normal; font-size-adjust: none; font-stretch: normalfont-family:&amp;#39;Times New Roman&amp;#39;"&gt; &lt;/span&gt;&lt;span style="font-family: calibri"&gt;Test Case.[System_Title] – The names of all test cases, grouped by test configuration&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: calibri"&gt;Column Labels:&lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;span&gt;&lt;span style="font-family: calibri"&gt;1.&lt;/span&gt;&lt;span style="line-height: normal; font-variant: normal; font-style: normal; font-weight: normal; font-size-adjust: none; font-stretch: normalfont-family:&amp;#39;Times New Roman&amp;#39;"&gt; &lt;/span&gt;&lt;span style="font-family: calibri"&gt;Test Result.[Outcome] – the state of the test case (failed, passed, never run, error, blocked or aborted)&lt;/span&gt;&lt;span style="font-family: calibri"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: calibri"&gt;Values:&lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;span&gt;&lt;span style="font-family: calibri"&gt;1.&lt;/span&gt;&lt;span style="line-height: normal; font-variant: normal; font-style: normal; font-weight: normal; font-size-adjust: none; font-stretch: normalfont-family:&amp;#39;Times New Roman&amp;#39;"&gt; &lt;/span&gt;&lt;span style="font-family: calibri"&gt;Test. [Point Count Tread] – indicates the count of all test points (test cases x configurations) satisfying the row/ column labels&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5591885701432628793-6955862523945581789?l=blog.reversingmotions.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.reversingmotions.com/feeds/6955862523945581789/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.reversingmotions.com/2011/06/running-excel-reports-against-tsf.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/6955862523945581789'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/6955862523945581789'/><link rel='alternate' type='text/html' href='http://blog.reversingmotions.com/2011/06/running-excel-reports-against-tsf.html' title='Running Excel reports against TSF Queries'/><author><name>Moez Tounsi</name><uri>https://profiles.google.com/112395018233684788902</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-7J1Be4Pf7gA/AAAAAAAAAAI/AAAAAAAAAJ4/3Wf7Ljaf8Ik/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5591885701432628793.post-6253330009109212689</id><published>2011-02-22T15:53:00.001Z</published><updated>2011-02-22T15:53:39.141Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Reporting Services'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint Governance Model'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint Foundation'/><category scheme='http://www.blogger.com/atom/ns#' term='Claims Based Authentication'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><title type='text'>Checking use of Claims Based Authentication</title><content type='html'>&lt;p&gt;Integrating Reporting Services with SharePoint, the authentication scheme for the SharePoint site can affect how Reporting Services works. You may be asked many time about how to tell if the SharePoint site is using Claims or is in Classic mode.&lt;/p&gt; &lt;p&gt;We have two ways to check this information, either from the central administration website or with a PowerShell script.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Central Administration&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;To determine if you are using Claims or Classic Authentication for your SharePoint site. Go to Central Admin, Application Management and Manage Web Applications.&lt;/p&gt; &lt;p&gt;&lt;a href="http://images.reversingmotions.com/9c4e92083164_AAEE/cba1.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="cba1" border="0" alt="cba1" src="http://images.reversingmotions.com/9c4e92083164_AAEE/cba1_thumb.png" width="296" height="143"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;When you click on a given web application, the Authentication Providers button will enable.&lt;br&gt;For port 80 application, which is using Classic authentication, you will see the following &lt;p&gt;&lt;a href="http://images.reversingmotions.com/9c4e92083164_AAEE/cba2.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="cba2" border="0" alt="cba2" src="http://images.reversingmotions.com/9c4e92083164_AAEE/cba2_thumb.png" width="355" height="143"&gt;&lt;/a&gt; &lt;p&gt;However, if we look at port 5555 application, we will see something different. &lt;p&gt;&lt;a href="http://images.reversingmotions.com/9c4e92083164_AAEE/cba3.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="cba3" border="0" alt="cba3" src="http://images.reversingmotions.com/9c4e92083164_AAEE/cba3_thumb.png" width="340" height="151"&gt;&lt;/a&gt; &lt;p&gt;For Claims applications, it will actually show you "Claims Based Authentication". When we are in Classic Mode, we will just see "Windows". &lt;p&gt;&lt;strong&gt;PowerShell&lt;/strong&gt; &lt;p&gt;We can also use PowerShell to determine the Authentication mode that the applications are using. SharePoint 2010 has moved towards PowerShell for scripting items as most Microsoft Servers are doing. I ran these scripts by opening the SharePoint 2010 Management Shell, but you could load the cmdlets manually through a normal PowerShell Command prompt. &lt;p&gt;The script is pretty simple. We can just make use of Get-SPWebApplication. &lt;blockquote&gt; &lt;p&gt;$web = Get-SPWebApplication "&amp;lt;URL for Application&amp;gt;" &lt;br&gt;$web.UseClaimsAuthentication&lt;/p&gt;&lt;/blockquote&gt;   &lt;p&gt;For default application at port 80 we will see this&lt;/p&gt; &lt;p&gt;&lt;a href="http://images.reversingmotions.com/9c4e92083164_AAEE/cba4.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="cba4" border="0" alt="cba4" src="http://images.reversingmotions.com/9c4e92083164_AAEE/cba4_thumb.png" width="350" height="50"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;And for application at port 5555 we will see this instead&lt;/p&gt; &lt;p&gt;&lt;a href="http://images.reversingmotions.com/9c4e92083164_AAEE/cba5.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="cba5" border="0" alt="cba5" src="http://images.reversingmotions.com/9c4e92083164_AAEE/cba5_thumb.png" width="348" height="50"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Knowing which mode SharePoint is in can really help with your deployment of Reporting Services and help you avoid or account for certain behaviors and issues. Remember when we are using Claims Based Authentication with the SharePoint Web Application, we will always use Trusted Authentication with Reporting Services. Even if you select Windows Authentication.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5591885701432628793-6253330009109212689?l=blog.reversingmotions.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.reversingmotions.com/feeds/6253330009109212689/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.reversingmotions.com/2011/02/checking-use-of-claims-based.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/6253330009109212689'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/6253330009109212689'/><link rel='alternate' type='text/html' href='http://blog.reversingmotions.com/2011/02/checking-use-of-claims-based.html' title='Checking use of Claims Based Authentication'/><author><name>Moez Tounsi</name><uri>https://profiles.google.com/112395018233684788902</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-7J1Be4Pf7gA/AAAAAAAAAAI/AAAAAAAAAJ4/3Wf7Ljaf8Ik/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5591885701432628793.post-8420885392393850455</id><published>2010-12-08T09:53:00.000Z</published><updated>2010-12-08T09:53:14.947Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET 1.0/1.1/2.0/3.5/4.0'/><category scheme='http://www.blogger.com/atom/ns#' term='Rich Internet Applications'/><category scheme='http://www.blogger.com/atom/ns#' term='Silverlight 5'/><category scheme='http://www.blogger.com/atom/ns#' term='Silverlight'/><category scheme='http://www.blogger.com/atom/ns#' term='Annoucement'/><title type='text'>Silverlight 5 Soon, Watch the Scott's keynote here</title><content type='html'>At Silverlight FireStarter event Microsoft unveiled the next release of Silverlight.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;iframe allowtransparency="allowtransparency" frameborder="0" height="324" hspace="0" marginheight="0" marginwidth="0" scrolling="no" src="http://www.studiosevent.com/newscenter/?id=firestarter" vspace="0" width="576"&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;&lt;i&gt;keynote by&lt;/i&gt; Scott Guthrie&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Premium Media Experiences&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;We are seeing great adoption of Silverlight for premium media solutions. In the last few months we’ve seen companies like Canal+, TV2, and Maximum TV launch both live and on-demand Silverlight solutions.&lt;br /&gt;&lt;br /&gt;Silverlight 5 will enable media experiences to go even further by adding:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Hardware video decode: Silverlight 5 now supports GPU accelerated video decode, which significantly reduces CPU load for HD video.  Using Silverlight 5, even low powered Netbooks will be able to play back 1080p HD content&lt;/li&gt;&lt;li&gt;Trickplay: Silverlight 5 now enables variable speed playback of media content on the client with automatic audio pitch correction. This is great for training videos where you want to speed up the trainer while still understanding what he’s saying&lt;/li&gt;&lt;li&gt;Improved power awareness will prevent screensavers from kicking in while you’re watching movies while allowing the computer to sleep when video is not playing.&lt;/li&gt;&lt;li&gt;Remote-control support is now built-into Silverlight 5 - allowing users to control media playback with remote control devices.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Application Development&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Silverlight provides a rich application development environment that enables you to build great web delivered applications.  &lt;br /&gt;&lt;br /&gt;Silverlight 5 delivers significant improvements for application development including:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Databinding and MVVM: Silverlight 5 delivers significant data-binding improvements that improve developer productivity and provide better Silverlight/WPF feature convergence.  Developers can now debug data-binding expressions, set breakpoints on bindings, and more easily determine errors.  Implicit DataTemplates now allow templates to be created across an application to support a particular type by default.  Ancestor RelativeSource bindings makes it easier for a DataTemplate to bind to a property on a container control. Binding in style setters allows bindings to be used within styles to reference other properties.  And a new DataContextChanged event is being introduced to make handling changes easier. Markup extensions are also now support and allow code to be run at XAML parse time for both properties and event handlers, enabling cutting-edge MVVM support.&lt;/li&gt;&lt;li&gt;WCF and RIA Services: Silverlight 5 now includes WS-Trust support.  WCF RIA Services improvements include complex type support, better MVVM support, and improved customization of code generation.  Silverlight 5’s networking stack also now supports low-latency network scenarios that enable more responsive application scenarios.&lt;/li&gt;&lt;li&gt;Text and Printing: Silverlight 5 delivers improved text clarity that enables crisper and cleaner text rendering, multi-column text flow and linked text containers, character and leading support, and full OpenType font support.  Silverlight 5 also includes a new Postscript Vector Printing API that provides programmatic control over what you print, and enables printing richer reports and documents.  Pivot functionality – which enables developers to build amazing information visualization experiences – will also be provided built-into the Silverlight 5 SDK.&lt;/li&gt;&lt;li&gt;Graphics: Silverlight 5 includes immediate mode graphics support that enables developers to take full advantage of the GPU (graphics processing unit) and enables accelerated 3-D graphics support.  This new support facilitates much richer data visualization scenarios (make sure to watch the keynote to see some really eye-popping ones). &lt;/li&gt;&lt;li&gt;Out of Browser: Silverlight 5 builds on the out-of-browser capabilities we introduced with Silverlight 5.  Out of browser applications can now create and manage child windows.  Trusted out of browser applications can now also use P/Invoke capabilities to call unmanaged libraries and Win32 APIs.  Enhanced group policy support enables enterprises to both lock down and open up security sandbox capabilities of Silverlight 5 applications.&lt;/li&gt;&lt;li&gt;Testing Tools: We are adding automated UI testing support for Silverlight applications with Visual Studio 2010.  This makes it easy to test Silverlight applications, and automate the functionality of them.&lt;/li&gt;&lt;li&gt;Performance: Silverlight 5 support faster application startup, and provides 64-bit browser support.  Silverlight 5 also integrates with the new Hardware Acceleration capabilities of IE9, and enables hardware acceleration in windowsless mode.  &lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5591885701432628793-8420885392393850455?l=blog.reversingmotions.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.reversingmotions.com/feeds/8420885392393850455/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.reversingmotions.com/2010/12/silverlight-5-soon-watch-scotts-keynote.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/8420885392393850455'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/8420885392393850455'/><link rel='alternate' type='text/html' href='http://blog.reversingmotions.com/2010/12/silverlight-5-soon-watch-scotts-keynote.html' title='Silverlight 5 Soon, Watch the Scott&apos;s keynote here'/><author><name>Moez Tounsi</name><uri>https://profiles.google.com/112395018233684788902</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-7J1Be4Pf7gA/AAAAAAAAAAI/AAAAAAAAAJ4/3Wf7Ljaf8Ik/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5591885701432628793.post-6715407337519318709</id><published>2010-11-26T09:46:00.000Z</published><updated>2010-11-26T09:46:12.477Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint Server 2007'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET 1.0/1.1/2.0/3.5/4.0'/><category scheme='http://www.blogger.com/atom/ns#' term='TechEd'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint Foundation'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint Deployement'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='Videos'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><title type='text'>Latest Videos from Tech·Ed Europe 2010</title><content type='html'>&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;a href="http://www.msteched.com/2010/Europe" imageanchor="1" style="clear: right; cssfloat: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" ox="true" src="http://1.bp.blogspot.com/_VJgwo3GnmC4/TO9_EmAFYBI/AAAAAAAAACo/XdDVrKRQNqY/s1600/p2.bmp" /&gt;&lt;/a&gt;Explore the latest technology videos from &lt;a href="http://www.msteched.com/2010/Europe"&gt;TechEd Online&lt;/a&gt;, for developers architects and infastructure engineers&lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_VJgwo3GnmC4/TO9_M6bH_CI/AAAAAAAAACw/tLAjQ1yIozM/s1600/p1.bmp" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" ox="true" src="http://3.bp.blogspot.com/_VJgwo3GnmC4/TO9_M6bH_CI/AAAAAAAAACw/tLAjQ1yIozM/s1600/p1.bmp" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="main search"&gt;&lt;h2&gt;And the latest videos&amp;nbsp;for SharePoint from TechEd Online :&lt;/h2&gt;&lt;ul class="posts medium"&gt;&lt;li class="post first"&gt;&lt;a href="http://www.msteched.com/2010/NorthAmerica/OSP207"&gt;Integrating Microsoft Dynamics CRM and Microsoft SharePoint&amp;nbsp;2010&lt;/a&gt;&lt;br /&gt;&lt;div class="content"&gt;OSP207 As SharePoint adoption grows, many companies want to increase their integration of CRM data into their SharePoint assets. This session provides an overview of how you ...&lt;/div&gt;&lt;/li&gt;&lt;li class="post odd"&gt;&lt;a href="http://www.msteched.com/2010/NorthAmerica/OSP320"&gt;Workflow Development in Microsoft SharePoint Server 2010 with Microsoft Visual Studio&amp;nbsp;2010&lt;/a&gt;&lt;br /&gt;&lt;div class="content"&gt;OSP320 SharePoint Server 2010 includes new workflow features and there are many improvements in the tools for workflow. SharePoint 2010 now supports workflows that can run ...&lt;/div&gt;&lt;/li&gt;&lt;li class="post"&gt;&lt;a href="http://www.msteched.com/2010/NorthAmerica/OSP315"&gt;Microsoft SharePoint Server 2010 As a Social Computing&amp;nbsp;Platform&lt;/a&gt;&lt;br /&gt;&lt;div class="content"&gt;OSP315 This lecture focuses on the developer interfaces for the Social Computing API and Web services for SharePoint 2010. Social Computing with SharePoint involves creating ...&lt;/div&gt;&lt;/li&gt;&lt;li class="post odd"&gt;&lt;a href="http://www.msteched.com/2010/NorthAmerica/OSP309"&gt;Developing with REST and LINQ in Microsoft SharePoint&amp;nbsp;2010&lt;/a&gt;&lt;br /&gt;&lt;div class="content"&gt;OSP309 SharePoint 2010 has new and improved ways to work with data. LINQ to SharePoint lets a developer work with data from SharePoint lists in a strongly typed way that ...&lt;/div&gt;&lt;/li&gt;&lt;li class="post"&gt;&lt;a href="http://www.msteched.com/2010/Australia/OFS205"&gt;SharePoint 2010 Lessons Learned from Real World Implementations: RDP&amp;nbsp;Program&lt;/a&gt;&lt;br /&gt;&lt;div class="content"&gt;OFS205 The RDP is program sponsored by the SharePoint product group which endeavors to gather real-world implementation feedback for SharePoint products and Technologies. The ...&lt;/div&gt;&lt;/li&gt;&lt;li class="post odd"&gt;&lt;a href="http://www.msteched.com/2010/NorthAmerica/OSP306"&gt;Developing Microsoft SharePoint Server 2010 Solutions with Claims&amp;nbsp;Authentication&lt;/a&gt;&lt;br /&gt;&lt;div class="content"&gt;OSP306 SharePoint has built-in user authorization so that a site owner can specify what access particular users have to resources. Authentication is the identification of who ...&lt;/div&gt;&lt;/li&gt;&lt;li class="post"&gt;&lt;a href="http://www.msteched.com/2009/Europe/OFS202"&gt;Overview and What's New in Microsoft SharePoint Server 2010 for IT&amp;nbsp;Pros&lt;/a&gt;&lt;br /&gt;&lt;div class="content"&gt;OFS202 This is an overview session. The session walks through IT Pro related features in SharePoint Server 2010. It covers the new IT Pro experience including deployment and ...&lt;/div&gt;&lt;/li&gt;&lt;li class="post odd"&gt;&lt;a href="http://www.msteched.com/2010/NorthAmerica/OSP219"&gt;Information Governance for Microsoft SharePoint&amp;nbsp;2010&lt;/a&gt;&lt;br /&gt;&lt;div class="content"&gt;OSP219 Learn how to avoid SharePoint Sprawl or Portal Propagation with SharePoint. With all the new features of SharePoint 2010, even more planning is required to maintain a ...&lt;/div&gt;&lt;/li&gt;&lt;li class="post"&gt;&lt;a href="http://www.msteched.com/2010/NorthAmerica/OSP402"&gt;Windows PowerShell Made Less Scary for the Microsoft SharePoint Server 2010&amp;nbsp;Administrator&lt;/a&gt; &lt;div class="content"&gt;OSP402 PowerShell is the command line admin interface for SharePoint Server 2010. It can be pretty scary for SharePoint admins who haven't used it before. In this session we ...&amp;nbsp;&lt;/div&gt;&lt;/li&gt;&lt;li class="post last odd"&gt;&lt;a href="http://www.msteched.com/2010/NorthAmerica/OSP202"&gt;Business Connectivity Services in Microsoft SharePoint 2010:&amp;nbsp;Overview&lt;/a&gt;&lt;br /&gt;&lt;div class="content" style="text-align: left;"&gt;OSP202 Business Connectivity Services (BCS) – the evolution of the Business Data Catalog – is a key feature of SharePoint 2010. In this session we discuss the new ...&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5591885701432628793-6715407337519318709?l=blog.reversingmotions.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.reversingmotions.com/feeds/6715407337519318709/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.reversingmotions.com/2010/11/latest-videos-from-teched-europe-2010.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/6715407337519318709'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/6715407337519318709'/><link rel='alternate' type='text/html' href='http://blog.reversingmotions.com/2010/11/latest-videos-from-teched-europe-2010.html' title='Latest Videos from Tech·Ed Europe 2010'/><author><name>Moez Tounsi</name><uri>https://profiles.google.com/112395018233684788902</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-7J1Be4Pf7gA/AAAAAAAAAAI/AAAAAAAAAJ4/3Wf7Ljaf8Ik/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_VJgwo3GnmC4/TO9_EmAFYBI/AAAAAAAAACo/XdDVrKRQNqY/s72-c/p2.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5591885701432628793.post-2167395467689081033</id><published>2010-11-25T17:05:00.000Z</published><updated>2010-11-25T17:05:14.307Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint Governance Model'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint 2010 Search Model'/><category scheme='http://www.blogger.com/atom/ns#' term='Search Crawl'/><category scheme='http://www.blogger.com/atom/ns#' term='User Profile Service'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint Configuration File Update'/><category scheme='http://www.blogger.com/atom/ns#' term='Enterprise Search'/><title type='text'>User Profile Results Empty in SharePoint 2010: Configure Crawl and Search for User Profiles</title><content type='html'>After configuring SharePoint 2010’s User Profile Services with successful synchronization of user profiles, setting up your "My Site" host you assume that all should be well to be able to perform People search and bring people’s profiles. Well, not all the time. In order to for SharePoint to successfully crawl the user profiles from the User Profile Service you need to give the search account the “Retrieve People Data for Search Crawler” permission. &lt;br /&gt;For the permission following the following steps:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;In Central Administration choose Application Management the Manage Service Applications&lt;/li&gt;&lt;li&gt;Select the User Profile Service by tapping towards the right of the text&lt;/li&gt;&lt;li&gt;Choose the Administrators button from the toolbar&lt;/li&gt;&lt;li&gt;If you search account is not included go ahead and add it to the list&lt;/li&gt;&lt;li&gt;Check the Retrieve People Data for Search Crawlers permission &lt;/li&gt;&lt;li&gt;Click Ok&lt;/li&gt;&lt;/ul&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-98-68-metablogapi/1667.image_5F00_34DCA862.png"&gt;&lt;img alt="image" border="0" height="497" src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-98-68-metablogapi/8561.image_5F00_thumb_5F00_6155B27B.png" style="border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="431" /&gt;&lt;/a&gt;&lt;br /&gt;That should generally do it. You would then need to force a full crawl in order to confirm that the crawler now indexes all user profiles. Of course I’m assuming that you have already setup a Search Center in order to be able to test the People search functionality.&lt;br /&gt;In some cases this might not work if the default My Site is not part of the Local SharePoint Sites search source. In that case you need to add the “sps3://&lt;mysite_name&gt;” corresponding to your My Site Host Name. &lt;br /&gt;&lt;br /&gt;For SPS3 Protocol Questions please refer to this blog entry : &lt;a href="http://blogs.technet.com/b/josebda/archive/2007/03/19/crawling-sharepoint-sites-using-the-sps3-protocol-handler.aspx"&gt;Crawling SharePoint sites using the SPS3 protocol handler&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5591885701432628793-2167395467689081033?l=blog.reversingmotions.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.reversingmotions.com/feeds/2167395467689081033/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.reversingmotions.com/2010/11/user-profile-results-empty-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/2167395467689081033'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/2167395467689081033'/><link rel='alternate' type='text/html' href='http://blog.reversingmotions.com/2010/11/user-profile-results-empty-in.html' title='User Profile Results Empty in SharePoint 2010: Configure Crawl and Search for User Profiles'/><author><name>Moez Tounsi</name><uri>https://profiles.google.com/112395018233684788902</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-7J1Be4Pf7gA/AAAAAAAAAAI/AAAAAAAAAJ4/3Wf7Ljaf8Ik/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5591885701432628793.post-5545501864104437136</id><published>2010-11-23T14:42:00.000Z</published><updated>2010-11-23T14:42:14.465Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET 1.0/1.1/2.0/3.5/4.0'/><category scheme='http://www.blogger.com/atom/ns#' term='Events'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='PDC'/><title type='text'>PDC 10 Sessions Available for View or Download</title><content type='html'>Most PDC 2010 (Microsoft Professional Developer Conference) sessions are available for view online or for download &lt;a href="http://www.microsoftpdc.com/WhatsHappening/Downloadable-Sessions-Available-Now"&gt;here&lt;/a&gt;.  &lt;br /&gt;&lt;a href="http://www.microsoftpdc.com/WhatsHappening/Downloadable-Sessions-Available-Now"&gt;&lt;img alt="image" border="0" height="339" src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-43-49-metablogapi/3364.image_5F00_64F12D59.png" style="border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="554" /&gt;&lt;/a&gt;&lt;br /&gt;Note: Peter Kellner has posted a batch file that will rename the downloaded videos to use the session titles.  Grab it here: &lt;a href="http://peterkellner.net/2010/11/04/pdc10-videos-renaming-script/"&gt;http://peterkellner.net/2010/11/04/pdc10-videos-renaming-script/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5591885701432628793-5545501864104437136?l=blog.reversingmotions.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.reversingmotions.com/feeds/5545501864104437136/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.reversingmotions.com/2010/11/pdc-10-sessions-available-for-view-or.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/5545501864104437136'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/5545501864104437136'/><link rel='alternate' type='text/html' href='http://blog.reversingmotions.com/2010/11/pdc-10-sessions-available-for-view-or.html' title='PDC 10 Sessions Available for View or Download'/><author><name>Moez Tounsi</name><uri>https://profiles.google.com/112395018233684788902</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-7J1Be4Pf7gA/AAAAAAAAAAI/AAAAAAAAAJ4/3Wf7Ljaf8Ik/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5591885701432628793.post-1940912339823170660</id><published>2010-11-22T14:44:00.000Z</published><updated>2010-11-22T14:44:22.464Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Architecture'/><category scheme='http://www.blogger.com/atom/ns#' term='Project Management'/><category scheme='http://www.blogger.com/atom/ns#' term='Software Design'/><title type='text'>Agile versus Waterfall</title><content type='html'>The Rise and Fall of Waterfall is a cute video (although with a somewhat annoying soundtrack.. watch with the sound off).  &lt;br /&gt;&lt;div style="display: block; float: none; margin: 0px auto; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; width: 522px;"&gt;&lt;div&gt;&lt;a href="http://www.youtube.com/watch?v=X1c2--sP3o0"&gt;&lt;img alt="" src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-01-32-02-metablogapi/8176.video05260307c2fd_5F00_411CDFAE.jpg" style="border-style: none;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;My favorite part of it is the screenshot (seen above) showing the waterfall stages and their respective impacts.  The poor Operations folks at the bottom remind me of &lt;a href="http://blogs.msdn.com/b/kenj/archive/2010/03/27/leaving-office-joining-bing-and-planting-asparagus.aspx"&gt;Ken Johnston’s quote&lt;/a&gt;:&lt;br /&gt;&lt;blockquote&gt;&lt;div align="center"&gt;&lt;strong&gt;Ops beware; unpleasant matter tends to roll downhill &lt;/strong&gt;&lt;strong&gt;and you are near the bottom&lt;/strong&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;For those wondering what the alternative to Waterfall is, here is Scrum in 10 minutes&lt;br /&gt;&lt;div style="display: block; float: none; margin: 0px auto; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; width: 448px;"&gt;&lt;div&gt;&lt;a href="http://www.youtube.com/watch?v=Q5k7a9YEoUI"&gt;&lt;img alt="" src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-01-32-02-metablogapi/1220.videob5b6a3ab004e_5F00_190A308F.jpg" style="border-style: none;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;And if 10 minutes is too long, then try 13 seconds:&lt;br /&gt;&lt;div style="display: block; float: none; margin: 0px auto; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; width: 448px;"&gt;&lt;div&gt;&lt;a href="http://www.youtube.com/watch?v=9DKM9HcRnZ8"&gt;&lt;img alt="" src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-01-32-02-metablogapi/2703.video9c3f9ad51ff7_5F00_7EC9C76A.jpg" style="border-style: none;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;And for those looking for the Next Big thing, &lt;strong&gt;Kanban&lt;/strong&gt; is the new “Scrum”&lt;br /&gt;&lt;div style="display: block; float: none; margin: 0px auto; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; width: 448px;"&gt;&lt;div&gt;&lt;a href="http://www.youtube.com/watch?v=Jx6_E5XxqEo"&gt;&lt;img alt="" src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-01-32-02-metablogapi/7080.video75a1221afd75_5F00_3291BDBC.jpg" style="border-style: none;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5591885701432628793-1940912339823170660?l=blog.reversingmotions.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.reversingmotions.com/feeds/1940912339823170660/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.reversingmotions.com/2010/11/agile-versus-waterfall.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/1940912339823170660'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/1940912339823170660'/><link rel='alternate' type='text/html' href='http://blog.reversingmotions.com/2010/11/agile-versus-waterfall.html' title='Agile versus Waterfall'/><author><name>Moez Tounsi</name><uri>https://profiles.google.com/112395018233684788902</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-7J1Be4Pf7gA/AAAAAAAAAAI/AAAAAAAAAJ4/3Wf7Ljaf8Ik/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5591885701432628793.post-6307215546700337425</id><published>2010-11-22T14:41:00.000Z</published><updated>2010-11-22T14:41:05.053Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Events'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='Annoucement'/><title type='text'>Microsoft Web Camps</title><content type='html'>A bunch of additional Web Camp events are coming up in the months ahead.  You can find our more about the events and register to attend them for free &lt;a href="http://webcamps.ms/upcoming-web-camps.aspx"&gt;here&lt;/a&gt;.&lt;br /&gt;Below is a snapshot of the upcoming schedule as of today:&lt;br /&gt;&lt;h3&gt;&lt;u&gt;One Day Events&lt;/u&gt;&lt;/h3&gt;One day events focus on teaching you how to build websites using ASP.NET MVC, WebMatrix, OData and more, and include presentations &amp;amp; hands on development. They will be available in 30 countries worldwide.  Below are the current known dates with links to register to attend them for free:&lt;br /&gt;&lt;div&gt;&lt;table&gt;&lt;tbody style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;tr height="20" style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;           &lt;td height="20" style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="113"&gt;&lt;strong style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;City&lt;/strong&gt;&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="89"&gt;&lt;strong style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Country&lt;/strong&gt;&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="79"&gt;&lt;strong style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Date&lt;/strong&gt;&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="97"&gt;&lt;strong style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Technology&lt;/strong&gt;&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="115"&gt;&lt;strong style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Registration Link&lt;/strong&gt;&lt;/td&gt;         &lt;/tr&gt;&lt;tr style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;           &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;"&gt;Bangalore&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; height: 20px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;"&gt;India&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;"&gt;16-Nov-10&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;"&gt;ASP.NET MVC&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;"&gt;Already Happened&lt;/td&gt;         &lt;/tr&gt;&lt;tr height="20" style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;           &lt;td height="20" style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="113"&gt;&lt;span class="Apple-style-span" style="background-color: orange;"&gt;Paris&lt;/span&gt;&lt;/td&gt;            &lt;td style="border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="89"&gt;&lt;span class="Apple-style-span" style="background-color: orange;"&gt;France&lt;/span&gt;&lt;/td&gt;            &lt;td style="border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="79"&gt;&lt;span class="Apple-style-span" style="background-color: orange;"&gt;25-Nov-10&lt;/span&gt;&lt;/td&gt;            &lt;td style="border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="97"&gt;&lt;span class="Apple-style-span" style="background-color: orange;"&gt;TBA&lt;/span&gt;&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="115"&gt;&lt;a href="http://www.facebook.com/Developpeurs.net?v=app_2344061033" style="border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; color: #7d8500; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;"&gt;&lt;span class="Apple-style-span" style="background-color: orange;"&gt;Register Here&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;         &lt;/tr&gt;&lt;tr height="20" style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;           &lt;td height="20" style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="113"&gt;Bad Homburg &lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="89"&gt;Germany&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="79"&gt;30-Nov-10&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="97"&gt;ASP.NET MVC&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="115"&gt;&lt;a href="https://msevents.microsoft.com/CUI/InviteOnly.aspx?EventID=E7-69-78-4A-1D-D4-AE-8E-D2-B6-97-FC-E7-2D-A7-FF&amp;amp;Culture=de-DE" style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; color: #7d8500; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;"&gt;Register Here&lt;/a&gt;&lt;/td&gt;         &lt;/tr&gt;&lt;tr height="20" style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;           &lt;td height="20" style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="113"&gt;Bogota&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="89"&gt;Colombia&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="79"&gt;30-Nov-10&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="97"&gt;Multiple&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="115"&gt;&lt;a href="https://msevents.microsoft.com/CUI/InviteOnly.aspx?EventID=25-28-C6-82-E9-9E-01-28-1F-09-4B-7A-EE-04-65-E8&amp;amp;Culture=es-CO" style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; color: #7d8500; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;"&gt;Register Here&lt;/a&gt;&lt;/td&gt;         &lt;/tr&gt;&lt;tr height="20" style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;           &lt;td height="20" style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="113"&gt;Chennai&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="89"&gt;India&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="79"&gt;1-Dec-10&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="97"&gt;ASP.NET MVC&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="115"&gt;&lt;a href="https://msevents.microsoft.com/CUI/InviteOnly.aspx?EventID=21-27-DA-75-C6-21-7C-0C-EC-0B-9D-1B-6C-42-A1-D9&amp;amp;Culture=en-IN" style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; color: #7d8500; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;"&gt;Register Here&lt;/a&gt;&lt;/td&gt;         &lt;/tr&gt;&lt;tr style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;           &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; height: 20px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;"&gt;Seoul&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;"&gt;Korea&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;"&gt;2-Dec-10&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;"&gt;Web Matrix&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;"&gt;Coming Soon&lt;/td&gt;         &lt;/tr&gt;&lt;tr height="20" style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;           &lt;td height="20" style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="113"&gt;Pune&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="89"&gt;India&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="79"&gt;3-Dec-10&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="97"&gt;ASP.NET MVC&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="115"&gt;&lt;a href="https://msevents.microsoft.com/CUI/InviteOnly.aspx?EventID=21-27-DA-75-C6-21-7C-0C-D8-1C-BF-45-3E-60-33-15&amp;amp;Culture=en-IN" style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; color: #7d8500; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;"&gt;Register Here&lt;/a&gt;&lt;/td&gt;         &lt;/tr&gt;&lt;tr height="20" style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;           &lt;td height="20" style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="113"&gt;Moulineaux&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="89"&gt;France&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="79"&gt;8-Dec-10&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="97"&gt;TBA&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="115"&gt;&lt;a href="http://www.facebook.com/Developpeurs.net?v=app_2344061033" style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; color: #7d8500; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;"&gt;Register Here&lt;/a&gt;&lt;a href="http://www.facebook.com/Developpeurs.net?v=app_2344061033" style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; color: #7d8500; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;"&gt;&lt;/a&gt;&lt;/td&gt;         &lt;/tr&gt;&lt;tr height="33" style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;           &lt;td height="33" style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="113"&gt;Sarajevo&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="89"&gt;Bosnia and Herzegovina&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="79"&gt;10-Dec-10&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="97"&gt;ASP.NET MVC&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="115"&gt;&lt;a href="https://msevents.microsoft.com/cui/EventDetail.aspx?culture=en-US&amp;amp;EventID=1032467612&amp;amp;IO=ZveLgCOzzm%2fmYpz%2bTZ%2fhcg%3d%3d" style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; color: #7d8500; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;"&gt;Register Here&lt;/a&gt;&lt;/td&gt;         &lt;/tr&gt;&lt;tr style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;           &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;"&gt;Toronto&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; height: 20px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;"&gt;Canada&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;"&gt;11-Dec-10&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;"&gt;ASP.NET MVC&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;"&gt;&lt;a href="https://msevents.microsoft.com/cui/EventDetail.aspx?culture=en-CA&amp;amp;EventID=1032471363&amp;amp;IO=K7P4uWse6WsFXbYMJiVnSg%3d%3d" style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; color: #7d8500; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;"&gt;Register Here&lt;/a&gt;&lt;/td&gt;         &lt;/tr&gt;&lt;tr height="20" style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;           &lt;td height="20" style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="113"&gt;Bad Homburg &lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="89"&gt;Germany&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="79"&gt;16-Dec-10&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="97"&gt;ASP.NET MVC&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="115"&gt;&lt;a href="https://msevents.microsoft.com/cui/EventDetail.aspx?culture=de-DE&amp;amp;EventID=1032464992&amp;amp;IO=dNg4FIVr1d8kJHBlVZcXWQ%3d%3d" style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; color: #7d8500; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;"&gt;Register Here&lt;/a&gt;&lt;/td&gt;         &lt;/tr&gt;&lt;tr height="20" style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;           &lt;td height="20" style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="113"&gt;&lt;span class="Apple-style-span" style="background-color: orange;"&gt;Moulineaux&lt;/span&gt;&lt;/td&gt;            &lt;td style="border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="89"&gt;&lt;span class="Apple-style-span" style="background-color: orange;"&gt;France&lt;/span&gt;&lt;/td&gt;            &lt;td style="border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="79"&gt;&lt;span class="Apple-style-span" style="background-color: orange;"&gt;11-Jan-11&lt;/span&gt;&lt;/td&gt;            &lt;td style="border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="97"&gt;&lt;span class="Apple-style-span" style="background-color: orange;"&gt;TBA&lt;/span&gt;&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="115"&gt;&lt;a href="http://www.facebook.com/Developpeurs.net?v=app_2344061033" style="border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; color: #7d8500; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;"&gt;&lt;span class="Apple-style-span" style="background-color: orange;"&gt;Register Here&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;         &lt;/tr&gt;&lt;tr height="20" style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;           &lt;td height="20" style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="113"&gt;Cape Town &lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="89"&gt;South Africa &lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="79"&gt;22-Jan-11&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="97"&gt;Web Matrix&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="115"&gt;Coming Soon&lt;/td&gt;         &lt;/tr&gt;&lt;tr height="20" style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;           &lt;td height="20" style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="113"&gt;Johannesburg&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="89"&gt;South Africa &lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="79"&gt;29-Jan-11&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="97"&gt;Web Matrix&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="115"&gt;Coming Soon&lt;/td&gt;         &lt;/tr&gt;&lt;tr style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;           &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;"&gt;&lt;span class="Apple-style-span" style="background-color: orange;"&gt;Tunis&lt;/span&gt;&lt;/td&gt;            &lt;td style="border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; height: 15px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" valign="top"&gt;&lt;span class="Apple-style-span" style="background-color: orange;"&gt;Tunisia&lt;/span&gt;&lt;/td&gt;            &lt;td style="border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;"&gt;&lt;span class="Apple-style-span" style="background-color: orange;"&gt;1-Feb-11&lt;/span&gt;&lt;/td&gt;            &lt;td style="border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;"&gt;&lt;span class="Apple-style-span" style="background-color: orange;"&gt;ASP.Net MVC&lt;/span&gt;&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;"&gt;&lt;a href="https://msevents.microsoft.com/CUI/InviteOnly.aspx?EventID=98-18-95-91-45-1C-93-4D-B4-74-8F-69-F9-DD-59-36&amp;amp;Culture=en-US" style="border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; color: #7d8500; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;"&gt;&lt;span class="Apple-style-span" style="background-color: orange;"&gt;Register Here&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;         &lt;/tr&gt;&lt;tr height="20" style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;           &lt;td height="20" style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="113"&gt;Cape Town &lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="89"&gt;South Africa &lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="79"&gt;12-Feb-11&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="97"&gt;ASP.Net MVC&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="115"&gt;Coming Soon&lt;/td&gt;         &lt;/tr&gt;&lt;tr height="20" style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;           &lt;td height="20" style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="113"&gt;San Francisco, CA&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="89"&gt;USA-West&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="79"&gt;18-Feb-11&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="97"&gt;ASP.NET MVC&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="115"&gt;Coming Soon&lt;/td&gt;         &lt;/tr&gt;&lt;tr height="20" style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;           &lt;td height="20" style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="113"&gt;Johannesburg&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="89"&gt;South Africa &lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="79"&gt;19-Feb-11&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="97"&gt;ASP.Net MVC&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="115"&gt;Coming Soon&lt;/td&gt;         &lt;/tr&gt;&lt;tr height="20" style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;           &lt;td height="20" style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="113"&gt;Redmond, WA&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="89"&gt;USA-West&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="79"&gt;18-Mar-11&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="97"&gt;Odata&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="115"&gt;Coming Soon&lt;/td&gt;         &lt;/tr&gt;&lt;tr height="20" style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;           &lt;td height="20" style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="113"&gt;Munich&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="89"&gt;Germany&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="79"&gt;31-Mar-11&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="97"&gt;Web Matrix&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="115"&gt;&lt;a href="https://msevents.microsoft.com/cui/EventDetail.aspx?culture=de-DE&amp;amp;EventID=1032463703&amp;amp;IO=K3%2fzIVonIuHOGItPTyQqxA%3d%3d" style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; color: #7d8500; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;"&gt;Register Here&lt;/a&gt;&lt;/td&gt;         &lt;/tr&gt;&lt;tr height="20" style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;           &lt;td height="20" style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="113"&gt;&lt;span class="Apple-style-span" style="background-color: orange;"&gt;Moulineaux&lt;/span&gt;&lt;/td&gt;            &lt;td style="border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="89"&gt;&lt;span class="Apple-style-span" style="background-color: orange;"&gt;France&lt;/span&gt;&lt;/td&gt;            &lt;td style="border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="79"&gt;&lt;span class="Apple-style-span" style="background-color: orange;"&gt;5-Apr-11&lt;/span&gt;&lt;/td&gt;            &lt;td style="border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="97"&gt;&lt;span class="Apple-style-span" style="background-color: orange;"&gt;TBA&lt;/span&gt;&lt;/td&gt;            &lt;td style="border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="115"&gt;&lt;a href="http://www.facebook.com/Developpeurs.net?v=app_2344061033" style="border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; color: #7d8500; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;"&gt;&lt;span class="Apple-style-span" style="background-color: orange;"&gt;Register Here&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;         &lt;/tr&gt;&lt;tr height="20" style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;           &lt;td height="20" style="border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="113"&gt;&lt;span class="Apple-style-span" style="background-color: orange;"&gt;Moulineaux&lt;/span&gt;&lt;/td&gt;            &lt;td style="border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="89"&gt;&lt;span class="Apple-style-span" style="background-color: orange;"&gt;France&lt;/span&gt;&lt;/td&gt;            &lt;td style="border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="79"&gt;&lt;span class="Apple-style-span" style="background-color: orange;"&gt;17-May-11&lt;/span&gt;&lt;/td&gt;            &lt;td style="border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="97"&gt;&lt;span class="Apple-style-span" style="background-color: orange;"&gt;TBA&lt;/span&gt;&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="115"&gt;&lt;a href="http://www.facebook.com/Developpeurs.net?v=app_2344061033" style="border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; color: #7d8500; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;"&gt;&lt;span class="Apple-style-span" style="background-color: orange;"&gt;Register Here&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;         &lt;/tr&gt;&lt;tr height="20" style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;           &lt;td height="20" style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="113"&gt;Irvine, CA&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="89"&gt;USA-West&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="79"&gt;10-Jun-11&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="97"&gt;ASP.NET MVC&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="115"&gt;Coming Soon&lt;/td&gt;         &lt;/tr&gt;&lt;tr height="28" style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;           &lt;td height="28" style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="113"&gt;&lt;span class="Apple-style-span" style="background-color: orange;"&gt;Moulineaux&lt;/span&gt;&lt;/td&gt;            &lt;td style="border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="89"&gt;&lt;span class="Apple-style-span" style="background-color: orange;"&gt;France&lt;/span&gt;&lt;/td&gt;            &lt;td style="border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="79"&gt;&lt;span class="Apple-style-span" style="background-color: orange;"&gt;14-Jun-11&lt;/span&gt;&lt;/td&gt;            &lt;td style="border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="97"&gt;&lt;span class="Apple-style-span" style="background-color: orange;"&gt;TBA&lt;/span&gt;&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="115"&gt;&lt;a href="http://www.facebook.com/Developpeurs.net?v=app_2344061033" style="border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; color: #7d8500; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;"&gt;&lt;span class="Apple-style-span" style="background-color: orange;"&gt;Register Here&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;         &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div&gt;&lt;h3&gt;&lt;u&gt;Two Day Events&lt;/u&gt;&lt;/h3&gt;Two day Web Camps go into even more depth.  These events will cover ASP.NET, ASP.NET MVC, WebMatrix and OData, and will have presentations on day 1 with hands on development on day 2.  Below are the current dates for the events:&lt;br /&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr height="32" style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;           &lt;td height="32" style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="90"&gt;&lt;strong style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;City&lt;/strong&gt;&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="79"&gt;&lt;strong style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Country&lt;/strong&gt;&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="79"&gt;&lt;strong style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Date&lt;/strong&gt;&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="108"&gt;&lt;strong style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Presenters&lt;/strong&gt;&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="121"&gt;&lt;strong style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Registration Link&lt;/strong&gt;&lt;/td&gt;         &lt;/tr&gt;&lt;tr height="32" style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;           &lt;td height="32" style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="90"&gt;Hyderabad&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="79"&gt;India&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="79"&gt;18-Nov-10&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="108"&gt;James Senior &amp;amp;             &lt;br /&gt;Jon Galloway&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="121"&gt;Already Happened&lt;/td&gt;         &lt;/tr&gt;&lt;tr height="32" style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;           &lt;td height="32" style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="90"&gt;Amsterdam&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="79"&gt;Netherlands&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="79"&gt;20-Jan-11&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="108"&gt;James Senior &amp;amp;             &lt;br /&gt;Scott Hanselman&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="121"&gt;Coming Soon&lt;/td&gt;         &lt;/tr&gt;&lt;tr height="32" style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;           &lt;td height="32" style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="90"&gt;&lt;span class="Apple-style-span" style="background-color: orange;"&gt;Paris&lt;/span&gt;&lt;/td&gt;            &lt;td style="border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="79"&gt;&lt;span class="Apple-style-span" style="background-color: orange;"&gt;France&lt;/span&gt;&lt;/td&gt;            &lt;td style="border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="79"&gt;&lt;span class="Apple-style-span" style="background-color: orange;"&gt;25-Jan-11&lt;/span&gt;&lt;/td&gt;            &lt;td style="border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="108"&gt;&lt;span class="Apple-style-span" style="background-color: orange;"&gt;James Senior &amp;amp;             &lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: orange;"&gt;Scott Hanselman&lt;/span&gt;&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="121"&gt;&lt;span class="Apple-style-span" style="background-color: orange;"&gt;Coming Soon&lt;/span&gt;&lt;/td&gt;         &lt;/tr&gt;&lt;tr height="32" style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;           &lt;td height="32" style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="90"&gt;Austin, TX&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="79"&gt;USA&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="79"&gt;7-Mar-11&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="108"&gt;James Senior &amp;amp;             &lt;br /&gt;Scott Hanselman&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="121"&gt;Coming Soon&lt;/td&gt;         &lt;/tr&gt;&lt;tr height="32" style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;           &lt;td height="32" style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="90"&gt;Buenos Aires&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="79"&gt;Argentina&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="79"&gt;14-Mar-11&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="108"&gt;James Senior &amp;amp;             &lt;br /&gt;Phil Haack&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="121"&gt;Coming Soon&lt;/td&gt;         &lt;/tr&gt;&lt;tr height="32" style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;           &lt;td height="32" style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="90"&gt;São Paulo&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="79"&gt;Brazil&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="79"&gt;18-Mar-11&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="108"&gt;James Senior &amp;amp;             &lt;br /&gt;Phil Haack&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="121"&gt;Coming Soon&lt;/td&gt;         &lt;/tr&gt;&lt;tr height="32" style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;           &lt;td height="32" style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="90"&gt;Silicon Valley&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="79"&gt;USA&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="79"&gt;6-May-11&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="108"&gt;James Senior &amp;amp;             &lt;br /&gt;Doris Chen&lt;/td&gt;            &lt;td style="background-color: transparent; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; font-size: 13px; margin: 0px; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 10px; vertical-align: baseline;" width="121"&gt;Coming Soon&lt;/td&gt;         &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;h3&gt;&lt;u&gt;More Details&lt;/u&gt;&lt;/h3&gt;You can find the latest details and registration information about upcoming Web Camp events &lt;a href="http://webcamps.ms/upcoming-web-camps.aspx"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5591885701432628793-6307215546700337425?l=blog.reversingmotions.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.reversingmotions.com/feeds/6307215546700337425/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.reversingmotions.com/2010/11/microsoft-web-camps.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/6307215546700337425'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/6307215546700337425'/><link rel='alternate' type='text/html' href='http://blog.reversingmotions.com/2010/11/microsoft-web-camps.html' title='Microsoft Web Camps'/><author><name>Moez Tounsi</name><uri>https://profiles.google.com/112395018233684788902</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-7J1Be4Pf7gA/AAAAAAAAAAI/AAAAAAAAAJ4/3Wf7Ljaf8Ik/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5591885701432628793.post-3838769444011645262</id><published>2010-11-02T14:24:00.000Z</published><updated>2010-11-02T14:24:14.500Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET 1.0/1.1/2.0/3.5/4.0'/><category scheme='http://www.blogger.com/atom/ns#' term='SaaS'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='Azure'/><category scheme='http://www.blogger.com/atom/ns#' term='Azure Publication'/><category scheme='http://www.blogger.com/atom/ns#' term='Cloud Computing'/><title type='text'>Creating an ASP.NET Web Application and Deploying it to the Windows Azure Platform</title><content type='html'>I went through the process of creating an asp.net web application (without database) and deploying it to my Windows Azure account. I followed step by step instructions during the process but ran into a few minor issues. So I thought I’d share what I learned here.&lt;br /&gt;1. Creating two services in Windows Azure account &lt;br /&gt;After purchasing a Windows Azure account, I logged in to my account and created two services: one hosted service (“Service1”) to run the asp.net web application, and one storage service (“Storage1”) to store the application package including a configuration file. While the concept of having the two services is not so intuitive (at least to me), the process of creating them is very straightforward. Once done, my Windows Azure account looks like the screenshot below.&lt;br /&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-43-49-metablogapi/1273.image_5F00_4BD0859A.png"&gt;&lt;img alt="image" border="0" height="472" src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-43-49-metablogapi/2766.image_5F00_thumb_5F00_7E53E30C.png" style="border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline;" title="image" width="706" /&gt;&lt;/a&gt; &lt;br /&gt;2. Testing an ASP.NET web application in Local Azure simulation environment&lt;br /&gt;After installing &lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=2274a0a8-5d37-4eac-b50a-e197dc340f6f&amp;amp;displaylang=en"&gt;Windows Azure Tools&lt;/a&gt; (version 1.2), I created an ASP.NET web role application and tested it in a local Azure simulation environment.&lt;br /&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-43-49-metablogapi/2350.image_5F00_1C51F101.png"&gt;&lt;img alt="image" border="0" height="494" src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-43-49-metablogapi/4403.image_5F00_thumb_5F00_54243524.png" style="border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline;" title="image" width="705" /&gt;&lt;/a&gt; &lt;br /&gt;The local Azure simulation environment consists of Development Fabric and Development Storage. You can find it from your Windows tray.&lt;br /&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-43-49-metablogapi/4403.image_5F00_39E3CC00.png"&gt;&lt;img alt="image" border="0" height="441" src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-43-49-metablogapi/1680.image_5F00_thumb_5F00_6A96D3AB.png" style="border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline;" title="image" width="704" /&gt;&lt;/a&gt;  &lt;br /&gt;You can right click the Fabric Development UI icon and bring up the screen, shown below.&lt;br /&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-43-49-metablogapi/0677.image_5F00_0894E1A0.png"&gt;&lt;img alt="image" border="0" height="525" src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-43-49-metablogapi/1754.image_5F00_thumb_5F00_34D16884.png" style="border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline;" title="image" width="699" /&gt;&lt;/a&gt; &lt;br /&gt;You can also right click the Storage Development UI icon and bring up the screen, shown below.&lt;br /&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-43-49-metablogapi/5481.image_5F00_39D3A633.png"&gt;&lt;img alt="image" border="0" height="242" src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-43-49-metablogapi/5468.image_5F00_thumb_5F00_6AF2E0D3.png" style="border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline;" title="image" width="703" /&gt;&lt;/a&gt; &lt;br /&gt;3. Setting up your deployment credentials from Visual Studio 2010&lt;br /&gt;You can either create a deployment package for Windows Azure or deploy the application directly to Windows Azure. Right click the service role project (not the web role project) and select Publish.&lt;br /&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-43-49-metablogapi/2742.image_5F00_50B277AF.png"&gt;&lt;img alt="image" border="0" height="444" src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-43-49-metablogapi/7853.image_5F00_thumb_5F00_4F01ABDB.png" style="border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline;" title="image" width="709" /&gt;&lt;/a&gt; &lt;br /&gt;To deploy a hosted service to Windows Azure from Visual Studio or to monitor an existing deployment, you must provide credentials that Visual Studio can use to authenticate requests to Windows Azure. See more detail &lt;a href="http://msdn.microsoft.com/en-us/library/ff683676.aspx"&gt;here&lt;/a&gt;.&lt;br /&gt;I created a certificate using Visual Studio and named it “zxdemocertificate”. &lt;br /&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-43-49-metablogapi/1273.image_5F00_7F488091.png"&gt;&lt;img alt="image" border="0" height="440" src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-43-49-metablogapi/7127.image_5F00_thumb_5F00_0B69FAB9.png" style="border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline;" title="image" width="703" /&gt;&lt;/a&gt; &lt;br /&gt;And then copied the path to the certificate (a file with extension “.cer”) on my local machine and uploaded it to my Windows Azure account. &lt;br /&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-43-49-metablogapi/3733.image_5F00_54AC9FB4.png"&gt;&lt;img alt="image" border="0" height="441" src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-43-49-metablogapi/3718.image_5F00_thumb_5F00_79C9EA20.png" style="border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline;" title="image" width="703" /&gt;&lt;/a&gt; &lt;br /&gt;There are two places where you can manage certificates. Use “Manage My API Certificates” under the Account tab.&lt;br /&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-43-49-metablogapi/2251.image_5F00_2D25AD7D.png"&gt;&lt;img alt="image" border="0" height="467" src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-43-49-metablogapi/7041.image_5F00_thumb_5F00_0BC607E1.png" style="border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline;" title="image" width="698" /&gt;&lt;/a&gt; &lt;br /&gt;Browse to the path you just copied, e.g., C:\Users\zxue\AppData\Local\Temp\rukbxh4v.j5t\PublicKey zxdemocertificate.cer and upload the certificate file. &lt;br /&gt;Finally, on the Cloud Authentication Management dialog box in Visual Studio, copy and paste your subscription ID under the Account tab.&lt;br /&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-43-49-metablogapi/3010.image_5F00_6AEDE0FE.png"&gt;&lt;img alt="image" border="0" height="179" src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-43-49-metablogapi/5460.image_5F00_thumb_5F00_1415793D.png" style="border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline;" title="image" width="266" /&gt;&lt;/a&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-43-49-metablogapi/5483.image_5F00_73220695.png"&gt;&lt;img alt="image" border="0" height="179" src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-43-49-metablogapi/7536.image_5F00_thumb_5F00_5F94A6F4.png" style="border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline;" title="image" width="267" /&gt;&lt;/a&gt; &lt;br /&gt;Note: If you try to upload the certificate file using the user interface with a service under the Summary tab, you will get an error: Only PFX file may be uploaded." See more detail in this &lt;a href="http://social.msdn.microsoft.com/Forums/en-US/windowsazure/thread/ef57c2f4-cc1d-44bc-93c8-e76e94c31a48"&gt;post&lt;/a&gt;.&lt;br /&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-43-49-metablogapi/5140.image_5F00_056F0B86.png"&gt;&lt;img alt="image" border="0" height="467" src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-43-49-metablogapi/5140.image_5F00_thumb_5F00_640F65E9.png" style="border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline;" title="image" width="698" /&gt;&lt;/a&gt; &lt;br /&gt;4. Deploying the web application Visual Studio 2010&lt;br /&gt;Once you press the OK button, the deployment process to the Staging environment starts. The entire deployment process takes quite some time (more than 15 minutes) to complete. In Visual Studio, the status of the debugging screen changes from a green bar and “Completed”. In Windows Azure, the status of Web Role changes from “Initializing” to “Busy” to “Ready”.&lt;br /&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-43-49-metablogapi/0743.image_5F00_72ED812F.png"&gt;&lt;img alt="image" border="0" height="177" src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-43-49-metablogapi/8688.image_5F00_thumb_5F00_4A6E9F1B.png" style="border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline;" title="image" width="234" /&gt;&lt;/a&gt;  &lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-43-49-metablogapi/4478.image_5F00_57687F2C.png"&gt;&lt;img alt="image" border="0" height="176" src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-43-49-metablogapi/4643.image_5F00_thumb_5F00_4F04A9D5.png" style="border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline;" title="image" width="262" /&gt;&lt;/a&gt; &lt;br /&gt;Before moving the web application from Staging to Production, you can preview the application using the URL listed under “Staging”. When ready, you can push the application to production, which is instant.&lt;br /&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-43-49-metablogapi/1643.image_5F00_29180D53.png"&gt;&lt;img alt="image" border="0" height="486" src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-43-49-metablogapi/0576.image_5F00_thumb_5F00_15F6E0A7.png" style="border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline;" title="image" width="648" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5591885701432628793-3838769444011645262?l=blog.reversingmotions.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.reversingmotions.com/feeds/3838769444011645262/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.reversingmotions.com/2010/11/creating-aspnet-web-application-and.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/3838769444011645262'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/3838769444011645262'/><link rel='alternate' type='text/html' href='http://blog.reversingmotions.com/2010/11/creating-aspnet-web-application-and.html' title='Creating an ASP.NET Web Application and Deploying it to the Windows Azure Platform'/><author><name>Moez Tounsi</name><uri>https://profiles.google.com/112395018233684788902</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-7J1Be4Pf7gA/AAAAAAAAAAI/AAAAAAAAAJ4/3Wf7Ljaf8Ik/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5591885701432628793.post-1925707648979490377</id><published>2010-10-21T13:30:00.000+01:00</published><updated>2010-10-21T13:30:18.545+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint Server 2007'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint Foundation'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint Deployement'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint 2010 WCM'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='Azure'/><category scheme='http://www.blogger.com/atom/ns#' term='Annoucement'/><category scheme='http://www.blogger.com/atom/ns#' term='Software+Services'/><category scheme='http://www.blogger.com/atom/ns#' term='Services'/><title type='text'>What does Office 365 mean to developers?</title><content type='html'>Office 365, the next major update to Microsoft Online Services, was announced yesterday. Office 365 includes new cloud-based versions of SharePoint Online, Exchange Online and Lync Online (each based on the 2010 versions of those servers) as well as Office Professional Plus 2010 as a subscription. &lt;br /&gt;You can watch a recording of the &lt;a href="http://blogs.msdn.com/b/cmayo/archive/2010/10/19/microsoft-online-services-is-now-office-365.aspx"&gt;Office 365 announcement&lt;/a&gt; online now. &lt;br /&gt;What does this mean to developers? &lt;br /&gt;Skills Reuse: With Office 365, you are going to be able to reuse your skills writing SharePoint/Exchange/Lync solutions using Visual Studio 2010. While there isn’t 100% feature parity between on-premises and online versions of those servers, which will require some re-tooling of your skills, a majority of what you know will apply to Office 365 solution development. Skills reuse is always a good thing, especially when it prepares you for the next big thing in software development, the cloud. &lt;br /&gt;A Larger Audience for Your Solutions: With Office 365, you’re going to be able to reach more customers with your solution or services. For example, let’s say you build packaged software or provide custom development services for SharePoint. Before Office 365, the companies you could sell that solution or services to were limited to those that had the resources for the staff, hardware and maintenance required to run SharePoint on-premises. For some small to medium size companies, that requirement priced them out of your solution or services. With Office 365 for Small Business priced at $6/user/month for up to 50 users and Office 365 for Enterprises at $10/user/month ($24/user/month if you include Office Professional Plus), you can see the potential for a lot more companies in the market for SharePoint solutions and or customization services.&lt;br /&gt;Office 365 is a great opportunity for developers to reuse their skills building SharePoint/Exchange/Lync solutions using Visual Studio 2010 in the cloud while being able to reach a much larger audience with their solution or services.&lt;br /&gt;Sounds like a great opportunity for us as developers.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5591885701432628793-1925707648979490377?l=blog.reversingmotions.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.reversingmotions.com/feeds/1925707648979490377/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.reversingmotions.com/2010/10/what-does-office-365-mean-to-developers.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/1925707648979490377'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/1925707648979490377'/><link rel='alternate' type='text/html' href='http://blog.reversingmotions.com/2010/10/what-does-office-365-mean-to-developers.html' title='What does Office 365 mean to developers?'/><author><name>Moez Tounsi</name><uri>https://profiles.google.com/112395018233684788902</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-7J1Be4Pf7gA/AAAAAAAAAAI/AAAAAAAAAJ4/3Wf7Ljaf8Ik/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5591885701432628793.post-40583363835016727</id><published>2010-10-06T10:29:00.000+01:00</published><updated>2010-10-06T16:54:23.159+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET 1.0/1.1/2.0/3.5/4.0'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint Foundation'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint Deployement'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint SDK'/><category scheme='http://www.blogger.com/atom/ns#' term='PerformancePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='PerformancePoint Services 2010'/><title type='text'>Configuring extranet access for PerformancePoint Services 2010</title><content type='html'>Do you have users that need access to your data, but aren't in your intranet?&lt;br /&gt;A new white paper, &lt;a href="http://go.microsoft.com/fwlink/?LinkId=202004"&gt;Configuring extranet access for PerformancePoint Services 2010&lt;/a&gt;, describes architectural considerations for deploying PerformancePoint Services in an extranet environment. The paper provides a detailed walkthrough of the recommended architecture that uses Forefront Threat Management Gateway (TMG) server as a reverse-proxy server, the Kerberos protocol for authentication of service and user accounts, and Microsoft SQL Server and SQL Server Analysis Services as back-end data systems.&lt;br /&gt;&lt;br /&gt;Here is a glimpse of what you can find in the paper:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Provides scenarios that describe why employees would want access to their business intelligence data in extranet environments. The following are two:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Access to corporate resources. &lt;/li&gt;&lt;li&gt;Disseminate information to customers or individuals outside of the organization. &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Shows the advantages and disadvantages for extranet deployments such as VPN, placement of network topologies, and Reverse Proxy / Edge Firewall. &lt;/li&gt;&lt;li&gt;Gives all the details for setting up a test environment including necessary service accounts, Hyper-V setup, and SPN syntax. &lt;/li&gt;&lt;li&gt;Shows configuration steps for IIS, TMG server, SQL Server, Windows 2008 Server, and SharePoint 2010. &lt;/li&gt;&lt;li&gt;Shows steps for identity delegation for PerformancePoint Services. &lt;/li&gt;&lt;li&gt;Shows configuration steps for Claims to Windows Token Service (C2WTS). &lt;/li&gt;&lt;li&gt;Gives scenario steps for testing internal and external access. &lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Lastly, this paper offers troubleshooting section and mention of the troubleshooting tools you want to incorporate.&lt;br /&gt;&lt;br /&gt;Download the paper &lt;a href="http://go.microsoft.com/fwlink/?LinkId=202004"&gt;here&lt;/a&gt; &lt;span style="font-weight: normal;"&gt;or paste (http://go.microsoft.com/fwlink/?LinkId=202004) into the address of your browser&lt;/span&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5591885701432628793-40583363835016727?l=blog.reversingmotions.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.reversingmotions.com/feeds/40583363835016727/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.reversingmotions.com/2010/10/configuring-extranet-access-for.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/40583363835016727'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/40583363835016727'/><link rel='alternate' type='text/html' href='http://blog.reversingmotions.com/2010/10/configuring-extranet-access-for.html' title='Configuring extranet access for PerformancePoint Services 2010'/><author><name>Moez Tounsi</name><uri>https://profiles.google.com/112395018233684788902</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-7J1Be4Pf7gA/AAAAAAAAAAI/AAAAAAAAAJ4/3Wf7Ljaf8Ik/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5591885701432628793.post-4199374797124844180</id><published>2010-10-05T12:57:00.000+01:00</published><updated>2010-10-06T16:54:23.160+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET 1.0/1.1/2.0/3.5/4.0'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint Governance Model'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint Foundation'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint 2010 WCM'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint SDK'/><category scheme='http://www.blogger.com/atom/ns#' term='IT Governance'/><category scheme='http://www.blogger.com/atom/ns#' term='Information Management'/><category scheme='http://www.blogger.com/atom/ns#' term='Application Management'/><title type='text'>White Paper : Information Governance with SharePoint 2010</title><content type='html'>&lt;em&gt;by Samantha Robertson on SharePoint Governance,&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Hi! Governance is a critical topic for SharePoint Server 2010,&amp;nbsp;some progress to share from work this summer.&lt;br /&gt;What’s new in governance content:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=33a8c9e0-57c2-4ae5-99e3-8826ab9dd701"&gt;Governance model&lt;/a&gt; – describes the three areas of governance for SharePoint Server 2010 and highlights some questions to ask while determining your governance approach. &lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;div style="padding-left: 30px;"&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=33a8c9e0-57c2-4ae5-99e3-8826ab9dd701"&gt;&lt;img border="0" src="http://blogs.technet.com/resized-image.ashx/__size/550x0/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-66-12/0576.Governance_5F00_SharePointServer2010_5F00_withborder.gif" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://technet.microsoft.com/en-us/library/ff848257.aspx"&gt;Governance planning white paper&lt;/a&gt; – provides information about the process of creating a governance plan for the information in your environment, and provides an example plan. &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=602d7bfc-0878-469a-90bd-36aaab8f3cea&amp;amp;displaylang=en"&gt;Implementing governance white paper&lt;/a&gt; – provides information about using the features in SharePoint to govern content, services, and a SharePoint farm. &lt;/li&gt;&lt;li&gt;&lt;a href="http://technet.microsoft.com/en-us/sharepoint/ff800826.aspx"&gt;Governance Resource Center&lt;/a&gt; – provides links to important resources for governance and SharePoint Server 2010. &lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;More white papers and articles are in progress. Check the Resource Center for the latest information.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5591885701432628793-4199374797124844180?l=blog.reversingmotions.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.reversingmotions.com/feeds/4199374797124844180/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.reversingmotions.com/2010/10/white-paper-information-governance-with.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/4199374797124844180'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/4199374797124844180'/><link rel='alternate' type='text/html' href='http://blog.reversingmotions.com/2010/10/white-paper-information-governance-with.html' title='White Paper : Information Governance with SharePoint 2010'/><author><name>Moez Tounsi</name><uri>https://profiles.google.com/112395018233684788902</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-7J1Be4Pf7gA/AAAAAAAAAAI/AAAAAAAAAJ4/3Wf7Ljaf8Ik/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5591885701432628793.post-5617675518207104108</id><published>2010-09-30T12:20:00.001+01:00</published><updated>2010-10-06T16:55:02.479+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server 2008'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET 1.0/1.1/2.0/3.5/4.0'/><category scheme='http://www.blogger.com/atom/ns#' term='Service Packs'/><category scheme='http://www.blogger.com/atom/ns#' term='Feature Pack'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='Annoucement'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><title type='text'>SQL Server 2008 SP2 is out!</title><content type='html'>The SQL Server 2008 SP2 has major improvements that include integration of reporting services with SharePoint products and several management improvements. This final version of the Service Pack 2 includes new compatibility features with SQL Server 2008 R2 and hotfix solutions provided in SQL Server 2008 SP1 Cumulative Updates 1 thru 8. For example, with SP2 applied, an instance of the SQL Server 2008 Database Engine can be enrolled with a SQL Server 2008 R2 Utility Control Point as a managed instance of SQL Server. &lt;br /&gt;You can read all about new features and enhancements in the &lt;a href="http://social.technet.microsoft.com/wiki/contents/articles/microsoft-sql-server-2008-sp2-release-notes.aspx"&gt;Release Notes&lt;/a&gt;.&lt;br /&gt;Downloads available here:&lt;br /&gt;&lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=8fbfc1de-d25e-4790-88b5-7dda1f1d4e17&amp;amp;utm_source=feedburner&amp;amp;utm_medium=feed&amp;amp;utm_campaign=Feed%3A+MicrosoftDownloadCenter+%28Microsoft+Download+Center%29"&gt;Microsoft SQL Server 2008 Service Pack 2&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=1B2BD555-CB5B-47B9-88C7-3F89F3B43779"&gt;Microsoft SQL Server 2008 Service Pack 2 Feature Pack&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=35C3A13F-4B5E-4D4A-86E4-07EE307B9638"&gt;Microsoft SQL Server 2008 SP2 Reporting Services Add-in for Microsoft SharePoint Technologies&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=CD7D79E1-F41A-4193-B598-628F40688C6E"&gt;Microsoft SQL Server 2008 SP2 Reporting Services Report Builder&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=BDD888FA-779F-480C-A85F-7D70B179E3B9"&gt;Microsoft SQL Server 2008 SP2 Upgrade Advisor&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=A42C6FA1-2EE8-43B5-A0E2-CD30D0323CA3"&gt;Microsoft SQL Server 2008 SP2 Data Mining Add-ins for Microsoft Office 2007&lt;/a&gt;&lt;br /&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkId=196551"&gt;Microsoft SQL Server 2008 SP2 Express&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5591885701432628793-5617675518207104108?l=blog.reversingmotions.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.reversingmotions.com/feeds/5617675518207104108/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.reversingmotions.com/2010/09/sql-server-2008-sp2-is-out.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/5617675518207104108'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/5617675518207104108'/><link rel='alternate' type='text/html' href='http://blog.reversingmotions.com/2010/09/sql-server-2008-sp2-is-out.html' title='SQL Server 2008 SP2 is out!'/><author><name>Moez Tounsi</name><uri>https://profiles.google.com/112395018233684788902</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-7J1Be4Pf7gA/AAAAAAAAAAI/AAAAAAAAAJ4/3Wf7Ljaf8Ik/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5591885701432628793.post-619811034981050759</id><published>2010-09-29T12:51:00.001+01:00</published><updated>2010-10-06T16:55:02.481+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET 1.0/1.1/2.0/3.5/4.0'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='Open XML'/><category scheme='http://www.blogger.com/atom/ns#' term='XML'/><category scheme='http://www.blogger.com/atom/ns#' term='Office File Formats'/><category scheme='http://www.blogger.com/atom/ns#' term='Office'/><title type='text'>Understanding the DOCX File Format</title><content type='html'>Chris Rae, one of the program managers in the Office Interoperability Group, has just published the first in a series of posts about how to get started if you're interested in reading or writing Word's DOCX file format – check it out &lt;a href="http://blogs.msdn.com/b/chrisrae/archive/2010/09/25/where-is-the-documentation-for-office-2010-s-docx-xlsx-pptx-formats.aspx"&gt;here&lt;/a&gt;. &lt;br /&gt;Working with our files is common source of questions, and Chris does a great job of pointing out the resources that we have to get started!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5591885701432628793-619811034981050759?l=blog.reversingmotions.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.reversingmotions.com/feeds/619811034981050759/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.reversingmotions.com/2010/09/understanding-docx-file-format.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/619811034981050759'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/619811034981050759'/><link rel='alternate' type='text/html' href='http://blog.reversingmotions.com/2010/09/understanding-docx-file-format.html' title='Understanding the DOCX File Format'/><author><name>Moez Tounsi</name><uri>https://profiles.google.com/112395018233684788902</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-7J1Be4Pf7gA/AAAAAAAAAAI/AAAAAAAAAJ4/3Wf7Ljaf8Ik/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5591885701432628793.post-8934105899582989487</id><published>2010-09-29T09:31:00.000+01:00</published><updated>2010-10-06T16:55:02.482+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET 1.0/1.1/2.0/3.5/4.0'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='Vulnerability'/><title type='text'>ASP.NET Security Update Now Available</title><content type='html'>Microsoft has released a security update that addresses the ASP.NET Security Vulnerability discovered this past week. Read Scott Guthrie's blog &lt;a href="http://weblogs.asp.net/scottgu/archive/2010/09/28/asp-net-security-update-now-available.aspx"&gt;post&lt;/a&gt; to get all of the details you need to install it on your web servers!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5591885701432628793-8934105899582989487?l=blog.reversingmotions.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.reversingmotions.com/feeds/8934105899582989487/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.reversingmotions.com/2010/09/aspnet-security-update-now-available.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/8934105899582989487'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/8934105899582989487'/><link rel='alternate' type='text/html' href='http://blog.reversingmotions.com/2010/09/aspnet-security-update-now-available.html' title='ASP.NET Security Update Now Available'/><author><name>Moez Tounsi</name><uri>https://profiles.google.com/112395018233684788902</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-7J1Be4Pf7gA/AAAAAAAAAAI/AAAAAAAAAJ4/3Wf7Ljaf8Ik/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5591885701432628793.post-7218933417234021564</id><published>2010-09-28T15:20:00.003+01:00</published><updated>2010-10-06T16:54:23.164+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server 2008'/><category scheme='http://www.blogger.com/atom/ns#' term='B2B'/><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk'/><category scheme='http://www.blogger.com/atom/ns#' term='Training Kit'/><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk Schemas'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='Monitoring'/><category scheme='http://www.blogger.com/atom/ns#' term='Webcasts'/><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk Server 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='EAI'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET 1.0/1.1/2.0/3.5/4.0'/><category scheme='http://www.blogger.com/atom/ns#' term='Operations Manager'/><category scheme='http://www.blogger.com/atom/ns#' term='Presentations'/><category scheme='http://www.blogger.com/atom/ns#' term='HOL&apos;s'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='Videos'/><category scheme='http://www.blogger.com/atom/ns#' term='BPM'/><category scheme='http://www.blogger.com/atom/ns#' term='WCF'/><title type='text'>BizTalk Server 2010 Training</title><content type='html'>The BizTalk Server 2010 training kit (that includes labs and training videos) to help you learn about the new features of BizTalk Server 2010 can now be downloaded &lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=35c8fb51-a1e3-496e-841a-b48701a80c40"&gt;here&lt;/a&gt;. These labs are designed to be executed in a BizTalk Server 2010 development environment (which is also free this time around J and can be accessed &lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=938102b8-a677-4c20-906d-f6ae472b3a6a"&gt;here&lt;/a&gt;). The kit has the following content: &lt;br /&gt;&lt;b&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;Hands On Labs&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Creating BizTalk Maps with the new Mapper&lt;/li&gt;&lt;li&gt;Consuming a WCF Service&lt;/li&gt;&lt;li&gt;Publishing Schemas and Orchestrations as WCF Services&lt;/li&gt;&lt;li&gt;Integrating with Microsoft SQL Server&lt;/li&gt;&lt;li&gt;Integrating using the FTP Adapter&lt;/li&gt;&lt;li&gt;Developers - Create a Role and Party-based Integration Solution&lt;/li&gt;&lt;li&gt;Exploring the New Settings Dashboard&lt;/li&gt;&lt;li&gt;Monitoring BizTalk Operations using System Center Operations Manager 2007 R2&lt;/li&gt;&lt;li&gt;Administrators - Create a Role and Party-based Integration Solution&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;Presentations and Videos&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Introduction and New Features Overview&lt;/li&gt;&lt;li&gt;The New and Improved Mapper&lt;/li&gt;&lt;li&gt;Updated Adapter Features&lt;/li&gt;&lt;li&gt;Trading Partner Management&lt;/li&gt;&lt;li&gt;Configuring Performance and Application Settings&lt;/li&gt;&lt;li&gt;Monitoring BizTalk Using Operations Manager&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5591885701432628793-7218933417234021564?l=blog.reversingmotions.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.reversingmotions.com/feeds/7218933417234021564/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.reversingmotions.com/2010/09/biztalk-server-2010-training.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/7218933417234021564'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/7218933417234021564'/><link rel='alternate' type='text/html' href='http://blog.reversingmotions.com/2010/09/biztalk-server-2010-training.html' title='BizTalk Server 2010 Training'/><author><name>Moez Tounsi</name><uri>https://profiles.google.com/112395018233684788902</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-7J1Be4Pf7gA/AAAAAAAAAAI/AAAAAAAAAJ4/3Wf7Ljaf8Ik/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5591885701432628793.post-2532863059764853275</id><published>2010-09-28T12:56:00.001+01:00</published><updated>2010-10-06T16:54:23.167+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET 1.0/1.1/2.0/3.5/4.0'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Content Management'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint Foundation'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint 2010 WCM'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint SDK'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint Themes'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint Configuration File Update'/><title type='text'>Updating Custom Ribbon Actions</title><content type='html'>&lt;strong&gt;Few things to be aware of when creatiing/deploying/customizing the UI Ribbon.&lt;/strong&gt;&lt;br /&gt;1) Make sure that you deleted your IE (or other browsers) cache after deploying, since&lt;br /&gt;the ribbon caches quite a lot of stuff.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;2) When creating a feature that contains the xml / js for your custom ribbon action&lt;br /&gt;you need to make sure that you add a version to your feature tag. This version needs&lt;br /&gt;to be updated every time you roll-out a new version of your ribbon action.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Adding a version to a feature is fairly simple: if you open the desired feature you&lt;br /&gt;will see a 'button' on the bottom left called manifest, if you click that you have&lt;br /&gt;an option edit options around the same place if you click that you can edit the feature&lt;br /&gt;xml by default it will be:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;?xml version="1.0" encoding="utf-8" ?&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;Feature xmlns="&lt;a href="http://schemas.microsoft.com/sharepoint/"&gt;http://schemas.microsoft.com/sharepoint/&lt;/a&gt;"&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/Feature&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;So within that &amp;lt;feature&amp;gt; tag you can add a version="1.0.0.0", so it&lt;br /&gt;would look like:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;?xml version="1.0" encoding="utf-8" ?&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;Feature xmlns="&lt;a href="http://schemas.microsoft.com/sharepoint/"&gt;http://schemas.microsoft.com/sharepoint/&lt;/a&gt;"&lt;br /&gt;version="1.0.0.0"&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/Feature&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Next time you changed something and want to rollout again you can use version="1.0.0.1"&lt;br /&gt;or higher to make sure all files get updated.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5591885701432628793-2532863059764853275?l=blog.reversingmotions.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.reversingmotions.com/feeds/2532863059764853275/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.reversingmotions.com/2010/09/updating-custom-ribbon-actions.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/2532863059764853275'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/2532863059764853275'/><link rel='alternate' type='text/html' href='http://blog.reversingmotions.com/2010/09/updating-custom-ribbon-actions.html' title='Updating Custom Ribbon Actions'/><author><name>Moez Tounsi</name><uri>https://profiles.google.com/112395018233684788902</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-7J1Be4Pf7gA/AAAAAAAAAAI/AAAAAAAAAJ4/3Wf7Ljaf8Ik/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5591885701432628793.post-4302391686209661332</id><published>2010-09-24T13:54:00.000+01:00</published><updated>2010-10-06T16:55:02.486+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET 1.0/1.1/2.0/3.5/4.0'/><category scheme='http://www.blogger.com/atom/ns#' term='Internet Explorer 9'/><category scheme='http://www.blogger.com/atom/ns#' term='Internet Explorer'/><category scheme='http://www.blogger.com/atom/ns#' term='IE'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='IE 9'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='Beta'/><title type='text'>Wanna Test IE 9 Beta, HTML5 Capabilities, one adress</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;a href="http://www.nevermindthebullets.com/"&gt;&lt;img alt="image" border="0" height="267" src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-85-20-metablogapi/5040.image_5F00_3.png" style="border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image" width="534" /&gt;&lt;/a&gt; &lt;/div&gt;&lt;div style="text-align: center;"&gt;From &lt;a href="http://www.steaw-webdesign.com/"&gt;Steaw Web Design&lt;/a&gt; Studio in Paris&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://windows.microsoft.com/en-US/internet-explorer/products/ie-9/home?os=win7&amp;amp;arch=a&amp;amp;browser=ie9"&gt;&lt;br /&gt;&lt;img alt="The Web in its integrality" height="62" src="http://res2.windows.microsoft.com/resbox/fr-FR/IE9/Main/4/f/4fbb1099-5fd1-4f0e-8357-38978ab9491b/4fbb1099-5fd1-4f0e-8357-38978ab9491b.jpg" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;" title="The Web in its integrality" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5591885701432628793-4302391686209661332?l=blog.reversingmotions.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.reversingmotions.com/feeds/4302391686209661332/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.reversingmotions.com/2010/09/wanna-test-ie-9-beta-html5-capabilities.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/4302391686209661332'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/4302391686209661332'/><link rel='alternate' type='text/html' href='http://blog.reversingmotions.com/2010/09/wanna-test-ie-9-beta-html5-capabilities.html' title='Wanna Test IE 9 Beta, HTML5 Capabilities, one adress'/><author><name>Moez Tounsi</name><uri>https://profiles.google.com/112395018233684788902</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-7J1Be4Pf7gA/AAAAAAAAAAI/AAAAAAAAAJ4/3Wf7Ljaf8Ik/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5591885701432628793.post-5179624607210220010</id><published>2010-09-24T09:39:00.000+01:00</published><updated>2010-10-06T16:55:02.487+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET 1.0/1.1/2.0/3.5/4.0'/><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='Host Integration Server'/><category scheme='http://www.blogger.com/atom/ns#' term='RTM'/><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk Server 2010'/><category scheme='http://www.blogger.com/atom/ns#' term='Annoucement'/><title type='text'>BizTalk Server 2010 - Release To Manifacturing</title><content type='html'>I feel myself superb today for this annoucement.&lt;br /&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-68-67-metablogapi/6082.biztalk_5F00_thumb_5F00_6B0368D7.png" imageanchor="1" style="clear: right; cssfloat: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" px="true" src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-68-67-metablogapi/6082.biztalk_5F00_thumb_5F00_6B0368D7.png" /&gt;&lt;/a&gt;BizTalk Server 2010 is RTM-ed today, as well as Host Integration Server 2010.&lt;/div&gt;&lt;br /&gt;Developer Editions could be found &lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=938102b8-a677-4c20-906d-f6ae472b3a6a&amp;amp;displaylang=enDownload"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;It will be available for purchase starting October 1st, 2010. BizTalk Server 2010 is the seventh major release, which includes new support for Windows Server AppFabric to provide pre-integrated support for developing new composite applications. This allows customers to maximize the value of existing Line of Business (LOB) systems by integrating and automating their business processes, and putting real-time, end-to-end enterprise integration within reach of every customer. All this coupled with the confidence of a proven mission-critical integration infrastructure that is available to companies of all sizes at a fraction of the cost of other competing products &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;This release is another step in the on-going investments we have made in our application infrastructure technologies. Along with the releases earlier this calendar year of .NET Framework 4, Windows Server AppFabric and Windows Azure AppFabric, BizTalk Server 2010 makes it easier for customers to build composite applications that span both on-premises LOB systems and new applications deployed onto the public cloud.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5591885701432628793-5179624607210220010?l=blog.reversingmotions.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.reversingmotions.com/feeds/5179624607210220010/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.reversingmotions.com/2010/09/biztalk-server-2010-release-to.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/5179624607210220010'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/5179624607210220010'/><link rel='alternate' type='text/html' href='http://blog.reversingmotions.com/2010/09/biztalk-server-2010-release-to.html' title='BizTalk Server 2010 - Release To Manifacturing'/><author><name>Moez Tounsi</name><uri>https://profiles.google.com/112395018233684788902</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-7J1Be4Pf7gA/AAAAAAAAAAI/AAAAAAAAAJ4/3Wf7Ljaf8Ik/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5591885701432628793.post-6185971379293756558</id><published>2010-09-22T14:37:00.000+01:00</published><updated>2010-10-06T16:54:23.172+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint Server 2007'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET 1.0/1.1/2.0/3.5/4.0'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint Foundation'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='WSS'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint SDK'/><category scheme='http://www.blogger.com/atom/ns#' term='MOSS'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows SharePoint Services 3.0'/><title type='text'>Updated SharePoint 2010 SDK Now Available for Download</title><content type='html'>&lt;i&gt;by Randall Isenhour, Sr. Content Manager, SharePoint SDK&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The SharePoint 2010 Software Development Kit (SDK) has been updated! Get it here: &lt;a href="http://www.microsoft.com/downloads/en/details.aspx?displaylang=en&amp;amp;FamilyID=f0c9daf3-4c54-45ed-9bde-7b4d83a8f26f" title="http://www.microsoft.com/downloads/en/details.aspx?displaylang=en&amp;amp;FamilyID=f0c9daf3-4c54-45ed-9bde-7b4d83a8f26f"&gt;&lt;b&gt;Download from the Microsoft Download Center&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Tips: &lt;/b&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ff847473.aspx"&gt;Installing and Using the SharePoint 2010 SDK Download&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;h2&gt;What’s New in this SDK Update&lt;/h2&gt;&lt;br /&gt;We are excited to announce the latest quarterly update of the SDK for SharePoint Foundation 2010 and SharePoint Server 2010. This free update replaces previous 2010 versions of the SDK and includes the following:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;New code samples:&lt;/b&gt;  Silverlight List Viewer, plus new samples in Business Connectivity Services (BCS), Enterprise Content Management (ECM), and User Profiles and Social Data &lt;/li&gt;&lt;li&gt;&lt;b&gt;Updated documentation&lt;/b&gt;, including: new and updated How To, reference , and conceptual content &lt;/li&gt;&lt;li&gt;&lt;b&gt;Updated IntelliSense XML files &lt;/b&gt;for tooltips and auto-complete in Visual Studio &lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Here are two MSDN topics listing new and updated content and code samples in the AUG2010 version of the SDK (14.0.4763.1031):&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ff847474.aspx"&gt;What’s New in the SDK for SharePoint Foundation 2010&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ff847475.aspx"&gt;What’s New in the SDK for SharePoint Server 2010&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;A complete listing and description of the 44 code samples currently available in the SDK can be found here on MSDN Code Gallery: &lt;a href="http://code.msdn.microsoft.com/sp2010sdk" title="http://code.msdn.microsoft.com/sp2010sdk"&gt;http://code.msdn.microsoft.com/sp2010sdk&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Change History Tables&lt;/h3&gt;&lt;br /&gt;Wondering what has changed in the SDK?  You can do a quick search in the compiled HTML Help (.chm) files for the phrase “content update” (include the quotes) to see all the changed topics.  We also publish the “Updated” date at the top of each article.  Check out an example here: &lt;a href="http://msdn.microsoft.com/en-us/library/ff623048.aspx" title="http://msdn.microsoft.com/en-us/library/ff623048.aspx"&gt;http://msdn.microsoft.com/en-us/library/ff623048.aspx&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Working with Help in Visual Studio (MSDN and Local)&lt;/h2&gt;&lt;br /&gt;This update also coincides with republish of the &lt;a href="http://msdn.microsoft.com/en-us/library/ee557253.aspx"&gt;SDK in the MSDN Library&lt;/a&gt;, in addition to offline Visual Studio Help for SharePoint.  Yes, that’s right—now you can get context-sensitive Help directly from your code by pressing F1 in Visual Studio.  &lt;br /&gt;&lt;br /&gt;&lt;h3&gt;F1 Help and Working Offline&lt;/h3&gt;&lt;br /&gt;The MSDN Library is always the most up-to-date source of information, and Visual Studio uses online Help as its primary source by default when you press F1. If you need to work offline, however, you can first download Help content from MSDN using the Visual Studio 2010 &lt;b&gt;Help Library Manager &lt;/b&gt;(&lt;b&gt;Help&lt;/b&gt; &amp;gt; &lt;b&gt;Manage Help Settings&lt;/b&gt;).  Here’s how:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Click &lt;b&gt;Check for updates online&lt;/b&gt;.&lt;br /&gt;You may need to change your settings to &lt;b&gt;I want to use local help&lt;/b&gt;.  You can find this under &lt;b&gt;Choose online or local help &lt;/b&gt;in &lt;b&gt;Help Library Manager&lt;/b&gt;. &lt;/li&gt;&lt;li&gt;Scroll down to &lt;b&gt;SharePoint 2010 SDK&lt;/b&gt;, click &lt;b&gt;Add&lt;/b&gt;, and then click &lt;b&gt;Update&lt;/b&gt;. &lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-66-92-metablogapi/5123.image_5F00_2D214BCC.png"&gt;&lt;span style="font-family: trebuchet ms,geneva;"&gt;&lt;img alt="image" border="0" height="344" src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-66-92-metablogapi/3377.image_5F00_thumb_5F00_77A889A6.png" style="border-width: 0px; display: inline;" title="image" width="504" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: trebuchet ms,geneva;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;h3&gt;IntelliSense XML Files Update&lt;/h3&gt;&lt;br /&gt;The latest drop of the SDK also updates all the IntelliSense XML files for SharePoint Foundation 2010 and SharePoint Server 2010.  Please refer to the Readme.txt file for installation instructions.  The readme.txt files is in the C:\Program Files (x86)\Microsoft SDKs\SharePoint 2010\Intellisense once the SDK is installed.&lt;br /&gt;&lt;br /&gt;You will get tooltips, updated descriptions, and auto-complete as you type code in the Visual Studio 2010 IDE once the IntelliSense XML files are updated.  Visual Studio 2010 and SharePoint 2010 must be installed on the computer you are installing the IntelliSense XML files on; the IntelliSense files only work in Visual Studio when the DLL and the XML file of the same name are in the same directory.  Please refer to the Readme.txt file for more information.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5591885701432628793-6185971379293756558?l=blog.reversingmotions.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.reversingmotions.com/feeds/6185971379293756558/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.reversingmotions.com/2010/09/updated-sharepoint-2010-sdk-now.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/6185971379293756558'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/6185971379293756558'/><link rel='alternate' type='text/html' href='http://blog.reversingmotions.com/2010/09/updated-sharepoint-2010-sdk-now.html' title='Updated SharePoint 2010 SDK Now Available for Download'/><author><name>Moez Tounsi</name><uri>https://profiles.google.com/112395018233684788902</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-7J1Be4Pf7gA/AAAAAAAAAAI/AAAAAAAAAJ4/3Wf7Ljaf8Ik/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5591885701432628793.post-4728538068507691954</id><published>2010-09-22T11:57:00.001+01:00</published><updated>2010-09-22T11:59:17.193+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint Server 2007'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET 1.0/1.1/2.0/3.5/4.0'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint Foundation'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='WSS'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint SDK'/><category scheme='http://www.blogger.com/atom/ns#' term='MOSS'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows SharePoint Services 3.0'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint Configuration File Update'/><title type='text'>Security Advisory 2416728 (Vulnerability in ASP.NET) and SharePoint.</title><content type='html'>&lt;em&gt;&lt;span style="color: red;"&gt;Updates on this issue might be found &lt;/span&gt;&lt;/em&gt;&lt;a href="http://blogs.msdn.com/b/sharepoint/archive/2010/09/21/security-advisory-2416728-vulnerability-in-asp-net-and-sharepoint.aspx"&gt;&lt;em&gt;&lt;span style="color: red;"&gt;here&lt;/span&gt;&lt;/em&gt;&lt;/a&gt;&lt;br /&gt;&lt;div class="item-body"&gt;&lt;div&gt;&lt;br /&gt;Originally stated that SharePoint Server 2007 and Windows SharePoint Services 3.0 did not require the workaround to be applied, however, we have recently discovered through testing that a variant of the issue &lt;strong&gt;does affect SharePoint Server 2007 and Windows SharePoint Services 3.0 and also requires extra steps in the workaround for SharePoint Server 2010 (Steps 5-9).&lt;/strong&gt;&amp;nbsp; Customers with these versions should refer to the relevant workaround below.&amp;nbsp; We will continue to keep this post updated with the latest guidance.&lt;br /&gt;We recently released a &lt;a closure_uid_74ggzg="6036" href="https://www.microsoft.com/technet/security/advisory/2416728.mspx" target="_blank"&gt;Microsoft Security Advisory&lt;/a&gt; for a vulnerability affecting ASP.NET.&amp;nbsp; This post documents recommended workarounds for the following SharePoint products: &lt;br /&gt;&lt;ul&gt;&lt;li&gt;SharePoint 2010 &lt;/li&gt;&lt;li&gt;SharePoint Foundation 2010 &lt;/li&gt;&lt;li&gt;Microsoft Office SharePoint Server 2007 &lt;/li&gt;&lt;li&gt;Windows SharePoint Services 3.0 &lt;/li&gt;&lt;li&gt;Windows SharePoint Services 2.0 &lt;/li&gt;&lt;/ul&gt;A workaround is not necessary for SharePoint Portal Server 2003.&amp;nbsp; &lt;br /&gt;The workarounds for the affected versions of SharePoint and Windows SharePoint Services listed above are temporary measures that do not fix the underlying issue but help to block known attack vectors until an ASP.NET security update is released.&amp;nbsp; We will provide instructions on how to revert the workarounds when the security update is released.&lt;br /&gt;&lt;strong&gt;We recommend that all affected SharePoint customers apply the workaround as soon as possible.&lt;/strong&gt;&amp;nbsp; You should apply the workaround to &lt;strong&gt;every web front-end&lt;/strong&gt; in your SharePoint farm.&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Workaround for SharePoint 2010 &amp;amp; SharePoint Foundation 2010 &lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Navigate to the SharePoint installation directory at %ProgramFiles%\Common Files\Microsoft Shared\Web Server Extensions\14\template\layouts. &lt;/li&gt;&lt;li&gt;Create a new file called error2.aspx in this directory with the following content:&lt;span style="font-size: 9.1pt;"&gt; &lt;br /&gt;&lt;span style="font-size: 9.1pt;"&gt;&lt;br /&gt;&lt;pre&gt;&amp;lt;%@ Page Language="C#" AutoEventWireup="true" %&amp;gt;&lt;br /&gt;&amp;lt;%@ Import Namespace="System.Security.Cryptography" %&amp;gt;&lt;br /&gt;&amp;lt;%@ Import Namespace="System.Threading" %&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;script runat="server"&amp;gt;&lt;br /&gt;   void Page_Load() {&lt;br /&gt;      byte[] delay = new byte[1];&lt;br /&gt;      RandomNumberGenerator prng = new RNGCryptoServiceProvider();&lt;br /&gt;&lt;br /&gt;      prng.GetBytes(delay);&lt;br /&gt;      Thread.Sleep((int)delay[0]);&lt;br /&gt;        &lt;br /&gt;      IDisposable disposable = prng as IDisposable;&lt;br /&gt;      if (disposable != null) { disposable.Dispose(); }&lt;br /&gt;    }&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;html&amp;gt;&lt;br /&gt;&amp;lt;head runat="server"&amp;gt;&lt;br /&gt;    &amp;lt;title&amp;gt;Error&amp;lt;/title&amp;gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;br /&gt;    &amp;lt;div&amp;gt;&lt;br /&gt;        An error occurred while processing your request.&lt;br /&gt;    &amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;/pre&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Navigate to %SystemDrive%\inetpub\wwwroot\wss\virtualdirectories. &lt;/li&gt;&lt;li&gt;For each subfolder in this directory, do the following: &lt;br /&gt;&lt;ol&gt;&lt;li&gt;Edit web.config &lt;/li&gt;&lt;li&gt;Find the customErrors node and change it to; &lt;br /&gt;&lt;pre&gt;&amp;lt;customErrors mode="On" redirectMode="ResponseRewrite" defaultRedirect="/_layouts/error2.aspx" /&amp;gt;&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;Save your changes &lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;li&gt;Navigate to %ProgramFiles%\Common Files\Microsoft Shared\Web Server Extensions\14\isapi. &lt;/li&gt;&lt;li&gt;Make a copy of the web.config file at this location and rename it to web_backup.config &lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;strong&gt;Important:&lt;/strong&gt; if you skip this step, the workaround may affect your ability to apply patches to your SharePoint installation at a later date &lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;li&gt;Edit web.config and add the following lines immediately following the &amp;lt;configuration&amp;gt; node, before &amp;lt;system.web&amp;gt;: &lt;br /&gt;&lt;pre&gt;&amp;lt;system.webServer&amp;gt;&lt;br /&gt;    &amp;lt;handlers&amp;gt;&lt;br /&gt;        &amp;lt;remove name="AssemblyResourceLoader-Integrated-4.0" /&amp;gt;&lt;br /&gt;        &amp;lt;remove name="AssemblyResourceLoader-Integrated" /&amp;gt;&lt;br /&gt;    &amp;lt;/handlers&amp;gt;&lt;br /&gt;&amp;lt;/system.webServer&amp;gt;&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;Save your changes &lt;/li&gt;&lt;li&gt;Run iisreset /noforce &lt;/li&gt;&lt;/ol&gt;Verifying the workaround:&amp;nbsp; After applying the workaround, you may not see a change in SharePoint’s error handling behavior.&amp;nbsp; For example, you will still receive a 404 error if you try to access a page that does not exist – &lt;strong&gt;this is unique to the SharePoint workaround and is different from the expected behavior described&lt;/strong&gt; &lt;b&gt;&lt;a closure_uid_74ggzg="6037" href="http://weblogs.asp.net/scottgu/archive/2010/09/18/important-asp-net-security-vulnerability.aspx" target="_blank"&gt;here&lt;/a&gt;&lt;/b&gt;. This is by design — the workaround described here specifically protects against the ASP.NET vulnerability in error cases that are not handled by SharePoint.&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Workaround for Microsoft Office SharePoint Server 2007 and Windows SharePoint Services 3.0 &lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: 9.1pt;"&gt;&lt;/span&gt;&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Navigate to the SharePoint installation directory at %ProgramFiles%\Common Files\Microsoft Shared\Web Server Extensions\12\isapi. &lt;/li&gt;&lt;li&gt;Make a copy of the web.config file at this location and rename it to web_backup.config &lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;strong&gt;Important:&lt;/strong&gt; if you skip this step, the workaround may affect your ability to apply patches to your SharePoint installation at a later date. &lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;li&gt;Edit web.config and add an httpHandlers section as shown: &lt;br /&gt;&lt;pre&gt;&amp;lt;?xml version="1.0" encoding="UTF-8" standalone="yes"?&amp;gt;&lt;br /&gt;&amp;lt;configuration&amp;gt;&lt;br /&gt;    &amp;lt;system.web&amp;gt;&lt;br /&gt;        &amp;lt;webServices&amp;gt;&lt;br /&gt;            &amp;lt;protocols&amp;gt;&lt;br /&gt;                &amp;lt;remove name="HttpGet" /&amp;gt;&lt;br /&gt;                &amp;lt;remove name="HttpPost" /&amp;gt;&lt;br /&gt;                &amp;lt;remove name="HttpPostLocalhost" /&amp;gt;&lt;br /&gt;                &amp;lt;add name="Documentation" /&amp;gt;&lt;br /&gt;            &amp;lt;/protocols&amp;gt;&lt;br /&gt;        &amp;lt;/webServices&amp;gt;&lt;br /&gt;        &amp;lt;customErrors mode="On" /&amp;gt;&lt;br /&gt;&lt;span style="background-color: yellow;"&gt; &lt;strong&gt;     &amp;lt;httpHandlers&amp;gt;   &lt;br /&gt;         &amp;lt;remove path="WebResource.axd" verb="GET"/&amp;gt;    &lt;br /&gt;      &amp;lt;/httpHandlers&amp;gt;&lt;/strong&gt;&lt;/span&gt; &lt;br /&gt;    &amp;lt;/system.web&amp;gt;&lt;br /&gt;    &amp;lt;location path="authentication.asmx"&amp;gt;&lt;br /&gt;        &amp;lt;system.web&amp;gt;&lt;br /&gt;            &amp;lt;authorization&amp;gt;&lt;br /&gt;                &amp;lt;allow users="*"/&amp;gt;&lt;br /&gt;            &amp;lt;/authorization&amp;gt;&lt;br /&gt;        &amp;lt;/system.web&amp;gt;&lt;br /&gt;    &amp;lt;/location&amp;gt;&lt;br /&gt;    &amp;lt;location path="wsdisco.aspx"&amp;gt;&lt;br /&gt;        &amp;lt;system.web&amp;gt;&lt;br /&gt;            &amp;lt;authorization&amp;gt;&lt;br /&gt;                &amp;lt;allow users="*"/&amp;gt;&lt;br /&gt;            &amp;lt;/authorization&amp;gt;&lt;br /&gt;        &amp;lt;/system.web&amp;gt;&lt;br /&gt;    &amp;lt;/location&amp;gt;&lt;br /&gt;    &amp;lt;location path="wswsdl.aspx"&amp;gt;&lt;br /&gt;        &amp;lt;system.web&amp;gt;&lt;br /&gt;            &amp;lt;authorization&amp;gt;&lt;br /&gt;                &amp;lt;allow users="*"/&amp;gt;&lt;br /&gt;            &amp;lt;/authorization&amp;gt;&lt;br /&gt;        &amp;lt;/system.web&amp;gt;&lt;br /&gt;    &amp;lt;/location&amp;gt; &lt;br /&gt;&amp;lt;/configuration&amp;gt;&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;Save your changes &lt;/li&gt;&lt;li&gt;Run iisreset /noforce &lt;/li&gt;&lt;/ol&gt;Verifying the workaround: You can verify the workaround by browsing to &lt;a closure_uid_74ggzg="6038" href="http://servername/_vti_bin/webresource.axd" target="_blank"&gt;http://servername/_vti_bin/webresource.axd&lt;/a&gt;.&amp;nbsp; You should receive an error message stating “An error has occurred on the server.”&lt;br /&gt;&lt;strong&gt;&lt;u&gt;Workaround for Windows SharePoint Services 2.0 &lt;br /&gt;&lt;span style="font-size: 9.1pt;"&gt;&lt;/span&gt;&lt;/u&gt;&lt;/strong&gt;&lt;strong&gt;&lt;u&gt;&lt;br /&gt;&lt;/u&gt;&lt;/strong&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Navigate to the SharePoint installation directory at %ProgramFiles%\Common Files\Microsoft Shared\Web Server Extensions\60\template\layouts. &lt;/li&gt;&lt;li&gt;Create a new file called error.aspx in this directory with the following content: &lt;br /&gt;&lt;pre&gt;&amp;lt;%@ Page Language="C#" AutoEventWireup="true" %&amp;gt;&lt;br /&gt;&amp;lt;%@ Import Namespace="System.Security.Cryptography" %&amp;gt;&lt;br /&gt;&amp;lt;%@ Import Namespace="System.Threading" %&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;script runat="server"&amp;gt;&lt;br /&gt;   void Page_Load() {&lt;br /&gt;      byte[] delay = new byte[1];&lt;br /&gt;      RandomNumberGenerator prng = new RNGCryptoServiceProvider();&lt;br /&gt;&lt;br /&gt;      prng.GetBytes(delay);&lt;br /&gt;      Thread.Sleep((int)delay[0]);&lt;br /&gt;        &lt;br /&gt;      IDisposable disposable = prng as IDisposable;&lt;br /&gt;      if (disposable != null) { disposable.Dispose(); }&lt;br /&gt;    }&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;html&amp;gt;&lt;br /&gt;&amp;lt;head runat="server"&amp;gt;&lt;br /&gt;    &amp;lt;title&amp;gt;Error&amp;lt;/title&amp;gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;br /&gt;    &amp;lt;div&amp;gt;&lt;br /&gt;        An error occurred while processing your request.&lt;br /&gt;    &amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;Navigate to %ProgramFiles%\Common Files\Microsoft Shared\Web Server Extensions\60\isapi. &lt;/li&gt;&lt;li&gt;Make a copy of the web.config file at this location and rename it to web_backup.config &lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;strong&gt;Important:&lt;/strong&gt; if you skip this step, the workaround may affect your ability to apply patches to your SharePoint installation at a later date &lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;li&gt;Edit web.config and add an httpHandlers section as shown: &lt;br /&gt;&lt;pre&gt;&amp;lt;configuration&amp;gt;&lt;br /&gt;   &amp;lt;system.web&amp;gt;&lt;br /&gt;      &amp;lt;webServices&amp;gt;&lt;br /&gt;         &amp;lt;protocols&amp;gt;&lt;br /&gt;            &amp;lt;remove name="HttpGet" /&amp;gt;&lt;br /&gt;            &amp;lt;remove name="HttpPost" /&amp;gt;&lt;br /&gt;            &amp;lt;remove name="HttpPostLocalhost" /&amp;gt;&lt;br /&gt;            &amp;lt;add name="Documentation" /&amp;gt;&lt;br /&gt;         &amp;lt;/protocols&amp;gt;&lt;br /&gt;      &amp;lt;/webServices&amp;gt; &lt;br /&gt;&lt;strong&gt;&lt;span style="background-color: yellow;"&gt;      &amp;lt;httpHandlers&amp;gt;   &lt;br /&gt;         &amp;lt;remove path="WebResource.axd" verb="GET"/&amp;gt;    &lt;br /&gt;      &amp;lt;/httpHandlers&amp;gt;&lt;/span&gt;&lt;/strong&gt;  &lt;br /&gt;      &amp;lt;customErrors mode="On"/&amp;gt;&lt;br /&gt;      &amp;lt;trust level="Full" originUrl="" /&amp;gt;&lt;br /&gt;   &amp;lt;/system.web&amp;gt;&lt;br /&gt;&amp;lt;/configuration&amp;gt;&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;Save your changes &lt;/li&gt;&lt;li&gt;Run iisreset /noforce &lt;/li&gt;&lt;/ol&gt;Verifying the workaround: For Windows SharePoint Services 2.0 installations, you can verify the workaround in two parts: &lt;br /&gt;&lt;ol&gt;&lt;li&gt;Browse to &lt;a closure_uid_74ggzg="6039" href="http://servername/_layouts/foo.aspx" target="_blank"&gt;http://servername/_layouts/foo.aspx&lt;/a&gt;.&amp;nbsp; You should receive an error message stating “An error occurred while processing your request.” &lt;/li&gt;&lt;li&gt;Browse to &lt;a closure_uid_74ggzg="6040" href="http://servername/_vti_bin/webresource.axd" target="_blank"&gt;http://servername/_vti_bin/webresource.axd&lt;/a&gt;.&amp;nbsp; You should receive an error message stating “Path ‘/_vti_bin/webresource.axd’ was not found.” &lt;/li&gt;&lt;/ol&gt;&lt;strong&gt;&lt;br /&gt;F&lt;/strong&gt;&lt;strong&gt;or more information:&lt;/strong&gt;&lt;br /&gt;&lt;h5&gt;&lt;a closure_uid_74ggzg="6041" href="https://www.microsoft.com/technet/security/advisory/2416728.mspx" target="_blank"&gt;Microsoft Security Advisory (2416728)&lt;/a&gt; - Vulnerability in ASP.NET Could Allow Information Disclosure&lt;/h5&gt;&lt;h6&gt;&lt;a closure_uid_74ggzg="6042" href="http://blogs.technet.com/b/msrc/archive/2010/09/17/security-advisory-2416728-released.aspx" target="_blank"&gt;Security Advisory 2416728 Released&lt;/a&gt; – Microsoft Security Response Center Blog&lt;/h6&gt;&lt;h6&gt;&lt;a closure_uid_74ggzg="6043" href="http://blogs.technet.com/b/srd/archive/2010/09/17/understanding-the-asp-net-vulnerability.aspx" target="_blank"&gt;Understanding the ASP.NET Vulnerability&lt;/a&gt; – Microsoft Security Research &amp;amp; Defense Blog&lt;/h6&gt;&lt;h6&gt;&lt;a closure_uid_74ggzg="6044" href="http://weblogs.asp.net/scottgu/archive/2010/09/18/important-asp-net-security-vulnerability.aspx" target="_blank"&gt;Important: ASP.NET Security Vulnerability&lt;/a&gt; – Scott Guthrie’s Blog&lt;/h6&gt;&lt;h6&gt;&lt;a closure_uid_74ggzg="6045" href="http://weblogs.asp.net/scottgu/archive/2010/09/20/frequently-asked-questions-about-the-asp-net-security-vulnerability.aspx" target="_blank"&gt;Frequently Asked Questions about the ASP.NET Security Vulnerability&lt;/a&gt; – Scott Guthrie’s Blog&lt;/h6&gt;&lt;div style="clear: both;"&gt;&lt;/div&gt;&lt;img height="1" src="http://blogs.msdn.com/aggbug.aspx?PostID=10065376" width="1" /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5591885701432628793-4728538068507691954?l=blog.reversingmotions.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.reversingmotions.com/feeds/4728538068507691954/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.reversingmotions.com/2010/09/security-advisory-2416728-vulnerability.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/4728538068507691954'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/4728538068507691954'/><link rel='alternate' type='text/html' href='http://blog.reversingmotions.com/2010/09/security-advisory-2416728-vulnerability.html' title='Security Advisory 2416728 (Vulnerability in ASP.NET) and SharePoint.'/><author><name>Moez Tounsi</name><uri>https://profiles.google.com/112395018233684788902</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-7J1Be4Pf7gA/AAAAAAAAAAI/AAAAAAAAAJ4/3Wf7Ljaf8Ik/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5591885701432628793.post-6776663816925886548</id><published>2010-09-15T09:13:00.001+01:00</published><updated>2010-10-06T16:54:23.173+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET 1.0/1.1/2.0/3.5/4.0'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint Foundation'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint SDK'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint Configuration File Update'/><title type='text'>SharePoint 2010 : Adding Nested web.config entries using the SPWebConfigModification</title><content type='html'>In SharePoint 2010, you can’t change the correctly the web.config modification entries because we got a new security feature called “RemoteAdministraorAccessDenied” which is by default set to true. &lt;br /&gt;While creating the nested the entries in the web.config I faced two issues :-&lt;br /&gt;Firstly, I resolved it using the setting the RemoteAdministratorAccessDenied to false.&lt;br /&gt;&lt;div style="border-bottom: silver 1px solid; border-left: silver 1px solid; border-right: silver 1px solid; border-top: silver 1px solid; color: #f4f4f4; direction: ltr; font-size: 8pt; line-height: 12pt; max-height: 200px; overflow: auto; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px; text-align: left; width: 97.5%;"&gt;&lt;div style="background-color: #f4f4f4; border-bottom-style: none; border-left-style: none; border-right-style: none; border-top-style: none; color: black; direction: ltr; font-size: 8pt; line-height: 12pt; overflow: visible; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; text-align: left; width: 100%;"&gt;&lt;pre style="background-color: white; border-bottom-style: none; border-left-style: none; border-right-style: none; border-top-style: none; color: black; direction: ltr; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; text-align: left; width: 100%;"&gt;&lt;span style="color: #606060;"&gt;   1:&lt;/span&gt; SPWebService webservice = SPWebService.ContentService;&lt;/pre&gt;&lt;pre style="background-color: #f4f4f4; border-bottom-style: none; border-left-style: none; border-right-style: none; border-top-style: none; color: black; direction: ltr; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; text-align: left; width: 100%;"&gt;&lt;span style="color: #606060;"&gt;   2:&lt;/span&gt; webservice.RemoteAdministratorAccessDenied = false;&lt;/pre&gt;&lt;pre style="background-color: white; border-bottom-style: none; border-left-style: none; border-right-style: none; border-top-style: none; color: black; direction: ltr; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; text-align: left; width: 100%;"&gt;&lt;span style="color: #606060;"&gt;   3:&lt;/span&gt;  &lt;/pre&gt;&lt;pre style="background-color: #f4f4f4; border-bottom-style: none; border-left-style: none; border-right-style: none; border-top-style: none; color: black; direction: ltr; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; text-align: left; width: 100%;"&gt;&lt;span style="color: #606060;"&gt;   4:&lt;/span&gt; webservice.Update();&lt;/pre&gt;&lt;pre style="background-color: white; border-bottom-style: none; border-left-style: none; border-right-style: none; border-top-style: none; color: black; direction: ltr; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; text-align: left; width: 100%;"&gt;&lt;span style="color: #606060;"&gt;   5:&lt;/span&gt; Console.WriteLine("Navdeep Done");&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;Secondly, I have written the following code in which I selected “EnsureChildNode” rather using the “EnsureSection” in the modification type.&lt;br /&gt;For e.g. if you would like to add a new section group in the ConfigSection, you have to add the Section group first then you have to provide the XPath to the ParentNode which “configuration/configSections/sectionGroup[@name='CustomURLRewrite']” in my case to add a nested node in the web.config.&lt;br /&gt;&lt;div style="border-bottom: silver 1px solid; border-left: silver 1px solid; border-right: silver 1px solid; border-top: silver 1px solid; color: #f4f4f4; direction: ltr; font-size: 8pt; height: 300px; line-height: 12pt; max-height: 300px; overflow: auto; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px; text-align: left; width: 99.69%;"&gt;&lt;div style="background-color: #f4f4f4; border-bottom-style: none; border-left-style: none; border-right-style: none; border-top-style: none; color: black; direction: ltr; font-size: 8pt; line-height: 12pt; overflow: visible; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; text-align: left; width: 100%;"&gt;&lt;pre style="background-color: white; border-bottom-style: none; border-left-style: none; border-right-style: none; border-top-style: none; color: black; direction: ltr; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; text-align: left; width: 100%;"&gt;&lt;span style="color: #606060;"&gt;   1:&lt;/span&gt; SPWebApplication webApp = new SPSite("http://blre3r08-12b:7000/Pages/default.aspx").WebApplication;&lt;/pre&gt;&lt;pre style="background-color: #f4f4f4; border-bottom-style: none; border-left-style: none; border-right-style: none; border-top-style: none; color: black; direction: ltr; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; text-align: left; width: 100%;"&gt;&lt;span style="color: #606060;"&gt;   2:&lt;/span&gt;  &lt;/pre&gt;&lt;pre style="background-color: white; border-bottom-style: none; border-left-style: none; border-right-style: none; border-top-style: none; color: black; direction: ltr; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; text-align: left; width: 100%;"&gt;&lt;span style="color: #606060;"&gt;   3:&lt;/span&gt; SPWebConfigModification modification = new SPWebConfigModification("CustomURLRewrite", "configuration/configSections");&lt;/pre&gt;&lt;pre style="background-color: #f4f4f4; border-bottom-style: none; border-left-style: none; border-right-style: none; border-top-style: none; color: black; direction: ltr; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; text-align: left; width: 100%;"&gt;&lt;span style="color: #606060;"&gt;   4:&lt;/span&gt;  modification.Owner = "SimpleSampleUniqueOwnerValue";&lt;/pre&gt;&lt;pre style="background-color: white; border-bottom-style: none; border-left-style: none; border-right-style: none; border-top-style: none; color: black; direction: ltr; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; text-align: left; width: 100%;"&gt;&lt;span style="color: #606060;"&gt;   5:&lt;/span&gt;  modification.Sequence = 0;&lt;/pre&gt;&lt;pre style="background-color: #f4f4f4; border-bottom-style: none; border-left-style: none; border-right-style: none; border-top-style: none; color: black; direction: ltr; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; text-align: left; width: 100%;"&gt;&lt;span style="color: #606060;"&gt;   6:&lt;/span&gt;  modification.Type = SPWebConfigModification.SPWebConfigModificationType.EnsureChildNode;&lt;/pre&gt;&lt;pre style="background-color: white; border-bottom-style: none; border-left-style: none; border-right-style: none; border-top-style: none; color: black; direction: ltr; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; text-align: left; width: 100%;"&gt;&lt;span style="color: #606060;"&gt;   7:&lt;/span&gt;  modification.Value = "&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;sectionGroup&lt;/span&gt; &lt;span style="color: red;"&gt;name&lt;/span&gt;&lt;span style="color: blue;"&gt;='CustomURLRewrite'&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: maroon;"&gt;sectionGroup&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;";&lt;/pre&gt;&lt;pre style="background-color: #f4f4f4; border-bottom-style: none; border-left-style: none; border-right-style: none; border-top-style: none; color: black; direction: ltr; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; text-align: left; width: 100%;"&gt;&lt;span style="color: #606060;"&gt;   8:&lt;/span&gt;  &lt;/pre&gt;&lt;pre style="background-color: white; border-bottom-style: none; border-left-style: none; border-right-style: none; border-top-style: none; color: black; direction: ltr; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; text-align: left; width: 100%;"&gt;&lt;span style="color: #606060;"&gt;   9:&lt;/span&gt;  // Add my new web.config modification. &lt;/pre&gt;&lt;pre style="background-color: #f4f4f4; border-bottom-style: none; border-left-style: none; border-right-style: none; border-top-style: none; color: black; direction: ltr; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; text-align: left; width: 100%;"&gt;&lt;span style="color: #606060;"&gt;  10:&lt;/span&gt;  webApp.WebConfigModifications.Add(modification);&lt;/pre&gt;&lt;pre style="background-color: white; border-bottom-style: none; border-left-style: none; border-right-style: none; border-top-style: none; color: black; direction: ltr; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; text-align: left; width: 100%;"&gt;&lt;span style="color: #606060;"&gt;  11:&lt;/span&gt;  &lt;/pre&gt;&lt;pre style="background-color: #f4f4f4; border-bottom-style: none; border-left-style: none; border-right-style: none; border-top-style: none; color: black; direction: ltr; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; text-align: left; width: 100%;"&gt;&lt;span style="color: #606060;"&gt;  12:&lt;/span&gt;  SPWebConfigModification modification1 = new SPWebConfigModification("CustomURLRewrite", "configuration/configSections/sectionGroup[@name='CustomURLRewrite']");&lt;/pre&gt;&lt;pre style="background-color: white; border-bottom-style: none; border-left-style: none; border-right-style: none; border-top-style: none; color: black; direction: ltr; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; text-align: left; width: 100%;"&gt;&lt;span style="color: #606060;"&gt;  13:&lt;/span&gt;  modification1.Owner = "SimpleSampleUniqueOwnerValue";&lt;/pre&gt;&lt;pre style="background-color: #f4f4f4; border-bottom-style: none; border-left-style: none; border-right-style: none; border-top-style: none; color: black; direction: ltr; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; text-align: left; width: 100%;"&gt;&lt;span style="color: #606060;"&gt;  14:&lt;/span&gt;  modification1.Sequence = 1;&lt;/pre&gt;&lt;pre style="background-color: white; border-bottom-style: none; border-left-style: none; border-right-style: none; border-top-style: none; color: black; direction: ltr; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; text-align: left; width: 100%;"&gt;&lt;span style="color: #606060;"&gt;  15:&lt;/span&gt;  modification1.Type = SPWebConfigModification.SPWebConfigModificationType.EnsureChildNode;&lt;/pre&gt;&lt;pre style="background-color: #f4f4f4; border-bottom-style: none; border-left-style: none; border-right-style: none; border-top-style: none; color: black; direction: ltr; font-size: 8pt; line-height: 12pt; margin: 0em; overflow: visible; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; text-align: left; width: 100%;"&gt;&lt;span style="color: #606060;"&gt;  16:&lt;/span&gt;  modification1.Value = "&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;section&lt;/span&gt; &lt;span style="color: red;"&gt;name&lt;/span&gt;&lt;span style="color: blue;"&gt;='navdeep'&lt;/span&gt; &lt;span style="color: red;"&gt;type&lt;/span&gt;&lt;span style="color: blue;"&gt;='Microsoft.SharePoint.ApplicationRuntime.SafeControlsConfigurationHandler, Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c'&lt;/span&gt; &lt;span style="color: blue;"&gt;/&amp;gt;&lt;/span&gt;";&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;Member name&lt;br /&gt;Description&lt;br /&gt;&lt;strong&gt;EnsureChildNode&lt;/strong&gt;Specifies that the web.config modification must ensure a child node of the node to which the XPath expression points. Value = 0.&lt;br /&gt;&lt;strong&gt;EnsureAttribute&lt;/strong&gt;Specifies that the web.config modification must ensure the value of a particular attribute. Value = 1.&lt;br /&gt;&lt;strong&gt;EnsureSection&lt;/strong&gt;&lt;br /&gt;Ensures a singleton node. This node is only written once, even if multiple entities register multiple instances of EnsureSection to ensure a single section. Value = 2.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5591885701432628793-6776663816925886548?l=blog.reversingmotions.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.reversingmotions.com/feeds/6776663816925886548/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.reversingmotions.com/2010/09/sharepoint-2010-adding-nested-webconfig.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/6776663816925886548'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/6776663816925886548'/><link rel='alternate' type='text/html' href='http://blog.reversingmotions.com/2010/09/sharepoint-2010-adding-nested-webconfig.html' title='SharePoint 2010 : Adding Nested web.config entries using the SPWebConfigModification'/><author><name>Moez Tounsi</name><uri>https://profiles.google.com/112395018233684788902</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-7J1Be4Pf7gA/AAAAAAAAAAI/AAAAAAAAAJ4/3Wf7Ljaf8Ik/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5591885701432628793.post-179293266624586698</id><published>2010-09-10T10:17:00.001+01:00</published><updated>2010-10-06T16:54:23.174+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET 1.0/1.1/2.0/3.5/4.0'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint Foundation'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint SDK'/><title type='text'>Updated SharePoint 2010 SDK</title><content type='html'>The SharePoint 2010 Software Development Kit (SDK) has been updated! Get it here: &lt;a href="http://www.microsoft.com/downloads/en/details.aspx?displaylang=en&amp;amp;FamilyID=f0c9daf3-4c54-45ed-9bde-7b4d83a8f26f"&gt;&lt;strong&gt;Download from the Microsoft Download Center&lt;/strong&gt;&lt;/a&gt; &lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Tips: &lt;/strong&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ff847473.aspx"&gt;Installing and Using the SharePoint 2010 SDK Download&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h4&gt;What’s New in this SDK Update&lt;/h4&gt;This free update replaces previous 2010 versions of the SDK and includes the following:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;New code samples:&lt;/strong&gt; Silverlight List Viewer, plus new samples in Business Connectivity Services (BCS), Enterprise Content Management (ECM), and User Profiles and Social Data &lt;/li&gt;&lt;li&gt;&lt;strong&gt;Updated documentation&lt;/strong&gt;, including: new and updated How To, reference , and conceptual content &lt;/li&gt;&lt;li&gt;&lt;strong&gt;Updated IntelliSense XML files &lt;/strong&gt;for tooltips and auto-complete in Visual Studio &lt;/li&gt;&lt;/ul&gt;Here are two MSDN topics listing new and updated content and code samples in the AUG2010 version of the SDK (14.0.4763.1031):&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ff847474.aspx"&gt;What’s New in the SDK for SharePoint Foundation 2010&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ff847475.aspx"&gt;What’s New in the SDK for SharePoint Server 2010&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;A complete listing and description of the 44 code samples currently available in the SDK can be found here on MSDN Code Gallery: &lt;a href="http://code.msdn.microsoft.com/sp2010sdk"&gt;http://code.msdn.microsoft.com/sp2010sdk&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5591885701432628793-179293266624586698?l=blog.reversingmotions.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.reversingmotions.com/feeds/179293266624586698/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.reversingmotions.com/2010/09/updated-sharepoint-2010-sdk.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/179293266624586698'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/179293266624586698'/><link rel='alternate' type='text/html' href='http://blog.reversingmotions.com/2010/09/updated-sharepoint-2010-sdk.html' title='Updated SharePoint 2010 SDK'/><author><name>Moez Tounsi</name><uri>https://profiles.google.com/112395018233684788902</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-7J1Be4Pf7gA/AAAAAAAAAAI/AAAAAAAAAJ4/3Wf7Ljaf8Ik/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5591885701432628793.post-3843524580972070926</id><published>2010-09-09T16:34:00.002+01:00</published><updated>2010-10-06T16:55:02.488+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Preview'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET 1.0/1.1/2.0/3.5/4.0'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='Beta'/><category scheme='http://www.blogger.com/atom/ns#' term='CRM'/><category scheme='http://www.blogger.com/atom/ns#' term='CRM 5'/><title type='text'>Microsoft Dynamics CRM 2011 – Global Beta Released</title><content type='html'>&lt;em&gt;By, Umran Hasan&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Today, the &lt;a href="http://crm.dynamics.com/en-us/Default.aspx"&gt;Microsoft Dynamics CRM&lt;/a&gt; team has reached a key milestone as it releases the &lt;a href="http://www.microsoft.com/presspass/press/2010/sep10/09-09MSCRM2011BetaPr.mspx"&gt;beta of Microsoft Dynamics CRM 2011&lt;/a&gt;, for both cloud-based and on-premises deployments. Available for download and testing in eight languages (English, French, German, Hebrew, Italian, Japanese, Spanish and Chinese) and 36 markets, this release marks the first global public beta for Microsoft Dynamics CRM Online. Additionally, beta for Microsoft Dynamics CRM 2011 on-premises is available in 40 markets in eight languages.&lt;br /&gt;There is definitely high anticipation for this new release among partners and customers based on the very positive response received when the team first talked about the new product at &lt;a href="http://blogs.msdn.com/b/crm/archive/2010/07/12/introducing-microsoft-dynamics-crm-2011.aspx"&gt;WPC&lt;/a&gt;, and specifically highlighted how Microsoft Dynamics CRM 2011 will deliver the Power of Productivity through familiar, connected and intelligent experiences for users inside and outside an organization. &lt;br /&gt;Here is what Garrett Klas, application development manager at CAPTRUST Financial Advisors, a Microsoft Dynamics CRM customer who had the opportunity to experience a pre-beta version of the new release had to say:&lt;br /&gt;&lt;blockquote&gt;&lt;i&gt;&lt;span style="font-size: 100%;"&gt;“We are enthusiastic about the guided process capabilities of CRM 2011 as a means of reducing the required user training and enhancing our data stewardship program given our highly regulated industry. We value the flexibility offered by the current version of Microsoft Dynamics CRM so can't wait to try out the next generation product and witness the new features first hand.”&lt;/span&gt;&lt;/i&gt;&lt;/blockquote&gt;Additionally, the all new Microsoft Dynamics Marketplace online catalog (also announced at &lt;a href="http://blogs.msdn.com/b/crm/archive/2010/07/12/introducing-microsoft-dynamics-crm-2011.aspx"&gt;WPC&lt;/a&gt;) will be released as a beta later this month and will offer customers and partners a searchable and filterable catalog of more than 700 applications and professional services. This service will offer partners an easy way to market and distribute solutions to Microsoft Dynamics customers and customers a convenient way to find solutions that meet their business needs. &lt;br /&gt;To try out the Microsoft Dynamics CRM 2011 beta or sign up for the Microsoft Dynamics CRM Online beta visit &lt;a href="http://www.crm2011beta.com/"&gt;http://www.crm2011beta.com/&lt;/a&gt;.&lt;br /&gt;The full press release issued today is located here: &lt;a href="http://www.microsoft.com/presspass/press/2010/sep10/09-09MSCRM2011BetaPr.mspx"&gt;Microsoft Releases Global Beta of Next-Generation CRM Product&lt;/a&gt;. And be sure to engage and follow the Microsoft Dynamics CRM community &lt;a href="http://www.twitter.com/msdynamicscrm"&gt;@MSDynamicsCRM&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5591885701432628793-3843524580972070926?l=blog.reversingmotions.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.reversingmotions.com/feeds/3843524580972070926/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.reversingmotions.com/2010/09/blog-post-microsoft-dynamics-crm-2011.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/3843524580972070926'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/3843524580972070926'/><link rel='alternate' type='text/html' href='http://blog.reversingmotions.com/2010/09/blog-post-microsoft-dynamics-crm-2011.html' title='Microsoft Dynamics CRM 2011 – Global Beta Released'/><author><name>Moez Tounsi</name><uri>https://profiles.google.com/112395018233684788902</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-7J1Be4Pf7gA/AAAAAAAAAAI/AAAAAAAAAJ4/3Wf7Ljaf8Ik/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5591885701432628793.post-1120713160492082147</id><published>2010-09-09T15:56:00.001+01:00</published><updated>2010-10-06T16:55:02.490+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET 1.0/1.1/2.0/3.5/4.0'/><category scheme='http://www.blogger.com/atom/ns#' term='TechEd'/><category scheme='http://www.blogger.com/atom/ns#' term='Events'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='TechDays'/><title type='text'>Microsoft TechDays 2011 - Votre opinion sur notre futur site web !</title><content type='html'>Microsoft TechDays 2011 - Votre opinion sur notre futur site web !: &lt;br /&gt;&lt;div align="center"&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-54-07-metablogapi/4135.NewsTechDays10_5F00_30900E20.png"&gt;&lt;img alt="News TechDays 10" border="0" height="140" le="border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px" src="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-54-07-metablogapi/1884.NewsTechDays10_5F00_thumb_5F00_649487A6.png" title="News TechDays 10" width="739" /&gt;&lt;/a&gt;&lt;/div&gt;Les &lt;i&gt;Microsoft TechDays&lt;/i&gt;, vous le savez, sont le résultat d’un travail de longue haleine impliquant plusieurs dizaines de personnes de différents horizons, toutes réunies par la passion des technologies et &lt;a href="http://blogs.technet.com/b/mstechdays/archive/2010/01/07/historique-des-microsoft-techdays-de-la-cr-ation-des-techdays-l-dition-2010.aspx"&gt;l’envie de vous satisfaire&lt;/a&gt;. Les &lt;i&gt;TechDays&lt;/i&gt; ce sont avant tout un &lt;a href="http://blogs.technet.com/b/mstechdays/archive/2009/11/30/techdays-2010-toutes-les-vid-os.aspx"&gt;contenu technique riche et adapté à vos besoins&lt;/a&gt;, mais également l’opportunité de rencontrer vos pairs et de nombreux spécialistes afin d’échanger sur vos problématiques, vos projets ou votre carrière.&lt;br /&gt;Que serait un événement majeur comme les &lt;i&gt;TechDays&lt;/i&gt; sans un site Internet digne de ce nom ? Là encore, &lt;b&gt;notre volonté est de vous proposer la meilleure expérience possible, que ce soit en termes d’accès à l’information, d’ergonomie, de design, de fonctionnalités&lt;/b&gt;… et qui dit site Internet de qualité, dit un peu de préparation !&lt;br /&gt;Comme les &lt;i&gt;TechDays&lt;/i&gt; sont avant tout VOTRE événement, j’ai la joie de &lt;b&gt;vous présenter en avant-première trois pistes créatives pour le futur site des &lt;i&gt;TechDays 2011&lt;/i&gt;, afin de recueillir vos premières impressions&lt;/b&gt;. &lt;i&gt;Attention, ces illustrations ne sont pas représentatives du site dans sa version finale ; les textes, logos, et autres visuels présents dans ces images ne correspondent pas à ce qui sera mis en ligne : pour cette raison, je ne sollicite que votre &lt;u&gt;impression générale et vos idées&lt;/u&gt;.&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;/i&gt;&lt;br /&gt;&lt;b&gt;Après avoir regardé les trois illustrations qui suivent, &lt;span style="color: red;"&gt;pourriez-vous nous faire part de votre avis concernant :&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;· &lt;i&gt;La &lt;b&gt;&lt;span style="color: red;"&gt;couleur&lt;/span&gt; &lt;/b&gt;: quel « ton » vous plait le plus (sombre, bleu ou violet) ?&lt;/i&gt;&lt;br /&gt;· &lt;i&gt;Le &lt;b&gt;« &lt;span style="color: red;"&gt;design&lt;/span&gt; »&lt;/b&gt; : aimez-vous les nuages de mots qui font ressortir des thématiques clés ? préférez-vous l’agencement et l’aspect visuel des éléments de la page dans sa version « sombre » ou plutôt ceux des versions « bleu » / « violet » ?&lt;/i&gt;&lt;br /&gt;· &lt;i&gt;Et enfin : si vous avez une &lt;b&gt;&lt;span style="color: red;"&gt;recommandation en termes de contenu&lt;/span&gt;&lt;/b&gt; que vous aimeriez trouver sur le &lt;a href="http://blogs.technet.com/b/mstechdays/archive/2010/09/08/microsoft-techdays-2011-votre-opinion-sur-notre-futur-site-web.aspx"&gt;site&lt;/a&gt;, c’est aussi le bon moment !&lt;/i&gt;&lt;br /&gt;&lt;h1 align="center"&gt;“Sombre”&lt;/h1&gt;&lt;div align="center"&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-54-07-metablogapi/1817.home_5F00_TD2011_5F00_axe1_5F00_403F7D57.jpg"&gt;&lt;img alt="home_TD2011_axe1" border="0" height="267" le="border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px" src="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-54-07-metablogapi/8764.home_5F00_TD2011_5F00_axe1_5F00_thumb_5F00_1AA5DA29.jpg" title="home_TD2011_axe1" width="500" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;h1 align="center"&gt;“Bleu”&lt;/h1&gt;&lt;div align="center"&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-54-07-metablogapi/6786.home_5F00_TD2011_5F00_axe2_5F00_bleu_5F00_1ECFB1EE.jpg"&gt;&lt;img alt="home_TD2011_axe2_bleu" border="0" height="233" le="border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px" src="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-54-07-metablogapi/0827.home_5F00_TD2011_5F00_axe2_5F00_bleu_5F00_thumb_5F00_4C2121F1.jpg" title="home_TD2011_axe2_bleu" width="500" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;h1 align="center"&gt;“Violet”&lt;/h1&gt;&lt;div align="center"&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-54-07-metablogapi/3157.home_5F00_TD2011_5F00_axe2_5F00_violet_5F00_7EA47F63.jpg"&gt;&lt;img alt="home_TD2011_axe2_violet" border="0" height="233" le="border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px" src="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-54-07-metablogapi/1423.home_5F00_TD2011_5F00_axe2_5F00_violet_5F00_thumb_5F00_6C2C08E1.jpg" title="home_TD2011_axe2_violet" width="500" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="clear: both;"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5591885701432628793-1120713160492082147?l=blog.reversingmotions.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.reversingmotions.com/feeds/1120713160492082147/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.reversingmotions.com/2010/09/microsoft-techdays-2011-votre-opinion.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/1120713160492082147'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/1120713160492082147'/><link rel='alternate' type='text/html' href='http://blog.reversingmotions.com/2010/09/microsoft-techdays-2011-votre-opinion.html' title='Microsoft TechDays 2011 - Votre opinion sur notre futur site web !'/><author><name>Moez Tounsi</name><uri>https://profiles.google.com/112395018233684788902</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-7J1Be4Pf7gA/AAAAAAAAAAI/AAAAAAAAAJ4/3Wf7Ljaf8Ik/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5591885701432628793.post-2481015365974933180</id><published>2010-09-09T14:32:00.002+01:00</published><updated>2010-10-06T16:54:23.178+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET 1.0/1.1/2.0/3.5/4.0'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint Foundation'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='Beta'/><category scheme='http://www.blogger.com/atom/ns#' term='CRM'/><category scheme='http://www.blogger.com/atom/ns#' term='Annoucement'/><title type='text'>Microsoft Releases Global Beta of Next-Generation CRM Product</title><content type='html'>Microsoft Releases Global Beta of Next-Generation CRM Product:&lt;br /&gt;Discover the Power of Productivity with the new Microsoft Dynamics CRM 2011 beta release for cloud-based and on-premises deployments.&lt;br /&gt;&lt;a href="http://www.crm2011beta.com/"&gt;http://www.crm2011beta.com/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.crm2011beta.com/"&gt;&lt;img alt="image" border="0" height="227" src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-93-20-metablogapi/4628.image_5F00_3.png" style="border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline;" title="image" width="519" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5591885701432628793-2481015365974933180?l=blog.reversingmotions.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.reversingmotions.com/feeds/2481015365974933180/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.reversingmotions.com/2010/09/blog-post-microsoft-releases-global.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/2481015365974933180'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/2481015365974933180'/><link rel='alternate' type='text/html' href='http://blog.reversingmotions.com/2010/09/blog-post-microsoft-releases-global.html' title='Microsoft Releases Global Beta of Next-Generation CRM Product'/><author><name>Moez Tounsi</name><uri>https://profiles.google.com/112395018233684788902</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-7J1Be4Pf7gA/AAAAAAAAAAI/AAAAAAAAAJ4/3Wf7Ljaf8Ik/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5591885701432628793.post-1047701915109689129</id><published>2010-09-03T12:09:00.001+01:00</published><updated>2010-10-06T16:54:15.868+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET 1.0/1.1/2.0/3.5/4.0'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint Foundation'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='MasterPages'/><category scheme='http://www.blogger.com/atom/ns#' term='CSS'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint Themes'/><category scheme='http://www.blogger.com/atom/ns#' term='Themes'/><category scheme='http://www.blogger.com/atom/ns#' term='MasterPage Customization'/><title type='text'>SharePoint Server 2010 - Web Content Management, Look 'n Feel, CSS Styles, Master Pages, Themes, Site template customization reference</title><content type='html'>MSDN recently updated two content pages referencing SharePoint 2010 Themes and CSS Reference Elements, all building blocks to customize, create SharePoint 2010 Master Pages and Themes.&lt;br /&gt;&lt;br /&gt;Themes Overview : &lt;a href="http://technet.microsoft.com/en-us/library/ee617148.aspx"&gt;http://technet.microsoft.com/en-us/library/ee617148.aspx&lt;/a&gt;&lt;br /&gt;Building Block, Pages and UI : &lt;a href="http://technet.microsoft.com/en-us/library/ee617148.aspx"&gt;http://technet.microsoft.com/en-us/library/ee617148.aspx&lt;/a&gt;&lt;br /&gt;CSS Usage in SharePoint Foundation : &lt;a href="http://msdn.microsoft.com/en-us/library/ms438349.aspx"&gt;http://msdn.microsoft.com/en-us/library/ms438349.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5591885701432628793-1047701915109689129?l=blog.reversingmotions.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.reversingmotions.com/feeds/1047701915109689129/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.reversingmotions.com/2010/09/sharepoint-server-2010-web-content.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/1047701915109689129'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/1047701915109689129'/><link rel='alternate' type='text/html' href='http://blog.reversingmotions.com/2010/09/sharepoint-server-2010-web-content.html' title='SharePoint Server 2010 - Web Content Management, Look &apos;n Feel, CSS Styles, Master Pages, Themes, Site template customization reference'/><author><name>Moez Tounsi</name><uri>https://profiles.google.com/112395018233684788902</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-7J1Be4Pf7gA/AAAAAAAAAAI/AAAAAAAAAJ4/3Wf7Ljaf8Ik/s512-c/photo.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5591885701432628793.post-189562571418750647</id><published>2010-08-31T14:58:00.001+01:00</published><updated>2010-10-06T16:54:23.179+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET 1.0/1.1/2.0/3.5/4.0'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>Announcing the release of the SharePoint 2010 Administration Toolkit V1</title><content type='html'>New SharePoint Server Administration Toolkit (annouced by &lt;a href="http://blogs.msdn.com/b/sharepoint/"&gt;SharePoint Team Blog&lt;/a&gt;) cloud be downloaded &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=718447d8-0814-427a-81c3-c9c3d84c456e&amp;amp;displaylang=en"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5591885701432628793-189562571418750647?l=blog.reversingmotions.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.reversingmotions.com/feeds/189562571418750647/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.reversingmotions.com/2010/08/announcing-release-of-sharepoint-2010.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/189562571418750647'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/189562571418750647'/><link rel='alternate' type='text/html' href='http://blog.reversingmotions.com/2010/08/announcing-release-of-sharepoint-2010.html' title='Announcing the release of the SharePoint 2010 Administration Toolkit V1'/><author><name>Moez Tounsi</name><uri>https://profiles.google.com/112395018233684788902</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-7J1Be4Pf7gA/AAAAAAAAAAI/AAAAAAAAAJ4/3Wf7Ljaf8Ik/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5591885701432628793.post-7028663318947893861</id><published>2010-08-31T11:14:00.000+01:00</published><updated>2010-10-06T16:54:23.180+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET 1.0/1.1/2.0/3.5/4.0'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>SharePoint 2010 - 40 Application Templates</title><content type='html'>Check this &lt;a href="http://blogs.technet.com/b/tothesharepoint/archive/2010/08/18/sharepoint-2010-products-upgrade-and-the-fabulous-40-application-templates.aspx"&gt;link&lt;/a&gt; to setup the templates, amazing ! :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5591885701432628793-7028663318947893861?l=blog.reversingmotions.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.reversingmotions.com/feeds/7028663318947893861/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.reversingmotions.com/2010/08/sharepoint-2010-40-application.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/7028663318947893861'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/7028663318947893861'/><link rel='alternate' type='text/html' href='http://blog.reversingmotions.com/2010/08/sharepoint-2010-40-application.html' title='SharePoint 2010 - 40 Application Templates'/><author><name>Moez Tounsi</name><uri>https://profiles.google.com/112395018233684788902</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-7J1Be4Pf7gA/AAAAAAAAAAI/AAAAAAAAAJ4/3Wf7Ljaf8Ik/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5591885701432628793.post-1475657538038481330</id><published>2010-08-27T15:12:00.001+01:00</published><updated>2010-10-06T16:54:23.181+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET 1.0/1.1/2.0/3.5/4.0'/><category scheme='http://www.blogger.com/atom/ns#' term='BSC'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='XML'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><title type='text'>Creating Custom Business Connectivity Services Connectors Using SharePoint Server 2010</title><content type='html'>In this MSDN publication &lt;em&gt;Ricardo Loo Foronda (Microsoft Corporation)&lt;/em&gt; explains how to create custom connectors for a variety of data sources in SharePoint 2010, really great and simple, click &lt;a href="http://msdn.microsoft.com/en-us/library/ff953161.aspx"&gt;here&lt;/a&gt; to read the post.&lt;br /&gt;&lt;div id="mainBody"&gt;&lt;a href="http://code.msdn.microsoft.com/odcsp14ta/Release/ProjectReleases.aspx?ReleaseId=4843" id="ctl00_MTCS_main_ctl01" onclick="javascript:Track('ctl00_MTCS_main_ctl00|ctl00_MTCS_main_ctl01',this);" target="_blank"&gt;&lt;img alt="Click to get code" src="http://i.msdn.microsoft.com/Ff953161.62e0e4c4-0343-450b-b49b-6901b386d633(en-us,office.14).jpg" style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href="http://code.msdn.microsoft.com/odcsp14ta/Release/ProjectReleases.aspx?ReleaseId=4843" id="ctl00_MTCS_main_ctl03" onclick="javascript:Track('ctl00_MTCS_main_ctl00|ctl00_MTCS_main_ctl03',this);" target="_blank"&gt;Download code: Custom BCS Connector Sample&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.blogger.com/" id="bkoverview"&gt;&lt;/a&gt;&lt;br /&gt;&lt;h1 class="heading"&gt;Overview of Creating Business Connectivity Services Custom Connectors&lt;/h1&gt;&lt;div class="section" id="sectionSection0"&gt;Microsoft SharePoint Server 2010 offers integration with external systems (also known as line-of-business systems) through Microsoft Business Connectivity Services (BCS). However, some external systems require more flexibility and powerful mechanisms to correctly consume the data. Business Connectivity Services custom connectors offer you this flexibility and power.&lt;br /&gt;This article addresses the main steps to help you create a Business Connectivity Services custom connector, as follows:&lt;br /&gt;&lt;ul&gt;&lt;li class="unordered"&gt;Coding the assembly&lt;/li&gt;&lt;li class="unordered"&gt;Creating the model&lt;/li&gt;&lt;li class="unordered"&gt;Using the custom connector &lt;/li&gt;&lt;/ul&gt;The example used in this article helps you construct a custom connector that interacts with the file system. Basically, it provides interaction with a specified folder through the following method types:&lt;br /&gt;&lt;ul&gt;&lt;li class="unordered"&gt;&lt;strong&gt;Finder&lt;/strong&gt;&amp;nbsp;&amp;nbsp;Returns a list of files that match the wildcard criteria that is specified.&lt;/li&gt;&lt;li class="unordered"&gt;&lt;strong&gt;SpecificFinder&lt;/strong&gt;&amp;nbsp;&amp;nbsp;Returns file information for the file name that is specified.&lt;/li&gt;&lt;li class="unordered"&gt;&lt;strong&gt;StreamAccesor&lt;/strong&gt;&amp;nbsp;&amp;nbsp;Returns a read-only file stream for the file name that is specified.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;a href="http://www.blogger.com/" id="bkcodingassembly"&gt;&lt;/a&gt;&lt;br /&gt;&lt;h1 class="heading"&gt;Coding the Assembly&lt;/h1&gt;&lt;div class="section" id="sectionSection1"&gt;A custom connector offers deep integration with Business Connectivity Services, providing mechanisms that manage connections, use different type systems, configure connections, and validate metadata to ensure that a common framework is used. You can build a custom connector to provide this functionality by implementing the following interfaces:&lt;br /&gt;&lt;ul&gt;&lt;li class="unordered"&gt;&lt;strong&gt;ISystemUtility&lt;/strong&gt;&amp;nbsp;&amp;nbsp;Required. This main interface of a connector provides mechanisms to execute operations against an external system.&lt;/li&gt;&lt;li class="unordered"&gt;&lt;strong&gt;IConnectionManager&lt;/strong&gt;&amp;nbsp;&amp;nbsp;Optional. This interface enables opening and closing connections to the external system.&lt;/li&gt;&lt;li class="unordered"&gt;&lt;strong&gt;ITypeReflector&lt;/strong&gt;&amp;nbsp;&amp;nbsp;Optional. This interface enables working with the data structures of the external system.&lt;/li&gt;&lt;li class="unordered"&gt;&lt;strong&gt;ISystemPropertyValidator&lt;/strong&gt;&amp;nbsp;&amp;nbsp;Optional. This interface verifies the metadata properties on an &lt;strong&gt;LobSystem&lt;/strong&gt; element (external system) and on &lt;strong&gt;LobsystemInstance&lt;/strong&gt; (external system instance) elements.&lt;/li&gt;&lt;li class="unordered"&gt;&lt;strong&gt;IAdministrableSystem&lt;/strong&gt;&amp;nbsp;&amp;nbsp;This interface can be implemented to provide the list of properties that can be configured through the Business Data Connectivity (BDC) service Administration user interface.&lt;/li&gt;&lt;li class="unordered"&gt;&lt;strong&gt;ISystemProxyGenerator&lt;/strong&gt;&amp;nbsp;&amp;nbsp;This interface compiles proxies to connect to the external system that can be persisted for performance.&lt;/li&gt;&lt;/ul&gt;Figure 1 shows an overview of the &lt;strong&gt;FileSystemConnector&lt;/strong&gt; class.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Figure 1. FileSystemConnector overview&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;img alt="FileSystemConnector overview" src="http://i.msdn.microsoft.com/Ff953161.97ceac64-0d86-4f00-b943-b1e141f682b4(en-us,office.14).jpg" /&gt; &lt;br /&gt;&lt;h4 class="subHeading"&gt;Adding References and Implementing Interfaces&lt;/h4&gt;&lt;div class="subSection"&gt;To begin to create a custom connector, you have to add references to the following assemblies:&lt;br /&gt;&lt;ul&gt;&lt;li class="unordered"&gt;&lt;strong&gt;Microsoft.BusinessData&lt;/strong&gt; &lt;/li&gt;&lt;li class="unordered"&gt;&lt;strong&gt;Microsoft.SharePoint&lt;/strong&gt; &lt;/li&gt;&lt;/ul&gt;You can locate the assembly files in the path &lt;code&gt;c:\program files\common files\microsoft shared\web server extensions\14\isapi&lt;/code&gt;.&lt;br /&gt;Next, you implement the following interfaces for the example to work:&lt;br /&gt;&lt;ul&gt;&lt;li class="unordered"&gt;&lt;strong&gt;ISystemUtility&lt;/strong&gt; &lt;/li&gt;&lt;li class="unordered"&gt;&lt;strong&gt;IAdministrableSystem&lt;/strong&gt; &lt;/li&gt;&lt;li class="unordered"&gt;&lt;strong&gt;ISystemPropertyValidator&lt;/strong&gt; &lt;/li&gt;&lt;/ul&gt;The following sections describe these interfaces in more detail.&lt;br /&gt;&lt;h4 class="subHeading"&gt;ISystemUtility Interface&lt;/h4&gt;&lt;div class="subSection"&gt;As the main interface, &lt;strong&gt;ISystemUtility&lt;/strong&gt; provides functionality to execute operations against the external system.&lt;br /&gt;In our example, the &lt;strong&gt;ExecuteStatic&lt;/strong&gt; method provides the functionality for the &lt;strong&gt;Finder&lt;/strong&gt; method, &lt;strong&gt;SpecificFinder&lt;/strong&gt; method, and &lt;strong&gt;StreamAccesor&lt;/strong&gt; method. The following code shows the signature for the &lt;strong&gt;ExecuteStatic&lt;/strong&gt; method.&lt;br /&gt;&lt;span id="ctl00_MTCS_main_ctl05"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="libCScode" id="ctl00_MTCS_main_ctl05_CSharp"&gt;&lt;div class="CodeSnippetTitleBar"&gt;&lt;div class="CodeDisplayLanguage"&gt;C# &lt;/div&gt;&lt;div class="CopyCodeButton"&gt;&lt;br /&gt;&lt;div align="center" class="LibC_copy_off" style="border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; height: 9px; width: auto;"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div dir="ltr" style="background-color: #dddddd;"&gt;&lt;pre class="libCScode" id="ctl00_MTCS_main_ctl05_code"&gt;&lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;void&lt;/span&gt; ExecuteStatic(IMethodInstance methodInstance, ILobSystemInstance lobSystemInstance, object[] &lt;br /&gt;methodSignatureArgs, IExecutionContext context)&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;You should validate the in-parameters and the base folder, where &lt;strong&gt;Create&lt;/strong&gt;, &lt;strong&gt;Read&lt;/strong&gt;, &lt;strong&gt;Update&lt;/strong&gt;, and &lt;strong&gt;Delete&lt;/strong&gt; (CRUD) operations will occur. This is shown in the following code.&lt;br /&gt;&lt;span id="ctl00_MTCS_main_ctl06"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="libCScode" id="ctl00_MTCS_main_ctl06_CSharp"&gt;&lt;div class="CodeSnippetTitleBar"&gt;&lt;div class="CodeDisplayLanguage"&gt;C# &lt;/div&gt;&lt;div class="CopyCodeButton"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div dir="ltr" style="background-color: #dddddd;"&gt;&lt;pre class="libCScode" id="ctl00_MTCS_main_ctl06_code"&gt;&lt;span style="color: blue;"&gt;if&lt;/span&gt; (methodInstance == &lt;span style="color: blue;"&gt;null&lt;/span&gt;)&lt;br /&gt;{&lt;br /&gt;    throw (&lt;span style="color: blue;"&gt;new&lt;/span&gt; ArgumentNullException(&lt;span style="color: maroon;"&gt;&lt;span style="color: maroon;"&gt;"methodInstance"&lt;/span&gt;&lt;/span&gt;));&lt;br /&gt;}&lt;br /&gt;&lt;span style="color: blue;"&gt;if&lt;/span&gt; (lobSystemInstance == &lt;span style="color: blue;"&gt;null&lt;/span&gt;)&lt;br /&gt;{&lt;br /&gt;    throw (&lt;span style="color: blue;"&gt;new&lt;/span&gt; ArgumentNullException(&lt;span style="color: maroon;"&gt;&lt;span style="color: maroon;"&gt;"lobSystemInstance"&lt;/span&gt;&lt;/span&gt;));&lt;br /&gt;}&lt;br /&gt;&lt;span style="color: blue;"&gt;if&lt;/span&gt; (methodSignatureArgs == &lt;span style="color: blue;"&gt;null&lt;/span&gt;)&lt;br /&gt;{&lt;br /&gt;    throw (&lt;span style="color: blue;"&gt;new&lt;/span&gt; ArgumentNullException(&lt;span style="color: maroon;"&gt;&lt;span style="color: maroon;"&gt;"args"&lt;/span&gt;&lt;/span&gt;));&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;object baseFolderValue;&lt;br /&gt;&lt;span style="color: blue;"&gt;if&lt;/span&gt; (!lobSystemInstance.GetProperties().TryGetValue(baseFolderPropertyName, out baseFolderValue))&lt;br /&gt;{&lt;br /&gt;    throw &lt;span style="color: blue;"&gt;new&lt;/span&gt; InvalidOperationException(&lt;span style="color: maroon;"&gt;&lt;span style="color: maroon;"&gt;"BaseFolder property is missing"&lt;/span&gt;&lt;/span&gt;);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;String baseFolderName = baseFolderValue as &lt;span style="color: blue;"&gt;string&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: blue;"&gt;if&lt;/span&gt; (String.IsNullOrEmpty(baseFolderName))&lt;br /&gt;{&lt;br /&gt;    throw &lt;span style="color: blue;"&gt;new&lt;/span&gt; InvalidOperationException(&lt;span style="color: maroon;"&gt;&lt;span style="color: maroon;"&gt;"BaseFolder property contains an invalid value."&lt;/span&gt;&lt;/span&gt;);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;DirectoryInfo baseFolder = &lt;span style="color: blue;"&gt;new&lt;/span&gt; DirectoryInfo(baseFolderName);&lt;br /&gt;&lt;br /&gt;&lt;span style="color: blue;"&gt;if&lt;/span&gt; (!baseFolder.Exists)&lt;br /&gt;{&lt;br /&gt;    throw &lt;span style="color: blue;"&gt;new&lt;/span&gt; InvalidOperationException(&lt;span style="color: maroon;"&gt;&lt;span style="color: maroon;"&gt;"Base folder doesn't exist."&lt;/span&gt;&lt;/span&gt;);&lt;br /&gt;}&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Now, notice the following: &lt;br /&gt;&lt;ul&gt;&lt;li class="unordered"&gt;The first parameter, &lt;strong&gt;IMethodInstance methodInstance&lt;/strong&gt;, includes the &lt;strong&gt;MethodInstanceType&lt;/strong&gt; property. This indicates the method type that is being called. &lt;/li&gt;&lt;li class="unordered"&gt;The third parameter, &lt;strong&gt;object[] methodSignatureArgs&lt;/strong&gt;, can hold many subparameters that are useful for the &lt;strong&gt;MethodInstanceType&lt;/strong&gt; property.&lt;/li&gt;&lt;/ul&gt;With this information, you can build a handler for every &lt;strong&gt;MethodInstanceType&lt;/strong&gt;.&lt;br /&gt;The &lt;strong&gt;Finder&lt;/strong&gt; type has the following subparameters:&lt;br /&gt;&lt;ul&gt;&lt;li class="unordered"&gt;&lt;code&gt;methodSignatureArgs[0]&lt;/code&gt;: A wildcarded search string for a file name.&lt;/li&gt;&lt;li class="unordered"&gt;&lt;code&gt;methodSignatureArgs[1]&lt;/code&gt;: The return object (a list of &lt;strong&gt;FileInfo&lt;/strong&gt; objects).&lt;/li&gt;&lt;/ul&gt;The &lt;strong&gt;Finder&lt;/strong&gt; type subparameters are shown in the following code.&lt;br /&gt;&lt;span id="ctl00_MTCS_main_ctl07"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="libCScode" id="ctl00_MTCS_main_ctl07_CSharp"&gt;&lt;div class="CodeSnippetTitleBar"&gt;&lt;div class="CodeDisplayLanguage"&gt;C# &lt;/div&gt;&lt;div class="CopyCodeButton"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div dir="ltr" style="background-color: #dddddd;"&gt;&lt;pre class="libCScode" id="ctl00_MTCS_main_ctl07_code"&gt;&lt;span style="color: blue;"&gt;if&lt;/span&gt; (methodInstance.MethodInstanceType == MethodInstanceType.Finder)&lt;br /&gt;{&lt;br /&gt;    String wildcard = methodSignatureArgs[0] as &lt;span style="color: blue;"&gt;string&lt;/span&gt;;&lt;br /&gt;    IList&amp;lt;FileInfo&amp;gt; results = &lt;span style="color: blue;"&gt;new&lt;/span&gt; List&amp;lt;FileInfo&amp;gt;();&lt;br /&gt;    methodSignatureArgs[1] = baseFolder.GetFiles(wildcard);&lt;br /&gt;}&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;The &lt;strong&gt;SpecificFinder&lt;/strong&gt; type has the following subparameters:&lt;br /&gt;&lt;ul&gt;&lt;li class="unordered"&gt;&lt;code&gt;methodSignatureArgs[0]&lt;/code&gt;: The file name.&lt;/li&gt;&lt;li class="unordered"&gt;&lt;code&gt;methodSignatureArgs[1]&lt;/code&gt;: The return object (a &lt;strong&gt;FileInfo&lt;/strong&gt; object).&lt;/li&gt;&lt;/ul&gt;The &lt;strong&gt;SpecificFinder&lt;/strong&gt; type subparameters are shown in the following code.&lt;br /&gt;&lt;span id="ctl00_MTCS_main_ctl08"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="libCScode" id="ctl00_MTCS_main_ctl08_CSharp"&gt;&lt;div class="CodeSnippetTitleBar"&gt;&lt;div class="CodeDisplayLanguage"&gt;C# &lt;/div&gt;&lt;div class="CopyCodeButton"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div dir="ltr" style="background-color: #dddddd;"&gt;&lt;pre class="libCScode" id="ctl00_MTCS_main_ctl08_code"&gt;&lt;span style="color: blue;"&gt;if&lt;/span&gt; (methodInstance.MethodInstanceType == MethodInstanceType.SpecificFinder)&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color: blue;"&gt;string&lt;/span&gt; fileName = methodSignatureArgs[0] as &lt;span style="color: blue;"&gt;string&lt;/span&gt;;&lt;br /&gt;    FileInfo result = &lt;span style="color: blue;"&gt;new&lt;/span&gt; FileInfo(Path.Combine(baseFolder.FullName, fileName));&lt;br /&gt;    &lt;span style="color: blue;"&gt;if&lt;/span&gt; (result.Exists &amp;amp;&amp;amp; result.Directory.FullName.Equals(baseFolder.FullName))&lt;br /&gt;    {&lt;br /&gt;        methodSignatureArgs[1] = result;&lt;br /&gt;    }&lt;br /&gt;}&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;The &lt;strong&gt;StreamAccesor&lt;/strong&gt; type has the following subparameters:&lt;br /&gt;&lt;ul&gt;&lt;li class="unordered"&gt;&lt;code&gt;methodSignatureArgs[0]&lt;/code&gt;: The file name.&lt;/li&gt;&lt;li class="unordered"&gt;&lt;code&gt;methodSignatureArgs[1]&lt;/code&gt;: The return object (a &lt;strong&gt;FileStream&lt;/strong&gt; object).&lt;/li&gt;&lt;/ul&gt;The &lt;strong&gt;StreamAccesor&lt;/strong&gt; type subparameters are shown in the following code.&lt;br /&gt;&lt;span id="ctl00_MTCS_main_ctl09"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="libCScode" id="ctl00_MTCS_main_ctl09_CSharp"&gt;&lt;div class="CodeSnippetTitleBar"&gt;&lt;div class="CodeDisplayLanguage"&gt;C# &lt;/div&gt;&lt;div class="CopyCodeButton"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div dir="ltr" style="background-color: #dddddd;"&gt;&lt;pre class="libCScode" id="ctl00_MTCS_main_ctl09_code"&gt;&lt;span style="color: blue;"&gt;if&lt;/span&gt; (methodInstance.MethodInstanceType == MethodInstanceType.StreamAccessor)&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color: blue;"&gt;string&lt;/span&gt; fileName = methodSignatureArgs[0] as &lt;span style="color: blue;"&gt;string&lt;/span&gt;;&lt;br /&gt;    FileInfo result = &lt;span style="color: blue;"&gt;new&lt;/span&gt; FileInfo(Path.Combine(baseFolder.FullName, fileName));&lt;br /&gt;    &lt;span style="color: blue;"&gt;if&lt;/span&gt; (result.Exists &amp;amp;&amp;amp; result.Directory.FullName.Equals(baseFolder.FullName))&lt;br /&gt;    {&lt;br /&gt;        methodSignatureArgs[1] = result.OpenRead();&lt;br /&gt;    }&lt;br /&gt;}&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;h4 class="subHeading"&gt;IAdministrableSystem Interface&lt;/h4&gt;&lt;div class="subSection"&gt;As described earlier in this article, this &lt;strong&gt;IAdministrableSystem&lt;/strong&gt; provides the list of properties that are administered through the Business Connectivity Services Administration UI. In this case, you have only one property, &lt;strong&gt;BaseFolder&lt;/strong&gt;, which specifies your working directory.&lt;br /&gt;You store the value in a class variable named &lt;strong&gt;baseFolderPropertyName&lt;/strong&gt; through the &lt;strong&gt;AdministrableLobSystemInstanceProperties&lt;/strong&gt; property, as shown in the following code.&lt;br /&gt;&lt;span id="ctl00_MTCS_main_ctl10"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="libCScode" id="ctl00_MTCS_main_ctl10_CSharp"&gt;&lt;div class="CodeSnippetTitleBar"&gt;&lt;div class="CodeDisplayLanguage"&gt;C# &lt;/div&gt;&lt;div class="CopyCodeButton"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div dir="ltr" style="background-color: #dddddd;"&gt;&lt;pre class="libCScode" id="ctl00_MTCS_main_ctl10_code"&gt;&lt;span style="color: blue;"&gt;public&lt;/span&gt; IList&amp;lt;AdministrableProperty&amp;gt; AdministrableLobSystemInstanceProperties&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color: blue;"&gt;get&lt;/span&gt;&lt;br /&gt;    {&lt;br /&gt;        &lt;span style="color: blue;"&gt;return&lt;/span&gt; &lt;span style="color: blue;"&gt;new&lt;/span&gt; List&amp;lt;AdministrableProperty&amp;gt;()&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: blue;"&gt;new&lt;/span&gt; AdministrableProperty(&lt;span style="color: maroon;"&gt;&lt;span style="color: maroon;"&gt;"Base Folder"&lt;/span&gt;&lt;/span&gt;,&lt;span style="color: maroon;"&gt;&lt;span style="color: maroon;"&gt;"The path to the folder that stores the data."&lt;/span&gt;&lt;/span&gt;, &lt;br /&gt;              typeof(&lt;span style="color: blue;"&gt;string&lt;/span&gt;), baseFolderPropertyName, typeof(&lt;span style="color: blue;"&gt;string&lt;/span&gt;), &lt;span style="color: blue;"&gt;true&lt;/span&gt;)  &lt;br /&gt;        };&lt;br /&gt;    }&lt;br /&gt;}&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;h4 class="subHeading"&gt;ISystemPropertyValidator Interface&lt;/h4&gt;&lt;div class="subSection"&gt;You use the &lt;strong&gt;ISystemPropertyValidator&lt;/strong&gt; interface to verify the validity of the properties. In this case, you have only the &lt;strong&gt;BaseFolder&lt;/strong&gt; property. You check whether the folder exists, and if it does not, you throw an exception. This is shown in the following code.&lt;br /&gt;&lt;span id="ctl00_MTCS_main_ctl11"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="libCScode" id="ctl00_MTCS_main_ctl11_CSharp"&gt;&lt;div class="CodeSnippetTitleBar"&gt;&lt;div class="CodeDisplayLanguage"&gt;C# &lt;/div&gt;&lt;div class="CopyCodeButton"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div dir="ltr" style="background-color: #dddddd;"&gt;&lt;pre class="libCScode" id="ctl00_MTCS_main_ctl11_code"&gt;&lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;void&lt;/span&gt; ValidateLobSystemInstanceProperty(&lt;span style="color: blue;"&gt;string&lt;/span&gt; name, ref object value, &lt;span style="color: blue;"&gt;string&lt;/span&gt; metadataObjectName, &lt;br /&gt;   Type metadataObjectType)&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color: green;"&gt;// Validate whether the given directory exists.&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: blue;"&gt;if&lt;/span&gt; (name == baseFolderPropertyName)&lt;br /&gt;    {&lt;br /&gt;        String folderName = value as &lt;span style="color: blue;"&gt;string&lt;/span&gt;;&lt;br /&gt;        &lt;span style="color: blue;"&gt;if&lt;/span&gt; (!Directory.Exists(folderName))&lt;br /&gt;        {&lt;br /&gt;            throw &lt;span style="color: blue;"&gt;new&lt;/span&gt; ArgumentException(&lt;span style="color: maroon;"&gt;&lt;span style="color: maroon;"&gt;"The given directory does not exist."&lt;/span&gt;&lt;/span&gt;);&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;a href="http://www.blogger.com/" id="bkmodel"&gt;&lt;/a&gt;&lt;br /&gt;&lt;h1 class="heading"&gt;Creating the Model&lt;/h1&gt;&lt;div class="section" id="sectionSection2"&gt;You can create the model in three ways: by using Microsoft SharePoint Designer 2010, by using Microsoft Visual Studio 2010, or by creating a model file that you can import by using SharePoint Central Administration. &lt;br /&gt;For simplicity, this article explores the third option, creating a model file. To begin, you should have a general understanding of &lt;strong&gt;FileSystemLOB&lt;/strong&gt;, as shown in Figure 2.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Figure 2. FileSystemLOB overview&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;img alt="FileSystemLOB overview" src="http://i.msdn.microsoft.com/Ff953161.0e416fb5-3273-4c21-8036-b4bc094dec15(en-us,office.14).jpg" /&gt; &lt;br /&gt;The following sections describe these properties, methods, and identifier.&lt;br /&gt;&lt;h4 class="subHeading"&gt;FileSystemLOB Properties&lt;/h4&gt;&lt;div class="subSection"&gt;The &lt;strong&gt;LobSystem&lt;/strong&gt; element has the &lt;strong&gt;SystemUtilityTypeName&lt;/strong&gt; property, which is defined by the following XML fragment. Notice that this matches the &lt;strong&gt;AdministrableLobSystemProperties&lt;/strong&gt; list in the &lt;strong&gt;IAdministrableSystem&lt;/strong&gt; interface.&lt;br /&gt;&lt;span id="ctl00_MTCS_main_ctl13"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="libCScode" id="ctl00_MTCS_main_ctl13_xml"&gt;&lt;div class="CodeSnippetTitleBar"&gt;&lt;div class="CodeDisplayLanguage"&gt;XML &lt;/div&gt;&lt;div class="CopyCodeButton"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div dir="ltr" style="background-color: #dddddd;"&gt;&lt;pre class="libCScode" id="ctl00_MTCS_main_ctl13_code"&gt;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;Properties&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class="libCScode"&gt;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;b&gt;Property Name="SystemUtilityTypeName" Type="System.String"&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;    BusinessDataConnectivitySamples.Connectors.FileSystemConnector,&lt;br /&gt;    BusinessDataConnectivitySamples.Connectors,&lt;br /&gt;    Version=14.0.0.0,&lt;br /&gt;    Culture=Neutral,&lt;br /&gt;    PublicKeyToken=2154d1c691e2e909&lt;br /&gt;  &lt;span style="color: blue;"&gt;&amp;lt;&lt;font=""&gt;&lt;span style="color: blue;"&gt;&lt;b&gt;Property&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: blue;"&gt;&amp;lt;&lt;font=""&gt;&lt;span style="color: maroon;"&gt;Properties&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;You put the fully qualified assembly name in the &lt;strong&gt;SystemUtilityTypeName&lt;/strong&gt; property.&lt;/div&gt;&lt;h4 class="subHeading"&gt;TestFileSystemCustomShimInstance Instance&lt;/h4&gt;&lt;div class="subSection"&gt;The &lt;strong&gt;TestFileSystemCustomShimInstance&lt;/strong&gt; instance is defined through the following XML fragment. Notice that the &lt;strong&gt;BaseFolder&lt;/strong&gt; property matches the one in the &lt;strong&gt;IAdministrableSystem&lt;/strong&gt; interface.&lt;br /&gt;&lt;span id="ctl00_MTCS_main_ctl14"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="libCScode" id="ctl00_MTCS_main_ctl14_xml"&gt;&lt;div class="CodeSnippetTitleBar"&gt;&lt;div class="CodeDisplayLanguage"&gt;XML &lt;/div&gt;&lt;div class="CopyCodeButton"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div dir="ltr" style="background-color: #dddddd;"&gt;&lt;pre class="libCScode" id="ctl00_MTCS_main_ctl14_code"&gt;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;LobSystemInstance&lt;/span&gt; Name="TestFileSystemCustomShim"&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;Properties&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;b&gt;Property Name="BaseFolder" Type="System.String"&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;c:\testfolder&lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;Property&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: maroon;"&gt;Properties&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: maroon;"&gt;LobSystemInstance&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;h4 class="subHeading"&gt;File External Content Type&lt;/h4&gt;&lt;div class="subSection"&gt;The &lt;strong&gt;Entity&lt;/strong&gt; XML element is the largest section of the model and defines the properties, methods, and identifier of the files. This is shown in the following XML fragment.&lt;br /&gt;&lt;span id="ctl00_MTCS_main_ctl15"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="libCScode" id="ctl00_MTCS_main_ctl15_xml"&gt;&lt;div class="CodeSnippetTitleBar"&gt;&lt;div class="CodeDisplayLanguage"&gt;XML &lt;/div&gt;&lt;div class="CopyCodeButton"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div dir="ltr" style="background-color: #dddddd;"&gt;&lt;pre class="libCScode" id="ctl00_MTCS_main_ctl15_code"&gt;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;Entity&lt;/span&gt; EstimatedInstanceCount="1000" Name="File" Namespace="BDCSamples.Connectors.FileSystem" Version="1.0.0.0"&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;Identifiers&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;Identifier&lt;/span&gt; TypeName="System.String" Name="FileName"&lt;span style="color: blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: maroon;"&gt;Identifiers&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;Methods&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;Method&lt;/span&gt; Name="ReadFile"&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;Method&lt;/span&gt; Name="ReadFiles"&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;Method&lt;/span&gt; Name="GetFileContents"&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: maroon;"&gt;Methods&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: maroon;"&gt;Entity&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Business Connectivity Services also needs a way to uniquely identify each element (in this case, the file). This is done by the identifier, which in this example is the &lt;strong&gt;FileName&lt;/strong&gt; property.&lt;br /&gt;Next are the methods, which in general adjust to the following structure:&lt;br /&gt;&lt;ul&gt;&lt;li class="unordered"&gt;In parameters&lt;/li&gt;&lt;li class="unordered"&gt;Return parameters&lt;/li&gt;&lt;li class="unordered"&gt;Method instances&lt;/li&gt;&lt;li class="unordered"&gt;Access control lists (ACLs)&lt;/li&gt;&lt;/ul&gt;The methods are mapped to the operations described in the &lt;strong&gt;ExecuteInternal&lt;/strong&gt; method of the &lt;strong&gt;ISystemUtility&lt;/strong&gt; interface. In the following markup, only the XML fragment for the &lt;strong&gt;ReadFile&lt;/strong&gt; method is shown. But you can check the remaining operations in the files that accompany this article (see &lt;a href="http://code.msdn.microsoft.com/odcsp14ta/Release/ProjectReleases.aspx?ReleaseId=4843" id="ctl00_MTCS_main_ctl16" onclick="javascript:Track('ctl00_MTCS_main_ctl00|ctl00_MTCS_main_ctl16',this);" target="_blank"&gt;Custom BCS Connector Sample&lt;/a&gt;).&lt;br /&gt;&lt;span id="ctl00_MTCS_main_ctl17"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="libCScode" id="ctl00_MTCS_main_ctl17_xml"&gt;&lt;div class="CodeSnippetTitleBar"&gt;&lt;div class="CodeDisplayLanguage"&gt;XML &lt;/div&gt;&lt;div class="CopyCodeButton"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div dir="ltr" style="background-color: #dddddd;"&gt;&lt;pre class="libCScode" id="ctl00_MTCS_main_ctl17_code"&gt;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;Method&lt;/span&gt; Name="ReadFile"&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;Parameters&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;Parameter&lt;/span&gt; Direction="In" Name="FileName"&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;TypeDescriptor&lt;/span&gt; TypeName="System.String" IdentifierName="FileName" Name="FileName" &lt;span style="color: blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: maroon;"&gt;Parameter&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;Parameter&lt;/span&gt; Direction="Return" Name="FileDetails"&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;TypeDescriptor&lt;/span&gt; TypeName="System.IO.FileInfo, mscorlib, Version=2.0.0.0, Culture=neutral, &lt;br /&gt;       PublicKeyToken=b77a5c561934e089" Name="FileDetails"&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;TypeDescriptors&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;TypeDescriptor&lt;/span&gt; Name="Name" TypeName="System.String" IdentifierName="FileName" ReadOnly="true" &lt;span style="color: blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;TypeDescriptor&lt;/span&gt; Name="Attributes" TypeName="System.IO.FileAttributes, mscorlib, Version=2.0.0.0, &lt;br /&gt;        Culture=neutral, PublicKeyToken=b77a5c561934e089" ReadOnly="true"&lt;span style="color: blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;TypeDescriptor&lt;/span&gt; Name="LastWriteTimeUtc" TypeName="System.DateTime" ReadOnly="true"&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;Interpretation&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;NormalizeDateTime&lt;/span&gt; LobDateTimeMode="UTC"&lt;span style="color: blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: maroon;"&gt;Interpretation&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: maroon;"&gt;TypeDescriptor&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: maroon;"&gt;TypeDescriptors&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: maroon;"&gt;TypeDescriptor&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: maroon;"&gt;Parameter&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: maroon;"&gt;Parameters&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;MethodInstances&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;MethodInstance&lt;/span&gt; Type="SpecificFinder" ReturnParameterName="FileDetails" Name="FileSystemFinder"&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: blue;"&gt;&amp;lt;!&lt;/span&gt;--&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;AccessControlList&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;AccessControlEntry&lt;/span&gt; Principal="Domain\username"&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon;"&gt;Right&lt;/span&gt; BdcRight="Execute"&lt;span style="color: blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: maroon;"&gt;AccessControlEntry&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: maroon;"&gt;AccessControlList&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;--&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: maroon;"&gt;MethodInstance&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: maroon;"&gt;MethodInstances&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: maroon;"&gt;Method&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;a href="http://www.blogger.com/" id="bkcustomconnector"&gt;&lt;/a&gt;&lt;br /&gt;&lt;h1 class="heading"&gt;Using the Custom Connector&lt;/h1&gt;&lt;div class="section" id="sectionSection3"&gt;The next step is to see the custom connector at work. Before you can do this, you will perform the following series of steps:&lt;br /&gt;&lt;ol class="ordered"&gt;&lt;li&gt;Install the assembly in the global assembly cache.&lt;/li&gt;&lt;li&gt;Import the model.&lt;/li&gt;&lt;li&gt;Create the external list.&lt;/li&gt;&lt;li&gt;Add the files to and remove them from the specified folder.&lt;/li&gt;&lt;/ol&gt;&lt;h4 class="subHeading"&gt;Installing the Assembly in the Global Assembly Cache&lt;/h4&gt;&lt;div class="subSection"&gt;You can install the assembly in the global assembly cache in a few ways, but for the example in this article, simply drag the assembly file to the &lt;code&gt;c:\windows\assembly&lt;/code&gt; folder.&lt;/div&gt;&lt;h4 class="subHeading"&gt;Importing the Model&lt;/h4&gt;&lt;div class="subSection"&gt;Next, use the following steps to import the model from the Central Administration pages.&lt;br /&gt;&lt;h3 class="subHeading"&gt;To import the model from the Central Administration pages&lt;/h3&gt;&lt;div class="subSection"&gt;&lt;ol class="ordered"&gt;&lt;li&gt;&lt;br /&gt;Open SharePoint 2010 Central Administration.&lt;/li&gt;&lt;li&gt;&lt;br /&gt;Under &lt;strong&gt;Application Management&lt;/strong&gt;, select &lt;strong&gt;Manage service applications&lt;/strong&gt;.&lt;/li&gt;&lt;li&gt;&lt;br /&gt;Click the &lt;strong&gt;Business Data Connectivity&lt;/strong&gt; service application.&lt;/li&gt;&lt;li&gt;&lt;br /&gt;Click the &lt;strong&gt;Edit&lt;/strong&gt; tab, and then click &lt;strong&gt;Import&lt;/strong&gt; on the Server ribbon.&lt;/li&gt;&lt;li&gt;&lt;br /&gt;In the &lt;strong&gt;BDC Model File&lt;/strong&gt;, select your model file (in this example, &lt;strong&gt;FileSystemConnector.bdcm&lt;/strong&gt;).&lt;/li&gt;&lt;li&gt;&lt;br /&gt;In &lt;strong&gt;File Type&lt;/strong&gt;, verify that the &lt;strong&gt;model&lt;/strong&gt; option is selected.&lt;/li&gt;&lt;li&gt;&lt;br /&gt;In &lt;strong&gt;Advanced Settings&lt;/strong&gt;, verify that &lt;strong&gt;Localized names&lt;/strong&gt;, &lt;strong&gt;Properties&lt;/strong&gt;, and &lt;strong&gt;Permissions&lt;/strong&gt; are selected.&lt;/li&gt;&lt;li&gt;&lt;br /&gt;Click &lt;strong&gt;Import&lt;/strong&gt;.&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;Now, the model is imported, as shown in Figure 3.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Figure 3. Imported model&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;img alt="Imported model" src="http://i.msdn.microsoft.com/Ff953161.9c9996ed-89b4-45c7-9841-435852797704(en-us,office.14).jpg" /&gt; &lt;br /&gt;Click on the model to discover the external content types, as shown in Figure 4.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Figure 4. External content types&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;img alt="External content types" src="http://i.msdn.microsoft.com/Ff953161.bf7504a2-30d2-46f9-999e-9237fbd7cbd2(en-us,office.14).jpg" /&gt; &lt;/div&gt;&lt;h4 class="subHeading"&gt;Creating the External List&lt;/h4&gt;&lt;div class="subSection"&gt;There are many ways to create the external list. However, this article describes only one way, as shown in the following steps.&lt;br /&gt;&lt;h3 class="subHeading"&gt;To create the external list&lt;/h3&gt;&lt;div class="subSection"&gt;&lt;ol class="ordered"&gt;&lt;li&gt;&lt;br /&gt;Navigate to the site where you want to create the external list.&lt;/li&gt;&lt;li&gt;&lt;br /&gt;On &lt;strong&gt;Site Actions&lt;/strong&gt; menu, click &lt;strong&gt;View All Site Content&lt;/strong&gt;.&lt;/li&gt;&lt;li&gt;&lt;br /&gt;Click &lt;strong&gt;Create&lt;/strong&gt;.&lt;/li&gt;&lt;li&gt;&lt;br /&gt;Select the &lt;strong&gt;External List&lt;/strong&gt; type, and then click &lt;strong&gt;Create&lt;/strong&gt;.&lt;/li&gt;&lt;li&gt;&lt;br /&gt;Name your list, and then click &lt;strong&gt;Select External Content Type&lt;/strong&gt;.&lt;/li&gt;&lt;li&gt;&lt;br /&gt;Click &lt;strong&gt;Create&lt;/strong&gt;.&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;Your external list is now ready to receive information (or files), as shown in Figure 5.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Figure 5. Created external list&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;img alt="Created external list" src="http://i.msdn.microsoft.com/Ff953161.c55450a6-a1a1-4382-89f2-40ae098d699f(en-us,office.14).jpg" /&gt; &lt;/div&gt;&lt;h4 class="subHeading"&gt;Adding or Removing Files&lt;/h4&gt;&lt;div class="subSection"&gt;You add files to or remove files from the &lt;code&gt;c:\testfolder&lt;/code&gt; folder, and the list synchronizes accordingly. Figure 6 shows this list and folder synchronization.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Figure 6. List and folder synchronization&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;img alt="List and directory synchronization" src="http://i.msdn.microsoft.com/Ff953161.fcbadaf0-04db-4ad5-b4b1-2e88bccd699b(en-us,office.14).jpg" /&gt; &lt;/div&gt;&lt;/div&gt;&lt;a href="http://www.blogger.com/" id="bkconclusion"&gt;&lt;/a&gt;&lt;br /&gt;&lt;h1 class="heading"&gt;Conclusion&lt;/h1&gt;&lt;div class="section" id="sectionSection4"&gt;By using Microsoft Business Connectivity Services (BCS), you can connect to many different kinds of external systems. Each kind of external system requires a specific connector. By default, Business Connectivity Services includes connectors to access business data that is exposed through databases and web services. However, some business data might be exposed through other mechanisms, or might require additional processing before Business Connectivity Services can use the data. To solve the simple problems for one external system, Business Connectivity Services also provides the Microsoft .NET Framework assembly connector, where the logic to connect to the external system and any processing is compiled in a simple assembly that exposes functions that Business Connectivity Services can understand. While this set of connectors addresses most of the external systems, they are not always enough. You might need more control on the connections and models, or might have to connect to many different external systems of the same type. These problems are not solved by the .NET Framework assembly connector. However, as described in this article, you can build your own custom connector to solve them.&lt;/div&gt;&lt;a href="http://www.blogger.com/" id="bkaddlresources"&gt;&lt;/a&gt;&lt;br /&gt;&lt;h1 class="heading"&gt;Additional Resources&lt;/h1&gt;&lt;div class="section" id="sectionSection5"&gt;For more information, see the following resources:&lt;br /&gt;&lt;ul&gt;&lt;li class="unordered"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.businessdata.runtime.iadministrablesystem.aspx" id="ctl00_MTCS_main_ctl22" onclick="javascript:Track('ctl00_MTCS_main_ctl00|ctl00_MTCS_main_ctl22',this);"&gt;IAdministrableSystem&lt;/a&gt; &lt;/li&gt;&lt;li class="unordered"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.businessdata.runtime.isystempropertyvalidator.aspx" id="ctl00_MTCS_main_ctl23" onclick="javascript:Track('ctl00_MTCS_main_ctl00|ctl00_MTCS_main_ctl23',this);"&gt;ISystemPropertyValidator&lt;/a&gt; &lt;/li&gt;&lt;li class="unordered"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.businessdata.runtime.isystemutility.aspx" id="ctl00_MTCS_main_ctl24" onclick="javascript:Track('ctl00_MTCS_main_ctl00|ctl00_MTCS_main_ctl24',this);"&gt;ISystemUtility&lt;/a&gt; &lt;/li&gt;&lt;li class="unordered"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ee556387.aspx" id="ctl00_MTCS_main_ctl25" onclick="javascript:Track('ctl00_MTCS_main_ctl00|ctl00_MTCS_main_ctl25',this);"&gt;BDCMetadata Schema&lt;/a&gt; &lt;/li&gt;&lt;li class="unordered"&gt;&lt;a href="http://technet.microsoft.com/en-us/library/ee661740.aspx" id="ctl00_MTCS_main_ctl26" onclick="javascript:Track('ctl00_MTCS_main_ctl00|ctl00_MTCS_main_ctl26',this);" target="_blank"&gt;Business Connectivity Services Overview (SharePoint Server 2010)&lt;/a&gt; &lt;/li&gt;&lt;li class="unordered"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ee558876.aspx" id="ctl00_MTCS_main_ctl27" onclick="javascript:Track('ctl00_MTCS_main_ctl00|ctl00_MTCS_main_ctl27',this);"&gt;BDC Architecture&lt;/a&gt; &lt;/li&gt;&lt;li class="unordered"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ee559296.aspx" id="ctl00_MTCS_main_ctl28" onclick="javascript:Track('ctl00_MTCS_main_ctl00|ctl00_MTCS_main_ctl28',this);"&gt;Sample BDC Model&lt;/a&gt; &lt;/li&gt;&lt;li class="unordered"&gt;&lt;a href="http://msdn.microsoft.com/sharepoint/default.aspx" id="ctl00_MTCS_main_ctl29" onclick="javascript:Track('ctl00_MTCS_main_ctl00|ctl00_MTCS_main_ctl29',this);" target="_blank"&gt;SharePoint Developer Center&lt;/a&gt; &lt;/li&gt;&lt;li class="unordered"&gt;&lt;a href="http://msdn.microsoft.com/sharepoint/ff660755.aspx" id="ctl00_MTCS_main_ctl30" onclick="javascript:Track('ctl00_MTCS_main_ctl00|ctl00_MTCS_main_ctl30',this);" target="_blank"&gt;BCS Resource Center | SharePoint 2010&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5591885701432628793-1475657538038481330?l=blog.reversingmotions.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.reversingmotions.com/feeds/1475657538038481330/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.reversingmotions.com/2010/08/creating-custom-business-connectivity.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/1475657538038481330'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/1475657538038481330'/><link rel='alternate' type='text/html' href='http://blog.reversingmotions.com/2010/08/creating-custom-business-connectivity.html' title='Creating Custom Business Connectivity Services Connectors Using SharePoint Server 2010'/><author><name>Moez Tounsi</name><uri>https://profiles.google.com/112395018233684788902</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-7J1Be4Pf7gA/AAAAAAAAAAI/AAAAAAAAAJ4/3Wf7Ljaf8Ik/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5591885701432628793.post-6411729833010317834</id><published>2010-08-27T11:06:00.000+01:00</published><updated>2010-10-06T16:54:23.182+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET 1.0/1.1/2.0/3.5/4.0'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='Office'/><title type='text'>Merging Word Documents on the Server Side with SharePoint 2010</title><content type='html'>&lt;div id="MainContent" style="width: 100%;"&gt;&lt;div class="navpage"&gt;&lt;div class="MagazineStyle"&gt;&lt;div class="FeatureTitle"&gt;&lt;h2&gt;Office Services&lt;/h2&gt;&lt;h1&gt;Merging Word Documents on the Server Side with SharePoint 2010&lt;/h1&gt;&lt;h3&gt;&lt;a href="http://msdn.microsoft.com/en-us/magazine/ee532098.aspx?sdmr=ManvirSingh&amp;amp;sdmi=authors"&gt;Ankush Bhatia&lt;/a&gt; and&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/magazine/ee532098.aspx?sdmr=AnkushBhatia&amp;amp;sdmi=authors"&gt;Manvir Singh&lt;/a&gt;&lt;/h3&gt;&lt;a href="http://code.msdn.microsoft.com/mag201007DocMerge"&gt;&lt;strong&gt;Download the Code Sample&lt;/strong&gt;&lt;/a&gt;&lt;/div&gt;Business application developers must often create solutions that automate day-to-day&lt;br /&gt;activities for their organizations. These activities typically involve processing&lt;br /&gt;and manipulating data in various documents—for example, extracting and consolidating&lt;br /&gt;data from multiple source documents, merging data into e-mail messages, searching&lt;br /&gt;and replacing content in documents, recalculating data in workbooks, extracting&lt;br /&gt;images from presentations ... and the list goes on and on.&lt;br /&gt;Microsoft Office makes these kinds of repetitive tasks simpler by providing a rich&lt;br /&gt;API that developers can use to automate them. Because such solutions work seamlessly&lt;br /&gt;for normal desktop users, developers have taken them to the next level: deploying&lt;br /&gt;the solutions to servers that provide a central point where all of this repetitive&lt;br /&gt;work can be addressed for multiple users without any human intervention.&lt;br /&gt;Although moving solutions that complete repetitive Office tasks from the desktop&lt;br /&gt;to a server seems straightforward, it’s not quite as simple as it sounds.&lt;br /&gt;Microsoft designed the Office application suite for desktop computer scenarios where&lt;br /&gt;a user is logged on to a machine and is sitting in front of it. For reasons of security,&lt;br /&gt;performance and reliability, Office applications are not the right tools for server-side&lt;br /&gt;scenarios. Office applications in a server environment may require manual intervention,&lt;br /&gt;and that’s not optimal for a server-side solution. Microsoft recommends avoiding&lt;br /&gt;this kind of solution, as explained in the Microsoft Support article, “&lt;a href="http://support.microsoft.com/kb/257757"&gt;Considerations for server-side Automation&lt;br /&gt;of Office&lt;/a&gt;”.&lt;br /&gt;Since the release of Office 2007, however, the Office automation story has changed&lt;br /&gt;a great deal. With Office 2007 Microsoft introduced Office OpenXML and Excel Services&lt;br /&gt;for developers who would like to develop Office-based solutions on the server.&lt;br /&gt;With Office 2010 and SharePoint 2010, Microsoft has come up with a new set of components&lt;br /&gt;called Application Services. These put a rich set of tools in a developer’s bag&lt;br /&gt;for Office automation solutions. Application Services include Excel Services, Word&lt;br /&gt;Automation Services, InfoPath Forms Services, PerformancePoint Services and Visio&lt;br /&gt;Services. You can learn more about the details of these services at &lt;a href="http://msdn.microsoft.com/en-us/magazine/library/ee559367.aspx"&gt;msdn.microsoft.com/library/ee559367(v=office.14)&lt;/a&gt;.&lt;br /&gt;In this article, we will show you how to use Office OpenXML, Word Automation Services&lt;br /&gt;and SharePoint to build a simple application that merges separate status reports&lt;br /&gt;into a single document.&lt;br /&gt;&lt;h2&gt;Status Report Workflow&lt;/h2&gt;Let’s say you’re a developer working at a services-oriented company in which many&lt;br /&gt;projects are managed by different teams. Every week, each project manager uses a&lt;br /&gt;common template to create a weekly status report and upload it to an internal SharePoint&lt;br /&gt;repository. Now your Group Manger wants to get a consolidated report that will contain&lt;br /&gt;all of these of weekly status reports and, guess what, you are the chosen one who&lt;br /&gt;has to implement this requirement.&lt;br /&gt;You’re lucky, though. As we mentioned earlier, your life is easier today because&lt;br /&gt;you can implement this requirement with much less effort using OpenXML and Word&lt;br /&gt;Automation Services. You’ll be able to produce a more robust and stable solution&lt;br /&gt;than you could have without these technologies.&lt;br /&gt;Let’s start by visualizing the solution. &lt;strong&gt;Figure 1&lt;/strong&gt; shows a proposed&lt;br /&gt;workflow. The process kicks off with individual project managers filling out status&lt;br /&gt;reports and uploading them to SharePoint on the server. The Group Manager can then&lt;br /&gt;initiate the process of merging any reports stored on the server and generating&lt;br /&gt;a combined report.&lt;br /&gt;&lt;img align="middle" alt="Figure 1 Workflow for Generating a Status Report" src="http://i.msdn.microsoft.com/ff797985.Singh_Figure1_hires(en-us,MSDN.10).png" title="Figure 1 Workflow for Generating a Status Report" /&gt;&lt;br /&gt;Figure 1 &lt;strong&gt;Workflow for Generating a Status Report&lt;/strong&gt;&lt;br /&gt;&lt;h2&gt;Building a Template&lt;/h2&gt;To implement this solution, the first step is to provide a common template to all&lt;br /&gt;the project managers for filling out the weekly status reports. When they finish&lt;br /&gt;filling in the data, they’ll upload the reports to a SharePoint repository. On Monday&lt;br /&gt;morning, the Group Manager can then log into the SharePoint site and fire up the&lt;br /&gt;logic that performs the following tasks:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Reads all of the individual status report documents.&lt;/li&gt;&lt;li&gt;Merges them into a single report.&lt;/li&gt;&lt;li&gt;Saves the report in the repository for users to access.&lt;/li&gt;&lt;/ol&gt;&lt;strong&gt;Figure 2&lt;/strong&gt; shows what the status report template will look like (let’s&lt;br /&gt;call it WeeklyStatusReport.dotx). As you can see, the template includes fields to&lt;br /&gt;capture a title, dates, the project manager’s name, milestones and associated data,&lt;br /&gt;and text fields for entering details about accomplishments, future plans and problems.&lt;br /&gt;In this case we’ve used text fields and the date picker control for simplicity,&lt;br /&gt;but you could easily use drop-down lists, check boxes or a variety of other controls&lt;br /&gt;to streamline data entry.&lt;br /&gt;&lt;img align="middle" alt="Figure 2 Weekly Status Report Template" src="http://i.msdn.microsoft.com/ff797985.Singh_Figure2_hires(en-us,MSDN.10).png" title="Figure 2 Weekly Status Report Template" /&gt;&lt;br /&gt;Figure 2 &lt;strong&gt;Weekly Status Report Template&lt;/strong&gt;&lt;br /&gt;&lt;h2&gt;The Document Library&lt;/h2&gt;The next step is to create a custom document library that hosts the weekly status&lt;br /&gt;reports based on this template.&lt;br /&gt;In the SharePoint navigation pane, click Libraries and then Create to create a new&lt;br /&gt;library. In the Create dialog, filter by Library, select Document Library and type&lt;br /&gt;a name for the library (we used WSR Library). Now click Create.&lt;br /&gt;Now you need to create a content type for the new library. Click Site Actions, then&lt;br /&gt;Site Settings, and under the Galleries section, click Site content types. Click&lt;br /&gt;Create and then type a name for the content type (we used Weekly Status Report).&lt;br /&gt;In the Select Parent Content Type From list, select Document Content Types. In the&lt;br /&gt;Parent Content type list, select Document and click OK.&lt;br /&gt;Under Settings, select Advanced Settings, then choose the “Upload a new document&lt;br /&gt;template” radio button and click Browse. Find the report template (WeeklyStatusReport.dotx)&lt;br /&gt;and upload it to the library.&lt;br /&gt;Next, go to WSR Library and select Library Settings. Under General Settings, select&lt;br /&gt;Advanced Settings. Select Yes for “Allow management of content types,” then click&lt;br /&gt;OK.&lt;br /&gt;You’ll see a list of Content types shown on the library setting page. Select the&lt;br /&gt;“Add from Existing Site Content Types” link. Select the content type you created&lt;br /&gt;earlier in the available site content types list. In my example, this is Weekly&lt;br /&gt;Status Report. Click Add, and click OK.&lt;br /&gt;Again from the content types list, click on Document and select “Delete this content&lt;br /&gt;type.” Select OK in the warning message box.&lt;br /&gt;Now you should see your content type when you select New Document in your WSR Library,&lt;br /&gt;as shown in &lt;strong&gt;Figure 3&lt;/strong&gt;.&lt;br /&gt;&lt;img align="middle" alt="Figure 3 Selecting the Custom Content Type" src="http://i.msdn.microsoft.com/ff797985.Singh_Figure3_hires(en-us,MSDN.10).png" title="Figure 3 Selecting the Custom Content Type" /&gt;&lt;br /&gt;&lt;br /&gt;Figure 3 &lt;strong&gt;Selecting the Custom Content Type&lt;/strong&gt;&lt;br /&gt;At this point you can go ahead and add a couple of status reports to the document&lt;br /&gt;library.&lt;br /&gt;&lt;h2&gt;Creating the Web Part&lt;/h2&gt;Next, you need to enable a Group Manager to kick off the consolidation logic. You&lt;br /&gt;can do this via a button at the bottom of the default view of the document library.&lt;br /&gt;There are two steps involved here. First, you’ll create a Visual Web Part using&lt;br /&gt;Visual Studio 2010. Second, you’ll add the Web Part to the document library using&lt;br /&gt;SharePoint Designer 2010.&lt;br /&gt;To create a custom Web Part, start a new project in Visual Studio 2010 using the&lt;br /&gt;Visual Web Part project template. Give the project a name such as DocumentMerge,&lt;br /&gt;then click OK.&lt;br /&gt;In the SharePoint Customization Wizard page, select your Web application (the URL&lt;br /&gt;to the SharePoint site hosting your document library), then click Finish.&lt;br /&gt;Once the project is created, open the VisualWebPart1.cs file and modify the CreateChildControls&lt;br /&gt;method with the following code:&lt;br /&gt;&lt;span id="ctl00_MTContentSelector1_mainContentContainer_ctl06"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="libCScode" id="ctl00_MTContentSelector1_mainContentContainer_ctl06_"&gt;&lt;div class="CodeSnippetTitleBar"&gt;&lt;div class="CodeDisplayLanguage"&gt;&lt;/div&gt;&lt;div class="CopyCodeButton"&gt;&lt;a class="copyCode" href="javascript:CopyCode('ctl00_MTContentSelector1_mainContentContainer_ctl06_code');" title="Copy Code"&gt;&lt;/a&gt;&lt;br /&gt;&lt;div align="center" class="LibC_copy_off" style="border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; height: 9px; width: auto;"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div dir="ltr" style="background-color: #dddddd;"&gt;&lt;pre class="libCScode" id="ctl00_MTContentSelector1_mainContentContainer_ctl06_code" space="preserve"&gt;protected override void CreateChildControls() {&lt;br /&gt;  Control control = Page.LoadControl(_ascxPath);&lt;br /&gt;  Controls.Add(control);&lt;br /&gt;  base.CreateChildControls();&lt;br /&gt;  Button btnSubmit = new Button();&lt;br /&gt;  btnSubmit.Text = "Merge Reports";&lt;br /&gt;  btnSubmit.Click += new EventHandler(OnSubmitClick);&lt;br /&gt;  Controls.Add(btnSubmit);&lt;br /&gt;}&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Also add an event handler for the button click:&lt;br /&gt;&lt;span id="ctl00_MTContentSelector1_mainContentContainer_ctl07"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="libCScode" id="ctl00_MTContentSelector1_mainContentContainer_ctl07_"&gt;&lt;div class="CodeSnippetTitleBar"&gt;&lt;div class="CodeDisplayLanguage"&gt;&lt;/div&gt;&lt;div class="CopyCodeButton"&gt;&lt;a class="copyCode" href="javascript:CopyCode('ctl00_MTContentSelector1_mainContentContainer_ctl07_code');" title="Copy Code"&gt;&lt;/a&gt;&lt;br /&gt;&lt;div align="center" class="LibC_copy_off" style="border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; height: 9px; width: auto;"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div dir="ltr" style="background-color: #dddddd;"&gt;&lt;pre class="libCScode" id="ctl00_MTContentSelector1_mainContentContainer_ctl07_code" space="preserve"&gt;void OnSubmitClick(object sender, EventArgs e) {&lt;br /&gt;  // TODO : Put code to merge documents here&lt;br /&gt;}&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;At this point you can build and deploy your project. We will add the implementation&lt;br /&gt;to our OnSubmitClick handler a bit later in this article.&lt;br /&gt;The next step is to add the Web Part to the document library. In SharePoint Designer&lt;br /&gt;2010, open the SharePoint site. Click All Files | WSR Library | Forms, then click&lt;br /&gt;on AllItems.aspx to edit it.&lt;br /&gt;Click the bottom of the page. Click Insert | Web Part, and then select More Web&lt;br /&gt;Parts. In the search box, type VisualWebPart (the name of the Web Part you just&lt;br /&gt;created and deployed), and click OK (see &lt;strong&gt;Figure 4&lt;/strong&gt;). &lt;strong&gt;Figure&lt;br /&gt;5&lt;/strong&gt; shows the page with the Web Part in place. Save the page and close&lt;br /&gt;SharePoint Designer.&lt;br /&gt;&lt;img align="middle" alt="Figure 4 Inserting the Web Part" src="http://i.msdn.microsoft.com/ff797985.Singh_Figure4_hires(en-us,MSDN.10).png" title="Figure 4 Inserting the Web Part" /&gt;&lt;br /&gt;Figure 4 &lt;strong&gt;Inserting the Web Part&lt;/strong&gt;&lt;br /&gt;&lt;img align="middle" alt="Figure 5 The Web Part in Place on the Page" src="http://i.msdn.microsoft.com/ff797985.Singh_Figure5_hires(en-us,MSDN.10).png" title="Figure 5 The Web Part in Place on the Page" /&gt;&lt;br /&gt;Figure 5 &lt;strong&gt;The Web Part in Place on the Page&lt;/strong&gt;&lt;br /&gt;&lt;h2&gt;Merging the Reports&lt;/h2&gt;Now, let’s add the logic to merge the uploaded documents in the document library.&lt;br /&gt;For simplicity, this code will merge all the documents uploaded to this folder into&lt;br /&gt;a single file. A more realistic approach would be to merge only selected items or&lt;br /&gt;only items uploaded in a specified time period. You could also save the merged document&lt;br /&gt;to a different location or different library. This is when we’ll add the implementation&lt;br /&gt;to our OnSubmitClick handler of our VisualWebPart project in Visual Studio 2010.&lt;br /&gt;In the OnSubmitClick handler of the Web Part, you need to provide logic for reading&lt;br /&gt;the reports that were uploaded to the document library, generating an empty OpenXML&lt;br /&gt;document, and merging the reports into the new document.&lt;br /&gt;First, you need to read any documents in the current library. You can loop through&lt;br /&gt;the SPListItemCollection of the current SPContext, reading each file into a byte&lt;br /&gt;array using the SPFile.OpenBinary API:&lt;br /&gt;&lt;br /&gt;&lt;span id="ctl00_MTContentSelector1_mainContentContainer_ctl08"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="libCScode" id="ctl00_MTContentSelector1_mainContentContainer_ctl08_"&gt;&lt;div class="CodeSnippetTitleBar"&gt;&lt;div class="CodeDisplayLanguage"&gt;&lt;/div&gt;&lt;div class="CopyCodeButton"&gt;&lt;a class="copyCode" href="javascript:CopyCode('ctl00_MTContentSelector1_mainContentContainer_ctl08_code');" title="Copy Code"&gt;&lt;/a&gt;&lt;br /&gt;&lt;div align="center" class="LibC_copy_off" style="border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; height: 9px; width: auto;"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div dir="ltr" style="background-color: #dddddd;"&gt;&lt;pre class="libCScode" id="ctl00_MTContentSelector1_mainContentContainer_ctl08_code" space="preserve"&gt;SPListItemCollection files = SPContext.Current.List.Items;&lt;br /&gt;  foreach (SPListItem item in files) {&lt;br /&gt;    SPFile inputFile = item.File;&lt;br /&gt;    byte[] byteArray = &lt;br /&gt;      inputFile.OpenBinary();&lt;br /&gt;&lt;br /&gt;    // process each byte array &lt;br /&gt;  }&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Next, generate the empty OpenXML document. This requires generating the document&lt;br /&gt;in memory using a MemoryStream because the OpenXML SDK does not let you save documents&lt;br /&gt;to a URI. Instead, the MemoryStream object can dump the document into the library&lt;br /&gt;as a new file. The code for creating the file is shown in &lt;strong&gt;Figure 6&lt;/strong&gt;.&lt;br /&gt;Figure 6 &lt;strong&gt;Creating a New File for the Merged Report&lt;/strong&gt;&lt;br /&gt;&lt;span id="ctl00_MTContentSelector1_mainContentContainer_ctl09"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="libCScode" id="ctl00_MTContentSelector1_mainContentContainer_ctl09_"&gt;&lt;div class="CodeSnippetTitleBar"&gt;&lt;div class="CodeDisplayLanguage"&gt;&lt;/div&gt;&lt;div class="CopyCodeButton"&gt;&lt;a class="copyCode" href="javascript:CopyCode('ctl00_MTContentSelector1_mainContentContainer_ctl09_code');" title="Copy Code"&gt;&lt;/a&gt;&lt;br /&gt;&lt;div align="center" class="LibC_copy_off" style="border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; height: 9px; width: auto;"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div dir="ltr" style="background-color: #dddddd;"&gt;&lt;pre class="libCScode" id="ctl00_MTContentSelector1_mainContentContainer_ctl09_code" space="preserve"&gt;// String containing the blank document part for our new DOCX&lt;br /&gt;string strEmptyMainPart = &lt;br /&gt;  "&amp;lt;?xml version='1.0' encoding='UTF-8' standalone='yes'?&amp;gt;" +&lt;br /&gt;  "&amp;lt;w:document xmlns:w='http://schemas.openxmlformats.org/wordprocessingml/2006/main'&amp;gt;" +&lt;br /&gt;  "&amp;lt;w:body&amp;gt;&amp;lt;w:p&amp;gt;&amp;lt;w:r&amp;gt;&amp;lt;w:t&amp;gt;&amp;lt;/w:t&amp;gt;&amp;lt;/w:r&amp;gt;&amp;lt;/w:p&amp;gt;&amp;lt;/w:body&amp;gt;&amp;lt;/w:document&amp;gt;";&lt;br /&gt;&lt;br /&gt;// In-memory stream for our consolidated DOCX.&lt;br /&gt;MemoryStream memOut = new MemoryStream();&lt;br /&gt;&lt;br /&gt;// Output document's OpenXML object&lt;br /&gt;WordprocessingDocument outputDoc = &lt;br /&gt;  WordprocessingDocument.Create(memOut, &lt;br /&gt;  DocumentFormat.OpenXml.WordprocessingDocumentType.Document);&lt;br /&gt;&lt;br /&gt;MainDocumentPart mainPart = outputDoc.AddMainDocumentPart();&lt;br /&gt;&lt;br /&gt;Stream partStream = mainPart.GetStream();&lt;br /&gt;UTF8Encoding encoder = new UTF8Encoding();&lt;br /&gt;&lt;br /&gt;// Add blank main part string to the newly created document&lt;br /&gt;Byte[] buffer = encoder.GetBytes(strEmptyMainPart);&lt;br /&gt;partStream.Write(buffer, 0, buffer.Length);&lt;br /&gt;&lt;br /&gt;// Save the document in memory&lt;br /&gt;mainPart.Document.Save();&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Note that you need to add DocumentFormat.OpenXml.dll and WindowsBase.dll in the&lt;br /&gt;references and the corresponding using statements to the code:&lt;br /&gt;&lt;span id="ctl00_MTContentSelector1_mainContentContainer_ctl10"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="libCScode" id="ctl00_MTContentSelector1_mainContentContainer_ctl10_"&gt;&lt;div class="CodeSnippetTitleBar"&gt;&lt;div class="CodeDisplayLanguage"&gt;&lt;/div&gt;&lt;div class="CopyCodeButton"&gt;&lt;a class="copyCode" href="javascript:CopyCode('ctl00_MTContentSelector1_mainContentContainer_ctl10_code');" title="Copy Code"&gt;&lt;/a&gt;&lt;br /&gt;&lt;div align="center" class="LibC_copy_off" style="border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; height: 9px; width: auto;"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div dir="ltr" style="background-color: #dddddd;"&gt;&lt;pre class="libCScode" id="ctl00_MTContentSelector1_mainContentContainer_ctl10_code" space="preserve"&gt;using DocumentFormat.OpenXml.Packaging;&lt;br /&gt;using DocumentFormat.OpenXml.Wordprocessing;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;The next step is to implement the logic for saving the merged document to the library&lt;br /&gt;as a new document. This requires a bit of effort, but you can make it easier by&lt;br /&gt;using the SharePoint Managed Client Object Model. You’ll need to add two references&lt;br /&gt;to the project, Microsoft.SharePoint.Client.dll and Microsoft.SharePoint.Client.Runtime.dll,&lt;br /&gt;which are found in the following folder:&lt;br /&gt;&lt;span id="ctl00_MTContentSelector1_mainContentContainer_ctl11"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="libCScode" id="ctl00_MTContentSelector1_mainContentContainer_ctl11_"&gt;&lt;div class="CodeSnippetTitleBar"&gt;&lt;div class="CodeDisplayLanguage"&gt;&lt;/div&gt;&lt;div class="CopyCodeButton"&gt;&lt;a class="copyCode" href="javascript:CopyCode('ctl00_MTContentSelector1_mainContentContainer_ctl11_code');" title="Copy Code"&gt;&lt;/a&gt;&lt;br /&gt;&lt;div align="center" class="LibC_copy_off" style="border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; height: 9px; width: auto;"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div dir="ltr" style="background-color: #dddddd;"&gt;&lt;pre class="libCScode" id="ctl00_MTContentSelector1_mainContentContainer_ctl11_code" space="preserve"&gt;%ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\ISAPI&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Create a new document in the SharePoint library with this code:&lt;br /&gt;&lt;span id="ctl00_MTContentSelector1_mainContentContainer_ctl12"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="libCScode" id="ctl00_MTContentSelector1_mainContentContainer_ctl12_"&gt;&lt;div class="CodeSnippetTitleBar"&gt;&lt;div class="CodeDisplayLanguage"&gt;&lt;/div&gt;&lt;div class="CopyCodeButton"&gt;&lt;a class="copyCode" href="javascript:CopyCode('ctl00_MTContentSelector1_mainContentContainer_ctl12_code');" title="Copy Code"&gt;&lt;/a&gt;&lt;br /&gt;&lt;div align="center" class="LibC_copy_off" style="border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; height: 9px; width: auto;"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div dir="ltr" style="background-color: #dddddd;"&gt;&lt;pre class="libCScode" id="ctl00_MTContentSelector1_mainContentContainer_ctl12_code" space="preserve"&gt;ClientContext clientContext = &lt;br /&gt;  new ClientContext(SPContext.Current.Site.Url);&lt;br /&gt;ClientOM.File.SaveBinaryDirect(clientContext, &lt;br /&gt;  outputPath, memOut, true);&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;For these instructions to work, you’ll need the following using statements in the&lt;br /&gt;source file:&lt;br /&gt;&lt;span id="ctl00_MTContentSelector1_mainContentContainer_ctl13"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="libCScode" id="ctl00_MTContentSelector1_mainContentContainer_ctl13_"&gt;&lt;div class="CodeSnippetTitleBar"&gt;&lt;div class="CodeDisplayLanguage"&gt;&lt;/div&gt;&lt;div class="CopyCodeButton"&gt;&lt;a class="copyCode" href="javascript:CopyCode('ctl00_MTContentSelector1_mainContentContainer_ctl13_code');" title="Copy Code"&gt;&lt;/a&gt;&lt;br /&gt;&lt;div align="center" class="LibC_copy_off" style="border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; height: 9px; width: auto;"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div dir="ltr" style="background-color: #dddddd;"&gt;&lt;pre class="libCScode" id="ctl00_MTContentSelector1_mainContentContainer_ctl13_code" space="preserve"&gt;using Microsoft.SharePoint.Client;&lt;br /&gt;using ClientOM = Microsoft.SharePoint.Client;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;h2&gt;Making the Document Searchable&lt;/h2&gt;At this point you have the logic in place to generate fully functional consolidated&lt;br /&gt;documents on the server when a user clicks the Merge Reports button.&lt;br /&gt;However, there’s one small catch: the generated document is not compatible with&lt;br /&gt;the SharePoint crawling mechanism because it contains OpenXML altChunk markup. This&lt;br /&gt;is a by-product of merging the reports into the blank document using the code we&lt;br /&gt;showed you earlier. The altChunks get replaced with original content when a document&lt;br /&gt;is opened in Word.&lt;br /&gt;With the new Word Automation Services in SharePoint 2010, this task can be performed&lt;br /&gt;programmatically using ConversionJob class. This class is part of the Microsoft.Office.Word.Server.dll&lt;br /&gt;assembly, so add the reference to this assembly to the project manually. Once you’ve&lt;br /&gt;added this reference, you can use the code in &lt;strong&gt;Figure 7&lt;/strong&gt; to perform&lt;br /&gt;conversion of the altChunks.&lt;br /&gt;Figure 7 &lt;strong&gt;Converting altChunks in the Merged Document&lt;/strong&gt;&lt;br /&gt;&lt;span id="ctl00_MTContentSelector1_mainContentContainer_ctl14"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="libCScode" id="ctl00_MTContentSelector1_mainContentContainer_ctl14_"&gt;&lt;div class="CodeSnippetTitleBar"&gt;&lt;div class="CodeDisplayLanguage"&gt;&lt;/div&gt;&lt;div class="CopyCodeButton"&gt;&lt;a class="copyCode" href="javascript:CopyCode('ctl00_MTContentSelector1_mainContentContainer_ctl14_code');" title="Copy Code"&gt;&lt;/a&gt;&lt;br /&gt;&lt;div align="center" class="LibC_copy_off" style="border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; height: 9px; width: auto;"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div dir="ltr" style="background-color: #dddddd;"&gt;&lt;pre class="libCScode" id="ctl00_MTContentSelector1_mainContentContainer_ctl14_code" space="preserve"&gt;string docPath = string.Format(@"{0}{1}", &lt;br /&gt;  SPContext.Current.Site.Url.Replace(@"\\", ""), &lt;br /&gt;  outputPath);&lt;br /&gt;            &lt;br /&gt;ConversionJobSettings JobSettings = &lt;br /&gt;  new ConversionJobSettings();&lt;br /&gt;JobSettings.OutputFormat = SaveFormat.Document;&lt;br /&gt;JobSettings.OutputSaveBehavior = &lt;br /&gt;  SaveBehavior.AlwaysOverwrite;&lt;br /&gt;&lt;br /&gt;ConversionJob ConvJob = new ConversionJob(&lt;br /&gt;  "Word Automation Services", JobSettings);&lt;br /&gt;ConvJob.UserToken = SPContext.Current.Site.UserToken;&lt;br /&gt;ConvJob.AddFile(docPath, docPath);&lt;br /&gt;ConvJob.Start();&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;See the code download for this article for additional details of the solution, which&lt;br /&gt;you can use as the basis of your own reporting system.&lt;br /&gt;&lt;h2&gt;Final Steps&lt;/h2&gt;In order to test this code, we modified our SharePoint server’s configuration to&lt;br /&gt;run the Automation Service after one minute of getting a run request. By default,&lt;br /&gt;this interval is set to five minutes, and we didn’t want to wait that long for our&lt;br /&gt;conversion to happen.&lt;br /&gt;If you’d like to change this setting, you can set it in SharePoint Central Administration&lt;br /&gt;under Application Management | Manage Service Applications | Word Automation Services,&lt;br /&gt;and set the Frequency to start conversions under Conversion Throughput to one minute.&lt;br /&gt;The final generated report contains all the weekly status reports you created, merged&lt;br /&gt;into a single new document with each of the individual reports stacked one after&lt;br /&gt;the other.&lt;br /&gt;And that’s it. In a future article we’ll take the concept of server-side merging&lt;br /&gt;of document contents to the next level. We’ll show you how to implement a mail-merge&lt;br /&gt;type of scenario on the server side, again using Office 2010, SharePoint 2010 and&lt;br /&gt;Visual Studio 2010. Until then, happy coding.&lt;br /&gt;For more information on Office 2010 and SharePoint 2010, see the &lt;a href="http://www.blogger.com/office" id="ctl00_MTContentSelector1_mainContentContainer_ctl15" onclick="javascript:Track('ctl00_MTContentSelector1_mainContentContainer_ctl00|ctl00_MTContentSelector1_mainContentContainer_ctl15',this);"&gt;Office&lt;/a&gt; and &lt;a href="http://www.blogger.com/sharepoint" id="ctl00_MTContentSelector1_mainContentContainer_ctl16" onclick="javascript:Track('ctl00_MTContentSelector1_mainContentContainer_ctl00|ctl00_MTContentSelector1_mainContentContainer_ctl16',this);"&gt;SharePoint&lt;/a&gt; developer centers. Information about Office&lt;br /&gt;OpenXML can be found at &lt;a href="http://www.blogger.com/library/bb448854.aspx" id="ctl00_MTContentSelector1_mainContentContainer_ctl17" onclick="javascript:Track('ctl00_MTContentSelector1_mainContentContainer_ctl00|ctl00_MTContentSelector1_mainContentContainer_ctl17',this);"&gt;msdn.microsoft.com/library/bb448854&lt;/a&gt;, and you&lt;br /&gt;can read about Word Automation Services at &lt;a href="http://www.blogger.com/library/ee558278(v=office.14).aspx" id="ctl00_MTContentSelector1_mainContentContainer_ctl18" onclick="javascript:Track('ctl00_MTContentSelector1_mainContentContainer_ctl00|ctl00_MTContentSelector1_mainContentContainer_ctl18',this);"&gt;msdn.microsoft.com/library/ee558278(v=office.14)&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5591885701432628793-6411729833010317834?l=blog.reversingmotions.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.reversingmotions.com/feeds/6411729833010317834/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.reversingmotions.com/2010/08/merging-word-documents-on-server-side.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/6411729833010317834'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/6411729833010317834'/><link rel='alternate' type='text/html' href='http://blog.reversingmotions.com/2010/08/merging-word-documents-on-server-side.html' title='Merging Word Documents on the Server Side with SharePoint 2010'/><author><name>Moez Tounsi</name><uri>https://profiles.google.com/112395018233684788902</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-7J1Be4Pf7gA/AAAAAAAAAAI/AAAAAAAAAJ4/3Wf7Ljaf8Ik/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5591885701432628793.post-1735314360329034429</id><published>2010-08-26T16:08:00.002+01:00</published><updated>2010-10-06T16:55:02.491+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET 1.0/1.1/2.0/3.5/4.0'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='CRM'/><title type='text'>C5: Sneak Peek Webinar of Microsoft Dynamics CRM 2011</title><content type='html'>&lt;a href="http://www.successaccelerators.com/EventListPage/EventRegistration/tabid/1140/Default.aspx?id=e8af7350-134b-df11-aef6-000d56bb6400&amp;amp;utm_source=feedburner&amp;amp;utm_medium=feed&amp;amp;utm_campaign=Feed%3A+SuccessAcceleratorsWebcasts+%28Upcoming+Success+Accelerators+Events+-+Webcasts%29"&gt;&lt;img align="right" alt="image" border="0" height="56" src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-44-63-metablogapi/0640.image_5F00_3.png" style="border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; margin: 0px 0px 0px 7px;" title="image" width="174" /&gt;&lt;/a&gt; C5 Insight announces a &lt;a href="http://www.successaccelerators.com/EventListPage/EventRegistration/tabid/1140/Default.aspx?id=e8af7350-134b-df11-aef6-000d56bb6400&amp;amp;utm_source=feedburner&amp;amp;utm_medium=feed&amp;amp;utm_campaign=Feed%3A+SuccessAcceleratorsWebcasts+%28Upcoming+Success+Accelerators+Events+-+Webcasts%29"&gt;sneak peek at Microsoft Dynamics CRM 2011 via a Webinar&lt;/a&gt;. You'll learn how the product is better integrated with Outlook, Office, SharePoint and - most importantly - how it will integrate with your staff to enable them to outcompete your rivals.&lt;br /&gt;&lt;blockquote&gt;&lt;strong&gt;Who:&lt;/strong&gt; &lt;a href="http://www.c5insight.com/"&gt;C5 Insight&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;What:&lt;/strong&gt; Microsoft is changing the game with the release of CRM 2011. Attend this session for a sneak peek at Microsoft Dynamics CRM 2011 to start getting your business ready.&lt;br /&gt;&lt;strong&gt;When:&lt;/strong&gt; Thursday, September 30, 2010 12:00 PM - 1:30 PM EST&lt;br /&gt;&lt;strong&gt;Where:&lt;/strong&gt; Online&lt;br /&gt;&lt;strong&gt;How Much:&lt;/strong&gt; Free&lt;br /&gt;&lt;strong&gt;Event Type:&lt;/strong&gt; Webcast&lt;/blockquote&gt;If you're using an earlier version of CRM, you'll want to attend this session to see how CRM 5.0 will accelerate the performance of your sales, marketing and call center staff. &lt;br /&gt;If you're not using Microsoft Dynamics CRM yet, you'll want to attend this session to see how the next step in CRM is making this breakthrough technology available to organizations of all sizes.&lt;br /&gt;&lt;br /&gt;Note that : &lt;br /&gt;&lt;blockquote&gt;Microsoft announced the next release will be available in the second half of 2010. This version is still in the final Community Technology Preview phase, and features a few notable changes:&lt;br /&gt;Native integration with WSS 3.0 (Cool)&lt;br /&gt;Ability to create a query behind a lookup&lt;br /&gt;Placing of a grid with child records on the parent record&lt;br /&gt;Autofilter sorting capability like in Microsoft Office Excel&lt;br /&gt;Microsoft Office Ribbon interface replaces menus&lt;br /&gt;OData endpoint&lt;br /&gt;LINQ programming API in the SDK&lt;br /&gt;The Microsoft Dynamics CRM 2011 online beta will be available in September 2010.&lt;/blockquote&gt;&lt;div style="text-align: right;"&gt;&lt;em&gt;Wikipedia&lt;/em&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5591885701432628793-1735314360329034429?l=blog.reversingmotions.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.reversingmotions.com/feeds/1735314360329034429/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.reversingmotions.com/2010/08/c5-sneak-peek-webinar-of-microsoft.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/1735314360329034429'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/1735314360329034429'/><link rel='alternate' type='text/html' href='http://blog.reversingmotions.com/2010/08/c5-sneak-peek-webinar-of-microsoft.html' title='C5: Sneak Peek Webinar of Microsoft Dynamics CRM 2011'/><author><name>Moez Tounsi</name><uri>https://profiles.google.com/112395018233684788902</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-7J1Be4Pf7gA/AAAAAAAAAAI/AAAAAAAAAJ4/3Wf7Ljaf8Ik/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5591885701432628793.post-4362803987023453175</id><published>2010-08-26T15:03:00.000+01:00</published><updated>2010-10-06T16:54:23.185+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET 1.0/1.1/2.0/3.5/4.0'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>Developping Application for SharePoint 2010</title><content type='html'>&lt;em&gt;Microsoft Pattern &amp;amp; Practices proudly annouces "Developping Application for SharePoint 2010"&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td valign="top" width="566"&gt;&lt;br /&gt;&lt;div class="ppBodyText0"&gt;&lt;a href="http://www.blogger.com/" name="_Customer_Value"&gt;&lt;/a&gt;&lt;span style="font-size: small;"&gt;&lt;img border="0" height="335" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-57-61/0312.tom.png" width="343" /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="ppBodyText0"&gt;&lt;span style="font-size: small;"&gt;SharePoint 2010 introduces new ways of developing applications for the SharePoint platform. With SharePoint 2010, you can build multi-tenant, hosted applications on an infrastructure that is scalable, secure, and stable. You can create powerful, data-driven solutions using SharePoint lists or external data. You can create client-side functionality that takes advantage of modern browser capabilities and Silverlight to provide a rich user &lt;shapetype coordsize="21600,21600" filled="f" id="_x0000_t75" o:preferrelative="t" o:spt="75" path="m@4@5l@4@11@9@11@9@5xe" stroked="f"&gt;&lt;stroke joinstyle="miter"&gt;&lt;/stroke&gt;&lt;formulas&gt;&lt;f eqn="if lineDrawn pixelLineWidth 0"&gt;&lt;/f&gt;&lt;f eqn="sum @0 1 0"&gt;&lt;/f&gt;&lt;f eqn="sum 0 0 @1"&gt;&lt;/f&gt;&lt;f eqn="prod @2 1 2"&gt;&lt;/f&gt;&lt;f eqn="prod @3 21600 pixelWidth"&gt;&lt;/f&gt;&lt;f eqn="prod @3 21600 pixelHeight"&gt;&lt;/f&gt;&lt;f eqn="sum @0 0 1"&gt;&lt;/f&gt;&lt;f eqn="prod @6 1 2"&gt;&lt;/f&gt;&lt;f eqn="prod @7 21600 pixelWidth"&gt;&lt;/f&gt;&lt;f eqn="sum @8 21600 0"&gt;&lt;/f&gt;&lt;f eqn="prod @7 21600 pixelHeight"&gt;&lt;/f&gt;&lt;f eqn="sum @10 21600 0"&gt;&lt;/f&gt;&lt;/formulas&gt;&lt;path gradientshapeok="t" o:connecttype="rect" o:extrusionok="f"&gt;&lt;/path&gt;&lt;lock aspectratio="t" v:ext="edit"&gt;&lt;/lock&gt;&lt;/shapetype&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;experience. These new features, operational models, and development tools make SharePoint a more complete application platform, and it also introduces new design and development decisions for customers. This guidance helps customers understand the decision points, tradeoffs, and performance implications that the new functionality introduces; it also helps customers learn how to take best advantage of the new capabilities that SharePoint 2010 provides.&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="ppbodytext"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #1f497d;"&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&gt;&lt;/div&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 25pt; mso-yfti-irow: 2;"&gt;&lt;td style="background-color: transparent; border-left: #f0f0f0; border-right: #f0f0f0; border-top: #f0f0f0; height: 25pt; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; padding-top: 0in; width: 424.5pt;" valign="top" width="566"&gt;&lt;br /&gt;&lt;h2 style="line-height: 115%; margin: 10pt 0in 0pt;"&gt;&lt;a href="http://www.blogger.com/" name="_What’s_in_A"&gt;&lt;/a&gt;&lt;span style="color: #4f81bd;"&gt;&lt;span style="color: orange;"&gt;&lt;span style="font-size: 16pt; line-height: 115%;"&gt;What’s in &lt;span style="mso-bidi-font-style: italic;"&gt;Developing Applications for SharePoint 2010&lt;/span&gt;?&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr sizcache="30" sizset="1" style="height: 25pt; mso-yfti-irow: 3; mso-yfti-lastrow: yes;"&gt;&lt;td sizcache="30" sizset="1" style="background-color: transparent; border-left: #f0f0f0; border-right: #f0f0f0; border-top: #f0f0f0; height: 25pt; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; padding-top: 0in; width: 424.5pt;" valign="top" width="566"&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;img border="0" height="360" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-57-61/1614.bottom.png" width="363" /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;table border="1" cellpadding="0" cellspacing="3" class="MsoNormalTable" style="border-bottom: #dddddd 1pt solid; border-left: #dddddd 1pt solid; border-right: #dddddd 1pt solid; border-top: #dddddd 1pt solid; margin: auto auto auto 3.4pt; mso-cellspacing: 2.2pt; mso-padding-alt: 0in 0in 0in 0in; mso-yfti-tbllook: 1184; width: 546px;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="background: #000; color: white;" valign="middle"&gt;&lt;br /&gt;Component&lt;/td&gt;&lt;td style="background: #000; color: white;" valign="middle"&gt;&lt;br /&gt;Description&lt;/td&gt;&lt;/tr&gt;&lt;tr style="mso-yfti-irow: 1;"&gt;&lt;td style="background: white; border-bottom: #cccccc 1pt solid; border-left: #cccccc 1pt solid; border-right: #d5d5d3 1pt solid; border-top: #cccccc 1pt solid; padding-bottom: 3.4pt; padding-left: 3.4pt; padding-right: 3.4pt; padding-top: 3.4pt; width: 88.65pt;" valign="top" width="118"&gt;&lt;br /&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-size: 9pt; line-height: 115%;"&gt;The guide&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background: white; border-bottom: #cccccc 1pt solid; border-left: #cccccc 1pt solid; border-right: #d5d5d3 1pt solid; border-top: #cccccc 1pt solid; padding-bottom: 3.4pt; padding-left: 3.4pt; padding-right: 3.4pt; padding-top: 3.4pt; width: 314.05pt;" valign="top" width="419"&gt;&lt;span style="color: black;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="ppBodyText0"&gt;&lt;span style="color: black;"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; line-height: 115%; mso-bidi-font-style: italic;"&gt;"Application Foundations for SharePoint 2010"&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; line-height: 115%; mso-bidi-font-style: italic; mso-bidi-font-weight: bold;"&gt;describes&lt;/span&gt;&lt;span style="font-size: 10pt; line-height: 115%;"&gt; approaches you can use to address the challenges of testability, flexibility, configuration, logging and exception handling, and maintainability; it also explains how to use the SharePoint Guidance Library components in these areas.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="color: black;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="ppBodyText0"&gt;&lt;span style="color: black;"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; line-height: 115%; mso-bidi-font-style: italic;"&gt;"Execution Models in SharePoint 2010"&lt;i&gt; &lt;/i&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; line-height: 115%;"&gt;provides deep technical insights into the mechanics of the full-trust execution environment, the sandbox execution environment, and various hybrid approaches to executing code in SharePoint applications.&lt;b&gt;&lt;i&gt; &lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="color: black;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="ppBodyText0"&gt;&lt;span style="color: black;"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; line-height: 115%; mso-bidi-font-style: italic;"&gt;"Data Models in SharePoint 2010"&lt;i&gt; &lt;/i&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; line-height: 115%;"&gt;explains new list and external data functionality and data access techniques, key design decision points that can help you to choose between standard SharePoint lists and external lists, and techniques and patterns to address large lists and list aggregation.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="color: black;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="ppBodyText0"&gt;&lt;span style="color: black;"&gt;&lt;b&gt;&lt;span style="font-size: 10pt; line-height: 115%; mso-bidi-font-style: italic;"&gt;"Client Models in SharePoint 2010"&lt;/span&gt;&lt;/b&gt;&lt;i&gt;&lt;span style="font-size: 10pt; line-height: 115%;"&gt; &lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: 10pt; line-height: 115%;"&gt;provides guidance on how to best use the new client-side functionality to access data and build richer client experiences with Silverlight and Ajax&lt;i&gt;.&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="color: black;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="ppBodyText0"&gt;&lt;i&gt;&lt;span style="color: black; font-size: 10pt; line-height: 115%;"&gt;Each section also contains a set of how-to topics. These explain how to perform specific tasks that the team found challenging to discover.&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="mso-yfti-irow: 2;"&gt;&lt;td style="background: white; border-bottom: #cccccc 1pt solid; border-left: #cccccc 1pt solid; border-right: #d5d5d3 1pt solid; border-top: #cccccc 1pt solid; padding-bottom: 3.4pt; padding-left: 3.4pt; padding-right: 3.4pt; padding-top: 3.4pt; width: 88.65pt;" valign="top" width="118"&gt;&lt;span style="color: black;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-size: 9pt; line-height: 115%;"&gt;Reference implementations&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background: white; border-bottom: #cccccc 1pt solid; border-left: #cccccc 1pt solid; border-right: #d5d5d3 1pt solid; border-top: #cccccc 1pt solid; padding-bottom: 3.4pt; padding-left: 3.4pt; padding-right: 3.4pt; padding-top: 3.4pt; width: 314.05pt;" valign="top" width="419"&gt;&lt;span style="color: black;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-size: 10pt;"&gt;This release includes eight reference implementations that you can deploy to a SharePoint 2010 test environment. The reference implementations reinforce the key concepts in the guide and illustrate how to build applications that reflect real-world scenarios. Each reference implementation includes a detailed scenario and design overview, an explanation of the design decisions the team faced for the implementation, and an installation script to automate setup. This release includes reference implementations for the following scenarios: &lt;/span&gt;&lt;/div&gt;&lt;span style="color: black;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="color: black; font-size: small;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="MsoListParagraph"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: 10pt; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"&gt;&lt;span style="mso-list: Ignore;"&gt;·&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt;"&gt;Sandboxed solution&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="color: black;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="MsoListParagraph"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: 10pt; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"&gt;&lt;span style="mso-list: Ignore;"&gt;·&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt;"&gt;Sandboxed solution with a full-trust proxy&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="color: black;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="MsoListParagraph"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: 10pt; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"&gt;&lt;span style="mso-list: Ignore;"&gt;·&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt;"&gt;Sandboxed solution with External List&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="color: black;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="MsoListParagraph"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: 10pt; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"&gt;&lt;span style="mso-list: Ignore;"&gt;·&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt;"&gt;Sandboxed solution with custom workflow activities &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="color: black;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="MsoListParagraph"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: 10pt; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"&gt;&lt;span style="mso-list: Ignore;"&gt;·&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt;"&gt;Farm Solution (timer job)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="color: black;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="MsoListParagraph"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: 10pt; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"&gt;&lt;span style="mso-list: Ignore;"&gt;·&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt;"&gt;SharePoint List Data Models&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="color: black;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="MsoListParagraph"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: 10pt; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"&gt;&lt;span style="mso-list: Ignore;"&gt;·&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt;"&gt;External Data Models&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="color: black;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="MsoListParagraph"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: 10pt; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"&gt;&lt;span style="mso-list: Ignore;"&gt;·&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt;"&gt;Client Application Models&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="mso-yfti-irow: 3;"&gt;&lt;td style="background: white; border-bottom: #cccccc 1pt solid; border-left: #cccccc 1pt solid; border-right: #d5d5d3 1pt solid; border-top: #cccccc 1pt solid; padding-bottom: 3.4pt; padding-left: 3.4pt; padding-right: 3.4pt; padding-top: 3.4pt; width: 88.65pt;" valign="top" width="118"&gt;&lt;span style="color: black;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-size: 9pt; line-height: 115%;"&gt;The SharePoint Guidance Library&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background: white; border-bottom: #cccccc 1pt solid; border-left: #cccccc 1pt solid; border-right: #d5d5d3 1pt solid; border-top: #cccccc 1pt solid; padding-bottom: 3.4pt; padding-left: 3.4pt; padding-right: 3.4pt; padding-top: 3.4pt; width: 314.05pt;" valign="top" width="419"&gt;&lt;span style="color: black;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-size: 10pt;"&gt;The library is a collection of reusable classes delivered as source code that address common challenges in application development for the SharePoint platform. This release improves on the previous release of the library by adding support for sandboxed solutions and taking advantage of new SharePoint features.&amp;nbsp;The SharePoint Guidance Library consists of three key components:&lt;/span&gt;&lt;/div&gt;&lt;span style="color: black;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-size: 10pt;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="color: black;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="ppBulletList"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: 10pt; line-height: 115%; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"&gt;&lt;span style="mso-list: Ignore;"&gt;·&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; line-height: 115%; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;; mso-hansi-theme-font: minor-latin;"&gt;SharePoint Service Locator. &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; line-height: 115%; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;; mso-hansi-theme-font: minor-latin;"&gt;This provides a simple implementation of the Service Locator pattern for SharePoint applications. The service locator enables you to isolate your code from dependencies on external types, which makes your code more modular, easier to test, and easier to maintain.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="color: black;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="ppBulletList"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: 10pt; line-height: 115%; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"&gt;&lt;span style="mso-list: Ignore;"&gt;·&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; line-height: 115%; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;; mso-hansi-theme-font: minor-latin;"&gt;Application Settings Manager. &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; line-height: 115%; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;; mso-hansi-theme-font: minor-latin;"&gt;This provides a robust and consistent mechanism for storing and retrieving configuration settings at each level of the SharePoint hierarchy, from individual sites (SPWeb) to the entire server farm (SPFarm).&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="color: black;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="ppBulletList"&gt;&lt;span style="color: black;"&gt;&lt;span style="font-size: 10pt; line-height: 115%; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"&gt;&lt;span style="mso-list: Ignore;"&gt;·&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="font-size: 10pt; line-height: 115%; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;; mso-hansi-theme-font: minor-latin;"&gt;SharePoint Logger&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 10pt; line-height: 115%; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;; mso-hansi-theme-font: minor-latin;"&gt;. This provides easy-to-use utility methods that you can employ to write information to the Windows Event log and the SharePoint Unified Logging Service (ULS) trace log. It also enables you to create custom diagnostic areas and categories for logging.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="color: black;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-size: 10pt;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="ppbodytext"&gt;&lt;span style="font-size: small;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="ppbodytext"&gt;&lt;span style="font-size: small;"&gt;Click &lt;/span&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=64b55569-2168-4545-8b7c-f185b2cf967d"&gt;here&lt;/a&gt;&lt;span style="font-size: small;"&gt; to download this release.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Click &lt;a href="http://blogs.msdn.com/b/sharepoint/archive/2010/06/30/developing-applications-for-sharepoint-2010.aspx"&gt;here&lt;/a&gt; to read the full post.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5591885701432628793-4362803987023453175?l=blog.reversingmotions.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.reversingmotions.com/feeds/4362803987023453175/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.reversingmotions.com/2010/08/developping-application-for-sharepoint.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/4362803987023453175'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/4362803987023453175'/><link rel='alternate' type='text/html' href='http://blog.reversingmotions.com/2010/08/developping-application-for-sharepoint.html' title='Developping Application for SharePoint 2010'/><author><name>Moez Tounsi</name><uri>https://profiles.google.com/112395018233684788902</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-7J1Be4Pf7gA/AAAAAAAAAAI/AAAAAAAAAJ4/3Wf7Ljaf8Ik/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5591885701432628793.post-3306370419449175758</id><published>2010-08-26T11:10:00.001+01:00</published><updated>2010-10-06T16:55:49.904+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET 1.0/1.1/2.0/3.5/4.0'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='Exchange'/><title type='text'>Exchange 2010 SP1 released...</title><content type='html'>Microsoft Exchange Server 2010 Service Pack 1 (SP1)&lt;br /&gt;Brief Description&lt;br /&gt;Microsoft Exchange Server 2010 helps you achieve new levels of reliability and performance by delivering features that help to simplify your administration, protect your communications, and delight your customers by meeting their demands for greater business mobility.&lt;br /&gt;Link: &lt;a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=50b32685-4356-49cc-8b37-d9c9d4ea3f5b"&gt;http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=50b32685-4356-49cc-8b37-d9c9d4ea3f5b&lt;/a&gt; &lt;br /&gt;Microsoft Exchange Server 2010 SP1 RTM Protocol Documentation&lt;br /&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=a9aae935-ad23-4117-a3d9-9ed6093d6d7f"&gt;http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=a9aae935-ad23-4117-a3d9-9ed6093d6d7f&lt;/a&gt;&lt;br /&gt;System Requirements&lt;br /&gt;• Supported Operating Systems: Windows 7 Professional 64-bit; Windows Server 2008; Windows Server 2008 Enterprise; Windows Server 2008 R2 Enterprise; Windows Server 2008 R2 Standard; Windows Vista 64-bit Editions Service Pack 1&lt;br /&gt;Exchange Server 2010 SP1 System Requirements and Prerequisites&lt;br /&gt;This SP1 software may be used to both update an existing Exchange 2010 installation to Service Pack 1 (SP1) and perform new installations.&lt;br /&gt;For information about Exchange 2010 system requirements and prerequisites, see the following topics:&lt;br /&gt;• Exchange 2010 System Requirements&lt;br /&gt;&lt;a href="http://technet.microsoft.com/en-us/library/aa996719.aspx"&gt;http://technet.microsoft.com/en-us/library/aa996719.aspx&lt;/a&gt;&lt;br /&gt;• Exchange 2010 Prerequisites&lt;br /&gt;&lt;a href="http://technet.microsoft.com/en-us/library/bb691354.aspx"&gt;http://technet.microsoft.com/en-us/library/bb691354.aspx&lt;/a&gt;&lt;br /&gt;Actual requirements will vary based on system configuration and specific features installed. For more detailed system requirements, please refer to the Exchange Server 2010 Technical Documentation Library.&lt;br /&gt;&lt;a href="http://technet.microsoft.com/en-us/library/bb124558(EXCHG.140).aspx"&gt;http://technet.microsoft.com/en-us/library/bb124558(EXCHG.140).aspx&lt;/a&gt;&lt;br /&gt;For a list of Windows Server 2008 requirements, visit &lt;a href="http://technet.microsoft.com/windowsserver/2008"&gt;http://technet.microsoft.com/windowsserver/2008&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5591885701432628793-3306370419449175758?l=blog.reversingmotions.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.reversingmotions.com/feeds/3306370419449175758/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.reversingmotions.com/2010/08/exchange-2010-sp1-released.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/3306370419449175758'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/3306370419449175758'/><link rel='alternate' type='text/html' href='http://blog.reversingmotions.com/2010/08/exchange-2010-sp1-released.html' title='Exchange 2010 SP1 released...'/><author><name>Moez Tounsi</name><uri>https://profiles.google.com/112395018233684788902</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-7J1Be4Pf7gA/AAAAAAAAAAI/AAAAAAAAAJ4/3Wf7Ljaf8Ik/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5591885701432628793.post-7158030654057119543</id><published>2010-08-26T09:40:00.000+01:00</published><updated>2010-10-06T16:55:49.905+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET 1.0/1.1/2.0/3.5/4.0'/><category scheme='http://www.blogger.com/atom/ns#' term='TechEd'/><category scheme='http://www.blogger.com/atom/ns#' term='Events'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><title type='text'>TechEd Berlin Coming in November</title><content type='html'>&lt;img title="image" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-31-99-metablogapi/2313.image_5F00_58277C2E.png" width="244" height="151" le="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px" /&gt;&lt;br /&gt;&lt;br /&gt;Latest info about the upcoming technical event for developers and IT professionals at Berlin Messe in Berlin, Germany. &lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;Brad Anderson to Keynote Tech∙Ed Europe 2010&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Microsoft CVP, &lt;a href="http://www.microsoft.com/presspass/exec/AndersonB/"&gt;Brad Anderson&lt;/a&gt;, will be a keynoter at this year’s Tech∙Ed Europe event. More announcements on keynoters and sessions to come in September. Join the &lt;a href="https://register.crgevents.com/TEE2010MailingList/"&gt;TechEd Europe email newsletter&lt;/a&gt;, or visit the &lt;a href="http://www.microsoft.com/europe/teched/"&gt;website&lt;/a&gt; for the latest news.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Register by 31&lt;sup&gt;st&lt;/sup&gt; August and Save&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Don’t miss this chance to save on Tech∙Ed Europe – &lt;a href="http://www.microsoft.com/europe/teched/"&gt;register by 31 August&lt;/a&gt; and save €200 off the full conference price (a €400 savings over last year’s full price). If you book your hotel through the Tech∙Ed Europe accommodation booking service by 31 August, you’ll also receive a FREE, 6-day public transit (BVG) pass. The BVG pass entitles you to full use of public transportation (metro/city train/tram/bus) in Berlin. Visit the &lt;a href="http://europe.msteched.com/registration"&gt;registration page&lt;/a&gt; for details on both offers.&lt;/p&gt;&lt;p&gt;&lt;b&gt;Attendees Receive a Free TechNet Subscription &lt;/b&gt;&lt;/p&gt;&lt;p&gt;Tech·Ed Europe attendees will receive a free, one-year Microsoft TechNet Subscription, specifically selected for IT Professionals that support enterprise-wide environments. The subscription includes access to the complete stack of full-version Microsoft infrastructure and business solution software for evaluation and testing purposes, as well as access to upcoming beta releases, E-Learning courses and priority support on TechNet Forums. The subscription benefit for attendees excludes the two (2) free support calls included in the Professional subscription level; all other benefits are the same. &lt;a href="http://technet.microsoft.com/en-us/subscriptions/bb892759.aspx"&gt;&amp;gt; View benefits&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;&lt;b&gt;Go Behind-the-Scenes of the TechEd Europe event, Win a Free Pass!&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Jennifer Ritzinger (event owner) and Mike Swanson (keynote owner) host a weekly video show to share the latest news and ‘behind-the-scenes’ details about the Tech∙Ed Europe event. On &lt;a href="http://channel9.msdn.com/posts/LarryLarsen/Countdown-to-TechEd-Europe-Meet-our-Content-Czar-and-Win-a-Free-Pass/"&gt;the most recent episode&lt;/a&gt;, they talk to content owner, Steven Salazar, about the results of the session preference voting and the upcoming release of sessions. Also, they announce how you can win a FREE pass to the event! In case you’ve missed any, you can still &lt;a href="http://channel9.msdn.com/tags/TEE10/"&gt;view all the episodes&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5591885701432628793-7158030654057119543?l=blog.reversingmotions.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://blogs.msdn.com/b/volkerw/archive/2010/08/25/teched-berlin-coming-in-november.aspx' title='TechEd Berlin Coming in November'/><link rel='replies' type='application/atom+xml' href='http://blog.reversingmotions.com/feeds/7158030654057119543/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.reversingmotions.com/2010/08/teched-berlin-coming-in-november.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/7158030654057119543'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/7158030654057119543'/><link rel='alternate' type='text/html' href='http://blog.reversingmotions.com/2010/08/teched-berlin-coming-in-november.html' title='TechEd Berlin Coming in November'/><author><name>Moez Tounsi</name><uri>https://profiles.google.com/112395018233684788902</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-7J1Be4Pf7gA/AAAAAAAAAAI/AAAAAAAAAJ4/3Wf7Ljaf8Ik/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5591885701432628793.post-4509062318787891179</id><published>2010-08-25T14:29:00.002+01:00</published><updated>2010-10-06T16:55:49.906+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET 1.0/1.1/2.0/3.5/4.0'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>C# 4.0 PowerPoint Presentations</title><content type='html'>&lt;a href="http://blogs.msdn.com/b/alexghi/"&gt;"&lt;em&gt;Alexandru Ghiondea&lt;/em&gt;&lt;/a&gt; has recently published C# 4.0 PowerPoint Presentation that could be downloaded &lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Components-PostAttachments/00-10-04-32-06/C_2300_-Slide-Decks.zip"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blogs.msdn.com/b/csharpfaq/archive/2010/07/27/c-4-0-powerpoint-presentations.aspx"&gt;Read more ...&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5591885701432628793-4509062318787891179?l=blog.reversingmotions.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.reversingmotions.com/feeds/4509062318787891179/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.reversingmotions.com/2010/08/c-40-powerpoint-presentations.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/4509062318787891179'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/4509062318787891179'/><link rel='alternate' type='text/html' href='http://blog.reversingmotions.com/2010/08/c-40-powerpoint-presentations.html' title='C# 4.0 PowerPoint Presentations'/><author><name>Moez Tounsi</name><uri>https://profiles.google.com/112395018233684788902</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-7J1Be4Pf7gA/AAAAAAAAAAI/AAAAAAAAAJ4/3Wf7Ljaf8Ik/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5591885701432628793.post-2579003202973218631</id><published>2010-08-25T11:58:00.001+01:00</published><updated>2010-10-06T16:55:49.907+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET 1.0/1.1/2.0/3.5/4.0'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='Azure'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><title type='text'>SQL Azure Now Supports Database Copy</title><content type='html'>SQL Azure now supports Database copy. This update is part of SQL Azure Service Update 4. Also, this service update includes: Development: How-to Topics (SQL Azure Database) on MSDN Development Center.&lt;br /&gt;Microsoft project Microsoft Project Code-Named “Houston” (Houston), a light weight web-based database management tool for SQL Azure. Database copy allows you to make a real-time &lt;a href="http://feeds.maordavid.com/~r/maor/~3/Z3_TX4Xuk5A/"&gt;...&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5591885701432628793-2579003202973218631?l=blog.reversingmotions.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.reversingmotions.com/feeds/2579003202973218631/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.reversingmotions.com/2010/08/sql-azure-now-supports-database-copy.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/2579003202973218631'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/2579003202973218631'/><link rel='alternate' type='text/html' href='http://blog.reversingmotions.com/2010/08/sql-azure-now-supports-database-copy.html' title='SQL Azure Now Supports Database Copy'/><author><name>Moez Tounsi</name><uri>https://profiles.google.com/112395018233684788902</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-7J1Be4Pf7gA/AAAAAAAAAAI/AAAAAAAAAJ4/3Wf7Ljaf8Ik/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5591885701432628793.post-3397819005309524437</id><published>2010-08-24T12:43:00.000+01:00</published><updated>2010-10-06T16:55:49.908+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET 1.0/1.1/2.0/3.5/4.0'/><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><title type='text'>Blog Post: Improved Productivity with BizTalk Server 2010 Mapper</title><content type='html'>&lt;a href="http://blogs.msdn.com/b/biztalk_server_team_blog/archive/2010/08/24/improved-productivity-with-biztalk-server-2010-mapper.aspx"&gt;Blog Post: Improved Productivity with BizTalk Server 2010 Mapper&lt;/a&gt;: &lt;p&gt;&lt;em&gt;by Deepak Jain, Program Manager BizTalk Server Team&lt;/em&gt;&lt;/p&gt;&lt;p&gt;The current mapper was an award winning tool when it was released. But lately we have been hearing from our customers that although mapper is great for simple maps, they are finding it increasingly difficult to develop and maintain maps with the BizTalk Mapper. The problem is that when mapper was developed schemas used to be small and mappings used to be simple. With the increasing complexity of integration challenges being solved using BizTalk, the size of the messages/schemas and the complexity of maps has been increasing rapidly. &lt;/p&gt;&lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-61-86-metablogapi/5001.image_5F00_6BBE69C3.png"&gt;&lt;img title="image" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-61-86-metablogapi/5428.image_5F00_thumb_5F00_26E21FC2.png" width="628" height="648" le="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;p&gt;The above map is an example of a complex map where user faces many challenges. Both source and target schemas have hundreds of nodes making it difficult for users to identify nodes to map. Even after mapping user faces challenges in trying to follow the relationships end to end as the huge number of links in the map reduces it to a jumble of black lines. Understanding and updating this map becomes a time consuming process.&lt;/p&gt;&lt;p&gt;Improving usability of the mapper was a key focus area to enhance developer productivity for BizTalk Server 2010. For solving the challenge of making maps easier to understand while maintaining the immense flexibility provided by BizTalk Mapper, we collaborated with Microsoft Research and worked with highly respected researchers like &lt;a href="http://research.microsoft.com/en-us/people/ggr/"&gt;George Robertson&lt;/a&gt; and &lt;a href="http://research.microsoft.com/en-us/people/philbe/"&gt;Phil Bernstein&lt;/a&gt;. Our focus was to bring simplicity in both creation and maintenance of maps.&lt;/p&gt;&lt;p&gt;One of the problems in big maps was the amount of background noise that distracted user from task at hand. BizTalk Mapper solves the problem by first hiding and/or dimming out the links that are not relevant to the page area of the map you are currently viewing. The links where both ends are not currently in view are now hidden. Even the links where only one end is currently in view are dimmed out by using a thinner dashed line types. When you select any schema node, link or a functoid in the map, BizTalk Mapper now activates highlight propagation. In highlight propagation Mapper brings selected item in prominence along with all the relationships associated with it. This in turn allows you to focus on the selected object and its relationships while reducing all the background noise. If the relationships are not in the current view, Mapper automatically scrolls the mapping grid surface to bring the selected relationship in view. This drastically reduces the amount of scrolling you had to do previously, to view end-to-end relationships. Apart from this, during design time you can now document the mapping logic by providing comments for the functoids. This can be used later for understanding the usage of a functoid by hovering over the functoid shape on the grid surface. The picture below illustrates how you can quickly understand the end to end relationship by using commenting functionality along with highlight propagation described above.&lt;/p&gt;&lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-61-86-metablogapi/3463.image_5F00_73763698.png"&gt;&lt;img title="image" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-61-86-metablogapi/0654.image_5F00_thumb_5F00_23DC9542.png" width="628" height="649" le="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;p&gt;For the initial map creation, we targeted on making it easier for you to identify elements to map. When you have big schemas and are looking to have direct links from the source schema to the destination schema, one of the biggest issues is to find the relevant nodes in the schemas. Now in BizTalk Mapper if you select any element in the source or destination schema and invoke 'Indicative Matching' mapper, it will suggest you the possible matches in the other schema. These matches are generated based on a complex algorithm, which was developed in collaboration with Microsoft Research. This algorithm looks at various parameters like how words are shortened by dropping alphabets, relative position in the schema tree, etc. to generate possible matches. We have also made it easier to discover AutoLink functionality. Now when you link two records, we display a context menu where you can choose the type of link you require. Mapper also provides messages on the status bar when an attempt is made to create invalid link.&lt;/p&gt;&lt;p&gt;For a multipage map, it is tough to figure out where a certain schema node is being used. Mapper already indicates that a particular schema node is linked in another page by showing a link icon in the schema tree. But if you have same schema node linked in multiple pages, it is difficult to find all the pages in which the node is being used. To solve this problem mapper will now also show indication on the page tabs below mapper grid surface to indicate that the selected schema node is linked.&lt;/p&gt;&lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-61-86-metablogapi/8267.image_5F00_68E53CAB.png"&gt;&lt;img title="image" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-61-86-metablogapi/7115.image_5F00_thumb_5F00_5B3280A3.png" width="628" height="140" le="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;p&gt;The map development experience has also been greatly enhanced by consolidating all the functoid configuration activities into a single dialog. This dialog will provide tabs for various configuration tasks like input configuration, script configuration, table looping configuration etc. The input configuration also has been enhanced to make inputs easier to configure and understand. The mapper will give you error indication about the inputs in the configuration dialog and a visual cue (just like IntelliSense) with error information on the mapper grid. For scripting functoid, you can set your favorite scripting language as default and all the new scripting functoid will be automatically offer you that as the first choice. You can also import scripts from existing files on disk.&lt;/p&gt;&lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-61-86-metablogapi/2335.image_5F00_0AA0EF70.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.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-61-86-metablogapi/3821.image_5F00_thumb_5F00_00F8813A.png" width="352" height="388" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;p&gt;The new incremental search will help you find the relevant object quickly. You can not only search through the schema nodes, but also through functoids. You can also select schemas and which properties of functoids you would like to search using the search options dropdown. Mapper displays the number of search matches and their distribution in the status bar. All the matches in the schema trees are highlighted. The matching functoids in the current view are highlighted. If there are matching functoids that are hidden, mapper will indicate that by showing a glowing directional arrows at the edges towards which you need to scroll towards to uncover the results. If there are results on other pages, mapper will indicate that by highlighting those page tabs.&lt;/p&gt;&lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-61-86-metablogapi/0525.image_5F00_45587279.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.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-61-86-metablogapi/5023.image_5F00_thumb_5F00_7C71DAA5.png" width="628" height="646" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;p&gt;Another feature which makes it easy to understand a map quickly is 'Relevance View'. As a map developer you might be interested only in nodes that are actually part of the map, hiding the other nodes makes it easier for you to understand the full map better. You can turn on this feature on either the source or destination schema using toolbar buttons. This makes it easier for you to focus on only the relevant schema nodes when looking at the map without getting distracted with unused nodes. When the unused nodes are hidden, they are still easily accessible through tooltips. You can also expand a collapsed node to override the default collapsing of all non-relevant nodes.&lt;/p&gt;&lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-61-86-metablogapi/3276.image_5F00_314893F3.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.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-61-86-metablogapi/1641.image_5F00_thumb_5F00_26E749C6.png" width="628" height="651" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;p&gt;Making design time experience much better is the support for cut/copy /paste within and across maps. This should help you reuse repeated logic or segments common across maps. Undo and redo adds to the goodness by making development by trial and error easier. Apart from these zooming and panning in the map is much easier, making moving around the map a breeze.&lt;/p&gt;&lt;p&gt;These are only some of the enhancements in the BizTalk Mapper. Our usability tests have shown that these enhancements in the BizTalk Mapper have increased developer productivity in creating and maintaining complex maps. We now want to hear from you! How much productivity improvements have you observed while using BizTalk Server 2010's Mapper.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5591885701432628793-3397819005309524437?l=blog.reversingmotions.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://blogs.msdn.com/b/biztalk_server_team_blog/archive/2010/08/24/improved-productivity-with-biztalk-server-2010-mapper.aspx' title='Blog Post: Improved Productivity with BizTalk Server 2010 Mapper'/><link rel='replies' type='application/atom+xml' href='http://blog.reversingmotions.com/feeds/3397819005309524437/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.reversingmotions.com/2010/08/blog-post-improved-productivity-with.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/3397819005309524437'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/3397819005309524437'/><link rel='alternate' type='text/html' href='http://blog.reversingmotions.com/2010/08/blog-post-improved-productivity-with.html' title='Blog Post: Improved Productivity with BizTalk Server 2010 Mapper'/><author><name>Moez Tounsi</name><uri>https://profiles.google.com/112395018233684788902</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-7J1Be4Pf7gA/AAAAAAAAAAI/AAAAAAAAAJ4/3Wf7Ljaf8Ik/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5591885701432628793.post-1033270427229020893</id><published>2010-08-24T11:50:00.000+01:00</published><updated>2010-10-06T16:55:49.909+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET 1.0/1.1/2.0/3.5/4.0'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='Fun'/><title type='text'>Astounding Computer Technologies Dating Back Centuries</title><content type='html'>&lt;a href="http://mytechnologyworld9.blogspot.com/2010/08/astounding-computer-technologies-dating.html"&gt;Astounding Computer Technologies Dating Back Centuries&lt;/a&gt;:&lt;br /&gt;The first computer programmer was actually a woman by the name of Ada Lovelace when she wrote of an algorithm that was cited as the first computer program around 1842. The US Department of Defence named the computer language Ada in her honor.&lt;br /&gt;&lt;br /&gt;The first computer game called Spacewar! was developed in 1961 by Steve Russell, which took about 200 hours to build.&lt;br /&gt;&lt;br /&gt;Fred Cohen created the first computer virus in 1983 just to prove that it was possible.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://imgur.com/ScMlX.jpg"&gt;&lt;img border="0" alt="" src="http://imgur.com/ScMlX.jpg" le="width:460px;height:3250px" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_YQoI-WNO8eo/THJ7PR56ZwI/AAAAAAAATEI/jxThjOouWgY/s1600/2.png"&gt;&lt;img border="0" alt="" src="http://4.bp.blogspot.com/_YQoI-WNO8eo/THJ7PR56ZwI/AAAAAAAATEI/jxThjOouWgY/s400/2.png" le="width:400px;height:296px" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Computer UNIVAC 1232.&lt;br /&gt;&lt;br /&gt;This computer was used from 1967 through 1990 at the U.S. Air Force’s Satellite Control Facility, in Sunnyvale, California. From this facility, over a dozen Sperry 1230-series computers operated in ‘real time’ 24/7 as part of a system that controlled and operated Air Force, NASA, other government, and commercial satellites. It also supported Space Shuttle missions.&lt;br /&gt;&lt;br /&gt;The 1232 computer was manufactured by the St. Paul, MN division of Sperry Univac, and was a military version of the UNIVAC 490 general purpose commercial computer. The computer used discrete transistors, was optimized for real-time use, had a 30-bit word length, and initially was supplied with 32,000 words of memory — approximately 123 K Bytes.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_YQoI-WNO8eo/THJ7O_XjHeI/AAAAAAAATEA/O3PKNldX95E/s1600/3.png"&gt;&lt;img border="0" alt="" src="http://3.bp.blogspot.com/_YQoI-WNO8eo/THJ7O_XjHeI/AAAAAAAATEA/O3PKNldX95E/s400/3.png" le="width:400px;height:349px" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The Antikythera mechanism (main fragment).&lt;br /&gt;&lt;br /&gt;The Antikythera mechanism from ancient Greece was a calculator utilizing gears of various sizes and configuration to determine its operation. Al-Jazari built programmable Automata in 1206.&lt;br /&gt;&lt;br /&gt;One system employed in these devices was the use of pegs and cams placed into a wooden drum at specific locations which would sequentially trigger levers that in turn operated percussion instruments. The output of this device was a small drummer playing various rhythms and drum patterns.&lt;br /&gt;&lt;br /&gt;The Jacquard Loom, which Joseph Marie Jacquard developed in 1801, uses a series of pasteboard cards with holes punched in them. The hole pattern represented the pattern that the loom had to follow in weaving cloth. The loom could produce entirely different weaves using different sets of cards.&lt;br /&gt;&lt;br /&gt;Charles Babbage adopted the use of punched cards around 1830 to control his Analytical Engine. The synthesis of numerical calculation, predetermined operation and output, along with a way to organize and input instructions in a manner relatively easy for humans to conceive and produce, led to the modern development of computer programming.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_YQoI-WNO8eo/THJ7OQTS2tI/AAAAAAAATD4/DOJKnaHnXe4/s1600/4.png"&gt;&lt;img border="0" alt="" src="http://4.bp.blogspot.com/_YQoI-WNO8eo/THJ7OQTS2tI/AAAAAAAATD4/DOJKnaHnXe4/s400/4.png" le="width:374px;height:400px" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Data and instructions could be stored on external punched cards, which were&lt;br /&gt;kept in order and arranged in program decks.&lt;br /&gt;&lt;br /&gt;In the late 1880's, Herman Hollerith invented the recording of data on a medium that could then be read by a machine. Prior uses of machine readable media had been for control, not data. After some initial trials with paper tape, he settled on punched cards. To process these punched cards, first known as “Hollerith cards” he invented the tabulator, and the keypunch machines. These 3 inventions were the foundation of the modern information processing industry.&lt;br /&gt;&lt;br /&gt;In 1896 he founded the Tabulating Machine Company — which later became the core of IBM. The addition of a control panel (plugboard) to his 1906 Type I Tabulator allowed it to do different jobs without having to be physically rebuilt.&lt;br /&gt;&lt;br /&gt;By the late 1940's there were a variety of plug-board programmable machines, called unit record equipment, to perform data-processing tasks (card reading). Early computer programmers used plug-boards for the variety of complex calculations requested of the newly invented machines.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_YQoI-WNO8eo/THJ7N3a5X5I/AAAAAAAATDw/vbxe52rDLCU/s1600/5.png"&gt;&lt;img border="0" alt="" src="http://1.bp.blogspot.com/_YQoI-WNO8eo/THJ7N3a5X5I/AAAAAAAATDw/vbxe52rDLCU/s400/5.png" le="width:400px;height:300px" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Wired plug board for an IBM 402 Accounting Machine.&lt;br /&gt;&lt;br /&gt;The invention of the von Neumann architecture allowed computer programs to be stored in computer memory. Early programs had to be painstakingly crafted using the instructions (elementary operations) of the particular machine, often in binary notation. Every model of computer would likely use different instructions (machine language) to do the same task.&lt;br /&gt;&lt;br /&gt;Later, assembly languages were developed that let the programmer specify each instruction in a text format, entering abbreviations for each operation code instead of a number and specifying addresses in symbolic form (e.g., ADD X, TOTAL). Entering a program in assembly language is usually more convenient, faster, and less prone to human error than using machine language, but because an assembly language is little more than a different notation for a machine language, any two machines with different instruction sets also have different assembly languages.&lt;br /&gt;&lt;br /&gt;n 1954, FORTRAN (Formula Translation) was invented — the first high level programming language to have a functional implementation, as opposed to just a design on paper. It allowed programmers to specify calculations by entering a formula directly (e.g. Y = X*2 + 5*X + 9). The program text, or source, is converted into machine instructions using a special program called a compiler, which translates the FORTRAN program into machine language.&lt;br /&gt;&lt;br /&gt;Many other languages were developed, including some for commercial programming, such as COBOL. Programs were mostly still entered using punched cards or paper tape. By the late 1960's, data storage devices and computer terminals became inexpensive enough that programs could be created by typing directly into the computers. Text editors were developed that allowed changes and corrections to be made much more easily than with punched cards. An error in punching a card usually meant that the card had to be discarded and an new one punched to replace it.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_YQoI-WNO8eo/THJ7NfKi-MI/AAAAAAAATDo/oXVLPC7KDJw/s1600/6.png"&gt;&lt;img style="WIDTH: 400px; HEIGHT: 280px" border="0" alt="" src="http://4.bp.blogspot.com/_YQoI-WNO8eo/THJ7NfKi-MI/AAAAAAAATDo/oXVLPC7KDJw/s400/6.png" /&gt;&lt;/a&gt;&lt;br /&gt;Computer console countdown and monitor.&lt;br /&gt;&lt;br /&gt;This beast is part of a console, manufactured by the General Dynamics Corporation, used to sequence the launch and control the flight of Atlas intercontinental ballistic missiles, launched from Vandenberg Air Force Base on a trajectory over the Pacific Ocean&lt;br /&gt;&lt;img alt="" src="https://blogger.googleusercontent.com/tracker/5043668083204849757-4535285039611417278?l=mytechnologyworld9.blogspot.com" width="1" height="1" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5591885701432628793-1033270427229020893?l=blog.reversingmotions.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://mytechnologyworld9.blogspot.com/2010/08/astounding-computer-technologies-dating.html' title='Astounding Computer Technologies Dating Back Centuries'/><link rel='replies' type='application/atom+xml' href='http://blog.reversingmotions.com/feeds/1033270427229020893/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.reversingmotions.com/2010/08/astounding-computer-technologies-dating.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/1033270427229020893'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/1033270427229020893'/><link rel='alternate' type='text/html' href='http://blog.reversingmotions.com/2010/08/astounding-computer-technologies-dating.html' title='Astounding Computer Technologies Dating Back Centuries'/><author><name>Moez Tounsi</name><uri>https://profiles.google.com/112395018233684788902</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-7J1Be4Pf7gA/AAAAAAAAAAI/AAAAAAAAAJ4/3Wf7Ljaf8Ik/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_YQoI-WNO8eo/THJ7PR56ZwI/AAAAAAAATEI/jxThjOouWgY/s72-c/2.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5591885701432628793.post-801467963499806192</id><published>2010-08-24T11:29:00.000+01:00</published><updated>2010-10-06T16:55:49.910+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET 1.0/1.1/2.0/3.5/4.0'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><title type='text'>Blog Post: Visual Studio LightSwitch Beta Provides New Rapid Development Tool</title><content type='html'>&lt;a href="http://blogs.msdn.com/b/usisvde/archive/2010/08/24/visual-studio-lightswitch-beta-provides-new-rapid-development-tool.aspx"&gt;Blog Post: Visual Studio LightSwitch Beta Provides New Rapid Development Tool&lt;/a&gt;: &lt;p&gt;&lt;a href="http://www.microsoft.com/visualstudio/en-us/lightswitch"&gt;&lt;img title="lightswitch" border="0" alt="lightswitch" align="right" src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-68-67-metablogapi/0804.lightswitch_5F00_2601F2CD.png" width="244" height="59" le="border-right-width:0px;margin:0px 0px 10px 10px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;p&gt;Author : Bruce Kyle&lt;br /&gt;ISV Architect Evagelist @ Microsoft&lt;/p&gt;&lt;p&gt;The beta of &lt;a href="http://www.microsoft.com/visualstudio/en-us/lightswitch"&gt;Visual Studio LightSwitch&lt;/a&gt; was released today. Microsoft Visual Studio LightSwitch gives you a simpler and faster way to create professional-quality business applications for the desktop, the web, and the cloud. LightSwitch is a new addition to the Visual Studio family.&lt;/p&gt;&lt;p&gt;Visual Studio LightSwitch is a new development tool for building business applications. LightSwitch simplifies the development process, letting you concentrate on the business logic and doing much of the remaining work for you. By using LightSwitch, an application can be designed, built, tested, and in your user’s hands quickly.&lt;/p&gt;&lt;p&gt;With LightSwitch, you can build custom applications that rival off-the-shelf solutions. Get a head start by using pre-configured screen templates that give your application a familiar look and feel. LightSwitch also provides prewritten code and other reusable components to handle routine application tasks, along with helpful step-by-step guidance. However, if you need to write custom code, you can use Visual Basic .NET or C#. You can deploy to the desktop, browser, or cloud (post-Beta) to share your application with others more easily without the cumbersome installation processes.&lt;/p&gt;&lt;p&gt;LightSwitch provides authentication and authorization features that let you define users and roles. This prevents unauthorized access to sensitive data.&lt;/p&gt;&lt;p&gt;Extensibility features in LightSwitch let you change the appearance of your applications by applying themes, using custom controls, and changing the layout with shell extensions. Custom business types help reduce the code that you write. &lt;/p&gt;&lt;p&gt;For ISVs, LightSwitch provides way of prototyping and quickly developing custom applications that integrate with your database or Web services.&lt;/p&gt;&lt;p&gt;The process of creating an application resembles other development tools: connect to data, create a form and bind the data to the controls, add some validation based on business logic, and then test and deploy. The difference with LightSwitch is that each one of those steps is simplified.&lt;/p&gt;&lt;p&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkId=199603"&gt;Download Visual Studio LightSwitch Beta 1.&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Find out more at the &lt;a href="http://msdn.microsoft.com/en-us/lightswitch/default.aspx"&gt;Visual Studio LightSwitch developer center&lt;/a&gt; on MSDN.&lt;/p&gt;&lt;p&gt;See videos on Channel 9:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://channel9.msdn.com/posts/Dan/Jay-Schmelzer-Introducing-Visual-Studio-LightSwitch/"&gt;Jay Schmelzer: Introducing Visual Studio LightSwitch&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://channel9.msdn.com/posts/funkyonex/Visual-Studio-LightSwitch-Beyond-the-Basics/"&gt;Visual Studio LightSwitch - Beyond the Basics&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;a href="http://www.facebook.com/brucedkyle"&gt;&lt;img border="0" alt="cid:image010.png@01C9DEED.1FDB2200" src="http://wqblcw.bay.livefilestore.com/y1phiYtqdt01WbX-WEkFeHdgc-vGh3uFaTXPkWWsSxBgSwGmjVFtf3ng7PyxsJc3-Yqi2QynvaL6yg/Facebook.gif" width="16" height="16" /&gt;&lt;/a&gt; &lt;a href="http://www.linkedin.com/in/bdkyle"&gt;&lt;img border="0" alt="cid:image011.png@01C9DEED.1FDB2200" src="http://wqblcw.bay.livefilestore.com/y1pR3zivTY9cjlrke7b1fEP372RxZzpJ97ZTTpGTudkvE0tRfmeEg40fNMS0rYICJm5cdx_5r9hgZY/linkedin.gif" width="16" height="16" /&gt;&lt;/a&gt; &lt;a href="http://twitter.com/brucedkyle"&gt;&lt;img border="0" alt="cid:image012.gif@01C9DEED.1FDB2200" src="http://wqblcw.bay.livefilestore.com/y1pFQPRF30RihrH1twKjGCuXhhRR0tWxZDxgoEr_pwDvZJ3mD5Mgm7JM0szdleOWYSOIAXrYJeaHqo/Twitter.gif" width="16" height="16" /&gt;&lt;/a&gt; &lt;a href="http://channel9.msdn.com/posts/bruceky/"&gt;&lt;img border="0" alt="channel9" src="http://mscommunities.com/images/sites/ch9.gif" width="16" height="16" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5591885701432628793-801467963499806192?l=blog.reversingmotions.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://blogs.msdn.com/b/usisvde/archive/2010/08/24/visual-studio-lightswitch-beta-provides-new-rapid-development-tool.aspx' title='Blog Post: Visual Studio LightSwitch Beta Provides New Rapid Development Tool'/><link rel='replies' type='application/atom+xml' href='http://blog.reversingmotions.com/feeds/801467963499806192/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.reversingmotions.com/2010/08/blog-post-visual-studio-lightswitch.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/801467963499806192'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/801467963499806192'/><link rel='alternate' type='text/html' href='http://blog.reversingmotions.com/2010/08/blog-post-visual-studio-lightswitch.html' title='Blog Post: Visual Studio LightSwitch Beta Provides New Rapid Development Tool'/><author><name>Moez Tounsi</name><uri>https://profiles.google.com/112395018233684788902</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-7J1Be4Pf7gA/AAAAAAAAAAI/AAAAAAAAAJ4/3Wf7Ljaf8Ik/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5591885701432628793.post-6348139476772470043</id><published>2010-08-24T10:51:00.000+01:00</published><updated>2010-10-06T16:55:49.911+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET 1.0/1.1/2.0/3.5/4.0'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><title type='text'>5 Ways to Ruin Your SharePoint 2010 Upgrade</title><content type='html'>&lt;a href="http://www.cmswire.com/cms/enterprise-cms/5-ways-to-ruin-your-sharepoint-2010-upgrade-008392.php"&gt;5 Ways to Ruin Your SharePoint 2010 Upgrade&lt;/a&gt;:&lt;br /&gt;Recent research has shown that a vast number of organizations are looking to upgrade to the latest version of SharePoint — SharePoint 2010  (&lt;a href="http://www.cmswire.com/news/topic/sharepoint"&gt;news&lt;/a&gt;, &lt;a href="http://sharepoint.microsoft.com/Pages/Default.aspx"&gt;site&lt;/a&gt;). Unfortunately there is often a lack of understanding in how to upgrade the platform to maximize business value whilst ensuring a smooth transition for users and administrators. Upgrading such a critical piece of software such as SharePoint requires much more than simply thinking about the technical issues.&lt;br /&gt;&lt;a href="http://www.cmswire.com/cms/enterprise-cms/5-ways-to-ruin-your-sharepoint-2010-upgrade-008392.php?utm_source=MainRSSFeed&amp;amp;utm_medium=Web&amp;amp;utm_campaign=RSS-News"&gt;Read full story...&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5591885701432628793-6348139476772470043?l=blog.reversingmotions.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.cmswire.com/cms/enterprise-cms/5-ways-to-ruin-your-sharepoint-2010-upgrade-008392.php' title='5 Ways to Ruin Your SharePoint 2010 Upgrade'/><link rel='replies' type='application/atom+xml' href='http://blog.reversingmotions.com/feeds/6348139476772470043/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.reversingmotions.com/2010/08/5-ways-to-ruin-your-sharepoint-2010.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/6348139476772470043'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/6348139476772470043'/><link rel='alternate' type='text/html' href='http://blog.reversingmotions.com/2010/08/5-ways-to-ruin-your-sharepoint-2010.html' title='5 Ways to Ruin Your SharePoint 2010 Upgrade'/><author><name>Moez Tounsi</name><uri>https://profiles.google.com/112395018233684788902</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-7J1Be4Pf7gA/AAAAAAAAAAI/AAAAAAAAAJ4/3Wf7Ljaf8Ik/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5591885701432628793.post-9106230215821944099</id><published>2010-08-24T10:48:00.000+01:00</published><updated>2010-10-06T16:55:49.913+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET 1.0/1.1/2.0/3.5/4.0'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='Fun'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><title type='text'>Blog Post: Start me up - Happy 15th Birthday Windows 95</title><content type='html'>&lt;a href="http://blogs.msdn.com/b/robmar/archive/2010/08/24/start-me-up-happy-15th-birthday-windows-95.aspx"&gt;Blog Post: Start me up - Happy 15th Birthday Windows 95&lt;/a&gt;: &lt;p&gt;&lt;img style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px; PADDING-TOP: 0px" title="" border="0" alt="PA // Microsoft Windows 95 launch with Bill Gates" align="left" src="http://estb.msn.com/i/A9/BE9EC679CCCBE510DE0BC2B48B3F7.jpg" width="143" height="92" /&gt;Being here at Microsoft for the &lt;a href="http://en.wikipedia.org/wiki/Windows_95"&gt;Windows 95&lt;/a&gt; launch back in 1995 , and it is strange to look back on those heady days etc… &lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;Do you remember this “Start Me Up”…&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"&gt;&lt;div style="PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-TOP: 0px"&gt;&lt;div&gt;&lt;a href="http://www.youtube.com/watch?v=5VPFKnBYOSI"&gt;&lt;img style="BORDER-BOTTOM-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-TOP-STYLE: none; BORDER-LEFT-STYLE: none" alt="" src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-69-70-metablogapi/5658.video87f1afa30396_5F00_190E583F.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://twitter.com/winlivematt"&gt;@winlivematt&lt;/a&gt; over on UK MSN has a great article looking back on &lt;a href="http://tech.uk.msn.com/microsoft/photos.aspx?cp-documentid=150412442"&gt;Microsoft Windows through the ages&lt;/a&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"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Windows+95" rel="tag"&gt;Windows 95&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5591885701432628793-9106230215821944099?l=blog.reversingmotions.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://blogs.msdn.com/b/robmar/archive/2010/08/24/start-me-up-happy-15th-birthday-windows-95.aspx' title='Blog Post: Start me up - Happy 15th Birthday Windows 95'/><link rel='replies' type='application/atom+xml' href='http://blog.reversingmotions.com/feeds/9106230215821944099/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.reversingmotions.com/2010/08/blog-post-start-me-up-happy-15th.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/9106230215821944099'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/9106230215821944099'/><link rel='alternate' type='text/html' href='http://blog.reversingmotions.com/2010/08/blog-post-start-me-up-happy-15th.html' title='Blog Post: Start me up - Happy 15th Birthday Windows 95'/><author><name>Moez Tounsi</name><uri>https://profiles.google.com/112395018233684788902</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-7J1Be4Pf7gA/AAAAAAAAAAI/AAAAAAAAAJ4/3Wf7Ljaf8Ik/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5591885701432628793.post-3159836453098555231</id><published>2010-08-24T10:13:00.000+01:00</published><updated>2010-10-06T16:55:49.914+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET 1.0/1.1/2.0/3.5/4.0'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='WCF'/><title type='text'>Blog Post: Integrating WCF RIA Services with WCF Routing</title><content type='html'>&lt;a href="http://blogs.msdn.com/b/silverlightws/archive/2010/08/24/integrating-wcf-ria-services-with-wcf-routing.aspx"&gt;Blog Post: Integrating WCF RIA Services with WCF Routing&lt;/a&gt;:&lt;br /&gt;If any of you have used RIA Services and tried to get that to work with the WCF router, you probably encountered some problems. The router could be useful in a DMZ scenario, or if you are trying to do content-based routing. Yavor Georgiev just &lt;a href="http://hashtagfail.com/post/1000967093/wcf-routing-ria-services"&gt;blogged a quick sample on how to get this to work&lt;/a&gt;, please take a look and let me know what you think!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5591885701432628793-3159836453098555231?l=blog.reversingmotions.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://blogs.msdn.com/b/silverlightws/archive/2010/08/24/integrating-wcf-ria-services-with-wcf-routing.aspx' title='Blog Post: Integrating WCF RIA Services with WCF Routing'/><link rel='replies' type='application/atom+xml' href='http://blog.reversingmotions.com/feeds/3159836453098555231/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.reversingmotions.com/2010/08/blog-post-integrating-wcf-ria-services.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/3159836453098555231'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/3159836453098555231'/><link rel='alternate' type='text/html' href='http://blog.reversingmotions.com/2010/08/blog-post-integrating-wcf-ria-services.html' title='Blog Post: Integrating WCF RIA Services with WCF Routing'/><author><name>Moez Tounsi</name><uri>https://profiles.google.com/112395018233684788902</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-7J1Be4Pf7gA/AAAAAAAAAAI/AAAAAAAAAJ4/3Wf7Ljaf8Ik/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5591885701432628793.post-4643793908815280302</id><published>2010-08-24T10:10:00.000+01:00</published><updated>2010-10-06T16:55:49.915+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET 1.0/1.1/2.0/3.5/4.0'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><title type='text'>Blog Post: New Microsoft Office Education Add-Ins - with the correct download link</title><content type='html'>&lt;a href="http://blogs.msdn.com/b/ukschools/archive/2010/08/24/new-microsoft-office-education-add-ins-with-the-correct-download-link.aspx"&gt;Blog Post: New Microsoft Office Education Add-Ins - with the correct download link&lt;/a&gt;: " &lt;p&gt;&lt;em&gt;&lt;strong&gt;Sorry, when I originally posted this blog post, it had the wrong URL for the downloads. I've now corrected the original, and here it is again, with the correct URLs. &lt;/strong&gt;This happened because I was on holiday during the release, so had to pre-write the blog post, and then the download URL changed before it was released. And it's the first day back for me, so the first chance to correct it. Sorry all!&lt;/em&gt;&lt;/p&gt;&lt;p&gt;The education products team in Seattle have been busy writing add-ins for Office 2007 and Office 2010. They’ve just released 2 free education add-ins, 20 new education templates, and how-to materials designed to help teachers both inside and outside the classroom. The new Interactive Classroom Add-in, Mathematics Add-in, and Learning Essential Templates could save your teachers time as well as help creating more engagement with students.&lt;/p&gt;&lt;h3&gt;&lt;b&gt;Interactive Classroom Add-in &lt;/b&gt;&lt;/h3&gt;&lt;p&gt;The &lt;a title="Go to the site for the Education Addins for Office" href="http://www.microsoft.com/officeaddins"&gt;Interactive Classroom Add-in&lt;/a&gt; for PowerPoint 2007 and 2010 and OneNote 2007 and 2010 provides real-time polling and interactive note-taking to foster interaction and collaboration between educators and students. &lt;/p&gt;&lt;p&gt;I like it, but perhaps a better recommendation would be somebody within education. Professor Beth Simon of the University of California in San Diego has had a chance to use the beta version of the Interactive Classroom Add-in, and said:&lt;/p&gt;&lt;table style="WIDTH: 90%" bgcolor="#dbeef4" align="center"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td height="20" width="100%" colspan="3" align="left"&gt;&lt;img src="http://blogs.msdn.com/photos/rayfl/images/9808591/original.aspx" /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width="10%"&gt;&lt;/td&gt;&lt;td width="100%" align="left"&gt;It’s very easy to insert polls automatically as I’m designing a lecture. When I’m lecturing, it’s so easy to recognise when a poll comes up and to start and stop the polling software. No longer do I have to try and interact with the clicker software, it’s all right there in PowerPoint.&lt;/td&gt;&lt;td width="10%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width="100%" colspan="3" align="right"&gt;&lt;img src="http://blogs.msdn.com/photos/rayfl/images/9808592/original.aspx" /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt; &lt;/p&gt;&lt;h3&gt;&lt;b&gt;Mathematics Add-in&lt;/b&gt;&lt;/h3&gt;&lt;p&gt;The &lt;a href="http://www.microsoft.com/officeaddins"&gt;Mathematics Add-in&lt;/a&gt; for Word 2007 and 2010 and OneNote 2010 uses dynamic 3D graphs and charts to help teachers illustrate complex math problems and concepts. From algebra and pre-calculus to physics and statistics, teachers and students can unravel equations and visualise formulas through 2-D and 3-D graphs. The add-in helps students plot functions, calculate numerical results, and dynamically solve for 'x'. &lt;/p&gt;&lt;p&gt;The Microsoft Office Education Add-ins are easy to install and use. Just follow the instructions on the &lt;a href="http://www.microsoft.com/officeaddins"&gt;Download site&lt;/a&gt;. &lt;/p&gt;&lt;p&gt;&lt;b&gt;Office Templates for teachers&lt;/b&gt;&lt;/p&gt;&lt;p&gt;The Learning Essential templates are a set of Office templates created specifically for the education setting. From grading rubrics to tests and quizzes, these templates can help educators get more done faster. You can &lt;a href="http://office.microsoft.com/en-us/templates/results.aspx?qu=learning%20essentials&amp;amp;tl=3"&gt;download&lt;/a&gt; the templates for free.&lt;br /&gt;&lt;em&gt;These are written for US teachers, so some may need a bit of tweaking.&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;How-to Materials for OneNote 2010 and Office Web Apps&lt;/b&gt;&lt;/p&gt;&lt;p&gt;The new &lt;a href="http://www.microsoft.com/teacherguides"&gt;teacher how-to materials&lt;/a&gt; help teachers learn to use OneNote 2010 and the Office Web Apps in the classroom to engage students more deeply. By using the teaching guide, videos, lesson plans, and easy step-by-step instructions, teachers can get up and running quickly so they can focus on what matters most.&lt;/p&gt;&lt;p&gt;These new tools provide the perfect complement to Office 2010 for teachers.&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;div style="PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: 0px"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5591885701432628793-4643793908815280302?l=blog.reversingmotions.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://blogs.msdn.com/b/ukschools/archive/2010/08/24/new-microsoft-office-education-add-ins-with-the-correct-download-link.aspx' title='Blog Post: New Microsoft Office Education Add-Ins - with the correct download link'/><link rel='replies' type='application/atom+xml' href='http://blog.reversingmotions.com/feeds/4643793908815280302/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.reversingmotions.com/2010/08/blog-post-new-microsoft-office.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/4643793908815280302'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/4643793908815280302'/><link rel='alternate' type='text/html' href='http://blog.reversingmotions.com/2010/08/blog-post-new-microsoft-office.html' title='Blog Post: New Microsoft Office Education Add-Ins - with the correct download link'/><author><name>Moez Tounsi</name><uri>https://profiles.google.com/112395018233684788902</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-7J1Be4Pf7gA/AAAAAAAAAAI/AAAAAAAAAJ4/3Wf7Ljaf8Ik/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5591885701432628793.post-6672888740571413061</id><published>2010-08-24T09:02:00.000+01:00</published><updated>2010-10-06T16:55:49.916+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET 1.0/1.1/2.0/3.5/4.0'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><title type='text'>SharePoint: If your users need to make light edits to Office docs, have you integrated Office Web Apps into your #SharePoint site?</title><content type='html'>&lt;a href="http://twitter.com/SharePoint/statuses/21945650748"&gt;SharePoint: If your users need to make light edits to Office docs, have you integrated Office Web Apps into your #SharePoint site?&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5591885701432628793-6672888740571413061?l=blog.reversingmotions.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://twitter.com/SharePoint/statuses/21945650748' title='SharePoint: If your users need to make light edits to Office docs, have you integrated Office Web Apps into your #SharePoint site?'/><link rel='replies' type='application/atom+xml' href='http://blog.reversingmotions.com/feeds/6672888740571413061/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.reversingmotions.com/2010/08/sharepoint-if-your-users-need-to-make.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/6672888740571413061'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/6672888740571413061'/><link rel='alternate' type='text/html' href='http://blog.reversingmotions.com/2010/08/sharepoint-if-your-users-need-to-make.html' title='SharePoint: If your users need to make light edits to Office docs, have you integrated Office Web Apps into your #SharePoint site?'/><author><name>Moez Tounsi</name><uri>https://profiles.google.com/112395018233684788902</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-7J1Be4Pf7gA/AAAAAAAAAAI/AAAAAAAAAJ4/3Wf7Ljaf8Ik/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5591885701432628793.post-600737115103676513</id><published>2010-08-23T13:29:00.000+01:00</published><updated>2010-10-06T16:55:49.917+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET 1.0/1.1/2.0/3.5/4.0'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>ASP.NET MVC HTML5 Toolkit</title><content type='html'>&lt;a href="http://www.deanhume.com/Home/BlogPost/asp-net-mvc-html5-toolkit/29"&gt;ASP.NET MVC HTML5 Toolkit&lt;/a&gt;: "&lt;p&gt;Dean Hume introduces a new toolkit which extends ASP.NET MVC 2 View helpers to display backwards compatible HTML5 textboxes and controls.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5591885701432628793-600737115103676513?l=blog.reversingmotions.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.deanhume.com/Home/BlogPost/asp-net-mvc-html5-toolkit/29' title='ASP.NET MVC HTML5 Toolkit'/><link rel='replies' type='application/atom+xml' href='http://blog.reversingmotions.com/feeds/600737115103676513/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.reversingmotions.com/2010/08/aspnet-mvc-html5-toolkit.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/600737115103676513'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5591885701432628793/posts/default/600737115103676513'/><link rel='alternate' type='text/html' href='http://blog.reversingmotions.com/2010/08/aspnet-mvc-html5-toolkit.html' title='ASP.NET MVC HTML5 Toolkit'/><author><name>Moez Tounsi</name><uri>https://profiles.google.com/112395018233684788902</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh3.googleusercontent.com/-7J1Be4Pf7gA/AAAAAAAAAAI/AAAAAAAAAJ4/3Wf7Ljaf8Ik/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5591885701432628793.post-244672802354733907</id><published>2010-05-26T13:50:00.000+01:00</published><updated>2010-10-06T16:55:49.918+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET 1.0/1.1/2.0/3.5/4.0'/><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><title type='text'>Lists and Content Types</title><content type='html'>&lt;div class="CHAPTER"&gt;&lt;div class="section"&gt;&lt;p class="FIRST-PARA"&gt;&lt;span style="font-family:arial;"&gt;The central component to collaborative applications is a flexible data model, with which users can store, manage, and collaborate on data. This data may represent people, things, or documents and can store a great amount of metadata about the actual pieces of data. For example, a document may have multiple keywords associated with it as well as approval status, author information, and tracking data. Another example of collaborative data may be represented by a customer who has associated industry-related data as well as people-related data and may link to data in additional lists.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="SECTION"&gt;&lt;br /&gt;&lt;h3 class="sect3-title"&gt;&lt;br /&gt;&lt;a name="404"&gt;&lt;/a&gt;&lt;a name="ch06lev2sec111"&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;Windows SharePoint Services List Data&lt;/span&gt;&lt;/h3&gt;&lt;br /&gt;&lt;p class="FIRST-PARA"&gt;&lt;span style="font-family:arial;"&gt;Windows SharePoint Services (WSS) implements collaborative data with lists and content types, both of which are defined based on an XML-defined schema that is either created at runtime through user customization or predefined on the file system in XML-based files within features. These XML-based files are written in a WSS-specific language known as &lt;i class="CITETITLE" crossref="http://www.jclark.com/xt/java/com.books24x7.xsl.Crossref"&gt;Collaborative Application Markup Language (CAML)&lt;/i&gt;. When you develop WSS type definitions with CAML-such as site columns, content types, and list templates-you are creating &lt;i class="EMPHASIS"&gt;provision&lt;/i&gt;&lt;i class="emphasis"&gt;ing components&lt;/i&gt; that users can use in their own collaborative applications. When you create site columns, content types, and list templates through the WSS user interface, you are creating types of &lt;i class="EMPHASIS"&gt;customized content&lt;/i&gt; that exist within the scope of a single site.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="para"&gt;&lt;span style="font-family:arial;"&gt;Although provisioning components are harder to create and test, they can be more easily reused across any site in a farm, and they can be packaged and deployed in WSS solution packages for remote deployment. Customized content within a live site, on the other hand, is not as reusable. The design and creation of provisioning components is the preferred approach when you want to reuse, repackage, or resell your components. However, customizing content through the WSS user interface is good for rapid prototyping or continuing to evolve a single site in production. &lt;/span&gt;&lt;a name="405"&gt;&lt;/a&gt;&lt;a name="IDX-"&gt;&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="PARA"&gt;&lt;span style="font-family:arial;"&gt;When developing provisioning components, you will find that it can be difficult, because there is little debugging support and often the error messages you get are cryptic. To be successful at developing provisioning components, you will want to use a variety of development techniques including automated testing and deployment scripts during the development process.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="para"&gt;&lt;span style="font-family:arial;"&gt;You will also want to refer to and dissect the built-in features and provisioning components that ship with WSS, as well as those that ship with Microsoft Office SharePoint Server 2007 (MOSS). Copying and editing these components will often get you very close to what you want, and adding custom functionality can be more stable than rewriting at times. However, as a rule of thumb, you should never modify the features and provisioning components that are included with the product. Instead, copy their files or their XML content into your own feature and provisioning components and then modify the copy.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;table class="note" border="0" cellspacing="0" cellpadding="0"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tbody&gt;&lt;tr&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;td class="admon-check" valign="top"&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;/td&gt;&lt;td class="admon-title" valign="top"&gt;&lt;span style="font-family:arial;"&gt;Note &lt;/span&gt;&lt;/td&gt;&lt;td class="ADMON-BODY" valign="top"&gt;&lt;br /&gt;&lt;p class="first-para"&gt;&lt;span style="font-family:arial;"&gt;Although some of the C# code samples in this chapter will be written in console applications, you also could program similar code within feature event handlers. Note that the Console application code references &lt;i class="emphasis"&gt;http://localhost&lt;/i&gt;, because console applications in WSS can run against only the local server.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tr&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;div class="SECTION"&gt;&lt;br /&gt;&lt;h4 class="sect4-title"&gt;&lt;br /&gt;&lt;a name="406"&gt;&lt;/a&gt;&lt;a name="CH06LEV3SEC112"&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;Working with WSS Lists&lt;/span&gt;&lt;/h4&gt;&lt;br /&gt;&lt;p class="FIRST-PARA"&gt;&lt;span style="font-family:arial;"&gt;At the heart of the core WSS architecture is the infrastructure for defining list types and provisioning list instances to store content. Document libraries, which play a vital role in creating WSS business solutions, can be seen as hybrid lists that leverage and extend the same mechanisms and storage model that are used by standard lists.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="PARA"&gt;&lt;span style="font-family:arial;"&gt;WSS ships with a variety of built-in list types (shown in &lt;/span&gt;&lt;a class="INTERNALJUMP" href="http://www.blogger.com/post-create.g?blogID=5591885701432628793#ch06table01"&gt;&lt;span style="font-family:arial;"&gt;Table 6-1&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;) that can solve many business needs without requiring custom development. These list types are visible on the standard WSS Create page, and they enable users to quickly create list instances on an ad hoc basis. Within the Create page, these built-in list types are broken out into sections including &lt;i class="EMPHASIS"&gt;Libraries&lt;/i&gt;, &lt;i class="emphasis"&gt;Communications&lt;/i&gt;, &lt;i class="EMPHASIS"&gt;Tracking&lt;/i&gt;, and &lt;i class="EMPHASIS"&gt;Custom Lists&lt;/i&gt;.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;a name="407"&gt;&lt;/a&gt;&lt;a name="CH06TABLE01"&gt;&lt;/a&gt;&lt;br /&gt;&lt;table id="ch06table01" class="table" border="1" linktabletoexcel="yes"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;caption class="TABLE-TITLE"&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span class="table-title"&gt;&lt;span class="table-titlelabel"&gt;Table 6-1: &lt;/span&gt;WSS List Definitions&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a class="OBJECT-LINK" target="_blank"&gt;&lt;span style="font-family:arial;"&gt;&lt;img border="0" alt="" src="http://www.blogger.com/images/b24-bluearrow.gif" width="13" height="11" /&gt; Open table as spreadsheet&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/caption&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;thead&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tr valign="top"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;th class="th" valign="top" scope="col" align="left"&gt;&lt;br /&gt;&lt;p class="table-para"&gt;&lt;span style="font-family:arial;"&gt;&lt;b class="bold"&gt;List Type&lt;/b&gt; &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/th&gt;&lt;th class="TH" valign="top" scope="col" align="left"&gt;&lt;br /&gt;&lt;p class="table-para"&gt;&lt;span style="font-family:arial;"&gt;&lt;b class="BOLD"&gt;Description&lt;/b&gt; &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/th&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tr&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/thead&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tbody&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tr valign="top"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;td class="TD" valign="top" align="left"&gt;&lt;br /&gt;&lt;p class="table-para"&gt;&lt;span style="font-family:arial;"&gt;Document library &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;td class="td" valign="top" align="left"&gt;&lt;br /&gt;&lt;p class="TABLE-PARA"&gt;&lt;span style="font-family:arial;"&gt;Used for collaborating on documents with support for versioning, check-in and check-out, and workflow. Includes support for deep integration with Microsoft Office. &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tr&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tr valign="top"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;td class="td" valign="top" align="left"&gt;&lt;br /&gt;&lt;p class="table-para"&gt;&lt;span style="font-family:arial;"&gt;Form library &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;td class="td" valign="top" align="left"&gt;&lt;br /&gt;&lt;p class="table-para"&gt;&lt;span style="font-family:arial;"&gt;Used to store XML documents and forms for use with Microsoft Office InfoPath. &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tr&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tr valign="top"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;td class="td" valign="top" align="left"&gt;&lt;br /&gt;&lt;p class="table-para"&gt;&lt;span style="font-family:arial;"&gt;Wiki page library &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;td class="td" valign="top" align="left"&gt;&lt;br /&gt;&lt;p class="table-para"&gt;&lt;span style="font-family:arial;"&gt;Used for collaborative Web pages based on wiki pages, which are dynamically generated and collaboratively edited Web pages. &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tr&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tr valign="top"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;td class="TD" valign="top" align="left"&gt;&lt;br /&gt;&lt;p class="TABLE-PARA"&gt;&lt;span style="font-family:arial;"&gt;Picture library &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;td class="td" valign="top" align="left"&gt;&lt;br /&gt;&lt;p class="TABLE-PARA"&gt;&lt;span style="font-family:arial;"&gt;A specialized document library enhanced for use with pictures. Includes support for slide shows, thumbnails, and simple editing through Microsoft Office Picture Manager. &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tr&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tr valign="top"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;td class="td" valign="top" align="left"&gt;&lt;br /&gt;&lt;p class="table-para"&gt;&lt;span style="font-family:arial;"&gt;Announcements &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;td class="TD" valign="top" align="left"&gt;&lt;br /&gt;&lt;p class="table-para"&gt;&lt;span style="font-family:arial;"&gt;Used for simple sharing of timely news with support for expiration. &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tr&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tr valign="top"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;td class="TD" valign="top" align="left"&gt;&lt;br /&gt;&lt;p class="TABLE-PARA"&gt;&lt;span style="font-family:arial;"&gt;Contacts &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;td class="TD" valign="top" align="left"&gt;&lt;br /&gt;&lt;p class="TABLE-PARA"&gt;&lt;span style="font-family:arial;"&gt;A list for tracking people and contact information, with support for integration into Microsoft Office Outlook and other WSS-compatible contacts applications. &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tr&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tr valign="top"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;td class="td" valign="top" align="left"&gt;&lt;br /&gt;&lt;p class="table-para"&gt;&lt;span style="font-family:arial;"&gt;Discussions &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;td class="TD" valign="top" align="left"&gt;&lt;br /&gt;&lt;p class="table-para"&gt;&lt;span style="font-family:arial;"&gt;A simple list for threaded discussions with support for approval and managing discussion threads. &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tr&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tr valign="top"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;td class="TD" valign="top" align="left"&gt;&lt;br /&gt;&lt;p class="table-para"&gt;&lt;span style="font-family:arial;"&gt;Links &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;td class="TD" valign="top" align="left"&gt;&lt;br /&gt;&lt;p class="TABLE-PARA"&gt;&lt;span style="font-family:arial;"&gt;A list for managing hyperlinks. &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tr&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tr valign="top"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;td class="td" valign="top" align="left"&gt;&lt;br /&gt;&lt;p class="table-para"&gt;&lt;span style="font-family:arial;"&gt;Calendar &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;td class="TD" valign="top" align="left"&gt;&lt;br /&gt;&lt;p class="TABLE-PARA"&gt;&lt;span style="font-family:arial;"&gt;A list for tracking upcoming events and deadlines. Includes support for integration and synchronization with Office Outlook. &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tr&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tr valign="top"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;td class="td" valign="top" align="left"&gt;&lt;br /&gt;&lt;p class="TABLE-PARA"&gt;&lt;span style="font-family:arial;"&gt;Tasks &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;td class="td" valign="top" align="left"&gt;&lt;br /&gt;&lt;p class="TABLE-PARA"&gt;&lt;span style="font-family:arial;"&gt;A list of activity-based items that can integrate with workflow. &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tr&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tr valign="top"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;td class="td" valign="top" align="left"&gt;&lt;br /&gt;&lt;p class="table-para"&gt;&lt;span style="font-family:arial;"&gt;Project tasks &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;td class="TD" valign="top" align="left"&gt;&lt;br /&gt;&lt;p class="table-para"&gt;&lt;span style="font-family:arial;"&gt;An enhanced tasks list with support for Gannt chart rendering and integration with Microsoft Office Project. &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tr&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tr valign="top"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;td class="TD" valign="top" align="left"&gt;&lt;br /&gt;&lt;p class="TABLE-PARA"&gt;&lt;span style="font-family:arial;"&gt;Issue tracking &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;td class="td" valign="top" align="left"&gt;&lt;br /&gt;&lt;p class="table-para"&gt;&lt;span style="font-family:arial;"&gt;A list for tracking issues and resolution, with support for prioritization. &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tr&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tr valign="top"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;td class="td" valign="top" align="left"&gt;&lt;br /&gt;&lt;p class="table-para"&gt;&lt;span style="font-family:arial;"&gt;Custom list &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;td class="td" valign="top" align="left"&gt;&lt;br /&gt;&lt;p class="table-para"&gt;&lt;span style="font-family:arial;"&gt;An empty list definition for extending with custom columns, or created using Microsoft Office Excel spreadsheets. &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tr&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tbody&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/table&gt;&lt;br /&gt;&lt;table class="tip" border="0" cellspacing="0" cellpadding="0"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tbody&gt;&lt;tr&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;td class="admon-check" valign="top"&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;/td&gt;&lt;td class="ADMON-TITLE" valign="top"&gt;&lt;span style="font-family:arial;"&gt;Tip &lt;/span&gt;&lt;/td&gt;&lt;td class="admon-body" valign="top"&gt;&lt;br /&gt;&lt;p class="FIRST-PARA"&gt;&lt;span style="font-family:arial;"&gt;WSS galleries such as Web Part galleries and master page galleries are all implemented based on specialized document libraries.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tr&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;a name="408"&gt;&lt;/a&gt;&lt;a name="idx-177"&gt;&lt;/a&gt;&lt;br /&gt;&lt;p class="para"&gt;&lt;span style="font-family:arial;"&gt;At a lower level, WSS classifies list types using &lt;i class="emphasis"&gt;base types&lt;/i&gt;. Standard lists have a base type of 0, whereas document libraries have a base type of 1. There also are less frequently used base types for discussion forums (3), vote or survey lists (4), and issue lists (5). The base type defines a common set of columns, and all list types that are based on that base type automatically inherit those columns. For example, each of the built-in base types defines an ID field. This enables WSS to track each item in a list and to track each document in a document library behind the scenes with a unique integer identifier. WSS also adds several columns to the base type for document libraries that are not needed for standard list types.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="PARA"&gt;&lt;span style="font-family:arial;"&gt;List instances can be created either by users through the WSS user interface or by developers through the WSS object model. Later in the chapter, you also will see that you can create a list instance in a declarative fashion by adding a CAML element in a feature. Let’s start with a basic code sample that demonstrates how to create a new list instance from one of the built-in list types.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="PARA"&gt;&lt;br /&gt;&lt;a class="internaljump" href="http://www.blogger.com/post-create.g?blogID=5591885701432628793#ch06"&gt;&lt;span style="font-family:arial;"&gt;Listing 6-1&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt; provides the code to create a list instance. Before creating the list, the code checks to make sure a list of the same title doesn’t already exist. You will notice that the code enumerates through the lists within the current site, checking each list to see if there is a matching title. If a list with a matching title does not exist, the code in this application then creates a new instance of the Announcements list type and adds a link to the Quick Launch menu for easy access. &lt;/span&gt;&lt;a name="409"&gt;&lt;/a&gt;&lt;a name="idx-178"&gt;&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="widecontent"&gt;&lt;br /&gt;&lt;div class="example"&gt;&lt;br /&gt;&lt;span class="EXAMPLE-TITLE"&gt;&lt;span style="font-family:arial;"&gt;&lt;span class="EXAMPLE-TITLELABEL"&gt;Listing 6-1: &lt;/span&gt;Creating a new list instance using the WSS object model&lt;/span&gt;&lt;/span&gt;&lt;a name="410"&gt;&lt;/a&gt;&lt;a name="ch06"&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="formalbody"&gt;&lt;br /&gt;&lt;table class="blueline" border="0" cellspacing="0" cellpadding="0" width="100%"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tbody&gt;&lt;tr&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;td class="BLUECELL" bg style="color:#000080;"&gt;&lt;span style="font-family:arial;font-size:85%;color:#010100;"&gt;&lt;b&gt;&lt;img title="Start example" border="0" alt="Image from book" src="http://www.blogger.com/images/_.gif" width="1" height="2" /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tr&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;pre class="PROGRAMLISTING"&gt;&lt;br /&gt;&lt;span style="color:#c0c0c0;"&gt;&lt;span style="color:#000000;"&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;b class="BOLD"&gt;List Access Through the WSS Object Model&lt;/b&gt;&lt;br /&gt;using System;&lt;br /&gt;using Microsoft.SharePoint;&lt;br /&gt;&lt;br /&gt;class Program {&lt;br /&gt;  static void Main() {&lt;br /&gt;    using (SPSite site = new SPSite("http://localhost")) {&lt;br /&gt;      using (SPWeb web = site.OpenWeb()) {&lt;br /&gt;        string listName = "Litware News";&lt;br /&gt;        SPList list = null;&lt;br /&gt;        foreach (SPList currentList in web.Lists) {&lt;br /&gt;          if (currentList.Title.Equals(listName,&lt;br /&gt;                                       StringComparison.InvariantCultureIgnoreCase)) {&lt;br /&gt;            list = currentList;&lt;br /&gt;            break;&lt;br /&gt;          }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        if (list == null) {&lt;br /&gt;          Guid listID = web.Lists.Add(listName,&lt;br /&gt;                                      "List for big news items",&lt;br /&gt;                                      SPListTemplateType.Announcements);&lt;br /&gt;          list = web.Lists[listID];&lt;br /&gt;          list.OnQuickLaunch = true;&lt;br /&gt;          list.Update();&lt;br /&gt;        }&lt;br /&gt;      }&lt;br /&gt;    }&lt;br /&gt;  }&lt;br /&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;table class="BLUELINE" border="0" cellspacing="0" cellpadding="0" width="100%"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tbody&gt;&lt;tr&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;td class="BLUECELL" bg style="color:#000080;"&gt;&lt;span style="font-family:arial;font-size:85%;color:#010100;"&gt;&lt;b&gt;&lt;img title="End example" border="0" alt="Image from book" src="http://www.blogger.com/images/_.gif" width="1" height="2" /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tr&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;table class="blankspace" border="0" cellspacing="0" cellpadding="0" width="100%"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tbody&gt;&lt;tr&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;td height="16"&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;/td&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tr&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;p class="PARA"&gt;&lt;span style="font-family:arial;"&gt;Note the required call to the Update method on the SPList object at the end of this listing. This is required to save any changes you have made to list properties, such as, in this case, assigning a value of “true” to the OnQuickLaunch property.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="para"&gt;&lt;span style="font-family:arial;"&gt;Lists can also be accessed by using the GetList methods of the SPWeb class:&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="INFORMALEXAMPLE"&gt;&lt;br /&gt;&lt;div class="WIDECONTENT"&gt;&lt;br /&gt;&lt;pre class="PROGRAMLISTING"&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;SPList announcementsList = web.GetList("/Lists/Announcements");&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;p class="para"&gt;&lt;span style="font-family:arial;"&gt;The GetList method takes a site-relative path to the list folder or a list form page as an argument. If the list instance is not found, the GetList method will throw an exception of type FileNotFoundException. The only way to check if a list exists without throwing an exception is to enumerate the site object’s lists and check for its existence.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;table class="tip" border="0" cellspacing="0" cellpadding="0"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tbody&gt;&lt;tr&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;td class="admon-check" valign="top"&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;/td&gt;&lt;td class="admon-title" valign="top"&gt;&lt;span style="font-family:arial;"&gt;Tip &lt;/span&gt;&lt;/td&gt;&lt;td class="admon-body" valign="top"&gt;&lt;br /&gt;&lt;p class="first-para"&gt;&lt;span style="font-family:arial;"&gt;GetList is the preferred method to access a list by a URL. GetListFromUrl and GetListFromWebPartPageUrl function the same way as GetList but throw a generic SPException on failure rather than the more descriptive FileNotFoundException.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tr&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;a name="411"&gt;&lt;/a&gt;&lt;a name="idx-"&gt;&lt;/a&gt;&lt;br /&gt;&lt;p class="para"&gt;&lt;span style="font-family:arial;"&gt;After you have a reference to an SPList object for the list, you can create a new list item by adding an SPListItem to its Items collection. The SPListItem is a generic item with fields corresponding to the fields in the list. You can create and save a new list item by using the following code:&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="informalexample"&gt;&lt;br /&gt;&lt;pre class="programlisting"&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;SPListItem newItem = list.Items.Add();&lt;br /&gt;newItem ["Title"] = "Litware Goes Public!";&lt;br /&gt;newItem ["Body"] = " We all live in exciting times.";&lt;br /&gt;newItem["Expires"] = DateTime.Now + TimeSpan.FromDays(2);&lt;br /&gt;newItem.Update();&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;p class="para"&gt;&lt;span style="font-family:arial;"&gt;The Update method of the SPListItem object commits the changes to the list. If you don’t call the Update method, the list item data will not be saved. The fields (columns) of the list are specified using the display name. They can also be accessed by the GUID identifier of the field or the zero-based index in the Fields collection. If a field is specified that is not in the Fields collection for the list, an ArgumentException will be thrown. In some scenarios, you may want to enumerate through the fields in a list by using a foreach construct to ensure the field you are looking for really exists.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="informalexample"&gt;&lt;br /&gt;&lt;pre class="programlisting"&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;foreach (SPField field in list.Fields) {&lt;br /&gt;  if (!field.Hidden &amp;amp;&amp;amp; !field.ReadOnlyField)&lt;br /&gt;    Console.WriteLine(field.Title);&lt;br /&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;p class="para"&gt;&lt;span style="font-family:arial;"&gt;Enumerating through the fields also can be useful when enumerating list items. You can use the Fields collection to access data from the list item. To limit the fields displayed, you may want to display only user editable fields as shown in the following code example:&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="informalexample"&gt;&lt;br /&gt;&lt;div class="widecontent"&gt;&lt;br /&gt;&lt;pre class="programlisting"&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;foreach (SPListItem item in list.Items) {&lt;br /&gt;  foreach (SPField field in list.Fields) {&lt;br /&gt;    if (!field.Hidden &amp;amp;&amp;amp; !field.ReadOnlyField)&lt;br /&gt;      Console.WriteLine("{0} = {1}", field.Title, item[field.Id]);&lt;br /&gt;  }&lt;br /&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="section"&gt;&lt;br /&gt;&lt;h4 class="sect4-title"&gt;&lt;br /&gt;&lt;a name="412"&gt;&lt;/a&gt;&lt;a name="ch06lev3"&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;Using Queries for List Data&lt;/span&gt;&lt;/h4&gt;&lt;br /&gt;&lt;p class="first-para"&gt;&lt;span style="font-family:arial;"&gt;To get back specific results within a list, you can use the SPQuery object. When you use an SPQuery object, you will create CAML statements to select specific data within the target list. To select announcements that have expired, you may want to use a query built with CAML statements, as shown in the following example:&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="informalexample"&gt;&lt;br /&gt;&lt;div class="widecontent"&gt;&lt;br /&gt;&lt;pre class="programlisting"&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;SPQuery query = new SPQuery();&lt;br /&gt;query.ViewFields = @"&amp;lt;FieldRef Name='Title'/&amp;gt;&amp;lt;FieldRef Name='Expires'/&amp;gt;";&lt;br /&gt;query.Query =&lt;br /&gt;@"&amp;lt;Where&amp;gt;&lt;br /&gt;   &amp;lt;Lt&amp;gt;&lt;br /&gt;     &amp;lt;FieldRef Name='Expires' /&amp;gt;&lt;br /&gt;     &amp;lt;Value Type='DateTime'&amp;gt;&lt;br /&gt;     &amp;lt;Today /&amp;gt;&amp;lt;/Value&amp;gt;&lt;br /&gt;   &amp;lt;/Lt&amp;gt;&lt;br /&gt;&amp;lt;/Where&amp;gt;";&lt;br /&gt;&lt;br /&gt;SPList list = site.Lists["Litware News"];&lt;br /&gt;SPListItemCollection items = list.GetItems(query);&lt;br /&gt;foreach (SPListItem expiredItem in items) {&lt;br /&gt;  Console.WriteLine(expiredItem["Title"]);&lt;br /&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;a name="413"&gt;&lt;/a&gt;&lt;a name="IDX-180"&gt;&lt;/a&gt;&lt;br /&gt;&lt;p class="PARA"&gt;&lt;span style="font-family:arial;"&gt;You must specify the fields you want returned in the query by using the ViewFields property. Also note that you must specify the fields in terms of the field Name, and not DisplayName. If you attempt to access fields without specifying them in ViewFields, you will experience an exception of type ArgumentException.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="para"&gt;&lt;span style="font-family:arial;"&gt;The basic syntax for the query is “&amp;lt;Where&amp;gt;&amp;lt;&lt;i class="EMPHASIS"&gt;operator&lt;/i&gt;&amp;gt;&amp;lt;&lt;i class="emphasis"&gt;operand&lt;/i&gt; /&amp;gt;&amp;lt;&lt;i class="EMPHASIS"&gt;operand&lt;/i&gt; /&amp;gt;&amp;lt;/&lt;i class="EMPHASIS"&gt;operator&lt;/i&gt;&amp;gt; &amp;lt;/Where&amp;gt;”. &lt;/span&gt;&lt;a class="internaljump" href="http://www.blogger.com/post-create.g?blogID=5591885701432628793#ch06table02"&gt;&lt;span style="font-family:arial;"&gt;Table 6-2&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;, which appears later in this chapter, lists the basic CAML you will use with queries; for a more complete listing see the SDK.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="para"&gt;&lt;span style="font-family:arial;"&gt;SPQuery is a great way to get back items from a single list. Furthermore, using SPQuery can be significantly faster than enumerating through all the items within a particular list when you are looking only for items that match certain criteria. However, WSS 3.0 introduces a new query mechanism via the SPSiteDataQuery class. A query run with the SPSiteDataQuery class can return items from many different lists through an entire site collection. For this reason, queries run with the SPSiteDataQuery class are sometimes referred to as &lt;i class="EMPHASIS"&gt;cross-site queries&lt;/i&gt;.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="PARA"&gt;&lt;span style="font-family:arial;"&gt;As you saw in the last example, queries run against an SPQuery object return an SPListItemCollection. Queries run with an SPSiteDataQuery object are different, because they return an ADO.NET DataTable object. Just as with SPQuery, columns that are returned in the DataTable are specified as fields. For example, imagine a scenario in which you want to run a single query against every list in the current site collection that has been created from the Announcements list type and return all list items that were created today. The following code sample demonstrates how to do this by creating an SPSiteDataQuery object, initializing it with the necessary CAML statements, and then passing it to the current SPWeb object’s GetSiteData method.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="INFORMALEXAMPLE"&gt;&lt;br /&gt;&lt;div class="widecontent"&gt;&lt;br /&gt;&lt;pre class="PROGRAMLISTING"&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;SPSiteDataQuery query = new SPSiteDataQuery();&lt;br /&gt;query.Lists = @"&amp;lt;Lists ServerTemplate='104' /&amp;gt;";&lt;br /&gt;query.ViewFields = @"&amp;lt;FieldRef Name='Title'/&amp;gt;&amp;lt;FieldRef Name='Created'/&amp;gt;";&lt;br /&gt;query.Webs = "&amp;lt;Webs Scope='SiteCollection' /&amp;gt;";&lt;br /&gt;&lt;br /&gt;string queryText =&lt;br /&gt;@"&amp;lt;Where&amp;gt;&lt;br /&gt;   &amp;lt;Eq&amp;gt;&lt;br /&gt;     &amp;lt;FieldRef Name='Created' /&amp;gt;&lt;br /&gt;     &amp;lt;Value Type=""DateTime""&amp;gt;&lt;br /&gt;       &amp;lt;Today /&amp;gt;&lt;br /&gt;     &amp;lt;/Value&amp;gt;&lt;br /&gt;   &amp;lt;/Eq&amp;gt;&lt;br /&gt; &amp;lt;/Where&amp;gt;";&lt;br /&gt;&lt;br /&gt;query.Query = queryText;&lt;br /&gt;&lt;br /&gt;DataTable table = site.GetSiteData(query);&lt;br /&gt;&lt;br /&gt;foreach (DataRow row in table.Rows) {&lt;br /&gt;  Console.WriteLine(row["Title"].ToString());&lt;br /&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;a name="414"&gt;&lt;/a&gt;&lt;a name="idx-"&gt;&lt;/a&gt;&lt;br /&gt;&lt;p class="PARA"&gt;&lt;span style="font-family:arial;"&gt;This example assigns a CAML statement to the Lists property that specifies the ServerTemplate of 104, which is the list type identifier for the Announcements list. Even though GetSiteData is a method of the SPWeb reference, the query is performed against all sites in the current site collection. The scope of the query is controlled through a CAML statement in the SPSiteDataQuery’s Webs property, which assigns a value of “SiteCollection” to the Scope attribute. You can limit the query to a scope of “Site” to just query the current site or to a scope of “Recursive” to query the current site and all the child sites beneath it.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="PARA"&gt;&lt;span style="font-family:arial;"&gt;If you need to get a reference to the actual list item, you can get it by using the columns WebId, ListId, and ID.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="informalexample"&gt;&lt;br /&gt;&lt;div class="widecontent"&gt;&lt;br /&gt;&lt;pre class="programlisting"&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;SPWeb parentWeb = web.Site.OpenWeb(new Guid(row["WebId"].ToString()));&lt;br /&gt;SPList list = parentWeb.Lists[ new Guid(row["ListId"].ToString()) ];&lt;br /&gt;SPListItem item = list.GetItemById((int.Parse(row["ID"].ToString())));&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;p class="para"&gt;&lt;span style="font-family:arial;"&gt;The SPSiteDataQuery class is perhaps most useful for creating data-aggregation Web Parts, or data-aggregation XML feeds, such as a recently published RSS feed. &lt;/span&gt;&lt;a class="INTERNALJUMP" href="http://www.blogger.com/post-create.g?blogID=5591885701432628793#ch06"&gt;&lt;span style="font-family:arial;"&gt;Listing 6-2&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt; displays sample code for a recently published RSS feed. This same code could be used within a Web Part to create a rollup Web Part for any type of list, or you could use query parameters to vary the scope of the recently published items.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="para"&gt;&lt;span style="font-family:arial;"&gt;When using the SPSiteDataQuery class, you should note that only items that match the schema of the ViewFields parameter are returned. You also can filter the results by the ContentType field. In this case, we will filter on the Post content type. To use this handler, register it with the following element within the httpHandlers node of web.config:&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="informalexample"&gt;&lt;br /&gt;&lt;pre class="PROGRAMLISTING"&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&amp;lt;add verb="GET" path="recent.rss" type=&lt;br /&gt;"LitwareHandlers.RecentPostsHandler, LitwareHandlers"/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;table class="tip" border="0" cellspacing="0" cellpadding="0"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tbody&gt;&lt;tr&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;td class="ADMON-CHECK" valign="top"&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;/td&gt;&lt;td class="ADMON-TITLE" valign="top"&gt;&lt;span style="font-family:arial;"&gt;Tip &lt;/span&gt;&lt;/td&gt;&lt;td class="ADMON-BODY" valign="top"&gt;&lt;br /&gt;&lt;p class="FIRST-PARA"&gt;&lt;span style="font-family:arial;"&gt;Because all SharePoint Requests are routed through the .NET Framework, you do not need to register special file extensions with IIS. This lets you use extensions such as .rss without additional configuration.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tr&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;a name="415"&gt;&lt;/a&gt;&lt;a name="IDX-182"&gt;&lt;/a&gt;&lt;br /&gt;&lt;div class="widecontent"&gt;&lt;br /&gt;&lt;div class="EXAMPLE"&gt;&lt;br /&gt;&lt;span class="EXAMPLE-TITLE"&gt;&lt;span style="font-family:arial;"&gt;&lt;span class="EXAMPLE-TITLELABEL"&gt;Listing 6-2: &lt;/span&gt;The site data query applied to recently published Items&lt;/span&gt;&lt;/span&gt;&lt;a name="416"&gt;&lt;/a&gt;&lt;a name="ch06"&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="FORMALBODY"&gt;&lt;br /&gt;&lt;table class="blueline" border="0" cellspacing="0" cellpadding="0" width="100%"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tbody&gt;&lt;tr&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;td class="bluecell" bg style="color:#000080;"&gt;&lt;span style="font-family:arial;font-size:85%;color:#010100;"&gt;&lt;b&gt;&lt;img title="Start example" border="0" alt="Image from book" src="http://www.blogger.com/images/_.gif" width="1" height="2" /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tr&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;pre class="PROGRAMLISTING"&gt;&lt;br /&gt;&lt;span style="color:#c0c0c0;"&gt;&lt;span style="color:#000000;"&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;b class="bold"&gt;A "Recently Published" Feed&lt;/b&gt;&lt;br /&gt;using System;&lt;br /&gt;using System.Web;&lt;br /&gt;using Microsoft.SharePoint;&lt;br /&gt;using System.Data;&lt;br /&gt;using System.Xml;&lt;br /&gt;using Microsoft.SharePoint.Utilities;&lt;br /&gt;&lt;br /&gt;namespace Litware.ContentWebParts.Handlers {&lt;br /&gt;  public class RecentPostsHandler : IHttpHandler {&lt;br /&gt;&lt;br /&gt;    public bool IsReusable {&lt;br /&gt;      get { return true; }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public void ProcessRequest(HttpContext context) {&lt;br /&gt;      SPWeb web = SPContext.Current.Web;&lt;br /&gt;      SPSiteDataQuery query = new SPSiteDataQuery();&lt;br /&gt;&lt;br /&gt;      query.ViewFields =&lt;br /&gt;      @"&amp;lt;FieldRef Name=""Title""/&amp;gt;&amp;lt;FieldRef Name=""PostCategory""/&amp;gt;&lt;br /&gt;        &amp;lt;FieldRef Name=""PublishedDate""/&amp;gt;&amp;lt;FieldRef Name=""Body""/&amp;gt;&lt;br /&gt;        &amp;lt;FieldRef Name=""Author""/&amp;gt;&amp;lt;FieldRef Name=""Permalink""/&amp;gt;&lt;br /&gt;        &amp;lt;FieldRef Name=""ContentType""/&amp;gt;";&lt;br /&gt;&lt;br /&gt;      string queryText =&lt;br /&gt;      @"&amp;lt;Where&amp;gt;&lt;br /&gt;          &amp;lt;And&amp;gt;&lt;br /&gt;            &amp;lt;Eq&amp;gt;&lt;br /&gt;              &amp;lt;FieldRef Name=""ContentType"" /&amp;gt;&lt;br /&gt;              &amp;lt;Value Type=""Text""&amp;gt;Post&amp;lt;/Value&amp;gt;&lt;br /&gt;            &amp;lt;/Eq&amp;gt;&lt;br /&gt;            &amp;lt;Eq&amp;gt;&lt;br /&gt;              &amp;lt;FieldRef Name=""PublishedDate"" /&amp;gt;&lt;br /&gt;              &amp;lt;Value Type=""DateTime""&amp;gt;&amp;lt;Today /&amp;gt;&amp;lt;/Value&amp;gt;&lt;br /&gt;            &amp;lt;/Eq&amp;gt;&lt;br /&gt;          &amp;lt;/And&amp;gt;&lt;br /&gt;        &amp;lt;/Where&amp;gt;";&lt;br /&gt;&lt;br /&gt;      query.Query = queryText;&lt;br /&gt;      query.Webs = @"&amp;lt;Webs Scope='Recursive' /&amp;gt;";&lt;br /&gt;      DataTable table = web.GetSiteData(query);&lt;br /&gt;&lt;br /&gt;      context.Response.ContentType = "text/xml";&lt;br /&gt;&lt;br /&gt;      XmlTextWriter xw = new XmlTextWriter(context.Response.Output);&lt;br /&gt;      xw.WriteStartElement("rss");&lt;br /&gt;      xw.WriteAttributeString("version", "2.0");&lt;br /&gt;      xw.WriteStartElement("channel");&lt;br /&gt;      xw.WriteElementString("title", "Recently Published: " + web.Title);&lt;br /&gt;      xw.WriteElementString("description",&lt;br /&gt;        "Recently published posts from " + web.Url);&lt;br /&gt;      xw.WriteElementString("link", web.Url);&lt;br /&gt;&lt;br /&gt;      foreach(DataRow row in table.Rows){&lt;br /&gt;        xw.WriteStartElement("item");&lt;br /&gt;        xw.WriteElementString("title", (string)row["Title"]);&lt;br /&gt;        xw.WriteElementString("description", ((string)row["Body"]));&lt;br /&gt;        xw.WriteElementString("pubDate", row["PublishedDate"].ToString("r"));&lt;br /&gt;&lt;br /&gt;        string author =&lt;br /&gt;        row["Author"].ToString().Split(new string[] { ";#" },&lt;br /&gt;                                       StringSplitOptions.None)[1];&lt;br /&gt;        xw.WriteElementString("author", author);&lt;br /&gt;&lt;br /&gt;        string category =&lt;br /&gt;        row["PostCategory"].ToString().Split(new string[] { ";#" },&lt;br /&gt;                                             StringSplitOptions.None)[1];&lt;br /&gt;        xw.WriteElementString("category", category);&lt;br /&gt;&lt;br /&gt;        string link = string.Format(@"/Lists/Posts/Post.aspx?ID={0}",&lt;br /&gt;                                    row["Permalink"].ToString());&lt;br /&gt;        xw.WriteElementString("link", link);&lt;br /&gt;&lt;br /&gt;        xw.WriteEndElement(); //item&lt;br /&gt;      }&lt;br /&gt;      xw.WriteEndElement(); //channel&lt;br /&gt;      xw.WriteEndElement(); //rss&lt;br /&gt;    }&lt;br /&gt;  }&lt;br /&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;table class="blueline" border="0" cellspacing="0" cellpadding="0" width="100%"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tbody&gt;&lt;tr&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;td class="bluecell" bg style="color:#000080;"&gt;&lt;span style="font-family:arial;font-size:85%;color:#010100;"&gt;&lt;b&gt;&lt;img title="End example" border="0" alt="Image from book" src="http://www.blogger.com/images/_.gif" width="1" height="2" /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tr&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;table class="BLANKSPACE" border="0" cellspacing="0" cellpadding="0" width="100%"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tbody&gt;&lt;tr&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;td height="16"&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;/td&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tr&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;a name="417"&gt;&lt;/a&gt;&lt;a name="idx-"&gt;&lt;/a&gt;&lt;br /&gt;&lt;table class="WARNING" border="0" cellspacing="0" cellpadding="0"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tbody&gt;&lt;tr&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;td class="ADMON-CHECK" valign="top"&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;/td&gt;&lt;td class="admon-title" valign="top"&gt;&lt;span style="font-family:arial;"&gt;Warning &lt;/span&gt;&lt;/td&gt;&lt;td class="admon-body" valign="top"&gt;&lt;br /&gt;&lt;p class="FIRST-PARA"&gt;&lt;span style="font-family:arial;"&gt;In WSS 3.0, when working with posts from the blog site, the post “ContentType” is null. However, the ContentType field is set to “Post.”&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tr&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;a name="418"&gt;&lt;/a&gt;&lt;a name="ch06t"&gt;&lt;/a&gt;&lt;br /&gt;&lt;table id="ch06table02" class="table" border="1" linktabletoexcel="yes"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;caption class="table-title"&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span class="table-title"&gt;&lt;span class="table-titlelabel"&gt;Table 6-2: &lt;/span&gt;Basic CAML Query Elements&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a class="object-link" target="_blank"&gt;&lt;span style="font-family:arial;"&gt;&lt;img border="0" alt="" src="http://www.blogger.com/images/b24-bluearrow.gif" width="13" height="11" /&gt; Open table as spreadsheet&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/caption&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;thead&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tr valign="top"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;th class="th" valign="top" scope="col" align="left"&gt;&lt;br /&gt;&lt;p class="table-para"&gt;&lt;span style="font-family:arial;"&gt;&lt;b class="BOLD"&gt;Element&lt;/b&gt; &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/th&gt;&lt;th class="TH" valign="top" scope="col" align="left"&gt;&lt;br /&gt;&lt;p class="table-para"&gt;&lt;span style="font-family:arial;"&gt;&lt;b class="BOLD"&gt;Description&lt;/b&gt; &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/th&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tr&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/thead&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tbody&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tr valign="top"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;td class="td" valign="top" align="left"&gt;&lt;br /&gt;&lt;p class="table-para"&gt;&lt;span style="font-family:arial;"&gt;And &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;td class="TD" valign="top" align="left"&gt;&lt;br /&gt;&lt;p class="table-para"&gt;&lt;span style="font-family:arial;"&gt;Groups multiple conditions &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tr&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tr valign="top"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;td class="TD" valign="top" align="left"&gt;&lt;br /&gt;&lt;p class="TABLE-PARA"&gt;&lt;span style="font-family:arial;"&gt;BeginsWith &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;td class="TD" valign="top" align="left"&gt;&lt;br /&gt;&lt;p class="TABLE-PARA"&gt;&lt;span style="font-family:arial;"&gt;Searches for a string at the beginning of the text field &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tr&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tr valign="top"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;td class="td" valign="top" align="left"&gt;&lt;br /&gt;&lt;p class="table-para"&gt;&lt;span style="font-family:arial;"&gt;Contains &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;td class="TD" valign="top" align="left"&gt;&lt;br /&gt;&lt;p class="table-para"&gt;&lt;span style="font-family:arial;"&gt;Searches for a string within the text field &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tr&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tr valign="top"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;td class="TD" valign="top" align="left"&gt;&lt;br /&gt;&lt;p class="table-para"&gt;&lt;span style="font-family:arial;"&gt;Eq &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;td class="TD" valign="top" align="left"&gt;&lt;br /&gt;&lt;p class="TABLE-PARA"&gt;&lt;span style="font-family:arial;"&gt;Equal to &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tr&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tr valign="top"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;td class="td" valign="top" align="left"&gt;&lt;br /&gt;&lt;p class="table-para"&gt;&lt;span style="font-family:arial;"&gt;FieldRef &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;td class="TD" valign="top" align="left"&gt;&lt;br /&gt;&lt;p class="TABLE-PARA"&gt;&lt;span style="font-family:arial;"&gt;A reference to a field (useful for GroupBy elements) &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tr&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tr valign="top"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;td class="td" valign="top" align="left"&gt;&lt;br /&gt;&lt;p class="TABLE-PARA"&gt;&lt;span style="font-family:arial;"&gt;Geq &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;td class="td" valign="top" align="left"&gt;&lt;br /&gt;&lt;p class="TABLE-PARA"&gt;&lt;span style="font-family:arial;"&gt;Greater than or equal to &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tr&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tr valign="top"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;td class="td" valign="top" align="left"&gt;&lt;br /&gt;&lt;p class="table-para"&gt;&lt;span style="font-family:arial;"&gt;GroupBy &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;td class="TD" valign="top" align="left"&gt;&lt;br /&gt;&lt;p class="table-para"&gt;&lt;span style="font-family:arial;"&gt;Groups results by these fields &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tr&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tr valign="top"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;td class="TD" valign="top" align="left"&gt;&lt;br /&gt;&lt;p class="TABLE-PARA"&gt;&lt;span style="font-family:arial;"&gt;Gt &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;td class="td" valign="top" align="left"&gt;&lt;br /&gt;&lt;p class="table-para"&gt;&lt;span style="font-family:arial;"&gt;Greater than &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tr&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tr valign="top"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;td class="td" valign="top" align="left"&gt;&lt;br /&gt;&lt;p class="table-para"&gt;&lt;span style="font-family:arial;"&gt;IsNotNull &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;td class="td" valign="top" align="left"&gt;&lt;br /&gt;&lt;p class="table-para"&gt;&lt;span style="font-family:arial;"&gt;Is not null (not empty) &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tr&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tr valign="top"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;td class="td" valign="top" align="left"&gt;&lt;br /&gt;&lt;p class="table-para"&gt;&lt;span style="font-family:arial;"&gt;IsNull &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;td class="TD" valign="top" align="left"&gt;&lt;br /&gt;&lt;p class="table-para"&gt;&lt;span style="font-family:arial;"&gt;Is null (empty) &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tr&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tr valign="top"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;td class="TD" valign="top" align="left"&gt;&lt;br /&gt;&lt;p class="table-para"&gt;&lt;span style="font-family:arial;"&gt;Leq &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;td class="td" valign="top" align="left"&gt;&lt;br /&gt;&lt;p class="table-para"&gt;&lt;span style="font-family:arial;"&gt;Less than or equal to &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tr&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tr valign="top"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;td class="TD" valign="top" align="left"&gt;&lt;br /&gt;&lt;p class="TABLE-PARA"&gt;&lt;span style="font-family:arial;"&gt;Lt &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;td class="td" valign="top" align="left"&gt;&lt;br /&gt;&lt;p class="table-para"&gt;&lt;span style="font-family:arial;"&gt;Less than &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tr&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tr valign="top"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;td class="td" valign="top" align="left"&gt;&lt;br /&gt;&lt;p class="table-para"&gt;&lt;span style="font-family:arial;"&gt;Neq &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;td class="TD" valign="top" align="left"&gt;&lt;br /&gt;&lt;p class="TABLE-PARA"&gt;&lt;span style="font-family:arial;"&gt;Not equal to &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tr&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tr valign="top"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;td class="td" valign="top" align="left"&gt;&lt;br /&gt;&lt;p class="table-para"&gt;&lt;span style="font-family:arial;"&gt;Now &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;td class="td" valign="top" align="left"&gt;&lt;br /&gt;&lt;p class="TABLE-PARA"&gt;&lt;span style="font-family:arial;"&gt;The current date and time &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tr&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tr valign="top"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;td class="TD" valign="top" align="left"&gt;&lt;br /&gt;&lt;p class="TABLE-PARA"&gt;&lt;span style="font-family:arial;"&gt;Or &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;td class="TD" valign="top" align="left"&gt;&lt;br /&gt;&lt;p class="TABLE-PARA"&gt;&lt;span style="font-family:arial;"&gt;Boolean or operator &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tr&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tr valign="top"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;td class="td" valign="top" align="left"&gt;&lt;br /&gt;&lt;p class="TABLE-PARA"&gt;&lt;span style="font-family:arial;"&gt;OrderBy &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;td class="td" valign="top" align="left"&gt;&lt;br /&gt;&lt;p class="TABLE-PARA"&gt;&lt;span style="font-family:arial;"&gt;Orders the results of the query &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tr&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tr valign="top"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;td class="TD" valign="top" align="left"&gt;&lt;br /&gt;&lt;p class="TABLE-PARA"&gt;&lt;span style="font-family:arial;"&gt;Today &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;td class="td" valign="top" align="left"&gt;&lt;br /&gt;&lt;p class="table-para"&gt;&lt;span style="font-family:arial;"&gt;Today’s date &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tr&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tr valign="top"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;td class="td" valign="top" align="left"&gt;&lt;br /&gt;&lt;p class="table-para"&gt;&lt;span style="font-family:arial;"&gt;TodayIso &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;td class="td" valign="top" align="left"&gt;&lt;br /&gt;&lt;p class="table-para"&gt;&lt;span style="font-family:arial;"&gt;Today’s date in ISO format &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tr&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tr valign="top"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;td class="td" valign="top" align="left"&gt;&lt;br /&gt;&lt;p class="table-para"&gt;&lt;span style="font-family:arial;"&gt;Where &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;td class="td" valign="top" align="left"&gt;&lt;br /&gt;&lt;p class="table-para"&gt;&lt;span style="font-family:arial;"&gt;Used to specify the “Where” clause of the query &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tr&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tbody&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/table&gt;&lt;br /&gt;&lt;a name="419"&gt;&lt;/a&gt;&lt;a name="idx-"&gt;&lt;/a&gt;&lt;br /&gt;&lt;table class="tip" border="0" cellspacing="0" cellpadding="0"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tbody&gt;&lt;tr&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;td class="admon-check" valign="top"&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;/td&gt;&lt;td class="admon-title" valign="top"&gt;&lt;span style="font-family:arial;"&gt;Tip &lt;/span&gt;&lt;/td&gt;&lt;td class="admon-body" valign="top"&gt;&lt;br /&gt;&lt;p class="first-para"&gt;&lt;span style="font-family:arial;"&gt;For more information on the SPQuery syntax and a complete listing of CAML elements, consult the WSS SDK’s “Query Syntax” topic under General Reference: Reference: Collaborative Application Markup Language: Query Schema.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tr&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="section"&gt;&lt;br /&gt;&lt;h3 class="sect3-title"&gt;&lt;br /&gt;&lt;a name="420"&gt;&lt;/a&gt;&lt;a name="ch06lev2sec114"&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;Creating Custom List Elements&lt;/span&gt;&lt;/h3&gt;&lt;br /&gt;&lt;p class="first-para"&gt;&lt;span style="font-family:arial;"&gt;To create a list using the user interface, use the Site Actions menu to navigate to Create, Custom Lists, Custom List. The form on the resulting New page enables creation of an empty list by using the Custom List Type, which has no user editable columns (fields) except Title. After you create the list, you can then choose Create Column under the Settings menu to add new columns using standard WSS field types. A &lt;i class="emphasis"&gt;field type&lt;/i&gt; is a data type in WSS that can be used for content. It is similar to a SQL data type (and is defined with a SQL Data Type), although you can create your own field types as well. &lt;/span&gt;&lt;a class="internaljump" href="http://www.blogger.com/post-create.g?blogID=5591885701432628793#ch06table03"&gt;&lt;span style="font-family:arial;"&gt;Table 6-3&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt; displays the default WSS field (column) types available from the Create Column page.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;a name="421"&gt;&lt;/a&gt;&lt;a name="ch06t"&gt;&lt;/a&gt;&lt;br /&gt;&lt;table id="ch06table03" class="table" border="1" linktabletoexcel="yes"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;caption class="TABLE-TITLE"&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span class="TABLE-TITLE"&gt;&lt;span class="table-titlelabel"&gt;Table 6-3: &lt;/span&gt;Basic WSS Built-in Field Types&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a class="OBJECT-LINK" target="_blank"&gt;&lt;span style="font-family:arial;"&gt;&lt;img border="0" alt="" src="http://www.blogger.com/images/b24-bluearrow.gif" width="13" height="11" /&gt; Open table as spreadsheet&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/caption&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;thead&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tr valign="top"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;th class="th" valign="top" scope="col" align="left"&gt;&lt;br /&gt;&lt;p class="TABLE-PARA"&gt;&lt;span style="font-family:arial;"&gt;&lt;b class="BOLD"&gt;Field Type&lt;/b&gt; &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/th&gt;&lt;th class="th" valign="top" scope="col" align="left"&gt;&lt;br /&gt;&lt;p class="table-para"&gt;&lt;span style="font-family:arial;"&gt;&lt;b class="BOLD"&gt;Description&lt;/b&gt; &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/th&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tr&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/thead&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tbody&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tr valign="top"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;td class="TD" valign="top" align="left"&gt;&lt;br /&gt;&lt;p class="TABLE-PARA"&gt;&lt;span style="font-family:arial;"&gt;Single Line Of Text &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;td class="td" valign="top" align="left"&gt;&lt;br /&gt;&lt;p class="TABLE-PARA"&gt;&lt;span style="font-family:arial;"&gt;A single line of text. The maximum number of characters may be customized. &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tr&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tr valign="top"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;td class="td" valign="top" align="left"&gt;&lt;br /&gt;&lt;p class="TABLE-PARA"&gt;&lt;span style="font-family:arial;"&gt;Multiple Lines Of Text &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;td class="TD" valign="top" align="left"&gt;&lt;br /&gt;&lt;p class="table-para"&gt;&lt;span style="font-family:arial;"&gt;A text box with plain text, rich text (boldface, italics, text alignment), or enhanced rich text (pictures, tables, links). Rich text boxes are rendered in edit mode with a rich text toolbar. &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tr&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tr valign="top"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;td class="td" valign="top" align="left"&gt;&lt;br /&gt;&lt;p class="table-para"&gt;&lt;span style="font-family:arial;"&gt;Choice &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;td class="td" valign="top" align="left"&gt;&lt;br /&gt;&lt;p class="TABLE-PARA"&gt;&lt;span style="font-family:arial;"&gt;A choice of several items you define. &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tr&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tr valign="top"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;td class="td" valign="top" align="left"&gt;&lt;br /&gt;&lt;p class="table-para"&gt;&lt;span style="font-family:arial;"&gt;Number &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;td class="TD" valign="top" align="left"&gt;&lt;br /&gt;&lt;p class="table-para"&gt;&lt;span style="font-family:arial;"&gt;A numerical value. Options include minimum, maximum, decimal places, and so on. &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tr&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tr valign="top"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;td class="TD" valign="top" align="left"&gt;&lt;br /&gt;&lt;p class="TABLE-PARA"&gt;&lt;span style="font-family:arial;"&gt;Currency &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;td class="TD" valign="top" align="left"&gt;&lt;br /&gt;&lt;p class="TABLE-PARA"&gt;&lt;span style="font-family:arial;"&gt;A monetary value in a specific currency format. &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tr&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tr valign="top"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;td class="TD" valign="top" align="left"&gt;&lt;br /&gt;&lt;p class="table-para"&gt;&lt;span style="font-family:arial;"&gt;Date And Time &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;td class="TD" valign="top" align="left"&gt;&lt;br /&gt;&lt;p class="TABLE-PARA"&gt;&lt;span style="font-family:arial;"&gt;Date information, or date and time information. &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tr&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tr valign="top"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;td class="TD" valign="top" align="left"&gt;&lt;br /&gt;&lt;p class="table-para"&gt;&lt;span style="font-family:arial;"&gt;Lookup &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;td class="TD" valign="top" align="left"&gt;&lt;br /&gt;&lt;p class="table-para"&gt;&lt;span style="font-family:arial;"&gt;A field that references a field value in another list on the site. &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tr&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tr valign="top"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;td class="td" valign="top" align="left"&gt;&lt;br /&gt;&lt;p class="TABLE-PARA"&gt;&lt;span style="font-family:arial;"&gt;Yes/No &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;td class="td" valign="top" align="left"&gt;&lt;br /&gt;&lt;p class="table-para"&gt;&lt;span style="font-family:arial;"&gt;A Boolean field that is either true or false. Renders as a check box in the user interface. &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tr&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tr valign="top"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;td class="td" valign="top" align="left"&gt;&lt;br /&gt;&lt;p class="TABLE-PARA"&gt;&lt;span style="font-family:arial;"&gt;Person Or Group &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;td class="td" valign="top" align="left"&gt;&lt;br /&gt;&lt;p class="TABLE-PARA"&gt;&lt;span style="font-family:arial;"&gt;A user or member of the current site. This field can render with presence information, which ties into either Windows Live Messenger or Microsoft Office Live Communications Server. &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tr&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tr valign="top"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;td class="TD" valign="top" align="left"&gt;&lt;br /&gt;&lt;p class="table-para"&gt;&lt;span style="font-family:arial;"&gt;Hyperlink Or Picture &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;td class="td" valign="top" align="left"&gt;&lt;br /&gt;&lt;p class="TABLE-PARA"&gt;&lt;span style="font-family:arial;"&gt;A URL-formatted string. &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tr&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tr valign="top"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;td class="td" valign="top" align="left"&gt;&lt;br /&gt;&lt;p class="table-para"&gt;&lt;span style="font-family:arial;"&gt;Calculated &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;td class="td" valign="top" align="left"&gt;&lt;br /&gt;&lt;p class="table-para"&gt;&lt;span style="font-family:arial;"&gt;A value that is calculated from other fields. &lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tr&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tbody&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/table&gt;&lt;br /&gt;&lt;div class="section"&gt;&lt;br /&gt;&lt;h4 class="sect4-title"&gt;&lt;br /&gt;&lt;a name="422"&gt;&lt;/a&gt;&lt;a name="ch06lev3"&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;Defining Custom List Elements with CAML&lt;/span&gt;&lt;/h4&gt;&lt;br /&gt;&lt;p class="first-para"&gt;&lt;span style="font-family:arial;"&gt;Now we are going to step through the process of defining site columns, content types, and list schemas. If you want to follow along with our sample code, you can open the Visual Studio project named LitwareTypes. This project contains several different examples of custom provisioning components. If you open and build this project, the install.bat file will copy all the required provisioning files into the TEMPLATES directory and will install a feature &lt;/span&gt;&lt;a name="423"&gt;&lt;/a&gt;&lt;a name="IDX-"&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;named LitwareTypes. Then you should be able to activate the LitwareTypes feature within the scope of any site collection in the farm so that you can begin to work with these sample provisioning components.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="PARA"&gt;&lt;span style="font-family:arial;"&gt;WSS provisioning components are created by using CAML to define data schemas and by rendering HTML. The structure of most CAML elements used in WSS is defined in the XML schema files in the TEMPLATE\XML directory. You can enable IntelliSense in Visual Studio 2005 using these schemas by copying these XSD files into %ProgramFiles%\Microsoft Visual Studio 8\Xml\Schemas. Note that CAML definitions can be tricky to program, and there is little debugging support, so testing is essential. For more advice on CAML Programming, see the sidebar “&lt;/span&gt;&lt;a class="internaljump" href="http://www.blogger.com/post-create.g?blogID=5591885701432628793#ch"&gt;&lt;span style="font-family:arial;"&gt;CAML Debugging Through Diagnostic Logging&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;.”&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="SIDEBAR"&gt;&lt;br /&gt;&lt;a name="424"&gt;&lt;/a&gt;&lt;a name="ch"&gt;&lt;/a&gt;&lt;br /&gt;&lt;table class="blueline" border="0" cellspacing="0" cellpadding="0" width="100%"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tbody&gt;&lt;tr&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;td class="BLUECELL" bg style="color:#000080;"&gt;&lt;span style="font-family:arial;font-size:85%;color:#010100;"&gt;&lt;b&gt;&lt;img title="Start Sidebar" border="0" alt="Image from book" src="http://www.blogger.com/images/_.gif" width="1" height="2" /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tr&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;span class="sidebar-title"&gt;&lt;b&gt;&lt;br /&gt;&lt;center&gt;&lt;span style="font-family:arial;"&gt;CAML Debugging Through Diagnostic Logging&lt;/span&gt;&lt;/center&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;p class="FIRST-PARA"&gt;&lt;span style="font-family:arial;"&gt;CAML content definitions have no debugging support through Visual Studio. This can make it frustrating to develop custom content types, lists, and other provisioning components. You can, however, enable verbose logging through SharePoint Central Administration. From the Operations tab, under Logging and Reporting, select Diagnostic Logging. You can then set Event Throttling to report on all categories, to report on events of information criticality and above, and to report verbosely. For a personal development server, you can use just one log file for a period of ten minutes. The default path for the logs is C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\LOGS. You may want to import the log into Microsoft Office Excel 2007 or just use Visual Studio or Notepad to read the file.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="LAST-PARA"&gt;&lt;span style="font-family:arial;"&gt;Although the Web interface may only state a vague error message, such as “Exception from HRESULT: 0x81070201,” the diagnostic log will give you the details needed to fix the XML, such as “Failed to retrieve the list schema for feature FBDECD96-62DC-48c88F0A-7B827A042FD9, list template 10001; expected to find it at: C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\Template\Features\LitwareTypes\VendorList.”&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;table class="BLUELINE" border="0" cellspacing="0" cellpadding="0" width="100%"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tbody&gt;&lt;tr&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;td class="BLUECELL" bg style="color:#000080;"&gt;&lt;span style="font-family:arial;font-size:85%;color:#010100;"&gt;&lt;b&gt;&lt;img title="End Sidebar" border="0" alt="Image from book" src="http://www.blogger.com/images/_.gif" width="1" height="2" /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tr&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;table class="blankspace" border="0" cellspacing="0" cellpadding="0" width="100%"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tbody&gt;&lt;tr&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;td height="16"&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;/td&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tr&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;table class="tip" border="0" cellspacing="0" cellpadding="0"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tbody&gt;&lt;tr&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;td class="ADMON-CHECK" valign="top"&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;/td&gt;&lt;td class="admon-title" valign="top"&gt;&lt;span style="font-family:arial;"&gt;Tip &lt;/span&gt;&lt;/td&gt;&lt;td class="ADMON-BODY" valign="top"&gt;&lt;br /&gt;&lt;p class="first-para"&gt;&lt;span style="font-family:arial;"&gt;Visual Studio 2005 extensions for Windows SharePoint Services 3.0 is a powerful toolkit for generating lightweight provisioning components. You may want to work with the extensions’ output as a starting point for your handcrafted provisioning components, although they do not support some of the powerful new features introduced in WSS 3.0.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tr&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="SECTION"&gt;&lt;br /&gt;&lt;h4 class="SECT4-TITLE"&gt;&lt;br /&gt;&lt;a name="425"&gt;&lt;/a&gt;&lt;a name="ch06lev3sec116"&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;Defining Site Column Definitions&lt;/span&gt;&lt;/h4&gt;&lt;br /&gt;&lt;p class="first-para"&gt;&lt;span style="font-family:arial;"&gt;Lists store their data in &lt;i class="EMPHASIS"&gt;columns&lt;/i&gt; (also referred to as &lt;i class="EMPHASIS"&gt;fields&lt;/i&gt;), which can be defined in the context of a list. WSS 3.0 also introduces &lt;i class="emphasis"&gt;site columns&lt;/i&gt;, which make it possible to define a field in a reusable manner. Rather than defining a field such as FirstName multiple times, WSS defines &lt;/span&gt;&lt;a name="426"&gt;&lt;/a&gt;&lt;a name="IDX-186"&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;a site column once and for all in a built-in WSS feature named &lt;i class="emphasis"&gt;fields&lt;/i&gt;. &lt;/span&gt;&lt;a class="INTERNALJUMP" href="http://www.blogger.com/post-create.g?blogID=5591885701432628793#ch06"&gt;&lt;span style="font-family:arial;"&gt;Listing 6-3&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt; shows how the FirstName site column is defined in CAML using a Field element.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="example"&gt;&lt;br /&gt;&lt;span class="example-title"&gt;&lt;span style="font-family:arial;"&gt;&lt;span class="EXAMPLE-TITLELABEL"&gt;Listing 6-3: &lt;/span&gt;The standard FirstName site column definition&lt;/span&gt;&lt;/span&gt;&lt;a name="427"&gt;&lt;/a&gt;&lt;a name="ch06"&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="FORMALBODY"&gt;&lt;br /&gt;&lt;table class="BLUELINE" border="0" cellspacing="0" cellpadding="0" width="100%"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tbody&gt;&lt;tr&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;td class="bluecell" bg style="color:#000080;"&gt;&lt;span style="font-family:arial;font-size:85%;color:#010100;"&gt;&lt;b&gt;&lt;img title="Start example" border="0" alt="Image from book" src="http://www.blogger.com/images/_.gif" width="1" height="2" /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tr&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;pre class="programlisting"&gt;&lt;br /&gt;&lt;span style="color:#c0c0c0;"&gt;&lt;span style="color:#000000;"&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&amp;lt;Field ID="{}"&lt;br /&gt;    Name="FirstName"&lt;br /&gt;    SourceID="http://schemas.microsoft.com/sharepoint/v3"&lt;br /&gt;    StaticName="FirstName"&lt;br /&gt;    Group="$Resources:Person_Event_Columns"&lt;br /&gt;    DisplayName="$Resources:core,First_Name;"&lt;br /&gt;    Type="Text"&amp;gt;&lt;br /&gt;&amp;lt;/Field&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;table class="blueline" border="0" cellspacing="0" cellpadding="0" width="100%"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tbody&gt;&lt;tr&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;td class="bluecell" bg style="color:#000080;"&gt;&lt;span style="font-family:arial;font-size:85%;color:#010100;"&gt;&lt;b&gt;&lt;img title="End example" border="0" alt="Image from book" src="http://www.blogger.com/images/_.gif" width="1" height="2" /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tr&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;table class="blankspace" border="0" cellspacing="0" cellpadding="0" width="100%"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tbody&gt;&lt;tr&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;td height="16"&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;/td&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tr&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;table class="tip" border="0" cellspacing="0" cellpadding="0"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tbody&gt;&lt;tr&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;td class="admon-check" valign="top"&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;/td&gt;&lt;td class="admon-title" valign="top"&gt;&lt;span style="font-family:arial;"&gt;Tip &lt;/span&gt;&lt;/td&gt;&lt;td class="ADMON-BODY" valign="top"&gt;&lt;br /&gt;&lt;p class="first-para"&gt;&lt;span style="font-family:arial;"&gt;The built-in columns are defined in the built-in “fields” feature, which can be a good reference when you are creating your own column definitions.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/td&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tr&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p class="PARA"&gt;&lt;span style="font-family:arial;"&gt;In &lt;/span&gt;&lt;a class="internaljump" href="http://www.blogger.com/post-create.g?blogID=5591885701432628793#ch06"&gt;&lt;span style="font-family:arial;"&gt;Listing 6-3&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;, you can observe that text-based aspects of the FirstName site column are defined using a special syntax with the “$” character, as in $Resources:core,First_Name. This syntax was introduced in ASP.NET 2.0 as a way to pull a localized string out of a resource file. The ability to localize such aspects of a site-column definition makes it possible for WSS to support localization of provisioning components for several different spoken languages. We will cover the topics of localization and globalization later in this book in &lt;/span&gt;&lt;a class="chapterjump" href="http://www.blogger.com/BBL0047.html#680" target="_parent"&gt;&lt;span style="font-family:arial;"&gt;Chapter 9&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="para"&gt;&lt;span style="font-family:arial;"&gt;As a simple example, in this chapter we will create a vendor list with the following columns: Company, Contact, Phone, Industry, Company Size, and Activity Notes. We will be able to use predefined WSS site columns for Company, Contact, and Phone. However, we will create two new site column definitions for the Industry column and the Activity Notes column. Later in the chapter, we also will create a custom field type for the Company Size column.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="PARA"&gt;&lt;span style="font-family:arial;"&gt;The LitwareTypes project contains a custom feature named LitwareTypes. As you can see from its Feature.xml file, shown in &lt;/span&gt;&lt;a class="INTERNALJUMP" href="http://www.blogger.com/post-create.g?blogID=5591885701432628793#ch06"&gt;&lt;span style="font-family:arial;"&gt;Listing 6-4&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;, this feature is defined with a Scope attribute value of Site, which means it has been designed to be activated at the level of the site collection.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="widecontent"&gt;&lt;br /&gt;&lt;div class="example"&gt;&lt;br /&gt;&lt;span class="example-title"&gt;&lt;span style="font-family:arial;"&gt;&lt;span class="example-titlelabel"&gt;Listing 6-4 : &lt;/span&gt;The LitwareTypes feature is scoped at the site collection level.&lt;/span&gt;&lt;/span&gt;&lt;a name="428"&gt;&lt;/a&gt;&lt;a name="CH06"&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="FORMALBODY"&gt;&lt;br /&gt;&lt;table class="blueline" border="0" cellspacing="0" cellpadding="0" width="100%"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;tbody&gt;&lt;tr&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span
