Jakiś czas temu opisałem jak utowrzyć instalator dla uslugi Windows w środowisku Visual Studio. Jest to sposób dość skomplikowany i czasochłonny. Z drugiej strony daje duże możliwości konfiguracyjne i rozszerzające. Nie o tym jednak. W niniejszym artykule opisuję jak zainstalować usługę Windows wyłącznie za pomoca kodu.
Sztuka programowania 2353 dni, 11 godzin, 59 minut temu 245 źrodło rozwiń
W dotychczasowo opisanych częściach cyklu na temat MVVM (z wykorzystaniem Caliburn.Micro) wszystko było pokazane na przykładzie aplikacji mającej wyłącznie jedno okno. W rzeczywistym świecie takie aplikacje należą do mniejszości. Programy mają zwykle kilka okien i tym właśnie teraz się zajmiemy.Podejście klasyczne W klasycznie zbudowanej aplikacji jeśli chcemy wejść np. opcje aplikacji to otwiera się nam nowe okno. Spróbujmy zmodyfikować aplikację z ostatniego przykładu. Modyfikacja View jest pr...
Hej, sorry za tę przerwę! Dopadło mnie chyba to samo o czym pisał ostatnio procent… No ale nic to, oto jestem z powrotem z nowymi siłami do blogowania! A dzisiejszym wpisem postanowiłem kontynuować temat testowania kodu napisanego w JavaScript. Ostatnio zrobiłem krótki wstęp do frameworka Jasmine – jeśli jesteś nowicjuszem w temacie testów jednostkowych w JavaScript lub nie wiesz zupełnie nic na temat frameworka Jasmine, to zachęcam do przeczytania tego wpis...
Google Charts to świetne rozwiązanie, jeżeli potrzebujecie wykresów w swojej aplikacji. Właściwie spodobało mi się od razu po pierwszym użyciu i póki co nie szukam alternatywy (chociaż jeżeli korzystacie z jakiś przyjemnych bibliotek to chętnie poznam :-)). Integracja we własnym systemie jest w sumie prosta, chociaż trochę się nagimnastykowaliśmy, żeby odpowiednio do naszych potrzeb skonfigurować bardziej rozbudowane wykresy. Po przez bardziej rozbudowane mam na myśli np.. liniowy i kolumnowy na jednym ...
Sztuka programowania 2354 dni, 7 godzin, 13 minut temu 146 źrodło rozwiń
Nie jestem specjalistą od WCF – właściwie to nawet nie za bardzo lubiłem tę technologię. Było w niej dużo konfigurowania i XMLi, a ja jednak wolę pisać kod. Serwis w WCF Popełniłem kiedyś Serwis, który potem trzeba było utrzymywać. Wszystko było dobrze dopóki inne .NETowe końcówki się z nim łączyły. Dodaje się referencję poprzez „Add service reference” — generują się wszystkie potrzebne klasy — można od...
Ostatnio znalazłem fajny przykład pokazujący jak można nieoczekiwanie pogorszyć wydajność aplikacji. Załóżmy, że mamy metodę, która jako parametr wejściowy przyjmuje funkcję...
Sztuka programowania 2357 dni, 11 godzin, 53 minuty temu 391 źrodło rozwiń
This post is part of the series: iOS for C# Developer. Previous parts: part 1 (Classes and creating objects), part 2 (strings). The most typical scenario to use multithreading is to maintain responsive UI when we do some resource-consuming computation.C# Let’s consider simple button click action in C#...
Czasami są takie dni w życiu człowieka (a nawet programisty), że wszystko idzie zgodnie z planem. Każde zadanie, które dostaje jest banalne albo (lepsza opcja) zrobione już wcześniej. Miałem kiedyś taki dzień. Jakby to powiedział Skipper dzień idealny. Niestety w moim przypadku to się nie sprawdziło. W moim przypadku sprawdza się raczej “jeśli wszystko idzie zgodnie z planem to znaczy, że to zasadzka”. No ale wracając do meritum dostałem kiedyś “banalne” zadanie musiałem wymienić tło w głównym okni...
There are a lot of aspects to be considered while developing real world applications. Maintainability, Understandability, Clarity, Dependency are just a few of them. We have to work hard to maintain our code and make it self-commenting, preserve it from cyclic dependencies between assemblies or simply, to provide its good quality. There are a lot of tools that may help to achieve these goals e.g. Sonar, ReSharper, JustCode or NDepend. This article explains how to analyse the quality of code with the use ...
Main menuMain pageAboutContact Share article via: You've read lot of articles about advanced C# constructions, new features, frameworks, etc. and at the end you are opening your solution and you start looking... and thinking... what is wrong the hell? Why my project is so f* boring? I'd like to change something. I want to have the cool application, which I want to be proud of and compare this solution with the ones I've read about. If this situations happened before this article is for you...
Sztuka programowania 2357 dni, 11 godzin, 53 minuty temu 142 źrodło rozwiń
Dzisiejszy wpis będzie dotyczył oczywistej oczywistości. Ale czy na pewno? Zostałem kiedyś zapytany na jednej z pierwszych rozmów o pracę, żeby wymienić jak najwięcej zdarzeń związanych z cyklem życia strony. Pierwszymi (i niestety jedynymi)...
Architektura 2358 dni, 3 godziny, 14 minut temu 854 źrodło rozwiń
Chyba każdy programista piszący w C# usłyszał kiedyś (najczęściej na rozmowie kwalifikacyjnej) pytanie o typy danych występujących w tym języku. Naturalną odpowiedzią są typy wartościowe i typy referencyjne (taka nierozłączna para bliźniąt), mówimy jakie są różnice pomiędzy nimi, mówimy mądre zdania o stosie i o stercie. Czasem dostajemy “podchwytliwe” pytanie w stylu: String to typ referencyjny czy wartościowy? String to jest przechowywany na stosie czy na stercie? Tablica intów to typ refer...
Sztuka programowania 2359 dni, 1 godzinę, 43 minuty temu 286 źrodło rozwiń
Siedzę sobie i integruję można by rzec. Integruję swoją aplikację z API serwisu furgonetka.pl. Ogólnie rozwiązanie zajebiste, żądania ładnie idą po http, odpowiedzi dostaję w pięknych jsonach. Wszystko idealnie. Tylko dlaczego dokumentacja do tego API jest tak ogólnikowa? Tak bardzo zrobiona po łebkach? Dlaczego za każdym razem trzeba się wszystkiego domyślać?
Sztuka programowania 2360 dni, 10 godzin, 55 minut temu 248 źrodło rozwiń
Jeśli ktoś czytał moje poprzednie posty na temat MVVMa to z pewnością wie, że jednym z plusów jego stosowania jest możliwość odseparowania(w mniejszym lub większym zakresie) pracy programisty od pracy osoby odpowiedzialnej za design aplikacji. Oczywiście tak mówi teoria i często programista sam musi opracować wygląd okna aplikacji (no ale takie jest już życie). Wyobraźmy więc sobie, że dostaliśmy wytyczne jak ma wyglądać okno (takie a takie przyciski, tutaj grid, jakiś checkbox, szerokość elementu ...
W dzisiejszym wpisie skupię się na pokazaniu, w jaki sposób można stworzyć prostą metodę pomocniczą dla naszej aplikacji napisanej przy wykorzystaniu ASP.NET MVC. W przykładzie, metoda będzie wyświetlać wszystkie elementy przekazane za pomocą listy do widoku, dodając do nich tekst “Welcome in” (przykład nieco abstrakcyjny, jednak bardzo dobrze przekazuje wiedzę potrzebną na tworzenie helperów w przyszłości). Aby stworzyć metodę pomocniczą, możemy wybrać jedno z dwóch podstawowych podejść: - wewnętrzna...
Sztuka programowania 2360 dni, 10 godzin, 55 minut temu 241 źrodło rozwiń
Stało się! Stworzyłem swój własny schemat kolorów do Visual Studio. Niby nic takiego… a jadenak! Do tej pory korzystałem ze stylu Son of obsidian i najbardziej wkurzało mnie to, że zaznaczenie linii było prawie niewidoczne. I chyba to zdecydowało. Schemat stworzyłem przy użyciu StudioStyles (polecam).
This post is part of the series: iOS for C# Developer. String operations in Objective-C are very verbose in comparison to C#.
Dziś kolejny wpis na temat mikro-optymalizacji. Oczywiście dla większości aplikacji biznesowych taka różnica w wydajności nie ma kluczowego znaczenia. Myślę jednak, że jest to ciekawe z punktu widzenia IL i jak naprawdę działa język c#. Jeśli ktoś z kolei piszę np. grę albo aplikację czasu rzeczywistego, wtedy ma to już znaczenie, co robimy w każdej sekundzie. Zacznijmy od razu od wniosku: foreach w niektórych przypadkach jest znacząco wolniejszy od klasycznego for. Nie powinno to dziwić – w końcu iter...
Nie ma się nad czym zbytnio rozwodzić, ponieważ MoreLINQ jest biblioteką, która po prostu rozszerza podstawowe LINQ o dodatkowe operatory. Ja najczęściej korzystam z DistinctBy(), MinBy() oraz MaxBy(). Takie rozszerzenie nie tylko oszczędza mi czas, ale również sprawia, że kod jest „czystszy” i np. to co napisałbym w 3 linijkach mam w jednej – krótkiej i jasnej. Z pełnym przekonaniem polecam! Znacie coś podobnego, co rozszerza nam LINQ o jeszcze inne operatory?
Niejednokrotnie musimy przeczytać jakieś dane “skądś”, i nie mam na myśli bazy danych. Czy to zewnętrzny system przysyła excela, czy na dysku ląduje plik tekstowy, czy jeszcze coś innego. Takie pliki musimy przetworzyć, więc prawdopodobnie utworzymy klasę “XFileProcessor” albo “XFileParser”, czy coś w ten deseń. To jest akurat idealny scenariusz do pisania testów: dostajemy input i znamy oczekiwany output. Klient przysyła plik wejściowy i mówi, ja...