Ignorancja to słabość Ostatnio przeglądałem T-SQL kod w którym została użyta pewna siermiężna acz użyteczna konstrukcja (użyteczna w poprzednich wersjach SQL Server'a, tak od 2005 w dół). Zapytałem się autora kodu, czy przypadkiem nie używają MS SQL Server 2008, otrzymałem pozytywną odpowiedź "nawet w wersji R2". Kod który prezentuje ogólny zarys problemu znajduje się poniżej. Przykłądowa implementacja wstawia rekord do tabeli jeśli jeszcze on nie istnieje, w innym wypadku aktualizuje wartości wybranych...
Strona głównaUżytkownik
lkurzyniec | użytkownik
Bazy danych i XML 4763 dni, 3 godziny, 42 minuty temu 258 źrodło rozwiń
RightHand DataSet Visualizer to aplikacja (wizualizator) do podglądu danych i struktury obiektów DataSet podczas debugowania kodu w Visual Studio. Narzędzie posiada wiele przydatnych możliwości, które pokrótce opiszę w tym artykule.
Opis mockowania obiektów z wykorzystanie narzędzia Telerik JustMock. Wyjaśnienie dlaczego warto i gdzie używać mocków.
Czasami potrzeba dodać atrybuty do właściwości/metod klasy, która została stworzona automatycznie przez jakiś designer (na przykład przez ORM). Modyfikowanie klasy bezpośrednio nie ma sensu, ponieważ może ona zostać nadpisana i nasze zmiany zostaną niestety utracone. Atrybuty takie można określić w oddzielnym pliku. Czyli na przykład zamiast:using System; using System.ComponentModel.DataAnnotations; using System.Web.Mvc; public class Product { [HiddenInput(DisplayValue=false)] public i...
Wykorzystywanie atrybutów w C#, jest często marginalizowane, a nawet wręcz pomijane przez programistów tego języka. Jak pokazuje życie, mogą one być całkiem przydatne np. w serializacji obiektów do XMLa. Mogą one się przydać, również w naszych własnych programach. Użycie atrybutów, może spowodować, że napisany przez nas kod będzie bardziej elastyczny i skalowalny, a chyba to się liczy, prawda;)? W dzisiejszym wpisie, chciałbym zatem Wam pokazać, jak w banalny sposób można utworzyć własną klasę atrybutu ...
Architektura 4851 dni, 23 godziny, 26 minut temu 337 źrodło rozwiń
Typy Enum są ładnym rozwiązaniem służącym do definiowania stałych. Zamiast przekazywać nic nie mówiącą liczbę do funkcji, możemy zdefiniować enum i przekazać np. TextAlignment.Left – z pewnością poprawi to czytelność kodu. Czasami jednak chcemy przekazać dwa enumy naraz lub dowolną ich kombinację. W tym celu musimy skorzystać z tzw. flag. Zacznijmy od razu od przykładu:[Flags] enum Days { None =0, Sunday =1, Monday =2, Tuesday =4, Wednesday =8, Thursday =16, Friday =32, Sa...
Krotki pojawiły się w .Net w wersji 4.0 jednak zostały zagłuszone przez inne nowości w tej wersji przez co niewiele o nich informacji w internecie.
Z GridView jest taki kłopot, że w przeciwieństwie do ListView nie implementuje IPageableItemContainer - oznacza to, że nie można bezpośrednio podczepić pod niego DataPagera. DataPager został dodany do frameworka w wersji 3.5 i dostarcza funkcjonalności page’owania (stronicowania?, raczej paginacji). Czyli mamy rozdział i można go umieścić albo gdzieś w hierarchii kontrolek kontrolki data-bound np.: … albo całkiem na zewnątrz. Przed przejściem do implementacji interfejsu dla GridView chciałem zaznaczyć, ż...
autor: Musiałem ostatnio serializować (no i oczywiście deserializować) kolekcje obiektów z hierarchii wyglądające na przykład tak: ... Pierwszym kierunkiem był XML, jednak (zgodnie z oczekiwaniami zresztą) umożliwienie serializacji czegoś takiego do XMLa wiązałoby się z wieloma nieprzyjemnościami. A to nie można serializować interfejsów więc konieczne by było dodawanie jakiejś klasy abstrakcyjnej, a to trzeba stosować przebrzydłe atrybuty Xmlinclude żeby umożliwić deserializację... a dodatkowo korzystani...
Może wydarzyć się sytuacja, że zajdzie konieczność utworzenia unikalnego klucza na kolumnie typu tekstowego (CHAR lub VARCHAR). W tym momencie warto nadmienić, iż każdy znak zajmie wtedy 1 bajt. Jeśli zaś będzie to typ danych unicode (NCHAR lub NVARCHAR), to znak zapisany będzie na 2 bajtach pamięci. Dlaczego o tym wspominam? Ponieważ jeśli wielkość indeksu przekroczy magiczną granicę 900 bajtów pojawia się Error 1946...
Bazy danych i XML 4894 dni, 30 minut temu 92 źrodło rozwiń
Ostatnio natknąłem się na pułapkę metody GetHashCode(). Jak wiadomo metoda ta służy do sprawdzenia, czy mamy do czynienia z dwoma tymi samymi obiektami jednej klasy. Cytująć MSDN: "A hash code is a numeric value that is used to identify an object during equality testing" Mój błąd polegał na tym, że wiedząc, że GetH...
jQuery UI dialog umieszczony w aplikacji ASP.NET nie zawsze zachowuje się dobrze. Jeśli wewnątrz warstwy, która pojawia się jako zawartość dialogu, jest jakaś kontrolka serwerowa (taka jak TextBox), to po PostBacku jej wartość się czyści. Ten człowiek znalazł na to sposób:
Kolejny dzień kolejny wpis na blogu. Postawiono przede mną zadanie poprawy wydajności aplikacji w kontekście dodania do niej wielu wątków roboczych. Zadanie proste i banalne używając .NET. W związku z tym dziś słów kilka o klasie ThreadPool . Dzięki klasie ThreadPool i jej metodzie ThreadPool.QueueUserWorkItem sprawa jest naprawdę prosta. Jej użycie sprowadza się do "powiedzenia w C# - hej jest robota do wykonania niech ją ktoś dla mnie wykona w wolnej chwili". Naprawdę ... to takie proste. Oczywiście ta...
Wpis o tym jak poprawnie wykorzystywać JSON w web serwisach na ASP.NET, jakich błędów unikać przy implementacji takowych oraz o customowych serializatorach JSON dla ADO.NET
Wielojęzyczność aplikacji www można rozwiązać na kilka sposobów. Jedne strony mają rysuneczki flag symbolizujących język, w jakim chcemy widzieć teksty (i nie tylko) i pamiętają to w cookie. Inne pozwalają to ustawić w profilu użytkownika i pamiętają ustawienie w bazie. Ostatnio pisałem rozwiązanie, które ustawia odpowiednią kulturę aplikacji na podstawie informacji wysyłanych przez przeglądarkę podczas żądania.
Mechanizm dziedziczenia jest ogólnie znany oraz chętnie wykorzystywany w programowaniu obiektowym. Nie wiedzieć czemu w aplikacjach internetowych stosuje się go raczej rzadko. W tym artykule chciałbym zaprezentować jak wykorzystać dziedziczenie w sprytny sposób w aplikacji webowej.
W poprzednim wpisie pojawiły się informacje na temat sposobów skompilowania assembly, tak by działała jako kod 64 lub 32 –bitowy. W tym wpisie znajdą się informacje na temat tego jak można sprawdzić, na jaką platformę zostało skompilowane assembly (czyli znajdą się tu m.in. informacje na temat narzędzia CorFlags, IL Disassembler'a).CorFlagsNarzędzie CorFlags.exe(NET CorFlags Conversion Tool) pozwala na sprawdzenie lub konfiguracje wykonywalnego assembly, tak by było one traktowane jako 64 lub 32 – bito...
Optymalizacja procedur składowanych czy zwykłych zapytań do bazy danych nie jest zadaniem wdzięcznym, ale potrafi dać bardzo wiele satysfakcji. Kto doświadczył zoptymalizowania działania jakiegoś potworka w taki sposób, że po pół godziny pracy czas wykonania spada z 2 minut do 1 sekundy, wie doskonale o czym mówię. A jak uda się tego dokonać bez grzebania się w indeksach to już w ogóle cud/miód/itd. Wtedy z kolei ten, kto to zapytanie pisał oryginalnie, zasługuje na siarczystego liścia... ale akurat w mo...
Bazy danych i XML 4980 dni, 12 godzin, 16 minut temu 135 źrodło rozwiń
Jak ważne i poufne informacje znajdują się w pliku konfiguracyjnym aplikacji (app.config lub web.config), każdy chyba wie. O szyfrowaniu tychże informacji z poziomu konsoli wspominałem tutaj. W tym artykule zaprezentować chciałbym jak szyfrować/deszyfrować sekcje z poziomu kodu. Zapraszam.
Kolejny raz o logowaniu... "bo to naprawdę ważne™" :). W świecie .NET mamy dwie liczące się biblioteki oferujące logowanie informacji z aplikacji: log4net oraz nLog. Oczywiście znajdą się też inne rozwiązania: od koszmarnych (The Logging Application Block z EntLiba) po głupie (pisanie własnego loggera i jego produkcyjne wykorzystanie).