Most Active Speaker

Joseph Guadagno

Joseph Guadagno

.NET Foundation Board of Directors (President), Organizer of Desert Code Camp, "Microsoft Developer Services" MVP, Telerik Ninja, and VP of IT at RT²

Chandler, Arizona, United States

Joe Guadagno 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, as President and has been a Microsoft MVP in .NET for more than 14 years. 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
  • GitHub Actions
  • GitHub
  • Uno Platform
  • Visual Studio
  • dev containers
  • Debugging

Resources for the Modern Learner

The modern learner faces a plethora of learning resources, from online courses and podcasts to blogs and books. How can they navigate this abundance of information and choose the best resources for their needs? How can they assess the quality, credibility, and relevance of the resources they encounter? And how can they use them effectively to achieve their learning goals? In this session, we will explore these questions and provide practical tips and tools for finding, evaluating, and using learning resources in the digital age. We will also discuss some of the challenges and opportunities that the modern learner faces, such as information overload, fake news, personalized learning, and lifelong learning. Whether you are a student, a professional or a lifelong learner, this session will help you make the most of the learning resources available to you.

Using Azure Key Vault to Protect Your Application Secrets

Azure Key Vault is a cloud service that provides a secure and centralized way to store and manage your application secrets, such as passwords, encryption keys, certificates, and connection strings. In this session, you will learn how to use Azure Key Vault to protect your application secrets from unauthorized access, rotation, expiration, and auditing. You will also learn how to integrate Azure Key Vault with other Azure services and tools, such as App Service, Functions, Logic Apps, Visual Studio Code, and PowerShell. By the end of this session, you will be able to leverage Azure Key Vault to enhance the security and compliance of your applications.

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 :)

Open-Source for All

Contributing to and using open-source software is a valuable practice for students, hobbyists, and professionals in various technology fields. Open-source software offers many benefits, such as transparency, reproducibility, collaboration, and innovation. However, contributing to and using open-source software also poses some challenges, such as quality assurance, documentation, licensing, and sustainability. In this session, we present an overview of the current state of open-source software and discuss some best practices and recommendations for both contributors and users. I will also highlight some of the opportunities and future directions for open-source software development and adoption.

.NET Workshop with Hands-On API Building

Join us for an all-day workshop where you will learn about the latest features and enhancements in .NET, ASP.NET Core, and Visual Studio. You will discover:

- What’s New in .NET
- ASP.NET Core Fundamentals
- Building Web Apps with ASP.NET Core
- Building Web APIs with ASP.NET Core
- Hands on Lab - Creating a RESTful API with ASP.NET Core with a database
- Debug your code efficiently with Visual Studio, using breakpoints, watch windows, and diagnostic tools

This workshop will help you master the skills and tools you need to create high-quality web applications. You will also have the opportunity to ask questions and get feedback from the instructor.

Target Audience
This workshop is geared toward individuals getting started with ASP.NET Core or not familiar with how modern ASP.NET Core works. Attendees should have experience with .NET and an understanding of basic web programming paradigms.

Requirements
- Visual Studio or JetBrains Rider
- .NET 6 or later, 8 is preferred
- .NET Workload of ASP.NET and web development
- git client
- A working internet connection
- Ability to install software on your machine

Protecting a .NET API with Microsoft Identity Platform (Microsoft Entra)

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 Microsoft Entra (formally 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 Microsoft Entra (formally Azure Active Directory) 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.

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.

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

Dev Containers. What are they and why do you need them?

You're onboarding a new team member, or your team recently inherited a project that uses a different SDK/framework version than your current project uses. What do you do? Install the old SDK/framework versions? Can they even be installed at the same time on the same machine? What if I told you there was a way to accomplish this with little to no effort on your part? Well, with Visual Studio Code, Docker, and the Dev Containers extension, you can. Dev containers can help you easily on-board new people to your projects, allow for cleaner machines with greater support for multiple SDKs/Framework, and be able to develop/debug/run your solution from anywhere without Visual Studio Code. Oh, and put an end to "It works on my machine"

In this talk, I’ll walk through how you can set up a dev container to support your application development, without installing the SDK/framework on your machine. I’ll show you how to get started and how you can solve the age-old problem of “It works on my machine!”. As a bonus, if your code is hosted on GitHub, I’ll show you how you can run/edit/debug your project right from GitHub.com without Visual Studio Code on your machine.

Monitoring and Troubleshooting Azure Applications with Azure Application Insights

Azure Application Insights is a service that enables you to collect, analyze, and act on telemetry data from your Azure and on-premises applications. In this session, you will learn how to use Azure Application Insights to:

- Set up alerts on performance and availability issues
- Track application usage and performance metrics
- Instrument your application code without redeployment
- Search traces and exception logs to diagnose errors
- Monitor mobile applications across different platforms
- Analyze request load, server performance counters, and response times across dependencies
- Define custom metrics and perform multi-dimensional analysis
- Correlate exceptions, mobile application crashes, and failed requests with events and traces

You will also see how Azure Application Insights integrates with other Azure Monitor services to provide a comprehensive monitoring solution for your applications. This session will help you improve your application quality, reliability, and user satisfaction with Azure Application Insights.

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.

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

Michigan Technology Conference 2024 Sessionize Event

March 2024 Pontiac, Michigan, United States

Orlando Code Camp 2024 Sessionize Event

February 2024 Sanford, Florida, United States

CodeMash 2024 Sessionize Event

January 2024 Sandusky, Ohio, United States

ESPC23 - European SharePoint, Office 365 & Azure Conference Sessionize Event

November 2023 Amsterdam, The Netherlands

TechBash 2023 Sessionize Event

November 2023 Mount Pocono, Pennsylvania, United States

Developers Conference 2023 Sessionize Event

July 2023 Port Louis, Mauritius

NDC Oslo 2023 Sessionize Event

May 2023 Oslo, Norway

CodeMash 2023 Sessionize Event

January 2023 Sandusky, Ohio, United States

Devintersection & Azure Data Conference Fall 2022 Sessionize Event

December 2022 Las Vegas, Nevada, United States

Update Conference Prague 2022 Sessionize Event

November 2022 Prague, Czechia

TechBash 2022 Sessionize Event

November 2022 Mount Pocono, Pennsylvania, United States

KCDC 2022 Sessionize Event

August 2022 Kansas City, Missouri, United States

Stir Trek 2022 Sessionize Event

May 2022 Columbus, Ohio, United States

Devintersection & AngleBrackets Spring 2022 Sessionize Event

April 2022 Las Vegas, Nevada, United States

philly.NET Code Camp 2022 Sessionize Event

March 2022

.NET Virtual Conference 2022 Sessionize Event

January 2022

CodeMash 2022 Sessionize Event

January 2022 Sandusky, Ohio, United States

Devintersection & AngleBrackets Fall 2021 Sessionize Event

December 2021 Las Vegas, Nevada, United States

Granite State Code Camp 2021 Sessionize Event

November 2021 Manchester, New Hampshire, United States

Azure Community Conference 2021 Sessionize Event

October 2021

TechBash 2021 Sessionize Event

October 2021 Mount Pocono, Pennsylvania, United States

KCDC 2021 Sessionize Event

September 2021 Kansas City, Missouri, United States

Azure Summit Sessionize Event

September 2021

Microsoft Azure + AI Conference Spring 2022 Sessionize Event

April 2021 Las Vegas, Nevada, United States

philly.NET Code Camp 2021 Sessionize Event

January 2021

Granite State Code Camp 2020 Sessionize Event

November 2020 Manchester, New Hampshire, United States

PhillyTech365 Sessionize Event

July 2018 Philadelphia, Mississippi, United States

KCDC 2018 Sessionize Event

July 2018

Music City Tech 2018 Sessionize Event

May 2018 Nashville, Tennessee, United States

Joseph Guadagno

.NET Foundation Board of Directors (President), Organizer of Desert Code Camp, "Microsoft Developer Services" MVP, Telerik Ninja, and VP of IT at RT²

Chandler, Arizona, United States