{"id":4951,"date":"2015-12-15T08:42:00","date_gmt":"2015-12-15T08:42:00","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/dotnet\/2015\/12\/15\/the-week-in-net-12152015\/"},"modified":"2021-09-30T14:00:17","modified_gmt":"2021-09-30T21:00:17","slug":"the-week-in-net-12152015","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/dotnet\/the-week-in-net-12152015\/","title":{"rendered":"The week in .NET &#8211; 12\/15\/2015"},"content":{"rendered":"<p>We have some great content and news for you this week. I can&#8217;t emphasize enough that this weekly post couldn&#8217;t exist without community contributions, and I&#8217;d like to thank all those who sent links and tips. Keep them coming! In a way, this is an open source blog post series \ud83d\ude09<\/p>\n<p>The first piece of news I want to share is that the posts are being translated to Korean by <a href=\"https:\/\/www.facebook.com\/jugan.net\">Eunji Kim<\/a>. The first post can be found <a href=\"http:\/\/blogs.msdn.com\/b\/eva\/archive\/2015\/12\/11\/2015-12-1.aspx\">here<\/a>. If you&#8217;d like to do the same and translate the posts to your language, and add news from your local communities, you are more than welcome to do so. Please drop me a line, and I&#8217;ll link to your translations from here.<\/p>\n<p>The second news is that we&#8217;re also starting a live YouTube show that we&#8217;re calling &#8220;<a href=\"https:\/\/www.youtube.com\/channel\/UCvtT19MZW8dq5Wwfu6B0oxw\">On.NET<\/a>&#8220;, where we&#8217;ll discuss current .NET events and topics with a guest every week. Our first guest will be <a href=\"https:\/\/en.wikipedia.org\/wiki\/Miguel_de_Icaza\">Miguel de Icaza<\/a>, creator of Gnome, Mono, founder of <a href=\"https:\/\/xamarin.com\">Xamarin<\/a>, recipient of the FSF Award for the Advancement of Free Software, MIT Innovator of the Year 1999, and one of Time magazine&#8217;s top 100 innovators of the 21st century. Wow.<\/p>\n<p>You can <a href=\"https:\/\/www.youtube.com\/watch?v=6p6-FMZRiAc\">join the live stream<\/a> on Thursday, December 17, at 10AM Pacific Time, 1PM Eastern Time.<\/p>\n<p>You can also subscribe to <a href=\"https:\/\/www.youtube.com\/channel\/UCvtT19MZW8dq5Wwfu6B0oxw\">the On.NET channel<\/a> on YouTube to receive updates whenever a new video is uploaded.<\/p>\n<p>If you have questions for Miguel, you&#8217;ll be able to ask them during the event, or you can send them to me in advance at beleroy at microsoft.<\/p>\n<p>As always, huge thank yous to all who sent messages of encouragement and contributions. 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\/5360f02aaad026eb0b7e\">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>, and from <a href=\"http:\/\/themorningbrew.net\/\">Chris Alcock&#8217;s The Morning Brew<\/a>, two other great sources for .NET news.<\/p>\n<h2>Package of the week #1: {m}brace the cloud<\/h2>\n<p><a href=\"http:\/\/mbrace.io\/\">MBrace<\/a> is a little more than a library: it&#8217;s a DSL (domain-specific language) for F# that integrates cloud programming into the language. I like to think about it as async\/await for the cloud.<\/p>\n<p>Here&#8217;s a small sample that reads from a queue in the cloud:<\/p>\n<p><script type=\"text\/javascript\" src=\"https:\/\/gist.github.com\/bleroy\/926452c406d2fcff327a.js\"><\/script><\/p>\n<p>You can see this and other samples in context in this tutorial: <a href=\"http:\/\/mbrace.io\/starterkit\/HandsOnTutorial\/8-using-cloud-queues.html\">Using Cloud Queues<\/a>.<\/p>\n<h2>Package of the week #2: Humanizer<\/h2>\n<p><a href=\"https:\/\/gist.github.com\/dannief\">Dannief<\/a> sent a tip about <a href=\"https:\/\/github.com\/Humanizr\/Humanizer\">Humanizer<\/a>, a library with dozens of methods that translate strings and objects back and forth between computer representations and all the messy, messy representations of human languages.<\/p>\n<p>For example, here&#8217;s how you can truncate a string while respecting word boundaries:<\/p>\n<div class=\"highlight highlight-source-cs\">\n<pre><span class=\"pl-s\"><span class=\"pl-pds\">\"<\/span>Long text to truncate<span class=\"pl-pds\">\"<\/span><\/span>.Truncate(<span class=\"pl-c1\">10<\/span>)<\/pre>\n<\/div>\n<p>This code will output the string <code>\"Long text\u2026\"<\/code>.<\/p>\n<p>Another, more elaborate example, is this bit of code that produces a human-readable list from a collection of objects:<\/p>\n<p><script type=\"text\/javascript\" src=\"https:\/\/gist.github.com\/bleroy\/66c03b69e5678376810c.js\"><\/script><\/p>\n<h2>User group of the week: Boston Mobile C# Developers<\/h2>\n<p>The <a href=\"http:\/\/www.meetup.com\/bostonmobiledev\/\">Boston Mobile C# Developers<\/a> group has a <a href=\"http:\/\/www.meetup.com\/bostonmobiledev\/events\/226979784\/\">Xamarin 4 event<\/a> on Thursday, December 17, at 6:00PM where you will learn how to build great native iOS and Android apps with C#.<\/p>\n<p>If you want to see what user group meetings are happening in your area, try clicking <a href=\"http:\/\/blogs.msdn.com\/b\/dotnet\/p\/dotnetusergroups.aspx\">here<\/a>&#8230;<\/p>\n<h2>.NET News<\/h2>\n<ul>\n<li>Omar Khudeira from Pagea Engineering makes a great case for <a href=\"http:\/\/engineering.gopangea.com\/2015\/12\/10\/why-dot-net.html\">Why .NET?<\/a>.<\/li>\n<li>Ron Petrusha recaps this year of <a href=\"http:\/\/blogs.msdn.com\/b\/visualstudio\/archive\/2015\/12\/10\/the-net-journey-recapping-the-last-year.aspx\">making .NET open source<\/a>, and so does Matt Warren from an external perspective in <a href=\"http:\/\/mattwarren.org\/2015\/12\/08\/open-source-net-1-year-later\/\">Open Source .NET \u2013 1 year later<\/a>.<\/li>\n<li>Stacey Haffner tells us <a href=\"http:\/\/blogs.msdn.com\/b\/dotnet\/archive\/2015\/12\/09\/support-ending-for-the-net-framework-4-4-5-and-4-5-1.aspx\">everything we need to know about the end of support for .NET Framework versions 4, 4.5 and 4.5.1<\/a>. Hint: 3.5, 4.5.2, 4.6, and 4.6.1 are still supported.<\/li>\n<li>David Ebbo shows how to <a href=\"http:\/\/blog.davidebbo.com\/2015\/12\/calling-arm-using-plain-rest.html\">call the Azure ARM API using plain REST<\/a>.<\/li>\n<li>The ever-interesting Eric Lippert has a great series about arbitrary precision mathematical types in <a href=\"http:\/\/ericlippert.com\/2015\/11\/30\/the-dedoublifier-part-one\/\">The dedoublifier, part one<\/a>, <a href=\"http:\/\/ericlippert.com\/2015\/12\/03\/the-dedoublifier-part-two\/\">part 2<\/a>, <a href=\"http:\/\/ericlippert.com\/2015\/12\/07\/the-dedoublifier-part-three\/\">part 3<\/a>, and <a href=\"http:\/\/ericlippert.com\/2015\/12\/10\/the-dedoublifier-part-four\/\">part 4<\/a>.<\/li>\n<\/ul>\n<h2>ASP.NET 5<\/h2>\n<ul>\n<li>Mahesh Sabnis shows <a href=\"http:\/\/www.dotnetcurry.com\/aspnet-mvc\/1215\/building-aspnet-mvc-6-entity-framework-7-app-using-aspnet-5\">how to build an ASP.NET MVC 6 &amp; EF 7 application<\/a>.<\/li>\n<li>Armen Shimoon posts on using faking in order to defer design decisions in <a href=\"http:\/\/dotnetliberty.com\/index.php\/2015\/12\/07\/asp-net-5-web-api-faking-it-while-making-it\/\">ASP.NET 5 Web API: faking it while making it<\/a>.<\/li>\n<\/ul>\n<h2>F#<\/h2>\n<ul>\n<li>Jamie Dixon explains <a href=\"https:\/\/medium.com\/@jamiedixon\/progressive-f-tutorials-london-2015-795d76c027da#.67vl10l5w\">why you don&#8217;t need a PhD to do F#<\/a>.<\/li>\n<li>Phillip Trelford has interesting posts on using type providers to create a better IntelliSense experience: <a href=\"http:\/\/trelford.com\/blog\/post\/Disinherited.aspx\">Disinherited Types<\/a>, and <a href=\"http:\/\/trelford.com\/blog\/post\/MSDNify.aspx\">MSDNify Types<\/a>.<\/li>\n<\/ul>\n<p>The F# community is writing a new blog post daily for this year&#8217;s <a href=\"https:\/\/sergeytihon.wordpress.com\/2015\/10\/25\/f-advent-calendar-in-english-2015\/\">F# Advent Calendar in English<\/a>. Here are some of the most recent posts:<\/p>\n<ul>\n<li><a href=\"https:\/\/cockneycoder.wordpress.com\/2015\/12\/08\/f-net-and-the-open-source-situation\/\">F#, .NET and the Open Source Situation<\/a>, by Isaac Abraham.<\/li>\n<li><a href=\"http:\/\/www.wintellect.com\/devcenter\/jwood\/a-quick-look-at-f-in-visual-studio-code\">A Quick Look at F# in Visual Studio Code<\/a>, by Jonathan Wood.<\/li>\n<li><a href=\"http:\/\/reedcopsey.com\/2015\/12\/09\/christmas-trees-in-wpf-using-fsharp-viewmodule\/\">Christmas Trees in WPF using FSharp.ViewModule<\/a>, by Reed Copsey, Jr..<\/li>\n<li><a href=\"https:\/\/medium.com\/@haumohio\/the-trips-and-traps-of-creating-a-generative-type-provider-in-f-75162d99622c#.258c8w748\">The Trips and Traps of Creating a Generative Type Provider in F#<\/a>, by Peter Bayne.<\/li>\n<li><a href=\"http:\/\/blog.quantalea.com\/?p=8391\">Algo Trading with F# and GPUs,<\/a> by Daniel Egloff.<\/li>\n<li><a href=\"http:\/\/teadrivendev.github.io\/2015\/12\/11\/making-progress-fsharp\/\">Making Busy Progress in F#<\/a>, by @TeaDrivenDev.<\/li>\n<li><a href=\"http:\/\/reidev275.azurewebsites.net\/providing-value-with-trivial-abstraction-in-f\/\">Providing Value with Trivial Abstraction in F#<\/a>, by Reid Evans.<\/li>\n<li><a href=\"http:\/\/fsharpmonologue.blogspot.co.id\/2015\/12\/whats-new-in-f-40-in-visual-studio-2015.html\">What\u2019s New in F# 4.0 in Visual Studio 2015<\/a>, by Eriawan Kusumawardho.<\/li>\n<li><a href=\"http:\/\/www.rickyterrell.com\/?p=68\">Solving the Santa Claus Problem in F#<\/a>, by Riccardo Terrell.<\/li>\n<li><a href=\"https:\/\/lenadroid.github.io\/posts\/machine-learning-fsharp-accorddotnet.html\">Learn the Machine!<\/a>, by @lenadroid.<\/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","protected":false},"excerpt":{"rendered":"<p>We have some great content and news for you this week. I can&#8217;t emphasize enough that this weekly post couldn&#8217;t exist without community contributions, and I&#8217;d like to thank all those who sent links and tips. Keep them coming! In a way, this is an open source blog post series \ud83d\ude09 The first piece of [&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-4951","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 have some great content and news for you this week. I can&#8217;t emphasize enough that this weekly post couldn&#8217;t exist without community contributions, and I&#8217;d like to thank all those who sent links and tips. Keep them coming! In a way, this is an open source blog post series \ud83d\ude09 The first piece of [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/posts\/4951","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=4951"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/posts\/4951\/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=4951"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/categories?post=4951"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/tags?post=4951"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}