SlideShare a Scribd company logo
1 of 23
SZKOLENIE:SZKOLENIE:
ProgramowanieProgramowanie
aspektoweaspektowe
Mac MichałMac Michał
Programujący architekt, konsultantProgramujący architekt, konsultant
AgendaAgenda
Problemy
Pośrednie rozwiązania
Postsharp
Castle Windsor
CqRS?
O mnieO mnie
Konsultant, programujący architekt, trener IT
Publikuje w magazynie Programista
.Net Early Adopters
.Net Advisory Board
Windows 8
Postsharp MVP
Prelegent
Należy do SSEPP
MCITP Database Developer, Database Administrator
MCPD Windows Developer
Twórca biblioteki BFsharp
bfsharp.codeplex.com
blog.macmichal.pl
Mac Michał
macmichal.pl
Wyobraźmy sobieWyobraźmy sobie
Budujemy system
On rośnie…
Kod wygląda podobnie…
Zaczynamy używać Ctrl + V
Zaczynamy się zastanawiać
DemoDemo
Budowa aplikacjiBudowa aplikacji
Możliwości funkcjonalne
Line of business
Model domeny
Logika biznesowa
Budowa aplikacjiBudowa aplikacji
Możliwości niefunkcjonalne
LogowanieMonitoring
Cachowanie
TransakcjeKonkurencyjność
Bezpieczeństwo
Walidacja
Persystencja
Databinding
Możliwości niefunkcjonalneMożliwości niefunkcjonalne
Cross cutting concerns, plumbing
Pomyśl o swojej ostatniej aplikacji.
Czy miała ona system logowania?
Czy logowanie było skomplikowane?
Czy kod był problematyczny?
PostsharpPostsharp
PostsharpPostsharp
Compile-time MSIL injection
Prosty do użycia – poprzez atrybuty
Przechwytuje wszystkie metody – nawet virtual
Dużo Join point’ów: dostęp do pola, wyjatek
Większa kontrola: break, change param, return
Większa transparentność: brak new proxy()
Proces wstrzykiwania aspektówProces wstrzykiwania aspektów
1. Visual Studio kompiluje kod
2. PostSharp czyta skompilowane assembly
3. Postsharp znajduje atrybuty
4. Postsharp wstrzykuje definicję aspektów do
MSIL’a
5. Postsharp zapisuje rozszerzone assembly
DEMODEMO
Jak wygląda wkompilowany aspekt?Jak wygląda wkompilowany aspekt?
DEMODEMO
INotifyPropertyChangedINotifyPropertyChanged
DEMODEMO
CacheCache
ProblemProblem
W kilku miejscach chcemy mierzyć wydajność systemu.
DEMODEMO
Castle WindsorCastle Windsor
ProblemProblem
Otwierać sesje NHibernate i zarządzać transakcją dla
każdego wywołania WebServicu
DEMODEMO
CqRSCqRS
LinkiLinki
http://bfsharp.codeplex.com
http://cqrssample.codeplex.com/
http://dsl.codeplex.com/
http://blog.macmichal.pl
PytaniaPytania
KontaktKontakt
Michał Mac
www.macmichal.pl
kontakt@macmichal.pl
513 95 93 79
Dziękuję za uwagęDziękuję za uwagę

More Related Content

Similar to Prorgamowanie aspektowe

Elitmind @ SQLDay2018: Stream Analytics i Machine Learning – czy to dobrze do...
Elitmind @ SQLDay2018: Stream Analytics i Machine Learning – czy to dobrze do...Elitmind @ SQLDay2018: Stream Analytics i Machine Learning – czy to dobrze do...
Elitmind @ SQLDay2018: Stream Analytics i Machine Learning – czy to dobrze do...Elitmind
 
Architektura Informacji (Polski)
Architektura Informacji (Polski)Architektura Informacji (Polski)
Architektura Informacji (Polski)Eric Reiss
 
4Developers - Wdrożenie e-commerce w branży fashion
4Developers - Wdrożenie e-commerce w branży fashion4Developers - Wdrożenie e-commerce w branży fashion
4Developers - Wdrożenie e-commerce w branży fashionMarcin Cichoń
 
Koprowski t certyfikacja_a_kariera_it_infomeet
Koprowski t certyfikacja_a_kariera_it_infomeetKoprowski t certyfikacja_a_kariera_it_infomeet
Koprowski t certyfikacja_a_kariera_it_infomeetmagda3695
 
Komputer PC w nowoczesnej firmie
Komputer PC w nowoczesnej firmieKomputer PC w nowoczesnej firmie
Komputer PC w nowoczesnej firmieWydawnictwo Helion
 
Drobne błędy w portalach WWW -- prawdziwe studium przypadku
Drobne błędy w portalach WWW -- prawdziwe studium przypadkuDrobne błędy w portalach WWW -- prawdziwe studium przypadku
Drobne błędy w portalach WWW -- prawdziwe studium przypadkuLogicaltrust pl
 
Drobne błędy w portalach WWW -- prawdziwe studium przypadku
Drobne błędy w portalach WWW -- prawdziwe studium przypadkuDrobne błędy w portalach WWW -- prawdziwe studium przypadku
Drobne błędy w portalach WWW -- prawdziwe studium przypadkuLogicaltrust pl
 
Jak stworzyć udany system informatyczny
Jak stworzyć udany system informatycznyJak stworzyć udany system informatyczny
Jak stworzyć udany system informatycznyqbeuek
 
Tomasz Kopacz MTS 2012 Wind RT w Windows 8 i tzw aplikacje lob (line of busin...
Tomasz Kopacz MTS 2012 Wind RT w Windows 8 i tzw aplikacje lob (line of busin...Tomasz Kopacz MTS 2012 Wind RT w Windows 8 i tzw aplikacje lob (line of busin...
Tomasz Kopacz MTS 2012 Wind RT w Windows 8 i tzw aplikacje lob (line of busin...Tomasz Kopacz
 
GET.NET - Osiołkowi w żłobie dano, czyli o tym jak hostować aplikacje na Mic...
GET.NET -  Osiołkowi w żłobie dano, czyli o tym jak hostować aplikacje na Mic...GET.NET -  Osiołkowi w żłobie dano, czyli o tym jak hostować aplikacje na Mic...
GET.NET - Osiołkowi w żłobie dano, czyli o tym jak hostować aplikacje na Mic...Michal Furmankiewicz
 
Girls in It - Front-end & Back-end. Jak zacząć
Girls in It - Front-end & Back-end. Jak zacząćGirls in It - Front-end & Back-end. Jak zacząć
Girls in It - Front-end & Back-end. Jak zacząćmonterail
 
Poznajmy się!
Poznajmy się!Poznajmy się!
Poznajmy się!Redexperts
 
Tajniki współpracy z (trudnym) klientem
Tajniki współpracy z (trudnym) klientemTajniki współpracy z (trudnym) klientem
Tajniki współpracy z (trudnym) klientemKatarzyna Mrowca
 
Dwa sposoby na pisanie aplikacji bez błędów
Dwa sposoby na pisanie aplikacji bez błędówDwa sposoby na pisanie aplikacji bez błędów
Dwa sposoby na pisanie aplikacji bez błędówMichal Lukaszewski
 
Studia UXD Katowice - Wykład końcowy
Studia UXD Katowice - Wykład końcowyStudia UXD Katowice - Wykład końcowy
Studia UXD Katowice - Wykład końcowyTomasz Skórski
 
WWW jako inwestycja Twojej firmy
WWW jako inwestycja Twojej firmyWWW jako inwestycja Twojej firmy
WWW jako inwestycja Twojej firmywysokapozycja.pl
 
Robotyzacja procesów biznesowych - od optymalizacji do transformacji modelu d...
Robotyzacja procesów biznesowych - od optymalizacji do transformacji modelu d...Robotyzacja procesów biznesowych - od optymalizacji do transformacji modelu d...
Robotyzacja procesów biznesowych - od optymalizacji do transformacji modelu d...Andrzej Sobczak
 

Similar to Prorgamowanie aspektowe (20)

Elitmind @ SQLDay2018: Stream Analytics i Machine Learning – czy to dobrze do...
Elitmind @ SQLDay2018: Stream Analytics i Machine Learning – czy to dobrze do...Elitmind @ SQLDay2018: Stream Analytics i Machine Learning – czy to dobrze do...
Elitmind @ SQLDay2018: Stream Analytics i Machine Learning – czy to dobrze do...
 
Architektura Informacji (Polski)
Architektura Informacji (Polski)Architektura Informacji (Polski)
Architektura Informacji (Polski)
 
4Developers - Wdrożenie e-commerce w branży fashion
4Developers - Wdrożenie e-commerce w branży fashion4Developers - Wdrożenie e-commerce w branży fashion
4Developers - Wdrożenie e-commerce w branży fashion
 
Koprowski t certyfikacja_a_kariera_it_infomeet
Koprowski t certyfikacja_a_kariera_it_infomeetKoprowski t certyfikacja_a_kariera_it_infomeet
Koprowski t certyfikacja_a_kariera_it_infomeet
 
Technical Side of Agile
Technical Side of AgileTechnical Side of Agile
Technical Side of Agile
 
Komputer PC w nowoczesnej firmie
Komputer PC w nowoczesnej firmieKomputer PC w nowoczesnej firmie
Komputer PC w nowoczesnej firmie
 
Drobne błędy w portalach WWW -- prawdziwe studium przypadku
Drobne błędy w portalach WWW -- prawdziwe studium przypadkuDrobne błędy w portalach WWW -- prawdziwe studium przypadku
Drobne błędy w portalach WWW -- prawdziwe studium przypadku
 
Drobne błędy w portalach WWW -- prawdziwe studium przypadku
Drobne błędy w portalach WWW -- prawdziwe studium przypadkuDrobne błędy w portalach WWW -- prawdziwe studium przypadku
Drobne błędy w portalach WWW -- prawdziwe studium przypadku
 
Jak stworzyć udany system informatyczny
Jak stworzyć udany system informatycznyJak stworzyć udany system informatyczny
Jak stworzyć udany system informatyczny
 
Tomasz Kopacz MTS 2012 Wind RT w Windows 8 i tzw aplikacje lob (line of busin...
Tomasz Kopacz MTS 2012 Wind RT w Windows 8 i tzw aplikacje lob (line of busin...Tomasz Kopacz MTS 2012 Wind RT w Windows 8 i tzw aplikacje lob (line of busin...
Tomasz Kopacz MTS 2012 Wind RT w Windows 8 i tzw aplikacje lob (line of busin...
 
GET.NET - Osiołkowi w żłobie dano, czyli o tym jak hostować aplikacje na Mic...
GET.NET -  Osiołkowi w żłobie dano, czyli o tym jak hostować aplikacje na Mic...GET.NET -  Osiołkowi w żłobie dano, czyli o tym jak hostować aplikacje na Mic...
GET.NET - Osiołkowi w żłobie dano, czyli o tym jak hostować aplikacje na Mic...
 
BDD in Symfony
BDD in SymfonyBDD in Symfony
BDD in Symfony
 
Girls in It - Front-end & Back-end. Jak zacząć
Girls in It - Front-end & Back-end. Jak zacząćGirls in It - Front-end & Back-end. Jak zacząć
Girls in It - Front-end & Back-end. Jak zacząć
 
Poznajmy się!
Poznajmy się!Poznajmy się!
Poznajmy się!
 
Tajniki współpracy z (trudnym) klientem
Tajniki współpracy z (trudnym) klientemTajniki współpracy z (trudnym) klientem
Tajniki współpracy z (trudnym) klientem
 
Dwa sposoby na pisanie aplikacji bez błędów
Dwa sposoby na pisanie aplikacji bez błędówDwa sposoby na pisanie aplikacji bez błędów
Dwa sposoby na pisanie aplikacji bez błędów
 
Studia UXD Katowice - Wykład końcowy
Studia UXD Katowice - Wykład końcowyStudia UXD Katowice - Wykład końcowy
Studia UXD Katowice - Wykład końcowy
 
Prezentacja AMG.net
Prezentacja AMG.netPrezentacja AMG.net
Prezentacja AMG.net
 
WWW jako inwestycja Twojej firmy
WWW jako inwestycja Twojej firmyWWW jako inwestycja Twojej firmy
WWW jako inwestycja Twojej firmy
 
Robotyzacja procesów biznesowych - od optymalizacji do transformacji modelu d...
Robotyzacja procesów biznesowych - od optymalizacji do transformacji modelu d...Robotyzacja procesów biznesowych - od optymalizacji do transformacji modelu d...
Robotyzacja procesów biznesowych - od optymalizacji do transformacji modelu d...
 

Prorgamowanie aspektowe

Editor's Notes

  1. Przelew Logowanie wyjątków Logowanie\\audyt przelewu Profiling
  2. Postaramy się przedstawiony problem rozwiązać, ale najpierw zobaczmy jak zbudowana jest aplikacja
  3. Użycie 3 aspektów
  4. Jak wygląda aspekt? Logowanie