{"id":36866,"date":"2016-11-22T15:18:40","date_gmt":"2016-11-22T22:18:40","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/webdev\/?p=8095"},"modified":"2016-11-22T15:18:40","modified_gmt":"2016-11-22T22:18:40","slug":"mvp-hackathon-2016","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/dotnet\/mvp-hackathon-2016\/","title":{"rendered":"MVP Hackathon 2016: Cool Projects from Microsoft MVPs"},"content":{"rendered":"<p>Last week was the annual <a href=\"https:\/\/mvp.microsoft.com\/en-us\/Summit\">MVP Summit<\/a> on Microsoft&#8217;s Redmond campus.\u00a0 We laughed, we cried, we shared stories around the campfire, and we even made s&#8217;mores.\u00a0 Ok, I&#8217;m stretching it a bit about the last part, but we had a good time introducing the <a href=\"https:\/\/mvp.microsoft.com\">MVPs<\/a> to some of the cool technologies you saw at <a href=\"https:\/\/connectevent.microsoft.com\">Connect()<\/a> yesterday, and some that are still in the works for 2017.\u00a0 As part of the MVP Summit event, we hosted a hackathon to explore some of the new features and allow attendees to write code along with Microsoft engineers and publish that content as an open source project.<\/p>\n<p>We shared the details of some of these projects with the supervising program managers covering Visual Studio, ASP.NET, and the .NET framework.\u00a0 Those folks were impressed with the work that was accomplished, and now we want to share these accomplishments with you.\u00a0 This is what a quick day&#8217;s worth of work can accomplish when working with your friends.<\/p>\n<p><figure id=\"attachment_8105\" aria-labelledby=\"figcaption_attachment_8105\" class=\"wp-caption aligncenter\" ><a href=\"http:\/\/devblogs.microsoft.com\/aspnet\/wp-content\/uploads\/sites\/16\/2016\/11\/HackathonGroup-cropped.jpg\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/aspnet\/wp-content\/uploads\/sites\/16\/2016\/11\/HackathonGroup-cropped-1024x340-1.jpg\" alt=\"MVP Hackers at the end of the Hackathon\" class=\"size-large wp-image-8105\" width=\"879\" height=\"292\" \/><\/a><figcaption id=\"figcaption_attachment_8105\" class=\"wp-caption-text\">MVP Hackers at the end of the Hackathon<\/figcaption><\/figure><\/p>\n<ul>\n<li>Shaun Luttin wrote a console application in F# that plays a card trick.\u00a0 Source code at:\u00a0 <a href=\"https:\/\/github.com\/shaunluttin\/magical-mathematics\">https:\/\/github.com\/shaunluttin\/magical-mathematics<\/a><\/li>\n<li>Rainer Stropek created a docker image to fully automate the deployment and running of a Minecraft server with bindings to allow interactions with the server using .NET Core.\u00a0 Rainer summarized<a href=\"http:\/\/www.software-architects.com\/devblog\/2016\/11\/10\/minecraft-server-for-dotnet-csharp-modding\"> his experience and the docker image on his blog<\/a><\/li>\n<li>Tanaka Takayoshi wrote an extension command called &#8220;add&#8221; for the dotnet command-line interface.\u00a0 The Add command helps format new classes properly with namespace and initial class declaration code when you are working outside of Visual Studio. Tanaka&#8217;s <a href=\"https:\/\/github.com\/tanaka-takayoshi\/MVPSummitHackathon2016\/tree\/hackathon-dotnet-add\">project is on GitHub<\/a>.<\/li>\n<li>Tom\u00e1\u0161 Herceg wrote an extension for Visual Studio 2017 that supports development with the <a href=\"https:\/\/www.dotvvm.com\">DotVVM framework for ASP.NET<\/a>.\u00a0 DotVVM is a front-end framework that dramatically simplifies the amount of code you need to write in order to create useful web UI experiences.\u00a0 His project can be found on GitHub at: <a href=\"https:\/\/github.com\/riganti\/dotvvm\">https:\/\/github.com\/riganti\/dotvvm<\/a> \u00a0 See the animated gif below for a sample of how DotVVM can be coded in Visual Studio 2017:\n<p><figure id=\"attachment_8155\" aria-labelledby=\"figcaption_attachment_8155\" class=\"wp-caption aligncenter\" ><a href=\"http:\/\/devblogs.microsoft.com\/aspnet\/wp-content\/uploads\/sites\/16\/2016\/11\/dotvvm_intellisense-1.gif\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/aspnet\/wp-content\/uploads\/sites\/16\/2016\/11\/dotvvm_intellisense-1-1.gif\" alt=\"DotVVM Intellisense in action\" class=\"wp-image-8155 size-full\" width=\"1313\" height=\"363\" \/><\/a><figcaption id=\"figcaption_attachment_8155\" class=\"wp-caption-text\">DotVVM Intellisense in action<\/figcaption><\/figure><\/li>\n<li>The <a href=\"https:\/\/twitter.com\/aspnetmonsters\">ASP.NET Monsters<\/a> wrote <a href=\"https:\/\/github.com\/AspNetMonsters\/pugzor\/\">Pugzor<\/a>, a drop-in replacement for the Razor view engine using the &#8220;Pug&#8221; JavaScript library as the parser and renderer. It can be added side-by-side with Razor in your project and enabled with one line of code. If you have Pug templates (previously called Jade) these now work as-are inside ASP.NET Core MVC. The ASP.NET Monsters are: <a href=\"https:\/\/twitter.com\/stimms\">Simon Timms<\/a>, <a href=\"https:\/\/twitter.com\/dave_paquette\">David Paquette<\/a> and <a href=\"https:\/\/twitter.com\/CanadianJames\">James Chambers<\/a>\n<p><figure id=\"attachment_8245\" aria-labelledby=\"figcaption_attachment_8245\" class=\"wp-caption aligncenter\" ><a href=\"http:\/\/devblogs.microsoft.com\/aspnet\/wp-content\/uploads\/sites\/16\/2016\/11\/pugzor.jpg\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/aspnet\/wp-content\/uploads\/sites\/16\/2016\/11\/pugzor-1024x571-1.jpg\" alt=\"Pugzor\" class=\"size-large wp-image-8245\" width=\"879\" height=\"490\" \/><\/a><figcaption id=\"figcaption_attachment_8245\" class=\"wp-caption-text\">Pugzor<\/figcaption><\/figure><\/li>\n<li>Alex Sorkoletov wrote an addin for Xamarin Studio that helps to clean up unused using statements and sort them alphabetically on every save.\u00a0 The project can be found at: <a href=\"https:\/\/github.com\/alexsorokoletov\/XamarinStudio.SortRemoveUsings\">https:\/\/github.com\/alexsorokoletov\/XamarinStudio.SortRemoveUsings<\/a><\/li>\n<li>Remo Jansen put together an extension for Visual Studio Code to display class diagrams for TypeScript.\u00a0 The extension is in alpha, but looks very promising on <a href=\"https:\/\/github.com\/remojansen\/MVPSummit2016Hackathon\">his GitHub project page<\/a>.\n<p><figure id=\"attachment_8165\" aria-labelledby=\"figcaption_attachment_8165\" class=\"wp-caption aligncenter\" ><a href=\"http:\/\/devblogs.microsoft.com\/aspnet\/wp-content\/uploads\/sites\/16\/2016\/11\/VsCodeTsUmlPreview.gif\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/aspnet\/wp-content\/uploads\/sites\/16\/2016\/11\/VsCodeTsUmlPreview-1024x576-1.gif\" alt=\"Visual Studio Code - TypeScript UML Generator\" class=\"size-large wp-image-8165\" width=\"879\" height=\"494\" \/><\/a><figcaption id=\"figcaption_attachment_8165\" class=\"wp-caption-text\">Visual Studio Code &#8211; TypeScript UML Generator<\/figcaption><\/figure><\/li>\n<li>Giancarlo Lelli put together an extension to help deploy front-end customizations for Dynamics 365 directly from Visual Studio.\u00a0 It uses the TFS Client API to detect any changes in you workspace and check in everything on your behalf. It is able to handle conflicts that prevents you to overwrite the work of other colleagues. The extension keeps the same folder structure you have in your solution explorer inside the CRM. It also supports adding the auto add of new web resources to a specific CRM solution. This extension uses the VS output window to provide feedback during the whole publish process.\u00a0 The project can be found <a href=\"https:\/\/github.com\/GiancarloLelli\/xrmdeployvsx\">on its GitHub page<\/a>.\n<p><figure id=\"attachment_8175\" aria-labelledby=\"figcaption_attachment_8175\" class=\"wp-caption aligncenter\" ><a href=\"http:\/\/devblogs.microsoft.com\/aspnet\/wp-content\/uploads\/sites\/16\/2016\/11\/PublishToDynamics.png\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/aspnet\/wp-content\/uploads\/sites\/16\/2016\/11\/PublishToDynamics-1.png\" alt=\"Publish to Dynamics\" class=\"size-full wp-image-8175\" width=\"813\" height=\"338\" \/><\/a><figcaption id=\"figcaption_attachment_8175\" class=\"wp-caption-text\">Publish to Dynamics<\/figcaption><\/figure><\/li>\n<li>Simone Chiaretta wrote an extension for the dotnet command-line tool to manage the properties in .NET Core projects based on MSBuild. It allows setting and removing the version number, the supported runtimes and the target framework (and more properties are being added soon). And it also lists all the properties in the project file.\u00a0 You can extend your .NET CLI with his <a href=\"https:\/\/www.nuget.org\/packages\/dotnet-prop\">NuGet package <\/a>or grab <a href=\"https:\/\/github.com\/simonech\/dotnet-prop\/\">the source code from GitHub<\/a>.\u00a0 He&#8217;s written <a href=\"http:\/\/codeclimber.net.nz\/archive\/2016\/11\/16\/Extending-the-dotnet-core-cli-introducing-dotnet-prop.aspx\">a blog post<\/a> with more details as well.\n<p><figure id=\"attachment_8185\" aria-labelledby=\"figcaption_attachment_8185\" class=\"wp-caption aligncenter\" ><a href=\"http:\/\/devblogs.microsoft.com\/aspnet\/wp-content\/uploads\/sites\/16\/2016\/11\/dotnet-prop.png\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/aspnet\/wp-content\/uploads\/sites\/16\/2016\/11\/dotnet-prop-1.png\" alt=\"The dotnet prop command\" class=\"size-full wp-image-8185\" width=\"968\" height=\"973\" \/><\/a><figcaption id=\"figcaption_attachment_8185\" class=\"wp-caption-text\">The dotnet prop command<\/figcaption><\/figure><\/li>\n<li>Nico Vermeir wrote an amazing little extension that enables the Surface Dial to help run the Visual Studio debugger.\u00a0 He wrote a <a href=\"http:\/\/www.spikie.be\/blog\/post\/2016\/11\/10\/.aspx\">blog post about it<\/a> and published <a href=\"https:\/\/github.com\/NicoVermeir\/DialDebug\">his source code on GitHub<\/a>.\n<div style=\"text-align: center\"><\/div>\n<\/li>\n<li>David Gardiner wrote a Roslyn Analyzer that provides tips and best practice recommendations when authoring extensions for Visual Studio.\u00a0 <a href=\"https:\/\/github.com\/flcdrg\/VsixAnalyzer\">Source code is on GitHub<\/a>.\n<p><figure id=\"attachment_8195\" aria-labelledby=\"figcaption_attachment_8195\" class=\"wp-caption aligncenter\" ><a href=\"http:\/\/devblogs.microsoft.com\/aspnet\/wp-content\/uploads\/sites\/16\/2016\/11\/VsixAnalyzers.gif\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/aspnet\/wp-content\/uploads\/sites\/16\/2016\/11\/VsixAnalyzers-1.gif\" alt=\"VSIX Analyzers\" class=\"wp-image-8195 size-full\" width=\"2495\" height=\"842\" \/><\/a><figcaption id=\"figcaption_attachment_8195\" class=\"wp-caption-text\">VSIX Analyzers<\/figcaption><\/figure><\/li>\n<li>Cecilia Wir\u00e9n wrote an extension for Visual Studio that allows you to add a folder on disk as a solution folder, preserving all files in the folder.\u00a0 <a href=\"https:\/\/github.com\/ceciliasharp\/Extension.FolderToSolutionFolder\">Cecilia&#8217;s code can be found on GitHub<\/a>\n<p><figure id=\"attachment_8225\" aria-labelledby=\"figcaption_attachment_8225\" class=\"wp-caption aligncenter\" ><a href=\"http:\/\/devblogs.microsoft.com\/aspnet\/wp-content\/uploads\/sites\/16\/2016\/11\/AddAsSolutionFolder-1.gif\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/aspnet\/wp-content\/uploads\/sites\/16\/2016\/11\/AddAsSolutionFolder-1-1.gif\" alt=\"Add as Solution Folder\" class=\"size-full wp-image-8225\" width=\"1280\" height=\"720\" \/><\/a><figcaption id=\"figcaption_attachment_8225\" class=\"wp-caption-text\">Add Folder as Solution Folder<\/figcaption><\/figure><\/li>\n<li>Terje Sandstrom updated the NUnit 3 adapter to support Visual Studio 2017.\n<p><figure id=\"attachment_8215\" aria-labelledby=\"figcaption_attachment_8215\" class=\"wp-caption aligncenter\" ><a href=\"http:\/\/devblogs.microsoft.com\/aspnet\/wp-content\/uploads\/sites\/16\/2016\/11\/Nunit.png\"><img decoding=\"async\" src=\"\" alt=\"NUnit Results in Visual Studio 2017\" class=\"size-mediumlarge wp-image-8215\" width=\"204\" height=\"350\" \/><\/a><figcaption id=\"figcaption_attachment_8215\" class=\"wp-caption-text\">NUnit Results in Visual Studio 2017<\/figcaption><\/figure><\/p>\n<p>&nbsp;<\/li>\n<li>Ben Adams made the <a href=\"https:\/\/github.com\/aspnet\/KestrelHttpServer\">Kestrel web server<\/a> for ASP.NET Core 8% faster while sitting in with some of the ASP.NET Core folks.<\/li>\n<\/ul>\n<h2>Summary<\/h2>\n<p>We had an amazing time working together, pushing each other to develop and build more cool things that could be used with Visual Studio 2015, 2017, Code, and Xamarin Studio.\u00a0 Stepping away from the event, and reading about these cool projects inspires me to write more code, and I hope it does the same for you.\u00a0 Would you be interested in participating in a hackathon with MVPs or Microsoft staff?\u00a0 Let us know in the comments below<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Last week was the annual MVP Summit on Microsoft&#8217;s Redmond campus.\u00a0 We laughed, we cried, we shared stories around the campfire, and we even made s&#8217;mores.\u00a0 Ok, I&#8217;m stretching it a bit about the last part, but we had a good time introducing the MVPs to some of the cool technologies you saw at Connect() [&hellip;]<\/p>\n","protected":false},"author":405,"featured_media":58792,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[197],"tags":[],"class_list":["post-36866","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-aspnet"],"acf":[],"blog_post_summary":"<p>Last week was the annual MVP Summit on Microsoft&#8217;s Redmond campus.\u00a0 We laughed, we cried, we shared stories around the campfire, and we even made s&#8217;mores.\u00a0 Ok, I&#8217;m stretching it a bit about the last part, but we had a good time introducing the MVPs to some of the cool technologies you saw at Connect() [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/posts\/36866","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\/405"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/comments?post=36866"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/posts\/36866\/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=36866"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/categories?post=36866"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/tags?post=36866"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}