Speaker

Joseph Guadagno

Joseph Guadagno

Senior Director, Technology at Rocket Mortgage, .NET Foundation Board of Directors, Organizer of Desert Code Camp, "Microsoft Developer Services" MVP, Telerik Ninja

Chandler, Arizona, United States

Joe Guadagno is a Senior Director of Engineering at Rocket Mortgage, the nation’s largest mortgage lender, which is based in Detroit, Michigan. He has been writing software for over 20 years, has been an active member of the .NET community,
serving on the .NET Foundation Board of Directors and has been a Microsoft MVP in .NET for more than 13 years. At Rocket Mortgage, I lead three software development teams building and modernizing our internal services. He has spoken through the United States and at international events on topics ranging from Microsoft .NET, Microsoft Azure, Ionic, Bootstrap, and many others. You can see the complete list at https://www.josephguadagno.net/presentations. When not sitting at a computer Joe loves to hang out with his family and play games. When not playing games with the family, Joe is checking out the latest in Home Automation. You can connect with Joe on Twitter at @jguadagno, Facebook at JosephGuadagnoNet, and on his blog at https://www.josephguadagno.net.

Awards

Area of Expertise

  • Information & Communications Technology

Topics

  • Azure
  • .NET
  • ASP.NET
  • ASP.NET Core
  • C#.Net
  • Visual Studio / .NET
  • .net 6
  • rider
  • Azure Functions
  • Azure App Service
  • Azure Communication Services

Write Uno Time, Run Everywhere with the Uno Platform

C# brings you the power to write apps on any platform, like Windows, Linux, and macOS. However, when it comes to building an application with a user interface, you usually must resort to the lowest common denominator, JavaScript, or multiple tools like Xamarin, Blazor, etc. Now you have a new option to build pixel-perfect user interfaces using C# and Windows Xaml. That option is the Uno Platform. The Uno Platform allows you to write your application in .NET C# and XAML using a single-codebase and execute it everywhere .NET runs – iOS, Android, Windows, macOS, Linux, and Web (via WebAssembly). Oh, I forgot to mention, the Uno Platform is free and open source. You can use the existing controls ecosystem with it.

In this talk, I'll walk you through getting started with development on the Uno Platform. We'll start with setting up the development machine and start coding. Once the environment is set up, I'll use the platform to build an application that interacts with an existing Contact API to list, add, delete, and update contacts.

At the end of this talk, you will know to develop an application that calls an API and provides a consistent, platform-specific user interface.

Scale It!

Azure provides scalable, durable cloud storage, backup, and recovery solutions for any data, large and small. We will take a look at some components/services of Azure to help us make our application more scalable. We’ll cover Blob Storage, Table, Storage, Queues, Application Insights, Web Jobs, and Azure Functions.

Migrate it!

Technology is constantly changing. Lately, it's been changing fast. Microsoft has shown the road map for .NET, which has major version releases every year. If you are like me, you have a few applications around running on .NET Framework but not sure how to "upgrade", "port", or "migrate" to .NET. That's where this session comes in.

In this talk, we'll work on "upgrading", "porting", "migrating" an ASP.NET 4.5 framework application that uses Web Forms to a modern ASP.NET Core MVC application. While migrating the application, we'll explore some of the gotchas, some of the things you should watch out for, some of the new features of .NET, and more.

After this talk, you will be better equipped to tackle that application migration, assuming you get budget and priority approval :)

Protecting a .NET API with Microsoft Identity Platform

Microsoft Identity Web is a library that contains a set of reusable classes used in conjunction with ASP.NET Core for integrating with the Microsoft identity platform (formerly Azure AD v2.0 endpoint) and Azure Active Directory B2C.

In this session, we'll configure Azure, our API, and clients to protect your APIs. We'll walk through the following:

Setting up Azure Active Directory (AD) tenant with the necessary 'application' registrations to use the power of Azure and Microsoft Account logins to secure your API and applications.
Add authentication and authorization to your API
Add authentication and clients.

At the end of the session, you'll want to go and add authentication and authorization to your APIs.

.NET 5 - What is it?

We have the .NET Framework, .NET Standard, .NET Core, ASP.NET, ASP.NET Core ... do not get me started on Classic ASP or other platforms :). Where are we going with .NET? What is .NET 5? What is going to happen to these 'legacy' frameworks? Let us take a look at the past, the present, and the future of .NET. After this talk, you will understand where Microsoft is taking the platform and where you can focus your development efforts.

Building a Talk for an Event

Building a talk or session or presentation for an event, whether it's your team at work, a user group, a small or sizeable in-person conference, or a virtual event, takes work and preparation. How are you going to create the content for the talk? What do you need to do to prepare? What do you do during the event? What happens if someone asks me a question I do not know the answer to it? What should I do after the talk? There is a lot the goes into preparing for a conference talk or sessions or presentation.

In this talk, we'll walk through the tips and tricks that I have developed over the years to make my conference talks better.

Details, slide deck, and previous times this was presented are available at https://www.josephguadagno.net/presentations/presentation-preparedness.

A Lap Around Microsoft Azure

Microsoft Azure has a lot to offer us as developers. Looking at the product list can be daunting at times. In this session, we will look at how we can take an on-premises ASP.NET Core application that uses SQL and host it in Microsoft Azure.

We'll walk through publishing this application as a Web Application, creating an Azure SQL database to host our data, and wrap it up by adding some application logging and telemetry with Azure Monitor's Application Insights.

At the end of the talk, we will have taken the on-premises application and moved it to the cloud with only a few clicks and some knowledge.

Debugging Tips and Tricks with JetBrains Rider

Debugging issues within applications are challenging! In this session, I'll how debugging works and demonstrate the many ways that JetBrains Rider enables you to find those annoying issues. I'll explain the run/debug configurations. What application breakpoints are and to make them conditional, or how you can skip breakpoints altogether. While we are in a breakpoint, we'll explore the many ways to navigate through the code but skipping lines, running to line, jumping in, and using methods. Once we find an issue, we'll look at how we can inspect the values in memory and even change them.

At the end of the session, you'll walk away with a lot of knowledge to help you find those annoying issues in your applications. As a bonus, you'll walk away with a little debugging secret.

Using Microsoft Azure Storage Services

Azure provides scalable, durable cloud storage, backup, and recovery solutions for any data, large and small. It works with the infrastructure you already must enhance your existing applications and business continuity strategy cost-effectively. Also, it provides storage required by your cloud applications, including unstructured text or binary data such as video, audio, and images.

Let’s see how we can leverage Blob Storage to store enormous amounts of unstructured text or binary data like photos. Use Queues to provide a reliable messaging system that allows implementing asynchronous tasks and implementing persistent messaging. And Tables to store some unstructured (log) data.

From Problem Child to Poster Child, a Story of Peopling

So, you want to hear a story? It all started three years ago...

Building technology is challenging. Building a high-performing team is arguably even more difficult. In this talk, I'll walk you through how we took an application that was failing almost daily, aka the "Problem Child," and turned it into the "Poster Child" of applications through strong team dynamics. When your team is happy, your product is happy.

Communication is Hard. Make it better with Azure Communication Services.

We live in a connected world, and we are constantly communicating with people via text, phone, video, chat, and more. So, let's look at how Azure Communication Services can enable you and your applications to connect people across web and mobile apps. You can add communications workflows to applications with flexible SDKs and APIs for common platforms and languages, including iOS, Android, Web, .NET, and JavaScript.

6 (or so) new features of .NET 6

.NET 6 takes us one step closer to the unified .NET platform where dogs and cats get along, Windows and Macs play nice together, and you can use .NET to develop for the Cloud, Mobile, Gaming, IoT, Desktop, AI, and the web.

So, what's included in this step? There's a lot. Don't worry. I'm here to guide you on this step.

We'll look at the following:
1) C# 10 language features
2) ASP.NET Changes
3) Maui, no, not the beach
4) Performance improvements
5) New APIs
6) Other enhancements

We'll wrap up the talk by looking at where we are on the journey to the unification of .NET.

When the talk is over, if not during, you'll want to download .NET and start using .NET to make your life as a developer easier.

Scaling Your .NET Application Using Azure

Azure provides a lot of services! Azure provides scalable, durable cloud storage, backup, and recovery solutions for any data, large and small. Azure also provides compute services like App Service to create applications in the code, and Azure Functions to build event-driven "server-less" code with ease. Azure can easily work with the infrastructure and application you already have to enhance your existing applications and business continuity strategy cost-effectively.

In this talk, let's take a look at how we can take an existing .NET application and leverage some of Azure's services to improve the reliability, scalability, and performance of our application. We'll introduce some key and common Azure services like Azure Functions, Azure Blob Storage, Azure Table Storage, Azure Queues, and more. We'll even add some application monitoring and telemetry to that application using Azure Monitor Application Insights so you can see how the application is performing and being used.

By the end of this talk, you'll be exposed to some of the most common... and simplest ways... to make your application reliable, scalable, and performant.

Building and Deploying a New Cloud App from Scratch

In this workshop, we are going to build and deploy a modern cloud application from scratch! Using Visual Studio and Azure you will learn how to build a modern application from the ground up and deploy it to the cloud using the latest techniques. We will look at best practices in designing and building the application, testing your code, and deploying the application so you are set up for success later. After this workshop, you will have an established pattern to follow for future applications and in case you need to change the infrastructure of your application

What We will Cover
• Introduction to the Integrated Development Environment (IDE) – Visual Studio
• C# Programming Language
• CSS? HTML?
• Nuget Packages
• Application Development
o Designing Models
o Building the Business (Manager) Layer
o Building the Data Layer
 SQL Server
 Entity Framework
o User Secrets
• Unit Testing the Application
o XUnit
• Web Development
o Creating a REST API
o Documenting the REST API (Swagger)
o Creating a Web Client (ASP.NET Core MVC)
 Bootstrap (mention other clients like Angular, Vue, React, Blazor)
• Deploying the Application
o Pushing the source code to Git
o Create the Azure Infrastructure
 Application Service
 SQL Server
o Create the GitHub Action to Deploy
• Monitoring the Application
o Azure Monitor Application Insights
o Logging (SeriLog)

Target Audience
This workshop is geared toward individuals just getting started with Microsoft .NET and/or looking to design applications that can easily be changed and/or deployed to Azure. Attendees should have experience in at least one programming language and an understanding of basic web programming paradigms.
Requirements:
• Visual Studio or JetBrains Rider
• SQL Server (Developer Edition or LocalDB)
• Azure Account

Build Native Applications with JavaScript and Ionic

Ionic lets you build mobile apps using only JavaScript. The [Ionic framework](http://ionicframework.com/) is a free and open-source library of mobile-optimized HTML, CSS, and JS components along with tools for building highly interactive native and progressive web apps. It is made with Sass, optimized for AngularJS.

In this session, you will see how you can build rich, powerful, robust mobile applications that are clean, simple, and functional. These applications can use [Cordova](http://cordova.apache.org/), [PhoneGap](http://phonegap.com/) to deploy natively or be a modern-day web application.

All you need for this session is to know are HTML, CSS, and JavaScript: the building blocks of the web. You’ll even learn AngularJS as you work with Ionic and this talk.

Build Native Applications with JavaScript and React Native

React Native lets you build mobile apps using only JavaScript. It uses the same design as React, letting you compose a rich mobile UI from declarative components.

With React Native, you don’t build a “mobile web app,” an “HTML5 app”, or a “hybrid app.” You create a real mobile app that’s indistinguishable from an app built using Objective-C or Java. React Native uses the same fundamental UI building blocks as regular iOS and Android apps. You just put those building blocks together using JavaScript and React.

Typescript for the Microsoft Developer

Whether you like it or not, if you are building applications for the Web, you will need to know JavaScript. Sorry, Flash and Silverlight! Unfortunately, JavaScript is not the most straightforward language to learn or understand, and the tooling for it is not good. This is where TypeScript comes in. TypeScript is a superset to JavaScript that tries to solve many of these problems and make the code more structured and less error-prone. And it also offers tooling support in a way that JavaScript just can’t.

Introduction to ASP.NET Core

ASP.NET Core is a newish open-source and cross-platform framework for building modern cloud-based internet connected applications, such as web apps, IoT applications, and mobile backends. ASP.NET Core apps can run on .NET Core or on the full .NET Framework. You can develop and run your ASP.NET Core apps cross-platform on Windows, Mac, and Linux.

We’ll do a quick overview of ASP.NET Core; then, we’ll build an application or two using web API, web UI, and ASP.NET Core MVC.

Bootstrap 4.0 - What's New?

Bootstrap is the world's most popular framework for building responsive, mobile-first sites and applications. Inside you'll find high-quality HTML, CSS, and JavaScript to make starting any project more accessible than ever. Bootstrap 4.0 is just around the corner (or here already).  Let's look at what's new in the version, what is no longer available, and what you must do to upgrade your applications. Then we'll look at some of the new features in detail like the Flexbox, Cards, improved NavBar, and much more!

Introduction to Bootstrap

Bootstrap is a “Sleek, intuitive, and powerful mobile-first front-end framework for faster and easier web development.” Let’s see how using Bootstrap can make your website come alive with little work. We’ll cover how you can get started/add Bootstrap to your site, either new or existing site. We’ll talk about the Bootstrap layout framework, better known as the grid system. We will also talk about the typography, tables, lists, buttons, and the responsive Bootstrap framework. We’ll also look at some third-party themes that can customize your instance of Bootstrap even more.

We will then start talking about the component's Bootstrap supplies like buttons, alerts, drop-downs, etc. We’ll also cover the JavaScript components like modal dialogs, drop-down menus, scroll spy, tabs, tooltips, and more.

Debugging Tips and Tricks with Visual Studio

Debugging issues within applications are challenging! In this session, I'll how debugging works and demonstrate the many ways that JetBrains Rider enables you to find those annoying issues. I'll explain the run/debug configurations. What application breakpoints are and to make them conditional, or how you can skip breakpoints altogether. While we are in a breakpoint, we'll explore the many ways to navigate through the code but skipping lines, running to line, jumping in, and using methods. Once we find an issue, we'll look at how we can inspect the values in memory and even change them.

At the end of the session, you'll walk away with a lot of knowledge to help you find those annoying issues in your applications. As a bonus, you'll walk away with a little debugging secret.

What's Happening in My App?

Azure Application Insights, part of the Azure Monitor services, helps you collect, analyze, and act on telemetry data from your Azure and on-premises environment.

Let's see how you can get alerts on performance and availability issues, monitor our applications' usage and performance, get telemetry for our application without redeploying the applications, search traces, and exception logs to figure out what is wrong. Did I mention we can monitor Android, iOS, Windows Mobile applications, and ASP.NET applications?

We'll also look at how we can analyze request load, server performance counters, and response times across dependencies. Get multi-dimensional analyzes over standard metrics or define your own. Diagnose exceptions, mobile application crashes, and failed requests, correlating with events and traces.

Write Once, Run Everywhere

The open source Ionic Framework features a rich library of front-end building blocks and UI components that make it easy to design beautiful, high-performance mobile and Progressive Web Apps (or PWAs) using web technologies like HTML, CSS, and JavaScript.

Their universal web components pair with any JavaScript framework, including Angular, React, Vue, or no framework at all (just add a script tag!). Ionic apps are backend agnostic, with connections to AWS, Azure, and Firebase.

With this session, we are going to look at how with using the Ionic Framework you can build an application that you write once and run on any device, iOS, Android, UWA, Browser, and desktop.

Build and Ship It!

If you are like me, you have many libraries, helpers, utilities that you have built over time that you use for multiple projects. You've thought about publishing them to NuGet so you can share them with other projects or your team but didn't because they contain secrets, intellectual property, or aren't well documented. With Azure DevOps, you can set up an Azure DevOps Artifact repository, private to you or your team, to securely store your packages and make them available to other projects and teams.

In this talk, we'll take a small .NET library, and it doesn't just work with .NET, and build an Azure DevOps Pipeline to publish it in our Artifact directory. With this pipeline, we will build the library, execute unit tests, sign the code using a Code Signing certificate, and deploy it to our Artifact repository.

And at the end of the talk, you'll have a pipeline that you can add to the library, utility, and helper packages with some minor tweaks, when you are ready, to NuGet.

Application Architecture Patterns

Architecting an application can be challenging. What do you do to keep your application flexible to ever-constant requirement changes? How do you handle landscape changes (cloud, on-premises, databases)? How do you avoid over-engineering the application? How do I make sure my application plays well with other applications?

In this session, we'll take a look at some well-understood and practiced Software Architecture patterns. We'll cover these patterns at a high level to understand how to use these patterns in different scenarios.

You'll walk away with some knowledge, tips, and tricks that you'll be able to use for new and existing applications.

Powerpoints, video, and source code, if any, are available at https://www.josephguadagno.net/presentations/application-architecture-patterns

CodeMash 2023 Upcoming

January 2023 Sandusky, Ohio, United States

Devintersection & Azure Data Conference Fall 2022

December 2022 Las Vegas, Nevada, United States

Update Conference Prague 2022

November 2022 Prague, Czechia

TechBash 2022

November 2022 Mount Pocono, Pennsylvania, United States

KCDC 2022

August 2022 Kansas City, Missouri, United States

Stir Trek 2022

May 2022 Columbus, Ohio, United States

Devintersection & AngleBrackets Spring 2022

April 2022 Las Vegas, Nevada, United States

.NET Virtual Conference 2022

January 2022

Devintersection & AngleBrackets Fall 2021

December 2021 Las Vegas, Nevada, United States

Granite State Code Camp 2021

November 2021 Manchester, New Hampshire, United States

TechBash 2021

October 2021 Mount Pocono, Pennsylvania, United States

KCDC 2021

September 2021 Kansas City, Missouri, United States

Azure Summit

September 2021

Microsoft Azure + AI Conference Spring 2022

April 2021 Las Vegas, Nevada, United States

Granite State Code Camp 2020

November 2020 Manchester, New Hampshire, United States

PhillyTech365

July 2018 Philadelphia, Mississippi, United States

KCDC 2018

July 2018

Music City Tech 2018

May 2018 Nashville, Tennessee, United States

Joseph Guadagno

Senior Director, Technology at Rocket Mortgage, .NET Foundation Board of Directors, Organizer of Desert Code Camp, "Microsoft Developer Services" MVP, Telerik Ninja

Chandler, Arizona, United States