Ten post jest pierwszym z cyklu poświęconego architekturze systemów informatycznych. Zaczynamy od wyjaśnienia pojęć logiki biznesowej i logiki aplikacji na przykładzie małej aplikacji ASP.NET MVC. Więcej na temat MVC w kolejnym artykule. Już teraz zapraszam. Uczestnicząc w dyskusjach zarówno w życiu zawodowym jak i wirtualnym spotykam się z myleniem wymienionych w tytule artykułu pojęć, bądź używaniem ich zamiennie...
Strona głównaUżytkownik
markone | użytkownik
Architektura 3663 dni, 3 godziny, 29 minut temu 886 źrodło rozwiń
Ask yourself a question if your unit test project is a mixture of test methods or it shapes a specification that you can share with your client. If you really want to improve your testing experience look at NSpec.
Wszyscy chyba wiemy co stało się po ostatnich wyborach samorządowych. Jak to program Kalkulator1 robi furorę w internecie, jak to kilka dni po głosowaniu nie znamy ich wyników, i tak dalej. Jeśli nie wiesz to kilka linków: Niebezpiecznik: Problemy w PKW. Zliczanie głosów wyborców się opóźnia – zawiódł system informatycznyNiebezpiecznik: Cały świat ogląda i komentuje kod źródłowy obsługujący polskie wyboryNaTemat: Kto...
Jak wiemy Microsoft powołał projekt udostępnienia kodu źródłowego .NET-a. O czym można poczytać na tym blogu .NET. Są tam opisane szczegóły dotyczące motywów działania, jak i planów na przyszłość, które są obiecujące. Zachęcam do przeglądania tego udostępnionego kodu i nauki programowania poprzez podpatrywanie rozwiązań stosowanych przez kolegów z zespołu tworzącego .NET. Osobiście od jakiegoś czasu używam poniższych stron do badan...
Jeśli jeszcze nie ściągneliście VS 2015, to zapraszam: http://www.visualstudio.com/en-us/downloads/visual-studio-2015-downloads-vs.aspx Smart Unit Tests to sposób automatycznego wygenerowania scenariuszy dla testów jednostkowych. Wiele o tym już na blogu jak i w artykułach na MSDN pisałem, a konkretnie o Pex & moles. Chciałbym dzisiaj jednak zaprezentować wbudowaną funkcję w VS 2015. Nie wymaga ona instalacji zewnętrznych narzędzi. Na początku od razu poważna wada.. Póki co, wspierany jest wyłącznie ...
Czasami musimy połączyć kilka dokumentów PDF w jeden. W moim przypadku polegało to na stworzeniu jednego dokumentu pdf z kilku dokumentów wgranych na serwer przez użytkownika, oraz dołączeniu pliku z podpisem na początku lub końcu dokumentu w zależności od konfiguracji.
Wszyscy wiemy, że prawdziwi programiści nie korzystają z myszki. Wiedzą to i twórcy GIT-a. Po zainstalowaniu wersji dla Windows otrzymujemy dostęp do konsoli gita za pomocą standardowego wiersza poleceń - cmd, a wygląda to tak...
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 3845 dni, 4 godziny, 33 minuty temu 193 źrodło rozwiń
Już kilka tygodni typu pisałem o ASP.NET MVC 5 Scaffolding. Jak wspomniałem, domyślny szablon nadaje się do prototypów albo tymczasowych aplikacji. W praktyce będziemy chcieli wykorzystać IoC i własne usługi, a nie bezpośrednio operować na bazie danych. Za pomocą własnego szablonu, można wszystko dostosować do konkretnego projektu i infrastruktury. Najpierw ściągamy pakiet szablonów VS z http://sidewaffle.com/. Oprócz tego, musimy zainstalować Visual Studio 2013 Update 2 oraz Visual Studio 2013 SDK. Na...
Kiedyś na stronach MS widziałem rekomendację mówiącą “używaj typów wyjątków dostarczanych przez framework”. Jakiś czas temu, na jakimś polskim chyba blogu, przeczytałem tego powtórkę. Wiecie co? U mnie się doskonale sprawdza kompletne przeciwieństwo tej praktyki. Zawsze w swoich aplikacjach staram się mieć jeden bazowy typ wyjątku, abstrakcyjna klasa MyAppException: Exception. Dzięki temu jestem w stanie wyłapać wszystko co rzuca mój...
Sztuka programowania 3839 dni, 3 godziny, 52 minuty temu 254 źrodło rozwiń
The topic of custom exceptions is surprisingly controversial. Some argue that exceptions shouldn't be used for anything related to "business", while others (me included) say that exceptions like InsufficientFunds are fine - I even wrote a whole chapter about using custom exceptions to simplify controllers in my Rails Refactoring book. I've read an interesting blog post today about custom exceptions (here - unfortunately it's in Polish), where the author advocates for using "business exceptions". ...
Sztuka programowania 3839 dni, 3 godziny, 52 minuty temu 147 źrodło rozwiń
EmguCV jest .Netowym wrapperem do OpenCV - potężnej biblioteki do przetwarzania i analizy obrazów (zarówno statycznych jak i ruchomych) oraz innych sygnałów cyfrowych. Ważną cechą biblioteki jest fakt iż stara się ona wykorzystać jak najlepiej zasoby dostępne na maszynie na której jest ona uruchomiona, ze szczególnym uwzględnieniem karty grafiki.
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 3836 dni, 23 godziny, 5 minut temu 212 źrodło rozwiń
Co prawda nie jest to ani blog ani wpis .Netowy, nie jest nawet techniczny. Wydaje mi się jednak, że każdy kto pracuje jako B2B powinien takie rzeczy wiedzieć i warto, żeby takie coś znalazło się na dotnetomaniaku.
W poprzednim wpisie wspomniałem o metodzie ToBitmap klasy Image pozwalającej na konwersję klasy Image na klasę System.Drawing.Bitmap, co pozwala na używanie wyniku obróbki obrazu w kontrolkach Windows Forms. Jednak taka konwersja nie należy do najszybszych operacji, po za tym powoduje zwiększenie zużycia pamięci, ponieważ obraz jest przechowywany w pamięci w dwóch postaciach. Ponieważ najczęstszym zastosowaniem obrazów jest ich wyświetlanie do EmguCV została dodana kontrolka ImageBox.
Postawiłem przed sobą dość proste zadanie dodania nowego 'ficzeru' do pewnej wewnętrznej ministronki w firmie. Ot, taka mała lista obsługiwanych aplikacji. Z biegiem czasu 'mutacji' produktu powstało wiele, dlatego lista stała się dość pokaźna i znalezienie czegoś w niej stało się trudne.
Niedawno na łamach natematu pojawił się artykuł o jakże wdzięcznym tytule: “IT-arystokracja. Najbardziej zepsuta pensjami i przywilejami grupa zawodowa“. Widziałem linki do niego w bardzo wielu miejscach, więc pewnie każdy z Was go już czytał. A teraz się do niego ustosunkuję (po raz wtóry, gdyż raz już to, trochę po łebkach, uczyniłem na grupie polskich programistów .NET na FB). Odnośnie artykułu Sam art...
Ostatnio omawialiśmy co to jest NPM oraz co to jest Bower. Pora na coś z czego będzie nam naprawdę ciężko (do póki nie poznamy alternatywy ;)) żyć w świecie JavaScript.Grunt The JavaScript Task Runner Grunt jest to system automatyzacji pracy – nie zależnie co robimy, czy to ma być statyczna strona w HTML i JavaScript, czy bardziej zaawansowana aplikacja wykorzystująca coffee script, czy też po prostu coś co chcielibyśmy z automatyzować. W odniesieniu do naszego świata .NET Grunt można porównać z MSBUIL...
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!
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 3860 dni, 19 godzin, 42 minuty temu 345 źrodło rozwiń