Cách tốt nhất để lập trình hướng khía cạnh trong .NET là sử dụng các kỹ thuật thiết kế nổi tiếng. Ví dụ: bằng cách áp dụng các nguyên tắc SOLID, bạn có thể đạt được tính linh hoạt và tính mô đun mà bạn cần để cho phép thêm các mối quan tâm xuyên suốt. Nếu bạn có quyền thiết kế, bạn thậm chí sẽ có thể áp dụng hầu hết các mối quan tâm xuyên suốt mà không cần bất kỳ khuôn khổ nào. Thật là sai lầm khi nghĩ rằng OOP không phù hợp để thực hiện AOP.
Dưới đây là một số gợi ý:
- Đừng phụ thuộc vào những trường hợp cụ thể mà hãy phụ thuộc vào những điều trừu tượng.
- Đừng trộn lẫn các mối quan tâm xuyên suốt và logic kinh doanh trong cùng một lớp.
- Thêm mối quan tâm xuyên suốt bằng cách bao bọc các lớp với logic nghiệp vụ trong các lớp thực hiện những mối quan tâm đó ( người trang trí ).
- Tìm các tạo tác phổ biến trong thiết kế của bạn và lập mô hình chúng bằng nhau, tốt nhất là sử dụng cùng một kiểu trừu tượng. Hãy xem cái này và cái này chẳng hạn.
Khi bạn đã có sẵn những nội dung trừu tượng phù hợp, việc thêm những mối quan tâm xuyên suốt mới vào hệ thống chỉ là việc viết một lớp trang trí mới và gói nó xung quanh các triển khai phù hợp. Nếu sự trừu tượng là chung chung, bạn có thể bao bọc một trình trang trí duy nhất xung quanh một nhóm lớn các lớp (đó chính xác là những gì AOP nói về).
Mặc dù các kỹ thuật như proxy động và dệt mã có thể giúp làm việc dễ dàng hơn với một ứng dụng được thiết kế xấu, nhưng thực sự không có giải pháp thay thế nào cho thiết kế tốt. Sớm muộn gì bạn cũng sẽ bị bỏng. Điều này không có nghĩa là không nên sử dụng tính năng tạo proxy động và dệt mã. Nhưng nếu không có một thiết kế ứng dụng thích hợp thì ngay cả những kỹ thuật đó cũng sẽ hữu ích một chút.