.NET Fringe 2016 schedule

Sunday 10th July 2016

  • Building Smart Microservice Clients with React, Redux and React-Router

    by Beau Palmquist and Jared Schaab

    Workshop Abstract:

    Building rich client web applications is becoming more and more complex, and with microservice frameworks rising in popularity, you may be wondering what it takes to build a rich microservice client while minimizing complexity. This workshop will demonstrate that React, Redux and React Router provide an elegant solution to that problem.

    Required Dev Tools for Workshop

    Laptop with the following development tools installed
    Visual Studio 2015 (minimum of Community Edition)
    Node (5.0+)
    NPM (3.0+)
    Client IDE of choice (Atom, Sublime, Brackets, WebStorm, etc.)

    Workshop Schedule

    Vanilla JS Applications /w .NET Microservices
    9:00 Workshop Overview
    9:30 Pull down GitHub repo for the workshop and discuss repo contents
    10:00 Discuss underlying .NET microservice framework technology
    10:30 Break
    10:45 Adding microservices and page navigation to a Vanilla JS project
    11:45 Discuss weaknesses of the vanilla JS approach
    12:00 Lunch

    React/Redux Applications /w .NET Microservices
    1:00 Basic React Concepts (v. 15.0.1)
    1:15 React Project
    2:00 Break
    2:15 React-Router Project
    2:45 Basics of Redux
    3:00 React/Redux project
    4:00 Bringing it all together
    4:15 Additional topics
    4:30 Wrap up & Summary

    At 9:00am to 4:30pm, Sunday 10th July

    In NedSpace

  • Introduction to Machine Learning with Functional Programming

    by Evelina Gabasova and Mathias Brandewinder

    Workshop Abstract:

    Machine Learning and Functional Programming are both very hot topics these days; they are also both rather intimidating for the beginner. In this workshop, we’ll take a 100% hands-on approach, and learn practical ideas from Machine Learning, by tackling real-world problems and implementing solutions in F#, in a functional style.

    In the process, you will see that once you get beyond the jargon, F# and Machine Learning are actually not all that complicated – and fit beautifully together. So if you are curious about what Machine Learning is about, and want to sharpen your developer skills, come with your laptop and… let’s hack together!

    What you should expect:

    • no F# or Machine Learning prerequisites: complete beginners are totally welcome,
    • a hands-on introduction to simple Machine Learning ideas you can use, by solving real-world problems,
    • a practical introduction to writing effective F# code,
    • lots of coding on fun problems!

    Workshop Schedule:

    09:00 Workshop intro: what IS machine learning?
    09:30 Lab: automatically recognizing hand-written numbers
    11:00 Wrap-up: lessons learnt
    11:30 Lab: what language is this text written in?
    12:00 Lunch

    13:30 Lab (cont'd): what language is this text written in?
    14:15 Demo: detecting patterns in data
    14:30 Introduction to gradient descent & neural nets
    14:45 Lab: recognizing language with a perceptron
    15:30 Demo: from perceptrons to deep neural networks
    15:45 Demo: scaling machine learning with mbrace.io
    16:00 Wrap up & summary.


    This will be a hands-on workshop, so be sure to come with a laptop. You’ll also need to install F# with an editor of your choice. To get that, follow the instructions on http://fsharp.org/ for Mac, Windows or Linux. On Mac, we recommend VS Code or Xamarin Studio; on Windows, we recommend VS Code or Visual Studio.

    If you’re using Atom or VS Code, follow the installation instructions in "Getting started” on the Ionide page (http://ionide.io/). You'll need to install mono (Mac and Linux) or F# (Windows) and Atom/VS Code itself. Then install the ionide-installer package.

    And that’s all, no previous experience with F# or machine learning is needed!

    At 9:00am to 4:30pm, Sunday 10th July

    In NedSpace

  • Building Distributed Systems with Akka.NET

    by Aaron Stannard

    Workshop is at the Smith Memorial Student Union building on the 2nd floor in room 294 - Floorplans -> https://www.pdx.edu/floorplans/s...

    Attendees must complete Akka.NET bootcamp before attending this course: http://learnakka.net/

    Workshop Abstract:

    Akka.NET is the future for building distributed systems in C#, F#, and .NET. In this workshop you will learn how to use Akka.NET actors to build fault tolerant, distributed systems using techniques like clustering, sharding, network failure detection, and more!

    In this workshop you will learn:

    The CAP theorem and how to actually use it in practice;
    Dynamo-style clustering and how to use them to build systems that are partition tolerant and highly available;
    Network programming with sockets;
    Akka.Remote and using it for location transparency and network failure detection;
    Akka.Cluster and its capabilities; and
    Building stateful services using Akka.Cluster.Sharding to transparently distribute and recover data across the cluster.

    This is an all-day workshop and it will be taught in C#. This is a concept-heavy course.

    Workshop Schedule:

    Introduction to Distributed Systems with Akka.Remote

    10:00 Akka.Remote Capabilities and Best Practices
    11:00 System Design and Network Failure Detection + Recovery Techniques
    12:00 Lab
    12:30 Lunch

    Advanced Distributed Systems with Akka.Cluster

    2:00 Akka.Cluster Concepts and Capabilities
    2:30 Akka.Cluster Service Design Best Practices
    4:45 Wrap up & summary.

    At 10:00am to 5:00pm, Sunday 10th July

    In Smith Memorial Student Union

  • .NET Fringe Bike Ride

    by Adron Hall

    Join us for a group bike ride around Portland.

    The bike explorations will depart at 5:15pm from the waterfront on Sunday the 10th. If you're interested, get RSVPed with a Bike Ride Ticket and we'll deliver the specific details for the starting point, bike rentals, or other ways to get a bike and join the ride when it's closer to the date.

    RSVP: https://ti.to/dotnetfringe/dotne...

    FULL DETAILS: http://blog.adron.me/articles/Bi...

    At 5:15pm to 7:00pm, Sunday 10th July

  • Welcome Reception @ Ringler's Pub

    Come get your badge, t-shirt, and chat with the other attendees before the conference starts tomorrow morning!

    Ringler's Pub is located on the ground floor of Crystal Ballroom. Minors are welcome, so please bring your kids! +1s are always welcome, too.

    Google Maps: https://goo.gl/maps/XdrSPTRQL7S2

    At 7:00pm to 10:00pm, Sunday 10th July

    In Crystal Ballroom

Monday 11th July 2016

  • Doors Open, Attendees Mingle

    At 8:00am to 8:45am, Monday 11th July

    In Crystal Ballroom

  • Introduction - Day 1

    by Scott Hanselman

    At 8:45am to 8:55am, Monday 11th July

    In Crystal Ballroom

  • Communication is just as important as code

    by Andrea Goulet Ford

    "The idea of a lone developer coding in their basement without social interaction is a thing of the past. These days, technical solutions are often developed by cross-functional teams whose participants have a range of technical experience. Now, more than ever, good communication skills are an essential part of being a software developer.

    In this talk, Andrea Goulet, CEO of Corgibytes, will share immediately actionable communication principles that will help you; get buy-in for your ideas, reduce conflict and tension, increase productivity, be liked and respected.

    Andrea has taught communication skills to thousands of people in world-class brands across the globe, including The Smithsonian, The Center for Disease Control and Prevention, Verizon, and more. If you’re looking to take your career to the next level, this is one talk you won’t want to miss."

    At 9:00am to 9:30am, Monday 11th July

    In Crystal Ballroom

    Coverage slide deck

  • Agile experiments in Machine Learning

    by Mathias Brandewinder

    Just like traditional applications development, machine learning involves writing code. One aspect where the two differ is the workflow. While software development follows a fairly linear process (design, develop, and deploy a feature), machine learning is a different beast. You work on a single feature, which is never 100% complete. You constantly run experiments, and re-design your model in depth at a rapid pace. Traditional tests are entirely useless. Validating whether you are on the right track takes minutes, if not hours.

    In this talk, we will take the example of a Machine Learning competition we recently participated in, the Kaggle Home Depot competition, to illustrate what "doing Machine Learning" looks like. We will explain the challenges we faced, and how we tackled them, setting up a harness in F# to easily create and run experiments, while keeping our sanity. We will also draw comparisons with traditional software development, and highlight how some ideas translate from one context to the other, adapted to different constraints. to come.

    At 9:30am to 10:00am, Monday 11th July

    In Crystal Ballroom

  • Cross platform .NET, welcome to the new age!

    by Julie Lerman

    It's a new age for .NET developers. You can build cross platform apps, you can use lighter tools like VS Code, and you can deploy instantly using tools iike Docker

    ASPNET Core and EF Core are so cross-platform that not only can you deploy your apps to OSX and Linux (oh, and Windows, too) but you can even build them on any of the platforms.

    Pick a platform. I'll choose OSX because MacBook
    Grab an x-platform, open source IDE that does C#: I'll take Visual Studio Code, written in Electron, cuz I already use that for Node.
    Need a data store: Hey, how about PostreSQL, because I never got to use that before.
    Build a Web API that can persist to PostgreSQL. I'll use ASP.NET Core and EF Core because I have a lot of experience in those already.
    Code, debug, git commit. (And show off some of the awesome new features in EF Core)
    Deploy to a Linux server (thank you Docker).
    Invite the world to use your API.

    At 10:20am to 10:50am, Monday 11th July

    In Crystal Ballroom

    Coverage link

  • Docker All the Things - .NET 4.6 apps and Windows Containers

    by Anthony Chu

    "Docker is awesome and there's been a lot of excitement over .NET Core running in Linux containers. But why do older apps have to miss out on the fun? With Windows Server 2016 and Windows Server containers, there's finally a way to dockerize .NET 4.6 apps using the same Docker tools and commands as their Linux counterparts.

    In this intermediate level talk, I'll give an overview of Docker and Windows Server containers. Then I'll demonstrate different ways to run existing ASP.NET Web API, MVC, and even WebForms applications inside Docker containers."

    At 10:50am to 11:20am, Monday 11th July

    In Crystal Ballroom

  • .NET CORE, OAuth, and OpenID Connect

    by Kassandra Perch

    (No VM necessary for this talk, thank you .NET core!)

    Writing your own username and password system? That's so 2015. Why bother with the hassle of storing passwords, keeping them safe, and being on the hook if they get out? And see if we can justify making users remember another long, secure array of characters (because we all know users create strong passwords by nature).

    But OAuth is HORRIFYING. You aren't sure *why*, you just HEARD it was awful so you just jotted that down.

    Luckily, .NET Core has some great tools for simplifying these specifications down to a few calls, allowing your users to log in with services like Google, GitHub, and many, many more.

    We'll look over how to use one of the premade providers, and how to implement a custom OAuth2 provider, in a .NET Core app.

    At 11:35am to 12:05pm, Monday 11th July

    In Crystal Ballroom

  • Lightning Talk - Typing In Dvorak

    by Andrea Goulet Ford

    Why type in this obscure keyboard layout? Tips for getting started

    At 1:05pm to 1:10pm, Monday 11th July

    In Crystal Ballroom

  • Lightning Talk - Vanquish Legacy Code in 5 Minutes Flat

    by Robert Reppel

    A very concise guide to making legacy systems publish events so you don't have to touch the stuff again and can write shiny new code instead.

    At 1:10pm to 1:15pm, Monday 11th July

    In Crystal Ballroom

  • Lightning Talk - Create full dynamic sites in no time

    by Chris Holt

    Turn a description of a site into a working crud app in no time with genit.

    At 1:15pm to 1:20pm, Monday 11th July

    In Crystal Ballroom

  • Lightning Talk - FAKE it til you make it

    by Ryan Rousseau Ⓥ

    An intro to creating build scripts with FAKE - F# Make

    At 1:20pm to 1:25pm, Monday 11th July

    In Crystal Ballroom

  • Lightning Talk - How to be more inclusive in tech

    by Daniel Plaisted

    Practical tips for how we can make our community more welcoming and inclusive for all people.

    At 1:25pm to 1:30pm, Monday 11th July

    In Crystal Ballroom

  • Lightning Talk - Giving Back: Your First Pull Request

    by Dave Glick and Ben Hyrman

    Contributing back to the projects you use; from fork to pull request to merge.

    At 1:30pm to 1:35pm, Monday 11th July

    In Crystal Ballroom

  • Lightning Talk - Event Storming For .NET Projects

    by Robert Zalaudek

    Event storming is a form of domain-modelling that describes the deliverables of a system in the form of events. I’ll describe how it works and how it can be used to help make any software project succeed.

    At 1:35pm to 1:40pm, Monday 11th July

    In Crystal Ballroom

  • Lightning Talk - Making Deployment Less Painful

    by Mathew Glodack

    How and why we built our own windows installer.

    At 1:40pm to 1:45pm, Monday 11th July

    In Crystal Ballroom

  • The F# Path to Relaxation - and what it means for .NET

    by Don Syme

    At 1:55pm to 2:15pm, Monday 11th July

    In Crystal Ballroom

  • So You Want To Be A Mobile App Developer

    by Lori Lalonde

    Are you thinking about developing apps for mobile devices? Are you wondering what you need to know to hit the ground running aside from just the development aspect? In this session, I will talk about the non-technical side of becoming an independent app developer and things to keep in mind as you start on this journey, including costs, source code management, analytics, app updates, end user support, app marketing, monetization, and the importance of privacy policies.

    At 2:30pm to 3:00pm, Monday 11th July

    In Crystal Ballroom

  • Developing Apache Spark Jobs in .NET using Mobius

    by Kaarthik Sivashanmugam

    "Apache Spark is an open source data processing framework built for big data processing and analytics. Ease of programming and high performance relative to the traditional big data tools and platforms and a unified API to solve a diverse set of complex data problems drove the rapid adoption of Spark in the industry. Apache Spark APIs in Scala, Java, Python and R cater to a wide range of big data professionals and a variety of functional roles. Mobius is an open source project that aims to bring Spark's rich set of capabilities to the .NET community. Mobius project added C# as another first-class programming language for Apache Spark and currently supports RDD, DataFrame and Streaming API. With Mobius, developers can build Spark jobs in C# and reuse their existing .NET libraries with Apache Spark. Mobius is open-sourced at http://github.com/Microsoft/Mobius. This project has received great support from the .NET community and positive feedback from the Spark enthusiasts. In this talk, we will cover the following topics:

    · implementing Apache Spark jobs in C# using Mobius

    · internal architecture of Mobius

    · best practices using Mobius in production with a Spark cluster - in Windows or Linux, on-premises or in your favorite Cloud"

    At 3:00pm to 3:30pm, Monday 11th July

    In Crystal Ballroom

  • Distributed .NET microservices architecture with Kubernetes in the cloud

    by Alena Hall

    "When designing a reliable solution with lots of moving parts, it's important to look not just into code but in-between code - more at the integration parts of the overall system.

    In this intense talk you will learn about the variety of real-world important aspects to take into account architecting a flexible solution.

    Some of the valuable aspects are environment choices, infrastructure planning, preparation and automation, separation of solution parts into independently deployable services, service discovery, replication, resiliency and many more.

    You will explore into the practical architecture of Kubernetes and see how to create and configure Kubernetes cluster in the cloud.

    You will see how to create .NET based microservices (e.g. using F#) and deploy it on Kubernetes."

    At 4:00pm to 4:30pm, Monday 11th July

    In Crystal Ballroom

  • Mobile testing for grown ups

    by Alexandra Marin

    "If you’re anything like me, coming on to a new project is terrifying: unknown domain, indecipherable (yes, I had autocorrect rewrite that word) tests and general panic. And I love unit tests as much as the next face-deep-in-code 24/7 developer, but that’s a limited way of testing your app and we can do better.

    So let’s take a swing at turning specifications into concrete, executable and easy-to-repeat behavior. The result is powerful UI acceptance testing by performing common behaviors like pressing buttons, making swipe gestures and entering text. Oh, and did I mention you can automate all this?"

    At 4:45pm to 5:15pm, Monday 11th July

    In Crystal Ballroom

  • Getting productive with F# Open Source tooling

    by Krzysztof Cieślak

    At 5:30pm to 6:00pm, Monday 11th July

    In Crystal Ballroom

  • Private Party at Ground Kontrol

    Ground Kontrol is a video game arcade and bar in Portland, Oregon, United States. Recognized as one of the best arcades in the US, it is known for preserving games from the Golden Age of Video Arcade Games. It also serves as a venue for DJs and live music. Also of note is its collection of 28 pinball tables.

    More Info: https://goo.gl/maps/Gd5YfdoPkF82

    At 7:00pm to 11:00pm, Monday 11th July

    In Ground Kontrol

Tuesday 12th July 2016