Welcome To David's Portfolio

Portfolio Application Evolution and Architecture

Hello, and welcome to my online portfolio.

Initial Development and Legacy Platform

Originally, this portfolio was developed as a web application utilizing agile scrum methodologies. The technology stack comprised a legacy ASP.Net MVC Core platform, Entity Framework Core for data access, and C# as the primary programming language. For front-end functionality and design, jQuery and Bootstrap were incorporated along with razor syntax to create an interactive and visually appealing user interface. Feature deployment and updates were managed through a continuous integration and delivery (CI/CD) pipeline, with Azure DevOps Team Services overseeing build and release management to ensure streamlined development and deployment processes.

Modernization to .NET Core 9.0 Blazor Hybrid

The portfolio has since undergone a complete overhaul, emerging as a .NET Core 9.0 Blazor Hybrid application. This modern architecture brings together MudBlazor and Bootstrap to enhance the user interface, delivering a cohesive and responsive design across various devices, including desktops, tablets, and mobile phones.

Data Management and Synchronization

For database operations, the application is designed to first store and retrieve data using the device’s local storage capabilities. Subsequently, it synchronizes this data with SQL Server to maintain persistence. In scenarios where SQL Server is unavailable, the application leverages Entity Framework Core’s InMemory storage, ensuring uninterrupted functionality. Additionally, a server-side JSON file system has been implemented to create dynamic backups of the database, safeguarding data in the event that the SQL Server goes offline.

Technological Advancements and CI/CD Pipeline

The adoption of Blazor technology enables C# to perform many tasks that were previously reliant on JavaScript and jQuery, streamlining the development process and reducing dependency on multiple scripting languages. The approach to feature development and updates remains rooted in continuous integration and delivery, with GitHub Actions now managing build and release operations. This robust combination continues to support a responsive and adaptive user experience across all supported devices.

Navigation and Structure

The website is organized into several sections, each represented by an image tile below. To explore a section, simply click on the corresponding tile.

Additional Features

Although the intent for using Blazor includes reducing dependency on JavaScript based libraries, to show that Blazor will still “play nicely” with JavaScript, A small amount of JavaScript is employed through JS-Runtime Interop in one of the custom NuGet Packages I developed, which powers the online status monitor displayed at the bottom of the navigation menu.

Strengths

Loading Strengths...

“Whatever is worth doing at all is worth doing well”

~ Lord Chesterfield

Loading Portfolio Sections...

An unhandled error has occurred. Reload 🗙