Abstracts
 

Abstracts

Keynotes

Leaders Are Made, Not Born

Leaders aren't born, they aren't hatched, and they don't apparate.  Leadership is a journey, one that involves hard work, practice, and a deep understanding of not only your team members but also yourself. I've led teams large and small throughout my 30 year career, and certainly made plenty of mistakes on the way,  But I've learned to fail fast, iterate, and continuously improve to create high performing teams across multiple verticals. In this session I share what I have learned over the years being a leader and being led.

Agile: You Keep Using That Word...

Much like the DOTCOM boom when everyone declared themselves a programmer, once David Norton (Gartner Research) declared agile mainstream on August 26, 2009, you can’t throw a stone without hitting someone who claims to be an Agilista.  From the proliferation of “agile” frameworks and certifications, to all of the people who decided to hang out a shingle as a coach, it can be hard to remember what is the essence of being agile.  In this talk, I remove the fluff and hyperbole, and get down to the roots of what it means to be agile.

Survive the Waterfall

Scrum and XP have found a strong following in the development community. But most non-development groups (such as Web Administrators, Production Support, Security, Testing, and Users/Stake Holders) inside the enterprise are not only far from agile, they are not trying to be more agile. In this session, I use real experiences from large enterprise development projects to teach you how to effectively work with non-agile teams. Instead of trying to "convert" them, I discuss strategies to adapt to their needs while remaining agile in the development realm.

  • How to work with traditional PMO
  • How to work with devops and infrastructure teams
  • Moving QA, designers, etc. to agile

Architecture

SOLID Design Patterns for Mere Mortals

Software design patterns have been around long before the MVC Framework gained momentum. In this session we will start with a review of Robert C. Martin's (Uncle Bob) SOLID macronym. After building the proper foundation, I will show you several design patterns, their C# implementation, and when and how they should be used in modern software development.

  • Get a better understanding of SOLID
  • Leverage Design Patterns to solve common problems
  • See specific implementations of various Design Patterns and how they support SOLID development

Web Development

ASP.NET Core MVC - What you need to know

Core MVC has changed in revolutionary ways.  In this session I show you what you need to know to move to ASP.NET Core MVC for Web UI and RESTful services.

  • New MVC features such as tag helpers and view components
  • Using DI with MVC
  • Creating RESTful services with Core MVC

JavaScript for the C# (and Java) Developer

Yes, it has curly braces. Yes, it has semi colons. And you can write C# like code in JavaScript. But should you? JavaScript programming has many paradigms that make it very different than writing typical managed code.  In this session I show you, the C# programmer, what you need to know to take your JavaScript to the next level.

  • Core features in JavaScript
  • Important differences between JavaScript and C#
  • Key similarities in JavaScript and C#
  • Common pitfalls for those new to JavaScript

Take Your Site From Ugh to OOH with Bootstrap

I'll admit. I'm a developer. More than once, I've said "The heck with it. I'm using a table!". In this session I show you my favorite features in Bootstrap that can quickly make your user interface stand out from ordinary websites.

  • Learn what Bootstrap has to offer
  • Explore the CSS capabilities in Bootstrap
  • Explore the JS capabilities in Bootstrap

Workshop: Develop an Entity Framework Core and ASP.NET Core MVC App in a Day

In this full day workshop, you will build an application in a day using Entity Framework Core code first to create the database and data access, a Core MVC Restful service, and a Core MVC Web Application.

  • Use Entity Framework Core to build the data access layer
  • Build a RESTful service with ASP.NET Core MVC
  • Build a UI with ASP.NET Core MVC

Hands on Lab: Develop an Entity Framework Core and ASP.NET Core MVC App in a Day

Interested in .NET Core and Entity Framework Core, but not sure where to start? Start here with an all day Hands on Lab where you will build a complete solution using the latest development technology from Microsoft. Using Visual Studio 2017 (RC), you will build a data access library using Entity Framework Core, complete with repos and migrations. Then you will package the data access library into a custom NuGet package for distribution. Next, you will build a Core MVC site, leveraging all of the latest that Core MVC has to offer, including Tag Helpers, View Components, Dependency Injection, and more!

    You will learn:
  • The new project structure for .NET Core Apps
  • Creating a data access layer with Entity Framework Core
  • Initializing data for testing with EF Core
  • Creating NuGet packages from .NET Core projects
  • Building a website with ASP.NET Core MVC
  • Configuring the HTTP pipeline and routing
  • Using and creating Tag Helpers
  • Creating and using View Components
  • Leveraging Dependency Injection
    Attendee Requirements:
  • You must provide your own laptop computer for this hands-on lab.
  • You will need to have Visual Studio 2017 RC Installed (any edition), with version 15.0.26020.0 or later. Visual Studio 2017 RC can be downloaded from https://www.visualstudio.com/vs/visual-studio-2017-rc/. When installing, make sure to select the ".NET Core and Docker (Preview)" workload.
  • You also need to have .NET Core 1.1 installed. The tooling installs with Visual Studio 2017 RC, but the SDK must be downloaded from https://www.microsoft.com/net/download/core#/current. The "Current" version and not the LTS (Long Term Support) version is needed for this HOL.
  • Finally, you will need to have SQL Server Express 2016 Local DB installed. This is installed with VS2017 RC by default, but can also be installed from the SQL Server 2016 Express installer, located here: https://msdn.microsoft.com/en-us/library/hh510202.aspx.
  • Although not necessary to download beforehand, the starter files for this HOL are located in https://github.com/skimedic/dotnetcore_hol (one of my GITHUB repos).

Entity Framework

Introduction to Entity Framework Core

Writing data access code is tedious and mundane.  The simple act of creating the CRUD (Create, Read, Update, Delete) operations doesn't add business value to your application, but it is an absolute necessity.  In this session, I show you the core features of Entity Framework and how it can save you invaluable time that is much better spent on providing business value and compelling features into your applications.

  • Getting started with Entity Framework Core
  • Using Entity Framework to speed up development
  • Using Migrations to keep database and code in-sync

Which Entity Framework is Right for You?

Even though the release of EF Core 1.1 brought EF Core closer to parity with EF 6, there are still some glaring differences that could have a significant impact on your project.  In this session, I go through the pros and cons of each framework to help you decide which version is correct for you.

  • Getting started with Entity Framework Core
  • Using Entity Framework to speed up development
  • Using Migrations to keep database and code in-sync

Top 10 Entity Framework Features Every Developer Should Know

In this session, I take you through my favorite features of Entity Framework that will significantly improve your productivity and ease of maintaining your data access code.

  • Advanced features of Entity Framework
  • Using BCP with Entity Framework
  • Connection Resiliency
  • Plus many more!

Agile - Processes and Engineering

Agile: You Keep Using That Word...

Much like the DOTCOM boom when everyone declared themselves a programmer, once David Norton (Gartner Research) declared agile mainstream on August 26, 2009, you can’t throw a stone without hitting someone who claims to be an Agilista.  From the proliferation of “agile” frameworks and certifications, to all of the people who decided to hang out a shingle as a coach, it can be hard to remember what is the essence of being agile.  In this talk, I remove the fluff and hyperbole, and get down to the roots of what it means to be agile.

Survive the Waterfall

Scrum and XP have found a strong following in the development community. But most non-development groups (such as Web Administrators, Production Support, Security, Testing, and Users/Stake Holders) inside the enterprise are not only far from agile, they are not trying to be more agile. In this session, I use real experiences from large enterprise development projects to teach you how to effectively work with non-agile teams. Instead of trying to "convert" them, I discuss strategies to adapt to their needs while remaining agile in the development realm.

  • How to work with traditional PMO
  • How to work with dev-ops and infrastructure teams
  • Moving QA, designers, etc. to agile

Agile Failures: Stories From The Trenches

When agile first burst on the scene, there was a lot of discussion about how agile is not just a silver bullet, but THE silver bullet.  But is it really?  Even after the "mainstreaming" of agile, projects continue to fail.  In this talk we look at a series of failed projects, examining the root causes, and the lessons learned from those failures.  Fast failure and careful retrospectives is the best way to continuously improve. 

Visualizing the Backlog with User Story Mapping

User Story Mapping is a process the visualizes your project, enhances transparency, and helps resolve scope contention. In this hands on exercise, we will jointly create a user map, clearly defining order, minimal marketable features, and release plans.

  • Why user story mapping matters
  • How to story map
  • How to build sprint/release plans from story maps

Testing Code From The Pit Of Despair

Michael Feathers defines Legacy Code as any code that doesn’t have automated tests, and you agree that automated tests are an important facet of successful software development. Then it happens – you get your next assignment, and it’s your worst nightmare! You have to maintain and enhance a large application that has no tests in place, and there are parts that are just plain scary. Where do you start? Traditional Test Driven Development techniques don’t typically work, since they focus on an inside-out development paradigm.

I will show you the patterns and practices that will help you turn the scary big ball of mud into a tested code base.

Unit Testing for Mere Mortals

As a developer you take pride in your work (as you should).  So it's frustrating when bugs happen.  How do you prevent them? Well, the honest answer, is you can't - at least not 100%.  But you can make sure your code does what you expect it to do!   In this session, I show you TDD (Test Driven Development), BDD (Behavior Driven Development), and TED (Test Eventual Development).  I will also show you their strengths and weakness, and how to decide which type (or combination of types) to use in different scenarios.  

Mocks, Stubs, and Dependency Injection, Oh My!

So you aren't writing any code without having tests in place…well, except for those tricky things like web services, database calls, and that section of code that no one wants to touch since it's a pile of spaghetti. I start with a big ball of mud and refactor that using dependency injection, fakes, stubs, and mocks. I will show you how to use Mocks and Stubs to isolate the system under test and write cleaner, more effective tests.

Workshop - Applied Agile Workshop

“You got your agile processes in my engineering practices!” “Well, you got your engineering practices in my project management!” All too often teams working towards agility stand divided between the processes (such as Scrum and Kanban) and the engineering practices (such as Extreme Programming) and completely forget what agile is really about. Agile is more than the latest methodology or certification. I will show you that the way to be truly agile is to blend concepts together into a single great harmony.

  • The ABC's agile and what it really means
  • The pluses and minus of popular agile methodologies
  • Answers to the questions that you put forth

Soft Skills

Leaders Are Made, Not Born

Leaders aren't born, they aren't hatched, and they don't apparate.  Leadership is a journey, one that involves hard work, practice, and a deep understanding of not only your team members but also yourself. I've led teams large and small throughout my 30 year career, and certainly made plenty of mistakes on the way,  But I've learned to fail fast, iterate, and continuously improve to create high performing teams across multiple verticals. In this session I share what I have learned over the years being a leader and being led.

Being Remote Doesn't Have to be Hard

More and more employees are looking to be remote, at least part time.  And an increasing number of companies are allowing remote workers.  What does it mean to be a remote worker or manage remote workers?  As a long time remote worker and manager of a remote work force, I will lead an interactive discussion on the ups and downs of being remote.

Windows Client Development

Windows Presentation Foundation for Developers

WPF has now been out for almost 10 years. Microsoft is ramping up the WPF team, and there's a renewed interest in WPF development.  After all, what else are you going to use to build client applications for Windows users?  If you've looked at WPF, you know it is vastly different than Winforms.  In this session, I dive into what’s important to developers, including Layout, Commands, and a deep dive into Binding and Validation.

  • Learn the strengths of WPF and when to use it
  • Learn the different layouts in WPF
  • Learn how to maximize data binding in WPF

Implementing M-V-VM (Model-View-View Model) for WPF

Now you are writing WPF applications, and wondering – what is all this code in the code behind? Shouldn’t we be doing something different? Our cousins working with ASP.NET MVC don’t even have a code behind! The answer is YES – you should indeed be doing it differently. The M-V-VM pattern is a refinement of the Presentation Model pattern (first documented by Martin Fowler). I will show you what you need to know to implement M-V-VM pattern in WPF for building SOLID WPF applications that are testable, reusable, and maintainable. Additionally, I'll show you how to implement MVVM with generated code, such as Entity Framework.

  • What the MVVM Pattern is and when it should be used
  • How the WPF framework supports the MVVM pattern
  • How to implement MVVM in generated code, such as from Entity Framework

.NET Musings

Wandering thoughts of a developer, architect, speaker, and trainer

Managed Windows Shared Hosting by OrcsWeb