Upgrade to Pro — share decks privately, control downloads, hide ads and more …

.NET Meetup v1.4 - Spring 2017

.NET Meetup v1.4 - Spring 2017

Slides from the Dot Net Meetup Belfast's spring session with Martin Woodward and hosted by QUB

Gareth Burns

March 30, 2017
Tweet

More Decks by Gareth Burns

Other Decks in Technology

Transcript

  1. Welcome to our second meetup of 2017 • Hosted and

    supported by Queens University Belfast • Our Sponsors – Grafton Recruitment • .NET News • Tonight's Talk – Martin Woodward .NET Foundation • Other information
  2. News and links • Visual Studio 2017 is live •

    http://bit.ly/2mPDUEL • Happy Birthday - .NET turned 15 • http://bit.ly/2ogDzb7 • JSON.NET 10 Released • http://bit.ly/2nuXYJz • New Features in C# 7.0 • http://bit.ly/2njeZ8F • Live Unit Testing in VS2017 • http://bit.ly/2nj3u1f
  3. Other business • Support the meetup – We need you

    • Sponsors for hosting our sessions • Speakers for • Tutorials • Lightning talks • War stories • Slides will be made available following the event. • Through the meetup site • Check your emails • Next session in June 2017
  4. .NET SDK for Hadoop .NET Compiler Platform ("Roslyn") .NET Micro

    Framework ASP.NET MVC ASP.NET Web API ASP.NET Web Pages ASP.NET SignalR MVVM Light Toolkit .NET Core Orleans MEF OWIN Authentication Middleware Orchard CMS Microsoft Azure SDK for .NET IdentityManager Mimekit Xamarin.Auth Couchbase Lite for .NET Mailkit ASP.NET Core Salesforce Toolkits for .NET NuGet Kudu Cecil MSBuild LLILC Prism WorldWide Telescope Practices Visibility Protection Support Licenses Copyrights Trademarks Patents Mentorship Governance Feedback Co-ordination Media Branding Events Hosting Code signing CLA Management Swag ASP.NET AJAX Control Toolkit Entity Framework Microsoft Azure WebJobs SDK Microsoft Web Protection Library Open Live Writer Open XML SDK ProtoBuild System.Drawing IdentityServer Umbraco WCF Xamarin.Mobile Mono Xamarin SDK Cake
  5. • Be able to understand what it does • Can

    easily pick it up and use • Download • Fork / Follow / Favorite Use • Log bugs • Answer questions • Write blog posts • Fix / add documentation • Fix typos Contribute Time • Actually contribute code patches that fix bugs / improve test cases • Contribute entirely new features • Translate • Maintain platforms Contribute Code • Become a core committer (get write access) • Accept / validate code contributions • Nurture new people • Stick around • Influence the direction of the project Own
  6. One small step for a software company… Source Open Open

    Design Notes Source Open + Limited Contributions Adopt Community Workflow (“fully open source”) Improve Documentation Share Ownership
  7. 61% YoY Growth .NET Active Developers (VS 2012+) 40% .NET

    Core downloads by new developers 62% GitHub contributions from outside of Microsoft (corefx / coreclr repos) 0 100 200 300 400 500 600 700 800 900 Jan Feb Mar Apr May Jun Jul Aug Oct Nov Dec Jan Feb Mar Apr May Jun Jul Aug Oct Nov Dec Jan Feb Mar Apr May Jun Jul Aug Qtr1 Qtr2 Qtr3 Qtr4 Qtr1 Qtr2 Qtr3 Qtr4 Qtr1 Qtr2 Qtr3 2014 2015 2016 Community PRs by month 1800+ Packages on NuGet support .NET Standard
  8. Better TCO, productivity and development experience End user experience Developer

    100% C# with 100% of platform APIs exposed More productivity and faster development Up to 95% code reuse across platforms Up to 100% shared UI with Xamarin.Forms One code base & IDE for client and backend End User Platform-native UX Full performance Native platform service integration “The best of both worlds”
  9. Similarities • Implements .NET Standard API • Supports ASP.NET Core

    and EF Core • Best experience in Visual Studio • Great experience in Visual Studio Code • Can be used in/with Docker • Supports latest C# • .NET Framework comes with Windows • .NET Framework supports F# and VB (coming for Core) • .NET Core is cross-platform and open source • .NET Core works on Nano • .NET Core has a strong command-line experience • .NET Core supports side-by-side installs by default Differences
  10. "version": "1.0.0-*", // Your library/app version number "debugType": "portable", //

    Use portable PDBs "netcoreapp1.0": { // The .NET Core Target Framework "Microsoft.NETCore.App": { // The .NET Core Metapackage "version": "1.0.1”, // Metapackage version "type": "platform" // Directive to use “shared framework” "imports": "dnxcore50” // Compatibility directs for other TFMs
  11. //creates the files you just saw //restore NuGet dependencies //

    builds your source into dlls //loads and runs //same thing as the last 2 lines
  12. • MSBuild + CSProj Support. Tooling RTM • CLI re-plat

    on top of MSBuild • CLI extensions for editing CS Proj • Improved usability for Docker, Windows and Linux • .NET Standard 2.0 • C# 7 • Global commands • More compact standalone apps • Better offline experience • Usable on more Linux distros .NET Core 2.0 • Full supported RTM runtime • Includes .NET Core SDK and tools Preview Now (1.1) 1.0
  13. Tensions of Open Product Development 1. Maintaining Product Direction 2.

    Salaried & Passionate Contributors 3. Distributed Teams
  14. Fostering Community “Be awesome to each other” “I believe that

    everybody deserves a certain amount of respect, on day one, without me even knowing the person.” “Provide the submitter with actionable feedback.” “Be a role model. The first response to any pull request should express that we’re grateful that the submitter spend time on our project.”
  15. Education Strong Executive emphasis Open Source self help site Mandatory

    OSS training for all staff Specialized training based on role Process & Tooling Make it easy to do the right thing All consumption & distribution of OSS is tracked in Microsoft Major OSS contribution engagements are tracked Simplify and rationalize OSS policies corporately Adjust review system Experience Internal networking events Working with OSS is now a core competency of every engineering group Small central open source program office for advice, mentoring, etc Expert legal council center of excellence Email / Yammer lists