W artykule opisane są pewne fundamenty programowania w C#. Każdy znajdzie tu coś dla siebie. Początkujący programiści C# dowiedzą się jak działają obiekty w .NET, co to jest kod zarządzany i jak w tytule - jak działa Garbage Collector. Bardziej doświadczeni również nie powinni się zawieść i może dowiedzą się czegoś nowego.
Na stronie http://msdn.microsoft.com/en-us/devlabs/ee334183.aspx można znaleźć bardzo ciekawy projekt implementujący transakcyjną pamięć w .NET.
Wielu z Was zapewne kojarzy transakcje wyłącznie z bazami danych. Jest duża doza prawdopodobieństwa, że w codziennej pracy twórcy oprogramowania używacie ich nagminnie. Zapewne robicie też to w sposób jawny korzystając z metod BeginTransaction() i CommitTransaction() z klasy DbConnection oraz klasy DbTransaction i pochodnych, Część z was być może się spotkała z przestrzenią nazw System.Transactions, a część nie. Do czego więc się ona odnosi? Zapraszam do lektury.
Bazy danych i XML 4200 dni, 18 godzin, 20 minut temu 51 źrodło rozwiń
Wstęp do wzorca MVP filed in .NET, Programowanie on Aug.23, 2009 Jestem leniem. Tak przyznaję się bez bicia. Ile razy piszę jakąś aplikację, czy to na własny użytek czy na zajęcia uczelniane, tak bardzo staram się skupiać na niezłym dizajnie logiki biznesowej, że jak przychodzi do napisania interfejsu graficznego po prostu olewam sprawę i idę po najniższej linii oporu. Przykładowo w aplikacjach WinForms-owych pakuję wszystko jak leci pod event handlery nie zastanawiając się nawet nad konsekwencjami…bo i...
Architektura 4201 dni, 14 godzin, 48 minut temu 410 źrodło rozwiń
Dzisiaj kilka słów na temat wzorca Flyweight – “waga piórkowa”. Wzorzec ten należy do grupy wzorców strukturalnych. Flyweight zajmuje się udostępnianiem pojedynczego obiektu wielu klientom. Wspólny dostęp znajduje zastosowanie gdy występuje potrzeba zarządzania dużą ilością obiektów(setki, tysiące, itp), które posiadają jakąś niezmienną część. Dość prymitywnym przykładem może być proces tworzenia oferty sprzętu: zamiast do każdego długiego opisu powiedzmy procesora, wraz z wszystkimi danymi technicznymi,...
Architektura 4201 dni, 14 godzin, 48 minut temu 170 źrodło rozwiń
Dzisiaj napotkałem problem z załadowaniem przez IDE Microsoftu, biblioteki odpowiedzialnej za interpretacje plików *.xaml, co skutkowało, wyrzucaniem błędu i sugestią jak można go naprawić, a także brakiem możliwości podglądu wyglądu aplikacji w designerze i co gorsza, brakiem kolorowania składni, jak i podpowiedzi intelliSense.
Wszyscy chyba zdają sobie sprawę z tego, jakim dobrodziejstwem jest LINQ, które pojawiło się dosyć dawno, wraz z .NET 3.0. Jak wiadomo LINQ oferuje trochę nowych słów kluczowych oraz trochę metod - i tu pojawia się pytanie - czym różni się zapis za pomocą słów kluczowych od zapisu "metodowego"? Szczególnie interesujące zdaje się być to, czy któryś z zapisów powoduje jakiś narzut wydajnościowy. Nie będę budował napięcia i od razu odpowiem - query syntax w zasadzie nie różni się niczym od zapisu za pomoc...
Przyspieszamy ASP.NET - CSS Sprites Zwykle na bogaty interfejs graficzny witryny składa się wiele obrazków. Nawet, gdy każdy z nich zajmuje po klika kilobajtów, to czas ich pobierania może zacząć dominować przy ładowaniu strony. W końcu załadowanie każdej grafiki wymaga nawiązania oddzielnego połączenia z serwerem. A gdyby tak dało się przesłać wszystkie obrazki w ramach jednego żądania do serwera… Da się i technika ta nazywa się CSS Sprites! Koncepcja, którą przedstawię w tym wpisie, nie jest w żaden sp...
Jestem zwolennikiem wszelakiej integracji SharePointa z innymi technologiami więc tym razem przyszedł czas na jQuery. W poście będzie pokazane jak zintegrować jQuery z SharePoint w najładniejszy według mnie sposób.
Google Maps, VirtualEarth, YahooMap, itp. - Internetowe mapy interaktywne, które dostarczają olbrzymich możliwości. Mało tego cała ich funkcjonalności dostępna jest przez stale rozwijane API. W tym poście postaram się pokazać jak je wykorzystać w aplikacjach windowsowych tworzonych w oparciu np.: o WPF.
Chciałbym podzielić się z Wami moimi refleksami po obejrzeniu prezentacji Martina Fowlera i Jima Webbera zatytułowanej "Does My Bus Look Big in This?". Prezentacja ta odbywała się podczas konferencji QCon w Londynie w 2008 roku. Minęło już sporo czasu, jednak główne przesłanie nie straciło nic ze swojej aktualności. A przesłaniem tym jest: nie potrzebujemy wielkich, ciężkich i kosztownych produktów ESB! Pierwsza część prezentacj poświęcona jest charakteryzacji typowego pr...
Architektura 4204 dni, 17 godzin, 46 minut temu 19 źrodło rozwiń
Testowanie obsługi zdarzeń oraz faktu ich wywołania jest niekiedy równie ważne co przetestowanie każdej innej integracji pomiędzy dwoma obiektami. Scenariusz jest na tyle specyficzny, że poświęcę mu osobną notkę.
Przyspieszamy ASP.NET - kompresja HTTP Wyobraźmy sobie rozwiązanie, które:pozwala na zmniejszenie transferu wykorzystywanego przez witrynę,umożliwia szybsze dostarczenie treści użytkownikowi,wymaga bardzo małego nakładu pracy przy wdrożeniu,w niedużym stopniu wpływa na wydajność serwera orazjest od dawna wspierane przez wszystkie przeglądarki… Zbyt piękne, żeby było prawdziwe? Nieprawda – takie rozwiązanie istnieje i nazywa się kompresja HTTP! Idea polega w skrócie, żeby odpowiedź na żądanie klienta skom...
NULL vs. Exception, a może alternatywa? filed in .NET, Programowanie on Aug.13, 2009 Czasem tak się dzieje, że czytając swój własny kod pierwszy raz od kilku miesięcy mamy problem z jego zrozumieniem, zwłaszcza jeżeli nie komentujemy go w odpowiedni sposób. Ale nie jest to jedyna przyczyna problemu. Ostatnio analizując stare projekty doszedłem do wniosku, że istnieje w nich mnóstwo kodu zaciemniającego rzeczywistą logikę działania. Mam tu na myśli dziesiątki wyrażeń postaci if (something != null) i podo...
Architektura 4205 dni, 17 godzin, 52 minuty temu 109 źrodło rozwiń
Na zakończenie przerabiania ListView mechanizm prosty i przyjemny – grupowanie danych, pozwalające wyświetlać kilka(naście) elementów ListView w jednej linijce. Najłatwiejszym do wymyślenia przykładem użycia są wszelkiego rodzaju galerie zdjęć itp. Jak się do tego zabrać?
Pewnie nikt z nas tak naprawdę nigdy nie uczestniczył w prostym projekcie. No może za czasów studiów, może gdy robiliśmy kawałek oprogramowania użytecznego dla nas samych - aplikacyjkę zarządzającą naszą domową filmoteką, organizującą nasze rachunki (choć nie posuwałabym się w tym wypadku, aż tak daleko jeśli chodzi o prostotę). Projekty niestety mają tendencję do zwiększania swojej złożoności - nie tylko w sferze domeny biznesowej, również technologicznie, wdrożeniowo, utrzyman...
Maciej Aniserowicz o poprawianiu obsługi wyjątków w EntLib.
Architektura 4206 dni, 11 godzin, 27 minut temu 48 źrodło rozwiń
July 08XNA - Programowanie Shaderów cz. 3 Witam w trzeciej części tutorial poświęconego programowaniu shaderów w XNA. Dzisiaj zajmiemy się implementacją kolejnego z typów oświetlenia – Specular Lighting (światło odbite, będę używał także okreslenia specular). Algorytm będzie budowany na podstawie dwóch poprzednich tutoriali także radzę się z nimi zapoznać. Specular Lighting Do tej pory udało nam się uzyskać ładnie wyglądający, oświetlony model. Co jednak w przypadku, gdy chcemy wyrenderować obiekt, k...
Wraz z nowym Expression Blendem 3, a właściwie to z Expression Encoderem 3 otrzymaliśmy nową kontrolkę do wyświetlania mediów, czyli MediaPlayer! Czym jest MediaPlayer? MediaPlayer to zaawansowana kontrolka do odtwarzania plików video, która opakowuje wszystkie funkcjonalności jakie możemy sobie wymarzyć. Oprócz podstawowego odtwarzania pozwala na tworzenie Playlist, Chapters, AutoLoad, AutoPlay, działa w trybie Offline (po zaakceptowaniu zwiększenia przestrzeni IsolatedStorage), Popout, Transport C...
Silverlight 4206 dni, 11 godzin, 27 minut temu 78 źrodło rozwiń
May 12XNA - Programowanie Shaderów cz. 2 Witam w drugiej części tutorial poświęconego programowaniu shaderów i XNA stworzonego przez Petri Wilhelmsena. Dzisiaj będziemy dalej pracować nad programem z tutoriala 1. Urozmaicimy trochę równanie światła z którego korzystaliśmy tak aby dodać tzw. diffuse light. Diffuse light(światło rozproszone) Jak pamiętamy swiatło ambientowe ma następujące równanie: I = Aintensity * Acolor Diffuse light tworzymy dodając do poznanego równania światło kierunkowe: I ...