W .NET istnieją dwie przydatne klasy do logowania wszelkich informacji: Trace oraz Debug. Często różnica nie jest jasna oraz klasy są ze sobą mylone. Co się dokładnie dzieje, gdy napiszemy następujący fragment kodu? Trace.WriteLine("Trace test"); Debug.WriteLine("Debug test"); Efekt wydaje się podobny, w okienku debug zobaczymy wykonane logi: Najlepiej zajrzeć do źródeł powyższych klas. Debug.WriteLine wygląda następująco: [System.Diagnostics.Conditiona...
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...
Coraz częściej w projektach zaczynam używać LINQ i zaczynam dostrzegać zalety. Nie dość, że można w ten sposób trochę pisania kodu oraz zyskać na przejrzystości. Poniżej zamieszczę parę przykładów, w których pomału przerzucam się na LINQ.
Domyślna konfiguracja instalacji IIS na Win7 nie do końca nadaje się do uruchamiania stron ASP.NET. Ba, "nie do końca" to za mało powiedziane... W przyszłości pewnie natknę się jeszcze na ten problem, dlatego zamieszczam swoją konfigurację, która po prostu działa...
Ostatnio przeraziłem się, ponieważ po zainstalowaniu .NET Framework 3.5 na serwerze oczekiwałem, ze pojawi się możliwość wybrania ASP.NET 3.5 w IIS Managerze...
Oto praktyczny przykład użycia wyrażeń lambda i metod rozszerzających, który lekko i prymitywnie "ociera się" o programowanie aspektowe i imituje jego podstawowe założenia:
Lambda expressions - brzmi groźnie. To właśnie tym elementem języka C# 3.0 straszono programistów (a raczej programiści straszyli się nawzajem) jeszcze dobre kilkanaście miesięcy przed premierą .NET 3.5. A bo to "funkcyjne", a bo to "nowe", "nieznane" i trudne do pojęcia. Jak za chwilę zobaczymy - nic bardziej mylnego. Jeżeli kiedykolwiek korzystałeś z delegatów, to umiesz korzystać także z metod anonimowych. Jeżeli umiesz korzystać z metod anonimowych, to... to są właśnie wyrażenia lambda, tylko trochę ...
W .NET 3.5 (a konkretniej - C# 3.0 oraz VB 9.0) pojawił się mechanizm "extension methods". Cel przyświecający jego autorom był zaiste godny uwagi: umożliwienie dodania nowych funkcjonalności do już istniejących, skompilowanych klas. Jedna z kilku "Ruby-like features" wprowadzonych do świata .NET. Przydatność takiego rozwiązania trudno przecenić - w ten sposób rozszerzono m.in. klasy już istniejące w .NET 2.0 (*).
Czym jest XML chyba nie muszę nikomu przypominać, przez lata rozumiany był jako „lingua franca” (tj. środek komunikacji, język transportu danych). XML używany jest dotychczas z powodzeniem jednak światło dzienne ujrzał inny format danych, silnie rozwijający się z technologia AJAX, mowa oczywiście o JSON (JavaScript Object Notation). O co tak naprawdę chodzi ? JSON jest prostszym i bardziej ...
Wśród feature'ów wprowadzonych w wersji 3.5 frameworka .NET jest między innymi LINQ (Language INtegrated Query). Mechanizm ten umożliwia - w dużym skrócie rzecz jasna - konstruowanie zapytań odnoszących się do kolekcji obiektów (w zasadzie dowolnego rodzaju) przy pomocy operatorów znanych z relacyjnych baz danych, jak SELECT czy WHERE. Ponadto w .NET 3.5 język C# został też odpowiednio rozszerzony, aby zapytania ta składniowo mogły przypominać kwerendy podobne do tych występujących w różnych odmianach ję...
Bazy danych i XML 5591 dni, 5 godzin, 11 minut temu 134 źrodło rozwiń
Strongly-typed DisplayValue i DisplayMember / DataValueField i DataTextField Ileż to razy zmuszeni jesteśmy pisać kod temu podobny: list.ValueMember = "Id"; list.DisplayMember = "Name"; Na CodeGuru niejednokrotnie pytano o jakiś sposób na rozwiązanie tego problemu. Podawanie stringów jest ZŁE, niewygodne i bardzo podatne na błędy wszelakie. Zmiana nazwy właściwości rozwala UI, refactoring bez dodatkowych narzędzi jak Resharper potrafi napsuć sporo krwi (a i z pomocą R# wcale przyjemny nie jest...
Architektura 5614 dni, 41 minut temu 45 źrodło rozwiń