<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-US"><title type="html">AppDev: Something You Should Know by Irena Kennedy</title><subtitle type="html">Everything that is related to application development, and other cool stuff...</subtitle><id>http://blogs.msdn.com/irenak/atom.xml</id><link rel="alternate" type="text/html" href="http://blogs.msdn.com/irenak/default.aspx" /><link rel="self" type="application/atom+xml" href="http://blogs.msdn.com/irenak/atom.xml" /><generator uri="http://communityserver.org" version="2.1.61025.2">Community Server</generator><updated>2007-08-05T17:06:00Z</updated><entry><title>SQL Server Connection Leak Simulation Tool</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/irenak/archive/2009/09/16/sql-server-connection-leak-simulation-tool.aspx" /><link rel="enclosure" type="application/x-zip-compressed" length="26735" href="http://blogs.msdn.com/irenak/attachment/9896044.ashx" /><id>http://blogs.msdn.com/irenak/archive/2009/09/16/sql-server-connection-leak-simulation-tool.aspx</id><published>2009-09-16T23:41:00Z</published><updated>2009-09-16T23:41:00Z</updated><content type="html">Sometimes it’s necessary to test application performance in low available resource situations… I’ve seen tools that simulate low available memory, do network throttling, etc., but I have not come across one that simulates a lot of SQL Server connections being in use… Attached is such a tool. I’m providing both, source code and the compiled binary (see bin\Debug folder). If you find any issues or have other feedback, as always, your comments are welcome....(&lt;a href="http://blogs.msdn.com/irenak/archive/2009/09/16/sql-server-connection-leak-simulation-tool.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9896044" width="1" height="1"&gt;</content><author><name>irenak</name><uri>http://blogs.msdn.com/members/irenak.aspx</uri></author><category term="SQL" scheme="http://blogs.msdn.com/irenak/archive/tags/SQL/default.aspx" /><category term="Application Development" scheme="http://blogs.msdn.com/irenak/archive/tags/Application+Development/default.aspx" /><category term="Tools" scheme="http://blogs.msdn.com/irenak/archive/tags/Tools/default.aspx" /></entry><entry><title>SYSK 370:  The Performance Cost of Extension Methods</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/irenak/archive/2009/06/25/sysk-370-the-performance-cost-of-extension-methods.aspx" /><id>http://blogs.msdn.com/irenak/archive/2009/06/25/sysk-370-the-performance-cost-of-extension-methods.aspx</id><published>2009-06-26T00:33:00Z</published><updated>2009-06-26T00:33:00Z</updated><content type="html">First, for those who may not be familiar with this feature, .NET 3.5 allows developers to add methods to existing types without using inheritance or partial classes by creating static methods that can be invoked by using instance method syntax. When I first heard about this feature, it reminded me of the decorator pattern in OOP (I’m not speaking of the implementation, but the concept… ) Since there are lots of examples for C# developers, and very few for VB.NET, here is an example of adding Serialize...(&lt;a href="http://blogs.msdn.com/irenak/archive/2009/06/25/sysk-370-the-performance-cost-of-extension-methods.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9804314" width="1" height="1"&gt;</content><author><name>irenak</name><uri>http://blogs.msdn.com/members/irenak.aspx</uri></author><category term=".NET" scheme="http://blogs.msdn.com/irenak/archive/tags/.NET/default.aspx" /></entry><entry><title>SYSK 369:  What’s Taking So Much Hard Drive Space?  ...  or Getting ‘True’ Folder Size</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/irenak/archive/2009/06/16/sysk-369-what-s-taking-so-much-hard-drive-space-or-getting-true-folder-size.aspx" /><link rel="enclosure" type="application/x-zip-compressed" length="50373" href="http://blogs.msdn.com/irenak/attachment/9762516.ashx" /><id>http://blogs.msdn.com/irenak/archive/2009/06/16/sysk-369-what-s-taking-so-much-hard-drive-space-or-getting-true-folder-size.aspx</id><published>2009-06-16T18:13:00Z</published><updated>2009-06-16T18:13:00Z</updated><content type="html">If, from time to time, you delete some files &amp;amp; folders from your hard disk, either because it’s no longer needed or just takes too much space and needs to be moved elsewhere, you may find the following utility useful… Basically, the tool below goes through all subfolders (starting with the specified location), and computes the total space taken by files in the folder, excluding subfolders… but it does it recursively, so you get the “true” folder size based on just the files in it… As a result,...(&lt;a href="http://blogs.msdn.com/irenak/archive/2009/06/16/sysk-369-what-s-taking-so-much-hard-drive-space-or-getting-true-folder-size.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9762516" width="1" height="1"&gt;</content><author><name>irenak</name><uri>http://blogs.msdn.com/members/irenak.aspx</uri></author><category term="Tools" scheme="http://blogs.msdn.com/irenak/archive/tags/Tools/default.aspx" /></entry><entry><title>SYSK 368:  SharePoint – Custom List Item Action that Starts a Workflow</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/irenak/archive/2009/04/08/sysk-368-sharepoint-custom-list-item-action-that-starts-a-workflow.aspx" /><id>http://blogs.msdn.com/irenak/archive/2009/04/08/sysk-368-sharepoint-custom-list-item-action-that-starts-a-workflow.aspx</id><published>2009-04-08T17:54:00Z</published><updated>2009-04-08T17:54:00Z</updated><content type="html">First, I must start with the following disclaimer – this was my first SharePoint 2007 project, so, I do not claim any expertise in the subject matter… However, I believe, this post may be of value to some readers… Let’s say, you want to add a custom action to the context menu in a SharePoint list that fires your custom workflow, e.g.: First, you need to let SharePoint know about the new action – in this case, Publish Project Plan. 1. You’ll need to create two files – elements.xml and feature.xml:...(&lt;a href="http://blogs.msdn.com/irenak/archive/2009/04/08/sysk-368-sharepoint-custom-list-item-action-that-starts-a-workflow.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9538340" width="1" height="1"&gt;</content><author><name>irenak</name><uri>http://blogs.msdn.com/members/irenak.aspx</uri></author></entry><entry><title>SYSK 367:  Outlook Add-In to Archive E-Mails</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/irenak/archive/2008/12/16/sysk-367-outlook-add-in-to-archive-e-mails.aspx" /><link rel="enclosure" type="application/x-zip-compressed" length="281313" href="http://blogs.msdn.com/irenak/attachment/9228902.ashx" /><id>http://blogs.msdn.com/irenak/archive/2008/12/16/sysk-367-outlook-add-in-to-archive-e-mails.aspx</id><published>2008-12-17T01:43:00Z</published><updated>2008-12-17T01:43:00Z</updated><content type="html">Do you wish there was an easier way to save individual messages to your hard disk in Outlook 2007? Moreover, do you want this utility to automatically modify the file name making it unique? For example, you may want to search for all messages from/to anybody at Contoso.com and archive them in \data\2009\Customers\Contoso\EMails folder as .msg files. The tool should make sure that messages with the same title do not override each other… I wrote an Outlook add-in to do just that, and have been using...(&lt;a href="http://blogs.msdn.com/irenak/archive/2008/12/16/sysk-367-outlook-add-in-to-archive-e-mails.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9228902" width="1" height="1"&gt;</content><author><name>irenak</name><uri>http://blogs.msdn.com/members/irenak.aspx</uri></author><category term="Tools" scheme="http://blogs.msdn.com/irenak/archive/tags/Tools/default.aspx" /></entry><entry><title>SYSK 366:  Tool to Automatically Set Internet Explorer Proxy</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/irenak/archive/2008/12/16/sysk-366-tool-to-automatically-set-internet-explorer-proxy.aspx" /><link rel="enclosure" type="application/x-zip-compressed" length="7694" href="http://blogs.msdn.com/irenak/attachment/9227290.ashx" /><id>http://blogs.msdn.com/irenak/archive/2008/12/16/sysk-366-tool-to-automatically-set-internet-explorer-proxy.aspx</id><published>2008-12-16T21:24:00Z</published><updated>2008-12-16T21:24:00Z</updated><content type="html">As a consultant, I frequently work at my customer sites, and at my home office. Needless to say, remembering the proxy configurations, and changing them every time I plug in is a chore I’d rather delegate to software running in the background and automatically detecting network connectivity changes, and setting the IE proxy based on pre-configured settings… This blog post is a set of code snapshots from the tool I wrote to do just that… Since IE settings are stored in CurrentUser registry hive, the...(&lt;a href="http://blogs.msdn.com/irenak/archive/2008/12/16/sysk-366-tool-to-automatically-set-internet-explorer-proxy.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9227290" width="1" height="1"&gt;</content><author><name>irenak</name><uri>http://blogs.msdn.com/members/irenak.aspx</uri></author><category term="Tools" scheme="http://blogs.msdn.com/irenak/archive/tags/Tools/default.aspx" /></entry><entry><title>SYSK 365:  How to get your unit tests (test project in Visual Studio 2008, a.k.a. MSTest) run multithreaded</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/irenak/archive/2008/02/22/sysk-365-how-to-get-your-unit-tests-test-project-in-visual-studio-2008-a-k-a-mstest-run-multithreaded.aspx" /><id>http://blogs.msdn.com/irenak/archive/2008/02/22/sysk-365-how-to-get-your-unit-tests-test-project-in-visual-studio-2008-a-k-a-mstest-run-multithreaded.aspx</id><published>2008-02-22T20:47:00Z</published><updated>2008-02-22T20:47:00Z</updated><content type="html">If you want to test code that requires an MTA threading model (e.g. the code being tested uses WaitHandle.WaitAll), you need to change the .testrunconfig file manually and change the threading model from STA to MTA. There are other posts that say for VS 2005, you add the following line to the config file: &amp;lt; apartmentState type = " System.Threading.ApartmentState " &amp;gt; &amp;lt; value__ type = " System.Int32 " &amp;gt; 1 &amp;lt;/ value__ &amp;gt; &amp;lt;/ apartmentState &amp;gt; Unfortunately, same posts say that in...(&lt;a href="http://blogs.msdn.com/irenak/archive/2008/02/22/sysk-365-how-to-get-your-unit-tests-test-project-in-visual-studio-2008-a-k-a-mstest-run-multithreaded.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=7849831" width="1" height="1"&gt;</content><author><name>irenak</name><uri>http://blogs.msdn.com/members/irenak.aspx</uri></author><category term=".NET" scheme="http://blogs.msdn.com/irenak/archive/tags/.NET/default.aspx" /><category term="Application Development" scheme="http://blogs.msdn.com/irenak/archive/tags/Application+Development/default.aspx" /></entry><entry><title>SYSK 364:  AJAX Extensions 1.0 Source Code and Debug Symbols</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/irenak/archive/2007/10/16/sysk-364-ajax-extensions-1-0-source-code-and-debug-symbols.aspx" /><id>http://blogs.msdn.com/irenak/archive/2007/10/16/sysk-364-ajax-extensions-1-0-source-code-and-debug-symbols.aspx</id><published>2007-10-16T19:28:00Z</published><updated>2007-10-16T19:28:00Z</updated><content type="html">Did you know that AJAX Extensions source code and debugging symbols are available to everybody at http://www.microsoft.com/downloads/details.aspx?FamilyID=ef2c1acc-051a-4fe6-ad72-f3bed8623b43&amp;amp;DisplayLang=en ?...(&lt;a href="http://blogs.msdn.com/irenak/archive/2007/10/16/sysk-364-ajax-extensions-1-0-source-code-and-debug-symbols.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=5472731" width="1" height="1"&gt;</content><author><name>irenak</name><uri>http://blogs.msdn.com/members/irenak.aspx</uri></author><category term=".NET" scheme="http://blogs.msdn.com/irenak/archive/tags/.NET/default.aspx" /><category term="Web" scheme="http://blogs.msdn.com/irenak/archive/tags/Web/default.aspx" /></entry><entry><title>SYSK 363:  ‘Software is not made of bricks’ by Ragan Wald</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/irenak/archive/2007/10/16/sysk-363-software-is-not-made-of-bricks-by-ragan-wald.aspx" /><id>http://blogs.msdn.com/irenak/archive/2007/10/16/sysk-363-software-is-not-made-of-bricks-by-ragan-wald.aspx</id><published>2007-10-16T19:00:00Z</published><updated>2007-10-16T19:00:00Z</updated><content type="html">I recently came across this gem http://weblog.raganwald.com/2007/08/bricks.html -- strongly recommended! Here are the section titles to whet your appetite: · Software is not made of bricks · Assumption: it’s all about moving bricks · Software is more complicated than bricks · Determine the baseline competence required for a project and don’t violate it · Software development is difficult to parallelize · How to make the team twice as productive without parallelizing everything · Software is transfinite...(&lt;a href="http://blogs.msdn.com/irenak/archive/2007/10/16/sysk-363-software-is-not-made-of-bricks-by-ragan-wald.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=5472496" width="1" height="1"&gt;</content><author><name>irenak</name><uri>http://blogs.msdn.com/members/irenak.aspx</uri></author><category term="Application Development" scheme="http://blogs.msdn.com/irenak/archive/tags/Application+Development/default.aspx" /></entry><entry><title>SYSK 362:  The cost of try/catch</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/irenak/archive/2007/10/12/sysk-362-the-cost-of-try-catch.aspx" /><id>http://blogs.msdn.com/irenak/archive/2007/10/12/sysk-362-the-cost-of-try-catch.aspx</id><published>2007-10-12T20:53:00Z</published><updated>2007-10-12T20:53:00Z</updated><content type="html">Since I’m still coming across a lot of conflicting recommendations on the “best practices for structure exception handling” (including those coming from different folks from Microsoft), I decided to write a blog post on the topic. So, what are the benefits and costs with SEH? Let me first address the cost of adding try/catch/finally… John Lee (a peer MCS consultant) did some profiling on his HP Compaq nc8430 Laptop (Dual Core CPU 2.16GHz, 4GB RAM) and, using that hardware, the approximate overhead...(&lt;a href="http://blogs.msdn.com/irenak/archive/2007/10/12/sysk-362-the-cost-of-try-catch.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=5426077" width="1" height="1"&gt;</content><author><name>irenak</name><uri>http://blogs.msdn.com/members/irenak.aspx</uri></author><category term=".NET" scheme="http://blogs.msdn.com/irenak/archive/tags/.NET/default.aspx" /><category term="Application Development" scheme="http://blogs.msdn.com/irenak/archive/tags/Application+Development/default.aspx" /></entry><entry><title>Why I have not been writing any new posts...</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/irenak/archive/2007/09/17/why-i-have-not-been-writing-any-new-posts.aspx" /><id>http://blogs.msdn.com/irenak/archive/2007/09/17/why-i-have-not-been-writing-any-new-posts.aspx</id><published>2007-09-17T17:26:00Z</published><updated>2007-09-17T17:26:00Z</updated><content type="html">As much as I love writing the SYSK posts, the reality is that it takes a lot of time... For the last couple of months, I've been working 14+ hour days consistently... To make the matters worse, I've learned that this type of activity doesn't even result in a "pat on the back" as, given my role and responsibilities, I'm expected to do this kind of work (and other type of knowledge transfer, mentoring, etc.) internally within Microsoft... Bottom line -- the bloging I do here comes out of my personal...(&lt;a href="http://blogs.msdn.com/irenak/archive/2007/09/17/why-i-have-not-been-writing-any-new-posts.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=4957149" width="1" height="1"&gt;</content><author><name>irenak</name><uri>http://blogs.msdn.com/members/irenak.aspx</uri></author></entry><entry><title>SYSK 361: On the importance of signing assemblies from the versioning perspective</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/irenak/archive/2007/08/10/sysk-361-on-the-importance-of-signing-assemblies-from-the-versioning-perspective.aspx" /><id>http://blogs.msdn.com/irenak/archive/2007/08/10/sysk-361-on-the-importance-of-signing-assemblies-from-the-versioning-perspective.aspx</id><published>2007-08-10T18:50:00Z</published><updated>2007-08-10T18:50:00Z</updated><content type="html">There are many reasons for signing your assemblies (security being at the top of my list), but in this post I’d like to address the importance of using a key to sign your assemblies from the versioning point of view. Now, let’s assume for the sake of this discussion, that we’re talking about private assemblies (no GAC). So, let’s consider a simple factory pattern: client calls a factory class to get an object, the factory uses the context and configuration information to determine the right implementation,...(&lt;a href="http://blogs.msdn.com/irenak/archive/2007/08/10/sysk-361-on-the-importance-of-signing-assemblies-from-the-versioning-perspective.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=4322759" width="1" height="1"&gt;</content><author><name>irenak</name><uri>http://blogs.msdn.com/members/irenak.aspx</uri></author><category term=".NET" scheme="http://blogs.msdn.com/irenak/archive/tags/.NET/default.aspx" /><category term="Application Development" scheme="http://blogs.msdn.com/irenak/archive/tags/Application+Development/default.aspx" /></entry><entry><title>:)  When was the color khaki first used for military uniforms?</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/irenak/archive/2007/08/09/when-was-the-color-khaki-first-used-for-military-uniforms.aspx" /><id>http://blogs.msdn.com/irenak/archive/2007/08/09/when-was-the-color-khaki-first-used-for-military-uniforms.aspx</id><published>2007-08-09T15:24:00Z</published><updated>2007-08-09T15:24:00Z</updated><content type="html">It was first used by the British in India in 1845, when soldiers turned their highly visible white uniforms khaki by soaking them in mud, coffee, and curry and better blend in with the landscape. Source: The 365 amazing trivia facts calendar 2007....(&lt;a href="http://blogs.msdn.com/irenak/archive/2007/08/09/when-was-the-color-khaki-first-used-for-military-uniforms.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=4309964" width="1" height="1"&gt;</content><author><name>irenak</name><uri>http://blogs.msdn.com/members/irenak.aspx</uri></author></entry><entry><title>SYSK 360:  What’s taking up the space in my database?  Also, a word about SQL reports…</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/irenak/archive/2007/08/07/sysk-360-what-s-taking-up-the-space-in-my-database-also-a-word-about-sql-reports.aspx" /><id>http://blogs.msdn.com/irenak/archive/2007/08/07/sysk-360-what-s-taking-up-the-space-in-my-database-also-a-word-about-sql-reports.aspx</id><published>2007-08-08T03:37:00Z</published><updated>2007-08-08T03:37:00Z</updated><content type="html">So, you’ve updated usage stats on your database by running EXEC sp_spaceused @updateusage = N 'TRUE' But, you still can’t figure out why it’s reporting much more used space then the data that appears in your tables… Try running the following query to get number of rows and detailed space usage information for each table and each index. SELECT object_name ( object_id ) as ObjName , index_id as IndexID , sum ( in_row_data_page_count ) as InRowDataPages , sum ( lob_used_page_count ) as LargeObjectPages...(&lt;a href="http://blogs.msdn.com/irenak/archive/2007/08/07/sysk-360-what-s-taking-up-the-space-in-my-database-also-a-word-about-sql-reports.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=4285438" width="1" height="1"&gt;</content><author><name>irenak</name><uri>http://blogs.msdn.com/members/irenak.aspx</uri></author><category term="SQL" scheme="http://blogs.msdn.com/irenak/archive/tags/SQL/default.aspx" /></entry><entry><title>SYSK 359:  How to Purge Workflow Tracking Data Inserted By SqlTrackingService</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/irenak/archive/2007/08/05/sysk-359-how-to-purge-workflow-tracking-data-inserted-by-sqltrackingservice.aspx" /><id>http://blogs.msdn.com/irenak/archive/2007/08/05/sysk-359-how-to-purge-workflow-tracking-data-inserted-by-sqltrackingservice.aspx</id><published>2007-08-06T03:06:00Z</published><updated>2007-08-06T03:06:00Z</updated><content type="html">To my great surprise, after doing a search for a script that would delete the events logged by the almighty SqlTrackingService service, I didn’t find one… So, I quickly created it (see below), and it seems to do the job just fine given the current table schema implementation used by the service: IF OBJECT_ID ( 'TrackingPartitionSetName' ) IS NOT NULL DELETE dbo . TrackingPartitionSetName GO IF OBJECT_ID ( 'TrackingPartitionInterval' ) IS NOT NULL DELETE dbo . TrackingPartitionInterval GO IF OBJECT_ID...(&lt;a href="http://blogs.msdn.com/irenak/archive/2007/08/05/sysk-359-how-to-purge-workflow-tracking-data-inserted-by-sqltrackingservice.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=4247045" width="1" height="1"&gt;</content><author><name>irenak</name><uri>http://blogs.msdn.com/members/irenak.aspx</uri></author><category term=".NET" scheme="http://blogs.msdn.com/irenak/archive/tags/.NET/default.aspx" /><category term="SQL" scheme="http://blogs.msdn.com/irenak/archive/tags/SQL/default.aspx" /><category term="Application Development" scheme="http://blogs.msdn.com/irenak/archive/tags/Application+Development/default.aspx" /></entry></feed>