Skip to main content
  1. Categories/

Deep Dive

Deploying Ollama with Open WebUI Locally: A Step-by-Step Guide

Deep Dive · Jan 11, 2025 · 9 min read
Introduction # Large Language Models (LLMs) have become a cornerstone of modern AI applications, from chatbots that provide customer support to content generation tools for images and videos. They power virtual assistants, automated translation systems, and personalized recommendation engines, showcasing their versatility across industries. However, running these models on a local machine has traditionally been a complex and resource-intensive task, requiring significant configuration and technical expertise. This complexity often deters beginners and even intermediate users who are eager to explore the capabilities of LLMs in a private, local environment.
Deploying Ollama with Open WebUI Locally: A Step-by-Step Guide

Simplify Git Workflows Across Multiple Repositories with Git Submodules and Meta-Repositories

Deep Dive · Jan 10, 2025 · 6 min read
Introduction # In modern software development, projects often consist of multiple repositories working together seamlessly. For instance, microservices architectures rely on modularity, where each service has its own repository. While this independence is beneficial, managing numerous repositories as a single cohesive unit can be daunting. Enter the meta-repository: a powerful tool that simplifies the management of multiple interdependent Git repositories, enabling streamlined workflows without sacrificing modularity.
Simplify Git Workflows Across Multiple Repositories with Git Submodules and Meta-Repositories

Simplifying Database Queries with AI & SQL Automation

Deep Dive · Jan 6, 2025 · 15 min read
TL;DR # This article demonstrates how to build a REST API that converts natural language into SQL queries using multiple LLM providers (OpenAI, Azure OpenAI, Claude, and Gemini). The system dynamically selects the appropriate AI service based on configuration, executes the generated SQL against a database, and returns structured results. It includes a complete implementation with a service factory pattern, Docker setup, and example usage.
Simplifying Database Queries with AI & SQL Automation

Implementing SharePoint File CRUD Operations using Microsoft Graph API

Deep Dive · Dec 24, 2024 · 11 min read
Introduction # Microsoft Graph API provides a unified endpoint for accessing Microsoft 365 services, including SharePoint. This article demonstrates how to implement create, read, update, and delete (CRUD) operations for files in SharePoint document libraries using Microsoft Graph API and .NET. You’ll learn how to authenticate to Microsoft Graph, navigate SharePoint site structure, and manage files programmatically.
Implementing SharePoint File CRUD Operations using Microsoft Graph API

Building an AI-Driven Chat Application with .NET, Azure OpenAI, and Angular

Deep Dive · Dec 7, 2024 · 11 min read
Introduction # Artificial Intelligence is transforming how we build applications, particularly in creating natural, conversational user experiences. This article guides you through building a full-stack AI chat application using .NET on the backend, Angular for the frontend, and Azure OpenAI for powerful language model capabilities, all connected through real-time SignalR communication.
Building an AI-Driven Chat Application with .NET, Azure OpenAI, and Angular

Validating Inputs with FluentValidation

Deep Dive · Dec 1, 2024 · 6 min read
Introduction # In this article, we will explore how to implement input validation in the Contact Management Application using FluentValidation. FluentValidation is a robust .NET library that facilitates the creation of flexible and extensible validation rules for your models. By integrating seamlessly with ASP.NET Core, it allows you to maintain clean separation between validation logic and business logic, adhering to the principles of Clean Architecture.
Validating Inputs with FluentValidation

Using Dapper for Data Access and Repository Pattern

Deep Dive · Dec 1, 2024 · 9 min read
Introduction # In this article, we will explore how the Contact Management Application integrates Dapper for efficient data access. Dapper is a micro-ORM (Object-Relational Mapper) that excels in performance by directly interacting with SQL. We will focus on how Dapper is utilized within the Repository Pattern to ensure clean, maintainable, and efficient access to the database. Additionally, we will explore how Dapper works in tandem with the Unit of Work pattern to manage transactions.
Using Dapper for Data Access and Repository Pattern

Unit of Work Pattern and Its Role in Managing Transactions

Deep Dive · Dec 1, 2024 · 6 min read
Introduction # The Unit of Work pattern is a critical component in maintaining data consistency within applications that perform multiple database operations as part of a single logical transaction. In Clean Architecture, this pattern works alongside the Repository pattern to manage database transactions effectively, ensuring that changes are saved atomically and consistently. This article explores how the Unit of Work pattern is implemented in the Contact Management Application to coordinate related operations and maintain data integrity.
Unit of Work Pattern and Its Role in Managing Transactions

Seeding Initial Data Using Docker Compose and SQL Scripts

Deep Dive · Dec 1, 2024 · 7 min read
Introduction # When setting up a new application, especially in development and testing environments, having a consistent and repeatable process for initializing your database with essential data is crucial. This article explores how the Contact Management Application uses Docker Compose and SQL scripts to automate the seeding process, ensuring that every instance of the application starts with the necessary baseline data.
Seeding Initial Data Using Docker Compose and SQL Scripts

Implementing AutoMapper for DTO Mapping with Audit Details

Deep Dive · Dec 1, 2024 · 7 min read
AutoMapper is a powerful object-object mapper that simplifies the transformation between data models. In Clean Architecture, it plays a vital role in maintaining a clear separation of concerns between layers. By automating mapping and handling fields like CreatedBy, CreatedOn, UpdatedBy, and UpdatedOn, AutoMapper reduces boilerplate code and ensures consistency.
Implementing AutoMapper for DTO Mapping with Audit Details

Implementing Activity Logging with Custom Attributes

Deep Dive · Dec 1, 2024 · 6 min read
Introduction # Tracking user activities is crucial for security, auditing, and troubleshooting in any application. This article explores how to implement activity logging in the Contact Management Application using custom .NET attributes and action filters. This approach seamlessly integrates logging into the application without cluttering controllers or business logic with repetitive logging code.
Implementing Activity Logging with Custom Attributes