Aspect-Oriented Programming in .NET
AOP یکی از فناوریهای مرتبط با توسعه نرم افزار محسوب میشود که توسط آن میتوان اعمال مشترک و متداول موجود در برنامه را در یک یا چند ماژول مختلف قرار داد (که به آنها Aspects نیز گفته میشود) و سپس آنها را به مکانهای مختلفی در برنامه متصل ساخت. عموما Aspects، قابلیتهایی را که قسمت عمدهای از برنامه را تحت پوشش قرار میدهند، کپسوله میکنند. اصطلاحا به این نوع قابلیتهای مشترک، تکراری و پراکنده مورد نیاز در قسمتهای مختلف برنامه، Cross cutting concerns نیز گفته میشود؛ مانند اعمال ثبت وقایع سیستم، امنیت، مدیریت تراکنشها و امثال آن. با قرار دادن این نیازها در Aspects مجزا، میتوان برنامهای را تشکیل داد که از کدهای تکراری عاری است.
برنامه نویسی (Aspect-oriented (AOP، مفهومی است که معمولا با زبانهای ثقیل و اصطلاحات دانشگاهی احاطه شده است، و این کار را برای توسعه دهندگان شاغلی که با کمبود وقت و ضرب العجلها دست و پنجه نرم میکنند، سخت میکند تا به سرعت AOP را یاد بگیرند، آن را به کار گیرند و از آن خروجی بگیرند. متاسفانه؛ خود AOP، خیلی ساده تر از آن چیزی است که به نظر میآید و میتواند مزایای فراوانی را در پروژههای واقعی فراهم کند.
هدف من از نوشتن این کتاب این بود که سالها پیش من تمایل داشتم تا نشان دهم AOP از آن چیزی که گفته میشود، خیلی آسانتر است. برای رسیدن به این هدف، لحن این کتاب غیر رسمی است و مطالب تئوری خیلی کوتاه بیان شده اند، ولی در عوض، نمونه کدهای بسیاری قرار داده شده است.
سرفصل کتاب Aspect-Oriented Programming in .NET :
1.Introducing AOP
2.2 Acme Car Rental
3.Call this instead: intercepting methods
4.Before and after: boundary aspects
5.Get this instead: intercepting locations
6.Unit testing aspects
7.AOP implementation types
8.Using AOP as an architectural tool
9.Aspect composition: example and execution
10.Ecosystem of .NET AOP tools
11.NuGet basics
(بخش هایی از مقدمه نقل قول از جناب آقای وحید نصیری است)