Przemysław Walkowski Parę linijek kodu, proste pytanie co ten kod robi lub gdzie jest błąd. Nazywam to zagadkami. Czasem nawet 5 lat doświadczenie nie wystarczy aby odpowiedzieć prawidłowo na tego typu pytania. Poniżej lista paru zagadek, które zebrałem w jednym miejscu. Osobiście zawsze gdy idę na rozmowę o pracę mam ze sobą swoją zagadkę, w razie gdybym nie odpowiedział na którąś zadaną mi przez rekrutera. Robię to po to aby pokazać, że zagad...
Strona głównaUżytkownik
wedlock | użytkownik
Sztuka programowania 3556 dni, 13 godzin, 10 minut temu 1418 źrodło rozwiń
Przemysław Walkowski.Ostatnio chciałem serializować i deserializować liste gdzie typem listy był interfejs. Chciałem do tego wykorzystać XmlSerializer-a. Okazało się, że przy użyciu tej klasy nie można serializować listy interfesjów do XML-a. Już chciałem szukać dlaczego nie można ale miałem trochę czasu i stwierdziłem, że tym razem zrobimy to w trudny sposób. Poniżej prezentuje jak można serializować i deserializować listę interfejsów.
Sztuka programowania 3550 dni, 1 minutę temu 447 źrodło rozwiń
Napisz odpowiedź Serializacja jest procesem przekształcania obiektów, do postaci tekstowej lub binarnej. .NET framework zapewnia nam kilka klas, takich jak XMLSerializer, DataContractJsonSerializer czy BinaryFormatter, które umożliwiają serializację danych do różnych formatów. Ponadto, do dyspozycji mamy wiele bibliotek firm trzecich, przez co wybór najlepszej metody staje się o wiele trudniejszy. Generalnie, każde narzędzie, czy format posiada swoje wady i zalety, dlatego też wybierając rozwiązania do ...
Sztuka programowania 3547 dni, 2 godziny, 15 minut temu 436 źrodło rozwiń
Przemysław Walkowski Bezpieczeństwo jest szerokim tematem i ma jeden poważny minus nigdy się do końca nie wie czy to co się wie na temat bezpieczeństwa jest wystarczające do tego by powiedzieć, że aplikacja, którą napisaliśmy jest bezpieczna. Zawsze się znajdzie, ktoś kto powie, że jakieś zabezpieczenie jest słabe lub niewystarczające. Mimo tego, podstawy trzeba znać, poniżej opisuje podstawy zabezpieczeń aplikacji C#. Z części 1...
Sztuka programowania 3534 dni, 10 godzin, 33 minuty temu 439 źrodło rozwiń
Ponad rok temu, tj. w grudniu 2013 roku miałem okazję poznać nową bibliotekę, Simple.Data. Nawet zrobiłem nt. post na bloku w styczniu 2014 roku link. Teraz, po ponad roku komercyjnego używania tej biblioteki, mam na jej temat pewne przemyślenia, którymi chciałbym się podzielić. Czym jest Simple.Data? Jest to jeden, z coraz popularniejszych "microORM", który łączy ze sobą zalety ORM, przy okazji nie narzucając zbyt dużo konfiguracji oraz "dodatkowych bajerów", które oferują tradycyjne ORM takie jak E...
Dzisiaj kolejna nowa funkcjonalność w c#. Zacznijmy od przykładu:publicclass Point { publicdouble Dist => Math.Sqrt(X * X + Y * Y); publicdouble X; publicdouble Y; } X oraz Y to zwykłe pola (tak nie powinno się ich definiować jako publiczne ale to tylko przykład). Następnie Dist to dziwny twór… Wiemy, że mamy tam wyrażenie lambda, które wywołuje Math.Sqrt i robi obliczenia. Zobaczymy jak możemy z tego skorzystać w kodzie:Point point =new Point(); point.X =5; point.Y =6; double dist = point...
NavigationStrona głównaO MniePrelekcjeGutek6th November, 2014pro , c#, json.net, reflections Pisząc jeden system, doszliśmy do wniosku w firmie, że trzeba zrobić testy integracyjne. Wiemy, że poszczególne części systemu same w sobie działają tak jak chcemy, albo dokładniej tak jak myślimy, że mają działać :) Część systemu, którą chcieliśmy przetestować była odpowiedzialna za słanie wiadomości poprzez szynę, jej odbiór, następnie odpowiedni processing uzależniony od danych wejściowych i tych w bazie dan...
Dzisiaj znów kilka drobnych nowości z C# 6.0 Pierwsza z nich to możliwość połączenia using z klasami statycznymi, których sposób użycia przypomina trochę przestrzenie nazw. Zaprezentuję to na przykładzie klasy Console. Posiada ona kilka statycznych metod m.in. WriteLine:Console.WriteLine("Hello World!"); W nowej wersji, będziemy mogli dołączyć każdą klasę statyczną, tak jak zwykłą przestrzeń nazw:using System.Console; namespace ConsoleApplication2 { class Program { staticvoid Main(s...
Six years ago I purchased Logitech UltraX, which is still the best keyboard I have ever had. Unfortunately, as you know, keyboard cannot live for ever. Two years ago I wanted to buy the same model again, but…UltraX is no longer made. I was looking for some on amazon and ebay, and I found only Logitech Ultra X with PS/2. I bought it and it was fine, but I needed also PS/2->USB converter (my laptop doesn’t have PS/2 like most of laptops today). It works...
Powiedzmy, że potrzebujemy wyciągnąć PostCode użytkownika (a po drodze mamy jeszcze Address): string postCode = person.Address.PostCode.ToString(); Nie mamy pewności czy person nie jest nullem, a następnie czy person.Address nie jest nullem, a następnie person.Address.PostCode … . Aby się zabezpieczyć przed NullReferenceException musimy napisać trochę dodatkowego kodu, jak np: ...
Kilka lat temu robiłem coś takiego za pomocą ILMerge. Wymagało to własnego Post build event, etc. Teraz jest rozwiązanie out of the box - Costura.Fody. Wystarczy ściągnąć nugetem.
.NET zawiera klasy przeznaczone do leniwej inicjalizacji i zwykle nie trzeba samemu implementować tego wzorca. Jeśli jakiś obiekt, chcemy inicjalizować dopiero w momencie, gdy jest on potrzebny to można skorzystać ze wspomnianych typów.
O projekcie Fody po raz pierwszy, usłyszałem dość dawno temu, ale dopiero ostatnia prezentacja Tomka na Wroc.NET uświadomiła mi jak fajny jest to projekt. Ja sam będę miał przyjemność prezentować Fody’ego w nadchodzącym tygodniu (na spotkaniu KGD.NET) a dzisiaj wstęp na blogu. Czym jest fody? Krótko mówiąc to framework, który umożliwia odpalanie własnych tkaczy modyfikujących kod już po kompilacji. Dzięki temu cały tzw. pluming code, możemy wyciągnąć z naszego kodu źródłowego do osobnych modułów.
Introduction I think one of the most important features of Resharper is on-the-fly code quality analysis. Basically, every time Resharper finds possible pitfall in code, it indicates this with appropriate warning. The most common warning is "Possible System.NullReferenceException". You can easily reproduce it by writing this code List
Tuple. Dobro czy zło? Subiektywizm każe mi powiedzieć, że straszne zło. Obiektywizm – zło umiarkowane/neutralność. Zamysłem przy tworzeniu Tuple było ułatwienie zagnieżdżania struktur. Na papierze wygląda nieźle, natomiast jest bardzo nadużywane w projektach, co czyni je nieczytelnymi. Osobiście uważam, że Tuple może być wykorzystany przy tworzeniu prototypów, kiedy chcemy zobaczyć, czy dany kod robi dokładnie to, o co nam chodzi, inaczej mówiąc – do tworzenia działającej metody. Zaraz po tym, konieczn...
Sztuka programowania 3894 dni, 19 godzin, 8 minut temu 282 źrodło rozwiń
Prosty wzorzec, jak tworzyć kontekst aplikacji z obiektami ładującymi się tylko w razie potrzeby.
Sztuka programowania 4243 dni, 4 godziny, 33 minuty temu 297 źrodło rozwiń