Niedawno w realizowanym po pracy projekcie przyszło mi zaimplementować funkcjonalność sklepowego koszyka który dostępny był by na każdej stronie tworzonego serwisu. Cała trudność w tym, że jednym z wymagań była możliwość zmieniania liczby zamówionych towarów w dowolnym momencie, bez wpływu na aktualnie przeglądaną zawartość...
Czasami chcemy mieć pewność, że zdarzenie nie zostanie podpięte dwa razy do tej samej metody. Przyjrzyjmy się jak to zrobić w C#:private EventHandler _Event; publicevent EventHandler ExampleEvent { add { if (Event ==null||!Event.GetInvocationList().Contains(value)) _Event += value; } remove { _Event -= value; } } Rozwiązaniem jest użycie metody GetInvocationList. Następnie podłączając metody do zdarzenia za pomocą += mamy pewność, że nie będzie duplikatów i metoda n...
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 ...
Dzisiaj pokażę jak zainstalować silnik bazodanowy SQL Server. Do instalacji zalecam zupełnie darmową i funkcjonalną wersję 2008 R2 Express. * Instalkę pobieramy bezpośrednio ze strony http://www.microsoft.com/express/Database/ Klikamy pobierz wybierając wersję 32/64 bit w zależności od posiadanego systemu. Zanim jednak przystąpimy do instalacji należy pobrać jeszcze kilka narzędzi. Są nimi:Microsoft .NET Framework 3.5 SP1 – linkMicrosoft Windows Installer 4.5 – linkWindows PowerShell 1.0 – link Do...
Bazy danych i XML 4387 dni, 15 godzin, 30 minut temu 200 ź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...
Zachowania w WCF umożliwiają rozszerzanie funkcjonalności poprzez np. doczepianie niestandardowych modułów. Do dyspozycji mamy 4 typy, różniące się zasięgiem obejmowania: Service, Operation, Endpoint, Contract. Utworzenie zachowania sprowadza się do implementacji odpowiedniego interfejsu, który zawiera m.in. następujące metody:AddBindingParameters – umożliwia przekazanie dodatkowych parametrów. Validate –waliduje (np. czy usługa może zostać uruchomiona). ApplyDispatchBehavior/ApplyClientBehavior – służy ...
Programowanie rozproszone 4389 dni, 1 godzinę, 47 minut temu 49 źrodło rozwiń
Developer dashboard w SharePoint 2010 można włączyć tak: stsadm -o setproperty -pn developer -dashboard -pv ondemand Po wykonaniu tego polecenia pojawia się ikonka w górnym prawym rogu strony: Po kliknięciu pojawia się developer dashboard, gdzie między innymi są informacje o zapytaniach SQL jakie są wykonywane: Developer dashboard ma też swoją reprezentację w modelu obiektowym. Więcej informacji: http://blogs.msdn.com/b/pandrew/archive/2010/03/26/sharepoint-2010-developer-das...
Kolejny artykuł z serii Azure został właśnie opublikowany – tym razem o pojemnikach Azure Blobs.
Programowanie rozproszone 4389 dni, 21 godzin, 51 minut temu 26 źrodło rozwiń
Jakiś czas temu szukałem programu, który pozwoliłby mi sterowanie telefonem z Windows Mobile z poziomu komputera. Chodziło mi o możliwość wysłania sms, maila czy podgląd listy zadań. Szukając na sieci takiego programu ...
Jakiś czas temu opisywałem nowy plugin do Visual Studio 2010 – Image Optimizer. Wspomniałem w nim, że ułatwia on osadzanie obrazów jako string base64 i dzisiaj chciałbym ten temat rozwinąć.
Osoby, które tworzą aplikacje w WPF-ie i/lub Silverlight-cie na pewno spędzają wiele godzin edytując kod XAML. Wsparcie w Visual Studio 2010 względem 2008 poprawiło dla tego typu pracy, ale nadal warto wspomóc się zewnętrznymi dodatkami, które są darmowe 1. Pierwszy dodatek, który polecam to XAML Intellisense Presenter. Dzięki niemu IntelliSense w edytorze XAML zyskuje nowe możliwości takie jak filtrowanie, wyszukiwanie za pomocą notacji Pascala czyli pisze tylko DG, a okienko pokaże nam DataGrid. Aby z...
Jak z pomocą GITa radzić sobie w sytuacji, w które wprowadzając masę zmian, przez przypadek gdzieś w tym gąszczu wpisaliśmy sobie także i crasha. Mały poradnik :)
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...
Tak trochę po cichu ukazała się wczoraj finalna wersja ASP.NET MVC 3!
Czasami występuje potrzeba znalezienia informacji o tym jakie oprogramowanie jest zainstalowane na komputerze. Przykładowo chcemy się dowiedzieć, czy ktoś ma już zainstalowany dany program i gdzie jest zainstalowany. Wiedza ta jest potrzebna, gdy chcemy dodać przykładowo jakiś plik do katalogu z zainstalowanym już programem. Najprostszym przykładem jest pisanie różnego rodzaju pluginów. Problem nie występuje jeśli aplikacją została zainstalowana w katalogu domyślnym...
Autor: Wygłosiłem parę godzin temu zdalną prezentację Poznaj tajniki programowania w Windows Phone 7 - Notyfikacje na portalu virtualstudy.pl. Najpierw omówiłem ogólny model wysyłania powiadomień na telefon, a następnie poszczególne rodzaje notyfikacji. Przy okazji zapoznałem słuchaczy z przydatnymi informacjami na temat kafelków. W drugiej części prezentacji przedstawiłem implementację serwisu do wysyłania notyfikacji i aplikację na WP7, która je odbiera. Można było zobaczyć, jak zachowują się w prakt...
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...
W poprzednim poście pokazałem jak stworzyć prosty Message Inspector, wyświetlający nagłówek lub wiadomość SOAP. Dzisiaj zajmiemy się podłączeniem zaimplementowanej klasy do usługi. Najładniejszym moim zdaniem rozwiązaniem jest implementacja behaviour’a, który następnie dołączy zaimplementowany message inspector. W przyszłości planuje napisać osobny post o behaviorach i ich zastosowaniu w WCF. Z punktu widzenia message inspector wystarczy wiedzieć, że behaviory służą do rozszerzania funkcjonalności np. en...
Programowanie rozproszone 4396 dni, 16 godzin, 48 minut temu 36 źrodło rozwiń
Nie jestem jedyny, który ma problemy z wydajnością VS 2010, w szczególności kiedy karta graficzna w kompie na którym odpalany jest VS 2010 do mocnych nie należy. Na szczęście istnieje jedna mała ukryta opcja w ustawieniach VS 2010, która powinna pomóc wam z problemami wydajnościowymi – mi na Windows XP 32bit pomogła.
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 4398 dni, 11 godzin, 31 minut temu 48 źrodło rozwiń