Nie zdawałem sobie sprawy jak bardzo łatwiej pisać kod w oparciu o interfejsy. Zamiast tworzyć od razu klasy i martwić się ich implementacją, możemy odłożyć to zadanie na przyszłość. Dzięki temu można stworzyć hierarchię zależności między typami, nie martwiąc się zbytnio wnętrzem interfejsu.
Daj się poznać 2016 3209 dni, 40 minut temu 91 źrodło rozwiń
Daj się poznać 2016 3211 dni, 6 godzin temu 122 źrodło rozwiń
Wczoraj dostałam wreszcie email z zaproszeniem do EAP nowego projektu Jetbrains przeznaczonego dla programistów .NET, jakim jest Rider. Jest to nowe środowisko IDE stworzone przez autorów uwielbianego przez dotnetowców ReSharpera a także wielu innych profesjonalnych IDE jak IntelliJ IDEA, PHPStorm czy PyCharm. Byłam zatem niezwykle ciekawa, jakie możliwości przyniesie ze sobą to środowisko i czy będzie miało ambicję zastąpić Visual Studio. Co więcej – interesowała mnie możliwość tworzenia aplikacji dotne...
Ostatnie lata w świecie developmentu, to ogromny rozwój technologii frontendowych oraz dynamiczny rozwój sektora mobilnego, w którym wciąż jeszcze liczą się trzy systemy. No dobra - tak naprawdę to Windows Phone, tudzież Windows Mobile, trochę juz dogorywa. Świat WWW ma swoje problemy, a jednym z największych jest oczywiście wsparcie dla różnych przeglądarek. W świecie mobile, mamy za to zgoła inną sytuację. Z grubsza możemy spodziewać się wynikowego efektu na różnych urządzeniach z jednym systemem (choc...
Mobile development 3214 dni, 8 godzin, 1 minutę temu 433 źrodło rozwiń
Są takie słowa kluczowe w języku C#, bez których można się obejść. Tylko po co się ograniczać, jeśli ich zrozumienie może zaoszczędzić nam czas, liczbę linii kodu do napisania… i wzbudzić zazdrość wśród Javowców :) Zapraszam na trzy słowa o delegate.
Sztuka programowania 3213 dni, 13 godzin, 51 minut temu 402 źrodło rozwiń
I made a research based on around 100 up-to-date job offers (from last two months) for .NET developers in Poland with known salary ranges. Let’s check it out!
Visual Studio umożliwia w bardzo prosty sposób podpisywanie bibliotek, które rozwijamy w ramach solucji. Dzięki takiemu podpisowi możemy potwierdzać nie tylko ich autentyczność, ale także zapewnić, że w żadnej aplikacji, która ich używa, nie zostaną złośliwie podmienione. Dlaczego mielibyśmy się w ten sposób zabezpieczać?
Następny wpis, tym razem już na nowym systemie i nowej własnej domenie. Zobaczymy czy będzie tak jak z samochodami, gdzie wizyta na myjni daje dwa konie mechaniczne więcej. Ostatnio pisałem więcej filozoficznie, dzisiaj powrót do twardej rzeczywistości. Obejrzałem nie dawno na pluralsightfajny i krótki kurs o OWIN i Katana i częścią wiedzy chce się z wami podzielić. Kto z was zaczynał projekt ASP MVC z włączonymi indywidualnymi kontami użytkowników? Ja na pewno! Także ja, gdy pat...
Słowo kluczowe yield – obecne w języku C# od dawien dawna – w prosty sposób może przyczynić się do poprawy wydajności naszego kodu. Jak działa? Gdzie go używać? Jak może przyczynić się do poprawy działania aplikacji? Przekonajmy się...
Sztuka programowania 3229 dni, 11 godzin, 28 minut temu 467 źrodło rozwiń
Jak wspomniałem w jednym z wcześniejszych już wpisów, nie ma znaczenia, gdzie aktor jest zlokalizowany. Dzięki AKKA.NET jest to szczegół konfiguracyjny. Jeśli pewnego dnia, stwierdzimy, że wykonywanie obliczeń na jednym komputerze nie wystarcza, wtedy po prostu zmieniamy konfigurację, aby hostować danego aktora gdzieś indziej. Framework zadba o komunikację (TCP) między węzłami znajdującymi się w innych sieciach. W ten sposób, bardzo łatwo jest sk...
Programowanie rozproszone 3233 dni, 4 godziny, 35 minut temu 81 źrodło rozwiń
Gdy tworzymy kod jakiejś własnej paczki nugetowej, bardzo często wykorzystujemy kompilację w wariancie Any CPU. Dzięki temu docelowa DLLka zadziała zarówno na x86 jak i x64, ale również i na ARM w sytuacji gdy mamy do czynienia z systemami mobilnymi. Niestety nie zawsze jest tak kolorowo i prosto, i czasem Any CPU po prostu nie zadziała - np. w sytuacji gdy mamy składowe DLLki przygotowane pod określone platformy/architektury...
DbUp jest prostą biblioteką, przeznaczoną do aktualizacji baz danych. Jeśli korzystamy z ORM, zwykle wtedy dany framework posiada już analogiczną funkcjonalność. Na przykład, EntityFramework wspiera migrację, która umożliwia automatyczną aktualizacje tabel i procedur. Z drugiej strony, nie zawsze jest potrzeba korzystania z tak ciężkich rozwiązań. Bardzo popularną biblioteką do odczytu danych z baz jest Dapper. Niestety nie posiada on mechanizmu podobne...
Sztuka programowania 3235 dni, 2 minuty temu 170 źrodło rozwiń
Zasady SOLID Zasady SOLID: Odwracanie zależności Kamil Jóźwiak No Comments Wszystko powinno być tak proste, jak to tylko możliwe, ale nie prostsze. Albert Einstein Co ma wspólnego kopanie rowów z zasadami SOLID? A to już zależy od podejścia. Jako programista często przenoszę zagadnienia ze świata realnego do kodu. Tym razem będzie odwrotnie, wszystko w imię zrozumienia ostatnią z zasad SOLID – zasady odwracania zależności. Poznanie wzorców projektowych wraz z całym...
Sztuka programowania 3235 dni, 2 minuty temu 571 źrodło rozwiń
Jest wiele czynników, które mówią o jakości kodu, jednym z nich jest jego czytelność. W jaki sposób można, bez dużego nakładu pracy, poprawić czytelność kodu? Czy wielkość i poziom skomplikowania projektu mają wpływ na czytelność kodu? Kto jest odpowiedzialny z powstawanie nieczytelnego kodu i czy czytelność kodu mówi coś o profesjonalizmie programisty? W jaki sposób można zapobiegać a w jaki sposób leczyć zainfekowany kod? „Lepszy jest kod dobrze napisa...
Sztuka programowania 3244 dni, 9 godzin, 31 minut temu 527 źrodło rozwiń
ASP .NET, OgólnePiotr ZielińskiLeave a comment Kilka postów chcę przeznaczyć na temat HTTP 2.0. Zamiast pisać tylko o nowościach w nowej wersji protokołu, warto najpierw zrozumieć jak działała dotychczasowa wersja czyli HTTP 1.1. Pierwszym problemem HTTP 1.0 oraz HTTP 1.1 była obsługa wielkiej ilości zapytań. Każda strona, aby prawidłowo wyświetlić się potrzebuje załadować mnóstwo zewnętrznych zasobów takich jak skrypty JS, arkusze css czy grafika. Ponadto HTTP oparty jest na TCP więc ponadto mamy do...
ASP .NET, OgólnePiotr ZielińskiLeave a comment Zanim przejdę do kolejnych usprawnień w HTTP 2.0, warto poświęcić chwilę na zastanowienie się jak omijamy problemy HTTP 1.1 dzisiaj. Większość stron wciąż opiera się na HTTP 1.1 i nie najgorzej radzą sobie z wydajnością. Oczywiście sporo jest do poprawy, ale strony działają na urządzeniach mobilnych bez ogromnych opóźnień. Mimo wszystko, opóźnienie (latency) jest jednym z podstawowych problemów rozwiązanych przez HTTP 2.0. Zastanówmy się, jak dzisiaj...
Tworzy się wszystko po angielsku, a przez to nie ma problemów ze znakami "zażółć gęślą jaźń". Ja popełniłem ostatnio małą aplikację, gdzie postanowiłem że cały UI będzie po polsku, ponieważ do takich odbiorców kieruje swój projekt. Skoro jedno języczne to będzie to proste. HTML i opisy po polsku, atrybuty i informacje po polsku. Nic nie zapowiadało małej katastrofy, ale ta nadeszła całkiem szybko...
Podczas zabaw z Dependency Injection można się trochę zapędzić używając kontenerów, uzależniając od nich cały kod naszej aplikacji. A to źle. Na dobra sprawę logika aplikacji nie powinna nawet wiedzieć z jakiego kontenera korzystamy. Do kontenera nie powinniśmy się przyzwyczajać – jeśli wykorzystujemy go poprawnie, to jego podmiana na inną bibliotekę nie będzie nastręczać żadnych trudności. Tak naprawdę to całkowite pozbycie się kontenera z systemu również powinno być proste. Pisałem już trochę o tym w p...
Sztuka programowania 3261 dni, 14 godzin, 46 minut temu 190 źrodło rozwiń
W poprzednim wpisie pokazałem, w jaki sposób możemy zaprojektować obsługę błędów. Jak widać mamy do dyspozycji sporo opcji. Z punktu widzenia AKKA.NET nie jest to jednak tak skomplikowane. Wystarczy przeładować jedną metodę i zwrócić odpowiedni obiekt. Tak jak w poprzednim wpisie będziemy testować kod na następującym “systemie”: Dla przypomnienia nasz ApplicationUserActor wygląda następująco: public class ApplicationUserActor : UntypedActo...
Programowanie rozproszone 3264 dni, 12 godzin, 55 minut temu 103 źrodło rozwiń
Description of change tracking mechanism Entity Framework and 3 possibilities to use it optimally