<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/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>Dariusz quatscht : English Posts</title><link>http://blogs.msdn.com/dparys/archive/tags/English+Posts/default.aspx</link><description>Tags: English Posts</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Visual Studio 2010 - Fun with DynamicObject in C# 4.0</title><link>http://blogs.msdn.com/dparys/archive/2009/10/22/visual-studio-2010-fun-with-dynamicobject-in-c-4-0.aspx</link><pubDate>Thu, 22 Oct 2009 08:09:38 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9911182</guid><dc:creator>dparys</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/dparys/comments/9911182.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dparys/commentrss.aspx?PostID=9911182</wfw:commentRss><wfw:comment>http://blogs.msdn.com/dparys/rsscomments.aspx?PostID=9911182</wfw:comment><description>This morning I just played around with the new C# 4.0 dynamic feature. Using the dynamic keyword allows you to bind to properties, indexers and methods during runtime. This means that during compile time there is no check if the methods, properties or...(&lt;a href="http://blogs.msdn.com/dparys/archive/2009/10/22/visual-studio-2010-fun-with-dynamicobject-in-c-4-0.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9911182" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/dparys/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://blogs.msdn.com/dparys/archive/tags/Coding4Fun/default.aspx">Coding4Fun</category><category domain="http://blogs.msdn.com/dparys/archive/tags/English+Posts/default.aspx">English Posts</category><category domain="http://blogs.msdn.com/dparys/archive/tags/Data+Access/default.aspx">Data Access</category><category domain="http://blogs.msdn.com/dparys/archive/tags/Visual+Studio+2010/default.aspx">Visual Studio 2010</category></item><item><title>CREATE DATABASE permission denied in database ‘master’ – My Fix</title><link>http://blogs.msdn.com/dparys/archive/2009/09/17/create-database-permission-denied-in-database-master-my-fix.aspx</link><pubDate>Thu, 17 Sep 2009 11:29:32 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9896231</guid><dc:creator>dparys</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/dparys/comments/9896231.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dparys/commentrss.aspx?PostID=9896231</wfw:commentRss><wfw:comment>http://blogs.msdn.com/dparys/rsscomments.aspx?PostID=9896231</wfw:comment><description>&lt;p&gt;Normally I always install SQL Management Studio for my development environment. But this time I just thought I would not need it. I installed my machine outside of the domain network. The SQL Server 2008 Express installation was done with a local administrator user which I enabled to have dbo admin rights. I have also given rights for the local administrators group in SQL Server Express. After joining the domain I added my domain account to the local adminstrators group. Everything looked good. So I just started SQLCMD and tried to attach the AdventureWorksLT database (from Codeplex). This error came up.&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Consolas"&gt;&lt;strong&gt;CREATE DATABASE permission denied in database ‘master’.&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Hmm? Oh, I forgot that UAC stuff. &lt;/p&gt;  &lt;p&gt;Why do I write this post? My first reaction was to search the internet for exactly the title of this blog post to find the &lt;font size="2" face="Consolas"&gt;&lt;strong&gt;CREATE LOGIN&lt;/strong&gt;&lt;/font&gt; description in a step by step solution and was shocked by the results I retrieved. Mostly people talking in Forums about this just work around security with granting the hosting process unlimited rights like local system for the sql server engine or the IIS App Pool. My 9th hit on the list had a reasonable explanation on how to add a login but was using SQL Management Studio which I don’t want to use right now. The post is not a real step by step guide, it is just the steps needed in my scenario to enable the user to create, delete and work with a lot of temporary databases.&lt;/p&gt;  &lt;h1&gt;How to check your current login?&lt;/h1&gt;  &lt;p&gt;First open up SQLCMD and check with &lt;font size="2" face="Consolas"&gt;&lt;strong&gt;select user_name()&lt;/strong&gt;&lt;/font&gt; if you are not logged in as guest (like in my case). I could omit the problem with elevating the SQLCMD process – as I’m in the local administrators group and would get dbo rights – but I wanted to give the user dedicated rights without elevating the whole process each time. Further, my main task with my domain user regarding this SQL Server instance is creating and working with a lot of databases. &lt;/p&gt;  &lt;h1&gt;Adding a domain account as sysadmin to SQL Express with SQLCMD&lt;/h1&gt;  &lt;p&gt;The following steps show how to add a domain account using SQLCMD and give this user &lt;font size="2" face="Consolas"&gt;&lt;strong&gt;sysadmin&lt;/strong&gt;&lt;/font&gt; rights. &lt;/p&gt;  &lt;h1&gt;&lt;/h1&gt;  &lt;h2&gt;Start SQLCMD with an authorized account&lt;/h2&gt;  &lt;p&gt;In my case I had already my domain account in the local administrators group and assigned the local administrators group to the SQL Server dbo group during installation. To get the right token when starting SQLCMD I just had to start it elevated. &lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Start a command shell elevated &lt;/li&gt;    &lt;li&gt;type &lt;font size="2" face="Consolas"&gt;&lt;strong&gt;SQLCMD –S (local)\sqlexpress&lt;/strong&gt;&lt;/font&gt; &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;It depends on the database instance name how the server is specified. In the example above I use my local machine and the instance is called SQLEXPRESS.&lt;/p&gt;  &lt;h2&gt;Create the login&lt;/h2&gt;  &lt;p&gt;First create a SQL Server login for your domain account.&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Consolas"&gt;&lt;strong&gt;CREATE LOGIN [your domain account] FROM WINDOWS;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Consolas"&gt;&lt;strong&gt;GO&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;your domain account has to be replaced with the domain account you want to add. For instance your domain is called darth and the user vader than it would be CREATE LOGIN [darth\vader] FROM WINDOWS; GO;&lt;/p&gt;  &lt;p&gt;To check if the login was successfully created type in &lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Consolas"&gt;&lt;strong&gt;SELECT NAME FROM SYS.SERVER_PRINCIPALS&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Consolas"&gt;&lt;strong&gt;GO&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;and the domain user should appear in the result list.&lt;/p&gt;  &lt;h2&gt;Grant sysadmin rights&lt;/h2&gt;  &lt;p&gt;You can retrieve a list of server roles using the &lt;font size="2" face="Consolas"&gt;&lt;strong&gt;sp_helpsrvrole&lt;/strong&gt;&lt;/font&gt; procedure. So to add the user to the &lt;font size="2" face="Consolas"&gt;&lt;strong&gt;sysadmin&lt;/strong&gt;&lt;/font&gt; server role group type the following (example is still domain darth user vader)&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Consolas"&gt;&lt;strong&gt;SP_ADDSRVROLEMEMBER ‘darth\vader’, ‘sysadmin’&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2" face="Consolas"&gt;&lt;strong&gt;GO&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Done.&lt;/p&gt;  &lt;p&gt;Quit SQLCMD and open a non elevated instance with your domain account. Type in select user_name() and the result should be dbo.&lt;/p&gt;  &lt;h1&gt;Disclaimer&lt;/h1&gt;  &lt;p&gt;I have to write that I don’t run any production environments on my machine. With giving my user sysadmin rights, even when not elevated, I open up attack surface through SQL Server. Therefore here the big disclaimer&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;em&gt;Big disclaimer: In a production environment I do not recommend giving full dbo rights to a dedicated user account. Please ensure the login just gets the rights he really needs to do the work. Check also the site &lt;a href="http://msdn.microsoft.com/en-us/sqlserver/bb671432.aspx"&gt;SQL Server Best Practices&lt;/a&gt;. &lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9896231" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/dparys/archive/tags/English+Posts/default.aspx">English Posts</category><category domain="http://blogs.msdn.com/dparys/archive/tags/SQL+Server+2008/default.aspx">SQL Server 2008</category></item><item><title>Improving Entity Framework Performance</title><link>http://blogs.msdn.com/dparys/archive/2009/04/06/improving-entity-framework-performance.aspx</link><pubDate>Mon, 06 Apr 2009 10:48:20 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9533322</guid><dc:creator>dparys</dc:creator><slash:comments>9</slash:comments><comments>http://blogs.msdn.com/dparys/comments/9533322.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dparys/commentrss.aspx?PostID=9533322</wfw:commentRss><wfw:comment>http://blogs.msdn.com/dparys/rsscomments.aspx?PostID=9533322</wfw:comment><description>&lt;p&gt;I was really shocked when I saw this blog post: &lt;a href="http://toomanylayers.blogspot.com/2009/01/entity-framework-and-linq-to-sql.html"&gt;Entity Framework and LINQ to SQL Performance&lt;/a&gt;. I decided to download the performance test solution and try the tests myself. I did not changed any of the tests so far, I just added for my own interest NHibernate into the game as I think that it is the choice of Frameworks for Domain Driven Design.&lt;/p&gt;  &lt;p&gt;So, I was shocked again, as I saw my numbers in the chart:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/dparys/WindowsLiveWriter/ImprovingEntityFrameworkPerformance_89CD/shot1_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="shot1" border="0" alt="shot1" src="http://blogs.msdn.com/blogfiles/dparys/WindowsLiveWriter/ImprovingEntityFrameworkPerformance_89CD/shot1_thumb.png" width="540" height="313" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;The elapsed time was 4 times higher than with plain SqlDataReader. But more worse was the fact the the elapsed processor time was nearly 8 times higher. NHibernate was really good in performance compared to Entity Framework, but LINQ to SQL was still better.&lt;/p&gt;  &lt;p&gt;What was wrong? I couldn’t imagine that we had such an issue in data access using the Entity Framework. I took a look at the code. All test runs are looping 10000 times over the access method to retrieve the customers data. In this loop, each time a connection will be created and closed. Linq to SQL and Linq to Entities are using compiled queries, so, this optimization was already done. I also added in my tests a pre-generated Entity Framework view (using edmgen.exe) to enhance startup performance. Still those poor results.&lt;/p&gt;  &lt;p&gt;Here is the original code from the tests:&lt;/p&gt;  &lt;div&gt;   &lt;div style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;     &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;static&lt;/span&gt; List&amp;lt;CustomerResults&amp;gt; GetCustomers()&lt;/pre&gt;

    &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;   2:&lt;/span&gt; {&lt;/pre&gt;

    &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;   3:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;using&lt;/span&gt; (NorthwindEntities ne = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; NorthwindEntities())&lt;/pre&gt;

    &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;   4:&lt;/span&gt;     {&lt;/pre&gt;

    &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;   5:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; GetCustomersQuery(ne).ToList();&lt;/pre&gt;

    &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;   6:&lt;/span&gt;     }&lt;/pre&gt;

    &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;   7:&lt;/span&gt; }&lt;/pre&gt;

    &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;   8:&lt;/span&gt;&amp;#160; &lt;/pre&gt;

    &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;   9:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;static&lt;/span&gt; Func&amp;lt;NorthwindEntities, IQueryable&amp;lt;CustomerResults&amp;gt;&amp;gt; &lt;/pre&gt;

    &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;  10:&lt;/span&gt;     GetCustomersQuery = CompiledQuery.Compile(&lt;/pre&gt;

    &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;  11:&lt;/span&gt;         (NorthwindEntities ne) =&amp;gt; from c &lt;span style="color: #0000ff"&gt;in&lt;/span&gt; ne.Customers&lt;/pre&gt;

    &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;  12:&lt;/span&gt;                                   select &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; CustomerResults&lt;/pre&gt;

    &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;  13:&lt;/span&gt;                                   {&lt;/pre&gt;

    &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;  14:&lt;/span&gt;                                       CustomerID = c.CustomerID,&lt;/pre&gt;

    &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;  15:&lt;/span&gt;                                       CompanyName = c.CompanyName,&lt;/pre&gt;

    &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;  16:&lt;/span&gt;                                       ContactName = c.ContactName,&lt;/pre&gt;

    &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;  17:&lt;/span&gt;                                       ContactTitle = c.ContactTitle,&lt;/pre&gt;

    &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;  18:&lt;/span&gt;                                       City = c.City,&lt;/pre&gt;

    &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;  19:&lt;/span&gt;                                       Country = c.Country&lt;/pre&gt;

    &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;  20:&lt;/span&gt;                                   });&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;My guess was that the instantiation of the connection string could be the problem. Why? Because several things happen here. First, the EntityConnection which is created when not specifying any argument in the constructor of the typed object context class NorthwindEntities, has to read from the config file. I/O cost. Second, it has to read the metadata information, which is stored by default in the assembly as resource. Second performance cost. Here is my optimization approach. One of the overload constructors is taking an EntityConnection object. Guess what, you probably just use this one connection object during the whole life time of your application, so why not create it once and give it into the constructor. This does not mean that I open the connection beforehand, no, I just create the type EntityConnection and retrieve the meta information in the first call. From that, I reuse this instance, so no need anymore to retrieve the metadata information again.&lt;/p&gt;

&lt;p&gt;Here is the optimization in my code base:&lt;/p&gt;

&lt;div&gt;
  &lt;div style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;
    &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;static&lt;/span&gt; EntityConnection entityConnection;&lt;/pre&gt;

    &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;   2:&lt;/span&gt;&amp;#160; &lt;/pre&gt;

    &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;   3:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;static&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; InitializeConnectionString()&lt;/pre&gt;

    &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;   4:&lt;/span&gt; {&lt;/pre&gt;

    &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;   5:&lt;/span&gt;     SqlConnectionStringBuilder sqlBuilder = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; SqlConnectionStringBuilder();&lt;/pre&gt;

    &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;   6:&lt;/span&gt;     sqlBuilder.DataSource = &lt;span style="color: #006080"&gt;@&amp;quot;(local)\sqlexpress&amp;quot;&lt;/span&gt;;&lt;/pre&gt;

    &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;   7:&lt;/span&gt;     sqlBuilder.InitialCatalog = &lt;span style="color: #006080"&gt;&amp;quot;NorthwindPerfTest&amp;quot;&lt;/span&gt;;&lt;/pre&gt;

    &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;   8:&lt;/span&gt;     sqlBuilder.IntegratedSecurity = &lt;span style="color: #0000ff"&gt;true&lt;/span&gt;;&lt;/pre&gt;

    &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;   9:&lt;/span&gt;     sqlBuilder.MultipleActiveResultSets = &lt;span style="color: #0000ff"&gt;true&lt;/span&gt;;&lt;/pre&gt;

    &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;  10:&lt;/span&gt;&amp;#160; &lt;/pre&gt;

    &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;  11:&lt;/span&gt;&amp;#160; &lt;/pre&gt;

    &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;  12:&lt;/span&gt;     EntityConnectionStringBuilder builder = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; EntityConnectionStringBuilder();&lt;/pre&gt;

    &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;  13:&lt;/span&gt;     builder.Provider = &lt;span style="color: #006080"&gt;&amp;quot;System.Data.SqlClient&amp;quot;&lt;/span&gt;;&lt;/pre&gt;

    &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;  14:&lt;/span&gt;     builder.Metadata = &lt;span style="color: #006080"&gt;&amp;quot;res://*/Customers.csdl|&amp;quot;&lt;/span&gt; +&lt;/pre&gt;

    &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;  15:&lt;/span&gt;                        &lt;span style="color: #006080"&gt;&amp;quot;res://*/Customers.ssdl|&amp;quot;&lt;/span&gt; +&lt;/pre&gt;

    &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;  16:&lt;/span&gt;                        &lt;span style="color: #006080"&gt;&amp;quot;res://*/Customers.msl&amp;quot;&lt;/span&gt;;&lt;/pre&gt;

    &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;  17:&lt;/span&gt;     builder.ProviderConnectionString = sqlBuilder.ToString();&lt;/pre&gt;

    &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;  18:&lt;/span&gt;     &lt;/pre&gt;

    &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;  19:&lt;/span&gt;     entityConnection = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; EntityConnection(builder.ToString());&lt;/pre&gt;

    &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;  20:&lt;/span&gt; }&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;I have a static variable entityConnection which holds the reference on the object. In the constructor I just pass this reference:&lt;/p&gt;

&lt;div&gt;
  &lt;div style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;
    &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;static&lt;/span&gt; List&amp;lt;CustomerResults&amp;gt; GetCustomers()&lt;/pre&gt;

    &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;   2:&lt;/span&gt; {&lt;/pre&gt;

    &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;   3:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;using&lt;/span&gt; (NorthwindEntities ne = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; NorthwindEntities(entityConnection))&lt;/pre&gt;

    &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;   4:&lt;/span&gt;     {&lt;/pre&gt;

    &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;   5:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; GetCustomersQuery(ne).ToList();&lt;/pre&gt;

    &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;   6:&lt;/span&gt;     }&lt;/pre&gt;

    &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;   7:&lt;/span&gt; }&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;Now I have difference numbers to show in my chart:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/dparys/WindowsLiveWriter/ImprovingEntityFrameworkPerformance_89CD/shot2_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="shot2" border="0" alt="shot2" src="http://blogs.msdn.com/blogfiles/dparys/WindowsLiveWriter/ImprovingEntityFrameworkPerformance_89CD/shot2_thumb.png" width="540" height="308" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;For this specific test scenario I cutted performance cost two times for the elapsed time and four times for the process elapsed time. Hope that helps.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9533322" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/dparys/archive/tags/English+Posts/default.aspx">English Posts</category><category domain="http://blogs.msdn.com/dparys/archive/tags/Testing/default.aspx">Testing</category><category domain="http://blogs.msdn.com/dparys/archive/tags/Data+Access/default.aspx">Data Access</category><category domain="http://blogs.msdn.com/dparys/archive/tags/Entity+Framework/default.aspx">Entity Framework</category></item><item><title>Coding 4 Fun: Slide Tweet 0.1</title><link>http://blogs.msdn.com/dparys/archive/2009/02/10/coding-4-fun-slide-tweet-0-1.aspx</link><pubDate>Tue, 10 Feb 2009 17:24:05 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9410626</guid><dc:creator>dparys</dc:creator><slash:comments>7</slash:comments><comments>http://blogs.msdn.com/dparys/comments/9410626.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dparys/commentrss.aspx?PostID=9410626</wfw:commentRss><wfw:comment>http://blogs.msdn.com/dparys/rsscomments.aspx?PostID=9410626</wfw:comment><description>&lt;p&gt;What is Slide Tweet? A Powerpoint Add-In twittering slide titles. If you are not familiar with &lt;a href="http://twitter.com"&gt;http://twitter.com&lt;/a&gt; I suggest to read the post &lt;a href="http://www.hanselman.com/blog/HowToTwitterFirstStepsAndATwitterGlossary.aspx"&gt;“How to Twitter – First Steps and a Twitter Glossary”&lt;/a&gt; from &lt;a href="http://www.hanselman.com"&gt;Scott Hanselman&lt;/a&gt;. Why do I want to have an add-in for powerpoint twittering slide titles? Well, I had an idea and I will test it in the next talk I give. The idea is simpel to integrate the audience through Twitter while presenting content. &lt;/p&gt;  &lt;p&gt;People can follow the tag specified in the beginning of the presentation and make comments, retweet or discuss the slide topic presented currently. Maybe I will use this to answer questions coming through twitter during the presentation, I’m not sure yet.&lt;/p&gt;  &lt;p&gt;Here are some screenshots how this works. First you load any powerpoint you want to present and start the presentation. After this you will be asked if you want to twitter this deck.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/dparys/WindowsLiveWriter/Coding4FunSlideTweet0.1_D87C/shot1_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="shot1" border="0" alt="shot1" src="http://blogs.msdn.com/blogfiles/dparys/WindowsLiveWriter/Coding4FunSlideTweet0.1_D87C/shot1_thumb.png" width="548" height="384" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;After specifying credentials and the tag to use for the tweets, you are ready to go. During presentation slide titles will be twittered with the specified tag. The audience is able to follow this tag. Let’s assume we have a tag which is called &lt;a href="http://search.twitter.com/search?q=#gac09"&gt;#gac09&lt;/a&gt;. You can basically follow this tag using the &lt;a href="http://search.twitter.com/"&gt;twitter search&lt;/a&gt; functionality or any other twitter client able to search for tags.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/dparys/WindowsLiveWriter/Coding4FunSlideTweet0.1_D87C/shot4_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="shot4" border="0" alt="shot4" src="http://blogs.msdn.com/blogfiles/dparys/WindowsLiveWriter/Coding4FunSlideTweet0.1_D87C/shot4_thumb.png" width="535" height="372" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;The results will be shown and refreshed if new content for this tag is available.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/dparys/WindowsLiveWriter/Coding4FunSlideTweet0.1_D87C/shot5_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="shot5" border="0" alt="shot5" src="http://blogs.msdn.com/blogfiles/dparys/WindowsLiveWriter/Coding4FunSlideTweet0.1_D87C/shot5_thumb.png" width="551" height="566" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;You will see all tweets using the tag and not only the tweets by your presentation but also any tweets using the tag, replying on your tweets. &lt;/p&gt;  &lt;p&gt;The audience could interact among each other and give also feedback via Twitter (at least this is the idea I had). That said, it makes sense to specify one or multiple tags to make the presentation unique (please no UUID).&lt;/p&gt;  &lt;p&gt;I will see how it works on my next talk.&lt;/p&gt;  &lt;p&gt;If you are a presenter and would like to try out this add-in you can. I have posted a resource page on my code gallery with the solution file: &lt;a href="http://code.msdn.microsoft.com/slidetweet"&gt;Slide Tweet&lt;/a&gt;. Please note that you need Visual Studio 2008 and Visual Studio Tools for Office and Powerpoint 2007 to run this sample. I have no really good setup so far, neither good error handling. Therefore enjoy with care.&lt;/p&gt;  &lt;p&gt;One design decision I made. I always call to Twitter asynchronously with one exception. The last slide is posted synchronously, just to ensure that every call was made (so I even don’t utilize the callbacks).&lt;/p&gt;  &lt;p&gt;Have fun and feedback welcome!&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9410626" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/dparys/archive/tags/WCF/default.aspx">WCF</category><category domain="http://blogs.msdn.com/dparys/archive/tags/Fun+Stuff/default.aspx">Fun Stuff</category><category domain="http://blogs.msdn.com/dparys/archive/tags/Coding4Fun/default.aspx">Coding4Fun</category><category domain="http://blogs.msdn.com/dparys/archive/tags/Conference/default.aspx">Conference</category><category domain="http://blogs.msdn.com/dparys/archive/tags/English+Posts/default.aspx">English Posts</category><category domain="http://blogs.msdn.com/dparys/archive/tags/Services/default.aspx">Services</category><category domain="http://blogs.msdn.com/dparys/archive/tags/Community/default.aspx">Community</category><category domain="http://blogs.msdn.com/dparys/archive/tags/Coding/default.aspx">Coding</category></item><item><title>Giving my account rights to create service endpoints on port 80</title><link>http://blogs.msdn.com/dparys/archive/2009/01/23/giving-my-account-rights-to-create-service-endpoints-on-port-80.aspx</link><pubDate>Fri, 23 Jan 2009 09:04:16 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9372198</guid><dc:creator>dparys</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/dparys/comments/9372198.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dparys/commentrss.aspx?PostID=9372198</wfw:commentRss><wfw:comment>http://blogs.msdn.com/dparys/rsscomments.aspx?PostID=9372198</wfw:comment><description>&lt;p&gt;Note to myself: new OS, missing configuration:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Start command shell in administration mode &lt;/li&gt;    &lt;li&gt;netsh http add urlacl url=http://+:80/ user=DOMAIN\user &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Update: If you are doing this, your local IIS might not be able to display websites on port 80. See this post: &lt;a href="http://blogs.msdn.com/dparys/archive/2009/02/06/service-unavailable-http-error-503-mit-iis-7-auf-windows-7.aspx"&gt;Service Unavailble HTTP Error 503 mit IIS 7 auf Windows 7&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9372198" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/dparys/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://blogs.msdn.com/dparys/archive/tags/WCF/default.aspx">WCF</category><category domain="http://blogs.msdn.com/dparys/archive/tags/Security/default.aspx">Security</category><category domain="http://blogs.msdn.com/dparys/archive/tags/English+Posts/default.aspx">English Posts</category></item><item><title>How to find and install the Live Framework SDK (CTP)</title><link>http://blogs.msdn.com/dparys/archive/2008/10/30/how-to-find-and-install-the-live-framework-sdk-ctp.aspx</link><pubDate>Thu, 30 Oct 2008 16:23:26 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9024413</guid><dc:creator>dparys</dc:creator><slash:comments>5</slash:comments><comments>http://blogs.msdn.com/dparys/comments/9024413.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dparys/commentrss.aspx?PostID=9024413</wfw:commentRss><wfw:comment>http://blogs.msdn.com/dparys/rsscomments.aspx?PostID=9024413</wfw:comment><description>&lt;p&gt;It is not easy to find the Live Framework SDK introduced during PDC 2008. Therefore I just snapshot and wrote down the steps to find and install it.&lt;/p&gt;  &lt;h4&gt;Apply for the Live Framework SDK&lt;/h4&gt;  &lt;p&gt;This is something you should do first. If you are at PDC 2008 you have an alternative way of doing the Hands-on Lab and getting so the activation code. If you are not at PDC 2008 you will find the link through &lt;a href="http://dev.live.com/liveframework"&gt;http://dev.live.com/liveframework&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/dparys/WindowsLiveWriter/HowtofindandinstalltheLiveFrameworkSDKCT_CA04/shot1_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="shot1" border="0" alt="shot1" src="http://blogs.msdn.com/blogfiles/dparys/WindowsLiveWriter/HowtofindandinstalltheLiveFrameworkSDKCT_CA04/shot1_thumb.png" width="533" height="413" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Fill out the form and wait until you get an approval email. BTW, I still don’t got mine, I took the shortcut going through the HOL.&lt;/p&gt;  &lt;h4&gt;Redeem your activation token&lt;/h4&gt;  &lt;p&gt;If you received your activation token, you have to redeem it. This will be done on &lt;a href="http://lx.azure.microsoft.com"&gt;http://lx.azure.microsoft.com&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/dparys/WindowsLiveWriter/HowtofindandinstalltheLiveFrameworkSDKCT_CA04/shot2_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="shot2" border="0" alt="shot2" src="http://blogs.msdn.com/blogfiles/dparys/WindowsLiveWriter/HowtofindandinstalltheLiveFrameworkSDKCT_CA04/shot2_thumb.png" width="540" height="261" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;You have to go through the registration. If you have already an Live Applications it will find it and make it manageable throught the portal. Next, you will enter the activation token and redeem it.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/dparys/WindowsLiveWriter/HowtofindandinstalltheLiveFrameworkSDKCT_CA04/shot3_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="shot3" border="0" alt="shot3" src="http://blogs.msdn.com/blogfiles/dparys/WindowsLiveWriter/HowtofindandinstalltheLiveFrameworkSDKCT_CA04/shot3_thumb.png" width="544" height="184" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;If the token was valid you receive the following message&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/dparys/WindowsLiveWriter/HowtofindandinstalltheLiveFrameworkSDKCT_CA04/shot4_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="shot4" border="0" alt="shot4" src="http://blogs.msdn.com/blogfiles/dparys/WindowsLiveWriter/HowtofindandinstalltheLiveFrameworkSDKCT_CA04/shot4_thumb.png" width="410" height="152" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;h4&gt;Creating a Project&lt;/h4&gt;  &lt;p&gt;The following is not clearly described. You &lt;strong&gt;have to go&lt;/strong&gt; through creating a project to get the Live Framework SDK and its dependencies.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/dparys/WindowsLiveWriter/HowtofindandinstalltheLiveFrameworkSDKCT_CA04/shot5_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="shot5" border="0" alt="shot5" src="http://blogs.msdn.com/blogfiles/dparys/WindowsLiveWriter/HowtofindandinstalltheLiveFrameworkSDKCT_CA04/shot5_thumb.png" width="543" height="267" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;If you go “New Project” in the upper left corner, you will be starting the project creation process. Select “Live Services: Live Framework Community Technology Preview”. Note, that you have a maximum amount of 25 projects to test with.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/dparys/WindowsLiveWriter/HowtofindandinstalltheLiveFrameworkSDKCT_CA04/shot6_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="shot6" border="0" alt="shot6" src="http://blogs.msdn.com/blogfiles/dparys/WindowsLiveWriter/HowtofindandinstalltheLiveFrameworkSDKCT_CA04/shot6_thumb.png" width="533" height="162" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;After selecting you have to read and accept the Terms of Use in order to receive the SDK. Next, type in the project name and description&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/dparys/WindowsLiveWriter/HowtofindandinstalltheLiveFrameworkSDKCT_CA04/shot7_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="shot7" border="0" alt="shot7" src="http://blogs.msdn.com/blogfiles/dparys/WindowsLiveWriter/HowtofindandinstalltheLiveFrameworkSDKCT_CA04/shot7_thumb.png" width="531" height="294" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;And now we got where we want to be. We received the link!&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/dparys/WindowsLiveWriter/HowtofindandinstalltheLiveFrameworkSDKCT_CA04/shot8_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="shot8" border="0" alt="shot8" src="http://blogs.msdn.com/blogfiles/dparys/WindowsLiveWriter/HowtofindandinstalltheLiveFrameworkSDKCT_CA04/shot8_thumb.png" width="540" height="180" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;The link will navigate you to the Mesh CTP where you can host a Mesh-Enabled application and have the links for the download packages&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/dparys/WindowsLiveWriter/HowtofindandinstalltheLiveFrameworkSDKCT_CA04/shot9_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="shot9" border="0" alt="shot9" src="http://blogs.msdn.com/blogfiles/dparys/WindowsLiveWriter/HowtofindandinstalltheLiveFrameworkSDKCT_CA04/shot9_thumb.png" width="419" height="218" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;h4&gt;Installing the Live Framework SDK&lt;/h4&gt;  &lt;p&gt;It is important to install in order, first Live Framework SDK, then Silverlight Tools for Visual Studio and finally Live Framework Tools for Microsoft Visual Studio. One thing to mention is that the Live Framework SDK just comes in a zipped form. You have to copy the content to your Program Files directory into the Microsoft SDK folder. Beware that you need UAC elevation on Vista when enabled, what I’m sure you have!&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/dparys/WindowsLiveWriter/HowtofindandinstalltheLiveFrameworkSDKCT_CA04/shot10_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="shot10" border="0" alt="shot10" src="http://blogs.msdn.com/blogfiles/dparys/WindowsLiveWriter/HowtofindandinstalltheLiveFrameworkSDKCT_CA04/shot10_thumb.png" width="537" height="175" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;After that you are ready to run the Silverlight Tools installer and close the whole process with the Live Framework tools.&lt;/p&gt;  &lt;h4&gt;Done&lt;/h4&gt;  &lt;p&gt;The result in Visual Studio 2008&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/dparys/WindowsLiveWriter/HowtofindandinstalltheLiveFrameworkSDKCT_CA04/shot11_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="shot11" border="0" alt="shot11" src="http://blogs.msdn.com/blogfiles/dparys/WindowsLiveWriter/HowtofindandinstalltheLiveFrameworkSDKCT_CA04/shot11_thumb.png" width="548" height="295" /&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Happy Meshing!&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9024413" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/dparys/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://blogs.msdn.com/dparys/archive/tags/English+Posts/default.aspx">English Posts</category><category domain="http://blogs.msdn.com/dparys/archive/tags/Services/default.aspx">Services</category><category domain="http://blogs.msdn.com/dparys/archive/tags/PDC2008/default.aspx">PDC2008</category><category domain="http://blogs.msdn.com/dparys/archive/tags/Windows+Azure/default.aspx">Windows Azure</category></item><item><title>How to install the Nortwind sample database in SQL Server Express</title><link>http://blogs.msdn.com/dparys/archive/2008/07/23/how-to-install-the-nortwind-sample-database-in-sql-server-express.aspx</link><pubDate>Wed, 23 Jul 2008 12:43:57 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8766442</guid><dc:creator>dparys</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/dparys/comments/8766442.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dparys/commentrss.aspx?PostID=8766442</wfw:commentRss><wfw:comment>http://blogs.msdn.com/dparys/rsscomments.aspx?PostID=8766442</wfw:comment><description>&lt;p&gt;One of the things when setting up an demo environment (a fresh install) is to integrate the Northwind sample database on the demo environment. I normally just use a SQL Server Express for demos and I take Northwind to have data to play with, what else. I know there is &lt;a href="http://www.hanselman.com/blog/CommunityCallToActionNOTNorthwind.aspx"&gt;some&lt;/a&gt; &lt;a href="http://www.hanselman.com/blog/NotNorthwindUpdate1AllYourNorthwindAreBelongToUs.aspx"&gt;discussion&lt;/a&gt; around Northwind, but I for myself know that anyone in the audience knows Northwind, so no need to explain 15 valueable minutes on a more complex Schema.&lt;/p&gt;  &lt;p&gt;So a blank SQL Server Express install on my machine is taking me to the following steps:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=06616212-0356-46a0-8da2-eebc53a68034&amp;amp;DisplayLang=en"&gt;&lt;strong&gt;Download&lt;/strong&gt;&lt;/a&gt; the Northwind sample database from download.microsoft.com &lt;/li&gt;    &lt;li&gt;Run the Setup with the default settings. On my box the installed directory is &amp;quot;c:\SQL Server 2000 Sample Databases&amp;quot; &lt;/li&gt;    &lt;li&gt;Open a Command Prompt &lt;/li&gt;    &lt;li&gt;Change to the script directory, in my case &lt;strong&gt;cd &amp;quot;c:\sql server 2000 sample databases&amp;quot;&lt;/strong&gt; &lt;/li&gt;    &lt;li&gt;Execute the following command:      &lt;br /&gt;&lt;strong&gt;sqlcmd -S (local)\sqlexpress -E -i instnwnd.sql        &lt;br /&gt;&lt;/strong&gt;(assuming that your SQL Server Express is installed with default settings which is the named instance SQLEXPRESS) &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;That's it. Northwind is now installed on SQL Server Express.&lt;/p&gt; &lt;script type="text/javascript" src="http://w.sharethis.com/widget/?tabs=web%2Cpost%2Cemail&amp;amp;charset=utf-8&amp;amp;style=default&amp;amp;publisher=fa3ed33d-2b43-4637-918a-a153f574b171"&gt;&lt;/script&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8766442" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/dparys/archive/tags/SQL+Server/default.aspx">SQL Server</category><category domain="http://blogs.msdn.com/dparys/archive/tags/MSDN/default.aspx">MSDN</category><category domain="http://blogs.msdn.com/dparys/archive/tags/English+Posts/default.aspx">English Posts</category><category domain="http://blogs.msdn.com/dparys/archive/tags/Data+Access/default.aspx">Data Access</category></item><item><title>Twitter WCF 3.5 API Library</title><link>http://blogs.msdn.com/dparys/archive/2008/06/04/twitter-wcf-3-5-api-library.aspx</link><pubDate>Wed, 04 Jun 2008 08:44:24 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8572768</guid><dc:creator>dparys</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/dparys/comments/8572768.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dparys/commentrss.aspx?PostID=8572768</wfw:commentRss><wfw:comment>http://blogs.msdn.com/dparys/rsscomments.aspx?PostID=8572768</wfw:comment><description>&lt;p&gt;I just published the API declaration library, even it is just experimental and has not been tested. I think it is still a time saver to get at least the declarations. If anyone has an improved version, I would be interested to be updated. You can find the library &lt;a href="https://code.msdn.microsoft.com/Release/ProjectReleases.aspx?ProjectName=dparys&amp;amp;ReleaseId=1128"&gt;here&lt;/a&gt; and some more info &lt;a href="http://blogs.msdn.com/dparys/archive/2008/06/02/programming-twitter-with-wcf-3-5.aspx"&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;The library just wraps the Twitter API described &lt;a href="http://groups.google.com/group/twitter-development-talk/web/api-documentation"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8572768" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/dparys/archive/tags/Connected+Systems/default.aspx">Connected Systems</category><category domain="http://blogs.msdn.com/dparys/archive/tags/WCF/default.aspx">WCF</category><category domain="http://blogs.msdn.com/dparys/archive/tags/Web+2.0/default.aspx">Web 2.0</category><category domain="http://blogs.msdn.com/dparys/archive/tags/English+Posts/default.aspx">English Posts</category></item><item><title>Programming Twitter with WCF 3.5</title><link>http://blogs.msdn.com/dparys/archive/2008/06/02/programming-twitter-with-wcf-3-5.aspx</link><pubDate>Mon, 02 Jun 2008 09:39:36 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8568828</guid><dc:creator>dparys</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/dparys/comments/8568828.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dparys/commentrss.aspx?PostID=8568828</wfw:commentRss><wfw:comment>http://blogs.msdn.com/dparys/rsscomments.aspx?PostID=8568828</wfw:comment><description>&lt;p&gt;Do you Twitter? If so, this could be of interest for you. If not, maybe you are interested in how to use the Twitter REST API to write own client applications. &lt;/p&gt;  &lt;p&gt;Imagine you could just use Twitter from your code like this:&lt;/p&gt;  &lt;div&gt;   &lt;div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;     &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; TwitterStatusProxy proxy = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; TwitterStatusProxy( &lt;span style="color: #006080"&gt;&amp;quot;username&amp;quot;&lt;/span&gt;, &lt;span style="color: #006080"&gt;&amp;quot;password&amp;quot;&lt;/span&gt; );&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   2:&lt;/span&gt;&amp;#160; &lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   3:&lt;/span&gt; &lt;span style="color: #008000"&gt;// retrieve friends timeline&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   4:&lt;/span&gt; XElement timeline = proxy.GetFriendsTimeline();&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   5:&lt;/span&gt;&amp;#160; &lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   6:&lt;/span&gt; // &lt;span style="color: #0000ff"&gt;do&lt;/span&gt; whatever you want to &lt;span style="color: #0000ff"&gt;do&lt;/span&gt; with the data&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;I just wrote up a demo for a security talk I gave last friday, using the Twitter API from WCF 3.5. One interesting scenario using Twitter, beside its origin to update the current status of the user, is to integrate the pub/sub system with SMS capabilities into an application. Imagine, you have a bunch of field workers on the road and they could just update status information on ongoing business via the Twitter infrastructure or the way back from the central to the field workers. You receive status information via SMS and are up to date. This scenario is especially interesting in Countries where SMS costs are still high. You have up to 250 SMS per week when using Twitter (in the US, I think there is not this limit). Could be a huge amount of money to spare. Ok, there is of course one drawback, the reliability of the plattform. I have no idea how well it scales if it is under pressure and how often downtimes are. Meanwhile you have an API call to get informed about planned downtime slots. &lt;/p&gt;

&lt;p&gt;Anyway, I want to show you how to use Twitter with WCF 3.5. Here we go. Twitters API is almost an authenticated one, this means for most calls you have to authenticate yourself before calling into the API. Therefore I have chosen to always provide a username and password in the constructor of the proxy class. I decided also to use for each category an own proxy implementation. Of course, I created a base class to inherit (similar to ClientBase, less functionality) from and all proxies are using this class. My last decision was not to model data contracts or value objects. I decided just to leave it as an XElement, this has the advantage that anyone is free to provide own mapping objects on top of the proxy.&lt;/p&gt;

&lt;p&gt;Here is the generic base proxy class&lt;/p&gt;

&lt;div&gt;
  &lt;div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;
    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;abstract&lt;/span&gt; &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; TwitterProxyBase&amp;lt;T&amp;gt;&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   2:&lt;/span&gt; {&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   3:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;protected&lt;/span&gt; T proxy;&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   4:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;protected&lt;/span&gt; &lt;span style="color: #0000ff"&gt;readonly&lt;/span&gt; &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; twitterBaseUri = &lt;span style="color: #006080"&gt;&amp;quot;https://twitter.com&amp;quot;&lt;/span&gt;;&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   5:&lt;/span&gt;&amp;#160; &lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   6:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;protected&lt;/span&gt; TwitterProxyBase( &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; username, &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; password )&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   7:&lt;/span&gt;     {&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   8:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.CreateProxy( username, password );&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   9:&lt;/span&gt;     }&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  10:&lt;/span&gt;&amp;#160; &lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  11:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;protected&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; CreateProxy( &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; username, &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; password )&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  12:&lt;/span&gt;     {&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  13:&lt;/span&gt;         WebHttpBinding binding = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; WebHttpBinding();&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  14:&lt;/span&gt;         binding.Security.Mode = WebHttpSecurityMode.Transport;&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  15:&lt;/span&gt;         binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Basic;&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  16:&lt;/span&gt;&amp;#160; &lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  17:&lt;/span&gt;         ChannelFactory&amp;lt;T&amp;gt; channel = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; ChannelFactory&amp;lt;T&amp;gt;(&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  18:&lt;/span&gt;             binding,&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  19:&lt;/span&gt;             &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.twitterBaseUri );&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  20:&lt;/span&gt;&amp;#160; &lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  21:&lt;/span&gt;         channel.Endpoint.Behaviors.Add( &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; WebHttpBehavior() );&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  22:&lt;/span&gt;&amp;#160; &lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  23:&lt;/span&gt;         channel.Credentials.UserName.UserName = username;&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  24:&lt;/span&gt;         channel.Credentials.UserName.Password = password;&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  25:&lt;/span&gt;&amp;#160; &lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  26:&lt;/span&gt;         proxy = channel.CreateChannel();&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  27:&lt;/span&gt;     }&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  28:&lt;/span&gt; }&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;No error handling in my code, as I just wrote that one for the demo, you should include Error-handling. From this base class you just have to inherit and write a little proxy helper. In general I'm using the WCF 3.5 WebGet and WebInvoke attributes to decorate the proxy interface. This is how the Status API interface of Twitter looks in WCF decorated. I just shortened the class for more clarity. &lt;/p&gt;

&lt;div&gt;
  &lt;div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;
    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; [ServiceContract]&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   2:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;interface&lt;/span&gt; ITwitterStatusXml&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   3:&lt;/span&gt; {&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   4:&lt;/span&gt;     &lt;span style="color: #008000"&gt;// serveral operations missing for clarity&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   5:&lt;/span&gt;     &lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   6:&lt;/span&gt;     [OperationContract]&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   7:&lt;/span&gt;     [WebGet( UriTemplate = &lt;span style="color: #006080"&gt;&amp;quot;/statuses/friends_timeline.xml&amp;quot;&lt;/span&gt;, &lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   8:&lt;/span&gt;              BodyStyle = WebMessageBodyStyle.Bare, &lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   9:&lt;/span&gt;              ResponseFormat = WebMessageFormat.Xml )]&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  10:&lt;/span&gt;     XElement GetFriendsTimeline();&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  11:&lt;/span&gt;&amp;#160; &lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  12:&lt;/span&gt;     [OperationContract]&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  13:&lt;/span&gt;     [WebGet( UriTemplate = &lt;span style="color: #006080"&gt;&amp;quot;/statuses/friends_timeline/{screenName}.xml&amp;quot;&lt;/span&gt;, &lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  14:&lt;/span&gt;              BodyStyle = WebMessageBodyStyle.Bare, &lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  15:&lt;/span&gt;              ResponseFormat = WebMessageFormat.Xml )]&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  16:&lt;/span&gt;     XElement GetFriendsTimelineByScreenName( &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; screenName );&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  17:&lt;/span&gt;&amp;#160; &lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  18:&lt;/span&gt;     [OperationContract]&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  19:&lt;/span&gt;     [WebInvoke( UriTemplate = &lt;span style="color: #006080"&gt;&amp;quot;/statuses/update.xml?status={status}&amp;quot;&lt;/span&gt;, &lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  20:&lt;/span&gt;                 Method = &lt;span style="color: #006080"&gt;&amp;quot;POST&amp;quot;&lt;/span&gt;, &lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  21:&lt;/span&gt;                 BodyStyle = WebMessageBodyStyle.Bare, &lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  22:&lt;/span&gt;                 ResponseFormat = WebMessageFormat.Xml )]&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  23:&lt;/span&gt;     XElement Update( &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; status );&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  24:&lt;/span&gt; }&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;Line 7-10 and 12-16 are demonstrating GET operations on the Twitter contract, where line 18-23 are showing a POST. &lt;/p&gt;

&lt;p&gt;Now the proxy inherits the base class and this interface.&lt;/p&gt;

&lt;div&gt;
  &lt;div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;
    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; TwitterStatusProxy : TwitterProxyBase&amp;lt;ITwitterStatusXml&amp;gt;, ITwitterStatusXml&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   2:&lt;/span&gt; {&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   3:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; TwitterStatusProxy( &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; username, &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; password )&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   4:&lt;/span&gt;         : &lt;span style="color: #0000ff"&gt;base&lt;/span&gt;( username, password )&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   5:&lt;/span&gt;     {&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   6:&lt;/span&gt;     }&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   7:&lt;/span&gt;&amp;#160; &lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   8:&lt;/span&gt;     &lt;span style="color: #cc6633"&gt;#region&lt;/span&gt; ITwitterStatusXml Members&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   9:&lt;/span&gt;&amp;#160; &lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  10:&lt;/span&gt;     &lt;span style="color: #008000"&gt;// most operations not included for more clarity&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  11:&lt;/span&gt;&amp;#160; &lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  12:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; XElement GetFriendsTimeline()&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  13:&lt;/span&gt;     {&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  14:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; proxy.GetFriendsTimeline();&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  15:&lt;/span&gt;     }&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  16:&lt;/span&gt;&amp;#160; &lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  17:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; XElement GetFriendsTimelineByScreenName( &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; screenName )&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  18:&lt;/span&gt;     {&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  19:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; proxy.GetFriendsTimelineByScreenName( screenName );&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  20:&lt;/span&gt;     }&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  21:&lt;/span&gt;&amp;#160; &lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  22:&lt;/span&gt;&amp;#160; &lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  23:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; XElement Update( &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; status )&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  24:&lt;/span&gt;     {&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  25:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; encodedStatus = AntiXss.HtmlEncode( status );&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  26:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;if&lt;/span&gt;( encodedStatus.Length &amp;gt; 160 )&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  27:&lt;/span&gt;         {&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  28:&lt;/span&gt;             &lt;span style="color: #0000ff"&gt;throw&lt;/span&gt; &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; ArgumentException( &lt;span style="color: #006080"&gt;&amp;quot;Status information may not exceed 160 characters&amp;quot;&lt;/span&gt; );&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  29:&lt;/span&gt;         }&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  30:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; proxy.Update( encodedStatus );&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  31:&lt;/span&gt;     }&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  32:&lt;/span&gt;&amp;#160; &lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  33:&lt;/span&gt;     &lt;span style="color: #cc6633"&gt;#endregion&lt;/span&gt;&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  34:&lt;/span&gt; }&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;That's it&lt;/p&gt;

&lt;p&gt;Now you can use Twitter from your application like I showed in the beginning. For instance to update the users status is as easy as to write&lt;/p&gt;

&lt;div&gt;
  &lt;div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;
    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; TwitterStatusProxy proxy = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; TwitterStatusProxy( &lt;span style="color: #006080"&gt;&amp;quot;username&amp;quot;&lt;/span&gt;, &lt;span style="color: #006080"&gt;&amp;quot;password&amp;quot;&lt;/span&gt; );&lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   2:&lt;/span&gt;&amp;#160; &lt;/pre&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   3:&lt;/span&gt; XElement result = proxy.Update( &lt;span style="color: #006080"&gt;&amp;quot;currently testing twitter&amp;quot;&lt;/span&gt; );&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;If you are interested into the interface declarations for the whole Twitter API, send me an email at dparys add microsoft dot com. I will send you the C# project. Why this way, why not sharing? Because I have not tested the complete API declaration. I wrote those API during a train ride with no internet access and had no chance to test. Its up to you. Feedback welcome!&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8568828" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/dparys/archive/tags/Connected+Systems/default.aspx">Connected Systems</category><category domain="http://blogs.msdn.com/dparys/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://blogs.msdn.com/dparys/archive/tags/WCF/default.aspx">WCF</category><category domain="http://blogs.msdn.com/dparys/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://blogs.msdn.com/dparys/archive/tags/Coding4Fun/default.aspx">Coding4Fun</category><category domain="http://blogs.msdn.com/dparys/archive/tags/Web+2.0/default.aspx">Web 2.0</category><category domain="http://blogs.msdn.com/dparys/archive/tags/Security/default.aspx">Security</category><category domain="http://blogs.msdn.com/dparys/archive/tags/English+Posts/default.aspx">English Posts</category></item><item><title>Yet Another Windows Live Demo Video</title><link>http://blogs.msdn.com/dparys/archive/2008/05/09/yet-another-windows-live-demo-video.aspx</link><pubDate>Fri, 09 May 2008 15:06:39 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8479644</guid><dc:creator>dparys</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/dparys/comments/8479644.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dparys/commentrss.aspx?PostID=8479644</wfw:commentRss><wfw:comment>http://blogs.msdn.com/dparys/rsscomments.aspx?PostID=8479644</wfw:comment><description>&lt;p&gt;&lt;a href="http://blogs.msdn.com/walzenbach"&gt;Daniel Walzenbach&lt;/a&gt; and myself are demoing Windows Live with all its possibilities. In this scenario we have a mom, missing her son, but she always knows where he is! How this magic works, see and guess who is playing Daniel's mom? Enjoy!&lt;/p&gt;  &lt;p&gt;&lt;iframe style="width: 700px; height: 525px" src="http://silverlight.services.live.com/invoke/29047/Uebermama/iframe.html" frameborder="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8479644" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/dparys/archive/tags/Fun+Stuff/default.aspx">Fun Stuff</category><category domain="http://blogs.msdn.com/dparys/archive/tags/English+Posts/default.aspx">English Posts</category><category domain="http://blogs.msdn.com/dparys/archive/tags/Windows+Live/default.aspx">Windows Live</category></item><item><title>Visual C++ Event in Bad Homburg, Germany</title><link>http://blogs.msdn.com/dparys/archive/2008/04/02/visual-c-event-in-bad-homburg-germany.aspx</link><pubDate>Wed, 02 Apr 2008 10:10:50 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8350133</guid><dc:creator>dparys</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/dparys/comments/8350133.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dparys/commentrss.aspx?PostID=8350133</wfw:commentRss><wfw:comment>http://blogs.msdn.com/dparys/rsscomments.aspx?PostID=8350133</wfw:comment><description>&lt;p&gt;On April, 17th we have &lt;a href="http://blogs.msdn.com/borisj"&gt;Boris Jabes&lt;/a&gt; from the Visual C++ Product Team in Germany. This Community Event is free of charge and will have the following Agenda:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Agenda Community Event&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;What's new in Visual Studio 2008 &lt;/strong&gt;&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;walkthrough new C++ features &lt;/li&gt;      &lt;li&gt;VSTS for C++ developers&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;&lt;strong&gt;A deeper look into the VS2008 Feature Pack for C++ &lt;/strong&gt;&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;demo of improvements to MFC &lt;/li&gt;      &lt;li&gt;the value of TR1&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;&lt;strong&gt;A brief glimpse into the future of Visual C++ &lt;/strong&gt;&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;highlights from what we're building for the next version of C++&lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt;  &lt;p&gt;The event will be from 4pm - 7pm. This is an excellent opportunity to get in touch with the Visual C++ Product Team. If you have any questions, any suggestions or just things you don't know how to proceed, come and join our community event. I guess Boris is also the perfect discussion partner when it comes to Intellisense inside Visual C++.&lt;/p&gt;  &lt;p&gt;To sign up for the event, just klick &lt;a href="mailto:eventreg@microsoft.com?Subject=Anmeldung%20zum%20C++%20Event%20am%2017.%20April%202008"&gt;this link&lt;/a&gt; and write at least your contact details down.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Fast Facts:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Date: 17.04.2008&lt;/p&gt;  &lt;p&gt;Time: 4pm - 7pm&lt;/p&gt;  &lt;p&gt;Location: Steigenberger Hotel Bad Homburg, Kaiser-Friedrich-Promenade 69-75, 61348 Bad Homburg v. d. H&amp;#246;he&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.bad-homburg.steigenberger.com/aw/Hotels/Steigenberger_Hotel_Bad_Homburg/Englisch/Hotel_Information/~djx/Location_Direction/"&gt;Directions here&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;About Boris Jabes&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Boris Jabes is a program manager on the Visual C++ team. He is responsible for improving the IDE experience for C++ developers with a focus on furthering the quality of source editing, understanding, and analysis. Recently, he's been concentrating on making the IDE scale to multi-million line source bases. Before joining Microsoft, Boris obtained degrees from the University of Waterloo and Carnegie Mellon where he specialized in distributed systems and software engineering.&lt;/p&gt;  &lt;p&gt;Blog: &lt;a href="http://blogs.msdn.com/borisj"&gt;http://blogs.msdn.com/borisj&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Of course, we are expecting at least as much people as on the launch event in February, the video below. Ok, we had about 7.000 Attendees so I guess we can live with a few less. Sorry for the wrong ratio, I recorded it with 16:9 but it seems that Silverlight Streaming is encoding regardless in 4:3.&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;iframe style="width: 500px; height: 375px" src="http://silverlight.services.live.com/invoke/29047/CPPRulez/iframe.html" frameborder="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;/p&gt;  &lt;p&gt;Hope to see you on the Visual C++ 2008 Community Event in Bad Homburg.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8350133" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/dparys/archive/tags/C_2B002B002F00_CLI/default.aspx">C++/CLI</category><category domain="http://blogs.msdn.com/dparys/archive/tags/English+Posts/default.aspx">English Posts</category><category domain="http://blogs.msdn.com/dparys/archive/tags/Events/default.aspx">Events</category><category domain="http://blogs.msdn.com/dparys/archive/tags/C_2B002B00_/default.aspx">C++</category></item><item><title>Mambo speed run install - Check this out!</title><link>http://blogs.msdn.com/dparys/archive/2008/01/16/mambo-speed-run-install-check-this-out.aspx</link><pubDate>Wed, 16 Jan 2008 16:00:50 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7130793</guid><dc:creator>dparys</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/dparys/comments/7130793.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dparys/commentrss.aspx?PostID=7130793</wfw:commentRss><wfw:comment>http://blogs.msdn.com/dparys/rsscomments.aspx?PostID=7130793</wfw:comment><description>My colleque Bernhard "TigerDuck" Frank has created an amazing video about the Raktajino project. I did a podcast in December with him (just in German) and we discussed what Tigerduck in general is. So, if you want to see, how you can install Mambo , without...(&lt;a href="http://blogs.msdn.com/dparys/archive/2008/01/16/mambo-speed-run-install-check-this-out.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=7130793" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/dparys/archive/tags/Fun+Stuff/default.aspx">Fun Stuff</category><category domain="http://blogs.msdn.com/dparys/archive/tags/Windows+Server/default.aspx">Windows Server</category><category domain="http://blogs.msdn.com/dparys/archive/tags/English+Posts/default.aspx">English Posts</category><category domain="http://blogs.msdn.com/dparys/archive/tags/Tools/default.aspx">Tools</category></item><item><title>Evangelism Jamboree, I'm looking forward for the next one</title><link>http://blogs.msdn.com/dparys/archive/2007/12/03/evangelism-jamboree-i-m-looking-forward-for-the-next-one.aspx</link><pubDate>Mon, 03 Dec 2007 12:40:46 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6645267</guid><dc:creator>dparys</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/dparys/comments/6645267.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dparys/commentrss.aspx?PostID=6645267</wfw:commentRss><wfw:comment>http://blogs.msdn.com/dparys/rsscomments.aspx?PostID=6645267</wfw:comment><description>Today was our first Evangelism Jamboree among France, United Kingdom and Germany. It is actually the first time I met some Evangelist from France and UK (ok, I met the architects two weeks ago in Prague) and it was a really interesting conversation we...(&lt;a href="http://blogs.msdn.com/dparys/archive/2007/12/03/evangelism-jamboree-i-m-looking-forward-for-the-next-one.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=6645267" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/dparys/archive/tags/English+Posts/default.aspx">English Posts</category></item><item><title>World of Warcraft - Popfly Mashup</title><link>http://blogs.msdn.com/dparys/archive/2007/11/30/world-of-warcraft-popfly-mashup.aspx</link><pubDate>Fri, 30 Nov 2007 13:54:46 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6613788</guid><dc:creator>dparys</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/dparys/comments/6613788.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dparys/commentrss.aspx?PostID=6613788</wfw:commentRss><wfw:comment>http://blogs.msdn.com/dparys/rsscomments.aspx?PostID=6613788</wfw:comment><description>Due to the new World of Warcraft Patch, leveling from 20-60 became much easier. Therefore I think I will give it a try and would like to level up a Warlock, had none so far. By the way, this was done with Microsoft Popfly....(&lt;a href="http://blogs.msdn.com/dparys/archive/2007/11/30/world-of-warcraft-popfly-mashup.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=6613788" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/dparys/archive/tags/Fun+Stuff/default.aspx">Fun Stuff</category><category domain="http://blogs.msdn.com/dparys/archive/tags/Coding4Fun/default.aspx">Coding4Fun</category><category domain="http://blogs.msdn.com/dparys/archive/tags/English+Posts/default.aspx">English Posts</category></item><item><title>Ale Contenti on the new MFC Update (Video)</title><link>http://blogs.msdn.com/dparys/archive/2007/11/29/ale-contenti-on-the-new-mfc-update-video.aspx</link><pubDate>Thu, 29 Nov 2007 19:28:05 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6600175</guid><dc:creator>dparys</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/dparys/comments/6600175.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dparys/commentrss.aspx?PostID=6600175</wfw:commentRss><wfw:comment>http://blogs.msdn.com/dparys/rsscomments.aspx?PostID=6600175</wfw:comment><description>Two weeks ago we had Steve Teixeira and Ale Contenti in Germany. As we have recorded nearly every session of them, I just thought that this one might be of interest for all you folks who are awaiting the new MFC Update which is coming first half of 2008....(&lt;a href="http://blogs.msdn.com/dparys/archive/2007/11/29/ale-contenti-on-the-new-mfc-update-video.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=6600175" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/dparys/archive/tags/C_2B002B002F00_CLI/default.aspx">C++/CLI</category><category domain="http://blogs.msdn.com/dparys/archive/tags/English+Posts/default.aspx">English Posts</category></item></channel></rss>