Niejednokrotnie potrzebujemy podejrzeć zapytanie SQL wygenerowane przez EF. Często zdarza się, że takie zapytanie chcemy odpalić na bazie danych i zobaczyć wynik. Można wtedy podpiąć się profilerem do bazy i przechwycić je w całości. Niestety takie rozwiązanie jest bardzo czasochłonne. Można też wywołać metodę ToString() na obiekcie typu IQuarable, jednakże to rozwiązan...
Strona głównaUżytkownik
lkurzyniec | użytkownik
Sztuka programowania 3221 dni, 1 godzinę, 29 minut temu 190 źrodło rozwiń
Kolejny post o Unity 3d musi jeszcze chwilę poczekać. Niedawno zdobyłem nową dev-zabawkę (ekhm!) a mianowicie licencję na PostSharp. Gdyby ktoś nie wiedział – jest to narzędzie do programowania w stylu AOP – aspektowym spojrzeniu świata. Czym są aspekty nie będę pisał – można znaleźć na ten temat sporo informacji. Z lokalnego podwórka polecam DevTalk 02 czy tagi AOP lub PostSharp na dotnetomaniak.pl.Unboxing Samo narzędzie instaluje się bezproblemowo oraz fajnie się integruje z Visual Studio...
Jakiś czas temu opisałem jak utowrzyć instalator dla uslugi Windows w środowisku Visual Studio. Jest to sposób dość skomplikowany i czasochłonny. Z drugiej strony daje duże możliwości konfiguracyjne i rozszerzające. Nie o tym jednak. W niniejszym artykule opisuję jak zainstalować usługę Windows wyłącznie za pomoca kodu.
Sztuka programowania 3711 dni, 5 godzin, 46 minut temu 247 źrodło rozwiń
W poprzednim artykule została opisana instalacja i konfiguracja wyszukiwania pełnotekstowego dla języka polskiego. Do całości rozwiązania brakowało jednak sposobu zadawania zapytań na indeks FTS, co opisałem w tym artykule. Zadawać zapytania można tylko na kolumnach o typie tekstowym (char, varchar, nchar, nvarchar, text, ntext, image, xml, varbinary). Można to zrealizować na dwa sposoby....
Bazy danych i XML 3918 dni, 4 godziny, 26 minut temu 176 źrodło rozwiń
Parę dni temu musiałem napisać w PowerShellu skrypt konserwacyjny, który miał za zadanie zapisywać stan systemu do paczki i odtwarzać wcześniej zapisany stan. Zadanie samo w sobie było proste, jednak ...
Routing będzie manipulował naszym adresem (pasek adresu będzie te zmiany odzwierciedlał), będzie zmieniał naszą historię przeglądania. Dzięki temu przecisk “back” będzie działał bez przeładowywania strony. Zmiana adres będzie tylko po stronie clienta, czyli po znaku ‘#’. Oznacza to że takie zmiany adresu nie będą wysyłane do servera.
Gdy MyEnum nie ma wartości -13, to poniższy kod się wykona poprawnie i w enumie będziemy mieli wartość spoza zakresu enuma. var myEnum = (MyEnum) -13; Właściwa treść Mamy enum: enum MyEnum { One = 1 } I chcemy wykonać prostą operacje utworzenia tego enuma, tyle że posiadamy jedynie wartość liczbową (z zewnętrznego źródła danych). Akurat tak pechowo się stało, że mamy nie istn...
Sztuka programowania 4162 dni, 2 godziny, 17 minut temu 154 źrodło rozwiń
W poprzednim wpisie pokazałem kilka sposobów na wygenerowanie zbioru kolejnych liczb całkowitych. Dzisiaj zaprezentuję wykorzystanie tych danych w kilku przypadkach. Zacznijmy od przygotowania tabeli zawierającej 100 liczb, będzie ona używana w każdym z prezentowanych przykładów.
Bazy danych i XML 4203 dni, 22 godziny, 16 minut temu 149 źrodło rozwiń
“Masowa” i “SmtpClient” w jednym zdaniu? Nie, to nie jest żart. Każdy, kto choć raz musiał wysyłać serię maili z poziomu kodu C# pomyśli, że zwariowałem. Blokowanie wątku, cała gama wyjątków, które może rzucić metoda Send(), czy obsługa stanu aplikacji po takim błędzie. To ważniejsze atrakcje, jakie możemy napotkać korzystając z tej klasy. Jest na to jedna prosta metoda. Wróć. Właściwość… DeliveryMethod.
Sztuka programowania 4230 dni, 23 godziny, 27 minut temu 225 źrodło rozwiń
Font Awesome to zestaw wektorowych ikon w postaci fontów. Około 250 popularnych, darmowych, w pełni skalowalnych ikon kontrolowanych z poziomu CSS. W paczce instalacyjnej dostępnej pod tym adresem dostarczone są podstawowe pliki z definicjami klas CSS, SASS, LESS oraz ikony w postaci fontów w formatach .eot, .svg, .ttf,, .woff i .otf.
In almost every enterprise scale system there are some tree structures to be held in the database. It could be a system menu structure, an enterprise organisation structure or a user hierarchy. Lets assume that we need to model insurance agents hierarchy for insurance policies processing system. Thinking about agents as children and parents and creating such structures seems to be natural: Agents tableColumnTypeIDInt, not nullParentIDInt, nullRole/RangeSome example attribute Structure...
Bazy danych i XML 4319 dni, 4 godziny, 9 minut temu 25 źrodło rozwiń
Programowanie asynchroniczne ma na celu polepszenie interakcji aplikacji z użytkownikiem. Przenosząc długotrwałe operacje na inny wątek, zapewniamy, że interfejs naszej aplikacji nie zostanie zamrożony.
Dziś kolejny post z cyklu zastosowanie słowa kluczowego dynamic. Ostatnio pisałem o ExpandoObjet, który jest dynamicznym kontenerem na metody i dane. DynamicObject pozwala z kolei tworzyć wrappery na różne klasy. Zacznijmy od przykładu:internalclass Program { publicclass CustomWrapper : DynamicObject { publicoverridebool TryGetMember(GetMemberBinder binder, outobject result) { result ="Hello World"; returntrue; } publicoverridebool TrySetMem...
Sztuka programowania 4352 dni, 17 godzin, 19 minut temu 94 źrodło rozwiń
Kiedyś już wspomniałem o słowie kluczowych dynamic. W tym i następnych wpisach chciałbym przedstawić praktyczne zastosowanie tego mechanizmu. Na koniec wyjaśnię, jak dynamic jest zaimplementowany przez CLR i jak bardzo spowalnia aplikację… Programiści używający ASP.NET MVC z pewnością rozpoznają zasadę działania ExpandoObject. Klasa umożliwia tworzenie dynamicznych kontenerów. Na przykład:privatestaticvoid Main(string[] args) { dynamic bag =new ExpandoObject(); bag.FirstName ="Piotr"; bag.LastN...
Sztuka programowania 4354 dni, 20 godzin, 53 minuty temu 109 źrodło rozwiń
Rzezanie w czystym xml’u nie jest raczej przyjemne. Używnia XmlNode zamiast stringów nie jest wielkim pocieszem. Nie tędy droga. Dużo prościej stworzyć sobie obiekty które następnie będziemy serializować (deserializować) do XMLa.
Sztuka programowania 4352 dni, 17 godzin, 19 minut temu 106 źrodło rozwiń
W teorii są 3 rodzaje kontraktów. Podejdę wg mnie praktycznie i opowiem głównie o pierwszym (Requires), z pozostałych dwóch rzadko kto korzysta. Requires używa się do sprawdzania argumentów przekazanych do metody.
Sztuka programowania 4358 dni, 13 godzin, 2 minuty temu 118 ź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 4372 dni, 3 godziny, 36 minut temu 83 źrodło rozwiń
Kontrolka użytkownika (web user control) jest komponentem, który działa bardzo podobnie do zwykłej strony ASP.NET. Elementy, metody oraz akcje definiuje się zupełnie identycznie. Różnica jest taka, że kontrolki ascx umieszcza się na stronach aspx. Jest to świetny sposób na zgromadzenie w oddzielnym pliku współpracujących ze sobą kontrolek, a co za tym idzie odseparowanie ich zdarzeń od pozostałej logiki. Artykuł ten opisuje, jak ...
O interfejsach napisano już wiele artykułów. Postaram się dlatego podejść do tego zagadnienia od innej strony. Na początek pytanie: czym różni się metoda wirtualna od implementacji metody z interfejsu? Mogło by się zdawać, że są to bardzo podobne operacje.
Sztuka programowania 4409 dni, 21 godzin, 38 minut temu 200 źrodło rozwiń
I’ve just published a little project of mine on GitHub, called VsDebugFx. It’s a NuGet package which you can install into your .NET project and get more expressiveness during your debugging sessions inside Visual Studio. It’ll let you evaluate expressions that use C# features which are not normally allowed by the IDE, namely: lambda expressions, anonymous types, LINQ queries and implicitly-typed arrays. I don’t want to repeat myself (DRY anyone?), so if you’re interested in knowing more, go check out th...