Od dnia 01.01.2014 blog znajduje się pod adresem: blog.octal.pl.

niedziela, grudnia 15, 2013

HttpResponse.ContentType - ciekawe zachowanie

Jakoś niedawno spotkałem się z ciekawym zachowaniem właściwości ContentType na obiekcie HttpRequest. Najlepiej pokaże to prosty przykład.
                private void ProcessResponse(object sender, EventArgs e)
                {
                    HttpContext context = ((HttpApplication)sender).Context;
                    string contentType = context.Response.ContentType;

                    if (context.Request.HttpMethod == "GET" && contentType.Equals("text/html") && context.Response.StatusCode == 200 && context.CurrentHandler != null)
                    {
                        context.Response.Filter = new RemoveWhitespaceFilterStream(context);
                    }
                }

wtorek, grudnia 10, 2013

High CPU w Visual Studio 2013

Jeśli pamiętacie takie obrazki, które wrzucałem na profil na Fb i interesuje was skąd takie chaotyczne i duże zużycie procesora w procesie devenv to czytajcie dalej. Wydaje mi się, że udało mi się namierzyć winowajcę...

poniedziałek, grudnia 02, 2013

Performance Countery oczami programisty .NET

Na początku był chaos...



...i problemy produkcyjne


Z aplikacją na produkcji może być wiele problemów. Wycieki pamięci, rzucane wyjątki, zamulająca baza danych - to tylko kilka przykładów z czym borykamy się wdrażając naszą aplikację na serwer produkcyjny. Niestety zwykle (a raczej nigdy) nie ma tam pod ręką Visual Studio aby zdiagnozować takie problematyczne sytuacje. Musimy sobie radzić inaczej. Jeśli masz czasami taki problemy - zapraszam do lektury

niedziela, listopada 24, 2013

Notatka: Jak sprawdzić gdzie wiszą requesty HTTP

Ostatnimi czasy muszę optymalizować czas zapytań HTTP, albo przynajmniej dowiedzieć się co je stopuje. Okazuje się, że istnieją parametry polecanie appcmd, które pokażą nam requesty, które są przetwarzane dłużej niż zadany okres czasu:

wtorek, listopada 12, 2013

Debugowanie kodu - Jak to zrobić?

Zdarza się tak, że mamy potrzebę zdebugować nasz kod, ale projekt w którym go mamy nie jest programem wykonywalnym i nie mamy możliwości jego uruchomienia za pomocą  F5 z poziomu Visual Studio. Czy nie ma wtedy wyjścia i jedyne co nam pozostaje to debugowanie przez logowanie? Co wtedy?

Ostatnio otrzymałem podobne zapytanie na maila i stwierdziłem, że to dobry temat na krótki post.

wtorek, listopada 05, 2013

VS 2013 Debugging - 64 bit Edit & Continue

Czasami ślęcząc nad kodem i analizując przyczynę błędu mamy potrzebę jego zmiany w tym miejscu gdzie jesteśmy. Kiedyś (dawno dawno temu) nie było lekko. Trzeba było przerwać debugowanie, wprowadzić zmianę w edytorze, zbudować, uruchomić i przejść do tego samego miejsca gdzie byliśmy poprzednio. Nie brzmi tak źle, ale ten ostatni etap czasem mógł być utrapieniem.

sobota, listopada 02, 2013

VS 2013 Debugging - Zwracana wartość

Nie wiem jak wy ale ja kocham debugować kod. Odkrywanie, gdzie programista (w wielu wypadkach ja sam!) popełnił (świadomie/nieświadomie) błąd wprawia mnie w stan euforii pewnie jak morfina uzależnionego :).

Visual Studio (dla mnie) jest dość bliskie idealnego narzędzia do tego celu, ale do szczęścia brakowało mu kilku rzeczy. Jedną z nich był podgląd zwracanej wartości z funkcji. W poprzedniej wersji mogliśmy tę wartość uzyskać, ale trzeba było się troszkę "namęczyć".