Dziś kolejny post o kolekcjach, które mogą być używanie swobodnie w środowisku współbieżnym. Tak jak ConcurrentBag, obiekty przedstawione w tym poście również są mocno zoptymalizowane. ConcurrentQueue to po prostu kolejka.
Programowanie rozproszone 3882 dni, 42 minuty temu 118 źrodło rozwiń
Jeśli jeszcze nie jesteś przekonany do potrzeby profesjonalizmu to najwyższa pora zapoznać się z poniższym wywiadem z Robertem C. Martinem. A jeśli nie wiesz kim jest Robert C. Martin to najwyższa pora zapoznać się z jego opiniami na temat programowania, TDD i profesjonalizmu w programowaniu.
Tiles Do tej pory cały czas pisałem o tematach cięższych wymagających więcej uwagi dlatego dziś postanowiłem opisać krótki i przyjemny temat. A jest to temat kafelka aplikacji. Spotykam się u wielu osób z podejściem iż kafelek aplikacji traktują po macoszemu to znaczy wstawiają obrazek który mniej lub bardziej pasuje do aplikacji. A trzeba pamiętać że kafelek aplikacji jest pierwszą rzeczą jaką widzi użytkownik i zarazem jedyną rzeczą jaka zachęci do wejścia w szczegóły aplikacji. Tak więc trzeba ...
Trochę wybranych informacji z tematyki tandemu ASP.NET MVC i HTML5. ASP.NET MVC do udostępniania danych zamiast WCF, jeszcze łatwiej używać danych JSON z poziomu klienta HTML/JSwłasny dependency resolver (np. oparty o Unity.MVC3 zapewniający odpowiednie disposowanie obiektów związanych z aplikacją web) //kontroler do udostępniania danych w JSON, nie dla widoku HTML/CSS public class DataServiceController: Controller { IAppointmentRepository _appointmentRepository; //zasilanie z IoC public DataServi...
W SQL Server 2012 pojawiło się kilka obiektów systemowych pozwalających na uzyskanie szczegółowych informacji odnośnie struktury danych zwracanych przez określone zapytanie, bez konieczności jego uruchamiania.
Bazy danych i XML 3883 dni, 17 godzin, 9 minut temu 215 źrodło rozwiń
Kontynuując temat z poprzedniego wpisu, obecnie przedstawię, w jaki sposób wypełnić plik, aby odpowiadał obrazowi pamięci oczekiwanemu przez aplikacje nie napisane w .NET (napisane w kodzie niezarządzanym). W tym wypadku swoją rolę ponownie odegrają klasy BitConvert oraz Encoding. W obu wypadkach użyte zostaną metody o takiej samej nazwie: GetBytes...
Sztuka programowania 3883 dni, 17 godzin, 9 minut temu 84 źrodło rozwiń
Gdy już kończymy pisać program na którym zarobimy pierwszy milion większość z nas chciałaby stworzyć do niego własny instalator. Oczywiście możesz spakować aplikację i pozwalać użytkownikom ściągać gotowy plik wykonywalny, ale co gdy zajdzie potrzeba wprowadzenia np. Klucza sprawdzającego oryginalność nabytego programu lub zwykłej rejestracji użytkownika w serwisie?Setup Wizard Zacznijmy więc od stworzenie prostego instalatora aplikacji. W Solution Explorer dodajemy nowy projekt: Add -> New Pr...
Sztuka programowania 3883 dni, 17 godzin, 9 minut temu 147 źrodło rozwiń
Kilka miesięcy temu w tym poście http://premium-hands.blogspot.com/2011/11/walidacja.html przedstawiałem różne sposoby walidacji jakie są dostępne na platformie Silverlight. Jako, że ostatnio mam więcej czasu aby pisać jakieś proste aplikacje pod Windows Phonem potrzebowałem mechanizmu walidacji działającego pod tą platformą. Według MSDN-u wszystkie metody walidacji przedstawione we wspomnianym wcześniej poście powinny działać. Niestety po przerzuceniu mechanizmu z Silverlighta na Windows Phona okazało s...
Mobile development 3884 dni, 9 godzin, 6 minut temu 71 źrodło rozwiń
Pisząc moją małą aplikację pod Windows Phone po raz kolejny natknąłem się na problem. Pod WP7 nie ma tak przydatnej rzeczy jaką jest DataTemplateSelector znany nam bardziej, lub mniej z Silverlighta oraz WPF-a.Na szczęście napisane własnego DataTemplateSelector-a nie jest specjalnie skomplikowane. Jak zwykle w takich przypadkach liczy się pomysł - jak dobrze, że jest Google. Nasz customowy DataTemplateSelector zostanie oparty o kontrolkę ContentControl. Po pierwsze stwórzmy klasę bazową DataTemplateSelec...
Mobile development 3884 dni, 9 godzin, 6 minut temu 50 źrodło rozwiń
Dziś po długim wprowadzeniu teoretycznym, mającym na celu wyjaśnienie “zaawansowanych” mechanizmów synchronizacji czas przyszedł na pokazanie pierwszej struktury danych. Przed pojawieniem się asynchronicznych kolekcji, najczęściej korzystało się z prostego lock’a jak:lock(_Sync) { _list.Add(newElement); } Rozwiązanie mało wygodne i przede wszystkim niewydajne. Nowe kolekcje zawierają mechanizmy synchronizacji omówione w poprzednich postach takie jak:SpinLock SpinWait SemaphoreSlim CountdownEvent ...
Sztuka programowania 3885 dni, 1 godzinę, 14 minut temu 162 źrodło rozwiń
Ten wpis jest częścią cyklu o moich przygodach w tworzeniu gier XNA dla Windows Phone. Ustawienia gry takie jak:Efekty dźwiękowe on/offPoziom głośności muzykiWibracja on/offWybrany język to coś co każda (a jeśli nie to większość) gier powinna posiadać. Ustawienia mają charakter globalny dla aplikacji więc powinno się do nich łatwo dobierać i dobrze jeśli będą się same zapisywać po zmianach. W tym celu tworzę statyczną klasę Settings ze statycznymi właściw...
Mobile development 3886 dni, 37 minut temu 48 źrodło rozwiń
Windows 8 Release Preview–wrażenia Pod koniec zeszłego tyg. Microsoft udostępnił nam nową wersję Windows 8 oznaczoną jako Release Preview. Jest to wersja która nie równi się za mocno od finalnej. Oznacza to nie mniej nie więcej że to co widzimy nie różnić się będzie mocno od wersji finalnej. Przejdźmy więc do wrażeń jakie mam po instalacji nowego systemu.Częściowe spolszczenie Podstawowe aplikacje metro są spolszczone między innymi: Zdjęcia, Muzyka, Poczta, Kalendarz. SkyDrive to jedna z aplik...
Jestem w miarę świeżo po przeczytanie Programowania Windows 8 (w wersji preview) napisanej przez pana który się nazywa Charles Petzold. Krótka recenzja: Aktualnie książka zawiera siedem rozdziałów, w nich omówienie XAML, mechanizmu wiązań, kontrolek, layout i krótko o WinRT. Jeśli ktoś z was pisał już w WPF czy SL nie znajdzie w niej (przypominam że mówię ciągle o wersji preview) nic ciekawego. Prawie nic, otóż są dwie nowości warte uwagi wprowadzone w nowszej wersji .NET. CallerMemberName oraz async/...
Sztuka programowania 3887 dni, 17 godzin, 40 minut temu 178 źrodło rozwiń
Dla tych, którzy są zainteresowani Windows 8 oraz nowym API IO w WinRT: http://msdn.microsoft.com/pl-pl/library/obsluga-operacji-na-plikach-w-winrt.aspx
Jak wiadomo wszystkie dane platformy .NET są przechowywane w postaci obiektów [...], więc siłą rzeczy sposób przechowywania tychże danych jest ukryty przed programistą (obiekty są wszak hermetyczne). Jest to całkowicie odmienne podejście do przechowywania danych w stosunku do stosowanego przed erą .NET. Tam typy proste były zwyczajnie obszarem pamięci, który był odpowiednio interpretowany przez oprogramowanie (dbał o to kompilator)...
Sztuka programowania 3887 dni, 17 godzin, 40 minut temu 132 źrodło rozwiń
Nie ma nic bardziej frustrującego dla zapalonego gracza, gdy po 2 godzinach grania mierzy się z ostatnim bossem, już prawie go zabija… gdy nagle… dzwoni mama! Gra zostaje przerwana i cały postęp gry leci w kosmos… Wiem! Ktoś powie, że w Mango mamy Fast Application Switching (FAS) i stan aplikacji jest w pamięci i gra zostanie automatycznie wznowiona. Tak, ale jeśli nasz...
Mobile development 3889 dni, 17 godzin, 45 minut temu 143 źrodło rozwiń
W dzisiejszym wpisie zajmę się tematem śledzenia zmian i kontroli danych w obiekcie DataTable. Jest to możliwe dzięki temu, że wiersze tabeli będące obiektami typu DataRow przechowują informacje o swoich wersjach. Obiekty DataRow posiadają także szereg metod związanych z modyfikacją danych, a co za tym idzie ze zmianą ich wersji.
Jest już nowe Visual Studio – chyba każdy o tym wie. Pierwsza rzecz, od której bolą (mnie) zęby to duże litery w menu. To tak jak by Visual cały czas na mnie krzyczął. Więc jeśli nie podoba Ci się default: I wolisz tak: To wystarczy dodać w rejestrze: HKCU\Software\Microsoft\VisualStudio\11.0\GeneralSuppressUppercaseConversion DWord o wartości 1 Link do odpowiedniego Connect-a, może zmienią to do RTM-a http://connect.microsoft.com/VisualStudio/feedback/details/745676/capital-uppercase-me...
W ostatnim poście pisałem o różnych mechanizmach opartych o Spin. Zachęcam do przejrzenia ostatnich wpisów ponieważ bez tego trudno będzie zrozumieć dzisiejszy post. SpinWait jest strukturą, w której najważniejsza metoda to SpinOnce. SpinOnce przez pierwsze 10 wywołań wykonuje klasyczny Spin (patrz poprzednie posty) dzięki czemu nie musimy obawiać się koszty związanego z uśpieniem wątku, zmianą kontekstu itp. SpinOnce jest jednak na tyle inteligentny, że po 10 wywołaniach zmienia swoje zachowanie:Po 10...
Programowanie rozproszone 3890 dni, 18 godzin, 52 minuty temu 52 źrodło rozwiń
Mimo, że późno to niedziela jeszcze nie minęła więc kolejny niedzielny tip – prosta funkcja wyszukująca wśród dzieci danej kontrolki, dzieci o danym typie...
Silverlight 3890 dni, 23 godziny, 46 minut temu 126 źrodło rozwiń