SlideShare a Scribd company logo
Aspect-oriented programmingrobertmacleanwww.sadev.co.za ∞ @rmaclean ∞ robert@sadev.co.za
AgendaWhat, when, why of AOP?How is it implemented in PostSharp and how does it work?Alternatives to PostSharpLooking to the futureDiscussion
Every project has “boring” codesource: Microsoft Application Architecture Guide, 2nd Edition
AOP DetailsGoal to make cross cutting concerns easy to implement and focus on business codeXerox PARC in 2001AspectJMany implementations now daysAKA: AOSD
Scenario code – simple prime calculatorCustomer says it’s wrong. We need logging to diagnose…
Let’s add logging – trace input & outputEasy to miss some placesLots of repetition of codeNeed to teach thisNot portable5 extra lines of code
What about some procedural help?Not junior friendlyNeed 1 per signature15 extra lines of code
So how does aspects solve that?Feel like you are missing something?1 extra line of code
Demo time…
Under the hoodSource: .NET Reflector 6.8IL modified
Many ways to implement AOP in .NET currentlyPopular: IL Weaving @ compile or JITPostSharp & Mono.CecilLess:Hooking into .NET profiler APIProxies
IL Weaving.cs or .vb codeIL (pure)PostSharpIL (Merged)
Hooking the profilerDisadvantagesPoor performance
Exceptionally complex
Not designed for thisAdvantagesNothing is safe from it’s power
Solves some fringe cases (i.e. mocking static methods)ApplicationCOM APICLRProfilerEnvironmental

More Related Content

PPTX
JavaScript Toolkit
Robert MacLean
 
PPTX
How to build a Mobile API or HTML 5 app in 5 minutes
Robert MacLean
 
PPTX
Visual Studio: The best tool for web developers.
Robert MacLean
 
PPTX
What’s new in LightSwitch 2013?
Robert MacLean
 
PPTX
Visual Studio ❤ JavaScript
Robert MacLean
 
PPT
PHP Framework
celeroo
 
PPTX
PHP framework difference
iScripts
 
PPTX
ASP.NET 5 & Unit Testing
Shahed Chowdhuri
 
JavaScript Toolkit
Robert MacLean
 
How to build a Mobile API or HTML 5 app in 5 minutes
Robert MacLean
 
Visual Studio: The best tool for web developers.
Robert MacLean
 
What’s new in LightSwitch 2013?
Robert MacLean
 
Visual Studio ❤ JavaScript
Robert MacLean
 
PHP Framework
celeroo
 
PHP framework difference
iScripts
 
ASP.NET 5 & Unit Testing
Shahed Chowdhuri
 

What's hot (20)

PDF
Introduction to webpack and babel
AmanRaj378
 
PDF
Getting Started with React Native (and should I use it at all?)
Devin Abbott
 
PDF
When to (use / not use) React Native.
Bobby Schultz
 
PPTX
Getting Started with ASP.net Core 1.0
joescars
 
PPTX
What's new in Visual Studio 2013 & TFS 2013
Danijel Malik
 
PDF
JWC 2015 - Mobile apps development for Joomla!
Extly Extensions - JoomGap
 
PDF
Isomorphic javascript - Uppsala.js #8
Alexander Aivars
 
PPTX
Laravel Dusk
kingvish
 
PPTX
1 pluginable laravel cms
Nareerat Chan
 
PDF
Electron
Debopam Sengupta
 
PPTX
Full stack web development
Crampete
 
PPTX
Online CAT and project management tools for translators
Remy Blaettler
 
PPTX
Episode 17 - Handling Events in Lightning Web Component
Jitendra Zaa
 
PDF
Joomla! multiplied - How to run Multi-Sites - JandBeyond 2014
Viktor Vogel
 
PDF
Isomorphic web application
Oliver N
 
PPT
Single Page Application presentation
John Staveley
 
PPTX
Scaffolding in One Asp.Net
Lohith Goudagere Nagaraj
 
PDF
Test Driven Development in AEM/CQ5
rtpaem
 
PDF
Lizards & Pumpkins Catalog Replacement at mm17de
vinaikopp
 
PDF
An Introduction to ReactNative
Michał Taberski
 
Introduction to webpack and babel
AmanRaj378
 
Getting Started with React Native (and should I use it at all?)
Devin Abbott
 
When to (use / not use) React Native.
Bobby Schultz
 
Getting Started with ASP.net Core 1.0
joescars
 
What's new in Visual Studio 2013 & TFS 2013
Danijel Malik
 
JWC 2015 - Mobile apps development for Joomla!
Extly Extensions - JoomGap
 
Isomorphic javascript - Uppsala.js #8
Alexander Aivars
 
Laravel Dusk
kingvish
 
1 pluginable laravel cms
Nareerat Chan
 
Full stack web development
Crampete
 
Online CAT and project management tools for translators
Remy Blaettler
 
Episode 17 - Handling Events in Lightning Web Component
Jitendra Zaa
 
Joomla! multiplied - How to run Multi-Sites - JandBeyond 2014
Viktor Vogel
 
Isomorphic web application
Oliver N
 
Single Page Application presentation
John Staveley
 
Scaffolding in One Asp.Net
Lohith Goudagere Nagaraj
 
Test Driven Development in AEM/CQ5
rtpaem
 
Lizards & Pumpkins Catalog Replacement at mm17de
vinaikopp
 
An Introduction to ReactNative
Michał Taberski
 
Ad

Viewers also liked (7)

PPTX
Visual Studio Productivity Tools
Robert MacLean
 
PPTX
Mercurial
Robert MacLean
 
PPTX
Multitasking in applications
Robert MacLean
 
PPTX
Development for nokia
Robert MacLean
 
PPTX
Windows 7 API Code Pack
Robert MacLean
 
PPTX
Welcome to the cloud
Robert MacLean
 
PPTX
WebMatrix
Robert MacLean
 
Visual Studio Productivity Tools
Robert MacLean
 
Mercurial
Robert MacLean
 
Multitasking in applications
Robert MacLean
 
Development for nokia
Robert MacLean
 
Windows 7 API Code Pack
Robert MacLean
 
Welcome to the cloud
Robert MacLean
 
WebMatrix
Robert MacLean
 
Ad

Similar to Aspect oriented programming (20)

PPTX
Intro To AOP
Donald Belcham
 
PPTX
Introduction To AOP
Donald Belcham
 
PPTX
Introduction to Aspect Oriented Programming by Donald Belcham
.NET Conf UY
 
PPT
Aspect oriented programming in .Net
Paul Fryer
 
PPT
Aspect Oriented Software Development
Jignesh Patel
 
PPTX
Introduction to Aspect Oriented Programming (DDD South West 4.0)
Yan Cui
 
PDF
Aspect Oriented Programming Through C#.NET
Waqas Tariq
 
PPTX
AOP on Android
Tibor Srámek
 
PPTX
Introduction to Aspect Oriented Programming
Yan Cui
 
PPTX
Introduction To Aspect Oriented Programming
saeed shargi ghazani
 
PPT
Intro To AOP
elliando dias
 
PPTX
Aspect Oriented Programming
Shreya Chatterjee
 
PDF
AOP in NET Practical Aspect Oriented Programming Matthew D. Groves
anusansuphi
 
PPTX
Aspect Oriented Programming
Rodger Oates
 
PDF
Aspect Oriented Development
tyrantbrian
 
PPT
Aop2007
Tuhin_Das
 
PPTX
AOP in C# 2013
Antya Dev
 
PPTX
Aop With Post Sharp
Lance Zhang
 
PDF
AOP
Joshua Yoon
 
PPTX
.NET Profilers and IL Rewriting - DDD Melbourne 2
Shaun Wilde
 
Intro To AOP
Donald Belcham
 
Introduction To AOP
Donald Belcham
 
Introduction to Aspect Oriented Programming by Donald Belcham
.NET Conf UY
 
Aspect oriented programming in .Net
Paul Fryer
 
Aspect Oriented Software Development
Jignesh Patel
 
Introduction to Aspect Oriented Programming (DDD South West 4.0)
Yan Cui
 
Aspect Oriented Programming Through C#.NET
Waqas Tariq
 
AOP on Android
Tibor Srámek
 
Introduction to Aspect Oriented Programming
Yan Cui
 
Introduction To Aspect Oriented Programming
saeed shargi ghazani
 
Intro To AOP
elliando dias
 
Aspect Oriented Programming
Shreya Chatterjee
 
AOP in NET Practical Aspect Oriented Programming Matthew D. Groves
anusansuphi
 
Aspect Oriented Programming
Rodger Oates
 
Aspect Oriented Development
tyrantbrian
 
Aop2007
Tuhin_Das
 
AOP in C# 2013
Antya Dev
 
Aop With Post Sharp
Lance Zhang
 
.NET Profilers and IL Rewriting - DDD Melbourne 2
Shaun Wilde
 

More from Robert MacLean (20)

PPTX
Deno ...................................
Robert MacLean
 
PPTX
14 things you need to be a successful software developer (v3)
Robert MacLean
 
PPTX
OWASP TOP 10
Robert MacLean
 
PPTX
Building a µservice with Kotlin, Micronaut & GCP
Robert MacLean
 
PPTX
Looking at the Vue
Robert MacLean
 
PPTX
Kotlin 101
Robert MacLean
 
PPTX
Features of Kotlin I find exciting
Robert MacLean
 
PPTX
JavaScript Gotchas
Robert MacLean
 
PPTX
DevConf Survival Guide
Robert MacLean
 
PPTX
The state of testing @ Microsoft
Robert MacLean
 
PPTX
What is new in C# 6?
Robert MacLean
 
PPTX
Putting the DOT in .NET - Dev/Ops/Test
Robert MacLean
 
PPTX
A Developer Day 2014 - Durban
Robert MacLean
 
PPTX
Agile lessons learned in the Microsoft ALM Rangers
Robert MacLean
 
PPTX
Hour of code - Train the trainer
Robert MacLean
 
PPTX
Building services for apps on a shoestring budget
Robert MacLean
 
PPTX
3 things your app API is doing WRONG
Robert MacLean
 
PPTX
ASP.NET
Robert MacLean
 
PPTX
LightSwitch
Robert MacLean
 
Deno ...................................
Robert MacLean
 
14 things you need to be a successful software developer (v3)
Robert MacLean
 
OWASP TOP 10
Robert MacLean
 
Building a µservice with Kotlin, Micronaut & GCP
Robert MacLean
 
Looking at the Vue
Robert MacLean
 
Kotlin 101
Robert MacLean
 
Features of Kotlin I find exciting
Robert MacLean
 
JavaScript Gotchas
Robert MacLean
 
DevConf Survival Guide
Robert MacLean
 
The state of testing @ Microsoft
Robert MacLean
 
What is new in C# 6?
Robert MacLean
 
Putting the DOT in .NET - Dev/Ops/Test
Robert MacLean
 
A Developer Day 2014 - Durban
Robert MacLean
 
Agile lessons learned in the Microsoft ALM Rangers
Robert MacLean
 
Hour of code - Train the trainer
Robert MacLean
 
Building services for apps on a shoestring budget
Robert MacLean
 
3 things your app API is doing WRONG
Robert MacLean
 
LightSwitch
Robert MacLean
 

Recently uploaded (20)

PDF
Event Presentation Google Cloud Next Extended 2025
minhtrietgect
 
PPT
Coupa-Kickoff-Meeting-Template presentai
annapureddyn
 
PDF
Software Development Methodologies in 2025
KodekX
 
PDF
Brief History of Internet - Early Days of Internet
sutharharshit158
 
PDF
CIFDAQ's Market Wrap : Bears Back in Control?
CIFDAQ
 
PDF
This slide provides an overview Technology
mineshkharadi333
 
PDF
BLW VOCATIONAL TRAINING SUMMER INTERNSHIP REPORT
codernjn73
 
PPTX
Applied-Statistics-Mastering-Data-Driven-Decisions.pptx
parmaryashparmaryash
 
PPTX
cloud computing vai.pptx for the project
vaibhavdobariyal79
 
PDF
Orbitly Pitch Deck|A Mission-Driven Platform for Side Project Collaboration (...
zz41354899
 
PPTX
Coupa-Overview _Assumptions presentation
annapureddyn
 
PDF
A Day in the Life of Location Data - Turning Where into How.pdf
Precisely
 
PPTX
IoT Sensor Integration 2025 Powering Smart Tech and Industrial Automation.pptx
Rejig Digital
 
PDF
Beyond Automation: The Role of IoT Sensor Integration in Next-Gen Industries
Rejig Digital
 
PDF
Structs to JSON: How Go Powers REST APIs
Emily Achieng
 
PDF
Security features in Dell, HP, and Lenovo PC systems: A research-based compar...
Principled Technologies
 
PPTX
ChatGPT's Deck on The Enduring Legacy of Fax Machines
Greg Swan
 
PPTX
Dev Dives: Automate, test, and deploy in one place—with Unified Developer Exp...
AndreeaTom
 
PPTX
AI and Robotics for Human Well-being.pptx
JAYMIN SUTHAR
 
PDF
Accelerating Oracle Database 23ai Troubleshooting with Oracle AHF Fleet Insig...
Sandesh Rao
 
Event Presentation Google Cloud Next Extended 2025
minhtrietgect
 
Coupa-Kickoff-Meeting-Template presentai
annapureddyn
 
Software Development Methodologies in 2025
KodekX
 
Brief History of Internet - Early Days of Internet
sutharharshit158
 
CIFDAQ's Market Wrap : Bears Back in Control?
CIFDAQ
 
This slide provides an overview Technology
mineshkharadi333
 
BLW VOCATIONAL TRAINING SUMMER INTERNSHIP REPORT
codernjn73
 
Applied-Statistics-Mastering-Data-Driven-Decisions.pptx
parmaryashparmaryash
 
cloud computing vai.pptx for the project
vaibhavdobariyal79
 
Orbitly Pitch Deck|A Mission-Driven Platform for Side Project Collaboration (...
zz41354899
 
Coupa-Overview _Assumptions presentation
annapureddyn
 
A Day in the Life of Location Data - Turning Where into How.pdf
Precisely
 
IoT Sensor Integration 2025 Powering Smart Tech and Industrial Automation.pptx
Rejig Digital
 
Beyond Automation: The Role of IoT Sensor Integration in Next-Gen Industries
Rejig Digital
 
Structs to JSON: How Go Powers REST APIs
Emily Achieng
 
Security features in Dell, HP, and Lenovo PC systems: A research-based compar...
Principled Technologies
 
ChatGPT's Deck on The Enduring Legacy of Fax Machines
Greg Swan
 
Dev Dives: Automate, test, and deploy in one place—with Unified Developer Exp...
AndreeaTom
 
AI and Robotics for Human Well-being.pptx
JAYMIN SUTHAR
 
Accelerating Oracle Database 23ai Troubleshooting with Oracle AHF Fleet Insig...
Sandesh Rao
 

Aspect oriented programming