Team Foundation Server wykorzystuje Jednostki robocze do przedstawiania jakiegoś fragmentu informacji o projekcie. Dla przykładu, metodyka MSF for agile software development v4.2 , której template otrzymujemy razem z instalacją TFS 2008, zaleca wykorzystywanie następujących jednostek roboczych: Scenariusz(Scenario), Wymagania dot. jakości – coś na kształt wymagań niefunkcjonalnych(Quality of service requirement), Zadanie(Task), Ryzyko(Risk) oraz Błąd(Bug). Możemy więc np. kontrolować postępy prac za pomo...
Mono to otwarta implementacja środowiska .NET tworzona przez Novella – działa na linuxach i mac os. Z ostatnich wiadomości: Microsoft obiecał, że nigdy nie będzie ścigał projektu mono o licencję, można przeczytać o tym na blogu Miguela, to może umocnić pozycję tego projektu, do tej pory niespecjalnie było wiadomo czy MSFT pozwie novella i zmusi do zamknięcia, więc raczej nie pod...
W jaki sposób infrastruktura przechowująca stan usług może być skalowana i zabezpieczona przed awarią? Odpowiedzią na to pytania jest wzorzec Service Grid. Jego nazwa może być nieco myląca. Nie ma on bowiem nic wspólnego z gridami oraz raczej niewiele z usługami w klasycznym pojęciu SOA. Service Grid jest nazwą dla podejścia, w którym wiele instancji infrastruktury przechowującej stan usług jest równolegle aktywnych (zwykle na wilu fizycznych maszynach). Instancje te współdzielą między sobą informacje d...
Programowanie rozproszone 5638 dni, 19 godzin, 27 minut temu 36 źrodło rozwiń
Wszyscy jesteśmy przyzwyczajeni do pisania i czytania od lewej do prawej. Przyjmujemy jako pewnik, że menu Start znajduje się w lewym dolnym rogu ekranu, krzyżyk służący do zamykania okna w prawym górnym rogu okna, a krzyżyki służące do rozwijania węzłów w drzewie umieszczane są z lewej strony węzłów itd. Dlaczego o tym piszę? Niedawno zajmowałem się przystosowaniem aplikacji WWW do kultur o orientacji od prawej do lewej. Na warsztat wziąłem kulturę hebrajską. Zainstalowałem odpowiedni pakiet do Windows ...
Artykuł omawiający przykładową implementację ONP (Odwrotna Notacja Polskia) w C#.
Jest to wzorzec z grupy porządkujących logiczny warstwy inwentarza (?) [inventory] usług. Pozostałe dwa z tej grupy to Entity Abstraction i Process Abstraction. Wszystkie trzy wzorce pomagają zidentyfikować różne grupy odpowiedzialności w "kandydatach na usługi". Skutkuje to wydzieleniem współnych zakresów odpowiedzialności do nowych usług lub łączeniem usług odpowiadających za ten sam aspekt rozwiązania. Utility Abstraction zajmuje się konkretnie funkcjonalnością wykorzystywaną we wszystkich fragm...
Programowanie rozproszone 5639 dni, 2 godziny, 25 minut temu 32 źrodło rozwiń
W poprzednim odcinku pokazaliśmy sobie jak możemy stworzyć animacje w WPFie za pomocą C#. Dziś zobaczymy jak można to zrobić przy użyciu deklaratywnego języka XAML.EventTrigger i Stroyboard Przy okazji omawiania triggerów, wspomniałem o EventTriggerach i ich zastosowaniu do animacji. Zobaczmy mały przykład jak zdefiniujemy dany trigger oraz Stroyboard.
W jaki sposób rozwiązanie oparte o usługi może dostarczyć interaktywny interfejs użytkownika? Rozwiązaniem jest specjalna usługa Mediatora, która jest umieszczana pomiędzy kodem interfejsu użytkownika, a rzeczywistą usługą dostarczającą funkcjonalności biznesowej. Mediator jest odpowiedzialny za dostarczanie użytkownikowi informacji o stanie zainicjowanego przez niego procesu oraz o wszelkich zdarzeniach występujących w trakcie jego działania. Mediator może być zrealizowany na dwa sposoby: jako sp...
Programowanie rozproszone 5639 dni, 2 godziny, 25 minut temu 40 źrodło rozwiń
W czerwcu opublikowano nową wersję WPF Toolkit: http://wpf.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=29117 ...
Wiele razy już w przeciągu ostatnich 2-3 lat szukałem jakiejś porządnej biblioteki implementującej podstawowe algorytmy z algebry liniowej i ogólnie z matematyki. Wbrew pozorom znalezienie tychże dla platformy .NET nie jest takie trywialne.. Po odpytaniu google o jakikolwiek silnik matematyczny natrafiamy na cenioną open sourcową bibliotekę GSL. Z mojego punktu widzenia ma ona jedną wadę: jest mocno nastawianona na środowisko Linuksowe. O ile istnieją wersje przeportowane na system Win32 (nie mówię tutaj...
Natknąłem się na kolejną ciekawą parę wzorców. W odróżnieniu od poprzednio opisywanej, tym razem para ma charakter dwóch konkurencyjnych rozwiązań tego samego problemu. To dla mnie interesująca nowość: do tej pory wzorce kojarzyły mi się z podejściem: problem - rozwiązanie (+ konsekwencje). W tym wypadku problem ma dwa równorzędne rozwiązania (przynajmniej tak wynika z lektury rozdziałów). No i wydaje mi się, że z tą równorzędnością jest problem... Direct Authentication zakłada, że każda usługa przech...
Programowanie rozproszone 5640 dni, 13 godzin, 11 minut temu 29 źrodło rozwiń
Chyba każdy, kto pisał kiedykolwiek aplikacje wielowątkowe, które swoje wyniki prezentowały na kontrolkach WinForms spotkał się z następującym wyjątkiem: System.InvalidOperationException occurred, Message="Cross-thread operation not valid: Control 'MainForm' accessed from a thread other than the thread it was created on.", Source="System.Windows.Forms" Powyższy wyjątek pojawia się, gdy chcemy zmodyfikować zawartość kontrolki z innego wątku, niż ona została wytworzona. W prostszych słowach można powiedz...
W jaki sposób usługa bezstanowa może brać udział w interakcjach wymagających przechowywania stanu? Rozwiązaniem (jednym z wielu możliwych) jest przesyłanie informacji o stanie w wymienianych przez usługę komunikatach. Tradycyjne rozwiązanie problemu polega na przechowywaniu stanu w instancji usługi. Jego słabą stroną jest blokowanie zasobów serwera (głównie pamięci) przez tymczasowo nieaktywne instancji usługi czekające na dalszy ciąg interakcji. Jeśli nie możemy zrezygnować z przechowywania stanu ...
Programowanie rozproszone 5642 dni, 3 minuty temu 24 źrodło rozwiń
Niedawno podczas koleżeńskiej konserwacji wypłynął nam temat pantoflarstwa, czyli bezwarunkowej podległości osobnika płci męskiej pod swego żeńskiego w życiu partnera. Swoją Panią. I nieuchronnie już wówczas do głowy napłynęła mi myśl, jak taką sytuację można doskonale zamodelować przy użyciu PostSharp – godnego uwagi darmowego narzędzia do programowania aspektowego w .NET. Przysiadłem na chwilę, ściągnąłem Post#, zaimplementowałem minidemko i je niniejszym prezentuj...
Postanowiłem robić notatki z książki. Może kogoś zachęcą lub zniechęcą do czytania. Celem wzorca Service Facade jest zmniejszenie powiązania między kontraktem usługi, a jej logiką. Oczywiście logiczne powiązanie logiki do kontraktu jest zjawiskiem jak najbardziej pozytywnym (powiązanie odwrotne jest negatywne, skutkuje zwykle wyciekiem technicznych szczegółów logiki do kontraktu i często jest wynikiem automagicznego generowania WSDL-a z kodu). Czasami jednak zmniejszenie stopnia powiązania logiki do k...
Programowanie rozproszone 5642 dni, 17 godzin, 37 minut temu 46 źrodło rozwiń
To właściwie dwa wzorce: Capability Composition oraz Capability Recomposition. Pierwszy z nich rozwiązuje problem usługi, która w celu wykonania swojego zadania potrzebueje logiki, która nie mieści się w jej zakresie odpowiedzialności. Aby problem rozwiązać, można poszerzyć zakres odpowiedzialności usługi, jednak prowadzi to do duplikacji logiki. Innym, lepszym i poprawnym, rozwiązaniem jest włączenie wywołania innej usługi jako elementu realizacji logiki tej pierwszej. Właściwie wydaje się to zup...
Programowanie rozproszone 5643 dni, 7 godzin, 20 minut temu 16 źrodło rozwiń
Kolejny odcinek o Reflectorze i MVC, tym razem opowieść spod znaku "przecież to NIE MOŻE nie działać!". Oczywiście bezlitosna rzeczywistość twierdziła inaczej i jak zwykle w takich wypadkach bywa – to ona była górą. Zobaczmy cóż takiego się stało... Jak zwykle dla uproszczenia stworzę bezsensowny projekcik specjalnie pod ten scenariusz, aby każdy mógł w prosty sposób odtworzyć cały proces. Praktyki stosowane podczas implementacji wcale nie muszą być godne naśladowan...
Nazewnictwo związane z Visual Studio(i systemami związanymi) postanowiło się trochę zmieniać wraz z wypuszczaniem kolejnych wersji, co wprowadzało lekki chaos. Sam miałem problemy ze zrozumieniem co dokładnie kryje się pod nazwami takimi jak Visual Studio Team System, Visual Studio Team Suite, Team Foundation Server, jakie są między nimi różnice i jakich funkcjonalności dostarczają poszczególne edycje Visual Studio… Z moich rozmów ze znajomymi wynika, że nie tylko ja miałem ten problem.
Domyślnie aplikacja konsolowa w .Net CF w momencie działąnia programu pokazuje WaitCursor. Można go ukryć na dwa sposoby. Pierwszy to wywołanie metody SetCursor z coredll.dll. [DllImport("coredll.dll")] public static externIntPtr SetCursor(IntPtr hCursor); //wywołanie IntPtr hOldCursor = SetCursor(IntPtr.Zero); Drugim rozwiązaniem jest dodanie do projektu referencji System.Windows.Forms (!!!) oraz przypisanie bieżącemu kursorowi domyślny: Cursor.Current = Cursors.Default; Tagi: .Net CF, C#,...
Mobile development 5644 dni, 7 godzin, 22 minuty temu 35 źrodło rozwiń
Chyba każdy kto próbował tworzyć "programistycznie" dokumenty docx (z wykorzystaniem OpenXML Format SDK lub bez SDK) na pewno spotkał się z problemem, że nie wiadomo jakich elementów użyć i jak je poustawiać, by uzyskać oczekiwany efekt. Niestety w dokumentacji opisane są co oznaczają poszczególne elementy, ale brakuje przykładów lub dokładniejszych opisów ich wykorzystania. Na szczęście jest pewna pomoc, którą można wykorzystać. Przypomnijmy sobie jak zbudowany jest oparty o format Open XML? ...