Store Application Performance Metadata in a Database Using AOP in ASP.NET Core
CODE Magazine|July - August 2024
Aspect-Oriented Programming (AOP) is a programming paradigm that attempts to increase the modularity, maintainability, and flexibility of your application while overcoming the traditional Object-Oriented Programming (OOP) limitations.
Joydip Kanjilal
Store Application Performance Metadata in a Database Using AOP in ASP.NET Core

AOP adds a new programming concept, known as an aspect, which are reusable, modular pieces of code that can solve common problems like logging, performance management, exception handling, configuration management, and security. Aspects can be used to combine similar concerns into a single unit and applied to an application's core logic via weaving.

This article compares AOP to OOP and Procedural Programing, and provides a deep dive into AOP, explaining why it’s useful, and illustrating how you can optimize performance of an ASP.NET Core application using AOP and then store the captured performance metadata in a database.

If you’re to work with the code examples discussed in this article, you need the following installed in your system:

• Visual Studio 2022 • .NET 8.0 • ASP.NET 8.0 Runtime If you don’t already have Visual Studio 2022 installed on your computer, you can download it from here: https:// visualstudio.microsoft.​com/downloads/.

In this article, I'll examine the following points:

• Procedural, OOP, and AOP programming styles and their benefits

• AOP and its features, benefits, and downsides

• The core concepts of AOP

• How to use Autofac to create a memory cache interceptor

• How to use PostSharp to build an application that stores application performance metadata in a database

• How to use PostSharp to store CPU and memory usage details in a database

This story is from the {{IssueName}} edition of {{MagazineName}}.

Start your 7-day Magzter GOLD free trial to access thousands of curated premium stories, and 9,000+ magazines and newspapers.

This story is from the {{IssueName}} edition of {{MagazineName}}.

Start your 7-day Magzter GOLD free trial to access thousands of curated premium stories, and 9,000+ magazines and newspapers.

MORE STORIES FROM CODE MAGAZINEView all
Threads, Asynchrony, Parallelism, and Concurrency in C#
CODE Magazine

Threads, Asynchrony, Parallelism, and Concurrency in C#

The concepts of process, thread, and task are fundamental to understanding the working of an operating system. You should have a good understanding of threads and how they work to learn asynchrony, parallelism, and concurrency. This article discusses the concepts related to these concepts in detail with relevant code examples wherever appropriate.

time-read
5 mins  |
November - December 2024
Career Development and Staffing Reinvented
CODE Magazine

Career Development and Staffing Reinvented

You think great talent and cool positions only exist in Silicon Valley? Think again!

time-read
4 mins  |
November - December 2024
Can an LLM Make a Video Game?
CODE Magazine

Can an LLM Make a Video Game?

In the Summer of 1980, I played Asteroids at a gas station in rural West Texas. I stood on a stool to reach the controls and see the screen. Ever since then, I’ve wanted to make a video game. I’ve also wanted to have the time, skills, and resources to make a video game.

time-read
3 mins  |
November - December 2024
First Rule of ARIA: Don't Use ARIA
CODE Magazine

First Rule of ARIA: Don't Use ARIA

As you expand your accessibility knowledge, you've probably heard the term ARIA a few times, maybe with an explanation, maybe not. Let's start there: ARIA (https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA) is a standard from the World Wide Web Consortium (W3C) (https://www.w3.org/) via the Web AccessibilityInitiative (WAI) (https://www.w3.org/WAI/).

time-read
10+ mins  |
November - December 2024
Exploring .NET MAUI: Data Entry Controls and Data Binding
CODE Magazine

Exploring .NET MAUI: Data Entry Controls and Data Binding

In the first parts of this ongoing series on exploring .NET MAUI (https://codemag.​com/Article/2408041/Exploring-.NET-MAUIGetting-Started and https://codemag.​com/Article/2409041/Exploring-.NET-MAUI-Styles-Navigation-and-Reusable-UI), you created your first .NET MAUI application and ran that application on both a Windows computer and an Android emulator.

time-read
4 mins  |
November - December 2024
CODE Magazine Presents: The State of AI Mini Conference Tour
CODE Magazine

CODE Magazine Presents: The State of AI Mini Conference Tour

CODE has recently started a new series of inperson events focusing on the topic of artificial intelligence and its practical uses in business scenarios.

time-read
2 mins  |
November - December 2024
AI with No Internet Connection
CODE Magazine

AI with No Internet Connection

AI, or artificial intelligence; are you bored of hearing about of it yet? Between the stock market and CEO keynotes, we can’t seem to get away from it. It promises to revolutionize everything around us.

time-read
8 mins  |
November - December 2024
CODE: 5 Years Ago
CODE Magazine

CODE: 5 Years Ago

And just like that, we've arrived at the last installment of our \"30 Years of CODE\" celebratory column. Wow. Time flies! Seems like \"just the other day\" we had our 30-year anniversary celebration in Orlando, yet that was in December of 2023. But it's even wilder to think back five or six years. \"Just before the pandemic,\" really. How much has changed in those few short years!

time-read
10 mins  |
November - December 2024
Career Development and Staffing reinvented
CODE Magazine

Career Development and Staffing reinvented

You think great talent and cool positions only exist in Silicon Valley? Think again!

time-read
4 mins  |
September - October 2024
Container Orchestration Using Kubernetes
CODE Magazine

Container Orchestration Using Kubernetes

In my previous article on Docker (\"Introduction to Containerization Using Docker,\" Mar/Apr 2021 issue), I explained what containerization is and how Docker simplifies application deployment.

time-read
2 mins  |
September - October 2024