Getting Started

Why .NET Framework 4.8?

GPAL targets .NET Framework 4.8 on purpose. It ships with every supported Windows install, needs no separate runtime, and is one of the most stable targets Microsoft has ever shipped. None of that limits what GPAL can do, because the surface you write against is GPAL's fluent API, not the framework's.

Built In, Not Bolted On

.NET Framework 4.8 is part of Windows itself. It has been preinstalled, and kept current through Windows Update, on every supported version of Windows since 2019. A GPAL-based tool runs on a freshly imaged machine with no separate .NET runtime install and no version negotiation. 4.8 is also Microsoft's final, fully-supported release of the Framework line: it isn't going away, and it isn't getting breaking changes either.

What 'Latest and Greatest' Actually Means Here

Developers reaching for .NET 8 are usually after newer language features, a faster runtime, or new framework APIs. But in GPAL, the thing you write against is GPAL's fluent interface, not raw framework or BCL types. WithSelector, GetGrid, FillInFrom, and the rest of the chain look and behave the same no matter what your other projects target. The automation engines, the REST protocol, and the fluent API are where GPAL's value lives, and all of it is available on 4.8 today.

TIP

GPAL's dependencies are updated as new versions are released, as long as the library still supports .NET Framework 4.8 and remains actively maintained. Not every library's newest release targets 4.8, so updates go as far as each library's continued support allows. One dependency, CommunityToolkit.WinUI.Notifications, currently carries a deprecation warning because that package itself has been deprecated upstream, not because of any security issue.

Integrating GPAL into an Existing Application

If you're adding GPAL to an existing .NET Framework 4.8 application, the most common friction point is a shared dependency. Your app and GPAL may reference different versions of the same package, with Newtonsoft.Json and Selenium the usual suspects. Visual Studio and NuGet normally resolve this automatically with assembly binding redirects in your app.config. If you see a FileLoadException or MissingMethodException after adding GPAL, check app.config for a bindingRedirect on the package involved and update it to match GPAL's version, or let Visual Studio regenerate the redirects for you.

WARNING

GPAL targets .NET Framework 4.8 specifically. It cannot be referenced from a .NET Core, .NET 5+, or .NET Standard project without a compatibility shim, and there currently isn't one.