Manipulując stanem encji, należy pamiętać o dwóch zasadach. Dotyczą one zapisu zmian do bazy danych po zakończeniu pracy z obiektami i ustawianiu im stanów.
Encja pobrana z bazy za pomocą EntityFramework może mieć jeden z następujących stanów: Added - encja jest śledzona przez kontekst, ale nie istnieje w bazie danych Unchanged - encja jest śledzona przez kontekst oraz istnieje w bazie danych. Wartości pól są takie same w bazie jak i obiekcie (nie dokonano żadnych zmian).Modified - encja jest śledzona przez kontekst, istnieje w bazie danych. Dokonano zmian w jej polach Deleted - encja jest śledzona przez kontekst i istnieje w bazie danych. Została jednak ozn...
Czasami metody mają zbyt dużo parametrów przez co wywołanie ich jest niewygodne i może zajmować nawet dwie linie. Oczywiście pierwsza rzecz, którą powinniśmy zrobić jest sprawdzenie czy metoda czasami nie wykonuje zbyt wielu operacji tzn. przestrzega zasadę Single Responsibility. Jeśli mamy pewność, że metoda przestrzega wszelkie zasady i jest dobrze zaprojektowana wtedy trzeba pomyśleć jak zmniejszyć liczbę parametrów. W poście przedstawię kilka prób uzyskania takiego efektu. Logiczne wydaje się, utwo...
Sztuka programowania 3836 dni, 6 godzin temu 139 źrodło rozwiń
Dziś prosta zasada przekazywania parametrów ale jednak często łamana. Kod:privatestaticvoid Display(string[] strings) { foreach (string text in strings) { Console.WriteLine(text); } } Powyższa metoda ma za zadanie wyświetlenie wyłącznie elementów. Parametr wejściowy (tablica string’ów) jest zbyt specyficzny i nie pozwala na przekazanie wszystkich zbiorów danych. Na przykład poniższy kod nie skompiluje się:List
Sztuka programowania 3839 dni, 2 godziny, 50 minut temu 193 źrodło rozwiń
Opublikowano Ostatnio pisałem o Web Essentials 2012 dzięki, któremu możemy szybko i łatwo generować klasy na podstawie json-a a dzisiaj zobaczymy co jeszcze daje dodatek Web Essentials 2012. W plikach CSS mamy dodatkowe menu Web Essentials: Minify selection – minimalizuje naszego css-a (w MVC4 można to również zrobić za pomocą bundle-s ale nie każdy używa przecież MVC)Remove Duplicate Properties – usuwa powielone właściwości. Bardzo przydatne jeśli nad css-em pracuje więcej niż jedna osoba lub css...
Niniejszy post opisuje sposób stworzenia nawigacji na stronie ASP.NET bez efektu przeładowania całej strony
Implementing RAII (Resource Acquisition Is Initialization) in C# using Castle.DynamicProxy and how to proxy iterator (IEnumerable).
Architektura 3842 dni, 9 godzin, 36 minut temu 71 źrodło rozwiń
Używam bardzo popularnego narzędzia Azure Storage Explorer, który pozwala w prosty sposób sterować rzeczami jakie mamy w Azure Storage. Od pewnego czasu całą zawartość statyczną stron PlaceChallenge wynoszę z hostowania pod serwerem aplikacyjnym (IIS/Apache) do magazynu danych Storage, który oferuje chmura Azure. Jest to bardzo wygodna opcja, ponieważ prócz znacznego poprawienie wydajności samej aplikacji (serwera aplikacyjnego) zdejmując z niego obowiązek hostowania plików i utrzymywania połączeń z pr...
Przyjrzyjmy się następującemu fragmentowi kodu:publicclass SampleClass { privateint _value =10; } W rzeczywistości zostanie wygenerowany konstruktor, ustawiający pole value na 10. Kod IL:.method public hidebysig specialname rtspecialname instance void .ctor() cil managed { .maxstack 8 L0000: ldarg.0 L0001: ldc.i4.s 10 L0003: stfld int32 SampleClass::value L0008: ldarg.0 L0009: call instance void [mscorlib]System.Object::.ctor() L000e: nop L_000f: ret } Na...
Sztuka programowania 3842 dni, 9 godzin, 36 minut temu 63 źrodło rozwiń
Załóżmy, że posiadamy tabelę, która może być w relacji jeden do jednego do innej tabeli lub tej relacji nie posiadać. [...] Dobrze byłoby narzucić odpowiednie ograniczenia na tego typu tabelę, czyli zabezpieczyć przed możliwością przyporządkowania do dwóch wierszy tego samego wiersza z tabeli przyporządkowywanej...
Bazy danych i XML 3842 dni, 9 godzin, 36 minut temu 81 źrodło rozwiń
Tworząc na platformę Windows Embedded Compact (Windows CE) oraz Windows Embedded Handheld (Windows Mobile) programista .NET nie ma zbyt dużego wyboru. Komplet Visual Studio 2008 i .NET 2/3.5 CF jest standardem. Co prawda VS2008 to całkiem solidny kombajn z którym można żyć w zgodzi (zresztą robię to codziennie :)). Nie zmienia to jednak faktu, że nowsze wersje są po prostu lepsze.
Jestem zwolennikiem terminologii angielskiej, czyli wszystkie identyfikatory w kodzie są w tym właśnie języku. Dzięki temu kod rzeczywiście jest samodokumentujący się, bo nie dławi go dysonans angielskiej składni i polskiej terminologii, który nieodwołalnie prowadzi do identyfikatorów typu „ponglish„, np. BeforeZapisz, RestoreZasoby...
Sztuka programowania 3842 dni, 23 godziny, 45 minut temu 131 źrodło rozwiń
Opublikowano Rozmowa z pewnym developerem: ja: a tu jest ta książka ja: http://www.charlespetzold.com/phone/index.html ja: czytałeś ją ? on: mam pdfa ja: a czytałeś ją ?? on: a powiedz mi kiedy Ręce opadają.Posiadanie książki/pdf-a/ebooka nie jest równoznaczne z przyswojeniem w niej zawartej wiedzy. Niestety dyfuzja tutaj nie działaW naszym zawodzie trzeba znaleźć czas na czytanie książek. Kup kindla i czytaj choćby w toalecieNie czytam książek w pracy, czytam je po pracy (choćby patrz pu...
JSON-a pełno wszędzie ale jeśli jeszcze się jakimś trafem z nim nie spotkałeś to warto poczytać co to jest json. Jeśli natomiast głowisz się jak z jsona wygenerować klasy to masz mamy kilka możliwości: klepiemy mozolnie kod lub szukamy jakiegoś generatorka który to zrobi lub….. wklejamy przykładowego jsona do Visual Studio 2012. i tak oto z przykładowego JSON-a z wikipedii (link na początku) otrzymujemy: szybko i wygodnie, szybciej się nie da. Jeśli nie widzisz w menu Paste JS...
Pierwszy project MonoGame dla Windows 8 gotowy. Ale poprzednio wspomniałem, że obecna wersja MonoGame nie obsługuje XNA Content Pipeline. W tym poście podam rozwiązanie (mam nadzieję, że tylko tymczasowe) tego problemu, bo Content i assety są nam baaaardzo potrzebne. Ten post jest częścią serii poświęconej tworzeniu i portowaniu gier dla Windows Store w technologii XNA (MonoGame).
Wiemy już czym jest MonoGame i jak je zainstalować więc czas na utworzenie pierwszego projektu. Ten post jest częścią serii poświęconej tworzeniu i portowaniu gier dla Windows Store w technologii XNA (MonoGame).
Opublikowano Wczoraj pisałem o rewelacyjnej konferencji DevDay. Dzisiaj link do prezentacji: Scotta Hanselmana „It’s not what you read, it’s what you ignore” (o którym pisałem już tutaj) oraz Grega Younga „How to get productive in a project in 24h” Oczywiście nie jest to zapis z DevDay, ale prezentacje te same, więc do czasu aż organizatorzy nie opublikują filmów, możecie zobaczyć o czym mówili Ci dwaj Panowie. Miłego oglądania To też może Cię zainteresować:DevDay–konferencja na którą mogę jeź...
Opublikowano Jeden z bardziej dla mnie zaskakujących wykładów z tegorocznego ABB DevDay to HTTP Caching 101. Zaskakujących bo nie znałem wcześniej wykładowcy a sama tematyka szczerze powiedziawszy nie należy do zbyt ciekawych. Nie sądziłem jednak, tam jest tyle TEGO. Osobiście otwało mi oczy na kilka spraw. Poniżej znajduje się zapis z wykładu HTTP Caching 101 na Oredev 2012 czyli jak we wcześniejszy wpisie, tematyka ta sama, wykład ten sam tylko zapis z innej konferencji. Mam nadzieję, że przyda się ...
W dzisiejszym wpisie chciałbym przyjrzeć się trochę bardziej tablicom i interfejsom jakie implementują. Zaglądając do dokumentacji dowiemy się, że Array implementuje:[SerializableAttribute] [ComVisibleAttribute(true)] publicabstractclass Array : ICloneable, IList, ICollection, IEnumerable, IStructuralComparable, IStructuralEquatable IEnumerable nie powinno wydawać się dziwne ponieważ oczekujemy od tablic możliwości dostępu do elementów poprzez foreach:int[] numbers =new[] { 5, 2, 52, 5 }; foreach...
We wcześniejszym wpisie pisałem już o projekcie MonoGame. Dzisiaj przyszedł na wskazówki dotyczące instalacji tego dobrodziejstwa. Normalnie bym to pominął, ale sam miałem kilka problemów więc abyś nie tracił czasu na szukanie rozwiązania, zebrałem wszystko w jednym miejscu. Poniżej znajdziesz prawidłową kolejność odpowiednich SDK wraz z linkami.