{"id":13966,"date":"2017-08-01T09:00:59","date_gmt":"2017-08-01T16:00:59","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/dotnet\/?p=13966"},"modified":"2021-09-29T16:44:16","modified_gmt":"2021-09-29T23:44:16","slug":"the-week-in-net-nuke-warden-net-net-in-bangalore-and-links","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/dotnet\/the-week-in-net-nuke-warden-net-net-in-bangalore-and-links\/","title":{"rendered":"The week in .NET &#8211; Nuke, Warden.NET, .NET in Bangalore, and links!"},"content":{"rendered":"<p>Previous posts:<\/p>\n<ul>\n<li><a href=\"https:\/\/blogs.msdn.microsoft.com\/dotnet\/2017\/07\/26\/the-week-in-net-mist-f-in-nyc-and-links\/\">MIST, F# in NYC, and links<\/a><\/li>\n<li><a href=\"https:\/\/devblogs.microsoft.com\/dotnet\/the-week-in-net-command-line-parser-library-net-south-east\/\">Command Line Parser Library, .NET South East<\/a><\/li>\n<li><a href=\"https:\/\/blogs.msdn.microsoft.com\/dotnet\/2017\/07\/11\/the-week-in-net-links-2\/\">Links!<\/a><\/li>\n<\/ul>\n<h2>Tool of the week: Nuke<\/h2>\n<p><a href=\"http:\/\/www.nuke.build\/\">Nuke<\/a> is a cross-platform build automation system with C# DSL, much like <a href=\"http:\/\/cakebuild.net\/\">Cake<\/a>. It features auto-completion, refactoring, and navigation in all IDEs. Nuke avoids complexity, and integrates as a normal project.<\/p>\n<pre><code class=\"language-csharp\">[Parameter] string MyGetApiKey;\n\nTarget Publish =&gt; _ =&gt; _\n        .Requires(() =&gt; MyGetApiKey)\n        .OnlyWhen(() =&gt; IsServerBuild)\n        .DependsOn(Pack)\n        .Executes(() =&gt; GlobFiles(OutputDirectory \/ &quot;packages&quot;, &quot;*.nupkg&quot;)\n                .ForEach(x =&gt; NuGetPush(s =&gt; s\n                        .SetTargetPath(x)\n                        .SetVerbosity(NuGetVerbosity.Detailed)\n                        .SetApiKey(MyGetApiKey)\n                        .SetSource(&quot;https:\/\/www.myget.org\/F\/nukebuild\/api\/v2\/package&quot;))));\n<\/code><\/pre>\n<ul>\n<li><a href=\"http:\/\/www.nuke.build\/\">The Nuke web site<\/a><\/li>\n<\/ul>\n<h2>Package of the week: Warden.NET<\/h2>\n<p>The System.Diagnostics.Process class while useful does not have a concept for parent applications; while Windows itself does track parents, it does not track grandparents and processes can quickly become orphaned. Which is where Warden comes in. Warden.NET is a simple to use library for managing processes and their states.<\/p>\n<pre><code class=\"language-csharp\">WardenManager.Initialize();\nvar wardenTest = await WardenProcess.Start(&quot;notepad.exe&quot;, string.Empty, ProcessTypes.Win32);\nif (wardenTest != null)\n{\n    wardenTest.OnStateChange += delegate (object sender, StateEventArgs args)\n    {\n        Console.WriteLine($&quot;---\\nName: {wardenTest.Name}\\nId: {wardenTest.Id}\\nstate changed to {args.State}\\n---&quot;);\n    };\n}\n<\/code><\/pre>\n<ul>\n<li><a href=\"https:\/\/blog.rainway.io\/tracking-and-managing-processes-on-windows-be9d95602b54\">Tracking and Managing Processes on Windows with Warden.NET<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/RainwayApp\/warden\/\">Warden.NET on GitHub<\/a><\/li>\n<li><a href=\"https:\/\/www.nuget.org\/packages\/Warden\/\">Warden.NET on Nuget<\/a><\/li>\n<\/ul>\n<h2>User group meeting of the week: .NET day in Bangalore<\/h2>\n<p><a href=\"https:\/\/www.meetup.com\/DotNetBLR\/\">The .NET Bangalore user group<\/a> has <a href=\"https:\/\/www.meetup.com\/DotNetBLR\/events\/236111765\/\">a full day event on Saturday, August 5<\/a> with a great agenda: ES6 for .NET developers, .NET Core WebAPI, ASP.NET Core, and AI with .NET.<\/p>\n<h2>.NET<\/h2>\n<ul>\n<li><a href=\"https:\/\/blogs.msdn.microsoft.com\/dotnet\/2017\/07\/26\/the-new-net-application-architecture-guidance\/\">.NET Application Architecture Guidance<\/a> by Cesar de la Torre.<\/li>\n<li><a href=\"https:\/\/codeopinion.com\/testing-a-cake-addin\/\">Testing a Cake Addin<\/a> by Derek Comartin.<\/li>\n<li><a href=\"https:\/\/jeremylindsayni.wordpress.com\/2017\/07\/31\/using-net-core-2-to-read-serial-data-from-an-arduino-uno-over-usb\/\">Using .NET Core 2 to read serial data from an Arduino UNO over USB<\/a> by Jeremy Lindsay.<\/li>\n<li><a href=\"https:\/\/blogs.technet.microsoft.com\/uktechnet\/2017\/07\/25\/top-5-net-exceptions\/\">Top 5 .NET Exceptions<\/a> by Liam Westley.<\/li>\n<li><a href=\"https:\/\/ayende.com\/blog\/179137\/building-a-query-parser-over-a-weekend-part-ii?Key=859f407c-8753-4bd0-9f9c-359eab8484c7\">Building a query parser over a weekendPart II<\/a> by Ayende Rahien.<\/li>\n<li><a href=\"http:\/\/aakinshin.net\/blog\/post\/reflecting-on-performance-testing\/\">Reflecting on performance testing<\/a> by Andrey Akinshin.<\/li>\n<\/ul>\n<h2>ASP.NET<\/h2>\n<ul>\n<li><a href=\"https:\/\/devblogs.microsoft.com\/dotnet\/introducing-support-for-brotli-compression\/\">Introducing Support for Brotli Compression<\/a> by Denys Tsomenko.<\/li>\n<li><a href=\"https:\/\/www.hanselman.com\/blog\/PeachpieOpenSourcePHPCompilerToNETAndWordPressUnderASPNETCore.aspx\">Peachpie &#8211; Open Source PHP Compiler to .NET and WordPress under ASP.NET Core<\/a> by Scott Hanselman.<\/li>\n<li><a href=\"http:\/\/www.c-sharpcorner.com\/article\/creating-web-api-with-asp-net-core-using-visual-studio-code\/\">Creating Web API With ASP.NET Core Using Visual Studio Code<\/a> by Ahmed Abdi.<\/li>\n<li><a href=\"http:\/\/www.jerriepelser.com\/blog\/accessing-tokens-aspnet-core-2\/\">In ASP.NET Core 1.1<\/a> by Jerrie Pelser.<\/li>\n<li><a href=\"https:\/\/andrewlock.net\/customising-asp-net-core-identity-ef-core-naming-conventions-for-postgresql\/\">Customising ASP.NET Core Identity EF Core naming conventions for PostgreSQL<\/a> by Andrew Lock.<\/li>\n<li><a href=\"https:\/\/visualstudiomagazine.com\/articles\/2017\/07\/01\/testserver.aspx\">In-Memory ASP.NET Core Integration Tests with TestServer<\/a> by Jason Roberts.<\/li>\n<li><a href=\"https:\/\/codingblast.com\/asp-net-core-mvc-custom-tag-helpers\/\">ASP.NET Core MVC \u2013 Custom Tag Helpers<\/a> by Ibrahim \u0160uta.<\/li>\n<li><a href=\"https:\/\/codingblast.com\/asp-net-core-razor-pages-handlers\/\">ASP.NET Core Razor Pages \u2013 Handler Methods<\/a> by Ibrahim \u0160uta.<\/li>\n<li><a href=\"https:\/\/garywoodfine.com\/redis-inmemory-cache-asp-net-mvc-core\/\">Redis InMemory Cache in ASP.net MVC Core<\/a> by Gary Woodfine.<\/li>\n<li><a href=\"https:\/\/blog.maartenballiauw.be\/post\/2017\/08\/01\/building-a-scheduled-cache-updater-in-aspnet-core-2.html\">Building a scheduled task in ASP.NET Core\/Standard 2.0<\/a> by Maarten Balliauw.<\/li>\n<li><a href=\"https:\/\/carlos.mendible.com\/2017\/07\/26\/run-asp-net-core-on-openshift\/\">Run ASP.NET Core on OpenShift<\/a> by Carlos Mendible.<\/li>\n<li><a href=\"https:\/\/www.meziantou.net\/2017\/07\/20\/validating-user-with-cookie-authentication-in-asp-net-core-2\">Validating user with cookie authentication in ASP.NET Core 2<\/a> by G\u00e9rald Barr\u00e9.<\/li>\n<\/ul>\n<h2>C#<\/h2>\n<ul>\n<li><a href=\"http:\/\/www.andreaangella.com\/2017\/07\/practical-csharp-implementing-equality\/\">Practical C# \u2013 Implementing Equality<\/a> by Andrea Angella.<\/li>\n<li><a href=\"https:\/\/devblogs.microsoft.com\/oldnewthing\/\">If there is no difference between two options, choose the one that is easier to debug<\/a> by Raymond Chen.<\/li>\n<li><a href=\"http:\/\/www.productiverage.com\/trying-to-set-a-readonly-autoproperty-value-externally-plus-a-little-benchmarkdotnet\">Trying to set a readonly auto-property value externally (plus, a little BenchmarkDotNet)<\/a> by Dan Roberts.<\/li>\n<li><a href=\"http:\/\/blog.mjjames.co.uk\/2017\/07\/its-little-things.html\">Michael James &#8211; Developer<\/a> by Michael James.<\/li>\n<li><a href=\"http:\/\/dailydotnettips.com\/2017\/07\/31\/directly-throw-exception-as-an-expression-throw-expressions-in-c-7-0\/\">Directly throw Exception as an Expression \u2013 Throw expressions in C# 7.0<\/a> by Abhijit Jana.<\/li>\n<li><a href=\"http:\/\/davidpine.net\/blog\/csharp-seven-dot-one\/\">Perusing C# 7.1<\/a> by David Pine.<\/li>\n<li><a href=\"https:\/\/www.meziantou.net\/2017\/07\/31\/suppress-use-throw-expression-suggestion\">Suppress &quot;Use &#8216;throw&#8217; expression&quot; suggestion<\/a> by G\u00e9rald Barr\u00e9.<\/li>\n<\/ul>\n<h2>F#<\/h2>\n<ul>\n<li><a href=\"https:\/\/www.youtube.com\/watch?v=c7eNDJN758U&amp;feature=youtu.be\">F# Tutorial<\/a> by Derek Banas.<\/li>\n<li><a href=\"http:\/\/geekeh.com\/experimenting-with-partial-application\/\">Experimenting with Partial Application<\/a> by Shane Charles.<\/li>\n<li><a href=\"http:\/\/julienblanchard.com\/2017\/getting-started-with-fsharp-and-dotnet-core\/\">Getting started with F# and .NET Core<\/a> by Julien Blanchard.<\/li>\n<li><a href=\"http:\/\/kalapos.net\/Blog\/ShowPost\/BackTestingWithFSharp\">Does it make sense to invest into the stock market at all-time highs? Answered with F# on .NET Core<\/a> by Gergely Kalapos.<\/li>\n<li><a href=\"http:\/\/www.mindbodysouldeveloper.com\/2017\/07\/17\/when-to-use-a-discriminated-union-vs-record-type-in-f-sharp\/\">When to use a Discriminated Union vs Record Type in F#<\/a> by Jose Gonzalez.<\/li>\n<li><a href=\"http:\/\/www.prigrammer.com\/?p=489\">Two Tetromino Tetris with Fable and F#<\/a> by Tom Prior.<\/li>\n<\/ul>\n<p>There is more content available this week in <a href=\"https:\/\/sergeytihon.wordpress.com\/category\/f-weekly\/\">F# Weekly<\/a>. If you want to see more F# awesomeness, please check it out!<\/p>\n<h2>Xamarin<\/h2>\n<ul>\n<li><a href=\"http:\/\/www.jon-douglas.com\/2017\/07\/20\/proguard-notes\/\">Xamarin.Android Proguard Notes<\/a> by Jon Douglas.<\/li>\n<li><a href=\"https:\/\/alexdunn.org\/2017\/07\/24\/xamarin-tip-borderless-picker\/\">Xamarin.Tip \u2013 Borderless Picker<\/a> by Alex Dunn.<\/li>\n<li><a href=\"https:\/\/alexdunn.org\/2017\/07\/25\/xamarin-tip-borderless-datepicker\/\">Xamarin.Tip \u2013 Borderless DatePicker<\/a> by Alex Dunn.<\/li>\n<li><a href=\"http:\/\/nmilcoff.com\/2017\/07\/10\/stop-toggling-isbusy-with-notifytask\/\">Stop toggling IsBusy with NotifyTask!<\/a> by Nico.<\/li>\n<li><a href=\"https:\/\/blog.xamarin.com\/?p=32646&amp;preview=1&amp;_ppp=fc271eb8e4\">A Beginners Guide for Contributing to Xamarin.Forms<\/a> by David Ortinau.<\/li>\n<li><a href=\"https:\/\/blog.xamarin.com\/building-xamarin-forms-nuget\/\">Building the Xamarin.Forms NuGet<\/a> by David Ortinau.<\/li>\n<li><a href=\"https:\/\/blog.xamarin.com\/installing-visual-studio-2017-made-easy\/\">Installing Visual Studio 2017 Made Easy<\/a> by Mayur Tendulkar.<\/li>\n<li><a href=\"https:\/\/xamarinhelp.com\/tracking-memory-leaks-xamarin-profiler-part-2\/\">Tracking Memory Leaks In Xamarin With The Profiler \u2013 Part 2<\/a> by Adam Pedley.<\/li>\n<li><a href=\"https:\/\/xamgirl.com\/prism-in-xamarin-forms-step-by-step-part-2\/\">Prism in Xamarin Forms Step by Step (Part. 2)<\/a> by Charlin Agramonte.<\/li>\n<li><a href=\"https:\/\/www.mvvmcross.com\/mvvmcross-51-release\/\">Announcing MvvmCross 5.1!<\/a> by MvvmCross.<\/li>\n<li><a href=\"https:\/\/www.infragistics.com\/community\/blogs\/infragistics\/archive\/2017\/07\/20\/live-updates-to-the-xamarin-grid.aspx\">Show Live Updates to Your Xamarin Grids<\/a> by Infragistics.<\/li>\n<\/ul>\n<h2>Azure<\/h2>\n<ul>\n<li><a href=\"https:\/\/azure.microsoft.com\/en-us\/resources\/samples\/active-directory-dotnet-webapi-onbehalfof\/\">Calling a downstream web API from a web API using Azure AD<\/a> by Jean-Marc Prieur.<\/li>\n<li><a href=\"https:\/\/azure.microsoft.com\/en-us\/resources\/samples\/functions-dotnet-migrating-console-apps\/\">Run Console Apps on Azure Functions<\/a> by Azure Team.<\/li>\n<li><a href=\"https:\/\/blog.kloud.com.au\/2017\/07\/24\/is-your-serverless-application-testable-azure-logic-apps\/\">Is Your Serverless Application Testable? \u2013 Azure Logic Apps<\/a> by Justin Yoo.<\/li>\n<\/ul>\n<h2>UWP<\/h2>\n<ul>\n<li><a href=\"https:\/\/blogs.windows.com\/buildingapps\/2017\/07\/28\/restart-app-programmatically\/#oqVq2U7hhCPrDkU0.97\">How to Restart your App Programmatically<\/a> by Andrew Whitechapel.<\/li>\n<li><a href=\"http:\/\/dotnetbyexample.blogspot.com\/2017\/07\/create-geographical-map-on-floor-in.html\">Creating a geographical map on the floor in your Hololens \/ Windows MR app<\/a> by Joost van Schaik.<\/li>\n<li><a href=\"http:\/\/www.tozon.info\/blog\/post\/2017\/07\/28\/Text-To-Speech-with-Windows-10-Iot-Core-UWP-on-Raspberry-Pi\">Text-To-Speech with Windows 10 Iot Core &amp; UWP on Raspberry Pi<\/a> by Andrej Tozon.<\/li>\n<li><a href=\"http:\/\/blog.jerrynixon.com\/2017\/07\/login-to-your-uwp-with-your-msa.html\">Login to your UWP with your MSA<\/a> by Jerry Nixon.<\/li>\n<\/ul>\n<p>And this is it for this week!<\/p>\n<h2>Contribute to the week in .NET<\/h2>\n<p>As always, this weekly post couldn&#8217;t exist without community contributions, and I&#8217;d like to thank all those who sent links and tips. The F# section is provided by <a href=\"https:\/\/twitter.com\/_cartermp\">Phillip Carter<\/a>, the gaming section by <a href=\"https:\/\/twitter.com\/yecats131\">Stacey Haffner<\/a>, the Xamarin section by <a href=\"https:\/\/twitter.com\/DanRigby\">Dan Rigby<\/a>, and the Azure and UWP section by <a href=\"http:\/\/twitter.com\/mbcrump\">Michael Crump<\/a>.<\/p>\n<p>You can participate too. Did you write a great blog post, or just read one? Do you want everyone to know about an amazing new contribution or a useful library? Did you make or play a great game built on .NET?\nWe&#8217;d love to hear from you, and feature your contributions on future posts. Please <a href=\"https:\/\/weekindotnet.azurewebsites.net\">add your posts<\/a>, it takes only a second.<\/p>\n<p>We pick the articles based on the following criteria: the posts must be about .NET, they must have been published this week, and they must be original contents. Publication in Week in .NET is not an endorsement from Microsoft or the authors of this post.<\/p>\n<p>This week&#8217;s post (and future posts) also contains news I first read on <a href=\"https:\/\/blogs.msdn.microsoft.com\/webdev\/tag\/communitystandup\/\">The ASP.NET Community Standup<\/a>, on <a href=\"http:\/\/weeklyxamarin.com\/\">Weekly Xamarin<\/a>, on <a href=\"https:\/\/sergeytihon.wordpress.com\/category\/f-weekly\/\">F# weekly<\/a>, and on <a href=\"http:\/\/themorningbrew.net\/\">The Morning Brew<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Previous posts: MIST, F# in NYC, and links Command Line Parser Library, .NET South East Links! Tool of the week: Nuke Nuke is a cross-platform build automation system with C# DSL, much like Cake. It features auto-completion, refactoring, and navigation in all IDEs. Nuke avoids complexity, and integrates as a normal project. [Parameter] string MyGetApiKey; [&hellip;]<\/p>\n","protected":false},"author":347,"featured_media":58792,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[685],"tags":[4,51,153],"class_list":["post-13966","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dotnet","tag-net","tag-community","tag-week-in-net"],"acf":[],"blog_post_summary":"<p>Previous posts: MIST, F# in NYC, and links Command Line Parser Library, .NET South East Links! Tool of the week: Nuke Nuke is a cross-platform build automation system with C# DSL, much like Cake. It features auto-completion, refactoring, and navigation in all IDEs. Nuke avoids complexity, and integrates as a normal project. [Parameter] string MyGetApiKey; [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/posts\/13966","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/users\/347"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/comments?post=13966"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/posts\/13966\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/media\/58792"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/media?parent=13966"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/categories?post=13966"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/tags?post=13966"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}