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. V1.4 – Spring 2017
    @dotnetbelfast

    View Slide

  2. 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

    View Slide

  3. View Slide

  4. 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

    View Slide

  5. 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

    View Slide

  6. Martin Woodward
    Vice President
    .NET Foundation

    View Slide

  7. View Slide

  8. [email protected]
    @martinwoodward
    http://dotnetfoundation.org
    http://github.com/dotnet

    View Slide

  9. View Slide

  10. .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

    View Slide

  11. Technical
    Steering
    Group

    View Slide

  12. I work here

    View Slide

  13. View Slide

  14. View Slide

  15. View Slide

  16. View Slide

  17. • 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

    View Slide

  18. View Slide

  19. 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

    View Slide

  20. 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

    View Slide

  21. .NET in 2015

    View Slide

  22. .NET in 2017

    View Slide

  23. View Slide

  24. .NET STANDARD LIBRARY

    View Slide

  25. .NET STANDARD LIBRARY

    View Slide

  26. .NET STANDARD LIBRARY

    View Slide

  27. .NET STANDARD LIBRARY

    View Slide

  28. View Slide

  29. View Slide

  30. .NET STANDARD LIBRARY

    View Slide

  31. 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”

    View Slide

  32. View Slide

  33. .NET STANDARD LIBRARY

    View Slide

  34. View Slide

  35. TechEmpower – Top 10 Frameworks - PlainText

    View Slide

  36. View Slide

  37. 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

    View Slide

  38. View Slide

  39. View Slide

  40. "NETStandard.Library": "1.6.0”, // Latest version of metapackage
    "netstandard1.4": {} // Target framework

    View Slide

  41. "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

    View Slide



  42. Exe
    netcoreapp1.1



    Version="10.0.1" />

    View Slide

  43. //creates the files you just saw
    //restore NuGet dependencies
    // builds your source into dlls
    //loads and runs
    //same thing as the last 2 lines

    View Slide

  44. • 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

    View Slide

  45. Tensions of Open Product Development

    View Slide

  46. View Slide

  47. View Slide

  48. View Slide

  49. 2 - Salaried & Passionate Contributors
    Ship-it! FOSS
    FTW!

    View Slide

  50. View Slide

  51. View Slide

  52. View Slide

  53. View Slide

  54. View Slide

  55. Tensions of Open Product Development
    1. Maintaining Product
    Direction
    2. Salaried & Passionate
    Contributors
    3. Distributed Teams

    View Slide

  56. 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.”

    View Slide

  57. Have fun!

    View Slide

  58. View Slide

  59. 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

    View Slide

  60. View Slide

  61. View Slide

  62. View Slide

  63. View Slide

  64. View Slide

  65. View Slide

  66. View Slide

  67. View Slide