Scrutor to sprytna biblioteka, która pozwala na automatyczną rejestrację zależności (dependency injection) dla kontenera IOC Microsoft.Extensions.DependencyInjection. Ideą biblioteki Scrutor jest skanowanie kodu źródłowego, np. assembly, celem automatycznej rejestracji zależności wedle zadanych przez nas reguł.
Last time I checked the lifetimes of different types of services and want to share with you my findings.
Architektura 1346 dni, 1 godzinę, 59 minut temu 75 źrodło rozwiń
Zaczynam nową serię wpisów – tym razem będzie o wzorcach projektowych. Na pierwszy ogień wezmę jeden z tych, których nie wiedzieć dlaczego, trudno mi było zrozumieć, ale jak już zrozumiałem, to nie wyobrażam sobie koderki z bez wzorca Constructor Dependency Injection.
Sztuka programowania 2792 dni, 1 godzinę, 51 minut temu 166 źrodło rozwiń
Dzisiaj artykuł o wstrzykiwaniu zależności. Każda poważniejsza aplikacja w obiektowym języku programowania powinna implementować zasadę odwróconego sterowania (IoC), a jej poszczególne modułu powinny być luźno powiązane (loose coupling).
Sztuka programowania 3142 dni, 23 godziny, 34 minuty temu 872 źrodło rozwiń
O tym, jak zarejestrować w DI klasy z biblioteki 'rodzica' oraz wywołać dowolną metodę serwisu poprzez żądanie HTTP.
Daj się poznać 2016 3149 dni, 1 godzinę, 34 minuty temu 96 źrodło rozwiń
Programowanie jest powtarzalne. Nic z tym nie da się zrobić. Można jednak to nieco uprościć i zrzucić część rzeczy na dostępne na rynku biblioteki.
Daj się poznać 2016 3165 dni, 20 godzin, 51 minut temu 168 źrodło rozwiń
Zacząłem się wczytywać czym jest IoC. Okazuje się, że jest to bardzo szerokie pojęcie, a DI to tylko jedna jego interpretacja. W zeszłym tygodniu pisałem o tym czym jest Dependency Injection. Teraz natomiast opowiem pokrótce czym jest IoC i jak będę go używał w moim projekcie.
Daj się poznać 2016 3167 dni, 17 godzin, 56 minut temu 111 źrodło rozwiń
Wstrzykiwanie zależności. Porównanie kontenerów IoC i wybór najlepszego do projektu WebAPI.
Daj się poznać 2016 3167 dni, 17 godzin, 56 minut temu 316 źrodło rozwiń
Zanim omówimy czym jest IoC i jak będę go używał, zacznijmy od tego czym jest Dependency Injection. Głównie chodzi o to, żeby rozdzielić implementacje poszczególnych klas. (...)
Daj się poznać 2016 3173 dni, 17 godzin, 14 minut temu 165 źrodło rozwiń
Na tą książkę zwróciłem uwagę, dzięki pytaniu K.Cebuli na naszej grupie na portalu www.facebook.com. To był chyba grudzień 2014r. i akurat amazon.com miał promocję na tą książkę. Recenzje miała dobre, wydawcę również (Microsoft), a tytuł brzmiał zachęcająco. Kupiłem więc tą książkę w formie ebooka, załadowałem na mojego kindla i w wolnym czasie ją sobie "trawiłem".
Z poprzedniego posta “DI: profesjonalne kontenery” wiemy, że wykorzystujemy kontener. Wiemy też, że użycie własnej implementacji to głupota. Pomyśleliśmy również jakimi kryteriami się kierować wybierając kontener do naszego projektu. Tak jak napisałem: ja używam Autofac. I właśnie ta biblioteka wyląduje w przedstawianym demo. Pierwsze co robię to: Install-Package Autofac Mając na pokładzie Autofaca mogę z nie...
Sztuka programowania 3679 dni, 20 godzin, 38 minut temu 364 źrodło rozwiń
Ten post jest częścią cyklu o Dependency Injection. Ostatnim razem rozstaliśmy się w takim napięciu, że aż jeden z Czytelników nazwał to cliffhangerem (nauczyłem się nowego słowa!). Zanim jednak zaczniemy przyglądać się rozwiązaniu naszej niewesołej sytuacji (nie kompiluje się, buuu): chwila refleksji i nader trafnego (a jak!) porównania. Znacie te potworki przedstawione na obrazku? Matrioszka. Ruska drewniana baba...
Sztuka programowania 3793 dni, 13 godzin, 18 minut temu 281 źrodło rozwiń
Rozważmy przez chwilę scenariusz wysyłania wiadomości e-mail. A raczej tą część procesu, w której generowana jest treść. W tagu demo3-finish mamy taki interfejs: public interface IEmailService { void RegistrationEmail(string email, string link); } (https://github.com/maniserowicz/di-talk/blob/demo3-finish/src/app/EmailService.cs) Jego implementacja powinna zająć...
Sztuka programowania 3799 dni, 18 godzin, 30 minut temu 264 źrodło rozwiń
OK – mamy niektóre “odpowiedzialności” wyjęte do osobnych klas. Ale co dalej? Czy UsersController powinien sam, ot, tak sobie, tworzyć nowe instancje których aktualnie potrzebuje? Nie! Pójdę o krok dalej i powiem więcej: użycie słowa kluczowego “new” w kodzie aplikacji uznaję za anti-pattern. Howgh, rzekłem. Jeżeli klasa potrzebuje innej klasy do działania, to ta zależność powinna być jawnie wyeksponowana w kodzie. Najlepiej przez param...
Sztuka programowania 3806 dni, 15 godzin, 7 minut temu 212 źrodło rozwiń
Zanim zajmiemy się faktycznym wstrzykiwaniem zależności, to najpierw musimy mieć co wstrzykiwać! Statycznej klasy nie wstrzykniemy przecież, jakkolwiek byśmy wstrzykiwać nie chcieli. Na początek zatem: zidentyfikujmy składowe procesu rejestracji użytkownika, które w ogólnie nie powinny znajdować się w kontrolerze. Pewniakiem jest tutaj walidacja poprawności adresu e-mail. Nie dość, że bardzo ładnie da się to...
Sztuka programowania 3814 dni, 20 godzin, 36 minut temu 193 źrodło rozwiń
Z sobotę odbyła się łódzka konferencja GET.NET (o czym jeszcze napiszę), w trakcie której tuż przed moją, odbyła się prezentacja Procenta o Dependency Injection. Samo wystąpienie było świetne, a moją ciekawość podsyciła dodatkowo obietnica (powtórzona dwukrotnie) wyjaśnienia całego zamieszania wokół pojęć DI (Dependency Injecton i Inversion) oraz IoC. Jakie było moje rozczarowanie, gdy upragniony moment nadszedł, a Maciek skwitował wszystko zdaniem, że definicje nie są ważne. Oj wkurzyłam się… Pomyślała...
Sztuka programowania 3862 dni, 16 godzin, 16 minut temu 413 źrodło rozwiń
Pokazany sposób tworzenia prostego kontenera IoC w C#.
Sztuka programowania 4009 dni, 6 minut temu 899 źrodło rozwiń
Bardzo długo moim ulubionym kontenerem był Unity, mimo faktu, że dużo mądrych ludzi ze społeczności wieszało na nim psy. Dlaczego tak polubiłem Unity? Ponieważ powstawał na moich oczach. Znam go począwszy od wczesnych “zajawek” wypuszczanych przez grupę Patterns & Practices. Wcześniej nieco interesowałem się ich biblioteką ObjectBuilder, więc naturalnie moja uwaga przeszła na Unity. Byłem w stanie przeczytać i zrozumieć kod pierwszej w...
Architektura 5300 dni, 20 godzin, 6 minut temu 196 źrodło rozwiń