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
“Whatever is worth doing at all is worth doing well”
~ Lord Chesterfield