<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://msmvps.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>.NET Performance : .NET</title><link>http://msmvps.com/blogs/nickwienholt/archive/tags/.NET/default.aspx</link><description>Tags: .NET</description><dc:language>en</dc:language><generator>CommunityServer 2008.5 SP2 (Build: 40407.4157)</generator><item><title>Visual C++ SP1 Sample</title><link>http://msmvps.com/blogs/nickwienholt/archive/2009/04/01/visual-c-sp1-sample.aspx</link><pubDate>Wed, 01 Apr 2009 21:48:09 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1683863</guid><dc:creator>nick</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/nickwienholt/rsscomments.aspx?PostID=1683863</wfw:commentRss><comments>http://msmvps.com/blogs/nickwienholt/archive/2009/04/01/visual-c-sp1-sample.aspx#comments</comments><description>If you&amp;#39;ve downloaded SP1 of Visual Studio 2008, and are looking through the Visual C++ samples trying to locate anything to do with TR1 language extensions or the MFC Feature Pack, you&amp;#39;ll notice they aren&amp;#39;t there.  The SP1 samples are avialable, but ship as part of a seperate download available from &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=9761BB57-F066-4B70-9318-3965C5E68AAD&amp;amp;displaylang=en"&gt;MSDN Downloads&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;
The sample pach weigh&amp;#39;s in at a heft 7.9MB, and contains a heap of samples to get going with the major MFC improvments that SP1 contains.&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1683863" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/nickwienholt/archive/tags/.NET/default.aspx">.NET</category></item><item><title>ASP.NET MVC at SDNUG on Thursday</title><link>http://msmvps.com/blogs/nickwienholt/archive/2008/06/02/asp-net-mvc-at-sdnug-on-thursday.aspx</link><pubDate>Mon, 02 Jun 2008 05:17:46 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1630100</guid><dc:creator>nick</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/nickwienholt/rsscomments.aspx?PostID=1630100</wfw:commentRss><comments>http://msmvps.com/blogs/nickwienholt/archive/2008/06/02/asp-net-mvc-at-sdnug-on-thursday.aspx#comments</comments><description>After 6 months buried in a banking project, I&amp;#39;m emerging from the other end with a presentation this Thursday at &lt;a href="http://www.sdnug.org/"&gt;SDNUG&lt;/a&gt; on &lt;a href="http://www.asp.net/mvc/"&gt;ASP.NET MVC&lt;/a&gt;.  Full details on the SDNUG site - if you&amp;#39;re in Sydney, come along and be wowed.&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1630100" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/nickwienholt/archive/tags/.NET/default.aspx">.NET</category></item><item><title>WM6 to Vista Sync Error 0x8503001c - Fixed by going back to WMDC 6.0</title><link>http://msmvps.com/blogs/nickwienholt/archive/2007/11/15/wm6-to-vista-sync-error-0x8503001c-fixed-by-going-back-to-wmdc-6-0.aspx</link><pubDate>Thu, 15 Nov 2007 07:43:49 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1314211</guid><dc:creator>nick</dc:creator><slash:comments>5</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/nickwienholt/rsscomments.aspx?PostID=1314211</wfw:commentRss><comments>http://msmvps.com/blogs/nickwienholt/archive/2007/11/15/wm6-to-vista-sync-error-0x8503001c-fixed-by-going-back-to-wmdc-6-0.aspx#comments</comments><description>I had the frustrating experience of having a new WM6 device (&lt;a href="http://www.htctouch.com/"&gt;HTC Touch&lt;/a&gt;) developing a problem synching to a new Vista machine. The Touch was in its third week of a synch relationship with Vista, so it could be hoped that honeymoon bliss was still lingering in sufficient proportions to prevent a dreaded 0x8503001c error.  The only change to the system has been to do a sync over Bluetooth, and that seems to have toasted WMDC somehow.

I tried deleting and re-creating the partnership (which didn&amp;#39;t work), and taking off synch items, which produced the result of a successful sync with Mobile One Note and nothing else.

After trying the partnership delete, I tried an uninstall/ reinstall of WMDC 6.1, again with no success.

The next tactic I tried was creating a new PST file for Outlook and importing everything from the old file to the new one with no success.

The next tactic, which did work, was to unistall WMDC 6.1 and install WMDC 6.0.  Amazingly, this fixed the problem.

Its a shame that WMDC seems to have all the same problems of ActiveSync, and yet has less features.  I hope WMDC 6.2 will see a return of the file conversion functionality that was part of ActiveSync - at the moment I need to print PDFs to a third-party reader application because the file conversion that adds reflow support to a PDF file doesn&amp;#39;t work with WMDC.  Nick mentions the other side of this problem &lt;a href="http://community.softteq.com/blogs/nick/archive/2007/06/10/why-windows-mobile-device-center-is-broken.aspx"&gt;in this post&lt;/a&gt;.  

If the Mobile Device team want to deliver on their sales pitch that they are &lt;a href="http://www.smh.com.au/news/biztech/android-drops-microsoft-into-googles-pocket/2007/11/12/1194766589510.html"&gt;the best platform for business and productivity&lt;/a&gt; and fight off the combined competition from the iPhone and Google, WMDC needs to be rock-solid.&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1314211" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/nickwienholt/archive/tags/.NET/default.aspx">.NET</category></item><item><title>Dealing with linked servers in VSTS Database Pro</title><link>http://msmvps.com/blogs/nickwienholt/archive/2007/10/31/dealing-with-linked-servers-in-vsts-database-pro.aspx</link><pubDate>Wed, 31 Oct 2007 10:05:08 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1275262</guid><dc:creator>nick</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/nickwienholt/rsscomments.aspx?PostID=1275262</wfw:commentRss><comments>http://msmvps.com/blogs/nickwienholt/archive/2007/10/31/dealing-with-linked-servers-in-vsts-database-pro.aspx#comments</comments><description>Working with linked servers in VSTS Database Pro can be a bit painful, especially when the linked server is a production server that should be (and typically is) inaccessible from developer&amp;#39;s machines.  If the appropriate linked server settings aren&amp;#39;t set up on the design-time validation database server(which is the local database by default), the Database Pro project won&amp;#39;t be able to build, which will prevent all sorts of useful things like schema compares for happening.&lt;br /&gt;  &lt;br /&gt;
The solution to the problem is replicate the schema of the production database to another server (local is fine), and then to use sp_addlinkedserver to add the linked server using an alias rather than the actual server name, and then to use this alias in any stored procs that reference the linked server.  The syntax for the call is:&lt;br /&gt;&lt;br /&gt;
&lt;strong&gt;&lt;i&gt;EXEC sp_addlinkedserver   @server=&amp;#39;ServerAlias&amp;#39;, @srvproduct=&amp;#39;&amp;#39;, @provider=&amp;#39;SQLNCLI&amp;#39;,  @datasrc=&amp;#39;ActualServerName&amp;#39; &lt;/i&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;
Once sp_addlinkedserver has been called, the appropriate security settings still need to be set up, and this can be done from Management Studio or via sp_addlinkedsrvlogin.&lt;br /&gt;&lt;br /&gt;
By using an alias rather than the actual server name, the need for developers to have any login details for production systems on their machines is removed.


&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1275262" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/nickwienholt/archive/tags/.NET/default.aspx">.NET</category></item><item><title>A few quick tips for using SQL Server 2005 Linked Servers</title><link>http://msmvps.com/blogs/nickwienholt/archive/2007/10/24/a-few-quick-tips-for-using-sql-server-2005-linked-servers.aspx</link><pubDate>Wed, 24 Oct 2007 03:30:35 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1260665</guid><dc:creator>nick</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/nickwienholt/rsscomments.aspx?PostID=1260665</wfw:commentRss><comments>http://msmvps.com/blogs/nickwienholt/archive/2007/10/24/a-few-quick-tips-for-using-sql-server-2005-linked-servers.aspx#comments</comments><description>I&amp;#39;ve just completed a short,rushed project that involved moving data from one SQL Server 2005 in a DMZ to another SQL Server 2005 server inside the network.  The database in the DMZ is deployed on a per-web site basis, and there can be many copies of the same database sending data back into the central database.  I initially choose a push model, which would ease the deployment burden, as each copy of the website database could point back to the central server to push its data back.  If a new site was deployed, there was no configuration necessary to get the data pushed back to the central location apart from setting some meta-data in a particular table, and scheduling a stored procedure to run.&lt;br /&gt;&lt;br /&gt;
As is typical in rushed projects, there was no consultation with the infrastructure guys about the feasibility of the design, and we didn&amp;#39;t find out a few issues till we where scheduled to deploy.  The problems (in the order that they occurred) where:&lt;br /&gt;&lt;br /&gt;
&lt;li&gt;For someone that has always had network guys to set up DTC, its not as straight forward as I&amp;#39;d assumed.  I spent ages setting all the correct DTC configuration values on the remote machine without ever enabling it on the central server.  When I tried to issue a BEGIN DISTRIBUTED TRANSACTION from the central server, I got an error saying that the remote server had disabled its support for distributed transactions.  The error message was wrong - the local server hadn&amp;#39;t been set up for distributed transactions.  Turning on DTC on both servers (obviously) fixed the problem.
&lt;li&gt;Getting DTC working through a firewall is hard.  This &lt;a href="http://support.microsoft.com/default.aspx/kb/306843"&gt;KB article&lt;/a&gt; documents how to do it, but as there was no name resolution between the web server and the central server (to quote the KB article &amp;#39;DTC also requires that you can resolve computer names by using NetBIOS or DNS&amp;#39;),  distributed transactions weren&amp;#39;t a goer.
&lt;li&gt;@@IDENTITY and scope_identity() don&amp;#39;t flow across servers.  Using the push model, I needed to set a foreign key in one of the inserted tables, which means I needed to know the primary key on the row inserted earlier in the stored proc.  In the end, I had to go to a pull model, which was a pretty easy change.&lt;br /&gt;
While it would have been nice to identity and sort out all these issues before we started baning out TSQL, the project scope was small enough that we could resort to heroics to overcome design short-comings.
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1260665" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/nickwienholt/archive/tags/.NET/default.aspx">.NET</category></item><item><title>New CodeGuru article up</title><link>http://msmvps.com/blogs/nickwienholt/archive/2007/09/05/new-codeguru-article-up.aspx</link><pubDate>Wed, 05 Sep 2007 03:43:47 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1166101</guid><dc:creator>nick</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/nickwienholt/rsscomments.aspx?PostID=1166101</wfw:commentRss><comments>http://msmvps.com/blogs/nickwienholt/archive/2007/09/05/new-codeguru-article-up.aspx#comments</comments><description>&lt;a href="http://www.codeguru.com/columns/kate/article.php/c14229/"&gt;This months offering&lt;/a&gt; looks at upgrading an old MFC application to take advantage of Vista.  Some months the article come quickly (less than 4 hours).  This month, it took a couple of days.  The documentation for the MFC 9 updates is still pretty minimal.&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1166101" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/nickwienholt/archive/tags/.NET/default.aspx">.NET</category></item><item><title>In Perth tomorrow night</title><link>http://msmvps.com/blogs/nickwienholt/archive/2007/09/05/in-perth-tomorrow-night.aspx</link><pubDate>Wed, 05 Sep 2007 03:40:14 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1166084</guid><dc:creator>nick</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/nickwienholt/rsscomments.aspx?PostID=1166084</wfw:commentRss><comments>http://msmvps.com/blogs/nickwienholt/archive/2007/09/05/in-perth-tomorrow-night.aspx#comments</comments><description>The &lt;a href="http://perthdotnet.org/Default.aspx"&gt;website&lt;/a&gt; is up to date now - I&amp;#39;m in Perth tomorrow night for the Code Generation presentation (if &lt;a href="http://www.apec2007.org/"&gt;APEC&lt;/a&gt; hasn&amp;#39;t caused the too many problems with my flight)&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1166084" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/nickwienholt/archive/tags/.NET/default.aspx">.NET</category></item><item><title>First INETA Speaker Bureau Gig coming up - Perth 6 Sep</title><link>http://msmvps.com/blogs/nickwienholt/archive/2007/08/10/first-ineta-speaker-bureau-gig-coming-up-perth-6-sep.aspx</link><pubDate>Fri, 10 Aug 2007 03:28:54 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1099754</guid><dc:creator>nick</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/nickwienholt/rsscomments.aspx?PostID=1099754</wfw:commentRss><comments>http://msmvps.com/blogs/nickwienholt/archive/2007/08/10/first-ineta-speaker-bureau-gig-coming-up-perth-6-sep.aspx#comments</comments><description>The &lt;a href="http://perthdotnet.org/Default.aspx"&gt;site&amp;#39;s not updated yet&lt;/a&gt;, but I&amp;#39;m happy to confirm that I&amp;#39;ll be in Perth on 6 Sep to present my Code Generation in the Real World talk.  The blurb for the talk is:&lt;br /&gt;&lt;br /&gt;
&lt;font color="#1F497D" size="3"&gt;Real-world Code Generationby Nick Wienholt

There is a lot more to real-world code generation than simple spitting out a bunch of objects based on a database schema.What is the re-generation story?How are the generated objects extensible?How do I integrate custom stored procs?How do I return a collection with only a sub-set of fields populated?What is the performance like?How do I maintain source control on the database, the generated objects and the settings used for the generation?

This presentation will cover a code generation process using CodeSmith, .net Tiers and VSTS Database Professional that addresses all these points and more.The end result is a development process that can go from schema modification to full back-end regeneration in under 10 minutes.&lt;/font&gt;&lt;br /&gt;
The talk was well received when I did it at &lt;a href="http://www.sdnug.org/"&gt;SDNUG&lt;/a&gt;, and the great &lt;a href="http://www.ssw.com.au/SSW/Employees/employeesprofile.aspx?EmpID=AC"&gt;Adam Cogan&lt;/a&gt; told me after the session it was his favorite session he seen so-far in 07.&lt;br /&gt;
I haven&amp;#39;t been to the Perth User Group since Dec 04, and I&amp;#39;m looking forward to catching up with Mitch W and Nick R when I&amp;#39;m over there.&lt;br /&gt;
I&amp;#39;m flying out of Sydney on the day before APAC and coming back on the red-eye on the day of the start of the summit.  Should be interesting.&lt;br /&gt;
Thanks to Sanjay and Sin from INETA APAC for making the trip possible by funding the flight.&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1099754" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/nickwienholt/archive/tags/.NET/default.aspx">.NET</category></item><item><title>SOA in the Real World Book from Microsoft Architecture Group</title><link>http://msmvps.com/blogs/nickwienholt/archive/2007/08/10/soa-in-the-real-world-book-from-microsoft-architecture-group.aspx</link><pubDate>Fri, 10 Aug 2007 02:47:54 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1099725</guid><dc:creator>nick</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/nickwienholt/rsscomments.aspx?PostID=1099725</wfw:commentRss><comments>http://msmvps.com/blogs/nickwienholt/archive/2007/08/10/soa-in-the-real-world-book-from-microsoft-architecture-group.aspx#comments</comments><description>Released a couple of weeks ago, &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=cb2a8e49-bb3b-49b6-b296-a2dfbbe042d8&amp;amp;displaylang=en"&gt;SOA in the Real World&lt;/a&gt; is a good summary of the guidance that Microsoft has been putting out for the last 5 years.  As my main task in the current gig is the writing a document of integration stategy and then working with the development team implementating web services for the first time, the e-book is a timely helper with this task.  I&amp;#39;m still working through the first few chapters, but it looks promising.&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1099725" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/nickwienholt/archive/tags/.NET/default.aspx">.NET</category></item><item><title>MSDN Subscription - Why isn't there a cheaper download-only offering?</title><link>http://msmvps.com/blogs/nickwienholt/archive/2007/07/16/msdn-subscription-why-isn-t-there-a-cheaper-download-only-offering.aspx</link><pubDate>Mon, 16 Jul 2007 01:19:51 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1025294</guid><dc:creator>nick</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/nickwienholt/rsscomments.aspx?PostID=1025294</wfw:commentRss><comments>http://msmvps.com/blogs/nickwienholt/archive/2007/07/16/msdn-subscription-why-isn-t-there-a-cheaper-download-only-offering.aspx#comments</comments><description>As part of the MSDN Subscription offering, a box of discs is delivered most months with updated versions of Microsoft software.  Because a single DVD has many products on it, the disc churn rate is reasonably high.  In addition to the disks that come in the mail, MSDN subscribers can download all the software available as part of their subscription directly from a Passport-secured website&lt;br /&gt;&lt;br /&gt;
There is about a three month lag between a product being available on the download site, and the physical disc arriving, so any product that you&amp;#39;re really keen to use (like Visual Studio, Office, Windows and SQL Server) gets downloaded and burnt to a DVD long before the discs every arrive.  Even without broadband, it is possible to download big releases like Visual Studio - in the days of severe broadband usage limits, I downloaded Visual Studio.NET 2002 over dial-up.  The download can be paused, so I just kicked it off each night before I went to sleep, and the full download only took a couple of nights.&lt;br /&gt;&lt;br /&gt;
It seems to make a lot of sense for Microsoft to offer a download-only offering for MSDN Subscription.  The price of a subscription has roughly doubled in the last five years, and in my conversations with lots of folks around the user group and at work, there are plenty of ex-subscribers around who find the cost too high.  It would be great if the savings in disk distribution that would be achieved with a download-only MSDN Subscription offering could be passed directly onto the developer community, and the rate of folks with subscriptions could pick up again.&lt;br /&gt;&lt;br /&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1025294" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/nickwienholt/archive/tags/.NET/default.aspx">.NET</category></item><item><title>Connecting to the VSS WebService on connections other than port 80</title><link>http://msmvps.com/blogs/nickwienholt/archive/2007/07/15/connecting-to-the-vss-webservice-on-connections-other-than-port-80.aspx</link><pubDate>Sun, 15 Jul 2007 09:58:48 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1023558</guid><dc:creator>nick</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/nickwienholt/rsscomments.aspx?PostID=1023558</wfw:commentRss><comments>http://msmvps.com/blogs/nickwienholt/archive/2007/07/15/connecting-to-the-vss-webservice-on-connections-other-than-port-80.aspx#comments</comments><description>When connecting to VSS over the internet to a server that has the VSS web service on a web site that isn&amp;#39;t sitting on port 80, the full name of the service needs to be specified in the connection settings on the client side, as shown below.  If you simply try to specify http(s)://x.x.x.x:y (where y is the port number), Visual Studio will somehow miss the port when it parses out the server&amp;#39;s IP address.  To fix the problem, use the full path to the webservice, such as http://x.x.x.x:y/SourceSafe/VssService.asmx.  Visual Studio will pick up the port number correctly when the URL is specified this way.&lt;br /&gt;&lt;br /&gt;
To set up internet access to VSS on a web site that isn&amp;#39;t the default web site on the server side, I used the the VSS Admin exe to setup internet access according &lt;a href="http://alinconstantin.homeip.net/webdocs/scc/VSS_Internet.htm"&gt;to this article&lt;/a&gt;, backup the ISS virtual directory that SourceSafe created, and then restored it to the website on the arbitrary port.&lt;br /&gt;&lt;br /&gt;
&lt;img src="http://www.dotnetperformance.com/blogimages/misc/VssInternet.gif" title="" border="0" alt="" /&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1023558" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/nickwienholt/archive/tags/.NET/default.aspx">.NET</category></item><item><title>Preventing audio pauses in Vista</title><link>http://msmvps.com/blogs/nickwienholt/archive/2007/06/22/preventing-audio-pauses-in-vista.aspx</link><pubDate>Fri, 22 Jun 2007 09:49:22 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:979822</guid><dc:creator>nick</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/nickwienholt/rsscomments.aspx?PostID=979822</wfw:commentRss><comments>http://msmvps.com/blogs/nickwienholt/archive/2007/06/22/preventing-audio-pauses-in-vista.aspx#comments</comments><description>With the release of a number of hardware drivers over the last couple of months, I&amp;#39;ve finally been in a position to upgrade my main dev machine to Vista.  Everything has gone remarkably well, with the exception that I was getting very noticeable pauses when listening to audio files in WMP at high CPU loads.  Even when I set the priority of WMP up to Highest, the pauses still occurred.  I found that the problem was actually the high definition audio codec, and by disabling all enhancements (see screenshot), the pauses have all gone.&lt;br /&gt;&lt;br /&gt;
&lt;img src="http://www.dotnetperformance.com/blogimages/misc/AudioCodec.gif" title="" border="0" alt="" /&gt;&lt;br /&gt;&lt;br /&gt;
The only other problem I&amp;#39;m trying to iron out in a benign crash in explorer.exe that occurs when WMP is minimized to the Taskbar and VS2005 is running under the full admin token.  I get a dialog box coming up saying explorer.exe has been terminated and prompting for the selection of a debugger.  So far I haven&amp;#39;t been able to track down the exact cause...&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=979822" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/nickwienholt/archive/tags/.NET/default.aspx">.NET</category></item><item><title>Crypto Next Generation Wrapper for .NET</title><link>http://msmvps.com/blogs/nickwienholt/archive/2007/06/01/crypto-next-generation-wrapper-for-net.aspx</link><pubDate>Fri, 01 Jun 2007 00:09:05 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:936674</guid><dc:creator>nick</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/nickwienholt/rsscomments.aspx?PostID=936674</wfw:commentRss><comments>http://msmvps.com/blogs/nickwienholt/archive/2007/06/01/crypto-next-generation-wrapper-for-net.aspx#comments</comments><description>I do a monthly article for CodeGuru on Visual C++ (&lt;a href="http://www.codeguru.com/columns/Kate/"&gt;archive here&lt;/a&gt;), and &lt;a href="http://www.codeguru.com/columns/kate/article.php/c13813/"&gt;this months article&lt;/a&gt; was on the new Crypto API (called Windows Cryptography API: Next Generation (CNG)) in Windows Vista.  One of the real benefits of CNG is the support for &lt;a href="http://www.nsa.gov/ia/industry/crypto_suite_b.cfm"&gt;National Security Agency (NSA) Suite B &lt;/a&gt; algorithms, and the article shows the use of secret exchange through &lt;a href="http://en.wikipedia.org/wiki/Elliptic_curve_cryptography"&gt;Elliptic curve cryptography (ECC)&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;
While doing some research for the article, I found a &lt;a href="http://www.codeproject.com/vista-security/ECDH.asp"&gt;.NET wrapper for ECC&lt;/a&gt; over at Code Project - if you&amp;#39;re a .NET developer doing apps that will be deployed on Vista and above, and want to make use on CNG, this wrapper will greatly simplify your interop experiences.&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=936674" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/nickwienholt/archive/tags/.NET/default.aspx">.NET</category></item><item><title>Speaking at SDNUG June Meeting</title><link>http://msmvps.com/blogs/nickwienholt/archive/2007/05/15/speaking-at-sdnug-june-meeting.aspx</link><pubDate>Tue, 15 May 2007 01:07:30 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:904649</guid><dc:creator>nick</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/nickwienholt/rsscomments.aspx?PostID=904649</wfw:commentRss><comments>http://msmvps.com/blogs/nickwienholt/archive/2007/05/15/speaking-at-sdnug-june-meeting.aspx#comments</comments><description>I&amp;#39;m doing the June presentation at &lt;a href="http://www.sdnug.org/"&gt;SDNUG&lt;/a&gt; on Real World Code Generation.  The session basically covers the back-end system that has been put in place at the company I&amp;#39;m currently working with, and uses &lt;a href="http://nettiers.com/"&gt;.net Tiers&lt;/a&gt;, &lt;a href="http://msdn2.microsoft.com/en-us/teamsystem/aa718807.aspx"&gt;VSTS DB Pro&lt;/a&gt; and &lt;a href="http://www.codesmithtools.com/"&gt;CodeSmith&lt;/a&gt; to fully generate the back-end data layer.  I&amp;#39;ve always been more a DataSet than an ORM guy (&lt;a href="http://msmvps.com/blogs/nickwienholt/archive/2004/08/30/12575.aspx"&gt;this&lt;/a&gt; was one of my many impassioned defences of the noble dataset), but .net Tiers has convinced me that ORMs are mature enough to compete and beat DataSets in terms of features.&lt;br /&gt;&lt;br /&gt;
The thing that makes the solution that we&amp;#39;ve developed presentation-worthy are:&lt;br /&gt;
&lt;li&gt;We aren&amp;#39;t reliant on dynamic SQL (though we can support it)
&lt;li&gt;We have a strong story for extending the generated objects on the C# side (i.e. post-generation)
&lt;li&gt;We have a strong story for extending the generated objects on the TSQL side (i.e. pre-generation)
&lt;li&gt;Re-generation works very well - this one is critical
&lt;li&gt;Binding to the UI works
&lt;li&gt;Events from changed properties work
&lt;li&gt;Everything is under source control, and no manual merging is required by developers
&lt;li&gt;We have a story for detecting optimistic lock problems
&lt;li&gt;We can add auditing to any table in the database
&lt;li&gt;We can get DataSets when required
&lt;li&gt;Performance is good
&lt;br /&gt;
For those not in Sydney who want to see the presentation, contact your local INETA user group, and INETA APAC can pick up the travel expenses (assuming you&amp;#39;re not too far from Sydney) to bring this presentation to you.&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=904649" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/nickwienholt/archive/tags/.NET/default.aspx">.NET</category></item><item><title>Automating Schema Compare with VSTS DB Pro</title><link>http://msmvps.com/blogs/nickwienholt/archive/2007/05/02/automating-schema-compare-with-vsts-db-pro.aspx</link><pubDate>Wed, 02 May 2007 07:09:16 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:887370</guid><dc:creator>nick</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/nickwienholt/rsscomments.aspx?PostID=887370</wfw:commentRss><comments>http://msmvps.com/blogs/nickwienholt/archive/2007/05/02/automating-schema-compare-with-vsts-db-pro.aspx#comments</comments><description>On the project I&amp;#39;m on at the moment, we&amp;#39;re making extensive use of VSTS DB Pro as part of the process for generating the DAL and keeping it under source control.  I just found &lt;a href="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=1413614&amp;amp;SiteID=1"&gt;this post&lt;/a&gt; where &lt;a href="http://blogs.msdn.com/gertd"&gt;Gert&lt;/a&gt; has announced that there will be a MSBuild task for automating schema compare (which is an important step in our build process) as part of the DB Pro Power Tools.  Can&amp;#39;t wait for this release.&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=887370" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/nickwienholt/archive/tags/.NET/default.aspx">.NET</category></item><item><title>SMH article of death of computer clubs</title><link>http://msmvps.com/blogs/nickwienholt/archive/2007/04/10/smh-article-of-death-of-computer-clubs.aspx</link><pubDate>Tue, 10 Apr 2007 04:29:47 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:776554</guid><dc:creator>nick</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/nickwienholt/rsscomments.aspx?PostID=776554</wfw:commentRss><comments>http://msmvps.com/blogs/nickwienholt/archive/2007/04/10/smh-article-of-death-of-computer-clubs.aspx#comments</comments><description>There was an interesting &lt;a href="http://www.smh.com.au/news/technology/a-bunch-of-old-mugs/2007/04/09/1175971018533.html"&gt;article in the SMH today on the death of computer clubs&lt;/a&gt;.  As the co-president &lt;a href="http://www.sdnug.org/"&gt;of a user group&lt;/a&gt;, the picture painted by the article seemed overly gloomy, and certainly doesn't represent the state of play for developer user groups.  Last week's SDNUG meeting represented our 5th anniversary, and we are still very-much going strong.  For a popular talk, we'll easily exceed the 80 person capacity of out venue at &lt;a href="http://www.ampcapital.com.au/"&gt;AMP Capital Investors&lt;/a&gt;, and we have at least ten new subscriptions to our mailing list each month.  There are over 600 email addresses on the list, and we also have an RSS feed that gets many hundreds of hits a month.&lt;br&gt;&lt;br&gt;
One of the least accurate observations of the article (as it relates to SDNUG anyway) is that online communities are replacing face-to-face interaction.  While attending a physical meeting is a significant time commitment over an online chat, the dynamics involved with an online vs. physical chat are totally different.  I'm not a big IM fan for chatting, and find I'll rarely talk to someone on IM for more than 10 minutes when I could easily have a face-to-face conversation that lasts over an hour.  A few of the things we do at SDNUG to offset the time investment is to set aside the first 30 minutes of the meeting for socialising over pizza and softdrink, we run a tight ship with getting speakers to finish at or close to 8pm so people can get home to their families at a decent hour, and we go to a pub afterwards so folks who want to continue the interaction for a longer time period can do so without any time limit.&lt;br&gt;&lt;br&gt;
Another key to our success is a close relationship with Microsoft that give a degree of street-cred, which was especially critical in the first six months when Dan and I where getting the whole thing started from scratch at a time when .NET had only RTM'ed three months earlier, and we had an established user group at North Ryde that we nominally a competitor (both groups are still going strong, and there is no sense of adversity or competition between &lt;a href="http://www.ssw.com.au/ssw/NETUG/Default.aspx"&gt;Adam&lt;/a&gt; and us).&lt;br&gt;&lt;br&gt;
I'd like to see SMH do a corresponding article on the computer clubs and user groups that where doing well.  From talking to most folks running groups on Microsoft-related technology, they all seem to be doing fine.&lt;img src="http://msmvps.com/aggbug.aspx?PostID=776554" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/nickwienholt/archive/tags/.NET/default.aspx">.NET</category></item><item><title>Collections, derived types and generics</title><link>http://msmvps.com/blogs/nickwienholt/archive/2007/04/04/collections-derived-types-and-generics.aspx</link><pubDate>Wed, 04 Apr 2007 00:13:13 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:749995</guid><dc:creator>nick</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/nickwienholt/rsscomments.aspx?PostID=749995</wfw:commentRss><comments>http://msmvps.com/blogs/nickwienholt/archive/2007/04/04/collections-derived-types-and-generics.aspx#comments</comments><description>I'm sure someone has come up with this solution to collections of derived types in derived objects somewhere before, but I couldn't find the solution written up anywhere when I was trying to solve it, so I though I'd write it up for the sake of easy reference.&lt;br&gt;&lt;br&gt;
Suppose you have the following types to represent line items on an EDI document (property accessors removed to reduce code clutter):
&lt;br&gt;&lt;br&gt;
class LineItem&lt;br&gt;
{&lt;br&gt;
 string GoodDescription;&lt;br&gt;
 string ID;&lt;br&gt;
}&lt;br&gt;
&lt;br&gt;&lt;br&gt;
class PurchaseOrderLineItem : LineItem&lt;br&gt;
{&lt;br&gt;
 public decimal UnitPrice;&lt;br&gt;
}&lt;br&gt;&lt;br&gt;
class ForecastLineItem : LineItem&lt;br&gt;
{&lt;br&gt;
 public int DaysAhead;&lt;br&gt;
}&lt;br&gt;&lt;br&gt;
There are a number of different types of EDI documents, all of which contain line items and all derived from a base EDI document, but how do you express the relationship between the elements in the collection without repeating the declaration of the collection in each derived EDI document type (which would kill the ability to handle the line items polymorphically) and yet still maintain strong typing so a forecast document could only store forecast line items?&lt;br&gt;&lt;br&gt;
The solution I cam up with was to use generics and generic constraints:&lt;br&gt;&lt;br&gt;
class EDIDocument&amp;lt;T&amp;gt; where T : LineItem&lt;br&gt;
{&lt;br&gt;
 public List&amp;lt;T&amp;gt; LineItems;&lt;br&gt;
}&lt;br&gt;
&lt;br&gt;
class Forecast : EDIDocument&amp;lt;ForecastLineItem &amp;gt;&lt;br&gt;
{&lt;br&gt;
}&lt;br&gt;
&lt;br&gt;
class PurchaseOrder : EDIDocument&amp;lt;PurchaseOrderLineItem&amp;gt;&lt;br&gt;
{&lt;br&gt;
}&lt;br&gt;
&lt;br&gt;
With this solution, you get the two big wins and polymorphism and strong-typing at compile time, and this is achieved without a lot of extra code or any run-time performance penalty.  After working on a project that (for a variety of reasonable technical and business issues) was stuck on .NET 1.1, solving real problems with generics is enjoyable.&lt;img src="http://msmvps.com/aggbug.aspx?PostID=749995" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/nickwienholt/archive/tags/.NET/default.aspx">.NET</category></item><item><title>Don't waste your time with ATGen SDK for DotNetNuke</title><link>http://msmvps.com/blogs/nickwienholt/archive/2007/04/03/don-t-waste-your-time-with-atgen-sdk-for-dotnetnuke.aspx</link><pubDate>Tue, 03 Apr 2007 03:57:29 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:746017</guid><dc:creator>nick</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/nickwienholt/rsscomments.aspx?PostID=746017</wfw:commentRss><comments>http://msmvps.com/blogs/nickwienholt/archive/2007/04/03/don-t-waste-your-time-with-atgen-sdk-for-dotnetnuke.aspx#comments</comments><description>Warning: rant follows.&lt;br&gt;&lt;br&gt;
I do some work for a client who likes DNN, and despite my own personnel luke-warm-at-best feelings towards DNN, I do work to support a web solution based on it.  Today, I was reminded why DNN and the surrounding projects aren't at the top of my list.  ATGen SDK for DotNetNuke is a CRUD generating tool from &lt;a href="http://projects.apptheory.com/"&gt;AppTheory&lt;/a&gt;, and is listed as a feature template-set on the &lt;a href="http://www.mygenerationsoftware.com"&gt;MyGeneration homepage&lt;/a&gt;.  After spending half a day trying to get ATGen working, I found that the current version doesn't work with the latest version of MyGeneration (1.2), and the version that it does work with (1.1.5) is no longer available for download.&lt;br&gt;&lt;br&gt;
I appreciate that all the good folks around DNN give a lot of time and effort in a voluntary capacity and that ATGen isn't part of DNN proper, but its episodes like this where DNN and the sourrounding software eco-system really falls down as a viable offering for commercial work IMHO.&lt;br&gt;&lt;br&gt;
MyGeneration also deserve a swift kick in the pants for linking to a defunct template library from the main page of there site.  As a long-term CodeSmith user, MyGeneration hasn't impressed me.&lt;img src="http://msmvps.com/aggbug.aspx?PostID=746017" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/nickwienholt/archive/tags/.NET/default.aspx">.NET</category></item><item><title>Schema compare with VSTS DB Pro (Data Dude)</title><link>http://msmvps.com/blogs/nickwienholt/archive/2007/02/14/schema-compare-with-vsts-db-pro-data-dude.aspx</link><pubDate>Wed, 14 Feb 2007 02:23:29 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:575630</guid><dc:creator>nick</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/nickwienholt/rsscomments.aspx?PostID=575630</wfw:commentRss><comments>http://msmvps.com/blogs/nickwienholt/archive/2007/02/14/schema-compare-with-vsts-db-pro-data-dude.aspx#comments</comments><description>In using Data Dude on a project I'm working on, the bizarre situation where a schema compare gives inaccurate results has occurred.  The situation was easy to re-produce: one developer made a change in the schema, another developer did a get latest, and compared the project to a physical database that was known to be in sync.  Any changes that have come through the latest VSS Get All where being ignored by the schema compare.&lt;br&gt;&lt;br&gt;
It turned out (and it would be nice if Data Dude actually warned you about this before allowing a schema compare) that you need to &lt;b&gt;build &lt;/b&gt;the Data Dude project before it will give you accurate results from a schema compare against a project.  It would be best if Data Dude simply detected a build was needed and did it as the first step in a schema compare.&lt;br&gt;&lt;br&gt;
It would also be nice that a schema compare had the (optional) ability to automatically refresh after writing the schema difference from the source to target.&lt;br&gt;&lt;br&gt;
Otherwise, the experience with the tool has been generally positive.&lt;img src="http://msmvps.com/aggbug.aspx?PostID=575630" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/nickwienholt/archive/tags/.NET/default.aspx">.NET</category></item><item><title>User group leaders meeting with Frank and Monique</title><link>http://msmvps.com/blogs/nickwienholt/archive/2007/01/30/user-group-leaders-meeting-with-frank-and-monique.aspx</link><pubDate>Tue, 30 Jan 2007 22:05:57 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:529560</guid><dc:creator>nick</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/nickwienholt/rsscomments.aspx?PostID=529560</wfw:commentRss><comments>http://msmvps.com/blogs/nickwienholt/archive/2007/01/30/user-group-leaders-meeting-with-frank-and-monique.aspx#comments</comments><description>As Frank &lt;a href="http://blogs.msdn.com/frankarr/archive/2007/01/24/user-group-leaders-giving-feedback.aspx"&gt;mentioned&lt;/a&gt;, a couple of Sydney's user group leaders got together with some of the local DPE team and Sanjay Shetty from &lt;a href="http://apac.ineta.org/Default.aspx?tabid=126"&gt;INETA APAC&lt;/a&gt;.  The purpose of the meeting was a general chat about the current relationship with INETA and Microsoft, and what each side could do in the future.  &lt;a href="http://www.sdnug.org/"&gt;SDNUG&lt;/a&gt; has always had an excellent relationship with the local DPE team, and the efforts of &lt;a href="http://blogs.msdn.com/charles_sterling/"&gt;Chuck&lt;/a&gt; and &lt;a href="http://blogs.msdn.com/acoat/default.aspx"&gt;Andrew&lt;/a&gt; have been massively helpful to us through the years.&lt;br&gt;&lt;br&gt;
SDNUG, as well as (it seems) every other user group in Australia and New Zealand has had a weak relationship with INETA, and the general feedback is that it is hard to understand what INETA APAC offers, and how we can take advantage of these offerings.  Sanjay mentioned that INETA APAC could help with providing speakers to a user group every quarter, but the process still seemed random and unclear to me.  A general tour like the old MSDN Update tours of 2004 where a speaker went out on the road and local user groups had the option of having them present would be a lot simpler and clearer to me than trying to organise a once off event.  If the administrative burden of any offering like INETA exceeds the benefit of the offering, user groups won't bother with the hassle.  This isn't to denigrate the hard work done by every one at INETA, and I appreciate they are volunteers doing all this hard work without a lot of thanks.&lt;br&gt;&lt;br&gt;
At a local DPE level, my main feedback was to ensure that any program that was launched has the legs and funding to last more than one year.  Short-run programs (which in a user group sense is anything under two years) make our life harder rather than easier.  It takes quite a few meetings to ramp up to support any offering like MSDN Connections, and if the program only had funding/ support for a year or so, the program will be slowing down by the time we're ramping up the enthusiasm and support.&lt;br&gt;&lt;br&gt;
Also, I spoke to &lt;a href="http://craigbailey.blogspot.com/"&gt;Craig Bailey&lt;/a&gt; from the &lt;a href="http://www.svfpug.com.au/"&gt;Sydney Foxpro group&lt;/a&gt;, and they missed out on their invite.  Foxpro snubbed - how could Coatsey let this happen :) (he was in Canberra for the day at the launch of &lt;a href="http://blogs.msdn.com/acoat/archive/2007/01/11/new-vsts-tfs-user-group-in-canberra.aspx"&gt;their VSTS group&lt;/a&gt; in his defence).&lt;br&gt;&lt;br&gt;
Overall, the session was a happy and productive affair - a big thanks to Monique and Frank for the invite.  Thanks to Sanjay for taking the time to listen and explain - hopefully INETA APAC and the ANZ user groups will form a tighter working relationship over the coming years.
&lt;img src="http://msmvps.com/aggbug.aspx?PostID=529560" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/nickwienholt/archive/tags/.NET/default.aspx">.NET</category></item></channel></rss>