Czas najwyższy rozwiązać zagadkę numerologiczną z poprzedniego wpisu :). Zacznijmy od krótkiego kodu KOD 1 (Wyjątek przechwycony) class SEH { publicstaticvoid Main(string[] args) { try { thrownew Exception(); } catch (Exception ex) { System.Diagnostics.Debugger.Log(0, "Test", "Błąd aplikacji .NET & SEH"); } } } Odpalamy WinDbg, ładujemy naszą aplikację i jedziemy: 0:000> sxe * 0:000> g ModLoad: 77dc0000 77e6c000 C:\WINDOWS\system32\ADVAPI32.dll ModLoad: 77e70000 77f02000 C:\WINDOW...
Strona głównaUżytkownik
macko | użytkownik
W komentarzu do poprzedniego posta („SMO: sprawdzanie dostępnych serwerów MS SQL i automatyczna konstrukcja ConnectionString”), Paweł Łukasik (Pawlos) zapytał, czy jest jakaś różnica pomiędzy ServerConnection a SqlConnectionStringBuilder jeśli chodzi o tworzenie connection stringa? Przyjrzyjmy się temu tematowi trochę bliżej.W ramach .Net Framework dostępna jest klasa System.Data.Common.DbConnectionStringBuilder, która jest bazową klasą dla innych klas specjalistycznych (dla konkretnego typu bazy danych...
Bazy danych i XML 5057 dni, 8 godzin, 21 minut temu 67 źrodło rozwiń
Autor: Jakiś czas temu, we wpisie związanym z SQLServer Management Objects (SMO), pod tytułem: „SMO i sprawdzanie, czy baza danych istnieje [PL]” otrzymałem komentarz, że warto wspomnieć o jeszcze innych możliwościach SMO, jak choćby listowanie instancji SQL Server: SmoApplication.EnumAvailableSqlServers(). W tym wpisie chciałbym właśnie wrócić do tego tematu.Otóż tak jak zostało to wspomniane statyczna funkcja SmoApplication.EnumAvailableSqlServers() potrafi dostarczyć listę instancji serwera Ms SQL. Mo...
Bazy danych i XML 5069 dni, 14 godzin, 22 minuty temu 98 źrodło rozwiń
Wpisy na temat śledzenia i logowania w .NET pojawiały się już wcześniej na tym blogu (np. „Śledzenie i logowanie zdarzeń (tracing and logging) na platformie .NET (przykłady w oparciu o C#).” i „Śledzimy w .NET dalej (dzisiaj uruchomimy własny podsłuch)”). Mechanizm wykorzystania elementów platformy .NET, jak: TraceSource, TraceListener i innych związanych z nimi jest dość wygodny, tym bardziej, że są dostępne gotowe klasy typu TraceListener zapisujące w plikach logi przy pomocy XML-a lub w których każdy ...
Przyznam szczerze, że dotychczas z komunikacją między różnymi aplikacjami lub ich warstwami spotykałem się głownie w aspekcie usługowo-webowym. Taki scenariusz sprowadza się do takiego a nie innego wykorzystania webservice lub pochodnego ustrojstwa. Co jednak można zastosować jeżeli chcemy aby dwie nasze aplikacje miały możliwość pogadania ze sobą na lokalnej maszynie? Rozwiązań jest sporo albo i jeszcze więcej. Poczynając od SendMessage z Win32 API, współdzielonej pamięci, webservice, TCP, COM, DCOM n...
Programowanie rozproszone 5072 dni, 8 godzin, 27 minut temu 191 źrodło rozwiń
Autor: Dzisiejszego pięknego i powtórnie zimowego dnia zaszła potrzeba stworzenia kontrolki, która miałaby dwa wzorce zawartości: nagłowek i ciało. Wszystko szło pięknie. Stworzyłem sobie kontenery do wzorców, odpowiednią kontrolke i wszystkie inne potrzebne rzeczy. Gdy jednak przyszło do wykorzystania okazało się, że kontrolki umieszczone wewnątrz wzorców nie mają odwołać w pliku designera, ani nie są dostępne „globalnie” na stronie. Jakby nie patrzeć całkiem normalne zachwoanie tego typu zwierza, do ja...
Czasami zdarzają się sytuacje, że pomimo usilnych prób nie możemy zreprodukować błędu u siebie na maszynie lokalnej. Musimy sprawdzić dlaczego nasza aplikacji źle działa na maszynie produkcyjnej. W tym wpisie postaram się przedstawić jakie narzędzia mamy do dyspozycji jeśli jeśli taka potrzeba zajdzie. Zobaczmy co jest zatem dostępne.Visual Studio Remote Debugging Pierwszą naszą opcją jest Remote debugging dostępny w VisualStudio. Wraz z zainstalowanym VS instalują nam się komponenty, które możemy wykorz...
Profilowanie aplikacji przy użyciu dotTrace Przyznam się, że nie miałem w planach poruszania tematu profilowania aplikacji jeszcze przez jakiś czas. Rozpoczęcie masowego importu danych ze strony sejmu do projektu Rankingu Sejmowego zmusiło mnie do zmiany planów. Po przerobieniu przez kilka godzin około 30% danych z ostatniej kadencji Sejmu (około 20 tysięcy plików HTML ważących razem 120 MB) zacząłem zastanawiać się czy dałoby się ten proces trochę przyspieszyć. Do badania wydajności kodu posłużyły mi d...
Czasami istnieje potrzeba sprawdzenia czy baza danych jest dostępna na serwerze Ms SQL Server. W tym celu można wykorzystać widok sys.databases, na którym można wykonać select'a i sprawdzić czy dana baza danych występuje na liście (np. „select * from sys.databases”). Zobaczmy jednak, jak to zrobić przy pomocy SMO.O SMO, czyli SqlServer Management Objects pisałem już wcześniej we wpisie dot. zagadnienia jak DataSet’a przenieść do MsSQL'a (z wykorzystaniem SQLServer Management Objects i SqlBulkCopy), więc ...
Bazy danych i XML 5085 dni, 14 godzin, 35 minut temu 50 źrodło rozwiń
Używając Message Inspector możemy modyfikować wiadomości przychodzące i wychodzące zarówno po stronie serwera jak i klienta. Wystarczy zaimplementować dwa interfejsy: IClientMessageInspector oraz IDispatchMessageInspector. Ich definicja wygląda następująco:publicinterface IClientMessageInspector { void AfterReceiveReply(ref Message reply, object correlationState); object BeforeSendRequest(ref Message request, IClientChannel channel); } publicinterface IDispatchMessageInspector { object AfterR...
Programowanie rozproszone 5086 dni, 27 minut temu 48 źrodło rozwiń
Jakiś czas temu był na tym blogu wpis dotyczący GridView i TemplateField, czyli sposobu wygodniejszą wizualizację i edycję danych tabelarycznych. W ten sposób łatwo można zamienić skomplikowane numeryczne identyfikatory (pochodzące z kluczy obcych) na dropdown-listy przedstawiające dane z innych tabel. Jednak co się stanie, gdy nasza kolumna z identyfikatorami dopuszcza wartości puste (NULL)? Otóż pojawi się wtedy „błąd serwera w aplikacji ....”. Zobaczmy jak sobie można z tym poradzić.Załóżmy, że pierwo...
Autor: Kilka dni temu w poście Statystyka… zapowiedziałem, iż postaram się zaproponować kawałki kodu, które umożliwią włączenie statystyk dla zapytań LINQ to SQL. Zadanie okazało się trochę trudniejsze niż myślałem, ale udało się coś osiągnąć. Zobaczmy jak.Rozwiązanie Naïve Pierwsze co przychodzi na myśl to proste rozszerzenie obiektu DataContext o nasze metody. Mniej więcej tak: publicstaticclassDataContextExt { publicstatic T WithStatistics
Bazy danych i XML 5092 dni, 23 godziny, 28 minut temu 44 źrodło rozwiń
Jakiś czas temu pisałem na temat jak DataSet’a przenieść do MsSQL'a (z wykorzystaniem SQLServer Management Objects i SqlBulkCopy). W takim przypadku, gdy kolumna w tabeli w DataSet'cie ma ustawioną właściwość AutoIncrement, to należy w kolumnie w SQL serwerze ustawić Identity na true, oraz IdentityIncrement i IdentitySeed na odpowiednie im wartości (AutoIncrementStep i AutoIncrementSeed) pochodzącej ze źródłowej kolumny z tabeli z DataSet'a. Niestety w takim przypadku, podczas późniejszego ładowania dany...
Bazy danych i XML 5092 dni, 23 godziny, 28 minut temu 76 źrodło rozwiń
ASP.NET dostarcza wygodnego i prostego mechanizmu do obsługi profili użytkowników. Do profilu użytkownika można łatwo dodać kolejne dane – w tym celu wystarczy odpowiednio zmodyfikować web.config, np. w następujący sposób....
Nie… w tym wpisie nie będzie o statystyce odwiedzin bloga i innych podobnych rzeczach, o których można dziś na wielu blogach (u mnie o tym będzie może następny wpis :)). Będzie o klasie o której pewnie niewielu z was wcześniej wiedziało. Do wczoraj nie wiedziałem także i ja. Poznajcie – SqlStatistics. Klasa jest internal sealed tak więc czemu o niej cokolwiek piszę? A no ponieważ do samej klasy dostać się nie możemy natomiast do danych przez nią zbieranych już tak. Śledząc jej zależności Reflector’em zau...
Bazy danych i XML 5095 dni, 2 godziny, 30 minut temu 97 źrodło rozwiń
autor: Na temat Open XML już dłuższy czas nie pisałem. Dzisiaj chciałbym wrócić do tematu i napisać jak można ustawić odstępy między liniami w paragrafie w pliku Word'a (DOCX).
Dziś kolejne, mam nadzieję, ciekawe zastosowanie warunkowego breakpointu. Zanim jednak przejdziemy do omawiania nakreślmy naszą sytuację wyjściową. Załóżmy, że mamy kawałek kodu aplikacji, który jest dość często wykorzystywany z różnych miejsc. privatevoid Calculate(paramsint[] coefficients) { //do sth with coeffs Array.ForEach(coefficients, Console.WriteLine); } To co on robi nie jest ważne. Istotne jest, że chcielibyśmy postawić w niej breakpoint’a i zobaczyć jak się zachowuje w pewnych syt...
Seria wersołych filmików pokazujacych różne aspekty wzorca MVC. Polecam! 1. Controller Obesity The Importance of Tests Keeping Views Stupid Staying RESTful Outdated HTML Modularity Out-takes Tweet this!Zobacz również:ASP.NET MVC – przełączanie widok/kontroler w VisualStudioASP.NET MVC Training KitASP.NET MVC 1.0 wydany!ASP.NET MVC, Na WesołoASP.NET MVC, MVC
Wszyscy wiemy, iż opanowanie operowania VisualStudio z klawiatury to podstawa do szybkiej i wydajnej pracy. Nikt nie będzie nawigował po pozycjach w menu aby dodać plik jeśli może znacznie szybciej zrobić to używając skrótu CTRL+SHIFT+A. Dziś zobaczymy jak możemy wejść na jeszcze wyższy poziom wtajemniczenia. Zapewne wszyscy znają już ukryte funkcje FindBox’a (jeśli nie – zapoznaj się z wpisem – Ukryte możliwości FindBox’a). Dziś zobaczymy jeszcze bardziej ukryte jego możliwości. Zanim jeszcze zaczniemy ...
autor: Dziś potrzebowałem zrobić bardzo nietypową operację – zresetować indeks w tabeli w MS SQLu. I szczerze mówiąc nie sądziłem, że robi się to tak prosto. W tym celu należy użyć komendy:DBCC CHECKIDENT (nazwatabeli, reseed, ostatniindeks) W komendzie podajemy nazwę tabeli, w której chcemy zresetować indeks oraz numer ostatniego indeksu w tabeli. Jeżeli chce się aby automatycznie generowane numery zaczynały się od 1 to należy użyć tego polecenia w następujący sposób:DBCC C...
Bazy danych i XML 5113 dni, 10 godzin, 48 minut temu 236 źrodło rozwiń