<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogit.create.pt/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Comunidade Bloggers |create|it|</title><link>http://blogit.create.pt/blogs/default.aspx</link><description /><dc:language>en-US</dc:language><generator>CommunityServer 2.1 (Build: 60809.935)</generator><item><title>|create|it| wins the Best Public Website award</title><link>http://blogit.create.pt/blogs/antoniovargas/archive/2012/02/02/_7C00_create_7C00_it_7C00_-wins-the-Best-Public-Website-award.aspx</link><pubDate>Thu, 02 Feb 2012 14:27:57 GMT</pubDate><guid isPermaLink="false">82e6d864-cc1c-4326-bdf8-b027608494f4:13733</guid><dc:creator>antoniovargas</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;I´m proud to annunciate that create|it| (the company where i work) is the winner of the European SharePoint Community Awards 2012 in the “Best Puplic Website” category.&lt;/p&gt;  &lt;p&gt;So many months of hard team work to make the better for the Pestana Websites using SharePoint 2010 environment.&lt;/p&gt;  &lt;p&gt;I'm a member of the fantastic team that work in this project and I want to congratulate everyone (my colleagues, my company, the client stakeholders, the design company).&lt;/p&gt;  &lt;p&gt;For more information about this award:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://sharepointeurope.com/content/award-winners-2012.aspx"&gt;http://sharepointeurope.com/content/award-winners-2012.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Pestana Websites:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.pestana.com"&gt;http://www.pestana.com&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.pousadas.pt"&gt;http://www.pousadas.pt&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.pestanapriority.com"&gt;http://www.pestanapriority.com&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogit.create.pt/aggbug.aspx?PostID=13733" width="1" height="1"&gt;</description><category domain="http://blogit.create.pt/blogs/antoniovargas/archive/tags/Sharepoint/default.aspx">Sharepoint</category><category domain="http://blogit.create.pt/blogs/antoniovargas/archive/tags/SharePoint+2010/default.aspx">SharePoint 2010</category></item><item><title>BizTalk 2010 R2 announced</title><link>http://blogit.create.pt/blogs/joaomartins/archive/2011/12/12/BizTalk-2010-R2-announced.aspx</link><pubDate>Mon, 12 Dec 2011 11:16:37 GMT</pubDate><guid isPermaLink="false">82e6d864-cc1c-4326-bdf8-b027608494f4:11716</guid><dc:creator>jota</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Last week Microsoft announced the &lt;a href="http://blogs.msdn.com/b/biztalk_server_team_blog/archive/2011/12/08/biztalk-server-2010-r2.aspx" target="_blank"&gt;next release of BizTalk Server&lt;/a&gt;, for now called 2010 R2. &lt;a href="http://geekswithblogs.net/cyoung/archive/2011/12/09/biztalk-server-2010-r2-announced.aspx" target="_blank"&gt;Charles Young already wrote an overview of the features and product positioning&lt;/a&gt;, but I highlight two: the &lt;strong&gt;support for Informix V11&lt;/strong&gt; (I’ve had this need more than once, and had to resort to ODBC as an alternative – it was even announced for BizTalk 2010 and then dropped in RTM), and the &lt;strong&gt;further integration with the Azure Service Bus&lt;/strong&gt;. The current &lt;a href="http://www.microsoft.com/download/en/details.aspx?id=19638" target="_blank"&gt;BizTalk Server 2010 Feature Pack&lt;/a&gt; already supports limited integration with it – basically, exposing services in the bus, but in my tests I’ve had inconsistent behavior using it and connection drops, and the lack of logging is a problem.&lt;/p&gt;  &lt;p&gt;I also find the new licensing models interesting, namely to support hosting scenarios, but I can’t really see how the product is going to support this if it doesn’t support application isolation today.&lt;/p&gt;&lt;img src="http://blogit.create.pt/aggbug.aspx?PostID=11716" width="1" height="1"&gt;</description><category domain="http://blogit.create.pt/blogs/joaomartins/archive/tags/Posts+in+English/default.aspx">Posts in English</category><category domain="http://blogit.create.pt/blogs/joaomartins/archive/tags/BizTalk+Server/default.aspx">BizTalk Server</category><category domain="http://blogit.create.pt/blogs/joaomartins/archive/tags/Azure/default.aspx">Azure</category></item><item><title>Silverlight 5 Available for Download Today</title><link>http://blogit.create.pt/blogs/raulribeiro/archive/2011/12/10/Silverlight-5-Available-for-Download-Today.aspx</link><pubDate>Sat, 10 Dec 2011 14:36:00 GMT</pubDate><guid isPermaLink="false">82e6d864-cc1c-4326-bdf8-b027608494f4:11658</guid><dc:creator>admin</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;a href="http://blogs.msdn.com/b/silverlight/archive/2011/12/09/silverlight-5-available-for-download-today.aspx"&gt;http://blogs.msdn.com/b/silverlight/archive/2011/12/09/silverlight-5-available-for-download-today.aspx&lt;/a&gt;&lt;/p&gt;&lt;p style="margin-top:12px;color:#000000;font-family:Arial;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:18px;orphans:2;text-align:left;text-indent:0px;text-transform:none;white-space:normal;widows:2;word-spacing:0px;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;background-color:#ffffff;"&gt;New features in Silverlight 5 include Hardware Decode of H.264 media, which provides a significant performance improvement with decoding of unprotected content using the GPU; Postscript Vector Printing to improve output quality and file size; and an improved graphics stack with 3D support that uses the XNA API on the Windows platform to gain low-level access to the GPU for drawing vertex shaders and low-level 3D primitives.&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-style-span" style="font-family:Arial;font-size:12px;line-height:18px;"&gt;In addition, Silverlight 5 extends the &amp;lsquo;Trusted Application&amp;rsquo; model to the browser for the first time. These features, when enabled via a group policy registry key and an application certificate, mean users won&amp;rsquo;t need to leave the browser to perform complex tasks such as multiple window support, full trust support in browser including COM and file system access, in browser HTML hosting within Silverlight, and P/Invoke support for existing native code to be run directly from Silverlight.&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://blogit.create.pt/aggbug.aspx?PostID=11658" width="1" height="1"&gt;</description><category domain="http://blogit.create.pt/blogs/raulribeiro/archive/tags/Silverlight/default.aspx">Silverlight</category></item><item><title>Risk and reward</title><link>http://blogit.create.pt/blogs/nunocaneco/archive/2011/11/14/Risk-and-reward.aspx</link><pubDate>Tue, 15 Nov 2011 00:23:00 GMT</pubDate><guid isPermaLink="false">82e6d864-cc1c-4326-bdf8-b027608494f4:11082</guid><dc:creator>Nuno Caneco</dc:creator><slash:comments>0</slash:comments><description>In the book &lt;a href="http://www.amazon.com/exec/obidos/ASIN/1591841666/permissionmarket"&gt;The Dip&lt;/a&gt;, the author &lt;a href="http://www.sethgodin.com/sg/"&gt;Seth Godin&lt;/a&gt; argues that for every effort you put into a project, there is a reward attached to it. If you&amp;rsquo;re in a situation where you&amp;rsquo;re not getting any of that extra reward no matter how much you invest on your project, you&amp;rsquo;re in a &amp;ldquo;coul-de-sac&amp;rdquo;. But, on the other hand, there are situations where the reward is exponential to the effort you invest in the long term, and that is what Seth calls being in &amp;ldquo;The Dip&amp;rdquo;.   &lt;p&gt;The key to success is to make sure you&amp;rsquo;re always in &amp;ldquo;The Dip&amp;rdquo; and avoiding &amp;ldquo;coul-de-sac&amp;rdquo;.&lt;/p&gt;  &lt;p&gt;I enjoyed reading this book very much and it&amp;rsquo;s principles have been guiding me for a while now. &lt;/p&gt;  &lt;p&gt;One tool that has proved helpful in some decision making situations is placing risk vs rewards.&lt;/p&gt;  &lt;p&gt;The concept of reward is subjective and changes from person to person: &amp;quot;person X&amp;quot; might feel rewarded if he/she is having the opportunity to experiment with new technology while &amp;quot;person Z&amp;quot; might feel rewarded if the stress level is low). It&amp;rsquo;s up to you to identify what makes you happy, i.e. what are your wanted rewards.&lt;/p&gt;  &lt;p&gt;Putting it into a graph, you get:&lt;/p&gt;  &lt;div class="wlWriterEditableSmartContent" id="scid:51CF81A4-8F44-4a2c-8837-198C090B9994:fe7ceeb9-d0d1-4166-8446-b50f57a659c8" style="padding:0px;margin:0px;display:inline;float:none;"&gt;&lt;p&gt;&lt;img height="245" src="http://lh6.ggpht.com/-NCtZ6UrX8bE/TsGwHVjTFTI/AAAAAAAAACc/mc_TpLtBbgE/s288/RiskVsReward.png" style="border:2px none;" width="288" /&gt;&lt;/p&gt;&lt;/div&gt;  &lt;h3&gt;Low risk, low reward&lt;/h3&gt;  &lt;p&gt;These are the &amp;quot;straight forward&amp;quot; projects, the ones that everyone is comfortable with. Projects in this category tend to be low profile in terms of visibility since nothing really new or innovative comes out of it. The &amp;#39;low reward&amp;#39; characteristic might indicate that the project is not very valuable to the customer. &lt;/p&gt;  &lt;h3&gt;High risk, low reward&lt;/h3&gt;  &lt;p&gt;These are projects that are very risky but for which the compensation is not interesting. These types of projects will create a sense of emptiness in the end, since it took risks for &amp;quot;nothing&amp;quot;.    &lt;br /&gt;You should avoid this types of project at all costs!!&lt;/p&gt;  &lt;h3&gt;High risk, high reward&lt;/h3&gt;  &lt;p&gt;These projects tend to be the ones that might make you loose your sleep at night. Whether it is a short time-to-market, some new or untested technology or huge scope, it sure is risky.&amp;nbsp; &lt;br /&gt;BUT on the other hand the reward behind it is so desirable that makes you want to attack it.&lt;/p&gt;  &lt;p&gt;If you&amp;rsquo;re into these projects, the first thing to do is to identify the risks and figure out ways to mitigate them. This might lead you into putting your best guys on the team (technical and management staff), making a prototype using the brand new technology you&amp;rsquo;re trying to use or just manage your stakeholder&amp;#39;s expectations to take some pressure off.&lt;/p&gt;  &lt;p&gt;Nonetheless, these are quite valuable projects and, if you get to manage them right, the end result might be very rewarding for everyone involved: your costumer, your team and your employer.&lt;/p&gt;  &lt;h3&gt;Low risk, high reward &lt;/h3&gt;  &lt;p&gt;These are the better but usually hard to find projects. It might be a niche market or a brand new Big Thing that everybody is using and for which there is no real competition, if you&amp;rsquo;re into this category hold it as long as you can and make sure you &amp;ldquo;milk the cow&amp;rdquo;.&lt;/p&gt;  &lt;p&gt;But the get too comfortable because it might not last long. Whatever factor there is that makes the project &amp;ldquo;low risk&amp;rdquo;, might not last forever: competition might wake up, your well established technology might get outdated or your product might just be killed by another &amp;ldquo;Next Big Thing&amp;rdquo;.&lt;/p&gt;  &lt;p&gt;Remember Novell&amp;rsquo;s NetWare in the early 1990&amp;rsquo;s? They were the real leaders of networking in Microsoft environments by then. Who would predict that a in a decade Microsoft would start killing NetWare with Windows NT?&lt;/p&gt;  &lt;h2&gt;Take action&lt;/h2&gt;  &lt;p&gt;Make a list of the projects you&amp;rsquo;ve been working on for the last year or two and classify them based on risk and reward. &lt;/p&gt;  &lt;p&gt;Take a look at the list and see where you&amp;rsquo;re standing:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;If you&amp;rsquo;re in the &amp;ldquo;low risk, low reward&amp;rdquo;, you might want to reconsider your path. Try to think why are you there and if you can (and want to) make a change. You might need to get out of your comfort zone and move a little bit up the scale on both risk and reward. It will pay in the future. &lt;/li&gt;    &lt;li&gt;If you&amp;rsquo;re in the &amp;ldquo;high risk, low reward&amp;rdquo;, get out of there as soon as you can. You&amp;rsquo;re investing your energy on the wrong place. &lt;/li&gt;    &lt;li&gt;If you&amp;rsquo;re in the &amp;ldquo;high reward&amp;rdquo; quadrant, probably you&amp;rsquo;re happy with what you do. Just make sure the risk level is at acceptable levels to keep you happy. &lt;/li&gt; &lt;/ul&gt;&lt;img src="http://blogit.create.pt/aggbug.aspx?PostID=11082" width="1" height="1"&gt;</description><category domain="http://blogit.create.pt/blogs/nunocaneco/archive/tags/Management/default.aspx">Management</category></item><item><title>SharePoint Tip #27: Choice Columns and DataSheet Views</title><link>http://blogit.create.pt/blogs/andrevala/archive/2011/10/30/SharePoint-Tip-_2300_27_3A00_-Choice-Columns-and-DataSheet-Views.aspx</link><pubDate>Sun, 30 Oct 2011 21:09:19 GMT</pubDate><guid isPermaLink="false">82e6d864-cc1c-4326-bdf8-b027608494f4:10871</guid><dc:creator>andrevala</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;Using features to create &lt;strong&gt;Choice&lt;/strong&gt; site columns is pretty straightforward (check &lt;a href="http://blogit.create.pt/blogs/andrevala/archive/2008/03/26/SharePoint-2007-Deployment_3A00_-Site-Column-Features.aspx" target="_blank"&gt;this post&lt;/a&gt; for additional information). See below a sample feature element for that purpose.&lt;/p&gt;  &lt;p style="margin:0cm 0cm 0pt;" class="MsoNormal"&gt;&lt;font face="Courier New"&gt;&lt;span style="font-family:;color:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font color="#0000ff"&gt;&lt;font style="font-size:10pt;"&gt;&amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:;color:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font style="font-size:10pt;" color="#a31515"&gt;Field &lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="margin:0cm 0cm 0pt;" class="MsoNormal"&gt;&lt;font face="Courier New"&gt;&lt;span style="font-family:;color:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font color="#a31515"&gt;&lt;font style="font-size:10pt;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:10pt;"&gt;&lt;span style="font-family:;color:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font color="#ff0000"&gt;ID&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:;color:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="font-family:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font style="font-size:10pt;"&gt;&amp;quot;&lt;span style="color:;"&gt;&lt;font color="#0000ff"&gt;{538c71e4-8650-4ce7-b021-920effa66346}&lt;/font&gt;&lt;/span&gt;&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="margin:0cm 0cm 0pt;" class="MsoNormal"&gt;&lt;span style="font-family:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font face="Courier New"&gt;&lt;font style="font-size:10pt;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:;"&gt;&lt;font color="#ff0000"&gt;Type&lt;/font&gt;&lt;/span&gt;&lt;span style="color:;"&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;&lt;/span&gt;&amp;quot;&lt;span style="color:;"&gt;&lt;font color="#0000ff"&gt;Choice&lt;/font&gt;&lt;/span&gt;&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin:0cm 0cm 0pt;" class="MsoNormal"&gt;&lt;span style="font-family:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font face="Courier New"&gt;&lt;font style="font-size:10pt;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:;"&gt;&lt;font color="#ff0000"&gt;Name&lt;/font&gt;&lt;/span&gt;&lt;span style="color:;"&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;&lt;/span&gt;&amp;quot;&lt;span style="color:;"&gt;&lt;font color="#0000ff"&gt;Publishing_x0020_Status&lt;/font&gt;&lt;/span&gt;&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin:0cm 0cm 0pt;" class="MsoNormal"&gt;&lt;span style="font-family:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font face="Courier New"&gt;&lt;font style="font-size:10pt;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:;"&gt;&lt;font color="#ff0000"&gt;StaticName&lt;/font&gt;&lt;/span&gt;&lt;span style="color:;"&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;&lt;/span&gt;&amp;quot;&lt;span style="color:;"&gt;&lt;font color="#0000ff"&gt;Publishing_x0020_Status&lt;/font&gt;&lt;/span&gt;&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin:0cm 0cm 0pt;" class="MsoNormal"&gt;&lt;span style="font-family:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font face="Courier New"&gt;&lt;font style="font-size:10pt;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:;"&gt;&lt;font color="#ff0000"&gt;DisplayName&lt;/font&gt;&lt;/span&gt;&lt;span style="color:;"&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;&lt;/span&gt;&amp;quot;&lt;span style="color:;"&gt;&lt;font color="#0000ff"&gt;Publishing Status&lt;/font&gt;&lt;/span&gt;&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin:0cm 0cm 0pt;" class="MsoNormal"&gt;&lt;span style="font-family:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font face="Courier New"&gt;&lt;font style="font-size:10pt;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:;"&gt;&lt;font color="#ff0000"&gt;Required&lt;/font&gt;&lt;/span&gt;&lt;span style="color:;"&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;&lt;/span&gt;&amp;quot;&lt;span style="color:;"&gt;&lt;font color="#0000ff"&gt;FALSE&lt;/font&gt;&lt;/span&gt;&amp;quot;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin:0cm 0cm 0pt;" class="MsoNormal"&gt;&lt;span style="font-family:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font face="Courier New"&gt;&lt;font style="font-size:10pt;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:;"&gt;&lt;font color="#ff0000"&gt;Format&lt;/font&gt;&lt;/span&gt;&lt;span style="color:;"&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;&lt;/span&gt;&amp;quot;&lt;span style="color:;"&gt;&lt;font color="#0000ff"&gt;Dropdown&lt;/font&gt;&lt;/span&gt;&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin:0cm 0cm 0pt;" class="MsoNormal"&gt;&lt;span style="font-family:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font face="Courier New"&gt;&lt;font style="font-size:10pt;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:;"&gt;&lt;font color="#ff0000"&gt;FillInChoice&lt;/font&gt;&lt;/span&gt;&lt;span style="color:;"&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;&lt;/span&gt;&amp;quot;&lt;span style="color:;"&gt;&lt;font color="#0000ff"&gt;FALSE&lt;/font&gt;&lt;/span&gt;&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin:0cm 0cm 0pt;" class="MsoNormal"&gt;&lt;span style="font-family:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font face="Courier New"&gt;&lt;font style="font-size:10pt;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:;"&gt;&lt;font color="#ff0000"&gt;Group&lt;/font&gt;&lt;/span&gt;&lt;span style="color:;"&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;&lt;/span&gt;&amp;quot;&lt;span style="color:;"&gt;&lt;font color="#0000ff"&gt;Custom Columns&lt;/font&gt;&lt;/span&gt;&amp;quot;&lt;/font&gt;&lt;span style="color:;"&gt;&lt;font style="font-size:10pt;" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin:0cm 0cm 0pt;" class="MsoNormal"&gt;&lt;font face="Courier New"&gt;&lt;span style="font-family:;color:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font color="#0000ff"&gt;&lt;font style="font-size:10pt;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:10pt;"&gt;&lt;span style="font-family:;color:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font color="#a31515"&gt;Default&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:;color:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="font-family:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font style="font-size:10pt;"&gt;Not Published&lt;span style="color:;"&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;/span&gt;&lt;span style="color:;"&gt;&lt;font color="#a31515"&gt;Default&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="color:;"&gt;&lt;font style="font-size:10pt;" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="margin:0cm 0cm 0pt;" class="MsoNormal"&gt;&lt;font face="Courier New"&gt;&lt;span style="font-family:;color:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font color="#0000ff"&gt;&lt;font style="font-size:10pt;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:10pt;"&gt;&lt;span style="font-family:;color:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font color="#a31515"&gt;CHOICES&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="font-family:;color:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font style="font-size:10pt;" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="margin:0cm 0cm 0pt;" class="MsoNormal"&gt;&lt;font face="Courier New"&gt;&lt;span style="font-family:;color:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font color="#0000ff"&gt;&lt;font style="font-size:10pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:10pt;"&gt;&lt;span style="font-family:;color:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font color="#a31515"&gt;CHOICE&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="font-family:;color:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font style="font-size:10pt;" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="margin:0cm 0cm 0pt;" class="MsoNormal"&gt;&lt;font face="Courier New"&gt;&lt;span style="font-family:;color:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font color="#0000ff"&gt;&lt;font style="font-size:10pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font style="font-size:10pt;"&gt;Not Published&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="margin:0cm 0cm 0pt;" class="MsoNormal"&gt;&lt;font face="Courier New"&gt;&lt;span style="font-family:;color:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font color="#0000ff"&gt;&lt;font style="font-size:10pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:10pt;"&gt;&lt;span style="font-family:;color:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font color="#a31515"&gt;CHOICE&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="font-family:;color:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font style="font-size:10pt;" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="margin:0cm 0cm 0pt;" class="MsoNormal"&gt;&lt;font face="Courier New"&gt;&lt;span style="font-family:;color:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font color="#0000ff"&gt;&lt;font style="font-size:10pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:10pt;"&gt;&lt;span style="font-family:;color:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font color="#a31515"&gt;CHOICE&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="font-family:;color:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font style="font-size:10pt;" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="margin:0cm 0cm 0pt;" class="MsoNormal"&gt;&lt;font face="Courier New"&gt;&lt;span style="font-family:;color:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font color="#0000ff"&gt;&lt;font style="font-size:10pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font style="font-size:10pt;"&gt;Pending&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="margin:0cm 0cm 0pt;" class="MsoNormal"&gt;&lt;span style="font-family:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font face="Courier New"&gt;&lt;font style="font-size:10pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:;"&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;/span&gt;&lt;span style="color:;"&gt;&lt;font color="#a31515"&gt;CHOICE&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="color:;"&gt;&lt;font style="font-size:10pt;" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin:0cm 0cm 0pt;" class="MsoNormal"&gt;&lt;font face="Courier New"&gt;&lt;span style="font-family:;color:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font color="#0000ff"&gt;&lt;font style="font-size:10pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:10pt;"&gt;&lt;span style="font-family:;color:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font color="#a31515"&gt;CHOICE&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="font-family:;color:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font style="font-size:10pt;" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="margin:0cm 0cm 0pt;" class="MsoNormal"&gt;&lt;font face="Courier New"&gt;&lt;span style="font-family:;color:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font color="#0000ff"&gt;&lt;font style="font-size:10pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font style="font-size:10pt;"&gt;Published&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="margin:0cm 0cm 0pt;" class="MsoNormal"&gt;&lt;span style="font-family:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font face="Courier New"&gt;&lt;font style="font-size:10pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:;"&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;/span&gt;&lt;span style="color:;"&gt;&lt;font color="#a31515"&gt;CHOICE&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="color:;"&gt;&lt;font style="font-size:10pt;" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin:0cm 0cm 0pt;" class="MsoNormal"&gt;&lt;font face="Courier New"&gt;&lt;span style="font-family:;color:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font color="#0000ff"&gt;&lt;font style="font-size:10pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:10pt;"&gt;&lt;span style="font-family:;color:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font color="#a31515"&gt;CHOICE&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="font-family:;color:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font style="font-size:10pt;" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="margin:0cm 0cm 0pt;" class="MsoNormal"&gt;&lt;font face="Courier New"&gt;&lt;span style="font-family:;color:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font color="#0000ff"&gt;&lt;font style="font-size:10pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font style="font-size:10pt;"&gt;Error&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="margin:0cm 0cm 0pt;" class="MsoNormal"&gt;&lt;span style="font-family:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font face="Courier New"&gt;&lt;font style="font-size:10pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:;"&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;/span&gt;&lt;span style="color:;"&gt;&lt;font color="#a31515"&gt;CHOICE&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="color:;"&gt;&lt;font style="font-size:10pt;" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin:0cm 0cm 0pt;" class="MsoNormal"&gt;&lt;font face="Courier New"&gt;&lt;span style="font-family:;color:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font color="#0000ff"&gt;&lt;font style="font-size:10pt;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:10pt;"&gt;&lt;span style="font-family:;color:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font color="#a31515"&gt;CHOICES&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="font-family:;color:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font style="font-size:10pt;" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="margin:0cm 0cm 0pt;" class="MsoNormal"&gt;&lt;font face="Courier New"&gt;&lt;span style="font-family:;color:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font color="#0000ff"&gt;&lt;font style="font-size:10pt;"&gt;&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:10pt;"&gt;&lt;span style="font-family:;color:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font color="#a31515"&gt;Field&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="font-family:;color:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font style="font-size:10pt;" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Although the XML is well formed and all the attributes and values are correct, this field definition has a problem. If you create a site column using this definition, here is what happens:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;If you check the site column configuration in SharePoint, everything will look fine&lt;/li&gt;    &lt;li&gt;If you add this site column to a list (either through a content type, or directly) and you edit an item using the default list forms, everything will work as expected.&lt;/li&gt;    &lt;li&gt;If you try to edit the list items using a &lt;strong&gt;DataSheet View&lt;/strong&gt;, you won’t be able to select any value from this choice field and SharePoint will always throw a validation error.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;The problem here are the invisible characters (spaces, newlines and tabs) between the &lt;span style="font-family:;color:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font color="#0000ff"&gt;&lt;font style="font-size:10pt;"&gt;&amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:10pt;"&gt;&lt;span style="font-family:;color:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font color="#a31515"&gt;CHOICE&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="font-family:;color:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font style="font-size:10pt;" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt; and &lt;span style="font-family:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font face="Courier New"&gt;&lt;font style="font-size:10pt;"&gt;&lt;span style="color:;"&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;/span&gt;&lt;span style="color:;"&gt;&lt;font color="#a31515"&gt;CHOICE&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="color:;"&gt;&lt;font style="font-size:10pt;" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt; tags and their inner values. Apparently, when using list forms these characters are trimmed from the valid choices, but when using the datasheet view they are not, causing a strange behavior when editing an item in that view.&lt;/p&gt;  &lt;p&gt;The correct definition for this field would be:&lt;/p&gt;  &lt;p style="margin:0cm 0cm 0pt;" class="MsoNormal"&gt;&lt;font face="Courier New"&gt;&lt;span style="font-family:;color:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font color="#0000ff"&gt;&lt;font style="font-size:10pt;"&gt;&amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:;color:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font style="font-size:10pt;" color="#a31515"&gt;Field &lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="margin:0cm 0cm 0pt;" class="MsoNormal"&gt;&lt;font face="Courier New"&gt;&lt;span style="font-family:;color:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font color="#a31515"&gt;&lt;font style="font-size:10pt;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:10pt;"&gt;&lt;span style="font-family:;color:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font color="#ff0000"&gt;ID&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:;color:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="font-family:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font style="font-size:10pt;"&gt;&amp;quot;&lt;span style="color:;"&gt;&lt;font color="#0000ff"&gt;{538c71e4-8650-4ce7-b021-920effa66346}&lt;/font&gt;&lt;/span&gt;&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="margin:0cm 0cm 0pt;" class="MsoNormal"&gt;&lt;span style="font-family:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font face="Courier New"&gt;&lt;font style="font-size:10pt;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:;"&gt;&lt;font color="#ff0000"&gt;Type&lt;/font&gt;&lt;/span&gt;&lt;span style="color:;"&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;&lt;/span&gt;&amp;quot;&lt;span style="color:;"&gt;&lt;font color="#0000ff"&gt;Choice&lt;/font&gt;&lt;/span&gt;&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin:0cm 0cm 0pt;" class="MsoNormal"&gt;&lt;span style="font-family:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font face="Courier New"&gt;&lt;font style="font-size:10pt;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:;"&gt;&lt;font color="#ff0000"&gt;Name&lt;/font&gt;&lt;/span&gt;&lt;span style="color:;"&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;&lt;/span&gt;&amp;quot;&lt;span style="color:;"&gt;&lt;font color="#0000ff"&gt;Publishing_x0020_Status&lt;/font&gt;&lt;/span&gt;&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin:0cm 0cm 0pt;" class="MsoNormal"&gt;&lt;span style="font-family:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font face="Courier New"&gt;&lt;font style="font-size:10pt;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:;"&gt;&lt;font color="#ff0000"&gt;StaticName&lt;/font&gt;&lt;/span&gt;&lt;span style="color:;"&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;&lt;/span&gt;&amp;quot;&lt;span style="color:;"&gt;&lt;font color="#0000ff"&gt;Publishing_x0020_Status&lt;/font&gt;&lt;/span&gt;&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin:0cm 0cm 0pt;" class="MsoNormal"&gt;&lt;span style="font-family:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font face="Courier New"&gt;&lt;font style="font-size:10pt;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:;"&gt;&lt;font color="#ff0000"&gt;DisplayName&lt;/font&gt;&lt;/span&gt;&lt;span style="color:;"&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;&lt;/span&gt;&amp;quot;&lt;span style="color:;"&gt;&lt;font color="#0000ff"&gt;Publishing Status&lt;/font&gt;&lt;/span&gt;&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin:0cm 0cm 0pt;" class="MsoNormal"&gt;&lt;span style="font-family:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font face="Courier New"&gt;&lt;font style="font-size:10pt;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:;"&gt;&lt;font color="#ff0000"&gt;Required&lt;/font&gt;&lt;/span&gt;&lt;span style="color:;"&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;&lt;/span&gt;&amp;quot;&lt;span style="color:;"&gt;&lt;font color="#0000ff"&gt;FALSE&lt;/font&gt;&lt;/span&gt;&amp;quot;&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin:0cm 0cm 0pt;" class="MsoNormal"&gt;&lt;span style="font-family:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font face="Courier New"&gt;&lt;font style="font-size:10pt;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:;"&gt;&lt;font color="#ff0000"&gt;Format&lt;/font&gt;&lt;/span&gt;&lt;span style="color:;"&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;&lt;/span&gt;&amp;quot;&lt;span style="color:;"&gt;&lt;font color="#0000ff"&gt;Dropdown&lt;/font&gt;&lt;/span&gt;&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin:0cm 0cm 0pt;" class="MsoNormal"&gt;&lt;span style="font-family:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font face="Courier New"&gt;&lt;font style="font-size:10pt;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:;"&gt;&lt;font color="#ff0000"&gt;FillInChoice&lt;/font&gt;&lt;/span&gt;&lt;span style="color:;"&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;&lt;/span&gt;&amp;quot;&lt;span style="color:;"&gt;&lt;font color="#0000ff"&gt;FALSE&lt;/font&gt;&lt;/span&gt;&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin:0cm 0cm 0pt;" class="MsoNormal"&gt;&lt;span style="font-family:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font face="Courier New"&gt;&lt;font style="font-size:10pt;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:;"&gt;&lt;font color="#ff0000"&gt;Group&lt;/font&gt;&lt;/span&gt;&lt;span style="color:;"&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;&lt;/span&gt;&amp;quot;&lt;span style="color:;"&gt;&lt;font color="#0000ff"&gt;Custom Columns&lt;/font&gt;&lt;/span&gt;&amp;quot;&lt;/font&gt;&lt;span style="color:;"&gt;&lt;font style="font-size:10pt;" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin:0cm 0cm 0pt;" class="MsoNormal"&gt;&lt;font face="Courier New"&gt;&lt;span style="font-family:;color:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font color="#0000ff"&gt;&lt;font style="font-size:10pt;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:10pt;"&gt;&lt;span style="font-family:;color:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font color="#a31515"&gt;Default&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:;color:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="font-family:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font style="font-size:10pt;"&gt;Not Published&lt;span style="color:;"&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;/span&gt;&lt;span style="color:;"&gt;&lt;font color="#a31515"&gt;Default&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="color:;"&gt;&lt;font style="font-size:10pt;" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="margin:0cm 0cm 0pt;" class="MsoNormal"&gt;&lt;font face="Courier New"&gt;&lt;span style="font-family:;color:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font color="#0000ff"&gt;&lt;font style="font-size:10pt;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:10pt;"&gt;&lt;span style="font-family:;color:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font color="#a31515"&gt;CHOICES&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="font-family:;color:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font style="font-size:10pt;" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="margin:0cm 0cm 0pt;" class="MsoNormal"&gt;&lt;font face="Courier New"&gt;&lt;span style="font-family:;color:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font color="#0000ff"&gt;&lt;font style="font-size:10pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:10pt;"&gt;&lt;span style="font-family:;color:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font color="#a31515"&gt;CHOICE&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="font-family:;color:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font style="font-size:10pt;" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="font-family:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font style="font-size:10pt;"&gt;Not Published&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="font-family:;color:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font color="#0000ff"&gt;&lt;font style="font-size:10pt;"&gt;&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:10pt;"&gt;&lt;span style="font-family:;color:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font color="#a31515"&gt;CHOICE&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="font-family:;color:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font style="font-size:10pt;" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="margin:0cm 0cm 0pt;" class="MsoNormal"&gt;&lt;font face="Courier New"&gt;&lt;span style="font-family:;color:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font color="#0000ff"&gt;&lt;font style="font-size:10pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:10pt;"&gt;&lt;span style="font-family:;color:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font color="#a31515"&gt;CHOICE&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="font-family:;color:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font style="font-size:10pt;" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="font-family:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font style="font-size:10pt;"&gt;Pending&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="font-family:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font face="Courier New"&gt;&lt;font style="font-size:10pt;"&gt;&lt;span style="color:;"&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;/span&gt;&lt;span style="color:;"&gt;&lt;font color="#a31515"&gt;CHOICE&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="color:;"&gt;&lt;font style="font-size:10pt;" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin:0cm 0cm 0pt;" class="MsoNormal"&gt;&lt;font face="Courier New"&gt;&lt;span style="font-family:;color:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font color="#0000ff"&gt;&lt;font style="font-size:10pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:10pt;"&gt;&lt;span style="font-family:;color:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font color="#a31515"&gt;CHOICE&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="font-family:;color:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font style="font-size:10pt;" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="font-family:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font style="font-size:10pt;"&gt;Published&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="font-family:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font face="Courier New"&gt;&lt;font style="font-size:10pt;"&gt;&lt;span style="color:;"&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;/span&gt;&lt;span style="color:;"&gt;&lt;font color="#a31515"&gt;CHOICE&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="color:;"&gt;&lt;font style="font-size:10pt;" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin:0cm 0cm 0pt;" class="MsoNormal"&gt;&lt;font face="Courier New"&gt;&lt;span style="font-family:;color:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font color="#0000ff"&gt;&lt;font style="font-size:10pt;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:10pt;"&gt;&lt;span style="font-family:;color:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font color="#a31515"&gt;CHOICE&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="font-family:;color:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font style="font-size:10pt;" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;span style="font-family:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font style="font-size:10pt;"&gt;Error&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="font-family:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font face="Courier New"&gt;&lt;font style="font-size:10pt;"&gt;&lt;span style="color:;"&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;/span&gt;&lt;span style="color:;"&gt;&lt;font color="#a31515"&gt;CHOICE&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="color:;"&gt;&lt;font style="font-size:10pt;" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin:0cm 0cm 0pt;" class="MsoNormal"&gt;&lt;font face="Courier New"&gt;&lt;span style="font-family:;color:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font color="#0000ff"&gt;&lt;font style="font-size:10pt;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:10pt;"&gt;&lt;span style="font-family:;color:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font color="#a31515"&gt;CHOICES&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="font-family:;color:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font style="font-size:10pt;" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="margin:0cm 0cm 0pt;" class="MsoNormal"&gt;&lt;font face="Courier New"&gt;&lt;span style="font-family:;color:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font color="#0000ff"&gt;&lt;font style="font-size:10pt;"&gt;&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:10pt;"&gt;&lt;span style="font-family:;color:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font color="#a31515"&gt;Field&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="font-family:;color:;mso-ansi-language:en;mso-fareast-language:pt;"&gt;&lt;font style="font-size:10pt;" color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;img src="http://blogit.create.pt/aggbug.aspx?PostID=10871" width="1" height="1"&gt;</description><category domain="http://blogit.create.pt/blogs/andrevala/archive/tags/Tips+and+Tricks/default.aspx">Tips and Tricks</category><category domain="http://blogit.create.pt/blogs/andrevala/archive/tags/Deployment/default.aspx">Deployment</category><category domain="http://blogit.create.pt/blogs/andrevala/archive/tags/SharePoint+2010/default.aspx">SharePoint 2010</category></item><item><title>AutoMapper</title><link>http://blogit.create.pt/blogs/joaomartins/archive/2011/08/09/AutoMapper.aspx</link><pubDate>Tue, 09 Aug 2011 13:52:19 GMT</pubDate><guid isPermaLink="false">82e6d864-cc1c-4326-bdf8-b027608494f4:9613</guid><dc:creator>jota</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;a href="http://automapper.codeplex.com/" target="_blank"&gt;AutoMapper&lt;/a&gt; is a «&lt;em&gt;convention-based object-to-object mapper&lt;/em&gt;». According to the description, «&lt;em&gt;AutoMapper uses a fluent configuration API to define an object-object mapping strategy. AutoMapper uses a convention-based matching algorithm to match up source to destination values. Currently, AutoMapper is geared towards model projection scenarios to flatten complex object models to DTOs and other simple objects, whose design is better suited for serialization, communication, messaging, or simply an anti-corruption layer between the domain and application layer.&lt;/em&gt;»     &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;I’ve been using AutoMapper to map entity objects between data and service layers, as well as service and UI layers. What I mean with mapping is doing stuff such as:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font face="Consolas"&gt;public TDestination Map(TSource src) &lt;/font&gt;&lt;font face="Consolas"&gt;{&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font face="Consolas"&gt;TDestination dest = new TDestination ();&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Consolas"&gt;dest.Field1 = src.Field1;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Consolas"&gt;dest.Field2 = src.Field2 + src.Field3;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Consolas"&gt;dest.Field3 = src.Field10;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Consolas"&gt;// …&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Consolas"&gt;return dest;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;}&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;This is boring and repetitive code, and it’s what AutoMapper wants to avoid writing.&lt;/p&gt;  &lt;p&gt;In its simplest usage, we setup the mapper with:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font face="Consolas"&gt;using AutoMapper;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Consolas"&gt;[…]&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Consolas"&gt;Mapper.CreateMap&amp;lt;TSource , TDestination&amp;gt;();&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;and then convert by calling:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font face="Consolas"&gt;TDestination dest = Mapper.Map&amp;lt;TSource , TDestination&amp;gt;(srcObject);&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;By default, AutoMapper only maps properties that have the same names on the source and destination, however you can parameterize the mapper in a different way. For example, assuming that Field10 in TSource becomes Field3 in TDestination, you can write:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font face="Consolas"&gt;Mapper.CreateMap&amp;lt;TSource , TDestination&amp;gt;()        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; .ForMember( dst =&amp;gt; dst.Field3, options =&amp;gt; options.MapFrom(src =&amp;gt; src.Id));&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;You can add as many ForMember clauses as you want. Also note that dst, options are src are not variable names, but are part of the lambda function definitions.&lt;/p&gt;  &lt;p&gt;After the map is setup like this, the call to Map will now convert the objects correctly.&lt;/p&gt;  &lt;p&gt;So AutoMapper is an extremely convenient way to map between objects, and more convenient the more similarity there is in the names of the properties of the objects being mapped. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;However&lt;/strong&gt;, and quite obviously, AutoMapper does this by using reflection, and I wanted to measure the impact of doing these conversions this way, compared with the hand-coded assignments shown at the top.&lt;/p&gt;  &lt;p&gt;I created two examples: in the first, the two objects have exacly the same structure, so AutoMapper does all the work. In the second, the destination type has the same fields, but with different names, so I had to use ForMember once for each of the 6 fields in my test classes.&lt;/p&gt;  &lt;p&gt;I then created a loop that converted using either of the two methods a number of times and printed out the elapsed time. Here are the results:&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="2"&gt;     &lt;tr&gt;       &lt;td&gt;Type of Conversion&lt;/td&gt;        &lt;td&gt;Number of loop iterations&lt;/td&gt;        &lt;td&gt;Elapsed time using AutoMapper&lt;/td&gt;        &lt;td&gt;Elapsed time hand-coded map&lt;/td&gt;        &lt;td&gt;Ratio&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;Direct&lt;/td&gt;        &lt;td&gt;100.000&lt;/td&gt;        &lt;td&gt;2 sec, 165 ms&lt;/td&gt;        &lt;td&gt;20 ms&lt;/td&gt;        &lt;td&gt;1:108&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;With Property Renames&lt;/td&gt;        &lt;td&gt;100.000&lt;/td&gt;        &lt;td&gt;3 mins, 14 secs, 157ms&lt;/td&gt;        &lt;td&gt;25 ms&lt;/td&gt;        &lt;td&gt;1:7726&lt;/td&gt;     &lt;/tr&gt;   &lt;/table&gt;  &lt;p&gt;The first time was according to what I expected, but the second was actually much larger.&lt;/p&gt;  &lt;p&gt;Getting these results, I then tried an optimization, which was to create the map outside of the test loop – but still after the timer start (assuming it could be created and stored in some in-memory cache), and re-ran the tests. This time the results where much better, especially in the renames case, showing that setting up the map with renames can have a large impact on the execution times. The following table shows the results.&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="2"&gt;     &lt;tr&gt;       &lt;td&gt;Type of Conversion&lt;/td&gt;        &lt;td&gt;Number of loop iterations&lt;/td&gt;        &lt;td&gt;Elapsed time using AutoMapper&lt;/td&gt;        &lt;td&gt;Elapsed time hand-coded map&lt;/td&gt;        &lt;td&gt;Ratio&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;Direct&lt;/td&gt;        &lt;td&gt;100.000&lt;/td&gt;        &lt;td&gt;2 sec, 611 ms&lt;/td&gt;        &lt;td&gt;24 ms&lt;/td&gt;        &lt;td&gt;1:109&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;With Property Renames&lt;/td&gt;        &lt;td&gt;100.000&lt;/td&gt;        &lt;td&gt;2 sec, 508 ms&lt;/td&gt;        &lt;td&gt;27 ms&lt;/td&gt;        &lt;td&gt;1:93&lt;/td&gt;     &lt;/tr&gt;   &lt;/table&gt;  &lt;p&gt;Quite surprising that the renames option is now actually faster than the automatic direct conversion.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;My conclusion:&lt;/strong&gt; I’ll go on using &lt;a href="http://automapper.codeplex.com/" target="_blank"&gt;AutoMapper&lt;/a&gt; for its convenience when writing code, but if performance is an issue, I’ll just directly hand-code the mapping.     &lt;br /&gt;Pre-creating and populating a cache of Mappers would also be a viable alternative, but hard to justify in terms or architecture.&lt;/p&gt;  &lt;p&gt;Check out the &lt;a href="http://automapper.codeplex.com/" target="_blank"&gt;codeplex site&lt;/a&gt; for more features of AutoMapper, such as Flattening or Projection, or contact me if you want the source code I used for these tests.&lt;/p&gt;&lt;img src="http://blogit.create.pt/aggbug.aspx?PostID=9613" width="1" height="1"&gt;</description><category domain="http://blogit.create.pt/blogs/joaomartins/archive/tags/Posts+in+English/default.aspx">Posts in English</category><category domain="http://blogit.create.pt/blogs/joaomartins/archive/tags/MsdnArquitecturaPT/default.aspx">MsdnArquitecturaPT</category><category domain="http://blogit.create.pt/blogs/joaomartins/archive/tags/Desenvolvimento/default.aspx">Desenvolvimento</category><category domain="http://blogit.create.pt/blogs/joaomartins/archive/tags/Development/default.aspx">Development</category></item><item><title>SharePoint Tip #26: Comments in Content Type Definition</title><link>http://blogit.create.pt/blogs/andrevala/archive/2011/08/06/SharePoint-Tip-_2300_26_3A00_-Comments-in-Content-Type-Definition.aspx</link><pubDate>Sat, 06 Aug 2011 20:33:56 GMT</pubDate><guid isPermaLink="false">82e6d864-cc1c-4326-bdf8-b027608494f4:9574</guid><dc:creator>andrevala</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;There is an issue with SharePoint 2010’s CAML parser that causes SharePoint to ignore fields in a Content Type definition. When defining a Content Type feature element, avoid placing comments inside the &lt;code&gt;&amp;lt;fieldrefs&amp;gt;&lt;/code&gt; element as that will cause SharePoint to create the Content Type disregarding all the fields, even though the XML is well formed.&lt;/p&gt;  &lt;p&gt;&lt;code&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot; ?&amp;gt;      &lt;br /&gt;&amp;lt;Elements xmlns=&amp;quot;http://schemas.microsoft.com/sharepoint/&amp;quot;&amp;gt;       &lt;br /&gt;&amp;#160; &amp;lt;ContentType       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; ID=&amp;quot;0x0100C5647A362F236548B218C15302286758&amp;quot;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Name=&amp;quot;MyCT&amp;quot;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Description=&amp;quot;Simple Custom Content Type&amp;quot;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Inherits=&amp;quot;TRUE&amp;quot;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Overwrite=&amp;quot;TRUE&amp;quot;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Version=&amp;quot;0&amp;quot;&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Folder TargetName=”_cts/MyCT” /&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;strong&gt;&amp;lt;FieldRefs&amp;gt;&lt;/strong&gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;FieldRef ID=&amp;quot;{fa564e0f-0c70-4ab9-b863-0177e6ddd247}&amp;quot; Name=&amp;quot;Title&amp;quot; /&amp;gt;       &lt;br /&gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;strong&gt;&lt;font color="#ff0000"&gt;&amp;lt;!-- This is a comment –-&amp;gt;&lt;/font&gt;&lt;/strong&gt;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;FieldRef ID=&amp;quot;{b402db15-ee44-4ec4-89e3-23e10a8fc64c}&amp;quot; Name=&amp;quot;My_x0200_Field&amp;quot; /&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;FieldRef ID=&amp;quot;{538c71e4-8650-4ce7-b021-920effa66346}&amp;quot; Name=&amp;quot;Status&amp;quot; /&amp;gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;strong&gt;&amp;lt;/FieldRefs&amp;gt;&lt;/strong&gt;       &lt;br /&gt;&amp;#160; &amp;lt;/ContentType&amp;gt;       &lt;br /&gt;&amp;lt;/Elements&amp;gt; &lt;/code&gt;&lt;/p&gt;  &lt;p&gt;The Content Type feature element above will cause the Content Type to be created with only the Title field, which is inherited from the parent Content Type. All the fields referenced in this Content Type definition will be ignored.&lt;/p&gt;&lt;img src="http://blogit.create.pt/aggbug.aspx?PostID=9574" width="1" height="1"&gt;</description><category domain="http://blogit.create.pt/blogs/andrevala/archive/tags/Tips+and+Tricks/default.aspx">Tips and Tricks</category><category domain="http://blogit.create.pt/blogs/andrevala/archive/tags/Deployment/default.aspx">Deployment</category><category domain="http://blogit.create.pt/blogs/andrevala/archive/tags/SharePoint+2010/default.aspx">SharePoint 2010</category></item><item><title>WPC2011 and the Future of BizTalk</title><link>http://blogit.create.pt/blogs/joaomartins/archive/2011/07/21/WPC2011-and-the-Future-of-BizTalk.aspx</link><pubDate>Thu, 21 Jul 2011 17:58:21 GMT</pubDate><guid isPermaLink="false">82e6d864-cc1c-4326-bdf8-b027608494f4:9373</guid><dc:creator>jota</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Following &lt;a href="http://digitalwpc.com/Videos/AllVideos/Permalink/e821e9f8-e379-45b0-8879-12fe271c86be#fbid=r0d_xaebQ_D" target="_blank"&gt;Tony Meleg’s presentation at Microsoft World Partner Conference&lt;/a&gt;, there’s a lot of discussion going on about the future of BizTalk Server. The following is a link to some pages with opinions about this issue:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://blogs.msdn.com/b/benjguin/archive/2011/07/15/microsoft-s-middleware-long-term-strategy-la-strat-233-gie-middleware-long-terme-de-microsoft.aspx" target="_blank"&gt;Microsoft’s middleware long term strategy&lt;/a&gt; by Benjamin Guinebertière&lt;/li&gt;    &lt;li&gt;Thread on Linkedin: &lt;a href="http://www.linkedin.com/groups/Someone-please-explain-me-how-3951700.S.57552375?qid=5a857668-8723-461a-83c8-cf9fddd5c021&amp;amp;trk=group_most_popular-0-b-ttl&amp;amp;goback=%2Egmp_3951700" target="_blank"&gt;Someone please explain to me how AppFabric is going to replace BizTalk&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;Thread on Linkedin: &lt;a href="http://www.linkedin.com/groupAnswers?viewQuestionAndAnswers=&amp;amp;discussionID=62194136&amp;amp;gid=58025&amp;amp;trk=EML_anet_di_pst_ttle" target="_blank"&gt;Microsoft’s middleware long term strategy explained at WPC 2011&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Thread on Linkedin: &lt;a href="http://www.linkedin.com/groupAnswers?viewQuestionAndAnswers=&amp;amp;discussionID=57523533&amp;amp;gid=53234&amp;amp;trk=eml-anet_dig-b_mc-pmr-cn" target="_blank"&gt;AppFabric - future of BizTalk&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Post “&lt;a href="http://seroter.wordpress.com/2011/07/14/is-biztalk-server-going-away-at-some-point-yes-dead-nope/" target="_blank"&gt;Is BizTalk Server Going Away At Some Point? Yes. Dead? Nope&lt;/a&gt;” by Richard Seroter&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;This is just a sample of some of the discussion going on. My take? &lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;I’m sorry Microsoft has almost stopped evolving BizTalk since version 2004, in terms of core engine features, BAM, the rules engine, and low latency support;&lt;/li&gt;    &lt;li&gt;As much as love Azure and cloud technologies, including the new Integration stuff, I still can’t see how it can handle integration with onPrem systems such as SAP R/3 or Oracle, low latency, or large volumes of data.&lt;/li&gt;    &lt;li&gt;BizTalk is still the leading integration middleware world-wide.&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;To conclude: Cloud integration will probably gain its space and win some scenarios where it makes sense. But BizTalk, or perhaps more generally ESB/EAI scenarios, will not go away. Your car’s engine is not a utility that you can put on the cloud :).&lt;/p&gt;&lt;img src="http://blogit.create.pt/aggbug.aspx?PostID=9373" width="1" height="1"&gt;</description><category domain="http://blogit.create.pt/blogs/joaomartins/archive/tags/Posts+in+English/default.aspx">Posts in English</category><category domain="http://blogit.create.pt/blogs/joaomartins/archive/tags/BizTalk+Server/default.aspx">BizTalk Server</category><category domain="http://blogit.create.pt/blogs/joaomartins/archive/tags/Azure/default.aspx">Azure</category></item><item><title>Instrumentation Best Practices for High Performance BizTalk Solutions + BizTalk Software Factory for BizTalk 2010</title><link>http://blogit.create.pt/blogs/joaomartins/archive/2011/07/11/Instrumentation-Best-Practices-for-High-Performance-BizTalk-Solutions-_2B00_-BizTalk-Software-Factory-for-BizTalk-2010.aspx</link><pubDate>Mon, 11 Jul 2011 18:12:46 GMT</pubDate><guid isPermaLink="false">82e6d864-cc1c-4326-bdf8-b027608494f4:9252</guid><dc:creator>jota</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;This one slipped me last year. A Microsoft whitepaper about &lt;a href="http://www.microsoft.com/download/en/details.aspx?id=11412" target="_blank"&gt;Instrumentation Best Practices for High Performance BizTalk solutions&lt;/a&gt;. A reminder of the impact of trace and debug on BizTalk Developments. It covers Pipeline Components, Maps, Orchestrations, custom .Net components and even Business Rules. An interesting read.&lt;/p&gt;  &lt;p&gt;Another interesting link is &lt;a href="http://bloggingabout.net/blogs/jpsmit/archive/2011/06/22/biztalk-software-factory-for-biztalk-2010-released.aspx" target="_blank"&gt;BizTalk Software Factory 3.0&lt;/a&gt;. This new version supports BizTalk Server 2010/Visual Studio 2010, which you can download from &lt;a href="http://bsf.codeplex.com/" target="_blank"&gt;Codeplex&lt;/a&gt;. Everything that further accelerates BizTalk development is welcome.&lt;/p&gt;&lt;img src="http://blogit.create.pt/aggbug.aspx?PostID=9252" width="1" height="1"&gt;</description><category domain="http://blogit.create.pt/blogs/joaomartins/archive/tags/Posts+in+English/default.aspx">Posts in English</category><category domain="http://blogit.create.pt/blogs/joaomartins/archive/tags/BizTalk+Server/default.aspx">BizTalk Server</category></item><item><title>Service Pack 1 for Microsoft SharePoint Server 2010 and SharePoint Foundation 2010</title><link>http://blogit.create.pt/blogs/raulribeiro/archive/2011/07/01/Service-Pack-1-for-Microsoft-SharePoint-Server-2010-and-SharePoint-Foundation-2010.aspx</link><pubDate>Fri, 01 Jul 2011 10:38:00 GMT</pubDate><guid isPermaLink="false">82e6d864-cc1c-4326-bdf8-b027608494f4:9164</guid><dc:creator>admin</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Service Pack 1 for Microsoft SharePoint Server 2010 and SharePoint Foundation 2010 has been release, here is the list of links to download the SP1 and the language packs:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;SharePoint Foundation 2010 SP1 - &lt;a href="http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;amp;id=26640"&gt;http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;amp;id=26640&lt;/a&gt;&lt;/li&gt;&lt;li&gt;SharePoint Foundation 2010 SP1 Language Pack&amp;nbsp;- &lt;a href="http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;amp;id=26629"&gt;http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;amp;id=26629&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Microsoft SharePoint Server 2010 SP1 - &lt;a href="http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;amp;id=26623"&gt;http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;amp;id=26623&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Microsoft SharePoint Server 2010 SP1 Language Pack - &lt;a href="http://www.microsoft.com/download/en/details.aspx?id=26621"&gt;http://www.microsoft.com/download/en/details.aspx?id=26621&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;You shoud also deploy the June 2011 CU Update - &lt;a href="http://support.microsoft.com/hotfix/KBHotfix.aspx?kbnum=2536599&amp;amp;kbln=en-us"&gt;http://support.microsoft.com/hotfix/KBHotfix.aspx?kbnum=2536599&amp;amp;kbln=en-us&lt;/a&gt;&lt;/p&gt;&lt;p&gt;And also the Server Pack 1 for Office 2010 &lt;/p&gt;&lt;ul&gt;&lt;li&gt;x64&amp;nbsp;- &lt;a href="http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;amp;id=26617"&gt;http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;amp;id=26617&lt;/a&gt;&lt;/li&gt;&lt;li&gt;x86 - &lt;a href="http://www.microsoft.com/download/en/details.aspx?id=26622"&gt;http://www.microsoft.com/download/en/details.aspx?id=26622&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;img src="http://blogit.create.pt/aggbug.aspx?PostID=9164" width="1" height="1"&gt;</description><category domain="http://blogit.create.pt/blogs/raulribeiro/archive/tags/SharePoint+2010/default.aspx">SharePoint 2010</category><category domain="http://blogit.create.pt/blogs/raulribeiro/archive/tags/Office+2010/default.aspx">Office 2010</category></item><item><title>Windows Phone 7– Outlook sync</title><link>http://blogit.create.pt/blogs/joaomartins/archive/2011/06/21/Windows-Phone-7_1320_-Outlook-sync.aspx</link><pubDate>Tue, 21 Jun 2011 23:56:09 GMT</pubDate><guid isPermaLink="false">82e6d864-cc1c-4326-bdf8-b027608494f4:9032</guid><dc:creator>jota</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;I own a Windows Phone 7, and one of the problems I’ve had since day one is the inability to sync my local Outlook with the phone. My initial approach was to add the phone’s live account to Outlook, and then do copy&amp;amp;paste of contacts and appointments to this account. No need to say this is extremely inefficient... &lt;/p&gt;  &lt;p&gt;My friend &lt;a href="http://agilior.pt/blogs/tiago.pascoal/" target="_blank"&gt;Tiago Pascoal&lt;/a&gt; found the solution for me: a miracle little $20 tool called &lt;a href="http://www.fieldstonsoftware.com/" target="_blank"&gt;gSyncit&lt;/a&gt;. This tool sits on your tray icon and syncs from your Outlook into your gmail account. You can then setup the Google account on your phone, and voila! The tool sync contacts, appointments, tasks and notes.&lt;/p&gt;  &lt;p&gt;I’ve been using it with Outlook 2010 x64 and my feedback is &lt;strong&gt;very &lt;/strong&gt;positive, I highly recommend it.&lt;/p&gt;  &lt;p&gt;It’s just a pitty that I ended up having to buy an app to do something Zune Software should handle for me out-of-the-box, and on top of this using gmail as a bridge.&lt;/p&gt;  &lt;p&gt;&lt;font size="1"&gt;Note: I have &lt;strong&gt;no affiliation whatsoever &lt;/strong&gt;with Fieldston Software.&lt;/font&gt;&lt;/p&gt;&lt;img src="http://blogit.create.pt/aggbug.aspx?PostID=9032" width="1" height="1"&gt;</description><category domain="http://blogit.create.pt/blogs/joaomartins/archive/tags/Posts+in+English/default.aspx">Posts in English</category><category domain="http://blogit.create.pt/blogs/joaomartins/archive/tags/WP7/default.aspx">WP7</category></item><item><title>Editing .ODX Files / Regenerate Orchestration Code</title><link>http://blogit.create.pt/blogs/joaomartins/archive/2011/06/21/Editing-.ODX-Files-_2F00_-Regenerate-Orchestration-Code.aspx</link><pubDate>Tue, 21 Jun 2011 15:44:46 GMT</pubDate><guid isPermaLink="false">82e6d864-cc1c-4326-bdf8-b027608494f4:9028</guid><dc:creator>jota</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Everybody with some experience with BizTalk Server knows that sometimes the ODX files get garbled and have to be fixed manually. I’ve had situations where the compilation of an orchestration works fine, but when viewing the orchestration in the visual studio designer, there are shapes with the red icon of error in it. When things like this happen, or you get those strange “Errors exist for one or more children”, what you can do is have BizTalk re-generate the code part of the ODX. &lt;/p&gt;  &lt;p&gt;To do this, edit the ODX file in notepad, and look for the string:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font face="Consolas"&gt;#endif // __DESIGNER_DATA       &lt;br /&gt;&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Then, &lt;strong&gt;carefully&lt;/strong&gt; remove all the text &lt;strong&gt;after&lt;/strong&gt; this line and until the end of the file. Save the file and re-open it in the Visual Studio Designer, and make some change to is (such as adding a newline in an Expression Shape). This will cause the full re-generation of the code part of the ODX that follows the string above, and it will probably fix your strange problems.&lt;/p&gt;  &lt;p&gt;An old hint, but a useful one!&lt;/p&gt;&lt;img src="http://blogit.create.pt/aggbug.aspx?PostID=9028" width="1" height="1"&gt;</description><category domain="http://blogit.create.pt/blogs/joaomartins/archive/tags/Posts+in+English/default.aspx">Posts in English</category><category domain="http://blogit.create.pt/blogs/joaomartins/archive/tags/BizTalk+Server/default.aspx">BizTalk Server</category></item><item><title>Deleting a branch from your local TFS workspace</title><link>http://blogit.create.pt/blogs/nunocaneco/archive/2011/06/16/Deleting-a-branch-from-your-local-TFS-workspace.aspx</link><pubDate>Thu, 16 Jun 2011 22:15:00 GMT</pubDate><guid isPermaLink="false">82e6d864-cc1c-4326-bdf8-b027608494f4:8987</guid><dc:creator>Nuno Caneco</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Ever tried deleting a project that is under TFS source control from your local workspace? &lt;/p&gt;&lt;p&gt;Well, if you just deleted the files from your hard drive, you might have noticed that TFS &amp;quot;thinks&amp;quot; that you still have your local copy as it was before you press the delete button. This is because TFS keeps track of your local workspaces, which includes the set of files that you have got from the source control.&lt;/p&gt;&lt;p&gt;The solution to get a clean delete is to do a &amp;quot;Get Specific Version&amp;quot; for Changeset #1 under the folders that you wish to get rid of on your local workspace.&lt;/p&gt;&lt;p&gt;Here is the step-by-step recipe:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Open the Source Control Explorer on your Visual Studio&lt;/li&gt;&lt;li&gt;Locate the folder you wish to delete (might be the entire projecto or a specific branch) and right click on it&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Select &amp;quot;Get Specfic Version&amp;quot; &lt;br /&gt;&lt;/li&gt;&lt;li&gt;On &amp;quot;Type&amp;quot; dropdown select &amp;quot;ChangeSet&amp;quot;&lt;/li&gt;&lt;li&gt;On &amp;quot;Changeset&amp;quot; textbox type &amp;quot;1&amp;quot; &lt;br /&gt;&lt;/li&gt;&lt;li&gt;Click Ok&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;If you love the command line or if you need to script this, you can also use command line tool &lt;strong&gt;tf&lt;/strong&gt;: &lt;/p&gt;&lt;ol&gt;&lt;li&gt;Open a command prompt or powershell command window&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Change to the source directory of the project &lt;br /&gt;&lt;/li&gt;&lt;li&gt;Use the command &lt;strong&gt;tf &amp;lt;directory_to_be_removed&amp;gt; /version:C1&lt;/strong&gt; &lt;strong&gt;/recursive&lt;/strong&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://blogit.create.pt/aggbug.aspx?PostID=8987" width="1" height="1"&gt;</description><category domain="http://blogit.create.pt/blogs/nunocaneco/archive/tags/TFS/default.aspx">TFS</category></item><item><title>Free Webinar: LINQ to SharePoint</title><link>http://blogit.create.pt/blogs/andrevala/archive/2011/06/09/Free-Webinar_3A00_-LINQ-to-SharePoint.aspx</link><pubDate>Thu, 09 Jun 2011 13:16:00 GMT</pubDate><guid isPermaLink="false">82e6d864-cc1c-4326-bdf8-b027608494f4:8838</guid><dc:creator>andrevala</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;The &lt;a href="http://www.sharepointeurope.com/" target="_blank"&gt;European SharePoint Conference&lt;/a&gt; organization committee has been setting up a series of free SharePoint-related webinars in preparation for the conference. I&amp;rsquo;ll be presenting one of these webinars, next &lt;strong&gt;Tuesday, June 14th 2011&lt;/strong&gt;, at &lt;strong&gt;12PM CET&lt;/strong&gt;, about &lt;strong&gt;&lt;a href="http://www.sharepointeurope.com/upcoming-webinars/linq-to-sharepoint.aspx" target="_blank"&gt;LINQ to SharePoint&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;&lt;p&gt;The abstract for this webinar is as follows:&lt;/p&gt;&lt;p&gt;&lt;em&gt;Regarding data access, one of the new features introduced with SharePoint 2010 is the possibility to use LINQ to manipulate list items. However, despite being immensely useful, this technology has its own limitations. During this webinar Andr&amp;eacute; will talk about what you can and can&amp;#39;t do with LINQ to SharePoint, as well as the scenarios where this technology should or should not be applied.&lt;/em&gt;&lt;/p&gt;&lt;p&gt;Although it is a free webinar, you must &lt;a href="http://www.sharepointeurope.com/Registration.aspx?type=webinarregistration&amp;amp;id=5" target="_blank"&gt;register&lt;/a&gt; to be able to attend.&lt;/p&gt;&lt;img src="http://blogit.create.pt/aggbug.aspx?PostID=8838" width="1" height="1"&gt;</description><category domain="http://blogit.create.pt/blogs/andrevala/archive/tags/SharePoint+2010/default.aspx">SharePoint 2010</category><category domain="http://blogit.create.pt/blogs/andrevala/archive/tags/Events/default.aspx">Events</category><category domain="http://blogit.create.pt/blogs/andrevala/archive/tags/European+SharePoint+Conference/default.aspx">European SharePoint Conference</category></item><item><title>When are Instance Subscriptions created, after all?</title><link>http://blogit.create.pt/blogs/joaomartins/archive/2011/06/02/When-are-Instance-Subscriptions-created_2C00_-after-all_3F00_.aspx</link><pubDate>Thu, 02 Jun 2011 19:50:42 GMT</pubDate><guid isPermaLink="false">82e6d864-cc1c-4326-bdf8-b027608494f4:8653</guid><dc:creator>jota</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;I stumbled with a situation where a Main orchestration &lt;strong&gt;calls&lt;/strong&gt; a sub-orchestration, and this sub-orchestration sends back to Main a new message, using Direct Binding. &lt;strong&gt;The non-obvious behavior here is that the first Orchestration calls the second synchronously, so in &lt;em&gt;theory&lt;/em&gt; the send in the second should fail, because the subscription is not there yet. &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Since I knew that publishing with Direct Binding fails the sender orchestration if there is no subscription, I did a small test to check what was happening.&lt;/p&gt;  &lt;p&gt;This is the main orchestration:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://jota.paginas.sapo.pt/blogstuff/ArqSw/When-are-Instance-Subscriptions-created-_DBA7/orch_main.png"&gt;&lt;img style="background-image:none;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;" title="orch_main" border="0" alt="orch_main" src="http://jota.paginas.sapo.pt/blogstuff/ArqSw/When-are-Instance-Subscriptions-created-_DBA7/orch_main_thumb.png" width="644" height="412" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The first Send initializes a correlation set, and the second receive follows it. The Main Orchestration passes the initially received message as a parameter to the sub-orchestration, which simply maps it into a new one and returns the result:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://jota.paginas.sapo.pt/blogstuff/ArqSw/When-are-Instance-Subscriptions-created-_DBA7/orch_sub.png"&gt;&lt;img style="background-image:none;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;" title="orch_sub" border="0" alt="orch_sub" src="http://jota.paginas.sapo.pt/blogstuff/ArqSw/When-are-Instance-Subscriptions-created-_DBA7/orch_sub_thumb.png" width="644" height="335" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;I deployed this and did a Search for subscriptions in the Administration Console. The result is curious: the subscription for the Reply message (the result of the map) is not there yet when at “Wait 1”, but it’s created after the correlation set is created, so its there when “Wait 2” is reached. This is why the publish in the sub-orchestration doesn’t actually fail.&lt;/p&gt;  &lt;p&gt;This behavior might be different in some cases, as reported here by Yossi: &lt;a href="http://blog.sabratech.co.uk/2007/06/when-is-subscription-created-for.html" target="_blank"&gt;When is a subscription created for a correlation set passed as a parameter?&lt;/a&gt;. &lt;/p&gt;&lt;img src="http://blogit.create.pt/aggbug.aspx?PostID=8653" width="1" height="1"&gt;</description><category domain="http://blogit.create.pt/blogs/joaomartins/archive/tags/BizTalk+Server/default.aspx">BizTalk Server</category></item><item><title>European SharePoint Conference 2011</title><link>http://blogit.create.pt/blogs/raulribeiro/archive/2011/06/02/European-SharePoint-Conference-2011.aspx</link><pubDate>Thu, 02 Jun 2011 13:28:00 GMT</pubDate><guid isPermaLink="false">82e6d864-cc1c-4326-bdf8-b027608494f4:8652</guid><dc:creator>admin</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;I&amp;rsquo;m pleased to announce that I will&amp;nbsp;present with my collegue &lt;a href="http://blogit.create.pt/blogs/andrevala/" target="_blank"&gt;Andr&amp;eacute; Vala&lt;/a&gt; three sessions in the &lt;a href="http://www.sharepointeurope.com/" target="_blank"&gt;European SharePoint Conference 2011&lt;/a&gt;, which will take place in Berlin, 17th &amp;ndash; 20th October 2011. &lt;/p&gt;&lt;p&gt;&lt;a href="http://www.sharepointeurope.com/" target="_blank"&gt;&lt;img border="0" src="http://img38.imageshack.us/img38/4590/esc2011.jpg" style="border:0px currentColor;padding-top:0px;padding-right:0px;padding-left:0px;background-image:none;" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;The three sessions are:&lt;/p&gt;&lt;p&gt;&lt;strong&gt;W18 - &lt;a href="http://www.sharepointeurope.com/conferences/session-details.aspx?sessionId=61" target="_blank"&gt;Using BCS to Integrate Azure Services with SharePoint 2010&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;W26 - &lt;a href="http://www.sharepointeurope.com/conferences/session-details.aspx?sessionId=74" target="_blank"&gt;Federated Authentication in SharePoint 2010&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Th28 - &lt;a href="http://www.sharepointeurope.com/conferences/session-details.aspx?sessionId=108" target="_blank"&gt;SharePoint + Azure = Better Together&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&lt;img src="http://blogit.create.pt/aggbug.aspx?PostID=8652" width="1" height="1"&gt;</description><category domain="http://blogit.create.pt/blogs/raulribeiro/archive/tags/SharePoint+2010/default.aspx">SharePoint 2010</category></item><item><title>Browser File Handling avoiding Permissive mode</title><link>http://blogit.create.pt/blogs/raulribeiro/archive/2011/06/02/Browser-File-Handling-and-avoiding-Permissive-mode.aspx</link><pubDate>Thu, 02 Jun 2011 13:25:00 GMT</pubDate><guid isPermaLink="false">82e6d864-cc1c-4326-bdf8-b027608494f4:8651</guid><dc:creator>admin</dc:creator><slash:comments>0</slash:comments><description>&lt;span class="Apple-style-span" style="color:#000000;text-transform:none;text-indent:0px;letter-spacing:normal;word-spacing:0px;white-space:normal;border-collapse:separate;orphans:2;widows:2;-webkit-border-horizontal-spacing:0px;-webkit-border-vertical-spacing:0px;-webkit-text-decorations-in-effect:none;-webkit-text-size-adjust:auto;-webkit-text-stroke-width:0px;"&gt;&lt;span class="Apple-style-span" style="color:#222222;line-height:18px;font-family:Arial, Tahoma, Helvetica, FreeSans, sans-serif;font-size:13px;"&gt;A change in behavior from SharePoint 2007 to SharePoint 2010 is that only file types marked as &amp;quot;safe&amp;quot; are allowed to be opened in the browser or opened on a download request (instead of just saved to disk).&lt;p&gt;To work around this is to set the Browser File Handling policy to Permissive, from Strict, on the Web Application.&amp;nbsp; &lt;/p&gt;&lt;p&gt;This has a negative impact on security as clients may open harmful content from SharePoint without being prompted to do so.&lt;/p&gt;&lt;p&gt;The preferred way of handling this is to leave the Browser File Handling on the Strict mode, then from the SharePoint Command Shell, run:&lt;/p&gt;&lt;div id="codeSnippetWrapper" style="margin:20px 0px 10px;padding:4px;border:1px solid silver;width:633px;text-align:left;line-height:12pt;font-family:'Courier New', courier, monospace;font-size:8pt;cursor:text;direction:ltr;overflow-x:auto;overflow-y:auto;max-height:200px;background-color:#f4f4f4;"&gt;&lt;div id="codeSnippet" style="padding:0px;width:633px;text-align:left;color:black;line-height:12pt;font-family:'Courier New', courier, monospace;font-size:8pt;direction:ltr;overflow-x:visible;overflow-y:visible;background-color:#f4f4f4;"&gt;&lt;pre style="margin:0em;padding:0px;width:633px;text-align:left;color:black;line-height:12pt;font-family:'Courier New', courier, monospace;font-size:8pt;direction:ltr;overflow-x:visible;overflow-y:visible;background-color:white;"&gt;&lt;span id="lnum1" style="color:#606060;"&gt;   1:&lt;/span&gt; $webApp = &lt;span style="color:#0000ff;"&gt;Get&lt;/span&gt;-SPWebApplication(&lt;span style="color:#006080;"&gt;&amp;quot;http://webAppUrl&amp;quot;&lt;/span&gt;)&lt;/pre&gt;&lt;pre style="margin:0em;padding:0px;width:633px;text-align:left;color:black;line-height:12pt;font-family:'Courier New', courier, monospace;font-size:8pt;direction:ltr;overflow-x:visible;overflow-y:visible;background-color:#f4f4f4;"&gt;&lt;span id="lnum2" style="color:#606060;"&gt;   2:&lt;/span&gt; $webApp.AllowedInlineDownloadMimeTypes.Add(&lt;span style="color:#006080;"&gt;&amp;quot;application/pdf&amp;quot;&lt;/span&gt;)&lt;/pre&gt;&lt;pre style="margin:0em;padding:0px;width:633px;text-align:left;color:black;line-height:12pt;font-family:'Courier New', courier, monospace;font-size:8pt;direction:ltr;overflow-x:visible;overflow-y:visible;background-color:white;"&gt;&lt;span id="lnum3" style="color:#606060;"&gt;   3:&lt;/span&gt; $webApp.Update()&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;This example is to add the MIME type for PDF to be allowed to open within the browser window.&lt;/p&gt;&lt;/span&gt;&lt;/span&gt;&lt;img src="http://blogit.create.pt/aggbug.aspx?PostID=8651" width="1" height="1"&gt;</description><category domain="http://blogit.create.pt/blogs/raulribeiro/archive/tags/SharePoint+2010/default.aspx">SharePoint 2010</category></item><item><title>Business Connectivity Services</title><link>http://blogit.create.pt/blogs/andrevala/archive/2011/05/28/Business-Connectivity-Services.aspx</link><pubDate>Sat, 28 May 2011 19:09:32 GMT</pubDate><guid isPermaLink="false">82e6d864-cc1c-4326-bdf8-b027608494f4:8543</guid><dc:creator>andrevala</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;A few weeks ago I had an article of mine published on &lt;a href="http://www.revista-programar.info/?action=editions&amp;amp;type=viewmagazine&amp;amp;n=28" target="_blank"&gt;PROGRAMAR&lt;/a&gt; magazine, issue number 28, a Portuguese developer-focused magazine. Here is the translated version of the article.&lt;/p&gt;  &lt;p&gt;SharePoint 2010 is a complex platform with an impressive set of out-of-the-box features which allow it to fit a great variety of situations. One of the new and most powerful features is called &lt;strong&gt;Business Connectivity Services&lt;/strong&gt; and this article is an introduction to this technology and its potential.&lt;/p&gt;  &lt;h3&gt;What are Business Connectivity Services and what are they for?&lt;/h3&gt;  &lt;p&gt;&lt;em&gt;Business Connectivity Services&lt;/em&gt; (BCS) is the name of the technology that allows SharePoint 2010 and Office 2010 to read from and write information to external systems. It’s an evolution of the &lt;em&gt;Business Data Catalog&lt;/em&gt; (BDC) technology introduced in SharePoint 2007, and on which several improvements were made, namely:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Possibility not only to read, but also to write information to the external data source; &lt;/li&gt;    &lt;li&gt;Support for more complex authentication scenarios; &lt;/li&gt;    &lt;li&gt;Support for multiple data sources; &lt;/li&gt;    &lt;li&gt;Integration with Office client applications; &lt;/li&gt;    &lt;li&gt;New and better ways to present the data; &lt;/li&gt;    &lt;li&gt;Tools specifically focused on creating and manipulating models; &lt;/li&gt;    &lt;li&gt;Extensibility through .Net assemblies. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;The main goal of this technology is to allow the integration of information from external systems and present it on SharePoint and Office client applications with the minimal effort possible and, ideally, without writing a single line of code. There are, in fact, some scenarios where you can use BCS technology only through configuration, but the true flexibility lies in its extensibility which allows it to fulfill almost any integration need.&lt;/p&gt;  &lt;h3&gt;Architecture&lt;/h3&gt;  &lt;p&gt;BCS technology is not limited to a service or API inside SharePoint 2010. In fact, it’s a set of components, services and tools as presented in the schema below.&lt;/p&gt;  &lt;p&gt;&lt;img src="http://www.sharepointpt.org/Lists/Photos/Avala/BCS-Architecture.jpg" width="750" height="344" /&gt;&lt;/p&gt;  &lt;p align="center"&gt;Fig.1: Business Connectivity Services Architecture&lt;/p&gt;  &lt;h4&gt;Business Data Connectivity (BDC) Service&lt;/h4&gt;  &lt;p&gt;The &lt;strong&gt;Business Data Connectivity Service&lt;/strong&gt; is one of the core components of BCS. It’s the component which stores, in its central metadata repository, the descriptions of the information which we want to access as well as the external systems that holds it.&lt;/p&gt;  &lt;h4&gt;&lt;strong&gt;Metadata Store&lt;/strong&gt;&lt;/h4&gt;  &lt;p&gt;The metadata repository is the database used by the &lt;em&gt;Business Data Connectivity Service&lt;/em&gt; to store the descriptions of the information and the external systems that hold it. This repository does not store any of the information from the external systems, only the metadata required to retrieve it.&lt;/p&gt;  &lt;h4&gt;Connectors&lt;/h4&gt;  &lt;p&gt;The &lt;strong&gt;connectors&lt;/strong&gt; are the pieces the allow the &lt;em&gt;Business Data Connectivity Service&lt;/em&gt; to connect to the external data sources described in the models stored in its &lt;em&gt;Metadata Store&lt;/em&gt;. Three connectors are included in the product:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Database Connector&lt;/strong&gt; – allows the connection to SQL Server databases. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;WCF/Web Services Connector&lt;/strong&gt; – allows the connection to WCF services or web services. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;.Net Assembly Connector&lt;/strong&gt; – allows connections using a custom developed .Net assembly, allowing access to virtually any external data source, including simultaneous connections to multiple data sources. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;The connector mechanism is extensible and allows custom connectors to be developed, for cases when the out-of-the-box connectors are not enough.&lt;/p&gt;  &lt;h4&gt;&lt;strong&gt;BDC Client Runtime&lt;/strong&gt;&lt;/h4&gt;  &lt;p&gt;Office 2010 applications are also able to expose information from external systems through BCS. That is possible because Office 2010 includes the &lt;strong&gt;BDC Client Runtime&lt;/strong&gt;, a component that, in the client application context, performs the same tasks that the &lt;em&gt;BDC Service&lt;/em&gt; performs in the server context. That is, it accesses the metadata repository and, through the definitions stored in it, it accesses the external information itself.&lt;/p&gt;  &lt;h4&gt;&lt;strong&gt;Client Data Cache&lt;/strong&gt;&lt;/h4&gt;  &lt;p&gt;To improve performance when accessing information, as well as to support offline access to information, the BCS use a cache to store the retrieved external data. This cache is based on a &lt;em&gt;SQL Server 2005 Compact Edition&lt;/em&gt; database and has an automatic synchronization mechanism that allows all changes performed on the data in offline mode to be replicated as soon as the external system becomes available once again.&lt;/p&gt;  &lt;h3&gt;&lt;/h3&gt;  &lt;h3&gt;Core Concepts&lt;/h3&gt;  &lt;p&gt;Now that you know the architecture for Business Connectivity Services, it’s important to understand what kind of metadata is stored in the Metadata Store by the Business Data Connectivity Service.&lt;/p&gt;  &lt;h4&gt;Model&lt;/h4&gt;  &lt;p&gt;The metadata used by the BDC Service and stored in the Metadata Store consists of XML files which describe &lt;strong&gt;Models&lt;/strong&gt;, usually named &lt;strong&gt;BDC Metadata Models&lt;/strong&gt;. In SharePoint 2007, these metadata files were called &lt;em&gt;application definition files&lt;/em&gt;.&lt;/p&gt;  &lt;p&gt;A model contains, in declarative form, all the necessary information so that the BCS are able to connect to an external system and retrieve the data stored in it.&lt;/p&gt;  &lt;h4&gt;Lob System&lt;/h4&gt;  &lt;p&gt;Regarding BCS, the &lt;strong&gt;Lob System&lt;/strong&gt; (or &lt;em&gt;Line-of-Business System&lt;/em&gt;) refers to the external system which stores the data we want to access. This system can be a relational database, or any other system that exposes that data through web services or WCF services.&lt;/p&gt;  &lt;h4&gt;External Content Type&lt;/h4&gt;  &lt;p&gt;The &lt;strong&gt;External Content Type&lt;/strong&gt; (ECT) is the core and most important concept of the BCS, since it describes a business entity, that is, it describes the structure and behavior of the data we want to access. Examples of ECTs are &lt;em&gt;Client&lt;/em&gt;, &lt;em&gt;Invoice&lt;/em&gt; or &lt;em&gt;Employee&lt;/em&gt;.&lt;/p&gt;  &lt;p&gt;The ECT definition specifies the structure and behavior of the entity, that is:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;The fields that compose an instance of the entity and their respective data types. Example: &lt;em&gt;Name&lt;/em&gt;, &lt;em&gt;Address&lt;/em&gt; or &lt;em&gt;Country&lt;/em&gt;. &lt;/li&gt;    &lt;li&gt;The mapping of these fields to objects used by Office client applications. Example: the field &lt;em&gt;Name&lt;/em&gt; of the entity maps to the &lt;em&gt;FullName&lt;/em&gt; field in Outlook. &lt;/li&gt;    &lt;li&gt;The methods that must be invoked by the BCS to read, create, update and delete instances of the entity. These methods might correspond, for instance, to stored procedures, SQL queries or web services. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;In the context of a Model, we can define several entities, that is, several External Content Types.&lt;/p&gt;  &lt;h4&gt;Methods&lt;/h4&gt;  &lt;p&gt;The &lt;strong&gt;methods&lt;/strong&gt; are abstractions of the external system’s API and they allow BDC Service to know which stored procedures or web services to call when manipulating the data. The definition of a method is created in the context of an entity and is always based on one of the stereotypes supplied by the BCS. There are about 20 stereotypes, such as &lt;em&gt;Updater&lt;/em&gt; (to update an item), &lt;em&gt;Finder&lt;/em&gt; (to list items), &lt;em&gt;SpecificFinder&lt;/em&gt; (to retrieve a specific item), &lt;em&gt;Deleter&lt;/em&gt; (to delete an item) among others.&lt;/p&gt;  &lt;h4&gt;Filters&lt;/h4&gt;  &lt;p&gt;&lt;strong&gt;Filters&lt;/strong&gt; describe the parameters that can be passed to the methods in the definition of each entity. There are 18 types of filters that can be used in methods and which let the BDC Service know which information should be passed to them. Examples of filters are the &lt;em&gt;UserName&lt;/em&gt;, which passes the username of the current user, or the &lt;em&gt;Limit&lt;/em&gt;, which defines the maximum number of items that are returned in a single method call.&lt;/p&gt;  &lt;h4&gt;Associations&lt;/h4&gt;  &lt;p&gt;An &lt;strong&gt;association&lt;/strong&gt; is a relationship between two entities (External Content Types). However, since there is no guarantee that the data source is a relational database, the association requires that a special method exists. This method allows the BCS to retrieve elements of the related entity from elements of the source entity.&lt;/p&gt;  &lt;h4&gt;Model Sample&lt;/h4&gt;  &lt;p&gt;Fortunately, in most cases, we don’t need to manually edit the model since the tools supplied by Microsoft allow us to visually perform most of the configurations. However, just as an example, a model file looks like the one shown below.&lt;/p&gt;  &lt;p&gt;&lt;img src="http://www.sharepointpt.org/Lists/Photos/Avala/Modelo.jpg" width="750" height="499" /&gt;&lt;/p&gt;  &lt;p align="center"&gt;Fig.2: Partial sample of a BDC Model&lt;/p&gt;  &lt;h3&gt;Presenting External Data&lt;/h3&gt;  &lt;p&gt;But all this complexity has a purpose – to allow the presentation and manipulation of the data stored in external systems – so there are several alternatives to do so.&lt;/p&gt;  &lt;h4&gt;&lt;strong&gt;External List&lt;/strong&gt;&lt;/h4&gt;  &lt;p&gt;The &lt;strong&gt;External List&lt;/strong&gt; is a new type of list in SharePoint 2010 which, being bound to an External Content Type, allows the visualization and manipulation of the data exposed through that ECT as if it was stored in a regular SharePoint list. In reality, the data still resides in the external system and it’s read and manipulated in real time.&lt;/p&gt;  &lt;p&gt;&lt;img src="http://www.sharepointpt.org/Lists/Photos/Avala/ExternalList.jpg" width="750" height="392" /&gt;&lt;/p&gt;  &lt;p align="center"&gt;Fig.3: External list&lt;/p&gt;  &lt;p&gt;The greatest advantage of External Lists is the fact that they look and feel exactly like regular lists and, additionally, SharePoint’s object model treats them as such, allowing developers to read and write list items as if they were stored in SharePoint.&lt;/p&gt;  &lt;p&gt;On the other hand, not all works exactly as in traditional lists. In particular:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Workflows &lt;/li&gt;    &lt;li&gt;Alerts &lt;/li&gt;    &lt;li&gt;Folders &lt;/li&gt;    &lt;li&gt;Attachments &lt;/li&gt;    &lt;li&gt;RSS Feeds &lt;/li&gt;    &lt;li&gt;Export to Excel &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Before an ECT can be used in an External List, it has to define, at least, a &lt;em&gt;Finder&lt;/em&gt; method (to list items) and a &lt;em&gt;SpecificFinder&lt;/em&gt; method (to retrieve a specific item). This allows the External List to present the list of items and the detail for each one. Additionally, if the ECT has an &lt;em&gt;Updater&lt;/em&gt; method (updates an item), a &lt;em&gt;Deleter&lt;/em&gt; method (deletes an item) and a &lt;em&gt;Creator&lt;/em&gt; method (creates a new item), the External List will make the corresponding actions available.&lt;/p&gt;  &lt;h4&gt;&lt;strong&gt;External Data Column&lt;/strong&gt;&lt;/h4&gt;  &lt;p&gt;The &lt;strong&gt;External Data Column&lt;/strong&gt; was already around in SharePoint 2007 and, although it has been slightly improved in SharePoint 2010, its objective remains the same – allow the use of external data as a list column. It works similarly to a lookup column, allowing the user to select one of the items return by the ECT.&lt;/p&gt;  &lt;p&gt;&lt;img style="display:block;float:none;margin-left:auto;margin-right:auto;" src="http://www.sharepointpt.org/Lists/Photos/Avala/ExternalColumn.jpg" /&gt;&lt;/p&gt;  &lt;p align="center"&gt;Fig.4: External Data Column&lt;/p&gt;  &lt;p&gt;One of the advantages of External Data Columns is the possibility to used them in Word 2010, allowing the user to select one item exposed through the BCS and use that data inside the documents.&lt;/p&gt;  &lt;p&gt;Just like for External Lists, to use an ECT in an External Data Column, the ECT must define, at least, the &lt;em&gt;Finder&lt;/em&gt; and &lt;em&gt;SpecificFinder&lt;/em&gt; methods.&lt;/p&gt;  &lt;h4&gt;&lt;strong&gt;Business Data Web Parts&lt;/strong&gt;&lt;/h4&gt;  &lt;p&gt;&lt;strong&gt;Business Data Web Parts&lt;/strong&gt; are a set of web parts that are able to connect to external data sources through an ECT and present that information in SharePoint. These web parts were also present in SharePoint 2007 but were improved in SharePoint 2010, now being able to cache the external information for better performance.&lt;/p&gt;  &lt;p&gt;&lt;img style="display:block;float:none;margin-left:auto;margin-right:auto;" src="http://www.sharepointpt.org/Lists/Photos/Avala/BusinessDataWebParts.jpg" /&gt;&lt;/p&gt;  &lt;p align="center"&gt;Fig.5: Business Data Web Parts&lt;/p&gt;  &lt;p&gt;The Business Data Web Parts use XSLT to present the information, which grants them enormous flexibility regarding its graphical appearance as well as the possibility to be edited in SharePoint Designer 2010.&lt;/p&gt;  &lt;p&gt;The web parts included in this set are:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Business Data List&lt;/strong&gt; – lists instances (items) of an entity (ECT). &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Business Data Item&lt;/strong&gt; – presents the details of an instance (item) of an entity (ECT). &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Business Data Item Builder&lt;/strong&gt; – uses query string parameters to create an instance (item) of an entity (ECT) which can then be passed on to other web parts, such as the Business Data Item web part. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Business Data Related List&lt;/strong&gt; – lists instances (items) of a related entity (ECT). It’s especially useful to present data in Master/Detail scenarios. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Business Data Connectivity Filter&lt;/strong&gt; – filters the data retrieved from an ECT before it is consumed by another web part, such as the Business Data List web part. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Business Data Actions&lt;/strong&gt; – presents the available actions for an instance (item) of an entity (ECT). &lt;/li&gt; &lt;/ul&gt;  &lt;h4&gt;Search&lt;/h4&gt;  &lt;p&gt;One of the largest benefits offered by the BCS is the possibility to index and search external data exposed through the ECTs as if it is stored in SharePoint lists.&lt;/p&gt;  &lt;p&gt;For an ECT to be indexed it has to define, at least, the &lt;em&gt;IDEnumerator&lt;/em&gt; method and the &lt;em&gt;SpecificFinder&lt;/em&gt; method. The first will allow SharePoint to retrieve the IDs of all the items and the second to retrieve each item’s detail. Additionally, the model must have the &lt;em&gt;ShowInSearchUI&lt;/em&gt; property so that SharePoint can use it for indexing.&lt;/p&gt;  &lt;p&gt;But this is for the data to be indexed. To allow the users to see detailed information about a specific item when they click on a search result, we also need to configure the &lt;strong&gt;Profile Page&lt;/strong&gt; for each indexed ECT.&lt;/p&gt;  &lt;p&gt;A &lt;strong&gt;Profile Page&lt;/strong&gt; is just a page in SharePoint with a few predefined web parts which receives the item identifier through a query string parameter and presents detailed information about that item, including items of related ECTs (through Associations).&lt;/p&gt;  &lt;p&gt;Profile Pages are configured in Central Administration, accessing the Business Data Connectivity Service management page. The only information we need to supply is the URL address of the website where these pages will automatically be created, and SharePoint will do the rest for us.&lt;/p&gt;  &lt;p&gt;At this point, it suffices to tell the Search Service that it must index a new Content Source of type &lt;strong&gt;Line of Business Data&lt;/strong&gt; and then start a Full Crawl. After the crawl finishes, the external data is available to be searched and each item’s information will be presented in its respective Profile Page.&lt;/p&gt;  &lt;h4&gt;&lt;strong&gt;User Profiles&lt;/strong&gt;&lt;/h4&gt;  &lt;p&gt;Using the BCS, SharePoint 2010 can use external data sources to complement User Profile information. To do that, you just need to able to map User Profiles to items of an ECT, using a field on each side (such as the username).&lt;/p&gt;  &lt;p&gt;It is not possible to configure an ECT as a main data source for the profile synchronization, but you can complement an Active Directory synchronization with data retrieved from an ECT.&lt;/p&gt;  &lt;h4&gt;&lt;strong&gt;Office Client Integration&lt;/strong&gt;&lt;/h4&gt;  &lt;p&gt;The integration of external data in Office 2010 applications is also one of the new SharePoint 2010 features in what regards the Business Connectivity Services. Until now, this kind of functionality was only possible through considerably complex custom developments.&lt;/p&gt;  &lt;p&gt;With the BCS it’s possible to present external data in Office applications, use it in offline scenarios and, in specific cases, update the data directly in the external data source. However, not all the Office 2010 applications have native support for such integration. At the moment, only Outlook 2010, Word 2010, Access 2010, InfoPath 2010 and SharePoint Workspace 2010 are able to do it, being that each one uses this technology in a different way.&lt;/p&gt;  &lt;h5&gt;&lt;em&gt;Outlook 2010&lt;/em&gt;&lt;/h5&gt;  &lt;p&gt;Outlook 2010 is one of the Office applications that profits the most from the client features of the BCS. To be able to view the data exposed through an ECT in Outlook 2010, two steps are required when configuring that ECT:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Defining what is the type of data exposed by the ECT among the types of data supported by Outlook: Contacts, Tasks, Appointments or Posts. This configuration can be performed in SharePoint Designer or directly in the Model’s XML. &lt;/li&gt;    &lt;li&gt;Mapping the ECT fields with the Outlook fields used in that type of data. For instance, specify which fields of the ECT map to the fields &lt;em&gt;Last Name&lt;/em&gt;, &lt;em&gt;First Name&lt;/em&gt;, &lt;em&gt;E-mail Address&lt;/em&gt; and others, in Outlook. &lt;/li&gt; &lt;/ol&gt;  &lt;table cellspacing="0" cellpadding="2"&gt;     &lt;tr&gt;       &lt;td&gt;&lt;img src="http://www.sharepointpt.org/Lists/Photos/Avala/ConnectToOutlook.jpg" /&gt;&lt;/td&gt;        &lt;td&gt;If there is an External List which exposes the data from the ECT, it will have a &lt;em&gt;Connect to Outlook&lt;/em&gt; button in its ribbon. By pressing that button SharePoint will analyze the ECT specification and include it in a &lt;em&gt;Click Once&lt;/em&gt; installation package. That package will be immediately deployed to the user’s Outlook 2010 as an Office Add-In.&lt;/td&gt;     &lt;/tr&gt;   &lt;/table&gt;  &lt;p&gt;Once the package is installed, the list will appear in Outlook’s interface allowing the user to interact with the external data as if it was a list of regular contacts, tasks, appointments or posts. In case the ECT defines the required methods, you can even use Outlook to update the data from the external data source. All the fields exposed by the ECT which are not mapped to fields of the Outlook object are shown in a separate section of that object’s detail and can also be updated.&lt;/p&gt;  &lt;p&gt;&lt;img style="display:block;float:none;margin-left:auto;margin-right:auto;" src="http://www.sharepointpt.org/Lists/Photos/Avala/CustomerDetails.jpg" /&gt;&lt;/p&gt;  &lt;p align="center"&gt;Fig.6: Additional information (unmapped) from the ECT in Outlook’s interface&lt;/p&gt;  &lt;p&gt;Like all the other Office applications, Outlook takes advantage of a data caching and synchronization mechanism allowing the user to work offline and automatically synchronizing the data as soon as the external system becomes available.&lt;/p&gt;  &lt;h5&gt;&lt;strong&gt;&lt;em&gt;Word 2010&lt;/em&gt;&lt;/strong&gt;&lt;/h5&gt;  &lt;p&gt;Word 2010 is another of the Office applications which has native support for the BCS. However, the use cases for this technology in Word are different from the ones available in Outlook. Using BCS in Word 2010 is limited to inserting external data in documents through &lt;em&gt;Quick Parts&lt;/em&gt;.&lt;/p&gt;  &lt;p&gt;For those who never heard of them, &lt;em&gt;Quick Parts&lt;/em&gt; are a Word feature which allows the creation of dynamic fields in the middle of a document’s text. These fields can be automatically filled with data from the document’s content type, in SharePoint. This includes data from an External Data Column that exists in the Document Library where the document is stored.&lt;/p&gt;  &lt;p&gt;Here’s how it works:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;In a Document Library, create an External Data Column configuring it to expose the data of a specific ECT and defining the fields of the ECT which are exposed. &lt;/li&gt;    &lt;li&gt;Create a new document in that library, using the &lt;em&gt;New&lt;/em&gt; button from the ribbon. &lt;/li&gt;    &lt;li&gt;In Word, through the &lt;em&gt;Insert&lt;/em&gt; ribbon, insert one (ore more) &lt;em&gt;Quick Part&lt;/em&gt;, selecting the &lt;em&gt;Document Property(s)&lt;/em&gt; that match the external data you wish to include in the document.       &lt;p&gt;&lt;img style="display:block;float:none;margin-left:auto;margin-right:auto;" src="http://www.sharepointpt.org/Lists/Photos/Avala/QuickParts.jpg" /&gt;&lt;/p&gt;      &lt;p align="center"&gt;Fig.7: Quick parts with external data&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;Word will allow the user to select an item from the ECT, using the &lt;em&gt;Entity Data Picker&lt;/em&gt;, and will automatically populate all the related fields. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&lt;img style="display:block;float:none;margin-left:auto;margin-right:auto;" src="http://www.sharepointpt.org/Lists/Photos/Avala/EntityDataPicker.jpg" /&gt;&lt;/p&gt;  &lt;p align="center"&gt;Fig.8: External Data Picker&lt;/p&gt;  &lt;h5&gt;&lt;strong&gt;&lt;em&gt;Access 2010&lt;/em&gt;&lt;/strong&gt;&lt;/h5&gt;  &lt;p&gt;Access 2010 is able to import a Business Data Connectivity (BDC) model an present the external data as regular database tables. However, the created tables are read-only, which means you cannot write back to the external data source.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;em&gt;InfoPath 2010&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;When an External List is created, the corresponding forms for viewing, adding and editing the external data are also generated. By default, these forms are generated as regular ASP.NET pages but, using SharePoint Designer or the External List ribbon, it’s possible to create smarter forms using InfoPath. The forms are also automatically generated but they can later be modified using InfoPath.&lt;/p&gt;  &lt;p&gt;It is also possible to drag an External Data Picker to an InfoPath form and define an External List as a data source, thus allowing reading from and writing to external data sources.&lt;/p&gt;  &lt;h5&gt;&lt;em&gt;SharePoint Workspace 2010&lt;/em&gt;&lt;/h5&gt;  &lt;table cellspacing="0" cellpadding="2"&gt;     &lt;tr&gt;       &lt;td&gt;&lt;img src="http://www.sharepointpt.org/Lists/Photos/Avala/SyncToSharePointWorkspace.jpg" /&gt;&lt;/td&gt;        &lt;td&gt;SharePoint Workspace 2010 is the evolution of Groove 2007 and is positioned as the tool for offline access to data stored in SharePoint 2010, including External Lists. Just like for the other types of lists, you just need to click the &lt;em&gt;Sync to SharePoint Workspace&lt;/em&gt; button so that their content is downloaded to the user’s machine becoming available when she is disconnected from the server.&lt;/td&gt;     &lt;/tr&gt;   &lt;/table&gt;  &lt;p&gt;Regarding BCS, what SharePoint Workspace does is download the ECT definition associated with the External List and store it locally, as well as the list forms for inserting, editing and viewing the data which were generated for that External List. Just like the other described Office applications, SharePoint Workspace uses the local cache to ensure the availability of the external data even when the external system is not available.&lt;/p&gt;  &lt;h3&gt;Solutions and Tools&lt;/h3&gt;  &lt;p&gt;One of the most frequent complaints of who used &lt;em&gt;Business Data Catalog&lt;/em&gt; in SharePoint 2007 was the lack of proper tools that allowed for a good experience when creating and manipulating metadata (models). Microsoft took notice of those complaints and supplied us with two fantastic tools to use with Business Connectivity Services.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;SharePoint Designer 2010 &lt;/li&gt;    &lt;li&gt;Visual Studio 2010 &lt;/li&gt; &lt;/ul&gt;  &lt;h4&gt;SharePoint Designer 2010&lt;/h4&gt;  &lt;p&gt;SharePoint Designer 2010 is a free and mandatory tool for any SharePoint power user or developer. It includes a large set of features mainly focused on creating no code solutions, that is, SharePoint customizations that do not require any custom code.&lt;/p&gt;  &lt;p&gt;&lt;img style="display:block;float:none;margin-left:auto;margin-right:auto;" src="http://www.sharepointpt.org/Lists/Photos/Avala/SharePointDesigner.jpg" width="750" height="474" /&gt;&lt;/p&gt;  &lt;p align="center"&gt;Fig.9: Using SharePoint Designer to manage ECTs&lt;/p&gt;  &lt;p&gt;Regarding Business Connectivity Services, SharePoint Designer 2010 allows:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Creating and manipulating External Content Types, including changing configurations, creating new methods and mapping ECTs with Office objects. When creating ECTs you are only able to connect to SQL Server databases, web services whose schemas are supported by BCS or existing .NET assemblies. &lt;/li&gt;    &lt;li&gt;Creating and configuring External Lists based on existing ECTs. &lt;/li&gt;    &lt;li&gt;Generating and editing InfoPath forms to support External Lists. &lt;/li&gt;    &lt;li&gt;Using external data in workflows. &lt;/li&gt;    &lt;li&gt;Creating web part pages and profile pages. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;These features allow the use of BCS without any custom coding and fulfill the most common and simple requirements.&lt;/p&gt;  &lt;h4&gt;Visual Studio 2010&lt;/h4&gt;  &lt;p&gt;With Visual Studio 2010 we can create more complex solutions for cases in which SharePoint Designer 2010’s features are not enough. Additionally, with Visual Studio 2010 we can create reusable components which can then be incorporated in solutions through SharePoint Designer.&lt;/p&gt;  &lt;p&gt;&lt;img style="display:block;float:none;margin-left:auto;margin-right:auto;" src="http://www.sharepointpt.org/Lists/Photos/Avala/VisualStudio2010.jpg" width="750" height="453" /&gt;&lt;/p&gt;  &lt;p align="center"&gt;Fig.10: Visual editor for BDC Models in Visual Studio 2010&lt;/p&gt;  &lt;p&gt;Some of the use cases for Visual Studio 2010 are:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Creating and manipulating External Content Types using the new &lt;em&gt;Business Data Connectivity Model&lt;/em&gt; project template. This template includes a set of designers that allow for the visual editing of the Model and respective ECTs, and also the development of .NET code solutions to access virtually any type of external data source. &lt;/li&gt;    &lt;li&gt;Creating reusable components for BCS using the multiple API extensibility points, such as &lt;em&gt;Code Actions&lt;/em&gt; which can be used inside Outlook, &lt;em&gt;External Data Parts&lt;/em&gt; which can be used in declarative task panes in Outlook, custom workflow activities and others. &lt;/li&gt;    &lt;li&gt;Creating Office application add-ins with BCS support, using the BCS object model. &lt;/li&gt;    &lt;li&gt;Creating custom workflows that leverage data from external lists or use the BCS object model. &lt;/li&gt; &lt;/ul&gt;  &lt;h4&gt;Types of Solution for each Tool&lt;/h4&gt;  &lt;p&gt;The table below will help you select the best tool for each need.    &lt;br /&gt;    &lt;br /&gt;&lt;/p&gt;  &lt;table style="border-bottom:#ccc 1px solid;border-left:#ccc 1px solid;border-top:#ccc 1px solid;border-right:#ccc 1px solid;" cellspacing="0" cellpadding="2"&gt;     &lt;tr style="background-color:#ddd;"&gt;       &lt;th&gt;Capability&lt;/th&gt;        &lt;th&gt;SharePoint Designer 2010&lt;/th&gt;        &lt;th&gt;Visual Studio 2010&lt;/th&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;&lt;strong&gt;Connect to…&lt;/strong&gt;&lt;/td&gt;        &lt;td&gt;         &lt;ul&gt;           &lt;li&gt;WCF/WS, SQL Server and existing .NET assemblies &lt;/li&gt;         &lt;/ul&gt;       &lt;/td&gt;        &lt;td&gt;         &lt;ul&gt;           &lt;li&gt;Any data source through .NET assemblies &lt;/li&gt;         &lt;/ul&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;&lt;strong&gt;Development model&lt;/strong&gt;&lt;/td&gt;        &lt;td&gt;         &lt;ul&gt;           &lt;li&gt;Discover and configure &lt;/li&gt;         &lt;/ul&gt;       &lt;/td&gt;        &lt;td&gt;         &lt;ul&gt;           &lt;li&gt;Create and publish &lt;/li&gt;         &lt;/ul&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;&lt;strong&gt;Suited for…&lt;/strong&gt;&lt;/td&gt;        &lt;td&gt;         &lt;ul&gt;           &lt;li&gt;Simple models with native interfaces (External Lists, Outlook, SharePoint Workspace, InfoPath, Search) and simple associations based on foreign keys &lt;/li&gt;         &lt;/ul&gt;       &lt;/td&gt;        &lt;td&gt;         &lt;ul&gt;           &lt;li&gt;Complex models with custom connectivity logic for aggregation, transformation, security, etc. &lt;/li&gt;            &lt;li&gt;Custom interfaces via Office customizations &lt;/li&gt;            &lt;li&gt;Reusable client and server controls that connect to external data &lt;/li&gt;         &lt;/ul&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;&lt;strong&gt;Limitations&lt;/strong&gt;&lt;/td&gt;        &lt;td&gt;         &lt;ul&gt;           &lt;li&gt;The data source must expose interfaces with supported format &lt;/li&gt;            &lt;li&gt;No support for advanced stereotypes (bulk operations) &lt;/li&gt;            &lt;li&gt;No support for generic or polymorphic services &lt;/li&gt;            &lt;li&gt;Only foreign key associations &lt;/li&gt;         &lt;/ul&gt;       &lt;/td&gt;        &lt;td&gt;         &lt;ul&gt;           &lt;li&gt;Visual designer only works for models based on .NET objects &lt;/li&gt;            &lt;li&gt;Separate development and packaging for client and server components &lt;/li&gt;         &lt;/ul&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/table&gt;  &lt;h3&gt;Use Cases&lt;/h3&gt;  &lt;p&gt;One of the most common questions regarding the use of Business Connectivity Services is what are the use cases of this technology or, when should I use BCS.&lt;/p&gt;  &lt;p&gt;Some of the most common uses cases for BCS are:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Presenting information stored in a SQL Server database. Using BCS it’s possible to present and, if necessary, modify the information using External Lists without developing a single line of custom code. It’s like an instantaneous back-office. &lt;/li&gt;    &lt;li&gt;Enriching the domain user’s Profiles with information from the HR management system or the ERP system. As mentioned before, BCS allows you to fulfill this requirement by configuring an ECT as an additional data source for SharePoint’s profile synchronization. &lt;/li&gt;    &lt;li&gt;Synchronizing contacts stored in a line-of-business system or ERP. Using BCS it’s possible to define an ECT which exposes these contacts through an External List and connect it to Outlook where they can be managed as regular contacts. This scenario allows the users to access to the contacts even when they’re out of the office, in offline mode. &lt;/li&gt;    &lt;li&gt;Presenting information from distinct data sources. Using the .NET assemblies connector and developing an ECT with Visual Studio 2010, we can build scenarios with aggregation of data from multiple data sources exposed as a single entity. &lt;/li&gt;    &lt;li&gt;Indexing and searching information stored in a line-of-business or ERP system. BCS allows SharePoint’s search service to index contents exposes through ECTs and searching them as if the information is stored in SharePoint. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;There are several other scenarios where BCS can be useful, sometimes just as one of the components of the solution.&lt;/p&gt;  &lt;h3&gt;Features per SharePoint Version&lt;/h3&gt;  &lt;p&gt;The infrastructure used by the Business Connectivity Services is available in all SharePoint versions, including SharePoint Foundation 2010. However, not all is included in the free version. The table below helps to clarify which features are included in each version of SharePoint 2010.&lt;/p&gt;  &lt;table style="border-bottom:#ccc 1px solid;border-left:#ccc 1px solid;border-top:#ccc 1px solid;border-right:#ccc 1px solid;" cellspacing="0" cellpadding="2"&gt;     &lt;tr style="background-color:#ddd;"&gt;       &lt;th&gt;Feature&lt;/th&gt;        &lt;th&gt;SharePoint Foundation 2010&lt;/th&gt;        &lt;th&gt;SharePoint Server 2010 Standard&lt;/th&gt;        &lt;th&gt;SharePoint Server 2010 Enterprise&lt;/th&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;BDC Service&lt;/td&gt;        &lt;td&gt;         &lt;p align="center"&gt;X&lt;/p&gt;       &lt;/td&gt;        &lt;td&gt;         &lt;p align="center"&gt;X&lt;/p&gt;       &lt;/td&gt;        &lt;td&gt;         &lt;p align="center"&gt;X&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;Connector Framework&lt;/td&gt;        &lt;td&gt;         &lt;p align="center"&gt;X&lt;/p&gt;       &lt;/td&gt;        &lt;td&gt;         &lt;p align="center"&gt;X&lt;/p&gt;       &lt;/td&gt;        &lt;td&gt;         &lt;p align="center"&gt;X&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;External List&lt;/td&gt;        &lt;td&gt;         &lt;p align="center"&gt;X&lt;/p&gt;       &lt;/td&gt;        &lt;td&gt;         &lt;p align="center"&gt;X&lt;/p&gt;       &lt;/td&gt;        &lt;td&gt;         &lt;p align="center"&gt;X&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;External Data Column&lt;/td&gt;        &lt;td&gt;         &lt;p align="center"&gt;X&lt;/p&gt;       &lt;/td&gt;        &lt;td&gt;         &lt;p align="center"&gt;X&lt;/p&gt;       &lt;/td&gt;        &lt;td&gt;         &lt;p align="center"&gt;X&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;Secure Store Service&lt;/td&gt;        &lt;td&gt;&amp;#160;&lt;/td&gt;        &lt;td&gt;         &lt;p align="center"&gt;X&lt;/p&gt;       &lt;/td&gt;        &lt;td&gt;         &lt;p align="center"&gt;X&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;External Data Search&lt;/td&gt;        &lt;td&gt;&amp;#160;&lt;/td&gt;        &lt;td&gt;         &lt;p align="center"&gt;X&lt;/p&gt;       &lt;/td&gt;        &lt;td&gt;         &lt;p align="center"&gt;X&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;Profile Pages&lt;/td&gt;        &lt;td&gt;&amp;#160;&lt;/td&gt;        &lt;td&gt;         &lt;p align="center"&gt;X&lt;/p&gt;       &lt;/td&gt;        &lt;td&gt;         &lt;p align="center"&gt;X&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;Business Data Web Parts&lt;/td&gt;        &lt;td&gt;&amp;#160;&lt;/td&gt;        &lt;td&gt;&amp;#160;&lt;/td&gt;        &lt;td&gt;         &lt;p align="center"&gt;X&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;Office Client integration&lt;/td&gt;        &lt;td&gt;&amp;#160;&lt;/td&gt;        &lt;td&gt;&amp;#160;&lt;/td&gt;        &lt;td&gt;         &lt;p align="center"&gt;X&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/table&gt;  &lt;p&gt;The support for Business Connectivity Services in Office applications requires Microsoft Office 2010 Professional Plus, or higher.&lt;/p&gt;  &lt;h3&gt;Useful Links&lt;/h3&gt;  &lt;p&gt;Here are a few useful links for who is now starting and wants to know more about Business Connectivity Services.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Microsoft Business Connectivity Services Team Blog     &lt;br /&gt;&lt;/strong&gt;Official blog of the team that developed BCS, with several articles with multiple levels of complexity. Mandatory to all the interested in this technology.    &lt;br /&gt;&lt;a href="http://blogs.msdn.com/b/bcs/"&gt;http://blogs.msdn.com/b/bcs/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;BCS Team Channel     &lt;br /&gt;&lt;/strong&gt;The YouTube channel where the product team published a few videos.    &lt;br /&gt;&lt;a href="http://www.youtube.com/user/MOSSBCSTeam"&gt;http://www.youtube.com/user/MOSSBCSTeam&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Connecting to a .NET Framework Source Using Business Connectivity Services in Office 2010     &lt;br /&gt;&lt;/strong&gt;&lt;em&gt;Visual How To&lt;/em&gt; about developing an ECT using Visual Studio 2010 to retrieve data from an external source.    &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ff394331(office.14).aspx"&gt;http://msdn.microsoft.com/en-us/library/ff394331(office.14).aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Microsoft Business Connectivity Services     &lt;br /&gt;&lt;/strong&gt;SharePoint 2010 SDK’s section dedicated to Business Connectivity Services.    &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ee556826.aspx"&gt;http://msdn.microsoft.com/en-us/library/ee556826.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Business Connectivity Services Resource Center     &lt;br /&gt;&lt;/strong&gt;TechNet Resource Center dedicated to Business Connectivity Services.    &lt;br /&gt;&lt;a href="http://technet.microsoft.com/en-us/sharepoint/ee518675.aspx"&gt;http://technet.microsoft.com/en-us/sharepoint/ee518675.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Business Connectivity Services: Technical Articles     &lt;br /&gt;&lt;/strong&gt;MSDN technical articles related to Business Connectivity Services.    &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/gg481768.aspx"&gt;http://msdn.microsoft.com/en-us/library/gg481768.aspx&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogit.create.pt/aggbug.aspx?PostID=8543" width="1" height="1"&gt;</description><category domain="http://blogit.create.pt/blogs/andrevala/archive/tags/SharePoint+2010/default.aspx">SharePoint 2010</category><category domain="http://blogit.create.pt/blogs/andrevala/archive/tags/Business+Connectivity+Services/default.aspx">Business Connectivity Services</category><category domain="http://blogit.create.pt/blogs/andrevala/archive/tags/Revista+Programar/default.aspx">Revista Programar</category></item><item><title>Visual Studio 2010 and BizTalk 2010 File Locking Problems</title><link>http://blogit.create.pt/blogs/joaomartins/archive/2011/05/27/Visual-Studio-2010-and-BizTalk-2010-File-Locking-Problems.aspx</link><pubDate>Fri, 27 May 2011 15:10:39 GMT</pubDate><guid isPermaLink="false">82e6d864-cc1c-4326-bdf8-b027608494f4:8471</guid><dc:creator>jota</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;I’ve had several situation with large solutions in VS2010 where assemblies get locked and references need to be constantly fixed, failing compilations. I would get errors when copying the DLL’s from the OBJ into the BIN folders, or even copying a schema assembly into the bin folder of the maps project which uses it. One “detail” (or not) was that the BizTalk and C# projects in the solution where upgraded from previous versions (BTS2004).&lt;/p&gt;  &lt;p&gt;Using SysInternal’s Handle.exe tool, I found it was Devenv itself locking the assemblies.&lt;/p&gt;  &lt;p&gt;I’ve tried several solutions that didn’t work, including:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;disable vs extensions&lt;/li&gt;    &lt;li&gt;stop windows indexing service&lt;/li&gt;    &lt;li&gt;make sure Copy Local is set to True in all the references&lt;/li&gt;    &lt;li&gt;the same fix that was used with VS2008+BTS2009 (&lt;a href="http://pim.waaijenberg.net/index.php/2009/08/copy-local-that-biztalk-2009-reference/" target="_blank"&gt;documented here&lt;/a&gt;) of setting Private True in the project file;&lt;/li&gt;    &lt;li&gt;adding the the famous GenerateResourceNeverLockTypeAssemblies config in the project files (&lt;a href="http://forums.asp.net/p/1186574/2032698.aspx" target="_blank"&gt;documented here&lt;/a&gt;, see Benson’s response).&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;What eventually solved the issue was a variation of the first solution Benson gave in the previous link, and which is &lt;a href="http://stackoverflow.com/questions/3095573/visual-studio-2010-build-file-lock-issues" target="_blank"&gt;documented here in a StackOverflow response&lt;/a&gt; by Godeke: code a small command line tool (&lt;strong&gt;VisualStudioLockWorkaround&lt;/strong&gt;) that removes locks and which you add as a pre-build script to the troublesome VS projects. It’s ugly, but it solved my problem, after some hours of trying to figure out what was happening.&lt;/p&gt;&lt;img src="http://blogit.create.pt/aggbug.aspx?PostID=8471" width="1" height="1"&gt;</description><category domain="http://blogit.create.pt/blogs/joaomartins/archive/tags/Posts+in+English/default.aspx">Posts in English</category><category domain="http://blogit.create.pt/blogs/joaomartins/archive/tags/BizTalk+Server/default.aspx">BizTalk Server</category></item><item><title>European SharePoint Conference 2011</title><link>http://blogit.create.pt/blogs/andrevala/archive/2011/05/08/European-SharePoint-Conference-2011.aspx</link><pubDate>Sun, 08 May 2011 10:17:00 GMT</pubDate><guid isPermaLink="false">82e6d864-cc1c-4326-bdf8-b027608494f4:8063</guid><dc:creator>andrevala</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;I&amp;rsquo;m pleased to announce I have been chosen as a speaker in the &lt;a href="http://www.sharepointeurope.com" target="_blank"&gt;European SharePoint Conference 2011&lt;/a&gt;, which will take place in Berlin, 17th &amp;ndash; 20th October 2011. &lt;/p&gt;&lt;p&gt;&lt;a href="http://www.sharepointeurope.com/" target="_blank"&gt;&lt;img border="0" height="100" src="http://img38.imageshack.us/img38/4590/esc2011.jpg" style="background-image:none;padding-left:0px;padding-right:0px;padding-top:0px;border:0px;" width="700" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;I&amp;rsquo;ll be delivering 3 sessions, two on Wednesday and one on Thursday, as described below.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;W18 - Using BCS to Integrate Azure Services with SharePoint 2010&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;The new Business Connectivity Services (BCS) offer a simple and elegant way of integration SharePoint 2010 and Office 2010 with virtually any business data source. All the business integration features introduced in SharePoint 2007 with Business Data Catalog (BDC) were significantly improved in this new version. In this session we&amp;#39;ll talk about the main concepts and the type of solutions that can be developed using BCS, and we&amp;#39;ll show how to integrate Azure Services with SharePoint 2010 and Office 2010 using BCS, Visual Studio 2010 and SharePoint Designer 2010.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;W26 - Federated Authentication in SharePoint 2010&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;SharePoint 2010 introduces a new claims-based authentication model which leverages the power and flexibility of the new Windows Identity Foundation. In this session we will show how to use Windows Azure Access Control Services to allow a user to authenticate in SharePoint using a web identity such as Facebook or Google account.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Th28 - SharePoint + Azure = Better Together&lt;/strong&gt; &lt;/p&gt;&lt;p&gt;Microsoft has a large range of technologies that, when combined, can yield fantastic results with surprisingly little effort. What happens when you mix SharePoint 2010, BizTalk 2010, Windows Azure and Microsoft Pivot? You get a fantastic interface to analyze large amounts of visual data which can be store in SharePoint 2010 and manipulated in the cloud. In this session we&amp;#39;ll show the concepts behind this kind of integration and how you can build such a scenario.&lt;/p&gt;&lt;p&gt;Note, however, that the conference program is still subject to change. Check the full program at &lt;a href="http://www.sharepointeurope.com/conferences/2011/conference-at-a-glance.aspx" title="http://www.sharepointeurope.com/conferences/2011/conference-at-a-glance.aspx"&gt;http://www.sharepointeurope.com/conferences/2011/conference-at-a-glance.aspx&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;I look forward to seeing you there!&lt;/p&gt;&lt;img src="http://blogit.create.pt/aggbug.aspx?PostID=8063" width="1" height="1"&gt;</description><category domain="http://blogit.create.pt/blogs/andrevala/archive/tags/SharePoint+2010/default.aspx">SharePoint 2010</category><category domain="http://blogit.create.pt/blogs/andrevala/archive/tags/Events/default.aspx">Events</category><category domain="http://blogit.create.pt/blogs/andrevala/archive/tags/European+SharePoint+Conference/default.aspx">European SharePoint Conference</category></item><item><title>SharePoint PT: 10th Meeting</title><link>http://blogit.create.pt/blogs/andrevala/archive/2011/04/11/SharePoint-PT_3A00_-10th-Meeting.aspx</link><pubDate>Mon, 11 Apr 2011 21:19:49 GMT</pubDate><guid isPermaLink="false">82e6d864-cc1c-4326-bdf8-b027608494f4:7736</guid><dc:creator>andrevala</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;If you’re into SharePoint and you happen to be in Lisbon next Saturday, &lt;strong&gt;April 16th&lt;/strong&gt;, then you may be interested in the &lt;strong&gt;10th Meeting of the Portuguese SharePoint Community&lt;/strong&gt; (SPUG PT). The meeting is free and it will take place between 9.30AM and 1.00PM at Microsoft Portugal’s auditorium, in Porto Salvo (Tagus Park).&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Program      &lt;br /&gt;&lt;/strong&gt;09.30AM – Reception     &lt;br /&gt;10.00AM – Introductions     &lt;br /&gt;10.30AM – Session: &lt;strong&gt;“LINQ to SharePoint”&lt;/strong&gt; by André Vala     &lt;br /&gt;11.30AM – Coffee break     &lt;br /&gt;11.45AM – Discussion panel     &lt;br /&gt;01.00PM – End of meeting and lunch (optional)&lt;/p&gt;  &lt;p&gt;If you wish to attend, please register here: &lt;a title="spugmeeting10.eventbrite.com" href="http://spugmeeting10.eventbrite.com/"&gt;spugmeeting10.eventbrite.com&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;I hope to see you there :)&lt;/p&gt;&lt;img src="http://blogit.create.pt/aggbug.aspx?PostID=7736" width="1" height="1"&gt;</description><category domain="http://blogit.create.pt/blogs/andrevala/archive/tags/SharePoint+2010/default.aspx">SharePoint 2010</category><category domain="http://blogit.create.pt/blogs/andrevala/archive/tags/SPUG/default.aspx">SPUG</category></item><item><title>BizTalk Server 2010 70-595 Certification Exam is out</title><link>http://blogit.create.pt/blogs/joaomartins/archive/2011/03/30/BizTalk-Server-2010-70_2D00_595-Certification-Exam-is-out.aspx</link><pubDate>Wed, 30 Mar 2011 18:29:59 GMT</pubDate><guid isPermaLink="false">82e6d864-cc1c-4326-bdf8-b027608494f4:7529</guid><dc:creator>jota</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;At last! Just published. You can find info on the e&lt;a href="http://www.microsoft.com/learning/en/us/Exam.aspx?ID=70-595&amp;amp;Locale=en-us#" target="_blank"&gt;-learning site&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://blogit.create.pt/aggbug.aspx?PostID=7529" width="1" height="1"&gt;</description></item><item><title>Microsoft Business Integration RoadShow 2011 (Lisboa, 28/Fev)</title><link>http://blogit.create.pt/blogs/joaomartins/archive/2011/02/14/Microsoft-Business-Integration-RoadShow-2011-_2800_Lisboa_2C00_-28_2F00_Fev_2900_.aspx</link><pubDate>Mon, 14 Feb 2011 21:46:28 GMT</pubDate><guid isPermaLink="false">82e6d864-cc1c-4326-bdf8-b027608494f4:7052</guid><dc:creator>jota</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Another year, another Business Integration Roadshow. This year I’ll be unable to present, as I’ll be attending &lt;a href="http://www.2011mvpsummit.com/" target="_blank"&gt;Microsoft’s MVP Summit&lt;/a&gt; in Redmond, but my two colleagues Tiago Oliveira and Raúl Ribeiro will present a session on the integration of BizTalk Server 2010 together with Windows Azure – “BizTalk + Azure – Better Together”. You can expect a few surprises and a eye-opener demo. :-)&lt;/p&gt;  &lt;p&gt;More information and registration for the event can be found &lt;a href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032477346&amp;amp;Culture=pt-PT" target="_blank"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://blogit.create.pt/aggbug.aspx?PostID=7052" width="1" height="1"&gt;</description></item><item><title>BizTalk Server 2010 Feature Pack</title><link>http://blogit.create.pt/blogs/joaomartins/archive/2011/02/14/BizTalk-Server-2010-Feature-Pack.aspx</link><pubDate>Mon, 14 Feb 2011 21:39:35 GMT</pubDate><guid isPermaLink="false">82e6d864-cc1c-4326-bdf8-b027608494f4:7051</guid><dc:creator>jota</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;The &lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=f7735a19-cdb3-4f52-8e7b-c58f04c5c86a" target="_blank"&gt;BizTalk Server 2010 Feature Pack&lt;/a&gt; is an add-on to BizTalk Server 2010 that allows BizTalk functionality to be invoked from Windows Azure’s Service Bus. The feature pack specifically includes “BizTalk Server 2010 AppFabric Connect for Services”, the feature that allows you to do this.&lt;/p&gt;  &lt;p&gt;You can read more about how it works on the &lt;a href="http://blogs.msdn.com/b/biztalk_server_team_blog/archive/2010/10/21/biztalk-server-appfabric-connect-for-services.aspx" target="_blank"&gt;BizTalk Server Team Blog&lt;/a&gt;. Great feature!&lt;/p&gt;&lt;img src="http://blogit.create.pt/aggbug.aspx?PostID=7051" width="1" height="1"&gt;</description><category domain="http://blogit.create.pt/blogs/joaomartins/archive/tags/BizTalk+Server/default.aspx">BizTalk Server</category><category domain="http://blogit.create.pt/blogs/joaomartins/archive/tags/Azure/default.aspx">Azure</category></item><item><title>BizTalk and Gartner Oct’2010</title><link>http://blogit.create.pt/blogs/joaomartins/archive/2011/01/25/BizTalk-and-Gartner-Oct_1920_2010.aspx</link><pubDate>Tue, 25 Jan 2011 16:20:11 GMT</pubDate><guid isPermaLink="false">82e6d864-cc1c-4326-bdf8-b027608494f4:6823</guid><dc:creator>jota</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Gartner’s Magic Quadrant for Application Infrastructure for Systematic Application Integration Projects (October 2010) places Microsoft in the leader’s quadrant for integration, with BizTalk Server and the global integration platform, as the company with a clear lead in the ability to execute dimension.   &lt;br /&gt;&lt;a href="http://jota.paginas.sapo.pt/blogstuff/ArqSw/0f948373a07b_9840/Gartner_Oct2010.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;margin:;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="Gartner_Oct2010" border="0" alt="Gartner_Oct2010" src="http://jota.paginas.sapo.pt/blogstuff/ArqSw/0f948373a07b_9840/Gartner_Oct2010_thumb.png" width="462" height="474" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Gartner’s report can be found &lt;a href="http://www.gartner.com/technology/media-products/reprints/microsoft/vol2/article3/article3.html" target="_blank"&gt;here&lt;/a&gt; with all the details. Check the Microsoft section to learn about the strengths and cautions to have. Some interesting details are: “&lt;em&gt;the least-expensive perpetual license of commercial offerings that Gartner analyzed&lt;/em&gt;”, “&lt;em&gt;BizTalk Server installed base of more than 10,000 customers — two-thirds are estimated to be BizTalk Server 2006 Enterprise Edition&lt;/em&gt;”, “&lt;em&gt;Microsoft garnered 13 % of the ESB suite market software revenue&lt;/em&gt;” or the ever important skills question: “&lt;em&gt;results in the availability of skills, services and add-ins&lt;/em&gt;”. &lt;/p&gt;&lt;img src="http://blogit.create.pt/aggbug.aspx?PostID=6823" width="1" height="1"&gt;</description><category domain="http://blogit.create.pt/blogs/joaomartins/archive/tags/Posts+in+English/default.aspx">Posts in English</category><category domain="http://blogit.create.pt/blogs/joaomartins/archive/tags/BizTalk+Server/default.aspx">BizTalk Server</category></item></channel></rss>
