Header image for a Keyhole Software article by Austin Powell about using LLMs and AI-assisted discovery to understand, document, and modernize a legacy Delphi application. The image highlights transforming a "black box" system into a documented architecture blueprint and delivering a modernization project in approximately half the original timeline.

How We Used LLMs to Understand and Modernize a Legacy Delphi Application

Austin Powell .NET, Agentic AI & AI-Accelerated Development, All Industries, Articles, Artificial Intelligence, Modernization Leave a Comment

Many legacy modernization projects start with a simple question: what does this thing actually do?

In this project, we were modernizing a decades-old Delphi application with limited documentation, no meaningful test coverage, engineers long since moved on, and significant unknowns about the environment in which it operated.

Modernizing legacy systems is challenging, particularly when documentation is limited and system knowledge has been lost over time. When LLMs and AI are applied thoughtfully, they can help teams understand legacy systems faster and reduce modernization risk.

This article focuses on how we used LLMs to understand, document, and de-risk an unfamiliar legacy system before modernization began. Once the application was understood and the architecture was defined, the team leveraged AI-assisted development workflows to accelerate the Delphi-to-.NET rewrite itself. Evan Sanning shares that side of the project in his companion article, How We Used LLMs to Rewrite a Legacy Delphi Application in C#.

synopsis image of delphi to .net ai code conversion delivered 40% faster than deadline

How We Used LLMs to Rewrite a Legacy Delphi Application in C#

Evan Sanning .NET, Agentic AI & AI-Accelerated Development, All Industries, Articles, Artificial Intelligence, Generative AI & LLMs, Modernization Leave a Comment

We rewrote a legacy Delphi (Object Pascal) application into a .NET C# service worker in three months, beating a five-month deadline for a client in the healthcare software space.

Here’s what actually made that possible and the pitfalls we hit using LLMs along the way.

Flutter vs. .NET MAUI for AI: Which Framework Wins?

Keyhole Software .NET, Articles, Artificial Intelligence, Flutter, Mobile 1 Comment

Are you developing an AI-powered application but unsure whether Flutter or .NET MAUI is the right framework for your project? The decision you make can significantly impact performance, scalability, and development efficiency, so it’s essential to choose wisely. Both Flutter and .NET MAUI offer strong cross-platform development capabilities, but they have distinct differences when it comes to AI model support, …

Blazor Server in .NET 6 - Part 5 HttpClient

Blazor Server in .NET 6 – Part Five

Ryan Flachman .NET, Articles, Blazor, Blazor Server in .NET 6 Series, C#, Development Technologies & Tools, Tutorial Leave a Comment

In the final part of the Blazor Server in .NET 6 blog series, we covered how to use data binding and dropdowns with lists and enums. This included a short introduction to setting up an HttpService, making a get call to the API, and viewing the results as a string. For further clarity, I also included a demonstration on how to add an HttpService that uses the built-in .NET HttpClient class to make calls to the D&D 5e API!

Finally, I presented a way to add a dropdown with the available race options that our character can choose from. That concludes my five-part educational series on Blazor Server in .NET 6. I hope you enjoyed it, and learned a little something you can take with you. Thanks for tuning in!