O projekcie Fody po raz pierwszy, usłyszałem dość dawno temu, ale dopiero ostatnia prezentacja Tomka na Wroc.NET uświadomiła mi jak fajny jest to projekt. Ja sam będę miał przyjemność prezentować Fody’ego w nadchodzącym tygodniu (na spotkaniu KGD.NET) a dzisiaj wstęp na blogu.


Czym jest fody? Krótko mówiąc to framework, który umożliwia odpalanie własnych tkaczy modyfikujących kod już po kompilacji. Dzięki temu cały tzw. pluming code, możemy wyciągnąć z naszego kodu źródłowego do osobnych modułów. Dla przykładu dość denerwujące implementowanie INotifyPropertyChanged załatwiamy za pomocą jednej paczki Fody’ego

PM> Install-Package PropertyChanged.Fody

oraz jednego atrybutu nad naszym modelem.

[ImplementPropertyChanged]

Kod jaki zostanie wygenerowany będzie zawierał wstrzyknięte wywołania PropertyChanged. Dodatkowo moduł ten wykryje zależności. Jeśli więc mamy właściwości FirstName, LastName oraz FullName, które zbudowane jest z tych dwóch pierwszych, to w seterze FirstName oraz LastName Fody doda także PropertyChnaged(“FullName”). Sweet. Pozbywamy się tzw. plumbing code. Ale to dopiero początek. Dodatkowe atrybuty jakie daje nam ten pakiet to:

  • AlsoNotifyFor
  • DoNotNotify
  • DependsOn
  • DoNotSetChanged

Które są dość samowyjaśniające. Zaciekawieni? To dopiero jeden z wielu pakietów! Możesz sobie upraszczać wiele aspektów – logowanie, testowanie oraz dekorowanie. Po spotkaniu w Krakowie spodziewajcie się prezentacji i przykładów.

Zachęcam do spróbowania. Tak jak to napisał Tomek w tytule swojej prezentacji dzięki Fody – code weaving będzie fun 🙂