Dzisiaj dosyć ważne zagadnienie, a mianowicie filtry autoryzacji. Stosuje się je po to, aby wymusić autoryzację danej akcji i w razie braku autoryzacji po prostu ją zablokować.
Sztuka programowania 3897 dni, 10 godzin, 23 minuty temu 201 źrodło rozwiń
Last time I finished on negative values requirement. This will be the “almost” last part of the series about String Calculator Kata. There was some interest in more practical TDD examples in business context with services, layers, mocks and external dependencies like database. I will start next series to cover scenarios like that. Current kata is...
Sztuka programowania 3897 dni, 10 godzin, 23 minuty temu 62 źrodło rozwiń
W tym odcinku skupiam się na stanie aplikacji przed jakimikolwiek procesami “upiększającymi”. Aplikacja, którą mamy upiększyć, została do celów demonstracyjnych zbudowana dość nietypowo. Nie jest to web app, nie jest to nawet console app. Jest to jedna z...
Sztuka programowania 3897 dni, 10 godzin, 23 minuty temu 231 źrodło rozwiń
Poprzednio odwracałem sterowanie (lub kontrolę, jak kto woli). Dzisiaj pora odwrócić zależność. Zasada odwracania zależności (Dependency Inversion Principle) to ostatnia (licząc wg porządku liter w nazwie) z zestawu zasad SOLID. O co więc chodzi z tą zależnością i na czym tak naprawdę polega jej odwracanie? Najlepiej będzie zademonstrować to na przykładzie. Oglądaliście "Seksmisję" (to już 30 lat od jej premiery)? Był w niej...
Sztuka programowania 3897 dni, 10 godzin, 23 minuty temu 208 źrodło rozwiń
W dniu 2.06.2014 na Politechnice Wrocławskiej. Odbędzie się mini konferencja, a w niej 2 wykłady: - "Dlaczego musimy męczyć się z danymi, czyli, największe błędy programistów baz danych" – wykład Damiana Widery - Speakera na wielu krajowych i międzynarodowych konferencjach, w tym European PASS Conference oraz Microsoft Technology Summit. Posiada liczne certyfikaty firmy Microsoft, w tym MCT od roku 2005, MCITP-DBA, MCITP-DD, MCSD.NET oraz od 2009 roku tytuł MVP w kategorii SQL Server. - „Kiedy samo IDE ...
Sztuka programowania 3897 dni, 10 godzin, 23 minuty temu 102 źrodło rozwiń
Automation of desktop applications This article presents principles and best practices related to automation of a desktop application. I will try to explain differences between desktop, web and client/server application to help you to understand influence of unique factors on automation of a desktop application. I am also going to write a few words about tools that are designed to make automation process feasible and easy. For the purpose of this article I will focus on standalone desktop appli...
Jednym ze sposobów na przyspieszenie wczytywania strony internetowej jest asynchroniczne ładowanie skryptów JavaScript. Jest to ważne szczególnie kiedy wykorzystujemy na naszych stronach skrypty znajdujące się na zdalnych serwerach, ponieważ często ich pobieranie trwa długo. Przeglądarki internetowe, domyślnie podczas wczytywania strony przetwarzają poszczególne elementy DOM jeden po drugim czyli synchronicznie. Jako, że script również jest takim elementem, jego przedłużone wczytywanie mo...
Jak można było dowiedzieć się z moich ostatnich postów społecznościowo-konferencyjnych (jeden, drugi, trzeci), miałem ostatnio prezentacje na temat Dependency Injection. Dość dziwne jest to o tyle, że na ten temat nie blogowałem właściwie od czterech lat. Pora zaległości nadrobić:). Pojawiły się za to treści gdzieś indziej. Po jednym z moich występów Basia podjęła temat. Po jej poście Paskol też coś naskrobał. A i w polskiej-anglo...
Architektura 3899 dni, 21 godzin, 38 minut temu 331 źrodło rozwiń
Często słyszę: “TDD powinno sprawiać, że oprogramowanie nie ma bugów”. To bardzo mylne pojmowanie wszystkiego, co się za TDD kryje. I dla tej praktyki mocno krzywdzące, bo gdy się okazuje, że tak nie jest, to ludzie się zniechęcają. Starałem się zdecydowanie podkreślać ten fakt podczas moich wystąpień na temat unit testów w zeszłym i za-przeszłym roku. Może w kontekście ostatnich wydarzeń w świecie unit...
Sztuka programowania 3903 dni, 13 godzin, 42 minuty temu 284 źrodło rozwiń
W najnowszej wersji 5, mamy do dyspozycji nowy rodzaj filtrów, implementujący interfejs IOverrideFilter:publicinterface IOverrideFilter { ///////// Type FiltersToOverride { get; } } Atrybuty przydają się, gdy mamy jeden filtr nałożony globalnie i potem chcemy zmienić zachowanie wyłącznie dla specyficznej akcji. Na przykład, możemy nałożyć Authorize globalnie i potem dla konkretnej akcji zmienić reguły autoryzacji. Innymi słowy, IOverrideFilter umożliwia wyczyszczenie wszystkich filtrów dla konk...
TDD – commit by commit String Calculator Kata (III) Posted on by Michal Franc Previous post in the series – TDD – commit by commit String Calculator Kata (II) In the previous post I did a cleanup phase and added one feature to the String Calculator. The kata is not finished yet.Step VIII – Different Delimiters String Calculator should support different delimiters. Previous solution was just a hard-coded hack, still it was good enough solution. There wasn’t any requirement that would suggest a need f...
Sztuka programowania 3904 dni, 12 godzin, 35 minut temu 65 źrodło rozwiń
David H Hannson, autor Ruby on Rails opublikował artykuł: no i poszło… mleko się rozlało. Burza większa niż o sosnę (tą rozdartą – nie o brzozę, brzozy są niepolityczne). Uncle Bob napisał http://blog.8thlight.com/uncle-bob/2014/05/11/FrameworkBound.html ale jak wie...
Od pewnego czasu mam okazję budować system, którego część funkcjonalności dotyczy automatyzacji czynności administracyjnych związanych z zarządzaniem użytkownikami Active Directory. Jedną z takich czynności jest przełączanie skrzynek pocztowych Exchange 2007/2010 pomiędzy dwoma kontami użytkowników. W dzisiejszym wpisie pokażę, w jaki sposób zrealizować to zadanie wykorzystując Exchange Management Shell (EMS).
Introduction to Dependency Injection Sooner or later all of us will hear acronym SOLID. Some friend of us will whisper us that our code should be SOLID. The letter ,,D” is abbrevation of „Dependency Inversion” which means:High-level modules should not depend on low-level modules. Both should depend on abstractions.Abstractions should not depend upon details. Details should depend upon abstractions. Another importan term is IoC (Inversion Of Control). In software engineering, inversion of ...
Sztuka programowania 3905 dni, 13 godzin, 57 minut temu 136 źrodło rozwiń
Jednym z częściej opisywanych zagadnień na blogach programistycznych są wzorce projektowe. Często jednak ich opisy są bardzo krótkie, bez przykładów konkretnego zastosowania w prawdziwym kodzie, a czasem nawet niepoprawne. Dzisiaj przedstawię jak wykorzystanie wzorców projektowych może przyczynić się do ograniczenia powtórzeń w kodzie testów. Nie będzie to wprowadzenie do tych wzorców (opisanych setki razy w innych miejscach), ale opis moim zdaniem nietypowego ich zastosowania.
Sztuka programowania 3906 dni, 21 godzin, 48 minut temu 241 źrodło rozwiń
Trafiłem ostatnio na tekst o nadużywaniu var. Przede wszystkim zafrapowało mnie użycie pojęcia „nadużywanie„, bo sugerowało, że podczas tworzenia kodu należałoby (oprócz wielu reguł) brać jeszcze pod uwagę czy danej konstrukcji nie używa się zbyt często (czyli nadużywa). Tylko jakie w takim razie powinno być kryterium umożliwiające stwierdzenie, czy coś jest nadużyciem, czy nie? Czy jeśli ...
Sztuka programowania 3906 dni, 21 godzin, 48 minut temu 345 źrodło rozwiń
Ostatnio jeden z czytelników tego bloga zadał mi pytanie związane z oknami modalnymi w Bootstrap co skłoniło mnie do poszperania trochę w dokumentacji wtyczek jQuery do Bootstrap’a. Po bliższym zapoznaniu się z tą tematyką uznałem, że może z tego powstać całkiem ciekawy i użyteczny wpis – i oto efekt Zresztą nie ma co przedłużać, przejdźmy zatem do rzeczy!
Dzisiejszym wpisem chciałbym zapoczątkować krótką serię na temat tego co powinniśmy robić, a czego nie powinniśmy (a przynajmniej tak mi się wydaje). W części pierwszej przyjrzymy się XML.
Sztuka programowania 3911 dni, 20 godzin, 44 minuty temu 401 źrodło rozwiń
Dzisiaj przyjrzymy się słowu kluczowemu var w C#. Słowo dodane wraz z premierą framework’a .NET 3.5 stało się jednym z najbardziej nadużywanych przez programistów.
Sztuka programowania 3911 dni, 20 godzin, 44 minuty temu 304 źrodło rozwiń
W kwietniu na jednym z blogów poruszany był temat odwracania (inwersji) w kontekście tworzenia oprogramowania. Dotyczyło to takich zagadnień (pozwolę sobie na wstępie użyć ich angielskich nazw) jak Inversion of Control (w skrócie IoC) oraz Dependency Inversion Principle (DIP). Przy okazji tego drugiego odniesiono się też do Dependency Injection (DI), które ...
Sztuka programowania 3911 dni, 20 godzin, 44 minuty temu 269 źrodło rozwiń