<?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>Grigori Melnik: Thoughts on Agile Software Engineering and Beyond</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/agile/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/agile/feed.xml</link>
    <description />
    <lastBuildDate>Wed, 17 Apr 2019 03:13:14 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Thank you, Microsoft, p&amp;p and the community!</title>
      <link>https://docs.microsoft.com/archive/blogs/agile/thank-you-microsoft-pp-and-the-community</link>
      <pubDate>Thu, 01 May 2014 15:17:00 GMT</pubDate>
      <dc:creator><![CDATA[Grigori Melnik MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/agile/2014/05/01/thank-you-microsoft-pp-and-the-community/</guid>
      <description><![CDATA[After seven exciting and fulfilling years with Microsoft, I&rsquo;ve made a decision to move...]]></description>
      <content:encoded><![CDATA[<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/86/66/3806.Friedrich_The_wanderer.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-86-66/3806.Friedrich_5F00_The_5F00_wanderer.png"><img style="margin: 0px 15px 10px 0px; float: left; display: inline; background-image: none;" title="Wanderer" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/86/66/3806.Friedrich_The_wanderer.png" original-url="https://blogs.msdn.com/resized-image.ashx/__size/328x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-86-66/3806.Friedrich_5F00_The_5F00_wanderer.png" alt="" width="328" align="left" border="0" /></a> After seven exciting and fulfilling years with Microsoft, I&rsquo;ve made a decision to move on.&nbsp; <a href="https://microsoft.com/practices">Microsoft patterns &amp; practices</a> was an incredible journey for me. I&rsquo;ve had the rare luxury of working on many great projects with truly amazing, even distinguished people!</p>
<p>In retrospect, my team has accomplished a lot! Many of the assets we shipped under the umbrella of <a href="https://msdn.com/entlib">Microsoft Enterprise Library</a> power numerous modern systems around the world.&nbsp; Introducing Unity and the corresponding guidance helped drive the <a href="https://msdn.microsoft.com/en-us/library/dn223671%28v=pandp.30%29.aspx">dependency injection</a> pattern into the mainstream. <a href="https://aka.ms/autoscaling">Wasabi</a> brought autoscaling capabilities to Azure and the <a href="https://download.microsoft.com/download/7/5/A/75AB83E8-2487-409F-AC6C-4C3D22B72139/ITEI_Paper_5.27.11.pdf">Design for IT efficiency imperative</a> made developers more conscious about resource and energy consumption. Guidance projects such as <a href="https://aka.ms/cqrs">CQRS Journey</a> played the role of a catalyst, drove community <a href="https://www.udidahan.com/2012/02/10/udi-greg-reach-cqrs-agreement/">consensus</a>, and enhanced our shared understanding of underlying patterns. And our latest introduction of the <a href="https://aka.ms/semantic-logging">semantic logging</a> paradigm will change the way developers think about logging and log consumption, especially from the perspective of operational and business intelligence.</p>
<p>I would be remiss not to mention the role my team played in changing the internal perception of OSS and helping Microsoft <a href="https://blogs.msdn.com/b/agile/archive/2013/11/21/microsoft-enterprise-library-open-development-model.aspx">embrace the open development model</a>. A <a href="https://www.udidahan.com/2012/02/10/udi-greg-reach-cqrs-agreement/">scribble</a> from my old notebook delivers what seemed to be a rather utopian dream in 2007 and became a reality in 2013:&nbsp; &ldquo;<em>What would it take to move EntLib to a completely open-source project?</em>&rdquo; It&rsquo;s amazing how Microsoft&rsquo;s stance on OSS has changed over the years. I&rsquo;m grateful and proud for the opportunity to be a part of this change.</p>
<p>With me leaving, the team taking care of Enterprise Library, Unity, SLAB and other application blocks remains strong and committed to delivering on our product backlog. I&rsquo;ve made sure of that. Expect new strong releases this year. As I&rsquo;m wrapping my day-to-day activities, I remain in the advisor&rsquo;s role and will continue helping steer the projects.</p>
<p>Furthermore, as I have helped developers embrace good practices while at p&amp;p, I&rsquo;ll continue doing so in my new journey. I will challenge myself to something new. However, as those of you who know me, I will stay passionate about software craftsmanship and learning. If you&rsquo;d like to continue to follow my adventures, visit me at <a href="https://blog.gmelnik.com">https://blog.gmelnik.com</a>, <a href="https://www.linkedin.com/in/melnik">LinkedIn</a>, or <a href="https://twitter.com/gmelnik">@gmelnik</a>.</p>
<p>There are many colleagues at Microsoft who have supported me through the years. Thank you for your generosity with ideas, feedback, and time. Also, I&rsquo;d like to recognize many members of the community who I have collaborated with &ndash; through your (at times painful) feedback many of our initiatives turned into successes. I respect our dev community big time and will never take you for granted.</p>
<p>Signing off&hellip; so long&hellip; and <strong>thank you all for the best 7 years of my life!</strong></p>]]></content:encoded>
    </item>
    <item>
      <title>Unity 3.5 RTW: Now with more Peace, Love, and Rock 'n' Roll</title>
      <link>https://docs.microsoft.com/archive/blogs/agile/unity-3-5-rtw-now-with-more-peace-love-and-rock-n-roll</link>
      <pubDate>Mon, 21 Apr 2014 17:58:00 GMT</pubDate>
      <dc:creator><![CDATA[Grigori Melnik MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/agile/2014/04/21/unity-3-5-rtw-now-with-more-peace-love-and-rock-n-roll/</guid>
      <description><![CDATA[I&rsquo;m extremely proud to announce the latest release of the Unity DI container. We have updated...]]></description>
      <content:encoded><![CDATA[<p>I&rsquo;m extremely proud to announce the latest release of the Unity DI container. We have updated it to simplify cross-platform development of apps and services. While this 3.5 release is filled with too many improvements to talk about, I&rsquo;d like to highlight these two:</p>
<ul>
<li><strong>Truly portable class library:</strong> We have transformed the individual platform targeted Unity into a PCL, including support for Windows Store Apps 8.0 and 8.1, Windows Phone Silverlight 8.0 and 8.1, .NET 4.5 and up, and new with this release is support for Xamarin/Mono (<a href="https://docs.xamarin.com/releases/ios/xamarin.ios_7/">Xamarin.iOS v7</a> and <a href="https://docs.xamarin.com/releases/android/xamarin.android_4/xamarin.android_4.10/">Xamarin.Android v4.12</a>). Xamarin support is significant as it makes Unity a truly portable class library, making it simple for C# developers to share code across devices.</li>
<li><strong>Performance improvements:</strong> We have streamlined the internals of Unity without impacting the public-facing API. In running micro-benchmarks, we have consistently seen a performance improvement of Unity core operations by ~60%. We encourage you to do your own perf testing and additionally validate our findings with your data.</li>
</ul>
<p>The official release notes are available from <a href="https://unity.codeplex.com/wikipage?title=Unity3.5ReleaseNotes">here</a>.</p>
<p>Grab the binaries from NuGet.</p>
<p>Enjoy this release of Unity and remember to <a href="https://entlib.codeplex.com/wikipage?title=ContributingCode">send us</a>&nbsp;your pull requests if you have ideas on how to improve it.</p>]]></content:encoded>
    </item>
    <item>
      <title>Simplifying cross-platform development - Unity 3.5 Portable Class Library Preview</title>
      <link>https://docs.microsoft.com/archive/blogs/agile/simplifying-cross-platform-development-unity-3-5-portable-class-library-preview</link>
      <pubDate>Thu, 10 Apr 2014 17:43:00 GMT</pubDate>
      <dc:creator><![CDATA[Grigori Melnik MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/agile/2014/04/10/simplifying-cross-platform-development-unity-3-5-portable-class-library-preview/</guid>
      <description><![CDATA[We are updating Unity DI container to simplify cross-platform development of apps and services. The...]]></description>
      <content:encoded><![CDATA[<p>We are updating Unity DI container to simplify cross-platform development of apps and services. The preview includes the following:</p>
<ul>
<li>Transform the individual platform targeted Unity into a PCL, including support for:</li>
<ul>
<li>Windows Store Apps 8.0 and 8.1</li>
<li>Windows Phone Silverlight 8.0 and 8.1</li>
<li>.NET 4.5 and up</li>
<li>Xamarin/Mono (<a href="https://docs.xamarin.com/releases/ios/xamarin.ios_7/">Xamarin.iOS v7</a> and <a href="https://docs.xamarin.com/releases/android/xamarin.android_4/xamarin.android_4.10/">Xamarian.Android v4.12</a>)</li>
</ul>
<li>Performance improvements</li>
<li>Bug fixes (<a href="https://unity.codeplex.com/workitem/8777">8777</a>, <a href="https://unity.codeplex.com/workitem/10821">10821</a>, <a href="https://unity.codeplex.com/workitem/11044">11044</a>, <a href="https://unity.codeplex.com/workitem/11791">11791</a>, <a href="https://unity.codeplex.com/workitem/11899">11899</a>, <a href="https://unity.codeplex.com/workitem/12635">12635</a>, <a href="https://unity.codeplex.com/workitem/12737">12737</a>, <a href="https://unity.codeplex.com/workitem/12744">12744</a>, <a href="https://unity.codeplex.com/workitem/12745">12745</a>, <a href="https://unity.codeplex.com/workitem/12746">12746</a>, <a href="https://unity.codeplex.com/workitem/12750">12750</a>)</li>
<li>Updating dependency on the latest Common Service Locator PCL (1.2)</li>
</ul>
<p>Note, that the <em>Registration by convention </em>feature needed to be pulled out in a separate dll to provide platform-specific implementations.</p>
<p>Please try out the latest changes &ndash; the signed builds are available via <a href="https://www.myget.org/gallery/entlib-prerelease">myget.org</a> gallery and the source is available on <a href="https://unity.codeplex.com/">CodePlex</a>.</p>
<p>Your feedback is invited!</p>]]></content:encoded>
    </item>
    <item>
      <title>Semantic Logging Application Block now supports activity tracing and Elasticsearch</title>
      <link>https://docs.microsoft.com/archive/blogs/agile/semantic-logging-application-block-now-supports-activity-tracing-and-elasticsearch</link>
      <pubDate>Thu, 27 Mar 2014 13:46:25 GMT</pubDate>
      <dc:creator><![CDATA[Grigori Melnik MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/agile/2014/03/27/semantic-logging-application-block-now-supports-activity-tracing-and-elasticsearch/</guid>
      <description><![CDATA[We are happy to announce the release of the Semantic Logging Application Block (SLAB) v1.1. It has...]]></description>
      <content:encoded><![CDATA[<p>We are happy to announce the release of the <b>Semantic Logging Application Block (SLAB) v1.1</b>. It has exciting new features that will make developers more productive and that help improve your operational intelligence. I want to highlight three in particular:</p>  <ul>   <li>Support for <a href="https://slab.codeplex.com/wikipage?title=ActivityTracingAndSampling">activity tracing</a></li> </ul>  <blockquote>   <p>Support for activity IDs for EventSources is available in .NET 4.5.1. This version of SLAB adds support for capturing and storing in all supported sinks the new <b>ActivityId</b> and <b>RelatedActivityId</b> properties from events published by <b>EventSource</b> classes.</p> </blockquote>  <ul>   <li>Added new <b>EnableEvents</b> and <b>DisableEvents</b> extension methods to the <b>EventListener</b> to configure event listeners using an event source name rather than an event source instance. </li> </ul>  <blockquote>   <p>This allows capturing events from sources that are not publicly accessible, such as those generated by the TPL event provider to indicate activity ID transfers when tasks are used.</p> </blockquote>  <ul>   <li> Added <a href="https://slab.codeplex.com/wikipage?title=ElasticsearchSink">Elasticsearch sink</a></li> </ul>  <blockquote>   <p>A configurable sink to publish log events to <a href="https://www.elasticsearch.org/guide/en/elasticsearch/guide/current/index.html">Elasticsearch</a> server (1.x). The sink can be used in– or out-of-process, and buffers events when writing them to the Elasticsearch server.</p> </blockquote>  <p>For other features, deployment considerations and known issues, I refer you to the official <a href="https://slab.codeplex.com/wikipage?title=SLAB1.1ReleaseNotes">Release Notes</a>.</p>  <p>I’d like to emphasize the fact that the new Elasticsearch sink feature of this release was largely a community-driven effort. This is the first official release of the block after we <a href="https://blogs.msdn.com/b/agile/archive/2013/11/21/microsoft-enterprise-library-open-development-model.aspx">started accepting community pull requests</a>. Big thanks to all <a href="https://aka.ms/entlib-contributors">contributors</a>. With this example of a fruitful collaboration between Microsoft and the developer community, I’d like to encourage other developers to engage with us and help improve SLAB and other p&amp;p deliverables. If interested, our contribution guidelines can be found <a href="https://entlib.codeplex.com/wikipage?title=ContributingCode">here</a>.</p>  <p>SLAB1.1 with the corresponding sinks ships under Apache2.0 license through NuGet. These are the package names:</p>  <ul>   <li>EnterpriseLibrary.SemanticLogging</li>    <li>EnterpriseLibrary.SemanticLogging.Database</li>    <li>EnterpriseLibrary.SemanticLogging.Elasticsearch</li>    <li>EnterpriseLibrary.SemanticLogging.Service</li>    <li>EnterpriseLibrary.SemanticLogging.WindowsAzure</li> </ul>  <p>As always, try it, use it, let us know what you think.</p>]]></content:encoded>
    </item>
    <item>
      <title>Semantic Logging Application Block 1.1 Pre-release</title>
      <link>https://docs.microsoft.com/archive/blogs/agile/semantic-logging-application-block-1-1-pre-release</link>
      <pubDate>Thu, 09 Jan 2014 13:33:00 GMT</pubDate>
      <dc:creator><![CDATA[Grigori Melnik MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/agile/2014/01/09/semantic-logging-application-block-1-1-pre-release/</guid>
      <description><![CDATA[Greetings, EntLib community, and Happy New Year!
Together with the community members, the p&amp;p...]]></description>
      <content:encoded><![CDATA[<p>Greetings, EntLib community, and Happy New Year!</p>
<p>Together with the <a href="https://entlib.codeplex.com/wikipage?title=CommunityContributors">community members</a>, the p&amp;p team has produced an update to the <a href="https://aka.ms/slab">Semantic Logging Application Block (SLAB)</a>. It now includes the support for:</p>
<ul>
<li>Activity Ids (<a href="https://slab.codeplex.com/workitem/5">https://slab.codeplex.com/workitem/5</a>)</li>
<li>Keywords over 32 bits (<a href="https://slab.codeplex.com/workitem/26">https://slab.codeplex.com/workitem/26</a>)</li>
</ul>
<p>Support for Activity Ids for EventSources is available in .NET 4.5.1. This version of SLAB adds support for capturing and storing in all supported sinks the new ActivityId and RelatedActivityId properties from events published by EventSource classes.</p>
<p>Additionally, SLAB adds new EnableEvents and DisableEvents extension methods to the EventListener to configure event listeners using an event source name rather than an event source instance. This allows capturing events from sources which are not publicly accessible, such as those generated by the TPL event provider to indicate activity ID transfers when tasks are used.</p>
<p>We have posted the latest signed NuGet packages to MyGet for you to try. Please provide your feedback to us, we look forward to hearing from you.</p>
<p><strong>The feed URL is </strong><a href="https://www.myget.org/F/entlib-prerelease/"><strong>https://www.myget.org/F/entlib-prerelease/</strong></a></p>]]></content:encoded>
    </item>
    <item>
      <title>Microsoft Enterprise Library - Open Development Model</title>
      <link>https://docs.microsoft.com/archive/blogs/agile/microsoft-enterprise-library-open-development-model</link>
      <pubDate>Thu, 21 Nov 2013 10:00:00 GMT</pubDate>
      <dc:creator><![CDATA[Grigori Melnik MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/agile/2013/11/21/microsoft-enterprise-library-open-development-model/</guid>
      <description><![CDATA[Microsoft Enterprise Library has a long and prominent history. Over the years, it has evolved into a...]]></description>
      <content:encoded><![CDATA[<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/86/66/metablogapi/8510.entlib-for-the-win_4.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-86-66-metablogapi/8510.entlib_2D00_for_2D00_the_2D00_win_5F00_4.png"><img style="margin: 0px 15px 10px 0px; float: left; display: inline; background-image: none;" title="entlib-for-the-win" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/86/66/metablogapi/5270.entlib-for-the-win_thumb_1.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-86-66-metablogapi/5270.entlib_2D00_for_2D00_the_2D00_win_5F00_thumb_5F00_1.png" alt="entlib-for-the-win" width="350" height="233" align="left" border="0" /></a>Microsoft Enterprise Library has a long and prominent history. Over the years, it has evolved into a mature collection of application blocks, each focused on addressing specific cross-cutting concern. New blocks have been introduced, while others become deprecated with the evolution of the .NET Framework and other Microsoft technologies.</p>
<p>In <a href="https://microsoft.com/practices">p&amp;p</a> we highly value openness and transparency, and we always look for opportunities to encourage these values. That&rsquo;s why we are particularly thrilled and proud to announce the <strong>Open Development Model</strong> for all application blocks which make up Microsoft Enterprise Library.</p>
<p>Concretely, this means:</p>
<ol>
<li>Starting Thursday, Nov 21, 2013, we will be accepting community contributions to the codebase (both new features and bug fixes), subject to the <a href="https://entlib.codeplex.com/wikipage?title=ContributingCode">contribution guidelines</a>.</li>
<li>Microsoft patterns &amp; practices continues to staff the project to curate as well as engage in active development and sustained engineering together with the community.</li>
<li>In the spirit of true open source, the p&amp;p project team will use the same process for making updates to the application blocks as any community member. No secret repositories, hidden issue trackers, or internal-only processes.</li>
<li>Our quality bars are not lowered in any way.</li>
</ol>
<p>We target friction-free consumption and contribution:</p>
<ol>
<li>We&rsquo;ve tried to make each block into a small single purpose library to lower the barrier of entry for both use and contributions. Dependencies have been minimized and most blocks can be used independent of one another.</li>
<li>The <a href="https://entlib.codeplex.com">entlib.codeplex.com</a>repo has been refactored and split into 10 individual repos and projects on CodePlex, 8 for the blocks, 1 for the common infrastructure and 1 for the reference implementation:
<ul>
<ul>
<li><a href="https://EntLibCommon.codeplex.com">EntLibCommon.codeplex.com</a></li>
<li><a href="https://Unity.codeplex.com">Unity.codeplex.com</a></li>
<li><a href="https://SLAB.codeplex.com">SLAB.codeplex.com</a></li>
<li><a href="https://LAB.codeplex.com">LAB.codeplex.com</a></li>
<li>
<div align="left"><a href="https://EHAB.codeplex.com">EHAB.codeplex.com</a></div>
</li>
<li><a href="https://DAAB.codeplex.com">DAAB.codeplex.com</a></li>
<li><a href="https://Topaz.codeplex.com">Topaz.codeplex.com</a></li>
<li><a href="https://VAB.codeplex.com">VAB.codeplex.com</a></li>
<li><a href="https://piab.codeplex.com/">PIAB.codeplex.com</a></li>
</ul>
</ul>
</li>
<li>Each project site contains a dedicated product backlog and discussions forum.</li>
</ol>
<p>We are also working out a process for community contributions to our written guidance and hands-on labs. We welcome your ideas on what would work for you.</p>
<p>Thank you for reading this far. Now, what are you waiting for? Go and submit your pull requests!</p>]]></content:encoded>
    </item>
    <item>
      <title>Enterprise Library 6: Developer’s Guide Released</title>
      <link>https://docs.microsoft.com/archive/blogs/agile/enterprise-library-6-developers-guide-released</link>
      <pubDate>Fri, 15 Nov 2013 15:41:00 GMT</pubDate>
      <dc:creator><![CDATA[Grigori Melnik MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/agile/2013/11/15/enterprise-library-6-developers-guide-released/</guid>
      <description><![CDATA[Just in time for the MVP Global Summit, I&rsquo;m excited to announce the second edition of our...]]></description>
      <content:encoded><![CDATA[<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/86/66/metablogapi/5270.EntLib%20Dev%20Guide%202e%20cover_2.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-86-66-metablogapi/5270.EntLib-Dev-Guide-2e-cover_5F00_2.png"><img style="margin: 0px 10px 10px 1px; border: 0px currentcolor; float: left; display: inline; background-image: none;" title="EntLib Dev Guide 2e cover" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/86/66/metablogapi/7838.EntLib%20Dev%20Guide%202e%20cover_thumb.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-86-66-metablogapi/7838.EntLib-Dev-Guide-2e-cover_5F00_thumb.png" alt="EntLib Dev Guide 2e cover" width="300" height="378" align="left" border="0" /></a>Just in time for the MVP Global Summit, I&rsquo;m excited to announce the second edition of our guide-primer on the latest <a href="https://msdn.microsoft.com/en-us/library/dn169621.aspx">Microsoft Enterprise Library</a>. The guide explains the concepts that drove development of the blocks, the kinds of tasks they can accomplish, and how they help you implement many well-known design patterns. And, of course, it explains &mdash; by way of code extracts and sample programs &mdash; how you can actually use the blocks in your applications.</p>
<p>Keep in mind, the guide focuses on the following application blocks:</p>
<p>&minus; <strong>Data Access</strong> Application Block <br />&minus; <strong>Exception Handling</strong> Application Block <br />&minus; <strong>Transient Fault Handling</strong> Application Block <br />&minus; <strong>Logging</strong> Application Block <br />&minus; <strong>Semantic Logging</strong> Application Block <br />&minus; <strong>Policy Injection</strong> Application Block <br />&minus; <strong>Validation</strong> Application Block.</p>
<p><strong>Unity </strong>Application Block and <strong>Unity Interception</strong> are covered in a separate sister <a href="https://blogs.msdn.com/b/agile/archive/2013/08/20/new-guide-dependency-injection-with-unity.aspx">guide on Dependency Injection with Unity</a> which we released in August.</p>
<p>Both guides illustrate the usage of the application blocks in the context of individual code snippets and the larger reference implementation.</p>
<p>In the words of S. Somasegar, Corporate Vice-President, Microsoft Developer Division, who has written the foreword:</p>
<blockquote>
<p>&ldquo;<em>This guide is an absolute must read for anybody looking to put Enterprise Library into practice. Its clear and pragmatic advice is invaluable.</em>&rdquo;</p>
</blockquote>
<p>Here&rsquo;s how to get it:</p>
<p>&minus; <a href="https://download.microsoft.com/download/D/2/0/D204F45F-4B44-4A0D-BC08-F9FA10BA0896/Developer's%20Guide%20to%20Microsoft%20Enterprise%20Library%20-%202nd%20Edition.pdf">PDF</a> (free download)</p>
<p>&minus; <a href="https://download.microsoft.com/download/D/2/0/D204F45F-4B44-4A0D-BC08-F9FA10BA0896/Developer's%20Guide%20to%20Microsoft%20Enterprise%20Library%20-%202nd%20Edition.epub">EPUB</a> (free download)</p>
<p>&minus; <a href="https://amzn.to/1bCBzib">Paperback</a> via Amazon</p>
<p>&minus; <a href="https://amzn.to/1bBeqN4">Kindle edition</a> via Amazon</p>]]></content:encoded>
    </item>
    <item>
      <title>Learn Enterprise Library 6 and Unity 3 with newly released hands-on labs</title>
      <link>https://docs.microsoft.com/archive/blogs/agile/learn-enterprise-library-6-and-unity-3-with-newly-released-hands-on-labs</link>
      <pubDate>Tue, 17 Sep 2013 20:47:00 GMT</pubDate>
      <dc:creator><![CDATA[Grigori Melnik MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/agile/2013/09/17/learn-enterprise-library-6-and-unity-3-with-newly-released-hands-on-labs/</guid>
      <description><![CDATA[Download full set of Hands-on Labs for Enterprise Library 6  &#160;  Download Unity 3 Hands-on Labs...]]></description>
      <content:encoded><![CDATA[<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/86/66/metablogapi/8875.clip_image001_4.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-86-66-metablogapi/8875.clip_5F00_image001_5F00_4.png"><img title="clip_image001" style="border: 0px currentcolor; display: inline; background-image: none;" border="0" alt="clip_image001" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/86/66/metablogapi/8206.clip_image001_thumb.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-86-66-metablogapi/8206.clip_5F00_image001_5F00_thumb.png" width="37" height="43" /></a><a href="https://download.microsoft.com/download/B/7/6/B762FC10-0F7C-4874-9B88-53E6C9E64DBC/Enterprise%20Library%206%20-%20Hands-on%20Labs.zip">Download full set of Hands-on Labs for Enterprise Library 6</a></p>  <p>&#160;</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/86/66/metablogapi/1856.clip_image001[1].png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-86-66-metablogapi/1856.clip_5F00_image001_5B00_1_5D00_.png"><img title="clip_image001[1]" style="border: 0px currentcolor; display: inline; background-image: none;" border="0" alt="clip_image001[1]" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/86/66/metablogapi/3426.clip_image001[1]_thumb.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-86-66-metablogapi/3426.clip_5F00_image001_5B00_1_5D005F00_thumb.png" width="37" height="43" /></a><a href="https://www.microsoft.com/en-us/download/details.aspx?id=40287">Download Unity 3 Hands-on Labs only</a></p>  <p>&#160;</p>  <p>This release complements the <a href="https://aka.ms/el6announce">recent releases of Enterprise Library 6 and Unity 3</a>. </p>  <p>The comprehensive labs were created by developers for developers. They will be useful both to those who are new to Enterprise Library and those who are experienced with previous versions of Enterprise Library and would like to learn the new application blocks.</p>  <p>The labs will guide you through common scenarios of using EntLib and Unity in various application contexts, including advanced ones. They should help reduce errors and promote faster skill acquisition.</p>  <p>The labs may also be of value to trainers and academics, since they can be used as teaching aids in the classes devoted to Enterprise Library specifically or in courses on Component-Based Software Engineering, Code Re-use, Enterprise Application Development, or Aspect-Oriented Programming.</p>  <p>We encourage you to experiment with the sample code and think beyond the scenarios discussed in the labs.</p>  <p> Inside this set are 46 labs covering:</p>  <p><b>Data Access:</b></p>  <p>− Lab 1: Dynamic SQL with the Data Access Application Block</p>  <p>− Lab 2: Stored Procedures and Updates with the Data Access Application Block</p>  <p>− Lab 3: Encrypting Connection Information</p>  <p>− Lab 4: Retrieving data using Data Accessors with the Data Access Application Block</p>  <p>− Lab 5: Performing asynchronous data access with the Data Access Application Block</p>  <p><b>Exception Handling:</b></p>  <p>− Lab 1: Logging Exceptions</p>  <p>− Lab 2: Exception Handling Strategies</p>  <p><b>Transient Fault Handling:</b></p>  <p>− Lab 1: Using the Transient Fault Handling Application Block</p>  <p>− Lab 2: Using the Transient Fault Handling Application Block Asynchronously</p>  <p><b>Logging:</b></p>  <p>− Lab 1: Add Logging to an Application</p>  <p>− Lab 2: Create and Use an Asynchronous Trace Listener</p>  <p>− Lab 3: Reconfigure Logging at Run Time</p>  <p>− Lab 4: Create and Use a Custom Trace Listener</p>  <p>− Lab 5: Create and Use a Custom Log Formatter</p>  <p><b>Semantic Logging:</b></p>  <p>− Lab 1: Creating and Using an Event Source</p>  <p>− Lab 2: Sending Event Messages to Windows Azure Storage</p>  <p>− Lab 3: Testing an Event Source</p>  <p><b>Data Validation:</b></p>  <p>− Lab 1: Adding Validation</p>  <p>− Lab 2: Consuming Validation Results</p>  <p>− Lab 3: Validating Object Graphs</p>  <p>− Lab 4: Using Custom Message Templates for Validation Failures</p>  <p>− Lab 5: Specifying Validation Rules Through Configuration</p>  <p>− Lab 6: Using Rule Sets</p>  <p>− Lab 7: Integrating with Windows Forms</p>  <p>− Lab 8: Implementing Self Validation</p>  <p>− Lab 9: Implementing a Custom Validator</p>  <p>− Lab 10: Using a Custom Validator Through Configuration</p>  <p>− Lab 11: Implementing a Custom Validator with Design-Time Support</p>  <p>− Lab 12: Integrating with ASP.NET</p>  <p>− Lab 13: Integrating with WCF</p>  <p>− Lab 14: WPF Integration</p>  <p><b>Unity:</b></p>  <p>− Lab 1: Using a Unity Container</p>  <p>− Lab 2: Configuring Injection Using the Configuration API</p>  <p>− Lab 3: Using a Configuration File to Set Up a Container</p>  <p>− Lab 4: Configuring Containers</p>  <p>− Lab 5: Integrating with ASP.NET and Child Containers</p>  <p>− Lab 6: Integrating with ASP.NET MVC and Registration by Convention</p>  <p><b>Interception:</b></p>  <p>− Lab 1: Set Up Interception by Using the Stand-alone Interception API</p>  <p>− Lab 2: Use a Unity Container to Perform Interception</p>  <p>− Lab 3: Use Interface Interception</p>  <p>− Lab 4: Set Up Interception Using the Configuration File</p>  <p>− Lab 5: Create a Custom Interception Behavior</p>  <p>− Lab 6: Set Up Policy Injection Using Attributes</p>  <p>− Lab 7: Set Up Policy Injection Using the Streamlined Interception Configuration API</p>  <p>− Lab 8: Set Up Policy Injection Using the Configuration File</p>  <p>− Lab 9: Implement a Custom Call Handler</p>  <p>− Lab 10: Use the Policy Injection Application Block to Perform Interception</p>  <p>Don’t forget about additional learning resources available:</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/86/66/metablogapi/6746.clip_image002_4.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-86-66-metablogapi/6746.clip_5F00_image002_5F00_4.png"><img title="clip_image002" style="border: 0px currentcolor; display: inline; background-image: none;" border="0" alt="clip_image002" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/86/66/metablogapi/3857.clip_image002_thumb.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-86-66-metablogapi/3857.clip_5F00_image002_5F00_thumb.png" width="35" height="45" /></a><a href="https://blogs.msdn.com/b/agile/archive/2013/08/20/new-guide-dependency-injection-with-unity.aspx">Dependency Injection with Unity</a></p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/86/66/metablogapi/6177.clip_image002[1].png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-86-66-metablogapi/6177.clip_5F00_image002_5B00_1_5D00_.png"><img title="clip_image002[1]" style="border: 0px currentcolor; display: inline; background-image: none;" border="0" alt="clip_image002[1]" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/86/66/metablogapi/6683.clip_image002[1]_thumb.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-86-66-metablogapi/6683.clip_5F00_image002_5B00_1_5D005F00_thumb.png" width="35" height="45" /></a>Developer’s Guide to Enterprise Library, 2nd edition (preview available <a href="https://entlib.codeplex.com/downloads/get/668950">here</a>; final version to be published in Oct 2013)</p>  <p>Happy learning!</p>]]></content:encoded>
    </item>
    <item>
      <title>Unity DI Container now supports Windows Phone</title>
      <link>https://docs.microsoft.com/archive/blogs/agile/unity-di-container-now-supports-windows-phone</link>
      <pubDate>Thu, 29 Aug 2013 13:03:16 GMT</pubDate>
      <dc:creator><![CDATA[Grigori Melnik MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/agile/2013/08/29/unity-di-container-now-supports-windows-phone/</guid>
      <description><![CDATA[Upon numerous requests from Unity users, we have ported Unity DI Container to Windows Phone 8. The...]]></description>
      <content:encoded><![CDATA[<p>Upon numerous requests from Unity users, we have ported Unity DI Container to Windows Phone 8. The <a href="https://www.nuget.org/packages/Unity/">Unity NuGet package</a> has been updated as follows:</p>  <ul>   <li>The .NET version of Unity remains intact.</li>    <li>The NetCore version (for Windows Store apps) was recompiled, because there was a small change needed to have code parity with Windows Phone - we rebuilt it for the symbols to match the source code.</li>    <li>The WP8 version is new.</li> </ul>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/86/66/metablogapi/7357.unity_2.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-86-66-metablogapi/7357.unity_5F00_2.png"><img title="unity" style="border: 0px currentcolor; display: inline; background-image: none;" border="0" alt="unity" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/86/66/metablogapi/0005.unity_thumb.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-86-66-metablogapi/0005.unity_5F00_thumb.png" width="640" height="382" /></a></p>  <p>Happy coding!</p>  <p>- Grigori</p>]]></content:encoded>
    </item>
    <item>
      <title>New Guide: Dependency Injection with Unity</title>
      <link>https://docs.microsoft.com/archive/blogs/agile/new-guide-dependency-injection-with-unity</link>
      <pubDate>Tue, 20 Aug 2013 17:24:00 GMT</pubDate>
      <dc:creator><![CDATA[Grigori Melnik MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/agile/2013/08/20/new-guide-dependency-injection-with-unity/</guid>
      <description><![CDATA[About 20 years ago, Grady Booch, a world renowned software development visionary, stated in his...]]></description>
      <content:encoded><![CDATA[<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/86/66/metablogapi/4520.image_2.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-86-66-metablogapi/4520.image_5F00_2.png"><img style="margin: 0px 20px 9px 0px; border: 0px currentcolor; float: left; display: inline; background-image: none;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/86/66/metablogapi/5618.image_thumb.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-86-66-metablogapi/5618.image_5F00_thumb.png" alt="image" width="300" height="357" align="left" border="0" /></a>About 20 years ago, Grady Booch, a world renowned software development visionary, stated in his essay <a href="https://dl.acm.org/citation.cfm?id=625400">Coming of Age in an Object-Oriented World</a> that <em>&ldquo;our ability to imagine complex applications will always exceed our ability to create them&rdquo;</em>. Reflecting on this prediction today, we can see how software systems have evolutionarily become more and more complex. One of the techniques for dealing with this inherent complexity of software systems is <strong>dependency injection</strong> &ndash; a design pattern that allows the removal of hard-coded dependencies and makes it possible to assemble a service by changing dependencies easily, whether at run-time or compile-time. It promotes code reuse and loosely-coupled design which leads to more easily maintainable and flexible code.</p>
<p>I&rsquo;m excited to announce our new guide-primer on using dependency injection with <strong>Unity</strong> &ndash; a lightweight extensible dependency injection container built by the Microsoft patterns &amp; practices team. It covers various styles of dependency injection and also additional capabilities of Unity container, such as object lifetime management, interception, and registration by convention. It also discusses the advanced topics of enhancing Unity with your custom extensions.</p>
<p>The guide contains plenty of trade-off discussions and tips and tricks for managing your application cross-cutting concerns and making the most out of both dependency injection and Unity. These are accompanied by a real world example that will help you master the techniques. Keep in mind that Unity can be used in a wide range of application types such as desktop, web, services, and cloud. I encourage you to experiment with the sample code and think beyond the scenarios discussed in the guide.</p>
<p>In addition, the guide includes the Tales from the Trenches &ndash; a collection of case studies that offer a different perspective through the eyes of developers working on the real world projects and sharing their experiences. These chapters make clear the range of scenarios in which you can use Unity, and also highlight its ease of use and flexibility.</p>
<p>Whether you are a seasoned developer or just starting your development journey, we hope this guide will be worth your time studying it. We hope you discover that Unity container adds significant benefits to your applications and helps you to achieve the goals of maintainability, testability, flexibility, and extensibility in your own projects.</p>
<p>Chris Tavares, my colleague and co-creator of Unity, has written the foreword for the guide. Follow his advice:</p>
<blockquote>
<p><em>&ldquo;I&rsquo;m thrilled to see this book published. For the first time, there&rsquo;s one place you can look for both the concepts of DI and how to apply those concepts using the Unity container.&nbsp; </em><em>Read the book, embrace the concepts, and enjoy the world of loosely coupled, highly cohesive software that DI makes so easy to build!&rdquo;</em></p>
</blockquote>
<p>Here&rsquo;s how to get it:</p>
<p>&minus; <a href="https://download.microsoft.com/download/4/D/B/4DBC771D-9E24-4211-ADC5-65812115E52D/DependencyInjectionWithUnity.pdf">PDF</a> (free download)</p>
<p>&minus; <a href="https://download.microsoft.com/download/4/D/B/4DBC771D-9E24-4211-ADC5-65812115E52D/DependencyInjectionWithUnity.epub">EPUB</a> (free download)</p>
<p>&minus; <a href="https://www.amazon.com/gp/product/1621140288/ref=as_li_qf_sp_asin_il_tl?ie=UTF8&amp;camp=1789&amp;creative=9325&amp;creativeASIN=1621140288&amp;linkCode=as2&amp;tag=msdn_blog-20">Paperback via Amazon</a></p>
<p>&minus; <a href="https://amzn.to/18ytpGd">Kindle edition via Amazon</a></p>]]></content:encoded>
    </item>
  </channel>
</rss>