W języku C# mamy kilka mechanizmów tworzenia wątków. Różnią się one zarówno wydajnością jak i przeznaczeniem. Zacznijmy więc od najpopularniejszego sposobu a mianowicie klasy System.Threading.Thread. Stworzenie wątku polega na inicjalizacji klasy oraz wywołania metody Start:publicclass ThreadExample { public CreateThread() { System.Threading.Thread thread =new System.Threading.Thread(ThreadMethod); thread.Start(null); } privatevoid ThreadMethod(object parameters) { ...
Strona głównaUżytkownik
Damian | użytkownik
Na ten problem natknąłem się całkiem przypadkiem. W xamlu napisałem coś takiego: W wyniku czegoś takiego można by się spodziewać, że pojawi się tekst “8 grudnia 2009”. Nic bardziej mylnego pojawiło się “8 December 2009”. Wynik całkiem zaskakujący ponieważ zarówno CurrentCulture jak i CurrentUICulture zawierały poprawne ustawienia dla pl-PL. Okazuje się, że tak zachowuje się DataBinding w WPF-ie. Jedynym obejściem jest albo napisanie własnyc...
Podczas korzystania z WCF najprostszą drogą do wywołania metody udostępnianej przez jakąś usługę jest pozwolenie Visual Studio na wygenerowanie odpowiedniego proxy, stworzenie jego instancji... i już - mamy metody usługi do dyspozycji. Bez wysiłku, bez kodu... bez sensu?
Re: NHibernateStarter... Czyli nawiązanie do świetnego posta Procent-a na temat jego sposobu budowy aplikacji. Poniżej zamieszczam moje aktualne poglądy na ten temat. Zieloną czcionką wyróżniłem fragmenty porównujące oba rozwiązania. O czym w ogóle mowaZawsze na początku należy sobie zadań takie pytanie. O jakich w ogóle aplikacjach mówimy? Procent opisywał przypadek nietrywialnej aplikacji biznesowej (OLTP), więc i ja posłużę się takową. Termin "nietrywialny" oznacza dla mnie znaczący stopień skomplikow...
Architektura 5247 dni, 3 godziny, 14 minut temu 68 źrodło rozwiń
Jednym z bardziej zauważalnych składników Windows 7, które odróżniają ten system od Visty, jest nowy wygląd paska zadań. Jest szerszy, wyświetla duże ikony i przesunięcie go z dołu na bok ekranu w końcu ma sens (hurra dla monitorów wide-screen). Ale nowy wygląd to w tym przypadku nie wszystko, bo pasek ten zyskał też trochę na funkcjonalnościach. Wśród nich mamy tzw. listy skoków (Jump Lists), ...
Wszyscy znamy doskonale funkcję Sleep, która w Windows API służy do zawieszania działania wątku na określony czas (podawany w milisekundach). Wydawałoby się, że musi to być najprostsza funkcja z tego API, jaką tylko można sobie wyobrazić – bo co może być skomplikowanego w “zwykłej pauzie”? A okazuje się, że jak najbardziej może :) Używając Sleep – zwłaszcza w swej zwykłej wersji – musimy bo...
Donald Norman stwierdza, że prostota jest przereklamowana: "Ale kiedy przyszedł moment, aby dziennikarze zrecenzowali 'proste' produkty, wszyscy narzekali na brak kluczowych wg. nich funkcjonalności. Co więc ludzie mają na myśli, kiedy chcą prostoty? Operacje wywoływane pojedynczym przyciskiem -- oczywiście -- ale wraz ze wszystkimi swoimi ulubionymi funkcjonalnościami". Dawno temu pisałem: "Wielu programistów zostało zwiedzionych starą zasadą 80/20. Na p...
Niedawno zostałam poproszona o przeszkolenie zespołu programistów w temacie notacji UML. Niestety przed szkoleniem nie byłam w stanie zdobyć wielu informacji dotyczących oczekiwań poza generalnym stwierdzeniem, iż stan wiedzy słuchaczy na temat UMLa jest zróżnicowany - niektórzy nie wiedzą kiedy stosować jakie diagramy, inni nie znają nawet podstaw notacji. Wiedzę należało usystematyzować tak, by po szkoleniu można było wdrażać UMLa do codziennej pracy zespołu. Postanowiłam wię...
Na wss.pl pojawił się wątek dotyczący działań na typach datetime. Jeden z uczestników dyskusji stwierdził, że operacja odejmowania dwóch wartości datetime daje w wyniku czas. Jak pokazałem, zapytanie SELECT GETDATE() - GETDATE() daje w wyniku 1900-01-01 00:00:00.000 czyli nadal typ datetime (należało się tego spodziewać) a dopiero po jawnym zrzutowaniu na float widzimy numeryczną reprezentację z różnicy dat (dlaczego nie na time, o tym mała uwaga na końcu notki). Ale pomyślałem sobie, że w pewnych ...
Bazy danych i XML 5255 dni, 4 godziny, 9 minut temu 97 źrodło rozwiń
To niewiarygodne, że firma jest w stanie płacić programiście $60-$100k rocznie, a przy tym upośledzać go okropnymi warunkami pracy oraz obdartym sprzętem z drugiej ręki. Nie ma w tym żadnego biznesowego sensu. A jednak dostrzegam to przez cały czas. Szokujące jest to, jak wiele przedsiębiorstw wciąż nie dostarcza programistom niezbędnych rzeczy do osiągnięcia celu. Proponuję abyśmy przyjęli Kartę Praw Programisty, by chronić ich pra...
Taka mała ciekawostka. Jak włączyć widoczność białych znaków w Visual Studio 2008? Wystarczy kombinacja klawiszy: Ctrl + S + E Kombinacja działa naprzemiennie, tzn. wciskając ją ponownie oznaczenie białych znaków zniknie. U mnie widać je tak: Niestety nie jestem w stanie sprawdzić czy ten skrót działa w VS 2005, ale domniemam, że tak. :) Ten artykuł jest widoczny...
W Drugiej najważniejszej rzeczy programisty opisałem, jak zakup dobrego jakościowo krzesła może być jedną z najmądrzejszych inwestycji, jaką możesz zrobić, będąc programistą. W rzeczywistości, po poszukiwaniach krzeseł przez ostatnich kilka lat mojej kariery, doszedłem do jednego wniosku: nie możesz oczekiwać, że uda Ci się dostać porządne krzesło za mniej niż $500. Jeśli zamierzasz wydać mniej niż tyle na siedzenie -- c...
Pracuję aktualnie w bardzo dziwnym projekcie, w którym ogólnie wykorzystywane są minimum (o tym minimum wiem) dwa mechanizmy testów jednostkowych: nUnit i MS Unit Testing Framework .
Są takie momenty w życiu modelu domeny, kiedy niewinna, z pozoru, refaktoryzacja powoduje przełomowe zmiany w jego strukturze i zachowaniu. Jest to zjawisko, które (wg Erica Evansa) jest ostatecznym celem procesu knowledge crunching będącego istotą DDD. Jakiś tydzień temu byłem uczestnikiem właśnie takiego zjawiska. Moduł Zabezpieczeń, nad którym od jakiegoś czasu się pracowaliśmy zajmował się przetwarzaniem zabezpieczeń dla różnych obiektów biznesowych: ofert, transakcj...
W takim dniu jak dziś można zadać pytanie: czy programiści są przesądni? Wydaje się, że raczej nie – przynajmniej w porównaniu z niektórymi innymi zawodami (np. aktorzy teatralni mają tyle przesądów, że to cud, iż w ogóle wychodzą na scenę :]). A jednak nie jest to wcale takie pewne. To przecież w informatyce ogóle, a w programowaniu w szczególności, wyeksponowaną pozycję zajmują wszelkiego rodzaju ‘...
Zdarzyło Ci się kiedyś mieć taki dzień, w którym wszystko, co komitowałeś do systemu kontroli wersji, było złe? Tak w ogóle, to czym dokładnie taki dzień różni się od każdego innego? Ale bądźmy poważni. Kod, który jest widoczny to kod, który może być niepoprawny. Nie powinno to być zaskoczeniem. Ale czy wiesz, że nawet kod, którego nie widać, również może być zły?
Pracując nad jakąś aplikacją czasami musimy ją zdebugować. Sposobów na to jest wiele – np. podpinając się pod odpowiedni proces. U mnie standardowo wygląda to tak: menu Debug->Attach to Process…->w3wp.exe. Wykonuję tę operację dość często. Jak wiele czynności w pracy z komputerem można tę operację zautomatyzować, tworząc np. makro. W Visual Studio wybieramy: Tools->Macros->Macros IDE Dodajemy nowy moduł, nadajemy mu nazwę, np. RecordingModul...
Co roku Microsoft organizuje praktyki Internship dla najzdolniejszych studentów. Jest to dla nich możliwość uczestnictwa w realizacji prawdziwych projektów, spotkania z doświadczonymi specjalistami, zdobycia cennej wiedzy oraz doświadczenia. Dzisiejszy nasz bohater (Paweł Góra) był w ostatnie wakacja na tych praktykach. Zadaliśmy mu kilka pytań, na które z wielką chęcią opowiedziedział. Miłej lektury!!! Academic Flas...
Niedawno (5-go listopada 2009) pojawiła się kolejna wersja pakietu SDK dystrybuowanego przez OPC Foundation i wspierającego standard OPC Unified Architecture: OPC UA SDK 1.01.307.0 Stable. Pakiet SDK dostępny jest w kilku postaciach instalacyjnych, których opis można znaleźć w dokumencie: "ROADMAP TO UA SOFTWARE DOWNLOADS". Plik readme można znaleźć tutaj. Poszczególne instalatory pakietu dostępne są ze strony OPC Foundation w dziale download (dostęp tylko dla członków OPC Foundation). W skład pakietu w...