<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="https://www.w3.org/2005/Atom" xmlns:sy="https://purl.org/rss/1.0/modules/syndication/" xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:content="https://purl.org/rss/1.0/modules/content/" xmlns:wfw="https://wellformedweb.org/CommentAPI/" xmlns:slash="https://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Building SQL Server and .NET Applications</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/bonniefe/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/bonniefe/feed.xml</link>
    <description>A blog about building multi-tier applications using SQL Server and .NET</description>
    <lastBuildDate>Wed, 17 Apr 2019 03:20:31 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Unit testing multi-threaded WPF applications</title>
      <link>https://docs.microsoft.com/archive/blogs/bonniefe/unit-testing-multi-threaded-wpf-applications</link>
      <pubDate>Tue, 09 Jun 2015 10:53:12 GMT</pubDate>
      <dc:creator><![CDATA[BonnieFe]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/bonniefe/2015/06/09/unit-testing-multi-threaded-wpf-applications/</guid>
      <description><![CDATA[While working to make a WPF application more responsive by offloading time consuming operations to...]]></description>
      <content:encoded><![CDATA[<p>While working to make a WPF application more responsive by offloading time consuming operations to .net 4.5 tasks (one of my favorite things!), I ran into a problem.&nbsp; Some of the unit tests just hung.&nbsp; This was because code running on the UI thread was modified to run a task, which eventually invoked a method on using WPF's Dispatcher.CurrentDispatcher to get the final piece done back on the UI thread.&nbsp; All well and good when the app is running.&nbsp; But our unit tests do not create an application, so there is no message pump running.&nbsp; Fortunately there is an excellent blog post which provides some code to run your own message pump in your unit tests: <a href="https://blog.rees.biz/2011/01/unit-testing-worker-threads-and-wpf.html">https://blog.rees.biz/2011/01/unit-testing-worker-threads-and-wpf.html.</a>&nbsp; In particular the DispatcherHelper class towards the end of the post is very, very useful.&nbsp; Just keep running the DoEvents method until either the change you are expecting (on the UI thread) occurs, or you timeout and consider the unit test failed.</p>]]></content:encoded>
    </item>
    <item>
      <title>Strange error when using Start-CopyAzureStorageBlob</title>
      <link>https://docs.microsoft.com/archive/blogs/bonniefe/strange-error-when-using-start-copyazurestorageblob</link>
      <pubDate>Thu, 26 Mar 2015 12:44:15 GMT</pubDate>
      <dc:creator><![CDATA[BonnieFe]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/bonniefe/2015/03/26/strange-error-when-using-start-copyazurestorageblob/</guid>
      <description><![CDATA[Every so often you need to copy a bunch of blob data around in the cloud.&nbsp; The...]]></description>
      <content:encoded><![CDATA[<p>Every so often you need to copy a bunch of blob data around in the cloud.&nbsp; The Start-CopyAzureStorageBlob PowerShell cmdlet can be useful for kicking off that copying.&nbsp; It returns an object you can use to poll on the status of the copy if you are copying large blobs that take a while.</p>
<p>While using Start-CopyAzureStorageBlob today I got this rather cryptic error message:</p>
<p style="padding-left: 30px;"><span style="font-family: courier new,courier;">Start-CopyAzureStorageBlob : The remote server returned an error: (412) The condition specified using HTTP conditional header(s) is not met.. HTTP Status Code: 412 - HTTP Error Message: The condition specified using HTTP conditional header(s) is not met.</span></p>
<p>Quite perplexing as of course all the HTTP conditional headers are a layer of abstraction down from the PowerShell cmdlet.&nbsp; Hey, don't look at me, I wasn't the one who created the HTTP headers!&nbsp;&nbsp; :)</p>
<p>It turned out I was specifying the -force keyword, a holdover from an abandoned copy I had restarted.&nbsp; After removing the -force keyword to the cmdlet invocation, I got a clearer error message:</p>
<p style="padding-left: 30px;"><span style="font-family: courier new,courier;">Start-CopyAzureStorageBlob : The remote server returned an error: (409) Conflict. HTTP Status Code: 409 - HTTP Error Message: There is currently a pending copy operation.</span></p>
<p>I got this error because I already have a copy underway to copy the same blob to a different storage account.&nbsp; Apparently you have to wait for the current copy of a blob to finish before you use it as a source for another copy operation.&nbsp; Who knew? I guess I do now!&nbsp;&nbsp; :)</p>
<p>Just another puzzling way blobs are different than files in a file system.</p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>How much space does each table take up?</title>
      <link>https://docs.microsoft.com/archive/blogs/bonniefe/how-much-space-does-each-table-take-up</link>
      <pubDate>Tue, 10 Mar 2015 12:53:41 GMT</pubDate>
      <dc:creator><![CDATA[BonnieFe]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/bonniefe/2015/03/10/how-much-space-does-each-table-take-up/</guid>
      <description><![CDATA[In the DevOps world space matters, especially when you are using PAAS databases in the cloud such as...]]></description>
      <content:encoded><![CDATA[<p><span style="font-family: tahoma,arial,helvetica,sans-serif;">In the DevOps world space matters, especially when you are using PAAS databases in the cloud such as Azure SQL Database (aka SQL Azure) where there can be tight space limits per database.&nbsp; One useful way to keep track of how much space each table (and accompanying indexes) take up is to use a query like the following:</span></p>
<p>&nbsp;</p>
<p style="padding-left: 30px;"><span style="font-family: courier new,courier;">select t.[name], ps.*&nbsp; from sys.dm_db_index_physical_stats(DB_ID(), 0, -1, 0, null) as ps</span></p>
<p style="padding-left: 30px;"><span style="font-family: courier new,courier;">left outer join sys.tables as t on ps.object_id = t.object_id</span></p>
<p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif;">&nbsp;For more information about <strong>sys.dm_db_index_physical_stats</strong> including the performance impact of using it check out an excellent article by Paul Randal at <a href="https://www.sqlskills.com/blogs/paul/inside-sys-dm_db_index_physical_stats/">https://www.sqlskills.com/blogs/paul/inside-sys-dm_db_index_physical_stats/.</a></span></p>]]></content:encoded>
    </item>
    <item>
      <title>Back from blogcation</title>
      <link>https://docs.microsoft.com/archive/blogs/bonniefe/back-from-blogcation</link>
      <pubDate>Fri, 22 Aug 2014 11:27:00 GMT</pubDate>
      <dc:creator><![CDATA[BonnieFe]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/bonniefe/2014/08/22/back-from-blogcation/</guid>
      <description><![CDATA[Well, it's been a while, but I'm back from my extended blogcation.&nbsp; Since my job has shifted...]]></description>
      <content:encoded><![CDATA[<p>Well, it's been a while, but I'm back from my extended blogcation.&nbsp; Since my job has shifted again, I'm going to refocus this blog back to development side of things going forward.&nbsp; Today I have made a cool discovery about OperationContextScopes that might save another developer some time, so I'm going to get started with something I hope will be useful.</p>
<p>Imagine you are building a client&nbsp;application which uses WCF, and you'd like to add some headers before you invoke the web method on a proxy.&nbsp; The code might look something like:</p>
<p style="padding-left: 30px;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;">OperationContextScope</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> scope = </span></span><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">new </span></span></span><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;">OperationContextScope</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">(myProxy.InnerChannel);</span></span></p>
<p style="padding-left: 30px;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;">MessageHeader</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">&lt;</span></span><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">string</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">&gt;&nbsp;myHeader = </span></span><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">new</span></span></span><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;">MessageHeader</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">&lt;</span></span><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">string</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">&gt;("My header value);</span></span></p>
<p style="padding-left: 30px;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;">MessageHeader</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> headerWrapper = myHeader.GetUntypedHeader(</span></span><span style="color: #a31515; font-family: Consolas; font-size: x-small;"><span style="color: #a31515; font-family: Consolas; font-size: x-small;"><span style="color: #a31515; font-family: Consolas; font-size: x-small;">"MyHeaderName"</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">, </span></span><span style="color: #a31515; font-family: Consolas; font-size: x-small;"><span style="color: #a31515; font-family: Consolas; font-size: x-small;"><span style="color: #a31515; font-family: Consolas; font-size: x-small;">""</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">);</span></span></p>
<p style="padding-left: 30px;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;">OperationContext</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">.Current.OutgoingMessageHeaders.Add(headerWrapper);</span></span></p>
<p style="padding-left: 30px;"><span style="font-family: courier new,courier; font-size: x-small;">myProxy.MyWebMethod()</span></p>
<p>Of course you'd want to package this up in some way so that this particular code can be reused for all your web method calls, but that is a different blog post.&nbsp; Anyway, if you write your code this way, you might be surprised to learn that you are leaking OperationContextScope objects.&nbsp; You can tell this is happening because looking in Task Manager you can see the memory consumption of your application grow, and grow as more web method calls are executed.&nbsp; You can find out what is leaking by using this excellent tool called CLRProfiler (<a href="https://www.microsoft.com/en-us/download/details.aspx?id=16273">https://www.microsoft.com/en-us/download/details.aspx?id=16273).</a>&nbsp; Run your application for long enough, and if the application repeatedly calls web methods to get data to refresh its data model over time you'll see when you dump the heap using CLRProfiler that although the variable <span style="font-family: courier new,courier;">scope</span> in the above example goes out of scope, it's storage is never reclaimed by the GC as you might expect it would.&nbsp; As it turns out, WCF maintains a stack of OperationContextScope instances.&nbsp; Making a new OperationContextScope instance pushes onto that stack, and disposing of the topmost OperationContextScope instance pops the stack.&nbsp; If you never dispose of the OperationContextScope instance, the stack just keeps growing.&nbsp; Because the stack is&nbsp;accessible, the GC isn't allowed to collect anything on the stack.&nbsp; Thus the leak.&nbsp; To fix the&nbsp;above code is super simple&nbsp;once you've figured out the problem:</p>
<p>&nbsp;</p>
<p style="padding-left: 30px;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;">using (OperationContextScope</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> scope = </span></span><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">new </span></span></span><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;">OperationContextScope</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">(myProxy.InnerChannel))</span></span></p>
<p style="padding-left: 30px;"><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">{</span></span></p>
<p style="padding-left: 60px;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;">MessageHeader</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">&lt;</span></span><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">string</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">&gt;&nbsp;myHeader = </span></span><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">new</span></span></span><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;">MessageHeader</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">&lt;</span></span><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">string</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">&gt;("My header value);</span></span></p>
<p style="padding-left: 60px;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;">MessageHeader</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> headerWrapper = myHeader.GetUntypedHeader(</span></span><span style="color: #a31515; font-family: Consolas; font-size: x-small;"><span style="color: #a31515; font-family: Consolas; font-size: x-small;"><span style="color: #a31515; font-family: Consolas; font-size: x-small;">"MyHeaderName"</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">, </span></span><span style="color: #a31515; font-family: Consolas; font-size: x-small;"><span style="color: #a31515; font-family: Consolas; font-size: x-small;"><span style="color: #a31515; font-family: Consolas; font-size: x-small;">""</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">);</span></span></p>
<p style="padding-left: 60px;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;">OperationContext</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">.Current.OutgoingMessageHeaders.Add(headerWrapper);</span></span></p>
<p style="padding-left: 60px;"><span style="font-family: courier new,courier; font-size: x-small;">myProxy.MyWebMethod()</span></p>
<p style="padding-left: 30px;"><span style="font-family: courier new,courier; font-size: x-small;">}</span></p>
<p>There are a lot of other things you need to be careful about, like carefully closing the proxy, but that is also for another blog post.&nbsp; Meantime, happy coding!</p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>Moving to Technet</title>
      <link>https://docs.microsoft.com/archive/blogs/bonniefe/moving-to-technet</link>
      <pubDate>Fri, 17 Feb 2012 12:25:24 GMT</pubDate>
      <dc:creator><![CDATA[BonnieFe]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/bonniefe/2012/02/17/moving-to-technet/</guid>
      <description><![CDATA[It occurs to me that this topic is probably more relevant to folks who read blogs at Technet.&nbsp;...]]></description>
      <content:encoded><![CDATA[<p><span style="font-family: comic sans ms,sans-serif;">It occurs to me that this topic is probably more relevant to folks who read blogs at Technet.&nbsp; So, I'm packing up this blog and moving it to <a href="https://blogs.technet.com/b/sqlserveroperations/">https://blogs.technet.com/b/sqlserveroperations/</a>.&nbsp; Thanks for reading my blog over the years, and if you like many developers wear multiple hats including an operations hat I hope you'll join me over in Technet land.&nbsp; </span></p>]]></content:encoded>
    </item>
    <item>
      <title>SQL Azure Management Pack CTP2 Now Available on the Download Center</title>
      <link>https://docs.microsoft.com/archive/blogs/bonniefe/sql-azure-management-pack-ctp2-now-available-on-the-download-center</link>
      <pubDate>Fri, 17 Feb 2012 11:56:08 GMT</pubDate>
      <dc:creator><![CDATA[BonnieFe]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/bonniefe/2012/02/17/sql-azure-management-pack-ctp2-now-available-on-the-download-center/</guid>
      <description><![CDATA[The first exciting news I have in the operations and manageability space is that there is now a...]]></description>
      <content:encoded><![CDATA[<p><span style="font-family: comic sans ms,sans-serif;">The first exciting news I have in the operations and manageability space is that there is now a management pack for monitoring SQL Azure based databases available as a public customer technology preview (CTP)! You can find the bits on the download center here: <a href="https://www.microsoft.com/download/en/details.aspx?id=28951">https://www.microsoft.com/download/en/details.aspx?id=28951</a></span></p>
<p><span style="font-family: comic sans ms,sans-serif;">If you haven't heard of SQL Azure definitely go to <a title="SQL Azure" href="https://www.windowsazure.com/en-us/home/tour/sql-azure/">https://www.windowsazure.com/en-us/home/tour/sql-azure/</a>&nbsp;and check it out.&nbsp; SQL Azure is Microsoft's cloud based database offering.&nbsp; It allows you to deploy database applications to the cloud so that you only pay for the database infrastructure you need when you need it.&nbsp; A lot of hassles of building highly reliable SQL Server instances are taken care of for you (buying and setting up hardware, configuring replication, for example).&nbsp; You get to focus on developing and deploying your application, and focus less on the hardware and low level software infrastructure.</span></p>
<p><span style="font-family: comic sans ms,sans-serif;">However, it is still up to you to monitor your database applications in the cloud, and that is what the SQL Azure management pack can help you do.&nbsp; The management pack plugs into Microsoft's premier monitoring product, System Center Operations Manager 2007 R2.</span></p>
<p><span style="font-family: comic sans ms,sans-serif;">This management pack has a great set of features which include:</span></p>
<ul>
<li><span style="font-family: comic sans ms,sans-serif;">Monitoring disk space usage compared to your current quota.&nbsp; Now you can avoid running out space and crashing your database app.</span></li>
<li><span style="font-family: comic sans ms,sans-serif;">Monitoring network utilization so that your billing isn't a huge surprise when you start using more network bandwidth in your app.</span></li>
<li><span style="font-family: comic sans ms,sans-serif;">Monitoring how many sessions (how many user connections) are occurring.</span></li>
<li><span style="font-family: comic sans ms,sans-serif;">Monitoring CPU, memory, and IO&nbsp;usage.</span></li>
<li><span style="font-family: comic sans ms,sans-serif;">Monitoring how many locks are being acquired during the operation of your database application.</span></li>
<li><span style="font-family: comic sans ms,sans-serif;">Monitoring how much log space is being used.</span></li>
<li><span style="font-family: comic sans ms,sans-serif;">Monitoring how long your transactions execute.</span></li>
<li><span style="font-family: comic sans ms,sans-serif;">Monitoring how many databases are associated with each SQL Azure server.</span></li>
<li><span style="font-family: comic sans ms,sans-serif;">Monitoring the availability of your SQL Azure server and the databases hosted on the server.&nbsp; Don't wait to find out from your customers!</span></li>
</ul>
<p><span style="font-family: comic sans ms,sans-serif;">You can view graphs showing you the trends of the above numerical data over time.&nbsp; You can also create overrides which enable System Center Operations Manager to raise alerts when the numbers exceed certain thresholds for those numbers.&nbsp; You get a great UI showing you the health of the servers you are monitoring and the databases you are monitoring.</span></p>
<p><span style="font-family: comic sans ms,sans-serif;">Even cooler, with a "single pane of glass" you can monitor both cloud based SQL Server assets using this management pack, and with the regular SQL Server management pack you can monitor your on-premise database server assets.&nbsp; The vision of hybrid cloud/on-premesis monitoring is here today!</span></p>
<p><span style="font-family: comic sans ms,sans-serif;">Make sure you read through the deployment guide that comes with the management pack.&nbsp; It has important information about how to successfully install and use the software.&nbsp; The SQL Azure management pack is quite unique, so don't assume it will install the same way as other management packs you are used to, even other SQL Server management packs.</span></p>
<p><span style="font-family: comic sans ms,sans-serif;">I'd love to get your feedback on this CTP and I hope it helps you keep better tabs on all of your SQL Azure assets!</span></p>
<p>&nbsp;</p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>And now for something completely different!</title>
      <link>https://docs.microsoft.com/archive/blogs/bonniefe/and-now-for-something-completely-different</link>
      <pubDate>Fri, 17 Feb 2012 11:21:56 GMT</pubDate>
      <dc:creator><![CDATA[BonnieFe]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/bonniefe/2012/02/17/and-now-for-something-completely-different/</guid>
      <description><![CDATA[For many years this blog has been about the great SQL Server samples which the SQL Server teams has...]]></description>
      <content:encoded><![CDATA[<p>For many years this blog has been about the great SQL Server samples which the SQL Server teams has brought to you.&nbsp; Today marks a change in the direction of this blog.&nbsp; For my readers interested in samples, thanks for hanging in there over the years and giving us great feedback.&nbsp; But my career has moved on to a new place centered on optimizing the operational and management experience of SQL Server, and I will have some amazing news to share with you in that space.&nbsp; If that isn't your cup of tea, thanks for being here for so many years and I wish you all the best.&nbsp; Hopefully for new folks who are joining this blog hungry for information about the operations and manageability space, welcome!</p>]]></content:encoded>
    </item>
    <item>
      <title>SQL Server 2008R2 RTM Community Samples are now available.</title>
      <link>https://docs.microsoft.com/archive/blogs/bonniefe/sql-server-2008r2-rtm-community-samples-are-now-available</link>
      <pubDate>Tue, 25 May 2010 16:37:14 GMT</pubDate>
      <dc:creator><![CDATA[BonnieFe]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/bonniefe/2010/05/25/sql-server-2008r2-rtm-community-samples-are-now-available/</guid>
      <description><![CDATA[Community sample database and sample code installers for SQL Server 2008R2 RTM are now...]]></description>
      <content:encoded><![CDATA[<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small;">Community sample database and sample code installers for SQL Server 2008R2 RTM are now available.<span style="mso-spacerun: yes;">&nbsp; You </span></span><span style="font-size: small;">can find the database installer at </span><a href="https://msftdbprodsamples.codeplex.com/"><span style="font-size: small;">https://msftdbprodsamples.codeplex.com/</span></a><span style="font-size: small;"> and can find all community samples at </span><a href="https://sqlserversamples.codeplex.com/"><span style="font-size: small;">https://sqlserversamples.codeplex.com/</span></a><span style="font-size: small;"><span style="font-size: small;">.<o:p></o:p></span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><o:p><span style="font-size: small;">&nbsp;</span></o:p></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small;"><span style="font-size: small;">Sample code changes include new Reporting Services samples targeted specifically at SQL Server 2008R2.<o:p></o:p></span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><o:p><span style="font-size: small;">&nbsp;</span></o:p></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small;"><span style="font-size: small;">Sample database changes include the following:<o:p></o:p></span></span></p>
<p class="MsoListParagraph" style="text-indent: -0.25in; margin: 0in 0in 0pt 0.5in; mso-list: l0 level1 lfo1;"><span style="font-size: small;"><span style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;"><span style="mso-list: Ignore;"><span style="font-size: small;">&middot;</span><span style="line-height: normal; font-variant: normal; font-style: normal; font-family: 'Times New Roman'; font-weight: normal;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="font-size: small;">All dates have been incremented by 4 years.&nbsp; This is a customer requested change and helps keep the data looking relevant.<o:p></o:p></span></span></p>
<p class="MsoListParagraph" style="text-indent: -0.25in; margin: 0in 0in 0pt 0.5in; mso-list: l0 level1 lfo1;"><span style="font-size: small;"><span style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;"><span style="mso-list: Ignore;"><span style="font-size: small;">&middot;</span><span style="line-height: normal; font-variant: normal; font-style: normal; font-family: 'Times New Roman'; font-weight: normal;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="font-size: small;">Product descriptions in the data warehouse have been localized into 73 new languages.&nbsp; A new table has been added to store this new localized content.<o:p></o:p></span></span></p>
<p class="MsoListParagraph" style="text-indent: -0.25in; margin: 0in 0in 0pt 0.5in; mso-list: l0 level1 lfo1;"><span style="font-size: small;"><span style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;"><span style="mso-list: Ignore;"><span style="font-size: small;">&middot;</span><span style="line-height: normal; font-variant: normal; font-style: normal; font-family: 'Times New Roman'; font-weight: normal;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="font-size: small;">Scripts have been updated to use new names for the databases (AdventureWorks2008R2, AdventureWorksDW2008R2, AdventureWorksLT2008R2) so that the updated databases can live side by side with the SQL Server 2008 sample databases.<o:p></o:p></span></span></p>
<p class="MsoListParagraph" style="text-indent: -0.25in; margin: 0in 0in 0pt 0.5in; mso-list: l0 level1 lfo1;"><span style="font-size: small;"><span style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;"><span style="mso-list: Ignore;"><span style="font-size: small;">&middot;</span><span style="line-height: normal; font-variant: normal; font-style: normal; font-family: 'Times New Roman'; font-weight: normal;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="font-size: small;">A new approach to installing the databases has been implemented.&nbsp; This approach provides more targeted feedback when issues (such as an incorrectly configured server) arise and provides links to detailed help.&nbsp; It addresses some issues customers have had with previous installers.<o:p></o:p></span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><o:p><span style="font-size: small;">&nbsp;</span></o:p></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small;"><span style="font-size: small;">On a personal note, it has been a privilege working on community samples for SQL Server but I am moving on from that role.<span style="mso-spacerun: yes;">&nbsp;&nbsp;Many thanks to all the contributors who continue to make the SQL Server community great!</span></span></span></p>]]></content:encoded>
    </item>
    <item>
      <title>AdventureWorks Community Sample Databases available for SQL Azure</title>
      <link>https://docs.microsoft.com/archive/blogs/bonniefe/adventureworks-community-sample-databases-available-for-sql-azure</link>
      <pubDate>Tue, 15 Dec 2009 20:06:00 GMT</pubDate>
      <dc:creator><![CDATA[BonnieFe]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/bonniefe/2009/12/15/adventureworks-community-sample-databases-available-for-sql-azure/</guid>
      <description><![CDATA[It is a delight to announce the availability of the AdventureWorks Community Sample Databases for...]]></description>
      <content:encoded><![CDATA[<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT face=Calibri size=3>It is a delight to announce the availability of the AdventureWorks Community Sample Databases for SQL Azure.&nbsp; You can download the scripts and data files from </FONT><A href="https://msftdbprodsamples.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=37304" mce_href="https://msftdbprodsamples.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=37304"><FONT face=Calibri size=3>CodePlex</FONT></A><FONT face=Calibri size=3>.&nbsp; </FONT><FONT face=Calibri size=3>To install the databases on your SQL Azure server just follow the directions on the release page at CodePlex or in the ReadMe.htm file which is included in the zip file.</FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p><FONT face=Calibri size=3>&nbsp;</FONT></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT face=Calibri size=3>The scripts and data files in the zip file can be used to create the data warehouse (DW) and light (LT) sample databases in a SQL Azure server without SQL Server or Visual Studio being installed on the machine performing the installation. Currently the AdventureWorks OLTP database is not supported for SQL Azure and is not included in the zip file.</FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt" mce_keep="true">&nbsp;</P>]]></content:encoded>
    </item>
    <item>
      <title>SQL Server 2008 SR4 sample database installer available</title>
      <link>https://docs.microsoft.com/archive/blogs/bonniefe/sql-server-2008-sr4-sample-database-installer-available</link>
      <pubDate>Thu, 10 Dec 2009 14:21:00 GMT</pubDate>
      <dc:creator><![CDATA[BonnieFe]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/bonniefe/2009/12/10/sql-server-2008-sr4-sample-database-installer-available/</guid>
      <description><![CDATA[Based on the success of the new sample databases installer we created for SQL Server 2008R2, we've...]]></description>
      <content:encoded><![CDATA[<P>Based on the success of the new sample databases installer we created for SQL Server 2008R2, we've created a new samples refresh (SR4) for SQL Server 2008 on CodePlex at <A href="https://msftdbprodsamples.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=37109">https://msftdbprodsamples.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=37109</A>.&nbsp; This is a much simpler and more robust installer which allows you to select the databases that can be successfully installed, and also provides advice when a database isn't available for installation.&nbsp; Thanks for your feedback and for helping to&nbsp;create a vibrant SQL Server development community.</P>]]></content:encoded>
    </item>
  </channel>
</rss>