O oknie “Interactive” pisałem już tutaj. Bardzo pożyteczna funkcja, w moim przypadku zastępująca LinqPad. W wersji 15 Preview (którą można pobrać z stąd), dodano możliwość wykonywania zaznaczonego kodu. Załóżmy, że funkcja Main wygląda następująco: Możliwe jest teraz zaznaczenie kodu i wykonanie go w oknie Interactive C#: Warto zwrócić uwagę również na skrót – Ctrl+E. To bardzo pożyteczne, gdy chcemy szybo coś przetestować. Okno otworzy się automatyczni...
Strona głównaUżytkownik
rroszczyk | użytkownik
Z pewnością większość Czytelników/Słuchaczy doskonale zna dzisiejszego Gościa. Dla formalności: poczytać go możecie na blogu (http://gynvael.coldwind.pl), pooglądać na youtube (https://www.youtube.com/user/gynvaelcoldwind) lub poobserwować na Twitterze: @gynvael. A każdy, ale to absolutnie każdy programista powinien zaopatrzyć się w książkowy hit jego autorstwa: “Zrozumieć Programowanie“. Serio, koniecznie! Niezależnie od poziomu doświadczenia.
Jakoś ponad rok temu, czy może dwa lata zaczynałem nowy projekt. Nowy dla nas, nie tak nowy dla developerów już tam siedzących. Jednak jak zawsze bywa z nowym projektem miałem wielką nadzieję, że to będzie on, projekt marzenie. Życie miało inne plany. Oczywiście że śmiechy-chichy, że coś głupio zrobione, że ja zrobiłbym to inaczej gdybym to ja robił czy też taki klasyk: Takie są najczęstsze początki „nowych” projektów. Historia lubi się powtarzać ...
Dzisiaj przyszedł czas na wzorzec agregujący w pewien sposób wszystkie poprzednie, a mianowicie wzorzec rekurencyjny. Załóżmy, że mamy następującą hierarchię klas (...) W poprzednich wersjach C#, było możliwe jedynie sprawdzenie czy obiekt jest ty...
Architektura 3319 dni, 23 godziny, 59 minut temu 187 źrodło rozwiń
W jednym z ostatnich tekstów, pisałem o tym, że może trudno być programistą aż do emerytury. Konkluzja tego tekstu była taka, że wielu programistów może z czasem odrobinę zmieniać wykonywane stanowisko. Na szczęście w branży IT mamy tutaj spore pole do popisu ponieważ okazuje się, że istnieje życie poza deweloperką;-)
MVC jest królem! Z modelu, przez kontroler, do widoku! Mówili. Słuchaliśmy. Polegliśmy. Niezależnie od wykorzystywanej technologii czy frameworka: jeżeli “dziubiesz webówki” to prawdopodobnie działasz w MVC. I to “C” może reprezentować różne pojęcia. Czasami jest to Controller, czasami Module, czasami coś jeszcze innego.
Sztuka programowania 3319 dni, 8 godzin, 57 minut temu 263 źrodło rozwiń
Jest kwiecień. Plecień, przeplata, zaraz matury. W mailach od Was również przeplatają się różne tematy, ale kilka pojawia się bardzo często. Jeden z nich to: studia. Po co one programiście? Studiować czy… olać? Ja studia skończyłem około dekadę temu, a dzisiaj wreszcie, po prawie trzech latach pisania, udało się skomponować tekst na ten temat. Zapraszam do lektury i dyskusji. Czas jest odpowiedni.
W C# 7.0 operator Is, a konkretniej dopasowywanie typów, zostało ulepszone. We wcześniejszych wersjach, byliśmy zmuszeni do pisania kodu. Jeśli zmienna jest danego typu, automatycznie zostanie zrzutowana. Innymi słowy, za pomocą jednego operatora wykonujemy 3 operacje: sprawdzenie typu, zrzutowanie oraz wykonanie instrukcji warunkowej. W poprzednich wersjach, możliwe było zrobienie czegoś podobnego, ale powstały kod zwykłe był mniej przejrzysty.
Architektura 3328 dni, 8 godzin, 53 minuty temu 357 źrodło rozwiń
Nie raz i nie dwa zdarzało mi się mieć potrzebę posiadania więcej niż jednego guzika na formie. Zawsze ale to zawsze miałem problem z tym jak to dobrze rozegrać. Aż wreszcie trafiłem na dobrą odpowiedź na SO.Model i Forma Załóżmy taki model danych, jakiś prosty viewmodel dla użytkownika.: Następnie aby go przesłać z powrotem do kontrolera zdefiniowałem taki model: Typ pola action jest także zdefiniowany. Teraz gdzieś na widoku tworzę formę, która umożliwi mi wpisanie ...
Różne badania dowiodły, że z wiekiem spada nasza sprawność umysłowa. Nie tylko więc się wolniej uczymy, ale również w życiu codziennym analiza niektórych sytuacji może nam zająć więcej czasu, co może mieć oczywiście przełożenie na naszą pracą. Będąc programistą, bardzo często jestem zmuszony do pracy na wysokich obrotach. Czasem trzeba szybko reagować, lub po prostu dobrze zanalizować problem, by uniknąć potencjalnych konsekwencji. Praca w IT wymaga również ciągłego rozwoju - wystarczy spojrzeć na ilość ...
Dwa tygodnie temu pisałem o RequireJS – sposobie na dynamicznie ładowane moduły w JavaScript. Biblioteka dość ciekawa, i spełniająca stawiane przed nią wymagania. Jednakże nie jest ona jedynym tego rodzaju rozwiązaniem. Dużą zaś zaletą RequireJS jest to, że nie potrzebujemy niczego by z niej skorzystać – działa ona po stronie klienta i tyle. Oczywiście to niesie pewne komplikacja z...
Szukałem porad w sprawie trudnej czynności jaką jest nazywanie .NET DEVELOPERS POLAND – facebook Co prawda w innym temacie, ale warto przeczytać aby uświadomić sobie jaka to ciężka praca. Także człowiek szuka i myśli i próbuje.Próby W ramach swoich poszukiwań i eksperymentowania z tworzeniem najlepszego i najczystszego kodu, najlepiej nazwanego i cacy. Dotarłem do takiej sytuacji, gdzie chciałem posiadać osobne klasy (kontrolery, serwisy, repo, co ta...
Sztuka programowania 3347 dni, 26 minut temu 200 źrodło rozwiń
Nie wiem zbytnio jak mam to zakwalifikować gdyż mam nadzieję, że to jest tymczasowe. Przygotowując dema to mojej ostatniej prezentacji chciałem pokazać Visual Studio Code ( oficjalna strona) wraz z OmniSharp na OSX – jak to działa, jak można mieć intellisense itp. Jednak po zainstalowaniu świeżo najnowszej paczki intellisense nie chciało śmigać. Pół biedy, dostałem info, że OmniSharp nie może znaleźć dnx. Ale jak to?...
Dzisiaj chciałbym pokazać BenchmarkDotNet. Dzięki niemu w łatwy sposób można przetestować wydajność konkretnych metod w c#. Na blogu temat wydajności poruszałem już wiele razy i wiemy, nie jest łatwe prawidłowe zmierzenie czasu wykonania kodu. Pamiętajmy, że kod wykonany pierwszy raz zawsze musi zostać przetłumaczony do kodu maszynowego (JIT). W momencie wywołania pierwszy raz jakiejkolwiek metody, CLR sprawdzi czy dana metoda ma już kod maszynowy. Jeśli jakaś me...
Sztuka programowania 3358 dni, 9 godzin, 22 minuty temu 102 źrodło rozwiń
Czytakpisanyblogbyłbyczytelnydlawas? CzyMożeTakBędzieCzytelniej? AMożeCzęśćZWasPreferujeTaki_Zapis? MgSZłŻITkLpjBdzZCztlnscNzTrz. (Aktualnie już nie pamiętam co tutaj napisałem) Dlaczego gdy piszemy do ludzi potrafimy używać pełnych wyrazów, pełnych zdań, samogłosek i spółgłosek i nie skracamy. Natomiast gdy tylko siada jeden z drugim (ja nie jestem święty), piszemy P=ObsłużW(1,false, new Coś()); NIE MA SZANSY ŻE KTOŚ TO ZROZUMIE. NIE-MA. Czy to ...
Sztuka programowania 3356 dni, 17 godzin, 19 minut temu 285 źrodło rozwiń
Czasami tak projektujemy naszą aplikacje, że każdy model ma jedną lub kilka cech wspólnych. Od najbardziej oczywistych, jak na przykład ID, poprzez czas i datę utworzenia, modyfikacji, czy-usunięty, czy-opublikowany i inne czy-? W zależności od poziomu lenistwa cechy te definiowane i utrzymywane są w każdej z klas z osobna lub w jednym lub-lub w kilku interfejsach który jest implementowany przez modele.Do momentu pisania posta byłem gościem, który posiadał jeden wsp...
Bazy danych i XML 3364 dni, 21 godzin, 48 minut temu 158 źrodło rozwiń
Ost. czasy bardzo popularnym językiem jest javascript. Ten język istnieje od dosyć dawna, jednak przez wiele lat traktowny był "po macoszemu". Ost. kilka lat, to jednak zdecydowany "boom" na ten konkretny język. Ilość bibliotek i frameworków jaka powstaje jest wprost niesamowita. Javascript przez wiele lat kojarzony był głównie z frontendem, czyli tą częścią strony www, która wykonuje się bezpośrednio w przeglądarce internetowej. Teraz jednak javascript dorobił się porządnego rozwiązania serwerowego, z...
Dzisiaj podstawy, ale wcześniej nie miałem potrzeby skorzystania z funkcji GroupJoin. Myślę, że prosty przykład jest najlepszą dokumentacją. Dosyć częstą używaną funkcją jest GroupBy. Jeśli mamy np. listę zamówień w postaci (IdCustomer, Name), wykonując GroupBy na IdCustomer otrzymamy słownik, gdzie kluczem jest identyfikator zamówienia, a wartością lista zamówień danego klienta. GroupJoin, jak sama nazwa sugeruje jest połączeniem Join z GroupBy. Załóżmy, że mamy nast...
Bazy danych i XML 3364 dni, 21 godzin, 48 minut temu 170 źrodło rozwiń
Prosty przypadek: biblioteka potrzebuje trzymać hasło i użytkownika do konfiguracji aplikacji w app.configu. Rozwijam bibliotekę, która jest wersjonowana w gicie. Dodałem wyjątek do .gitignore, aby plik app.config się nie wersjonował. Następnie dodałem bibliotekę z testami i tam też muszę dodać konfigurację. Dodać kolejny wyjątek to już przesada więc można by tak zrobić aby biblioteka testowa używała już istniejącej konfigurację z innego pliku...
Wszyscy wiedzą, że odpowiednia komunikacja w zespole projektowym jest bardzo ważna. Według statystyk „zła komunikacja” jest wymieniana jako jedna z głównych przyczyn opóźnień projektów. Doszło do tego, że pojęcie „dobra komunikacja” stała się frazesem i dla wielu wymówką w przypadku niepowodzeń z projektami. Nie jest to z pewnością trudność obiektywna, na którą nie mamy wpływu,...
Sztuka programowania 3368 dni, 7 godzin, 36 minut temu 195 źrodło rozwiń