|Deconstructing TypeScript's Type System (slides/info)||August 2017||Kansas City Developer Conference||Kansas City, MO|
|Never RESTing – RESTful API Best Practices using ASP.NET Web API (slides/info)||August 2017||Kansas City Developer Conference||Kansas City, MO|
|Workshop - Building Single Page Apps with React and Redux||September 2017||Prairie.Code()||Des Moines, IA|
|Deconstructing TypeScript's Type System||September 2017||Prairie.Code()||Des Moines, IA|
|Authentication and Security Strategies for the Modern Web||September 2017||Prairie.Code()||Des Moines, IA|
|Workshop - Building Web Apps with ASP.NET Core||September 2017||DevConf||Kraków, Poland|
|An Opinionated, Maintainable REST API Architecture for ASP.NET Core (slides/info)||September 2017||DevConf||Kraków, Poland|
|Security and Authentication Strategies for ASP.NET Core||December 2017||ConFoo||Vancouver, Canada|
|Using C# Expression Trees in the Real World||December 2017||ConFoo||Vancouver, Canada|
Notable/recent past events
|An Opinionated, Maintainable REST API Architecture for ASP.NET Core (video) (slides/info)||June 2017||NDC Oslo||Oslo, Norway|
|Never RESTing – RESTful API Best Practices using ASP.NET Web API (video) (slides/info)||January 2017||NDC London||London, England|
For my full past speaking history, click here.
Designing and building RESTful APIs isn’t easy. On its surface, it may seem simple – after all, we’re only marshaling JSON back and forth over HTTP right? However, that’s only a small part of the equation. There are many things to keep in mind while building the systems that act as the key to your system.
In this session, we’ll delve into several best practices to keep in mind when designing your RESTful API. We’ll discuss authentication, versioning, controller/model design, and testability. We’ll also explore the do’s and don’t’s of RESTful API management so that you make sure your APIs are simple, consistent, and easy-to-use. Finally, we’ll discuss the importance of documentation and change management.
The session will show examples using ASP.NET Web API and C#. However, this session will benefit anyone who is or might be working on a RESTful API.
In this session, Spencer will discuss the advanced type features of TypeScript, including intersection types, type guards, nullable types, type aliases, string literals, and discriminated unions. We’ll also discuss ways to take full advantage of TypeScript’s compile-time checking to ensure your code is clean and safe.
Writing a brand-new RESTful API using ASP.NET has never been easier, or so you’ve been led to believe. Create a project, write a few models, and scaffold – instant API for your website! While convenient, this leads to a lot of pain as your API scales. Testability and maintainability become more and more difficult as your codebase continues to expand. Eventually, you’re left with a huge mess of code and zero separation of concerns.
In this session, Spencer will provide a highly-opinionated and easy-to-learn pattern for creating scalable, maintainable APIs powered by ASP.NET Core. Attendees will learn about dependency injection, validating requests, executing requests via services, error handling, and versioning strategies to make sure your API lasts for the long haul.
Introducing TypeScript To Your Legacy Apps
Interested in using TypeScript in your brownfield project but intimidated because you don't know where to start? Join us as we discuss strategies for introducing TypeScript to your legacy programs.
Attendees will learn about how TypeScript can help you catch subtle bugs and immediately be more productive using type definitions. We'll also discuss how to gradually refactor your JS code to make you most productive with TypeScript in the long run.
Authentication and Security Strategies for the Modern Web
In today's ever-connected world, security is of utmost importance. Breaches round the world have shown the sheer amount of data that is at risk every day. The best approach to security? Start fundamentally and don't compromise!
In this session, Spencer will demonstrate authentication and security strategies for your systems, from avoiding cross-site scripting and request forging attacks to leveraging OAuth to make your systems more secure. We'll discuss implementation as well as some common mistakes to avoid and demonstrate live how hackers perform some common attacks like SQL injection.
Come to this session and learn how to avoid becoming the next big data breach on "Have I Been Pwned?"
Building Web Apps with ASP.NET Core
ASP.NET Core is the latest web framework offering from Microsoft. Open source and cross-platform, ASP.NET Core is the best web development platform for building web and cloud based applications on Windows, Mac and Linux.
This workshop is fully hands-on with guided exercises designed to get you productive in ASP.NET Core quickly. Whether you’re new to ASP.NET or are a seasoned ASP.NET developer, this workshop will have something for everyone. We'll discuss creating new projects, services, dependency injection, middleware, logging and diagnostics, Razor views, web APIs, and single page apps in this comprehensive jump-start to ASP.NET Core.
Using C# Expression Trees in the Real World
Entity Framework is the de facto data access standard in .NET, and for good reason – its simplicity and power enables anyone to quickly write and execute strongly-typed queries using LINQ. Have you ever wondered how Entity Framework translates even the most complicated of LINQ queries to SQL? The answer is simple – expression trees.
Used by many libraries we know and love (including EF, AutoMapper, and NHibernate), expression trees provide a lot of power in an easy-to-use API surface. In this session, Spencer will unravel the mysteries of expression trees. Attendees will learn what expression trees are, how to create them, and how libraries like Entity Framework and AutoMapper use them to perform routine tasks.