Jon Rumsey

An online markdown blog and knowledge repository.


Project maintained by nojronatron Hosted on GitHub Pages — Theme by mattgraham

MSBuild 2024 Notes

Microsoft Build is a yearly conference aimed at .NET developers and focuses on Visual Studio, languages like C#, F#, and Visual Basic, developing solutions using Azure or Microsoft 365, and updated information on .NET.

MSBuild took place on 21 May through 23 May, 2024.

Table of Contents

Sessions I Could Not Attend And Want To View

Infusing .NET Apps with AI

Speakers:

One Liner To Incorporating AI

Semantic Kernel:

Code:

Language Models:

General Comments:

Developer Experience Improvements in Windows

Speakers:

Team Products:

"Tools focused on keeping developers within their flow"

PowerToys Updates

PowerToys Projects:

Dev Home New Features

Your Development Control Center:

Dev Home Environments:

WinGet Configuration

Command Line Improvements

Sneak Peeks

Visual Studio Extension Windows Sandbox:

Resources

Root URL aka.ms:

Root URL microsoft:

DotNET API Development End-to-End

Presenter: Sayed Hashimi, MSFT

Essentials of building Robust APIs:

Implement seamless API Development Lifecycle

DotNET API End-to-End Overall Notes

Things Sayed did:

How To Quickly Build a DotNET WPF Dashboard Application

Speaker: Greg Lutz, .NET UI Control Product Manager, Mescius Inc.

Dashboard Considerations

Chosing a Platform

WinForms:

WPF:

WinUI (Win 11+):

Dashboard Structure

Architectural Notes

Mescius Reference

Nuget: Component One aka "C1" from Mescius Inc.

Modern Full Stack Web Development with ASP.NET Core and Blazor

Presenter: Daniel Roth, Principal Product Manager, MSFT

ASP.NET Core and Blazor Overview

New Blazor WebApp Demo

Authentication

  1. Scaffold a new item.
  2. Select Authentication.
  3. Add Blazor Identity and point to a new or existing SQL-based data store.
  4. Setup "core identity" for use. This generates Razor Files implemented in Blazor to support login, authorization, and logout.
  5. Add migrations for both the Identity Store and any existing DBs to the Service Dependency using the UI elipses menu on the Connected Services view.

Remember: Registration will use an auto-authorize flow, that should be replaced with a real 2FA flow.

.NET Aspire With Blazor

Bonus Blazor: AI for Apps

Drop-in .NET "Smart Components"!

ASP.NET and Blazor Key Takeaways

Scaffolding: Create a model and use the Scoffolding tool in the Add Item submenu to generate front-end, back-end, and ORM code!

Fast Development and Experimentation: Blazor can be used to rapidly trial-run new ideas. Once the project has been fleshed-out and is ready for more formal development, Blazor can again be used as an Enterprise-ready or Cloud-ready full-stack framework.

User State: Remember that Blazor maintains User State while running on Server-Side. If the connection is broken (i.e. the server service restarts) that data will be lost, causing a jarring end-user experience.

Focus for .NET 8:

Note: Keep an eye on these for the .Net 9.0 release party coming in Fall 2024.

Note2: Dan demoed an example of improved Reconnection Logic in .NET 9 preview vs. .NET 8.0.

Running .NET on the NES

Speaker: Jonathan Peppers, Principal Software Engineer, .NET, .NET MAUI, MSFT

General Notes:

Jonathan's Thought Process:

Developer Experience Hard Part
Write a C Sharp reference assembly for neslib API Learn NES binary format, write header in C Sharp
dotnet new nes project template Just understand enough to write 'Hello World'
MSBuild tasks and targets for dll to nes Use System.Reflection.Metadata to convert Main() to 6502 assembly
Write unit tests and verify expected output Write Super Mario is C Sharp

Advice for doing this yourself:

Project GitHub:

Create Superior Experiences with WinUI and WPF

Speakers:

MSFT Client Dev Investments: Windwos Native, Cross Platform Native, Hybrid, and Web!

What is a superior app experience?

Demos: Contoso Camera Manager and Contoso Studio.

Contoso Camera Manager (WPF):

Add fluency to a WPF App simply and easy, using .NET 9 and the WinUI 3 Gallery Tools and the new APIs.

Contoso Studio (WinUI 3 and WinAppSDK):

Fluent Design system and WinUI Gallery were used to help design the demo app.

Unleash The Potential Of APIs With Azure API Management

Speakers:

Overview Notes:

Highly Technical Talk - Hanselman and Toub

Presenters:

Humanizer:

Zero To Hero - Develop Your First App With Local LLMs On Windows

Presenters:

Goal: Walk away knowing how to make 2 apps using GitHub, PyTorch, SML, PDFs, ONNX, and RAG...all running locally!

ML Models:

AI GitHub Issue Labeler:

  1. PowerToys repo and VS Code on WSL: Issue Labels are manually created and applied to Issues in GitHub. Labels are not necessarly intuitive.
  2. Pick an AI Model and Framework.
  3. Install Dependencies and runtimes.
  4. Train (fine tune) the Model on custom data.
  5. Run the Model.

AI GitHub Issue Build Notes:

What is ONNX?

Personal PDF Query Tool:

  1. 100% local!
  2. Can't send entire PDF to Phi3 (too much data), so utilize RAG and find just enough PDF pages to set the context via RAG instead.
  3. SLM will take grounting from RAG. Fine-tuning is used for static data. RAG is used for dynamic data.
  4. Vector Empbeddings Model is resulted, and is used for searching, grouping, classification, and recommendations.
  5. SLM receives the data, and uses prediction to complete input generation.

Essentially, all this work creates a "semantic index" that is used to respond to queries by a user.

PDF RAG Query Tool Build Notes:

Leverage models locally without having to understand every detail about how fine tuning and RAG!

Get started by using "AI Toolkit".

Use OLlama for local testing!

Windows Subsystem for Linux, Your Enterprise Ready Multitool

Presenters:

Overview:

"Get your work done on Linux, even while working in Windows." - Craig Loewen

Latest Improvements:

Details on DNS in WSL and Latest Improvements:

Details of NAT Networking in WSL and Latest Improvments:

Security in WSL:

Zero Trust:

Plugin Support for WSL:

Coming Soon:

Whats New In C Sharp 13

Presenters:

Starter Info:

General Notes:

Question of the day: "What other types of Types can be extended by Extensions?" -Fred, on the C Sharp team.

Level Up With DevBox

Presenter: Scott Hanselman, VP Developer Community, MSFT, "Programmer"

General Notes:

Kayla Cinnamon - Windows Team MSFT

Maddie Montaquila Sr Prgram Manager, .NET Team

Vickie Harp, Principal Group Product Manager

Mike Grie, Sr. Engineer, Windows Terminal/Command Line Experience

AI Safety and Security Fundamentals

Presenter: Neil Coles, AI Safety and Security Empowerment Lead, MSFT

General Notes:


Proactice to Reactive actions:

Prevention:


Detect and Mitigate- Secure pipelines


Test/QA


Test/QA


As you get farther down the above list, the potential costs go up rapidly.

Safety and Security are not distinct.

Use Threat Model designs to better understand areas where threat risks exist.

Jailbreaking:

XPIA: Cross-Prompt Injection Attacks

Advice:

Enterprise Class NGINX Plus Without Operational Toil

Dona interviewed Brian Ehlert, Director, Product Management, F5 NGINX.

General Notes:

Scott and Mark Learn AI

Presenters:

Live build an AI ChatBot using C#, .NET MAUI, Semantic Kernel, Github Chat (custom box), to clean Scott's desktop:

.NET Aspire Dev On Any OS with VS Family

Presenters:

What does .NET Aspire mean for .NET cloud native? Simplify deployment and onboarding!

Requirements to get started with .NET Aspire:

Note: New .gitignore using dotnet new gitignore

New: .NET Scaffold!

C# Dev Kit:

Aspire, Visual Studio, and Azure can work together to spin-up, develop, test, publish, and monitor apps!

Dashboard Notes:

Publishing in Visual Studio:

Demystify Cloud-Native Development with .NET Aspire

Presenters:

.NET Aspire is now GA as of a couple days ago! Was previewed in November.

Scenario:

.NET Aspire Aspires to Solve This Problem:

Aspire Dashboard:

Aspire "just codifies the patterns that your probably already using". - Damian

Add a Service Defaults Project

After the Service Defaults Project references are added, then the Structured Logs, and Distrubuted Tracing data will appear in the Dashboard.

Note: .NET Aspire performs these actions automatically, and the demo is just walking through what .NET Aspire does for demonstration purposes.

Note: Drag-and-drop Project files on other Project files in Visual Studio adds a Reference to the dragged Project to the dropped Project!!!

Aspire Components:

David Fowler Demos Stuff:

These notes cannot possibly describe just how good the presentation and demoes were. Find the recorded version in the future and watch it.

Build and Deploy to Azure with GitHub

Speakers:

They will build a RAG (Retreival Augmented Generation) app live with demos.

Start in a Github Repo:

  1. Navigate to Code button.
  2. Click on the CodeSpaces tab.
  3. Create a CodeSpace with the '+' sign or the '...' to configure a DevContainer.
  4. Choose to open VSCode in the browser, or allow opening in local VS Code.

Copilot Chat is available:

Building a Project - how to take working code in CodeSpaces, up and running in Azure?

AZD Pipeline Config:

Deploy Using Github Actions:

Automating Workflows:

Operate: Once build and publish is completed with established pipelines, consider "day 100":

Additional Information Based on Hands-On Experience

  1. Open Codespaces in the repo to be deployed (same as above).
  2. Install Azure CLI using a new Codespaces Terminal: curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash
  3. Login using az login --use-device-code. Skipping the device code argument failed for me on multiple attampts.
  4. ...Ran into Azure issues that I have to resolve before continuing.

Building Custom Copilots with Copilot Studio

Copilot Studio has solutions for every industry.

Building a Custom Copilot is easy:

Process to Build a Copilot:

Copilot Investment Themes:

"Build & Publish, Analyze & Improve", rinse and repeat.

Using the "Creation Experience":

  1. Describe your custom Copilot in Copilot Studio using the Copilot Chat interface.
  2. Describe what to include, using plain english, the focus of your custom Copilot.
  3. Provide any Tips and respond to other prompts from Copilot Studio Copilot chat.
  4. Describe the topics and tasks the copilot should NOT address.
  5. Click Create!
  6. Test and tweak your custom Copilot.
  7. Publish your customer Copilot.

Note: It is possible to fill out a Form and configure your custom Copilot that way, instead of using the Copilot Chat interface.

After configuration, your custom Copilot appears as a Copilot Chat interface that has the configuration, description, and other items like knowledge sources, etc. The Chat interface should be used to test the custom Copilot at this point. Adjustments can be made from this view, as needed.

Extending Your Custom Copilot with Additional Knowledge and Actions:

Fully Generated to Fully Authored processing and respponses are possible using a custom Copilot:

Note: There are additional settings that can be applied to Topic Details at anytime during development and testing of the custom Copilot. These settings help to define how many times to reprompt, and other aspects.

Adding Files As Knowledge Sources:

Other features overview:

Keynote - Wednesday

"Next Generation AI For Developers With The Microsoft Cloud"

Primary Speaker: Scott Guthrie

Charles Lammanna:

Scott Guthrie on Azure AI:

Eric Boyd:

Seth Juarez:

Sarah Bird (Chief Prod Officer at Responsible AI):

Eric Boyd:

Scott Guthrie:

Arun Ulag: Corp VP Azure Data, MSFT

Christian Klienerman, EVP of Product, Snowflake

Back to Scott Guthrie:

Julie Liuson President, Developer Division, MSFT and John Lambert corp VP and Security Fellow on MSFT Intelligence:

Scott Guthrie:

Extend Microsoft Copilot Using Copilot Studio

Presenters:

Copilot for MSFT 365 is 'the keystone service' now but Copilot Studio is key (Mike):

Copilot Extensions (Mike):

What's instide a Copilot Extension (Jeff)?

Your Copilot, Your Way (Mike):

Demo Notes:

"Copilot Studio is the home of Copilot Extensibility"

Publishing and Governance, behind the scenes (Jeff):

Why Certify Connectors and Plugins? (Mike):

The REST API (coming soon) (Mike):

AI Strategy is anchored in Data Strategy.

No-code, Low-code, or dev code - all are supported.

Maximize Joy Minimize Toil With Greater Dev Experiences

Presenters:

Goals:

Shayne Boyer demo:

Announcement: .NET Aspire General Availability GA announcement on .NET Blog

Building Intelligent Apps

Announcement: AI Toolkit for VS Code

John Lam Demo: Building Intelligent Apps

Following Paved Paths:

Mark Weitzel Demo: Platform Engineering with Github Copilot & Azure

AI Everywhere Breakout Session

Accelerate software development from PC to Cloud.

Speakers:

Focusing on real world AI, and areas for growth:

NGINX (Brian Ehlert)

Microsoft (Lior Kamrat)

Intel (Ken Koyanagi)

Imagine Cup Finals

There were 3 finalists, 2 of them were particularly interesting to me:

The other finalist was a team that developed hardware to detect emissions in steel fabrication plants, integrated with AI. Great idea for sure, and I wish that team well.

Such a cool and inspiring event overall!

Keynote - Tuesday

"Information at your Fingertips" - Bill Gates, 30 years ago. MSFT continues this vision, now with AI.

Now, the extension to that is "With AI, you can build what matters".

Highlights from Satya's keynote:

Rajesh had some interesting canned demonstrations on Team Copilot, Copilot for MSFT 365, etc.

Jeff Teper

Pavan Davuluri

Kevin Scott

Resources

.NET Announcements and Updates from Microsfot Build 2024 from the .NET Team.

WinUI 3 Gallery simplifies style and performance enhancements for your WinUI 3 and WPF apps.

Get Started with WinUI.

Windows Subsystem for Linux (WSL) Documentation.

DotNET 9 Previews (and eventually, releases).

DotNET Aspire GA Announcement.

Github Copilot for the CLI.

DotNET Apire Collections on MSFT Leran.

Windows Developer Center.

AI Toolkit for Visual Studio Code Overview (previously named "Windows AI Studio").

SLM: Small Language Model.

Phi-3 SLM.

Mistral SLM.

ONNX Runtime supports Phi-3 minim models across platforms and devices.

Direct Machine Learning DirectML Overview: A low-level API that requires DirectX 12-compatible hardware.

Microsoft 365 Blog article about Microsoft Copilot's new capabilities.

Intel Accelerator Engines and Intel AMX.

Take the MSFT Learn Challenge.

Return to ContEd Index.

Return to Root README.