{"id":18566,"date":"2016-01-05T13:02:55","date_gmt":"2016-01-05T13:02:55","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/dotnet\/2016\/01\/05\/the-week-in-net-152016\/"},"modified":"2021-09-30T14:00:03","modified_gmt":"2021-09-30T21:00:03","slug":"the-week-in-net-152016-2","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/dotnet\/the-week-in-net-152016-2\/","title":{"rendered":"The week in .NET &#8211; 1\/5\/2016"},"content":{"rendered":"<p>We&#8217;re back for a new year of .NET! For this first week of 2016, we&#8217;re off to a great start with two packages and lots of interesting posts.<\/p>\n<p>To read last week&#8217;s post, see <a href=\"http:\/\/blogs.msdn.com\/b\/dotnet\/archive\/2015\/12\/29\/the-week-in-net-12-29-2015.aspx\">The week in .NET &#8211; 12\/29\/2015<\/a>.<\/p>\n<h2>On.NET<\/h2>\n<p>This week on our <a href=\"https:\/\/www.youtube.com\/channel\/UCvtT19MZW8dq5Wwfu6B0oxw\">On.NET<\/a> live YouTube show, <a href=\"https:\/\/www.youtube.com\/watch?v=pwdxfY2Y2Ow\">we&#8217;ll speak with Mads Torgersen<\/a>, probably mostly about C#. Please feel free to send me questions in advance, or to attend the show live and ask Mads questions directly on the chat.<\/p>\n<h2><a id=\"user-content-package-of-the-week-1-reactiveui\" class=\"anchor\" href=\"#package-of-the-week-1-reactiveui\"><span class=\"octicon octicon-link\"><\/span><\/a>Package of the week #1: ReactiveUI<\/h2>\n<p>ReactiveUI uses <a href=\"http:\/\/reactivex.io\/\">Reactive Extensions<\/a> for .NET to create testable UI that are compatible with Xamarin (iOS, Android, and Mac), WPF, Windows Forms, UWP, etc.<\/p>\n<p>Here&#8217;s an example that illustrates how Reactive programming is very appropriate for UI, by showing how to throttle change events on a search textbox before sending queries to a search service:<\/p>\n<p>You can see this sample code in context on <a href=\"http:\/\/reactiveui.net\/\">the ReactiveUI site<\/a>.<\/p>\n<p>The ReactiveUI community is very open to contributions: you can check out <a href=\"https:\/\/github.com\/reactiveui\/ReactiveUI\/labels\/up-for-grabs\">what&#8217;s up for grabs<\/a>, and they also have <a href=\"https:\/\/github.com\/reactiveui\/ReactiveUI\/labels\/first-timers-only\">a tag for first-timer only issues<\/a>.<\/p>\n<h2><a id=\"user-content-package-of-the-week-2-typedrouting\" class=\"anchor\" href=\"#package-of-the-week-2-typedrouting\"><span class=\"octicon octicon-link\"><\/span><\/a>Package of the week #2: TypedRouting<\/h2>\n<p>If you think declaring ASP.NET MVC routes involves too many &#8220;magic strings&#8221;, you&#8217;re going to love <a href=\"https:\/\/github.com\/ivaylokenov\/AspNet.Mvc.TypedRouting\">TypedRouting<\/a>.<\/p>\n<p>Here&#8217;s how you would declare a <code>GET<\/code> route to <code>HomeController.Index(int)<\/code>:<\/p>\n<p>In this example, both the controller name and the action method names are checked at compile-time. Even the signature of the method can be checked during compilation, and will be flagged as an error if it changes and becomes incompatible with its usage.<\/p>\n<p>The library doesn&#8217;t stop at adding routes, and also provides a range of utilities to use the routes. For example, you can get a link using the route defined above:<\/p>\n<h2><a id=\"user-content-user-group-of-the-week-new-england-microsoft-developers\" class=\"anchor\" href=\"#user-group-of-the-week-new-england-microsoft-developers\"><span class=\"octicon octicon-link\"><\/span><\/a>User group of the week: New England Microsoft Developers<\/h2>\n<p>This week, the <a href=\"http:\/\/www.meetup.com\/NE-MSFT-Devs\/\">New England Microsoft Developers group<\/a> has John Pelak talking about <a href=\"http:\/\/www.meetup.com\/NE-MSFT-Devs\/events\/227682400\/\">Azure ML &#8211; machine learning for all of us<\/a>, on Thursday, January 7, from 6:30PM to 8:30PM, in Burlington, MA.<\/p>\n<h2><a id=\"user-content-net\" class=\"anchor\" href=\"#net\"><span class=\"octicon octicon-link\"><\/span><\/a>.NET<\/h2>\n<ul>\n<li><a href=\"http:\/\/spazzarama.com\/2015\/12\/31\/fast-shared-array-buffer-and-circular-buffer-ring-buffer-for-dotnet-ipc-with-memory-mapped-files\/\">Fast shared array, buffer, and ring buffer for .NET IPC with memory mapped files<\/a> by Justin Stenning. <\/li>\n<li><a href=\"http:\/\/www.tugberkugurlu.com\/archive\/having-a-look-at-dotnet-cli-tool-and--net-native-compilation-in-linux\">Having a look at the dotnet CLI tool and .NET Native compilation in Linux<\/a> by Tugberk Ugurlu. <\/li>\n<li><a href=\"https:\/\/petabridge.com\/blog\/introduction-to-nbench\/\">Introducing NBench &#8211; an automated performance testing framework<\/a> by Petabridge. <\/li>\n<li><a href=\"https:\/\/blog.rendle.io\/do-one-thing-and-do-it-well\/\">Do one thing and do it well<\/a> by Mark Rendle. <\/li>\n<\/ul>\n<h2><a id=\"user-content-aspnet\" class=\"anchor\" href=\"#aspnet\"><span class=\"octicon octicon-link\"><\/span><\/a>ASP.NET<\/h2>\n<ul>\n<li><a href=\"http:\/\/www.davepaquette.com\/archive\/2015\/12\/28\/complex-custom-tag-helpers-in-mvc-6.aspx\">Complex custom tag helpers in MVC 6<\/a> by Dave Paquette. <\/li>\n<li><a href=\"http:\/\/dotnetliberty.com\/index.php\/2016\/01\/04\/how-to-unit-test-asp-net-5-mvc-6-modelstate\/\">How to unit test ASP.NET MVC 6 ModelState<\/a>, and <a href=\"http:\/\/dotnetliberty.com\/index.php\/2015\/12\/31\/fast-asp-net-5-integration-testing-with-xunit\/\">Fast ASP.NET Integration<\/a> by Armen Shimoon. <\/li>\n<\/ul>\n<h2><a id=\"user-content-f\" class=\"anchor\" href=\"#f\"><span class=\"octicon octicon-link\"><\/span><\/a>F#<\/h2>\n<p>Start your New Year off right with the epic conclusion of the 2015 <a href=\"https:\/\/sergeytihon.wordpress.com\/2015\/10\/25\/f-advent-calendar-in-english-2015\/\">F# Advent Calendar in English<\/a>:<\/p>\n<ul>\n<li><a href=\"http:\/\/foundation.fsharp.org\/call_to_action\">Welcome to 2016 &#8211; A Call to Action<\/a>, by The F# Software Foundation. <\/li>\n<li><a href=\"http:\/\/www.pirrmann.net\/visualizing-f-advent-calendar-contributors\/\">Visualizing F# Advent Calendar Contributors<\/a>, by Pierre Irrmann. <\/li>\n<li><a href=\"http:\/\/blog.tamizhvendan.in\/blog\/2015\/12\/29\/implementing-api-gateway-in-f-number-using-rx-and-suave\/\">Implementing API Gateway in F# Using Rx and Suave<\/a>, by Tamizh Vendan. <\/li>\n<li><a href=\"http:\/\/tomasp.net\/blog\/2015\/happy-new-year-tweets\/\">Happy New Year 2016 Around the World<\/a>, by Tomas Petricek. <\/li>\n<\/ul>\n<p>Check out <a href=\"https:\/\/sergeytihon.wordpress.com\/category\/f-weekly\/\">F# Weekly<\/a> for more great content from the F# community.<\/p>\n<p>And this is it for this week!<\/p>\n<h2><a id=\"user-content-contribute-to-the-week-in-net\" class=\"anchor\" href=\"#contribute-to-the-week-in-net\"><span class=\"octicon octicon-link\"><\/span><\/a>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. 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? We&#8217;d love to hear from you, and feature your contributions on future posts:<\/p>\n<ul>\n<li>Send an email to beleroy at Microsoft, <\/li>\n<li><a href=\"https:\/\/gist.github.com\/bleroy\/b509d5071434ae58c9e2\">comment on this gist<\/a> <\/li>\n<li>Leave us a pointer in the comments section below. <\/li>\n<\/ul>\n<p>This week&#8217;s post (and future posts) also contains news I first read on <a href=\"http:\/\/www.asp.net\/\">ASP.NET&#8217;s community spotlight<\/a>, on <a href=\"https:\/\/sergeytihon.wordpress.com\/category\/f-weekly\/\">F# weekly<\/a>, on <a href=\"http:\/\/www.aspnetweekly.com\/\">ASP.NET Weekly<\/a>, and on <a href=\"http:\/\/themorningbrew.net\/\">Chris Alcock&#8217;s The Morning Brew<\/a>.<\/p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>We&#8217;re back for a new year of .NET! For this first week of 2016, we&#8217;re off to a great start with two packages and lots of interesting posts. To read last week&#8217;s post, see The week in .NET &#8211; 12\/29\/2015. On.NET This week on our On.NET live YouTube show, we&#8217;ll speak with Mads Torgersen, probably [&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-18566","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>We&#8217;re back for a new year of .NET! For this first week of 2016, we&#8217;re off to a great start with two packages and lots of interesting posts. To read last week&#8217;s post, see The week in .NET &#8211; 12\/29\/2015. On.NET This week on our On.NET live YouTube show, we&#8217;ll speak with Mads Torgersen, probably [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/posts\/18566","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=18566"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/posts\/18566\/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=18566"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/categories?post=18566"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/tags?post=18566"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}