Skip to content

Windows Development

September 29, 2023
March 2, 2020

learn-to-code

Windows Developer Blog -
DotNetCurry.com: Learn .NET Core, ASP.NET MVC, C#, Azure DevOps, JavaScript | Tutorials for Beginners and Experienced Developers

Developing Desktop applications in .NET | DotNetCurry !important
Download a Windows 10 virtual machine - Windows app development Win10 VM

Microsoft releases free Windows Apps programming course - gHacks Tech News
Windows 10 development for absolute beginners | Channel 9
Windows-Readiness/AbsoluteBeginnersWin10
Developer’s Guide to Windows 10 | Channel 9

Choose your app platform | Microsoft Docs
UWP vs. WPF · jbe2277/waf Wiki
With Project Reunion Microsoft is Attempting to Unify Win32 and UWP APIs
non-UWP apps are called "desktop apps" in Microsoft parlance

Hosted App Model - Windows Developer Blog

.NET Runtime

see c-sharp.md#.net-runtime

Visual Studio

microsoft/vswhere: Locate Visual Studio 2017 and newer installations
Finding installed Visual C++ tools for Visual Studio 2017 | C++ Team Blog

Display WPF Trace Information - Visual Studio | Microsoft Docs

Installer

Squirrel/Squirrel.Windows: An installation and update framework for Windows desktop apps

Inno Setup

Inno Setup
Inno Setup Help

Create Software Installer with Inno Setup - YouTube
Python 101: Episode #44 - Creating an Installer with Inno Setup - YouTube

NSIS

NSIS Wiki
NSIS Users Manual
Nullsoft Scriptable Install System - Wikiwand

Using NSIS To Make Installer Packages

Windows Installer

Windows Installer - Win32 apps | Microsoft Docs
Reducing Patch Size - Win32 apps | Microsoft Docs

UI thread

UI thread is of thread ID 1 (Thread.ManagedThreadId Property (System.Threading))
All UI drawing should be called with UI thread

This can be archived with Dispatcher

public class MessageBoxWrapper
{
    public static MessageBoxResult Show(string msg, string title, MessageBoxButton buttonStyle, MessageBoxImage image)
    {
        var result = MessageBoxResult.None;

        if (Application.Current.Dispatcher.CheckAccess())
        {
            // Determines whether the calling thread is the thread associated with this Dispatcher.
            result = MessageBox.Show(Application.Current.MainWindow, msg, title, buttonStyle, image);
        }
        else
        {
            // Invoke to block the thread until MessageBox is dismissed
            Application.Current.Dispatcher.Invoke(DispatcherPriority.Normal, new Action(() => {
                result = MessageBox.Show(Application.Current.MainWindow, msg, title, buttonStyle, image);
            }));
        }

        return result;
    }
}

UWP

UWP Documentation - UWP app developer - UWP applications | Microsoft Docs
What's a Universal Windows Platform (UWP) app? - UWP applications | Microsoft Docs
Create a Universal Windows Platform (UWP) App with Visual Studio and C# | Microsoft Docs
UWP uses .NET Native for release build, which compiles to machine code

Microsoft .NET - .NET and Universal Windows Platform Development | Microsoft Docs 2015; custom-build configuration for debugging .NET Native

API

Windows UWP Namespaces - Windows UWP applications | Microsoft Docs
Windows.UI.Xaml.Controls
Windows.UI.Xaml.Controls Namespace - Windows UWP applications | Microsoft Docs

React Native for Window & Mac

Blog · React Native for Windows & Mac
microsoft/react-native-windows: A framework for building native Windows apps with React.

Getting Started · React Native for Windows & Mac

Sample apps/Toolkit

#WinUI

microsoft/Windows-universal-samples: API samples for the Universal Windows Platform.
microsoft/WindowsTemplateStudio: Windows Template Studio quickly builds a UWP app, using a wizard-based UI to turn your needs into a foundation of Windows 10 patterns and best practices.
Van Arsdel Sample App Released! - Windows Developer Blog

Microsoft.Toolkit.Uwp.UI
The Windows Community Toolkit - YouTube
windows-toolkit/WindowsCommunityToolkit: The Windows Community Toolkit is a collection of helper functions, custom controls, and app services.
Windows Community Toolkit Documentation - Windows Community Toolkit | Microsoft Docs

Telerik.UI.for.UniversalWindowsPlatform
Getting Started with Telerik UI for UWP
telerik/UI-For-UWP: This repo contains the source code for Telerik UI for Universal Windows Platform (UWP), which includes 20+ UI controls for developers building UWP applications.
Adaptive UI for building Windows 10 apps - UI for UWP
What's Next for Telerik UI for UWP - YouTube

Runtime

this seems to be a .NET Native build step used in Visual Studio

UWP runs on .NET Core (and .NET Native)
By adding the meta package Microsoft.NETCore.UniversalWindowsPlatform

dotnet/README.md at master · microsoft/dotnet

Web Request

httpclient
common function
examples

Visual Layer

"CSS" of XAML, allows custom draw components
Visual Layer - UWP applications | Microsoft Docs
Interop between XAML and the Visual Layer - Windows Developer Blog
Animations with the Visual Layer - Windows Developer Blog

Background Task

Guidelines for background tasks - UWP applications | Microsoft Docs
Support your app with background tasks - UWP applications | Microsoft Docs

In-process and out-of-process variant
Respond to Triggers (like Andriod's Intent)
30s execution time limitation

Windows-universal-samples/Samples/BackgroundTask at master · microsoft/Windows-universal-samples

WPF

From a 1000-meter view, you can think of WPF as a rich layer over DirectX and Windows Forms as thinner layer over GDI Plus.

Windows Presentation Foundation (WPF) for .NET Core documentation | Microsoft Docs
What is Windows Presentation Foundation - WPF | Microsoft Docs
Hello World app with WPF in C# - Visual Studio | Microsoft Docs

Welcome - The complete WPF tutorial
Top Features Of Windows Presentation Foundation (WPF)

Events - WPF | Microsoft Docs
Layout - WPF | Microsoft Docs
Styles and templates - WPF | Microsoft Docs

dotnet/wpf: WPF is a .NET Core UI framework for building Windows desktop applications.

IAmTimCorey - YouTube
Intro to WPF: Learn the basics and best practices of WPF for C# - YouTube

Graphics rendering overview - WPF .NET Framework | Microsoft Docs
3D Graphics Overview - WPF .NET Framework | Microsoft Docs
Animation Overview - WPF .NET Framework | Microsoft Docs
A Critical Deep Dive into the WPF Rendering System | Jer's Hacks
How to: Render on a Per Frame Interval Using CompositionTarget - WPF .NET Framework | Microsoft Docs

2,000 Things You Should Know About WPF | Everything a WPF Developer Needs to Know, in Bite-Sized Chunks

API

Microsoft.Toolkit.Wpf.UI
Microsoft.Toolkit.Wpf.UI.Controls Namespace | Microsoft Docs
System.Windows.Controls
System.Windows.Controls Namespace | Microsoft Docs

WPF Navigation

NavigationService Class (System.Windows.Navigation) | Microsoft Docs
Navigation with MVVM | Rachel Lim's Blog
Navigating between views in WPF / MVVM - technical-recipes.com

NavigationService in MVVM Light V5 | Around and About .NET World

Everything about implementing Back Navigation In UWP App

Virtualization

Optimize control performance - WPF .NET Framework | Microsoft Docs
XAML Anti-Patterns: Virtualization

VirtualizingStackPanel Class (System.Windows.Controls) | Microsoft Docs
ListView Class (System.Windows.Forms) | Microsoft Docs

Sample apps/Toolkit

Material Design In XAML depends on MahApps.Metro
MaterialDesignInXAML/MaterialDesignInXamlToolkit: Google's Material Design in XAML & WPF, for C# & VB.Net.
Home · MaterialDesignInXAML/MaterialDesignInXamlToolkit Wiki

Keboo/MaterialDesignInXaml.Examples: A collection of small samples using MaterialDesignInXaml.
Keboo/ShowMeTheXAML: A WPF component making it easy to show the corresponding XAML for WPF custom styles and controls required by "Material Design In XAML"
c# - The name "XamlDisplay" does not exist in the namespace - Stack Overflow
C# and WPF - Material Design in Xaml - YouTube
Material Design In XAML Toolkit An Introduction - YouTube

MahApps.Metro Documentation
MahApps/MahApps.Metro: A framework that allows developers to cobble together a better UI for their own WPF applications with minimal effort.

firstfloorsoftware/mui: Modern UI for WPF

samples/wpf at master · dotnet/samples

UWP features in WPF apps

Modernize your desktop apps for Windows | Microsoft Docs

Desktop Applications with XAML. Part 2: Desktop Bridge – csharp.christiannagel.com use WinRT API

Modernizing Desktop Apps on Windows 10 with .NET Core 3.0 and much more | Microsoft Build 2018 | Channel 9
Desktop Applications with XAML. Part 3: XAML Islands – csharp.christiannagel.com

UWP controls in desktop apps | Microsoft Docs XAML islands
XAML Islands - A deep dive - Part 1 - Windows Developer Blog
XAML Islands - A deep dive - Part 2 - Windows Developer Blog
windows-toolkit/Microsoft.Toolkit.Win32: This repository contains all controls for WPF and WinForms to simplify and demonstrate usage of UWP controls

How to Bring Your Classic Desktop App to the New Millennium
Getting Started with XAML Islands: Host UWP Control in WPF
Getting Started with XAML Islands: Host UWP Control in WPF

Modernize your desktop app using the Visual layer | Microsoft Docs
Using the Visual Layer with WPF | Microsoft Docs

XAML

XAML are compiled to .Net code.
XAML overview - WPF .NET | Microsoft Docs

UWP uses WindowsXamlManager Class (Windows.UI.Xaml.Hosting) - Windows UWP applications | Microsoft Docs
XAML Island uses DesktopWindowXamlSource Class (Windows.UI.Xaml.Hosting) - Windows UWP applications | Microsoft Docs

XAML platform - UWP applications | Microsoft Docs
Desktop Applications with XAML. Part 1: UWP – csharp.christiannagel.com

microsoft/microsoft-ui-xaml: Windows UI Library: the latest Windows 10 native controls and Fluent styles for your applications
microsoft/Xaml-Controls-Gallery: This app demonstrates the controls available in the Fluent Design System and Xaml.
microsoft/InventorySample: Sample UWP application for LOB scenarios
Design and UI for UWP - UWP applications | Microsoft Docs
Tutorials on various controls

XAML Spy Express edition is free

Uno Playground XAML edit on Web

A significant update to the XAML Designer | Visual Studio Blog

<!-- Styling with Markup extensions -->
<Window x:Class="index.Window1"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="Window1" Height="100" Width="300">
    <Window.Resources>
        <SolidColorBrush x:Key="MyBrush" Color="Gold"/>
        <Style TargetType="Border" x:Key="PageBackground">
            <Setter Property="BorderBrush" Value="Blue"/>
            <Setter Property="BorderThickness" Value="5" />
        </Style>
    </Window.Resources>
    <Border Style="{StaticResource PageBackground}">
        <StackPanel>
            <TextBlock Text="Hello" />
        </StackPanel>
    </Border>
</Window>

Handle mouse event

Use microsoft/XamlBehaviorsWpf in XAML rather than Code Behind

Open Sourcing XAML Behaviors for WPF - .NET Blog
Use Microsoft.Xaml.Behaviors.Wpf instead the System.Windows.Interactivity · Issue #3400 · MahApps/MahApps.Metro

<Grid>
 <Rectangle x:Name="Color01" Fill="#FFF4F4F5" HorizontalAlignment="Left" Height="100" Margin="10,29,0,0" Stroke="Black" VerticalAlignment="Top" Width="100" MouseDown="Color_MouseDown">
   <behaviors:Interaction.Triggers>
      <behaviors:EventTrigger EventName="MouseLeftButtonDown">
          <behaviors:InvokeCommandAction Command="{Binding MouseDownCommand}"/>
      </behaviors:EventTrigger>
   </behaviors:Interaction.Triggers>
 </Rectangle>
</Grid>
<Button Style="{StaticResource MaterialDesignToolButton}" Width="24" Height="24" Padding="0" ToolTip="{DynamicResource ResourceKey=DeleteCase}" Click="DeleteCase_Click" Foreground="Orange">
    <Button.IsEnabled>
        <MultiBinding Converter="{StaticResource IsDeleteEnabledConv}">
            <Binding Path="DataContext.OfflinePredictionRunning" RelativeSource="{RelativeSource FindAncestor, AncestorType={x:Type Page}}" />
            <Binding Path="CaseId" UpdateSourceTrigger="PropertyChanged"/>
            <Binding Path="DataContext.CaseRunningOfflinePrediction" RelativeSource="{RelativeSource FindAncestor, AncestorType={x:Type Page}}"/>
        </MultiBinding>
    </Button.IsEnabled>
    <materialDesign:PackIcon Kind="TrashCan" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Button>
private void Color_MouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e) {}

Data binding

Data binding - UWP applications | Microsoft Docs
Data binding in depth - UWP applications | Microsoft Docs
Binding markup extension' - UWP applications | Microsoft Docs
UWP Basics | Microsoft Press Store
Part 4. Data Binding Basics - Xamarin | Microsoft Docs

Data binding overview - WPF .NET | Microsoft Docs

UWP Binding vs. XBind - CodeProject

UWP Basics | Microsoft Press Store
UWP Binding vs. XBind - CodeProject

PropertyChangedEventHandler Delegate (System.ComponentModel) | Microsoft Docs
PropertyChangedEventHandler Delegate (Windows.UI.Xaml.Data) - Windows UWP applications | Microsoft Docs

MVVM

Complexity:

leave the XAML code behind (mostly) empty, use MVVM patterns

The Model-View-ViewModel Pattern - Xamarin | Microsoft Docs
Master the Basics of MVVM for Building WPF Applications - IntelliTect

Rockford Lhotka - Using the MVVM pattern requires a framework
wpf - How to choose NOT to use a framework (Caliburn.Micro, etc.) in a given MVVM application? - Software Engineering Stack Exchange
The Evolving Infrastructure of .NET Core | .NET Blog

.NET MAUI for Beginners - YouTube
MVVM for Beginners: Model-View-ViewModel Architecture for Xamarin.Forms, .NET MAUI, WPF, UWP, & More - YouTube code-behind -> ViewModel, BindingContext and DataType in XMAL

Essentials Of MVVM 💻📱🖥️
The Big MVVM Template - CodeProject

canton7/Stylet: A very lightweight but powerful ViewModel-First MVVM framework for WPF for .NET Framework and .NET Core, inspired by Caliburn.Micro.

Build high-performance node-based editors quickly | Nodify

Caliburn.Micro · 'Xaml made easy' · Caliburn.Micro
Documentation · Caliburn.Micro

MVVM Toolkit

Introduction to the MVVM Toolkit - .NET Community Toolkit | Microsoft Learn cross platform
Announcing .NET Community Toolkit 8.0! MVVM, Diagnostics, Performance, and more! - .NET Blog

Source Generators | Microsoft Learn
Support for source generators · Issue #4215 · OmniSharp/omnisharp-vscode

CommunityToolkit/dotnet: .NET Community Toolkit is a collection of helpers and APIs that work for all .NET developers and are agnostic of any specific UI platform. The toolkit is maintained and published by Microsoft, and part of the .NET Foundation.
CommunityToolkit/MVVM-Samples: Sample repo for MVVM package

MVVM Source Generators: Never Write MVVM Boilerplate Code Again! - YouTube scratch -> MVVM Toolkit
What is the MVVM pattern, What benefits does MVVM have? - YouTube code-behind -> MVVM Toolkit

Windows Community Toolkit, Windows Only
Introduction to the MVVM Toolkit - Windows Community Toolkit | Microsoft Docs
CommunityToolkit/WindowsCommunityToolkit: The Windows Community Toolkit is a collection of helpers, extensions, and custom controls. It simplifies and demonstrates common developer tasks building .NET apps with UWP and the Windows App SDK / WinUI 3 for Windows 10 and Windows 11. The toolkit is part of the .NET Foundation.
Draft docs for the Microsoft.Toolkit.Mvvm package
Introduction to the MVVM Toolkit - Windows Community Toolkit | Microsoft Learn
Putting things together - Windows Community Toolkit | Microsoft Docs
Migrating from MvvmLight - Windows Community Toolkit | Microsoft Docs
Windows Community Toolkit Sample App - Microsoft Store Applications
C# MVVM Toolkit Demo - CodeProject

Prism

Introduction to Prism | Prism uses BindableBase as model base class
PrismLibrary/Prism: Prism is a framework for building loosely coupled, maintainable, and testable XAML applications in WPF, Windows 10 UWP, and Xamarin Forms.
Implementing the MVVM Pattern Using the Prism Library for WPF | Prism
Prism: Patterns For Building Composite Applications With WPF | Microsoft Docs
Getting Started: MVVM Pattern Using Prism Library in WPF
Brian Lagunas - Microsoft Author | Pluralsight

Flux/Reactive

.NET Flux Toolkit Nuget Announcement – Alex Dunn
SuavePirate/FluxToolkit: A super simple library to enable the implementation of Flux in .NET Applications such as Xamarin, UWP, WPF, and more.
The More Things Change - bitquabit React is Windows 1.0

ReactiveUI - An advanced, composable, reactive model-view-viewmodel framework
Building Cross-Platform Reactive .NET Apps - Artyom V. Gorchakov - Medium
Reactive MVVM Pattern On The .NET Platform - Artyom V. Gorchakov - Medium

MVVM Light

DEPRECATED, use mvvm-toolkit

MVVM Light Toolkit
MVVM Light Toolkit - Documentation
Getting Started With MVVM Light With WPF
WPF MVVM Introduction
Start with Galasoft MVVM Light Toolkit
Getting Started With MVVM Light With WPF
MVVM Light Toolkit Example
MVVM - IOC Containers and MVVM | Microsoft Docs
MVVM - Messenger and View Services in MVVM | Microsoft Docs
MVVM - Maximizing the Visual Designer’s Usage with Design-Time Data | Microsoft Docs
MVVM - Commands, RelayCommands and EventToCommand | Microsoft Docs
MVVM - Multithreading and Dispatching in MVVM Applications | Microsoft Docs
MVVM - The MVVM Light Messenger In-Depth | Microsoft Docs
MVVM Light – Code Tips

WinUI

Windows UI Library, controls and Fluent styles for applications. WinUI 3 aims to be framework independent.

Windows UI Library (WinUI) - Windows apps | Microsoft Docs
Windows UI Library Roadmap WinUI2 and WinUI 3
Windows UI Library (WinUI) - Windows apps | Microsoft Docs
Windows.UI.Xaml.Controls Namespace - Windows UWP applications | Microsoft Docs

WinUI 2

Microsoft.UI.XAML
Windows UI library - Windows UWP applications | Microsoft Docs
Getting started with the Windows UI library - Windows UWP applications | Microsoft Docs UWP+WinUI 2

WinUI 3

Windows UI Library (WinUI) 3 - Windows apps | Microsoft Docs
microsoft/Xaml-Controls-Gallery at winui3alpha
Building Modern & Performant Desktop Apps—Is WinUI 3.0 the Way to Go?
WinUI 3.0 Developer Experience and Tooling - Input Needed
How Does .NET 5 Do XAML? By Decoupling It from Windows with WinUI 3, C#/WinRT and More -- Visual Studio Magazine
WinUI 3 Preview 3 | Windows Dev

WinUI 3 is the native UI platform component that ships with the Windows App SDK (completely decoupled from Windows 10 and later SDKs).
WinUI 3 expand the scope of WinUI to include the full Windows 10 native UI platform, which will now be fully decoupled from the UWP SDK.
So WinUI 3 + WPF ≈ UWP windows PC application

To start using WinUI 3.0 developers must:

  1. Add the WinUI reference to their solution
  2. Update all names spaces in code behind to use the latest Microsoft. (Windows.UI --> Microsoft.UI)
  3. Update control references to ensure WinUI controls and not SDK controls are being loaded
  4. Test and verify

Winforms

dotnet/winforms: Windows Forms is a .NET Core UI framework for building Windows desktop applications. .NET wrapper around Win32 API

Media

NuGet Gallery | FFMpegCore 1.3.3

video - DirectShow, Media Foundation, DXVA, what? - Stack Overflow
About Media Foundation - Win32 apps | Microsoft Docs

.NET Core Image Processing | .NET Blog

ImageSharp Introduction
SixLabors/ImageSharp: A modern, cross-platform, 2D Graphics library for .NET

mono/SkiaSharp: SkiaSharp is a cross-platform 2D graphics API for .NET platforms based on Google's Skia Graphics Library. It provides a comprehensive 2D API that can be used across mobile, server and desktop models to render images.
SkiaSharp Namespace | Microsoft Docs

FFMpeg

NuGet Gallery | FFMediaToolkit 2.2.1
radek-k/FFMediaToolkit: FFMediaToolkit is a cross-platform video decoder/encoder library for .NET that uses FFmpeg native libraries. support streams, uses FFmpeg.AutoGen

Ruslan-B/FFmpeg.AutoGen: FFmpeg auto generated unsafe bindings for C#/.NET and Mono.

Accord.Video.FFMPEG Namespace support streams
Extract Frames from Video C# - Stack Overflow

CLI builders, for file based transcoding
rosenbjerg/FFMpegCore: A great way to use FFMpeg encoding when writing video applications, client-side and server-side. It has wrapper methods that allow conversion to all web formats: MP4, OGV, TS and methods of capturing screens from the videos.
AydinAdn/MediaToolkit: A .NET library to convert and process all your video & audio files.

Image Rendering

XAML ImageElement must happen in UI thread through Dispatcher
All renderings in XAML are asynchronous

var task = _imageElement.Dispatcher.RunAsync(CoreDispatcherPriority.Normal,
  async () =>
  {
      with var latestBitmap = getBitmap();
      await imageSource.SetBitmapAsync(latestBitmap);
  }
);

Graphics rendering overview - WPF | Microsoft Docs

Windows-universal-samples/Samples/CameraFrames/cs at master · microsoft/Windows-universal-samples · GitHub
Use OpenCV with MediaFrameReader - UWP applications | Microsoft Docs
Process media frames with MediaFrameReader - UWP applications | Microsoft Docs

opencvsharp/BitmapConverter.cs at master · shimat/opencvsharp · GitHub

https://stackoverflow.com/questions/21555394/how-to-create-bitmap-from-byte-array
https://docs.microsoft.com/en-us/dotnet/api/system.drawing.bitmap?view=dotnet-plat-ext-3.1
https://docs.microsoft.com/en-us/dotnet/api/system.drawing.image?view=dotnet-plat-ext-3.1

BitmapImage Class (Windows.UI.Xaml.Media.Imaging) - Windows UWP applications | Microsoft Docs

DirectX Interop

FallFury - A DirectX/C++/XAML Tutorial | Channel 9 2013
Direct3D Rendering Cookbook 2014

DirectX graphics and gaming - Win32 apps | Microsoft Docs
DirectX and XAML interop - UWP applications | Microsoft Docs
Module 3. Windows Graphics - Win32 apps | Microsoft Docs
Direct2D - Win32 apps | Microsoft Docs
DirectWrite - Win32 apps | Microsoft Docs
Avalonia/src/Windows/Avalonia.Direct2D1 at master · AvaloniaUI/Avalonia · GitHub
DigitalRune/Source/DigitalRune.Graphics/Interop at master · DigitalRune/DigitalRune · GitHub
Profiling DirectX Apps - Win32 apps | Microsoft Docs

Host Direct3D9 content in WPF | Microsoft Docs
WPF and Direct3D9 interop | Microsoft Docs
D3DImage Class (System.Windows.Interop) | Microsoft Docs which is a System.Windows.Media.ImageSource
SwapChain is not usable in WPF application, where the framework is doing the presentation

Introduction to D3DImage - CodeProject
How to render by using a Direct2D device context - Win32 apps | Microsoft Docs to DX11 runtime
Surface Sharing Between Windows Graphics APIs - Win32 apps | Microsoft Docs
Drawing with Direct2D - Win32 apps | Microsoft Docs

c++ - Direct2D window black when not in focus - Stack Overflow
Handle device removed scenarios in Direct3D 11 - UWP applications | Microsoft Docs

Home | SharpDX
sharpdx/SharpDX-Samples: Official repository for all SharpDX Samples
NuGet Gallery | SharpDX.MediaFoundation 4.2.0
Posts tagged SharpDX - Johan Falk

WPF 使用 SharpDx 渲染博客导航
WPF 使用 SharpDX hWnd rendering
WPF 使用 SharpDX 在 D3DImage 显示 Control Rendering
WPF 使用封装的 SharpDx 控件

SlimDX/slimdx: Automatically exported from code.google.com/p/slimdx DEPRECATED
RichardsSoftware.net - SlimDX DirectX 11 Tutorials

NuGet Gallery | MediaFoundation 3.1.0
Originally Media Foundation .NET
Of Itself So - Tanta, Windows Media Foundation Sample Projects
OfItselfSo/Tanta: This project provides Sample Projects which can assist people in developing applications for Windows Media Foundation in the C# language.
Windows_Media_Foundation_Getting_Started_CSharp.pdf

Windows.Ui.Xaml.Media.Dxinterop.h header - Win32 apps | Microsoft Docs
smourier/DirectN: Direct interop Code for .NET : DXGI, WIC, DirectX 9 to 12, Direct2D, Direct Write, Direct Composition, Media Foundation, WASAPI, CodecAPI, GDI, Spatial Audio, DVD, Windows Media Player, UWP DXInterop, etc.

microsoft/Win2D: Win2D is an easy-to-use Windows Runtime API for immediate mode 2D graphics rendering with GPU acceleration. It is available to C#, C++ and VB developers writing apps for the Windows Universal Platform (UWP). It utilizes the power of Direct2D, and integrates seamlessly with XAML and CoreWindow.
Introduction

Debugging

UWP App Diagnostics - Windows Developer Blog

Dependency Walker (depends.exe) Home Page ldd

Debugging WPF Applications - WPF Debugging and Performance Succinctly Ebook

Fix NonPaged Memory Leak | Poolmon - Windows 10 And Server | Easy Steps » LEARN Inside
windows - What are "Commited Memory", "Cached", "Paged", "Not-paged pool" & How They are Different with "In-Use Memory" - Super User
Huge Memory Usage in Non-Paged Pool in Windows | Windows OS Hub
PoolMonX/pooltag.txt at master · zodiacon/PoolMonX

Ask The Performance Team - Microsoft Tech Community
Fundamentals of garbage collection | Microsoft Docs
Cleaning up unmanaged resources | Microsoft Docs

PerfView Tutorial | Channel 9
microsoft/perfview: PerfView is a CPU and memory performance-analysis tool

Luke Stackwalker home page call graph, profiler
How I cut GTA Online loading times by 70%

Download Debug Diagnostic Tool v2 Update 3.1 from Official Microsoft Download Center
How to Use Debug Diagnostic Tool to Collect Dumps on Hanging or Crashing Process in PowerCenter - YouTube

c# - Cannot obtain value of local or argument as it is not available at this instruction pointer, possibly because it has been optimized away - Stack Overflow

x64dbg
glmcdona/Process-Dump: Windows tool for dumping malware PE files from memory back to disk for analysis.

WinDbg - Wikiwand
Download Debugging Tools for Windows - WinDbg - Windows drivers | Microsoft Docs
Getting Started with WinDbg (User-Mode) - Windows drivers | Microsoft Docs
Collecting User-Mode Dumps - Win32 apps | Microsoft Docs

TsudaKageyu/minhook: The Minimalistic x86/x64 API Hooking Library for Windows

Testing

dotnet test command - .NET Core CLI | Microsoft Docs

c - Is there a good Valgrind substitute for Windows? - Stack Overflow

xUnit

Home > xUnit.net
Getting started: .NET Core with command line > xUnit.net
Getting started: Multi-targeting with non-Windows OSes > xUnit.net

# target .NET Core, not .NET Standard
dotnet add package xunit xunit.runner.visualstudio

Define tests with [Fact] attribute

index at XUnitPatterns.com

NUnit

NUnit.org

MSTest

microsoft/testfx-docs: Docs for MSTest V2 test framework
Use Microsoft.VisualStudio.TestTools.UnitTesting in unit tests - Visual Studio | Microsoft Docs
Get started with unit testing - Visual Studio | Microsoft Docs

MSIX

MSIX documentation - MSIX | Microsoft Docs
MSIX: Package desktop apps for Windows 10. Replace outdated installers. | Tabs vs Spaces | Channel 9
Building an MSIX package from your code overview - MSIX | Microsoft Docs

Packaging Universal Windows apps for Windows 10 | Microsoft Docs
Package a desktop app from source code using Visual Studio - MSIX | Microsoft Docs
Packaging MSIX apps - MSIX | Microsoft Docs

WinRT API

Windows Runtime - Wikiwand
C++/WinRT - UWP applications | Microsoft Docs

Enhancing Non-packaged Desktop Apps using Windows Runtime Components - Windows Developer Blog
Microsoft paves the way to Windows APIs | InfoWorld

Using WinML in .NET5 | #ifdef Windows

Rust

Overview of developing on Windows with Rust | Microsoft Docs
microsoft/windows-rs: Rust for Windows
Rust for Windows, and the windows crate | Microsoft Docs
Build more secure software with Rust for Windows | InfoWorld

COM

Win32 and COM APIs for UWP apps - Windows UWP applications | Microsoft Docs

core-setup/COM-activation.md at master · dotnet/core-setup
samples/core/extensions/ExcelDemo at master · dotnet/samples COM Client
samples/core/extensions/COMServerDemo at master · dotnet/samples