Piszemy aplikację. Uruchamiamy. Działa. Wysyłamy do klienta. Uruchamia. Nie działa. Znamy to wszyscy, prawda? Powodów może być oczywiście bez liku, od specyficznej konfiguracji konkretnej maszyny po naszą głupotę. Niekiedy jednak problem jest prozaiczny - aplikacja nie może skorzystać z wymaganych dllek! Nie zawsze (a raczej: nigdy?) to co dodajemy bezpośrednio do referencji rozwiązania jest wystarczające do poprawnego działania aplikacji. Strasznie łamałem sobie kiedyś głowę nad takim scenariuszem
Dziś trochę dla odmiany, nie będę pisał o wielowątkowości a o jednym z podstawowych słów kluczowych w c#, które na szczęście nie jest bardzo popularne – bazując na moim doświadczeniu z różnymi projektami, rzadko widuje je w kodzie. Global przydaje się gdy mamy konflikty z przestrzeniami nazw. Wyobraźmy sobie, że mamy następujący kod (kod bazuje na dokumentacji MSDN):class Program { publicclass System { } constint Console =7; staticvoid Main() { } } Następnie chcemy w metodzie Co...
Sztuka programowania 4527 dni, 19 godzin, 12 minut temu 242 źrodło rozwiń
W poprzednim temacie opisałem użycie komponentu Script jako własnego źródła danych w Integration Services. Dzisiaj przedstawię kolejne zastosowanie Script Component, a mianowicie tworzenie własnej transformacji danych.
Witam kolejna cześć artykułu z cyklu “dobre i złe praktyki w c#”. Zapraszam do lektury: http://msdn.microsoft.com/pl-pl/library/dobre-i-zle-praktyki-w-c-sharp–czesc-2.aspx
Sztuka programowania 4530 dni, 17 godzin, 10 minut temu 391 źrodło rozwiń
Często zachodzi potrzeba zaimplementowania w bazie danych struktury hierarchicznej, np. dla kategorii. Pierwszy sposób jaki od razu przychodzi do głowy to adjacency list (lista sąsiedztwa) i polega na dodaniu do tabeli kolumny ParentId na rodzica danej kategorii. Rozwiązanie to jest bardzo proste, jednak mało optymalne gdy mamy wiele zagnieżdżeń. Alternatywą dla tej metody jest nested set (zbiór zagnieżdżony), polega na dodaniu do tabeli dwóch dodatkowych kolumn na lewy i prawy numer każdego węzła. Neste...
Bazy danych i XML 4530 dni, 17 godzin, 10 minut temu 264 źrodło rozwiń
Polecenia w Metro 2/3 W tym poście opiszę jak powinno wyglądać ułożenie poleceń na AppBar. Na początku chcę przypomnieć o charms bar jest to wysuwany z prawej strony parek. Wspominam o nim ponieważ operacje jak szukanie, udostępnianie, ustawienia czy też komunikacja pomiędzy urządzeniami powinny znaleźć się właśnie w charms bar unikniemy w ten sposób duplikowania funkcji. Pasek aplikacji czyli kontrolka AppBar służy do przechowywania akcji jakie w danym miejscu aplikacji może wykonać użytkownik. ...
Widoki są tworem dość często wykorzystywanym w bazach SQL – dobrze zaplanowane bardzo ułatwiają pracę z bazą. Widoki indeksowane zapewniają lepszą wydajność zapytań. Niestety nie zawsze nasz indeks będzie brany pod uwagę podczas wykonania zapytania.
Bazy danych i XML 4533 dni, 7 godzin, 2 minuty temu 115 źrodło rozwiń
Artykuł porusza tematyką związaną z poprawną obsługą Tasków w Windows Phonie. Autor prezentuje w jaki sposób należy wywołać Taski oraz jakie wyjątki powinny zostać przechwycone. Dodatkowo przedstawione zostały scenariusze generujące opisywane błędy.
Mobile development 4533 dni, 7 godzin, 2 minuty temu 64 źrodło rozwiń
Kiedyś na blogu opisywałem kilka implementacji singleton’a przystosowanych do pracy w środowisku wielowątkowym. Jedna z nich opierała się na tzw. double checked locking:publicsealedclass Singleton { privatestatic Singleton mInstance =null; privatestaticreadonlyobject mSync =newobject(); private Singleton() { } publicstatic Singleton Instance { get { if(m_Instance ==null ) { lock(m_Sync) { i...
Sztuka programowania 4533 dni, 7 godzin, 2 minuty temu 212 źrodło rozwiń
Nierzadko jest tak, że aplikacja zachowuje się nieprawidłowo, jednak wszystkie wyjątki są przechwycone i nie ma żadnej informacji (czy to wizualnej, czy tez w logach) o tym, że wydarzyło się coś niepokojącego, program po prostu dalej działa. Klasyczny przykład, to ‘połykanie’ wyjątków, czyli konstrukcja typu: try {...KOD...} catch(Exception) { } czyli blok obsługi wyjątku jest puściutki :) My jednak wyczuwamy jakąś zmyłkę i chcemy dowiedzieć się, co też poszło nie tak. Systemowy mechanizm obsługi wyj...
Artykuł omawia tworzenie własnego MembershipProvidera i RoleProvidera w ASP.NET MVC. Możemy oczywiście skorzystać z bazy ASPNETDB stworzonej przez Microsoft, ale warto się zastanowić czy jest to najlepszy sposób gdy mamy własne wyobrażenie tabel w bazie danych przechowujących użytkowników i role albo korzystamy z Entity Framework i Code First - wówczas do projektowanej bazy możemy dodać tabele z ASPNETDB, ale przy każdej zmianie którejś z klas modelu zostaną one usunięte jeśli dziedziczymy po klasie Drop...
W drugiej części artykułu o tym jak stworzyć własny MembershipProvider i RoleProvider rozpoczynamy od utworzenia w głównym katalogu projektu folderu o nazwie Infrastructure, a w nim dwóch plików: MyMembershipProvider.cs i MyRoleProvider.cs.
W dzisiejszym temacie omówię tworzenie własnego źródła danych w Integration Services za pomocą skryptu C#. Do tego celu służy komponent Script (Script Component). Po dodaniu go do elementu Data Flow, należy skonfigurować kilka opcji.
To będzie króciutki wpis, niemniej traktujący o dość istotniej zasadzie programowania obiektowego, tj. zasadzie jednolitego dostępu. Jej treść brzmi następująco: Wszystkie usługi oferowane przez moduł powinny być dostępne za pośrednictwem jednolitej notacji, która nie zdradza, czy zostały one zaimplementowane z wykorzystaniem danych przechowywanych statycznie, czy też obliczanych na bieżąco w razie potrzeby. Jakie są zalety ze stosowania tej zasady? Otóż...
Sztuka programowania 4536 dni, 4 godziny, 39 minut temu 195 źrodło rozwiń
Introduction Hi Today, I would like to present my concept of making skinnable application in Windows Phone 7.1. Making a skinnable application in Windows Phone might be a little bit tricky. Unfortunately, WP7 doesn't support DynamicResource keyword which is a basic tool for making skins in WPF. In order to overcome this inconvenience I decided to write a SkinManager for WindowsPhone. 2. Base view As I mentioned before, there is no support for using dynamic resources in WP7, therefore, in order to...
Silverlight 4536 dni, 4 godziny, 39 minut temu 45 źrodło rozwiń
WPF dostarcza obiekt Freezable. Możemy dziedziczyć po tej klasie aby stworzyć własne obiekty immutable. Ze względów wydajnościowych, można takowy obiekt “zamrozić” i wtedy nie można już go więcej modyfikować – staje się więc immutable. Przykład:internalclass SampleClass : Freezable { public SampleClass(string text) { Text = text; } protectedoverride Freezable CreateInstanceCore() { returnnew SampleClass(null); } publicstaticreadonly DependencyProperty TextProperty = ...
Na moim blogu co jakiś czas można znaleźć informacje dotyczące pisania dobrego oraz złego kodu w c#. Oprócz tego zacząłem pisać serie artykułów związanych z tą tematyką. Wiele informacji w tych artykułach można było znaleźć już wcześniej na moim blogu ale myślę, że ten cykl stanowi dobre dopełnienie i podsumowanie tego wszystkiego co piszę tutaj. Oczywiście artykuły rozszerzają tematykę, oraz zawierają więcej przykładów więc tym bardziej zachęcam do lektury. Dziś została opublikowana pierwsza część: ht...
Sztuka programowania 4539 dni, 12 godzin, 9 minut temu 630 źrodło rozwiń
Projektowanie interfejsu 1/3 Dziś nie będzie kody w tym i kolejnych postach skupie się na zasadach jakie obowiązują przy projektowaniu interfejsu dla aplikacji Metro. W dzisiejszy poście skupie się na temacie nawigacji pomiędzy stronami i elementami jakie wchodzą w skład nawigacji. Pisząc na temat nawigowania w aplikacjach metro dla systemu Windows 8 trzeba rozpocząć od przedstawienia dwóch podstawowych wzorców nawigacyjnych.Układ hierarchiczny Jest jednym z najczęściej używanych systemów nawiga...
Tym artykułem rozpoczynamy serię wpisów dotyczących jednego z API wchodzących w skład .NET Framework – WCF (Windows Communication Foundation). Dowiesz się czym jest WCF i „z czym się go je”. Seria artykułów o WCF pomoże Ci się przygotować do egzaminu 70-503. Wpisy będą doskonałym materiałem do powtórki i przypomnienia sobie zagadnień – więc zapraszam do śledzenia kodzimy.net WCF? WTF! WCF (Windows Communication Foundation) – jest to jedno z API .NET Framework. Dzięki WCF będziesz w stanie p...
Dodanie animacji w WPF w stylu funkcyjnym.
Sztuka programowania 4541 dni, 6 godzin, 9 minut temu 229 źrodło rozwiń