{"id":7935,"date":"2017-01-04T09:00:00","date_gmt":"2017-01-04T17:00:00","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/dotnet\/?p=7935"},"modified":"2022-06-20T12:41:32","modified_gmt":"2022-06-20T19:41:32","slug":"the-week-in-net-on-net-with-glenn-versweyveld-protobuf-net-arizona-sunshine","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/dotnet\/the-week-in-net-on-net-with-glenn-versweyveld-protobuf-net-arizona-sunshine\/","title":{"rendered":"The week in .NET &#8211; On .NET with Glenn Versweyveld, Protobuf.NET, Arizona Sunshine"},"content":{"rendered":"<p>To read last week&#8217;s post, see <a href=\"https:\/\/blogs.msdn.microsoft.com\/dotnet\/2016\/12\/28\/the-week-in-net-on-net-with-steve-smith-jint\/\">The week in .NET \u2013 On .NET with Steve Smith, Jint, Blue Effect<\/a>.<\/p>\n<h2>On .NET<\/h2>\n<p>Last week, I published <a href=\"https:\/\/channel9.msdn.com\/Shows\/On-NET\/Glenn-Versweyveld-Kliva\">another short interview from the MVP Summit, this time with Glenn Versweyveld about Kliva, his Strava client for Windows<\/a>:<\/p>\n<p style=\"text-align: center;\"><iframe title=\"Glenn Versweyveld - Kliva - Microsoft Channel 9 Video\" src=\"https:\/\/channel9.msdn.com\/Shows\/On-NET\/Glenn-Versweyveld-Kliva\/player\" width=\"540\" height=\"320\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"><\/iframe><\/p>\n<p>This week, I&#8217;ll publish the last of our MVP Summit interviews, in which Reed Copsey, Jr. told me about <a href=\"http:\/\/fsharp.org\/\">the F# Software Foundation<\/a> and its new programs. Next week, we&#8217;ll resume our regular shows.<\/p>\n<h2>Package of the week: Protobuf.NET<\/h2>\n<p><a href=\"https:\/\/developers.google.com\/protocol-buffers\/\">Protocol Buffers<\/a>, or Protobufs for short, are a serialization format invented by Google, that is popular for its performance and simplicity. <a href=\"https:\/\/developers.google.com\/protocol-buffers\/docs\/csharptutorial\">Google&#8217;s C# library<\/a> generates C# code from a Protobuf specification. <a href=\"https:\/\/github.com\/mgravell\/protobuf-net\">Protobuf.NET<\/a> takes a different approach, that is arguably more idiomatic, and closer to existing .NET serializers such as <code>DataContractSerializer<\/code>, by starting from C# code, using attributes to specify contracts.<\/p>\n<p><script src=\"https:\/\/gist.github.com\/bleroy\/943fed6e96f7b20df5d7cc4ed4ac532d.js\"><\/script> The serialization and deserialization APIs are then very simple:<\/p>\n<p><script src=\"https:\/\/gist.github.com\/bleroy\/4875182195cbe87d565f8c9dfea73f36.js\"><\/script> * NuGet: <a href=\"https:\/\/www.nuget.org\/packages\/protobuf-net\/\">protobuf-net<\/a> * GitHub: <a href=\"https:\/\/github.com\/mgravell\/protobuf-net\">mgravell\/protobuf-net<\/a><\/p>\n<h2>Game of the week: Arizona Sunshine<\/h2>\n<p><a href=\"http:\/\/www.arizona-sunshine.com\/\">Arizona Sunshine<\/a> is a post-apocalypse first-person shooter designed for virtual reality. Strap on your headset and jump into a zombie invested world, exploring freely, scavenging and battling flesh eating undead who need to be put back into their graves! Arizona Sunshine features over 25 different weapons that operate with real-life movements, multiple environments for exploration, a full-size single player campaign and co-op multiplayer.<\/p>\n<p><a href=\"http:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2017\/01\/screenshot.jpg\"><img decoding=\"async\" style=\"width: 800px; max-width: 100%;\" title=\"Arizona Sunshine\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2017\/01\/screenshot_thumb.jpg\" alt=\"Arizona Sunshine\" \/><\/a><\/p>\n<p><a href=\"http:\/\/www.arizona-sunshine.com\/\">Arizona Sunshine<\/a> was created by <a href=\"http:\/\/vertigo-games.com\/\">Vertigo Games<\/a> and <a href=\"http:\/\/jaywalkersinteractive.com\/\">Jaywalkers Interactive<\/a> using <a href=\"https:\/\/channel9.msdn.com\/Series\/C-Sharp-Fundamentals-Development-for-Absolute-Beginners\">C#<\/a> and <a href=\"https:\/\/unity3d.com\">Unity<\/a>. It is available on <a href=\"http:\/\/store.steampowered.com\/app\/342180\/\">Steam<\/a> for the HTC Vive and Oculus Rift.<\/p>\n<h2>User group meeting of the week: HoloLens mixed reality experiences in Burlington, MA<\/h2>\n<p>The <a href=\"https:\/\/www.meetup.com\/NE-MSFT-Devs\/\">New England Microsoft Developers user group<\/a> holds <a href=\"https:\/\/www.meetup.com\/NE-MSFT-Devs\/events\/236361630\/\">a meeting tonight, Thursday, January 5 in Burlington, MA<\/a>, where Gavin Bauman will show you how to build mixed reality experiences with HoloLens.<\/p>\n<h2>.NET<\/h2>\n<ul>\n<li><a href=\"https:\/\/weblog.west-wind.com\/posts\/2016\/Dec\/27\/Back-to-Basics-String-Interpolation-in-C\">Back to basics: string interpolation in C#<\/a> by Rick Strahl.<\/li>\n<li><a href=\"https:\/\/cetus.io\/tim\/Part-1-Not-your-grandads-dotnet\/\">Not your grandad\u2019s .net &#8211; Pipes Part 1<\/a>, <a href=\"https:\/\/cetus.io\/tim\/Part-2-pipelines\/\">A faster lower allocation stream stack wielded for ALPN\/TLS and\u2026 HTTP2 &#8211; Pipes Part 2<\/a>, and <a href=\"https:\/\/cetus.io\/tim\/Part-3-Pipelines-OpenSsl\/\">The journey continues to Secure Pipelines, via OpenSsl &#8211; Pipes Part 3<\/a> by Tim Seaward.<\/li>\n<li><a href=\"http:\/\/josephwoodward.co.uk\/2016\/12\/in-memory-c-sharp-compilation-using-roslyn\">In-memory C# compilation (and .dll generation) using Roslyn<\/a> by Joseph Woodward.<\/li>\n<li><a href=\"http:\/\/miniml.ist\/dotnet\/2016-year-in-review\/\">.NET Posts &#8211; 2016 Year In Review<\/a> by Joe Petrakovich.<\/li>\n<li><a href=\"https:\/\/alastaircrabtree.com\/implementing-the-retry-pattern-using-polly\/\">Implementing the retry pattern in C# using Polly<\/a> by Alastair Crabtree.<\/li>\n<li><a href=\"https:\/\/sachabarbs.wordpress.com\/2016\/12\/23\/rx-over-the-wire\/\">Rx over the wire<\/a> by Sacha Barber.<\/li>\n<li><a href=\"http:\/\/danielwertheim.se\/new-release-of-my-nats-client-focusing-on-simplifying-usage\/\">New release of my NATS client focusing on simplifying usage<\/a> by Daniel Wertheim.<\/li>\n<\/ul>\n<h2>ASP.NET<\/h2>\n<ul>\n<li><a href=\"https:\/\/damienbod.com\/2017\/01\/01\/building-production-ready-angular-apps-with-visual-studio-and-asp-net-core\/\">Building production ready Angular apps with Visual Studio and ASP.NET Core<\/a> by Damien Bod.<\/li>\n<li><a href=\"http:\/\/www.hishambinateya.com\/introducing-a-new-markdown-view-engine-for-asp.net-core\">Introducing a new Markdown View Engine for ASP.NET Core<\/a> by Hisham Bin Ateya.<\/li>\n<li><a href=\"https:\/\/radu-matei.github.io\/blog\/aspnet-core-websockets-middleware\/\">Creating a WebSockets middleware for ASP.NET Core<\/a> by Radu Matei.<\/li>\n<li><a href=\"http:\/\/www.talkingdotnet.com\/how-to-enable-gzip-compression-in-asp-net-core\/\">How to enable gZip compression in ASP.NET Core<\/a> by Talking DotNet.<\/li>\n<li><a href=\"http:\/\/thienn.com\/change-primary-key-aspnetcore-identity-and-more\/\">Change primary key for ASP.NET Core Identity and more<\/a> by Thien Nguyen.<\/li>\n<li><a href=\"https:\/\/www.codeproject.com\/Articles\/1163143\/Content-Negotiation-and-Custom-Formatter-ASP-NET\">Content negotiation and custom formatter in ASP.NET Web API<\/a> by Snesh Prajapati.<\/li>\n<li><a href=\"https:\/\/www.codeproject.com\/Articles\/1158001\/Create-HTTP-request-pipeline-using-ASP-NET-Core\">Create HTTP request pipeline using ASP.NET Core custom middleware: build\/run on Mac, Windows, Linux or Docker container<\/a> by Neal Pandey.<\/li>\n<li><a href=\"http:\/\/www.c-sharpcorner.com\/article\/in-memory-caching-in-asp-net-core\/\">In-memory caching in ASP.NET Core<\/a> by Jignesh Trivedi.<\/li>\n<\/ul>\n<h2>F<\/h2>\n<ul>\n<li><a href=\"http:\/\/foundation.fsharp.org\/welcome_to_2017\">F# Software Foundation grows from over 200 members to over 1200 members since January of 2015<\/a>.<\/li>\n<li><a href=\"https:\/\/www.gitbook.com\/book\/swlaschin\/fsadvent-2016\/details\">F# Advent 2016 Gitbook &#8211; over 600 pages of F# Wisdom!<\/a>, curated by Scott Wlaschin.<\/li>\n<li><a href=\"https:\/\/medium.com\/@nevoroman\/the-magic-of-type-providers-7f6825acd54#.3ayur4gj3\">The magic of Type Providers<\/a> by Roman Nevolin.<\/li>\n<li><a href=\"https:\/\/medium.com\/@dogwith1eye\/introducing-the-elm-architecture-with-suave-fable-and-arch-a0ffea40e13f#.kg01krlfp\">End to end F# with the Elm Architecture<\/a> by Matthew Doig.<\/li>\n<li><a href=\"https:\/\/mnie.github.io\/2016-12-26-AzureNotebooksInF\/\">Azure Notebook in F# &#8211; creative way to share your notes beside the code<\/a> by Micha\u0142 Niegrzybowski.<\/li>\n<li><a href=\"https:\/\/jeremybytes.blogspot.com.by\/2016\/12\/more-simple-mocking-in-f-with-object.html\">More simple mocking with object expressions<\/a> by Jeremy Bytes.<\/li>\n<li><a href=\"https:\/\/aspnetmonsters.com\/2016\/12\/2016-12-31-suave\/\">Suave Web Services<\/a> by ASP.NET Monsters.<\/li>\n<\/ul>\n<p><a href=\"https:\/\/twitter.com\/VisualFSharp\/status\/815084733537189888\">F# contributions<\/a>: 118 Pull Requests from 17 contributors, 13 of which are community members.<\/p>\n<p>New F# Language Proposals:<\/p>\n<ul>\n<li><a href=\"https:\/\/github.com\/fsharp\/fslang-suggestions\/issues\/528\">Allow multiple base types\/interfaces on flexible type annotation<\/a>.<\/li>\n<li><a href=\"https:\/\/github.com\/fsharp\/fslang-suggestions\/issues\/527\">Enumerable.OfType equivalent for List, Array and Seq modules<\/a>.<\/li>\n<\/ul>\n<p>Check out the <a href=\"https:\/\/sergeytihon.wordpress.com\/2016\/10\/23\/f-advent-calendar-in-english-2016\/\">F# Advent Calendar<\/a> for loads of great F# blog posts for the month of December.<\/p>\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<h2>Xamarin<\/h2>\n<ul>\n<li><a href=\"http:\/\/www.jon-douglas.com\/2016\/12\/28\/xamarin-android-entity-framework\/\">Xamarin.Android &#8211; Entity Framework<\/a> by Jon Douglas.<\/li>\n<li><a href=\"https:\/\/codemilltech.com\/making-it-snow-xamarin-forms-and-cocossharp-and-particles\/\">Making It Snow! Xamarin.Forms and CocosSharp and Particles<\/a> by Matthew Soucoup.<\/li>\n<li><a href=\"https:\/\/developer.xamarin.com\/guides\/cross-platform\/getting_started\/introduction_to_mobile_sdlc\/\">Introduction to the Mobile Software Development Lifecycle<\/a> by Xamarin.<\/li>\n<li><a href=\"https:\/\/developer.xamarin.com\/guides\/cross-platform\/transport-layer-security\/\">Enabling TLS 1.2 in Xamarin.Android and Xamarin.iOS<\/a> by Xamarin.<\/li>\n<li><a href=\"https:\/\/developer.xamarin.com\/guides\/cross-platform\/drawing\/introduction\/\">An introduction to SkiaSharp<\/a> by Xamarin.<\/li>\n<li><a href=\"https:\/\/channel9.msdn.com\/Shows\/XamarinShow\/Snack-Pack-5-Android-Archive-Manager-for-Visual-Studio\">Xamarin Show Snack Pack 5: Android Archive Manager for Visual Studio<\/a> by James Montemagno.<\/li>\n<li><a href=\"http:\/\/geeks.ms\/xamarinteam\/2016\/12\/23\/creating-tizen-applications-using-xamarin-forms\/\">Creating Tizen applications using Xamarin.Forms<\/a> by Javier Su\u00e1rez Ruiz.<\/li>\n<li><a href=\"https:\/\/xamarinhelp.com\/pull-to-refresh-listview\/\">Xamarin Forms pull to refresh with ListView<\/a> by Adam Pedley.<\/li>\n<li><a href=\"http:\/\/blog.ostebaronen.dk\/2016\/12\/identifying-users-with-hockeyapp.html\">Identifying users with HockeyApp<\/a> by Tomasz Cielecki.<\/li>\n<li><a href=\"https:\/\/marcoscobena.wordpress.com\/2016\/12\/22\/wrapping-views-in-xamarin-ios\/\">Wrapping views in Xamarin.iOS<\/a> by Marcos Cobe\u00f1a Mori\u00e1n.<\/li>\n<\/ul>\n<h2>Azure<\/h2>\n<ul>\n<li><a href=\"https:\/\/www.codeproject.com\/Articles\/1162887\/Sharing-Code-Between-Azure-Functions\">Sharing code between Azure Functions<\/a> by Jeremy Hutchinson.<\/li>\n<li><a href=\"https:\/\/blogs.msdn.microsoft.com\/allthingscontainer\/2016\/12\/17\/my-take-on-an-azure-open-source-cross-platform-devops-toolkit\/\">My take on an Azure open source cross-platform DevOps toolkit \u2013 The beginning<\/a>, a 12-part series by Bruno Terkaly.<\/li>\n<\/ul>\n<h2>Games<\/h2>\n<ul>\n<li><a href=\"http:\/\/www.gamasutra.com\/view\/news\/228326\/Game_Design_Deep_Dive_How_Rogue_Legacy_handles_tutorials_without_being_boring.php\">Game design deep dive: how Rogue Legacy handles tutorials without being boring<\/a> by Teddy Lee.<\/li>\n<li><a href=\"http:\/\/ludumdare.com\/compo\/ludum-dare-37\/?more=1\">Ludum Dare 37 Results<\/a><\/li>\n<li><a href=\"https:\/\/www.youtube.com\/watch?v=YgaLKrSApWM\">Unity: Blend trees are awesome! A quick tutorial!<\/a> by TheoremGames.<\/li>\n<li><a href=\"https:\/\/blogs.unity3d.com\/2016\/12\/29\/16-highlights-from-2016-on-the-unity-blog\/\">16 highlights from 2016 on the Unity blog<\/a> by Community Team.<\/li>\n<li><a href=\"https:\/\/github.com\/Thraka\/SadConsole\/wiki\/Controls%20overview\">(SadConsole) Controls overview<\/a> by Andy De George.<\/li>\n<li><a href=\"https:\/\/youtu.be\/odtBzplsTUE\">[Unity 5] Tutorial: How to make an inventory system &#8211; part 3<\/a> by Gamad.<\/li>\n<li><a href=\"https:\/\/youtu.be\/Tb-rM3wGwv4\">A* Pathfinding (E07: smooth weights)<\/a> by Sebastian Lague.<\/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>, and the Xamarin section by <a href=\"https:\/\/twitter.com\/DanRigby\">Dan Rigby<\/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? 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\/0265c7325cea73299a40f658f8393f1c\">comment on this gist<\/a><\/li>\n<li>Leave us a pointer in the comments section below.<\/li>\n<li><a href=\"https:\/\/twitter.com\/yecats131\">Send Stacey (@yecats131) tips on Twitter about .NET games<\/a>.<\/li>\n<\/ul>\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\/\">Chris Alcock&#8217;s The Morning Brew<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>To read last week&#8217;s post, see The week in .NET \u2013 On .NET with Steve Smith, Jint, Blue Effect. On .NET Last week, I published another short interview from the MVP Summit, this time with Glenn Versweyveld about Kliva, his Strava client for Windows: This week, I&#8217;ll publish the last of our MVP Summit interviews, [&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-7935","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>To read last week&#8217;s post, see The week in .NET \u2013 On .NET with Steve Smith, Jint, Blue Effect. On .NET Last week, I published another short interview from the MVP Summit, this time with Glenn Versweyveld about Kliva, his Strava client for Windows: This week, I&#8217;ll publish the last of our MVP Summit interviews, [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/posts\/7935","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=7935"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/posts\/7935\/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=7935"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/categories?post=7935"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/tags?post=7935"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}