W poprzednich wpisach opisałem ogólne zasady metodyki Scrum, przedstawiłem sposób instalacji i konfiguracji - TFS. W tym wpisie pokażę podstawowe zasady jak połączyć teorię z praktyką. Podobnie jak w poprzednich wpisach bazował będę na Team Foundation Server 11 DP, konieczne również będzie Visual Studio 11 DP.
W kilku najbliższych postach postaram się przybliżyć ideę zarządzania projektem w metodyce Scrum przy pomocy Team Foundation Server (TFS). W tym poście opiszę zasady i cechy jakimi charakteryzuje się SCRUM. W kolejnych przedstawię jak TFS może nam pomóc w prowadzeniu projektu w tej metodyce. Ponieważ, mimo posiadanego doświadczenia w niej nie czuję się ekspertem będę bardzo rad z każdego, nawet najbardziej krytycznego komentarza, który pozwoli udoskonalić mi te wpisy.
Storyboardy są bardzo wdzięcznym mechanizmem animacji do umieszczania w kodzie XAML. Attached properties, definiowanie targetu na podstawie nazwy obiektu… Szybko, sprawnie i przyjemnie. Sprawy mają się gorzej jeżeli musimy zdefiniować taką samą animację do wielu obiektów. Całkowita komplikacja następuje w momencie kiedy musimy animować obiekt dodany dynamicznie...
Silverlight 4206 dni, 47 minut temu 208 źrodło rozwiń
W ramach serii postów dotyczących Reactive Extensions przyjrzeliśmy się już problemom związanych z asynchronicznością oraz przyjrzeliśmy się bliżej kolekcjom i wzorcu obserwatora (IObserver, IObservable). W tym wpisie zobaczymy pierwszy przykład kodu wykorzystującego RX. Jak wspominałem wcześniej, w .NET 4.0 jest wbudowane pewne wsparcie dla IObserver i IObservable. Jednak są to tylko definicje wspomnianych interfejsów, aby wykorzystać pełne możliwości RX, trzeba je zainstalować i dołączyć do projektu, w...
Programowanie rozproszone 4206 dni, 47 minut temu 70 źrodło rozwiń
Wysyłam świeżo ukończoną aplikację do Marketplace. Niecierpliwie oczekuję na zakończenie procesu certyfikacji. Otrzymuję maila zatytułowanego „Windows Phone Marketplace submission notification”. Tak! To jest wiadomość od Mircosoftu! Otwieram wiadomość i pośpiesznie szukam napisu „Congratulations!”, ale… nie ma! Zamiast tego „We were unable to cert..."...
Mobile development 4206 dni, 47 minut temu 125 źrodło rozwiń
No właśnie, tak naprawdę dlaczego? Dla sławy, pieniędzy, lasek, szybkich samochodów? Sweterków w romby, okularów, flanelowych koszul? Czy może jeszcze z jakichś innych powodów?
Aby móc korzystać z rozszerzeń RX należy najpierw je pobrać i zainstalować. Przed przeczytaniem tego posta, koniecznie należy zapoznać się z interfejsami IObservable oraz IObserver – prezentowałem je w ostatnim wpisie. Po instalacji dodajemy referencję do System.Reactive: RX dodaje metodę ToObservable konwertującą kolekcję do IObservable, interfejsu który wspiera wzorzec obserwator. Napiszmy przykładowy obserwator:class SampleObserver : IObserver
Programowanie rozproszone 4206 dni, 8 godzin, 41 minut temu 115 źrodło rozwiń
Autor: [ten post jest częścią mojego minicyklu o testach, pełna lista postów: tutaj] Po dość długiej przerwie wracam do tematu testów jednostkowych. Kombek zainicjuję krótkim zahaczeniem o mocki, które opisałem w poprzednim poście cyklu. Poruszyć chcę dzisiaj dwie kwestie. Kwestia 1: terminologia Niedawno na blogu Piotra Zielińskiego pojawił się post opisujący różnice pomiędzy terminami określającymi to co ja rozumiem przez "mock". Przypomniało mi to czasy, gdy starałem się zgłębiać definicje skrywając...
Architektura 4206 dni, 8 godzin, 41 minut temu 185 źrodło rozwiń
Z serii: artykuły dla zielonych, może komuś pomoże zrozumieć czym są interfejsy w technologii .NET
W języku c# obiekt, którego zasobami chcemy sami zarządzać, powinien implementować interfejs IDisposable. Sporo osób aby zwolnić zasoby pisze następujący kod:publicclass MyClass : IDisposable { #region IDisposable Memberspublicvoid Dispose() { // zwalnianie zasobow } #endregion } Interfejs niestety wymusza nam tylko implementację metody Dispose. Powyższe rozwiązanie jest zdecydowanie nieprawidłowe. Zanim jednak przejdę do omawia co w kodzie jest niepoprawnego, podam prawidłową ...
Od początków istnienia Internetu, jedną z jego głównych funkcji było zadawanie pytań odpowiednio sprofilowanemu gronu słuchaczy – np. grupom dyskusyjnym Usenetu – i otrzymywanie na nie odpowiedzi. Narzędzia i sposoby komunikacji się zmieniają (mamy teraz fora, strony typu StackExchange, a nawet serwisy społecznościowe), ale ich przydatność w rozwiązywaniu programistycznych problemów pozostaje co najmniej niezmienna.
Jako że nie dawno przedstawiłem na spotkaniu Łódzkiej grupy profesjonalistów IT & .NET prezentację poświęconą „Wprowadzenie do Reactive Extensions (RX) dla .NET” (patrz informacja: Zapraszam na prezentację: "Wstęp do Reactive Extensions dla .NET (RX)" oraz Prezentacja i kod ze spotkania pt.: "Wprowadzenie do Reactive Extensions (RX) dla .NET" [PL]). Postanowiłem czytelnikom bloga „Programowanie i Technologie” również przybliżyć temat Reactive Extensions, więc jeżeli zdarzyło Ci się tworzyć aplikacje...
Programowanie rozproszone 4207 dni, 3 godziny, 11 minut temu 154 źrodło rozwiń
Dzisiaj kolejny przykład z życia wzięty, krótszy ale miejmy nadzieję, przydatny. Zmieniłem na swoim komputerze nazwę grupy roboczej, do której należę. Po uruchomieniu Visual Studio i próbie checkoutu pliku okazało się, że pojawił mi się komunikat o błędzie:A local workspace is required. Workspace NazwaGrupyRoboczej;Nazwa użytkownika does not reside on this computer.
W ramach kontynuacji tematyki związanej z Reactive Extensions (RX)przyjrzyjmy się elementom, które stoją u podstaw ich działania, czyli kolekcjom i wzorcowi Obserwator. W poprzedniej części artykułu poznaliśmy cel przyświecającym twórcom Reactive Extensions (RX) jak i skąd można pobrać wspomniane rozszerzenia. Skoro już mamy zainstalowane Reactive Extensions (Rx), zacznijmy przyglądać się jego możliwością.Jak wcześniej zostało wspomniane, Rx upraszcza programowanie asynchroniczne, pozwala na łatwe filtr...
Programowanie rozproszone 4207 dni, 3 godziny, 11 minut temu 124 źrodło rozwiń
Tak jak zapowiedziałem w poprzednim wpisie, część druga mojej opowieści o Scrum i TFS będzie opisywała instalację oraz wstępną konfigurację Team Foundation Server. Po tych wpisach powinno być wiadomo co chcemy robić oraz czym, część trzecia przedstawi jak.Przykłady będą przedstawione na podstawie Team Foundation Server 11 Developer Preview.
Poprawnie zaprojektowana aplikacja powinna weryfikować dane w każdej warstwie systemu. Oczywiście najważniejszym miejscem jest warstwa biznesowa ale dobrym zwyczajem jest walidacja również w warstwie prezentacji. W idealnym interfejsie użytkownik nie jest w stanie wprowadzić błędnych danych. Podstawowym przykładem są pola edycyjne w których powinno się wpisać np. ilość sprzedanego produktu. Użytkownik nie powinien mieć możliwości wprowadzenia tekstu w takie pole. Zacznijmy od prostej sprawy – akceptacja...
Tym razem wpis będzie poświęcony dodatkowej czynności, nie związanej bezpośrednio ze Scrum albo TFS. Pokażę prosty sposób w jaki można udostępnić swój serwer nie posiadając stałego łącza IP, łącząc się przez router. Nie uważam, że jest to opcja najlepsza, ani najbezpieczniejsza, ale jest prosta i może być punktem wyjściowym do lepszej konfiguracji.Jak zrobić, żeby można było się połączyć z serwerem gdy nie posiada on stałego numer IP? Można to zrobić przy pommechanizmu DynDNS.
Dzisiaj kolejny krótki wpis, ponownie dotyczący NHibernate'a. Jak pewnie zdążyliście zauważyć jest to coś co ostatnio sprawia mi najwięcej problemów. Próbując pobrać rekordy przy pomocy zwykłego selecta zawężonego o kryteria w NHibernate, otrzymałem zaskakujący błąd "Cannot update a parent row: a foreign key constraint fails"
Bazy danych i XML 4207 dni, 10 godzin, 45 minut temu 52 źrodło rozwiń
Czasem pracując z jednym narzędziem przez dłuższy czas, człowiek zaczyna szukać czegoś innego. Nie musi to być od razu całkowita zmiana narzędzia na inne, alternatywne, a wystarczy chociażby inny wygląd. Najprostszym przykładem jest tapeta na pulpicie. Tak wiem – tapeta na pulpicie zmniejsza wydajność, trzeba ją zatem usunąć! Ja nie jestem aż tak konserwatywny i preferuję mieć co nieco jako tło pulpitu. Innym przykładem może być zmiana wyglądu Visual Studio… Nie da się ukryć, że Emulator WP7 jest ubogim ...
Mobile development 4208 dni, 11 godzin, 44 minuty temu 132 źrodło rozwiń
Słów kilka na temat tego, co złego może kryć za sobą ta pozornie niewinna praktyka.