REKLAMA Jeżeli jesteś zainteresowany/a reklamą swoich produktów w naszym magazynie

Wielkość: px
Rozpocząć pokaz od strony:

Download "REKLAMA Jeżeli jesteś zainteresowany/a reklamą swoich produktów w naszym magazynie"

Transkrypt

1

2 REKLAMA Jeżeli jesteś zainteresowany/a reklamą swoich produktów w naszym magazynie Jeżeli jesteś zainteresowany/a wypromowaniem swojej marki wśród specjalistów IT Jeżeli szukasz klientów lub pracowników Zareklamuj się u nas! Posiadamy bazę 90 tysięcy specjalistów z różnych działów IT! W celu uzyskania oferty reklamowej skontaktuj się z nami: sdjpl@sdjournal.pl tel

3 4 Zastosowanie SCRUM w wytwarzaniu aplikacji mobilnych Karol Mioduszewski Stwierdzenie, że aplikacje mobilne to przyszłość, na stałe wpisało się we wszystkie oceny i analizy rynku IT. Podobnie jak ogólnie powtarzana prognoza dotyczącą Chin, które mają zostać pierwszą gospodarką świata. W obu tych przypadkach sama świadomość nie wystarczy, ani żeby odnieść sukces, ani utrzymać się na powierzchni. Idzie nowe, a od nas zależy czy w porę podejmiemy wyzwanie. W samym USA liczba użytkowników smartfonów wzrosła z 60.2 mln do 93.4 w przeciągu 3 lat ( ). Przy tym trendzie prognozuje się, że w roku 2015 będzie ich około mln, co w porównaniu do roku 2011 daje ponad 50% wzrost! 10 WINDOWS PHONE 8 ODKODOWANY Michał Bakalarczyk Dla osób, które chcą rozpocząć programowanie na platformę Windows Phone 8 już same wymagania dotyczące środowiska pracy mogą stanowić sporą barierę, a to dopiero początek wyzwań. Podpowiadamy, jak sobie z nimi radzić i stworzyć prostą aplikację Firefox OS - czy przełamie duopol ios i Android? Piotr Wirkus Zdalne aplikacje mobilne rozwiązanie problemu wieloplatformowości? Marcin Strażyński, Jacek Chmielewski Różnorodność mobilnych systemów operacyjnych i urządzeń powoduje, że każdy twórca aplikacji mobilnych staje przed dylematem na jakie platformy przygotować aplikację aby dotrzeć do jak największej grupy użytkowników, a jednocześnie nie rozbić budżetu. Na szczęście wybór między wieloma aplikacjami natywnymi, a uniwersalną aplikacją webową to nie jedyna opcja! 27 Aplikacje mobilne przyszłość dla programistów Kamil Brzeziński 28 Grafika 3D na urządzeniach przenośnych z systemem Android Jacek Matulewski Celem artykułu jest łagodne wprowadzenie do tematu projektowania gier dla systemu Android korzystających z grafiki trójwymiarowej OpenGL ES. 37 Nie sztuka wyprodukować,ale sztuka sprzedać MICHAŁ JANKOWSKI Tworzenie aplikacji mobilnych przestało już być zajęciem zarezerwowanym tylko dla wybranych. 39 User Experience - sztuka przewidywania jak myśli użytkownik Marek Kulesza Obecnie, gdy na rynek trafiają setki nowych aplikacji dziennie, warto pamiętać, że każdy produkt musi być użyteczny, rozwiązując faktyczny problem użytkowników. 44 Konkursy dźwignią rozwoju dla start-upów Małgorzata Korowaj Przełomowy pomysł, koncepcja wejścia na rynek, przemyślana misja i wizja rozwoju, badania konkurencji, ciekawe opakowanie i ogromny zapał w towarzystwie funduszy, które wystarczą na wprowadzenie idei w życie mogłyby stanowić idealną kompozycję składników dla każdego start-up a. 46 Kariera po szczeblach TechCampu Ponad 300 pasjonatów nowych technologii, 4 profesjonalistów na scenie i gorąca debata z udziałem krakowskim uczelni na koniec. Wszystko to w barowej atmosferze krakowskiego Lizard Kingu. Tak wyglądał 11 odcinek TechCampu: Kariera w IT bezpłatnych spotkań Akademii Unity, których patronem medialnym jest SDJ. 48 Hello, Android. Programowanie na platformę Google dla urządzeń mobilnych Ed Burnette Swego czasu firma Apple wyprodukowała serię telewizyjnych reklam, na których widzimy sylwetki ludzkie tańczące obłędnie w rytm muzyki generowanej przez ipoda. Miesięcznik Software Developer s Journal jest wydawany przez NPRACA Sp. z o.o. Redakcja: sdjpl@sdjournal.pl Kierownik produkcji: Andrzej Kuca Adres korespondencyjny: NPRACA Spółka z o.o. ul. 3 Maja 46, Nowogard, Polska Oddział w Warszawie: ul. Postępu 17 D, Warszawa, Polska Redakcja dokłada wszelkich starań, by publikowane w piśmie informacje i programy były poprawne, jednakże nie bierze odpowiedzialności za efekty wykorzystania ich; nie gwarantuje także poprawnego działania programów shareware, freeware i public domain. Wszystkie znaki firmowe zawarte w piśmie są własności odpowiednich firm. Zostały użyte wyłącznie w celach informacyjnych. Osoby zainteresowane wspópracą prosimy o kontakt: sdjpl@sdjournal.pl Skład i łamanie: Digital Concept admin@digitalconcept.pl Facebook:

4 Zastosowanie SCRUM w wytwarzaniu aplikacji mobilnych Stwierdzenie, że aplikacje mobilne to przyszłość, na stałe wpisało się we wszystkie oceny i analizy rynku IT. Podobnie jak ogólnie powtarzana prognoza dotyczącą Chin, które mają zostać pierwszą gospodarką świata. W obu tych przypadkach sama świadomość nie wystarczy, ani żeby odnieść sukces, ani utrzymać się na powierzchni. Idzie nowe, a od nas zależy czy w porę podejmiemy wyzwanie. W samym USA liczba użytkowników smartfonów wzrosła z 60.2 mln do 93.4 w przeciągu 3 lat ( ). Przy tym trendzie prognozuje się, że w roku 2015 będzie ich około mln, co w porównaniu do roku 2011 daje ponad 50% wzrost! Dowiesz się: Dlaczego SCRUM sprawdza się lepiej przy wytwarzaniu aplikacji mobilnych niż metodyki tradycyjne. Jak SCRUM sprawdza się w praktyce na przykładzie projektu. Jak pogodzić krótkie sprinty z zapewnieniem jakości dostarczanej aplikacji. Jakie narzędzia są pomocne w projektach tego typu. Dostępność to główna cecha aplikacji mobilnych. Każdy użytkownik tabletu, smartfona czy innego urządzenia opartego o mobilny OS, w każdym momencie ma dostęp do setek tysięcy (niedługo milionów) aplikacji. Kanały dystrybucji są zmonopolizowane przez gigantów z Cupertino i Mountain View, ale same sklepy rządzą się niemal zasadami idealnej konkurencji. Dlatego też jak najniższy współczynnik Time To Market (TTM) jest fundamentem sukcesu na rynku aplikacji mobilnych. To improve is to change; to be perfect is to change often W. Churchill W modelu kaskadowym (ang. waterfall) najpierw potrzeby klienta spisywane są w postaci wymagań, na podstawie których wykonuje się szacowanie kosztów oraz czasu niezbędnego do ich zaimplementowania. Następnie bazując na powyższych informacjach, przygotowuje się bardziej szczegółowy plan i po jego zaakceptowaniu możemy rozpoczynać prace związane z implementacją. Model ten jest genialny w swojej prostocie dopóki w toku prowadzonych prac nie pojawi się nieuniknione ZMIA- NA. Jeśli powstaje na początku projektu, jest wtedy duża szansa, że nie niesie za sobą poważnych konsekwencji. Z naszego doświadczenia wynika, że w dużej liczbie realizowanych projektów żądania zmian (ang. change request) Powinieneś wiedzieć: Czym są metodyki zwinnego wytwarzania oprogramowania. Jakie są podstawowe elementy procesu wytwórczego oprogramowania. pojawiają się pod koniec prac. Mają wówczas ogromny wpływ na pozostałe funkcjonalności sytemu, które również trzeba modyfikować, a wcześniej wykonane testy powtarzać lub pisać nowe odzwierciedlające zmienioną specyfikację. Obecnie utrzymywanie powiązań między artefaktami w systemie jest dużo łatwiejsze. Dzięki wsparciu narzędzi klasy ALM wiele czynności udaje się zautomatyzować, jednakże badanie analizy wpływu zmian wymaga czasem sporej wiedzy i nakładu pracy. Zmiana jest również nieodzowną składową projektów IT dotyczących aplikacji mobilnych. Wielość urządzeń, częstość zmian w OS, dynamika rozwoju możliwości urządzeń, bezpośredni feedback od klientów powodują szereg planowanych i nieplanowanych zmian, a każda z nich musi zostać umiejętnie zarządzona. Rewolucyjne podejście do zmian może zostać również przejęte z rynku gier komputerowych, gdzie obecnie bardzo popularnym modelem wdrożenia jest tzw. early access, w którym klienci końcowi płacą za dostęp do wczesnych buildów aplikacji. W zamian dostają oni możliwość współtworzenia finalnego wydania aplikacji. Zapotrzebowanie klienta końcowego i jego sugestie są bezpośrednim motorem rozwoju aplikacji. Przy takim podejściu modele kaskadowe są praktycznie bezużyteczne. Innym minusem klasycznego podejścia do wytwarzania oprogramowania, bezpośrednio powiązanym z powstawaniem żądań zmian na późnym etapie procesu wytwórczego, jest niewielkie zaangażowanie ze strony klienta/odbiorcy w proces wytwarzania. 4 3/2013

5 SCRUM W WYTWARZANIU APLIKACJI MOBILNYCH Nie uczestniczy on w procesie poza zbieraniem wymagań w początkowej fazie projektu oraz na jego końcu, gdy otrzymuje gotowy produkt do testów akceptacyjnych. W trakcie trwania tego ostatniego, szybko okazuje się, że oczekiwania klienta co do funkcjonowania systemu są zupełnie inne niż interpretacja wymagań ze strony zespołu projektowego. Pojawiają się problemy, żądania zmian, dyskusje, opóźnienia w projekcie, szukanie winnych. Lekarstwem na uniknięcie podobnych dolegliwości w projektach może być proces zwinnego wytwarzania oprogramowania Agile. Pod tym pojęciem kryją się metodyki wytwarzania oprogramowania oparte na programowaniu iteracyjnym (model przyrostowy). Generalnie metodyka nastawiona jest na osiągnięcie satysfakcji klienta poprzez szybkość wytwarzania oprogramowania. Zespół jest wielofunkcyjny oraz samoorganizujący i nie stosuje się w nim hierarchii korporacyjnej. Dokonywane są bardzo częste inspekcje wymagań i rozwiązań wraz z procesami adaptacji (zarówno specyfikacji jak i oprogramowania) przy bardzo dużym udziale klienta, a po każdej iteracji dostarczane jest działające rozwiązanie. Dzięki powyższym cechom Agile znacząco wpływa na obniżenie współczynnika TTM. Innym, bardzo ważnym czynnikiem wpływającym na sukces danej aplikacji jest możliwość używania jej na wielu systemach operacyjnych. Stąd też coraz bardziej popularne stają się platformy umożliwiające pisanie rozwiązań na wiele systemów operacyjnych jednocześnie. Case study - Cel projektu, założenia, platforma i wybrana metodyka Celem projektu było zaprojektowanie, stworzenie, przetestowanie i wdrożenie aplikacji wspierającej sprzedaż dużej międzynarodowej organizacji z branży logistycznej. Główne wymagania funkcjonalne obejmowały możliwość komunikacji za pośrednictwem sieci GSM, z serwerem SQL oraz systemem klasy ERP, a także realizowanie sprzedaży w trybie zarówno offline jak i online. Platformą wybraną do tworzenia aplikacji mobilnej została Antenna, która po raz drugi z rzędu została uznana przez firmę Gartner za Lidera w rocznych ocenach platform do tworzenia aplikacji mobilnych. Antenna umożliwia pisanie aplikacji mobilnych na kilka systemów operacyjnych jednocześnie. W naszym przypadku, z uwagi na specyfikę klienta był to Windows Mobile 6.5 (klient dysponował dużą liczbą urządzeń z właśnie tym systemem operacyjnym) oraz w późniejszej perspektywie - Android. Dlatego też bardzo ważnym założeniem projektu była płynna możliwość przejścia z używanych Rysunek 1. Sprint urządzeń z systemem Windows Mobile na urządzenia z systemem Android, bez konieczności dokonywania zmian w oprogramowaniu lub tworzenia go od podstaw. Spośród dostępnych metodyk zwinnego prowadzenia projektów wybrany został SCRUM. Cały projekt został podzielony na dziewięć sprintów, przy czym trwały one maksymalnie do czterech tygodni. Przed rozpoczęciem projektu istniały wymagania spisane w postaci dokumentów, jednakże poziom ich szczegółowości był na tyle ogólny, że można uznać, że ich nie było, np.: system musi posiadać możliwość monitorowania. Na początku pracy nad produktem, przy bardzo dużym zaangażowaniu zespołu klienta, została spisana lista wymagań użytkownika w formie historyjek (ang. User Stories). Następnie właściciel produktu (ang. Product Owner) nadał im priorytet i ustalił wraz z zespołem cele pierwszego sprintu oraz zdefiniował rejestr wymagań (ang. Product Backlog), czas realizacji, pracochłonność wraz z listą zadań (ang. Sprint Backlog), złożoność oraz ryzyka dla poszczególnych zadań. Po tych ustaleniach następowała realizacja przebiegu. Organizowane były codzienne spotkania (ang. Daily Scrum), podczas których omawiane były zadania realizowane dnia poprzedniego, napotkane problemy, jak również zadania, które miały być realizowane w dniu spotkania. Na pierwszym rysunku został zilustrowany przebieg przykładowego Sprintu, należy zwrócić uwagę, że trwa on relatywnie długo (30 dni). Nad poprawną interpretacją wymagań cały czas czuwał Product Owner, lecz nie ingerował on w sposób w jaki zadania były implementowane. Członkowie zespołu sami dokonywali wyboru zadań, które chcą realizować. Jedyną wytyczną była ich kolejność realizacyjna wynikająca bezpośrednio z priorytetu zadania korelująca z priorytetem User Stories. Przebiegi kończyły się prezentacją wyników pracy zespołu dla klienta w postaci Sprint Review, w których uczestniczyli (nie zawsze osobiście, również przez dostępne 5

6 formy komunikacji) wszyscy zainteresowani projektem. Podczas przeglądu każdy uczestnik spotkania mógł zabrać głos i wyrazić swoją opinię o produkcie. Pozwoliło to bardzo szybko zidentyfikować potrzeby dokonania zmian, tak aby produkt końcowy spełniał wszystkie założenia. Dzięki temu można było skupić się na dostarczaniu kolejnych coraz bardziej dopracowanych funkcjonalności systemu. Tradycyjny scrum board lub kanban board może zostać odtworzony w narzędziu (Rally, JIRA Grasshopper, SpiraTeam). W naszym przypadku członkowie zespołu projektowego byli agile owymi konserwatystami. Rysunek 2. SCRUM Board Narzędzia Głównym narzędziem w naszym projekcie była tablica scrum (ang. scrum task board). Przykładowy scrum board został zobrazowany na rysunku 2, tablica w projekcie miała identyczne kolumny. Większość członków zespołu pracowała w jednym pomieszczeniu, więc posiadanie takiej żywej tablicy było bardzo uzasadnione. Dzięki scrum boardowi oraz karteczkom samoprzylepnym łatwiej było planować pracę, identyfikować problemy i dynamicznie żonglować zadaniami, a sam wygląd tablicy motywował dodatkowo do pracy. Wytwarzanie i testy zostały wsparte kilkoma niezbędnymi narzędziami, które umożliwiły raportowanie i dokumentację postępów prac. Filarami tego środowiska były Inflectra SpiraTeam w połączeniu z Microsoft Team Foundation Server (wchodzi w skład pakietu Microsoft Visual Studio). W SpiraTeam utrzymywane były wymagania oraz powiązane z nimi manualne przypadki testowe, z których można budować scenariusze. Wykonywane były testy manualne i automatyczne, a wszelkie rozbieżności z wyniku testu raportowane były w postaci różnych typów incydentów. Moduł incydentów SpiraTeam został zintegrowany z odpowiadającym modułem MS TFS. Ta dosyć prosta integracja (darmowy plugin dostarczony przez Inflectrę) dała zespołowi wiele korzyści. Programiści nadal pracowali w znanym im środowisku plat- Rysunek 3. Sikuli 6 3/2013

7 SCRUM W WYTWARZANIU APLIKACJI MOBILNYCH formy Visual Studio, a prace związane z zapewnieniem jakości realizowane były w narzędziu bardziej skoncentrowanym na QA. Wymiana informacji w czasie rzeczywistym, umożliwia szybką reakcję, a rozszerzone możliwości śledzenia (incydent -> przebieg testowy -> wymaganie) dają lepszy pogląd na to jaka jest geneza i wpływ na bieżący sprint. Jednym z założeń pracy w takiej metodyce może być tworzenie testów automatycznych jeszcze przed powstaniem kodu tzw. TDD (ang. Test Driven Development). Wprowadzenie TDD narzuca duże uporządkowanie zarówno w testach jak i samym kodzie. Testy winny być proste oraz przez cały czas powinny utrzymywać powiązanie z kodem w celu szybkiej identyfikacji i refaktoringu. SCRUM, jak i inne metodyki zwinne, przewiduje bardzo dużą liczbę zmian w trakcie trwania całego projektu, jak i w poszczególnych sprintach. Są one nawet pożądane, a ich brak może być niepokojący, ponieważ prawdopodobnie oznacza brak zaangażowania, czy to ze strony klienta, czy zespołu. To z kolei może prowadzić do powstania niekompletnego lub działającego niezgodnie z oczekiwaniami produktu końcowego. W takim podejściu za każdym razem, gdy wprowadzana jest zmiana, konieczne jest powtórzenie wszystkich testów od samego początku. Tak, aby zweryfikować, że wprowadzone modyfikacje działają zgodnie z założeniem i czy nie została przy tej okazji zaimplementowana pomyłka, mogąca mieć wpływ na działanie pozostałych funkcjonalności. W wielu projektach stosuje się również testy jednostkowe jako pierwszą linię weryfikacji poprawności zaimplementowanego kodu. Z uwagi na zastosowaną platformę, posiadającą swój własny język programowania, takie podejście nie do końca było możliwe do zrealizowania. Założenia zostały zmodyfikowane i wdrożone zostało rozwiązanie polegające na napisaniu w pierwszej kolejności testów automatycznych GUI do już istniejącego kodu, pokrywających User Stories, oraz stworzenie z nich stale aktualizowanej bazy, możliwej do uruchomienia w dowolnym momencie. Automatyzacja natywnych aplikacji mobilnych nie należy do najłatwiejszych, a dodatkowo narzucony przez klienta system Windows Mobile 6.5 nie jest wspierany przez wiele narzędzi do automatyzacji. Do celów zautomatyzowania testów użyliśmy narzędzia open-source Sikuli Script (rysunek 3) w połączeniu z MyMobiler (rysunek 4). Sikuli jest narzędziem opierającym się na rozpoznawaniu elementów GUI. Działa na zasadzie wykonywania zrzutów ekranów, a następnie rozpoznawaniu ich podczas odtwarzania. Jest w stanie zapamiętywać wprowadzone dane z klawiatury w czasie nagrywania. Niestety również to narzędzie nie działa bezpośrednio na urządzeniu mobilnym. Aby je wykorzystać w praktyce niezbędny był MyMobiler. Aplikacja ta służy do wyświetlania i kontrolowania tego, co dzieje się na urządzeniu mobilnym bezpośrednio na monitorze komputera za pośrednictwem połączenia USB lub WiFi. MyMobiler działa zarówno z Windows Mobile jak i z Android em. Dodatkowe funkcje, które bardzo przydały się podczas prac w projekcie, to możliwość wykonywania zrzutów ekranów, nagrywania wideo oraz możliwość kopiowania/wycinania/wklejania tekstu pomiędzy urządzeniem a PC. Taki zestaw narzędziowy zapewnił nam możliwość powtarzania podstawowych scenariuszy testów funkcjonalnych automatycznie, w dowolnym momencie, bez konieczności wykonywania wszystkich testów ręcznie. Pomogło to zaoszczędzić czas, który mógł być wykorzystany przy realizacji innych aktywności. Niestety samo narzędzie Sikuli nie zapewnia możliwości budowania skomplikowanych logicznie testów. Dlatego też często operowaliśmy na przygotowanym wcześniej i nagranym w narzędziu zestawie danych, a ich zwalnianie do ponownego użycia odbywało się za pośrednictwem skryptu bazodanowego. Narzędzie posiada przejrzysty interfejs, dzięki któremu dostosowanie automatu do powstałych zmian było dość proste, ale wymagało czasu. Z uwagi na wspomniane wcześniej ograniczenia, część testów wymagających większej ilości akcji i zależności pomiędzy danymi, wykonywana była ręcznie. Ostatecznie Rysunek 4. MyMobiler 7

8 jednak był to proces mniej czasochłonny niż wykonywanie wszystkich testów manualnie. Testowanie W SCRUM nie ma dedykowanego zespołu testowego - testują wszyscy jego członkowie. Nie istnieje również przekazywanie oprogramowania do testów w jakimś konkretnym, ustalonym punkcie w czasie. Testy wykonywane są w sposób ciągły. W naszym projekcie nagięliśmy w pewnym stopniu tę zasadę i część zespołu zajmowała się w większym zakresie zadaniami związanymi z zapewnianiem jakości. Taka interpretacja SCRUM została podyktowana przez cechy indywidualne członków zespołu. Jednakże nie doprowadziliśmy do powstania efektu tzw. mini waterfalli, gdzie w sprintach tak naprawdę wykonuje się zadania zgodnie z podejściem kaskadowym. Oprócz wspomnianych wcześniej testów automatycznych, wykonywane były testy eksploracyjne, które miały na celu znalezienie ewentualnych nieprawidłowości. Czyli specyficzne sytuacje, nie zdarzające się w przyjętym procesie biznesowym, a mogące pojawić się w rzeczywistości, gdy użytkownik będzie chciał zrealizować coś na skróty lub wykona jakąś operację przez przypadek. Znalezione incydenty były weryfikowane i potwierdzane, a następnie w razie potrzeby, zgłaszane w systemie SpiraTeam, skąd trafiały automatycznie do MS TFS oraz na scrum board. W przypadku zidentyfikowania defektu, którego naprawa nie zajmowała dużo czasu, był on naprawiany natychmiast. Poprawka była testowana zaraz po naprawie, a w razie potrzeby uruchamiane były testy automatyczne, weryfikujące czy implementacja poprawki nie ma wpływu na pozostałe funkcjonalności. W swojej codziennej pracy członkowie zespołu skupiali się przede wszystkim na poprawianiu znalezionych bugów. W następnej kolejności przeprowadzany był code review wraz z krótkim demo funkcjonowania stworzonego kodu w praktyce. Ostatnim z codziennych zadań było tworzenie nowego kodu. Źródła Rysunek 5. GC Heap Viewer 8 3/2013

9 SCRUM W WYTWARZANIU APLIKACJI MOBILNYCH Takie podejście miało szereg plusów. Dzięki code review i sesji demo, cały zespół mógł zajrzeć do wnętrza aplikacji oraz poznać nowo tworzone funkcjonalności, wychwycić ewentualne błędy lub nieprawidłową interpretację wymagań. Natomiast zastosowanie automatyzacji testów pozwoliło zaoszczędzić czas na sprawdzanie podstawowych funkcjonalności systemu i skupić się na bardziej wyszukanych testach eksploracyjnych. Ciekawostką wartą wspomnienia jest sytuacja, na jaką natknęliśmy się podczas testowania aplikacji na systemie Windows Mobile 6.5. System na pewnym etapie projektu zachowywał się dość niestabilnie. Niestabilność ta polegała na tym, że aplikacja wyłączała się po jakimś czasie użytkowania, nie pozostawiając w logach żadnych informacji. Do zidentyfikowania przyczyny problemu użyliśmy narzędzi PowerToys.NET Compact Framework 3.5, a w szczególności Remote Performance Monitor and GC Heap Viewer (rysunek 5). GC Heap Viewer pobiera w czasie rzeczywistym dane z liczników, m.in. aktywności Garbage Collectora z działającej aplikacji NETCF. GC Heap Viewer pozwala podglądać zarządzany stos w czasie działania aplikacji i wyświetlać referencje oraz porównywać wiele zrzutów w celu znalezienia wycieku pamięci. Przyczyną okazał się wyciek pamięci spowodowany nieprawidłowym zamykaniem pewnych elementów aplikacji, co w trakcie użytkowania powodowało liniowy przyrost zużycia pamięci urządzenia, a efektem końcowym był tak zwany crash. Kiedy możemy zakończyć testowanie w sprincie, a kiedy w całym projekcie? Jeśli chodzi o SCRUM jest to bardzo trudne pytanie, na które musieliśmy sobie odpowiedzieć. Wnioski jakie nam się nasunęły są dosyć łatwe do odgadnięcia, niestety dość trudne do przyswojenia dla sponsora projektu. Testy muszą trwać od samego początku przedsięwzięcia jakim jest zaprojektowanie i wdrożenie aplikacji mobilnej, do samego końca okresu zakontraktowanego utrzymania. Podsumowanie W naszym przypadku SCRUM okazał się strzałem w dziesiątkę. Członkowie zespołu mieli wcześniej doświadczenia przy tworzeniu podobnych systemów w modelu kaskadowym, w którym produkt dostarczany był do wglądu na końcu procesu wytwórczego. Jak łatwo się domyślić, prawie zawsze spotykało się to z obiekcjami zamawiającego. Koniec projektu kojarzył się z gorączkową pracą po godzinach. SCRUM oraz inne metodyki zwinne mają bardzo istotną cechę w porównaniu z tradycyjnymi metodami. Jednym z ich filarów jest człowiek-specjalista, który posiada wiedzę jak zrealizować trudne zadania. Drugim filarem jest drużyna, która sama napędza się do działania i skutecznie przeciwdziała problemom. Trzecim filarem jest Scrum Master, który czuwa by drużyna pracowała efektywnie i stara się usunąć wszystkie bariery utrudniające wykonanie zadań, a także trzyma w ryzach czas pracy poszczególnych członków zespołu (w ekstremalnych przypadkach po przepracowanych 8 godzinach Scrum Master wyłącza monitory z kontaktu). Metodyki zwinne opierają się na interakcjach międzyludzkich nie tylko w relacji Scrum Master i drużyna, ale także dzięki relatywnie krótkim sprintom, w relacjach dostawca zamawiający. Każdy sprint wiąże się z dostawą, co daje klientowi pogląd jak wyglądać będzie aplikacja, a także daje mu poczucie, że ma kontrolę nad tym za co płaci. Wliczając aplikacje nie utrzymywane, w dniu oddania tego artykułu w amerykańskim itunes jest łącznie aplikacji ( aplikacji jest aktywnych). Autor zdaje sobie sprawę, że gros tej liczby to małe aplikacyjki, które często napisane są przez amatorów. Gust i zapotrzebowanie użytkowników zmieniają się, ponieważ wiadomo, że apetyt rośnie w miarę jedzenia. Często powtarzane zdanie There s an app for that, za jakiś czas może nie odzwierciedlać stanu bieżącego. Użytkownicy będą oczekiwali narzędzi spełniających wiele skomplikowanych zadań, o jakości i funkcjonalnościach takich samych jak aplikacje pudełkowe/biznesowe na desktopy. Zdaniem autora metodyki zwinne są jedynym słusznym rozwiązaniem dla zarządzania wytwarzaniem aplikacji dla środowisk mobilnych. Presja czasu, duża konkurencja, nieustający rozwój urządzeń i systemów mobilnych wymusza, aby każde wykonane zadanie przybliżało nas do celu jakim jest wydanie najlepszej aplikacji mobilnej. Karol Mioduszewski Test Manager w Soflab Technology W dziedzinie testowania oprogramowania doświadczenie zdobywał w szerokim zakresie ról: od Testera Oprogramowania, poprzez Analityka Testowego, Inżyniera Testów Wydajnościowych i Automatycznych, do Test Managera. Posiada bogatą i praktyczną wiedzę odnośnie zarządzania zespołami projektowymi, prowadzenia projektów IT oraz procesów testowych. Zdobywał ją na przestrzeni lat w wielu firmach i organizacjach międzynarodowych. Kompetencje merytoryczne w obszarze testów zdecydował się poszerzać w firmie Soflab Technology. 9

10 WINDOWS PHONE 8 ODKODOWANY Dla osób, które chcą rozpocząć programowanie na platformę Windows Phone 8 już same wymagania dotyczące środowiska pracy mogą stanowić sporą barierę, a to dopiero początek wyzwań. Podpowiadamy, jak sobie z nimi radzić i stworzyć prostą aplikację. DOWIESZ SIĘ Poznasz cykl życia aplikacji Window Phone Dowiesz się jak tworzyć aplikacje Windows Phone z wieloma widokami Dowiesz się jak tworzyć aplikacje Windows Phone z wykorzystaniem baz danych POWINIENEŚ WIEDZIEĆ Jak tworzyć interfejs w języku XAML Podstawowe informacje o bazach danych Technologię Linq Prześledźmy najpierw konieczne warunki. W przypadku WP8 Wymaganym środowiskiem jest 64 bitowy Windows 8 oraz Visual Studio w wersji minimum 2012 z doinstalowanym rozszerzeniem Windows Phone 8 SDK. Dodatkowo, ponieważ emulator WP8 jest uruchamiany jako maszyna wirtualna Hyper-V, system Windows musi być w wersji PRO, a sam komputer powinien wspierać wirtualizację oraz technologię SLAT. Mając już skonfigurowane środowisko, możemy rozpocząć programowanie. Zajmiemy się prostą aplikacją umożliwiającą przeglądanie i wyszukiwanie na liście produktów oraz podglądanie szczegółów wybranego produktu. Za bazę produktów posłuży nam lista wybranych telefonów pracujących na środowisku WP8. Dane na temat produktów będą przetrzymywane w bazie danych na telefonie. Wybór szablonu projektu Po zainstalowaniu Windows Phone 8 SDK mamy dostępnych kilka szablonów aplikacji, od których możemy zacząć pisanie kodu. Warto przejrzeć poszczególne szablony i zobaczyć jak rozwiązane są tam pewne typowe problemy (Rysunek 1). Ponieważ pierwszym widokiem dla użytkownika będzie lista wszystkich dostępnych telefonów dostępnych w aplikacji, wybieramy szablon Windows Phone Databound App: Aplikacja założona z tego szablonu zawiera dwa widoki. Listę elementów oraz widok szczegółów. Otwierając plik MainPage.xaml zobaczymy, po lewej stronie, wygenerowany widok który zmienia się wraz ze zmianami kodu strony xaml. Za dostarczenie danych dla widoku designer-a odpowiada atrybut z Listingu 1. Zawiera on przykładowe dane używane przez designer do generowania widoku. Warto aktualizować ten z przykładowymi danymi, jeśli zmieniamy format wyświetlanych Rysunek 1. Wybór szablonu projektu Listing 1. Definiowanie przykładowych danych dla widoku designera (XAML) d:datacontext="{d:designdata SampleData/MainViewModelSampleData.xaml" 10 3/2013

11 WINDOWS PHONE 8 danych. Pozwoli to, bez konieczności uruchamiania kodu, widzieć jak wyglądać będzie strona na telefonie. Cykl życia aplikacji WP8 Warto być świadomym w jaki przebiega cykl życia aplikacji w środowisku Windows Phone 8. Poniższy diagram obrazuje poszczególne stany w jakich może się znaleźć aplikacja. Po uruchomieniu aplikacji może ona zostać zamknięta przez użytkownika (Rysunek 2), ale może również zostać deaktywowana. Powodów deaktywacji jest wiele np. przełączenie się użytkownika do innej aplikacji lub rozmowa przychodząca. Dla każdego ze stanów dostępne są odpowiednie metody w obiekcie App, które umożliwiają wykonanie kodu podczas kolejnych zdarzeń: Rysunek 2. Cykl życia aplikacji Application_Launching Application_Closing Application_Activated Application_Deactivated Obiekt biznesowy Klasa, która została wygenerowana z szablonu projektu, nie odpowiada potrzebom biznesowym naszej aplikacji. W związku z tym, dodajemy do projektu nową klasę Rysunek 3. Formatka wyświetlania informacji na widoku listowym Listing 2. Definicja kontrolki LongListSelector (XAML) <phone:longlistselector x:name= MainLongListSelector" ItemsSource= {Binding Items > <phone:longlistselector.itemtemplate> <DataTemplate> <StackPanel Orientation= Horizontal > <Image Source= {Binding PhotoContent, Converter={StaticResource ImageConverter x:name= ProductPhoto Height= 100 HorizontalAlignment= Left > </Image> <StackPanel> <TextBlock Text= {Binding Title /> <TextBlock Text= {Binding FullName /> </StackPanel> </StackPanel> </DataTemplate> </phone:longlistselector.itemtemplate> </phone:longlistselector> Listing 3. Przykładowa implementacja interfejsu IValueConverter (C#) public class ImageConverter : IValueConverter { static readonly string NO_PHOTO = /Assets/NoPhoto.png ; public object Convert(object value, Type targettype, object parameter, System.Globalization. CultureInfo culture) { var uri = new Uri(NO_PHOTO, UriKind.Relative); BitmapImage image = new BitmapImage(uri); return image; 11

12 ProductDescription zawierającą podstawowe informacje o telefonie takie jak ID, nazwa skrócona i pełna, opis, wielkość wyświetlacza czy ilość RAM-u. Jako kontener dla danych wyświetlanych na widoku listowym użyjemy dostępnej już w szablonie klasy MainViewModel. Wystarczy zmienić w metodzie LoadData tej klasy wypełnianie listy domyślnymi obiektami typu ItemViewModel na obiekty utworzonej wcześniej klasy ProductDescription. Ponieważ wyświetlanie wszystkich tych informacji na stronie głównej może spowodować, że aplikacja będzie nieczytelna więc na stronie widoku listowego dla każdego telefonu wyświetlimy dane w następującej formie: Klikniecie na którykolwiek element spowoduje przejście do szczegółów telefonu (Rysunek 3) gdzie dostępne będą dodatkowe informacje. Jak widać powyżej częścią opisu telefonu będzie również zdjęcie ale na chwilę obecną załóżmy, że jedno zdjęcie będzie wspólne dla wszystkich telefonów. W późniejszym czasie zdefiniujemy osobne zdjęcia dla każdego z telefonów. Do wyświetlania danych listowych użyjemy kontrolki LongListSelector dostępnej w SDK WP8. Definiując wygląd listowy użyjemy techniki wiązania kontrolek do właściwości źródła danych dla aktualnego widoku. Widok MainPage ma ustawioną właściwość DataContext na klasę MainViewModel więc możemy się dowoływać do właściwości tej klasy. Poniższy listing pokazuje definicję kontrolki LongListSelector: (Listing 2). W elemencie LongListSelector definiujemy, że ItemSource powinno być powiązane do właściwości Items z kontekstu strony. Z kolei w elemencie DataTemplate de- Listing 4. Przykład stylowania kontrolek predefiniowanymi stylami (XAML) <TextBlock Text= {Binding FullName Style= {StaticResource PhoneTextSubtleStyle Foreground= {StaticResource PhoneAccentBrush /> Listing 5. Definicja pola wyszukiwania (XAML) <TextBox x:name= Search KeyDown= Search_KeyDown /> Listing 6. Implementacja zdarzenia naciśnięcia klawisza w kontrolce wyszukiwania (C#) private void Search_KeyDown(object sender, System.Windows.Input.KeyEventArgs e) { if (e.key == Key.Enter) { var txt = sender as TextBox; if (txt!= null) { App.ViewModel.Filter=txt.Text; Listing 7. Zmodyfikowana kontrolka LongListSelector (XAML) <phone:longlistselector x:name= MainLongListSelector ItemsSource= {Binding FilteredItems > Listing 8. Atrybuty dla właściwości ID (C#) [Column(IsPrimaryKey = true, IsDbGenerated = true)] Listing 9. Klasa kontekstu (C#) public class ProductsDataContext:DataContext { public Table<ProductDescription> Produts; public ProductsDataContext(string connectionstring) : base(connectionstring) { Listing 10. Tworzenie bazy danych z kodu (C#) public ProductsDataContext DBContext { get; private set; public void EnsureData() { if(dbcontext==null) DBContext = new ProductsDataContext( isostore:/productdb.sdf ); if (!DBContext.DatabaseExists()) DBContext.CreateDatabase(); 12 3/2013

13 WINDOWS PHONE 8 finiujemy szablon dla poszczególnych elementów na liście. Np. kontroli TextBlock mają powiązane właściwości Text. Dla kontrolki Image (odpowiedzialnej za wyświetlanie obrazów) oprócz źródła obrazu, czyli właściwości Source, definiujemy także Converter. Klasa ta będzie odpowiedzialna za przekonwertowanie ciągu danych z bazy na faktyczny obraz, natomiast jeśli telefon nie będzie miał zdefiniowanego zdjęcia wyświetli Klasa ta implementuje interfejs IValueConverter a jej przykładowa implementacja przedstawiona jest poniżej: Na razie metoda dla każdego wywołania zwróci grafikę domyślną (Listing 3). Stylowanie Ponieważ domyślny sposób wyświetlania może nie być dla nas odpowiedni więc każdą z kontrolek możemy ostylować. Możemy oczywiście użyć własne style ale warto zwrócić uwagę na zestaw styli systemowych. Użycie tych styli spowoduje, że kolorystyka naszej aplikacji będzie dostosowywać się do motywu wybranego przez użytkownika (Rysunek 4). Dla przykładu kontrolka wyświetlająca pełną nazwę telefonu ostylowana jest w następujący sposób: Powoduje to, że w zależności od wybranego tematu tekst w kontrolce wyświetlany jest w inny, ale spójny z wyglądem interfejsu całego telefonu, sposób (Listing 4). Filtrowanie źródła Ponieważ jedną z założonych funkcjonalności w aplikacji będzie możliwość przeszukiwania listy telefonów do widoku dodajemy dodatkowe pole Szukaj umożliwiającego wpisanie użytkownikowi frazy po której nastąpi Rysunek 4. Widok listowy po przełączeniu motywu telefonu Listing 11. Tworzenie bazy na podstawie istniejącego pliku bazy danych (C#) public bool CreateIfNotExists(){ bool created = false; if (!this.databaseexists()) { if (name!= null) { using (Stream resourcestream = Assembly.GetExecutingAssembly(). GetManifestResourceStream(name)) { if (resourcestream!= null) { using (IsolatedStorageFile myisolatedstorage = IsolatedStorageFile.GetUserStoreForApplication()) { using (IsolatedStorageFileStream filestream = new IsolatedStorageFileStream(FileName, FileMode.Create, myisolatedstorage)) { using (BinaryWriter writer = new BinaryWriter(fileStream)) { long length = resourcestream.length; byte[] buffer = new byte[32]; int readcount = 0; using (BinaryReader reader = new BinaryReader(resourceStream)) { while (readcount < length) { int actual = reader.read(buffer, 0, buffer.length); readcount += actual; writer.write(buffer, 0, actual); created = true; else { this.createdatabase(); created = true; 13

14 wyszukiwanie. Po potwierdzeniu wyszukiwania klawiszem enter lista produktów powinna zostać zawężona do elementów których nazwa lub opis zawierają wpisaną frazę. Definicja pola wyszukiwania przedstawiona jest w Listingu 5. Musimy oprogramować zdarzenie Search_KeyDown które będzie uruchamiane przy wpisaniu jakiegoś znaku do pola tekstowego. Implementacja przedstawiona jest w Listingu 6. Klasę MainViewModel rozszerzymy o dwie właściwość: Filter przechowującą aktualnie wyszukiwany tekst oraz FilteredItems zwracającą listę produktów spełniających warunki wyszukiwania (Listing 6). Należy też zmienić właściwość ItemsSource kontrolki LongListSelector, tak żeby wyświetlała teraz elementy zgodne z wpisanym filtrem z Listingu 7. Przechowywanie informacji w bazie danych Do tej pory aplikacja pracowała na statycznym źródle danych. Ponieważ nie jest to najbardziej optymalne rozwiązanie zaimplementujemy w pisanej aplikacji przechowywanie danych w dedykowanej bazie danych. Aplikacje Windows Phone 8 wykorzystują SQL Server Compact do przechowywania danych. Praca z taką bazą z poziomu kodu odbywa się z wykorzystaniem technologii Linq2SQL. Oznacza to, że nie możemy zadać zapytania bezpośrednio do bazy za cała komunikację z bazą odpowiada Framework. Aby rozpocząć pracę z bazą musimy opisać klasę produktu dodatkowymi atrybutami. Klasa ProductDescription zostanie opisana atrybutem [Table], a poszczególne właściwości atrybutami [Column]. Dodatkowo właściwość ID oznaczymy jako klucz główny oraz jako właściwość generowaną automatycznie przez silnik bazy danych opisany w Listingu 8. Klasa będzie dodatkowo implementowała dwa interfejsy INotifyPropertyChanged, INotifyPropertyChanging umożliwiające śledzenie zmian właściwości przez silnik bazy danych. Do komunikacji z bazą danych musimy napisać również klasę kontekstu dziedziczącą po klasie DataContext. To ta klasa jest pośrednikiem pomiędzy naszymi obiektami a bazą. Jej implementacja jest bardzo prosta: Mając tak zdefiniowane klasy możemy zająć się tworzeniem bazy danych (Listing 9). Możliwości tworzenia bazy danych Z kodu Najprostszą metodą utworzenia bazy danych jest wygenerowanie jej na podstawie wcześniej utworzonych klas. Poniższy kod sposoduje wygenerowanie bazy w lokalizacji isostore:/productdb.sdf: Listing 12. Modyfikacja metody tworzącej bazę danych(c#) public void EnsureData() { if(dbcontext==null) DBContext = new ProductsDataContext( isostore:/productdb.sdf ); DBContext.CreateIfNotExists(); Listing 13. Definicja kolumny przechowującej zdjęcie telefonu (C#) [Column(DbType= Image )] public System.Data.Linq.Binary PhotoContent { get { return _photocontent; set { if (value!= _photocontent) { InvokePropertyChanging( PhotoContent ); _photocontent = value; InvokePropertyChanged( PhotoContent ); Listing 14. Aktualizacja schematu bazy danych (C#) DatabaseSchemaUpdater dsu = DBContext.CreateDatabaseSchemaUpdater(); if (dsu.databaseschemaversion == 1) { dsu.addcolumn<productdescription>( PhotoContent ); dsu.databaseschemaversion = 2; dsu.execute(); 14 3/2013

15 WINDOWS PHONE 8 Adres isostore (Listing 10) wskazuje na tak zwany magazyn izolowany (ang. Isolated Storage). Jest to przestrzeń dyskowa w której aplikacja przechowuje swoje dane. Żadna inna aplikacja nie ma bezpośredniego dostępu do tej lokalizacji. Po uruchomieniu tego kodu baza zostanie założona. Żeby przekonać się, że wszystko przebiegło poprawnie możemy wykorzystać darmowe narzędzie o nazwie IsoStoreSpy dostępnej pod adresem: Pozwala on podłączyć się do emulatora i podejrzeć magazyn izolowany wybranej aplikacji. Z istniejącej bazy danych W sytuacji kiedy chcemy, żeby baza naszej aplikacji już na starcie była wypełniona inicjalnymi danymi możemy albo podczas zakładania bazy z kodu wypełnić ją danymi, albo przygotować plik bazy (plik godny z klasami opisanymi w klasie DBContext) w trakcie programowania, a następnie podczas instalowania wgrać go do wymaganej lokalizacji. Jeśli dla potrzeb naszej aplikacji wystarczy nam ba- Listing 15. Konwersja binarnych danych na onraz w klasie konwertera (C#) static readonly string NO_PHOTO = /Assets/NoPhoto.png ; public object Convert(object value, Type targettype, object parameter,system.globalization.cultureinfo culture) { if (value!= null && value is Binary && (value as Binary).Length > 0) { Binary bytesarray = value as Binary; using (MemoryStream memorystream = new MemoryStream(bytesArray.ToArray())) { var image = new BitmapImage(); image.setsource(memorystream); return image; else { var uri = new Uri(NO_PHOTO, UriKind.Relative); { BitmapImage image = new BitmapImage(uri); return image; Listing 16. Rozszerzenie bazy danych o nowe tabele (C#) if (dsu.databaseschemaversion == 2){ dsu.addtable<colors>(); dsu.addtable<productscolors>(); dsu.databaseschemaversion = 3; dsu.execute(); Listing 17. Definicja relacji pomiędzy tabelami w tabeli podrzędnej (C#) [Column] public int ProductID{ get; set; private EntityRef<ProductDescription> _Product; [Association(Storage = _Product, ThisKey = ProductID, IsForeignKey = true)] public ProductDescription Product{ get { return _Product.Entity; set { InvokePropertyChanging( Product ); _Product.Entity = value; InvokePropertyChanged( Product ); if (value!= null) this.productid = value.id; 15

16 za tylko do odczytu możemy dołączyć ją do projektu i oznaczyć jako Content. Plik oznaczone w ten sposób zostaną automatycznie przekopiowane podczas instalowania aplikacji. W takiej sytuacji connection string do bazy danych będzie wyglądac następująco: "Data Source = appdata:/ productdb.sdf ; File Mode = read only; Jeśli baza ma być dostępna zarówno do odczytu jak i do zapisu należy podczas instalowania przegrać ją do magazynu izolowanego. W tym celu plik bazy Rysunek 5. Docelowy schemat bazy danych danych, dołączony do projektu, oznaczamy jako Embedded Resource. W Listingu 11 rozszerzamy klasę ProductsDataContext o dodatkową metodę. Dodatkowo zmieniamy metodę EnsureData: (Listing 12). Aktualizacja bazy Jakąkolwiek metodę zakładania bazy danych wybierzemy może nastąpić potrzeba zmodyfikowania schematu bazy danych bez jednoczesnego usuwania danych wprowadzonych przez użytkownika. SDK WP8 udostępnia interfejs programistyczny do aktualizowania schematów baz danych. Każda baza danych jest oznaczona wersją. Jest to wartość przetrzymywana w tabeli systemowej. Na podstawie tej wartości możemy rozpoznać czy baza danych zainstalowana na urządzeniu wymaga aktualizacji. Aby przeprowadzić aktualizację musimy najpierw wprowadzić odpowiednie zmiany w klasach odpowiadających tabelom oraz, jeśli to wymagane, w klasie kontekstu. Do klasy dodajmy ProductDescription nową właściwość przechowującą informacje o zdjęciu dot. telefonu: Po wprowadzeniu tej zmiany w metodzie EnsureData sprawdzamy (Listing 13) w jakiej wersji jest teraz baza danych i jeśli jest w starszej zaktualizujemy ją (Listing 14). W ten sposób do tabeli została dodana nowa kolumna a wersja bazy została ustawiona na 2. Aby zdjęcia przypisane do telefonów wyświetlały się poprawnie zmodyfikujemy jeszcze klasę konwertera opisaną wcześniej (Listing 15). Relacje pomiędzy tabelami W ten sam sposób możemy rozszerzyć schemat bazy danych o dodatkowe tabele oraz zdefiniować relację pomiędzy tabelami (Listing 16). Listing 18. Definicja relacji pomiędzy tabelami w tabeli źródłowej (C#) private EntitySet<ProductsColors> _ProductsColors = new EntitySet<ProductsColors>(); [Association(Storage = _ProductsColors, OtherKey = ProductID )] public EntitySet<ProductsColors> ProductsColors { get { return _ProductsColors; set { InvokePropertyChanging( ProductsColors ); this._productscolors.assign(value); InvokePropertyChanged( ProductsColors ); Listing 19. Nawigacja do strony ze szczegółami wybranego produktu (C#) private void MainLongListSelector_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (MainLongListSelector.SelectedItem == null) return; NavigationService.Navigate(new Uri( /ProductInfoPage.xaml?selectedItem= + (MainLongListSelector. SelectedItem as ProductDescription).ID, UriKind.Relative)); MainLongListSelector.SelectedItem = null; 16 3/2013

17 WINDOWS PHONE 8 Listing 20. Odczyt parametrów na stronie szczegółów produktu (C#) protected override void OnNavigatedTo(NavigationEventArgs e) { if (DataContext == null) { string selectedindex = ; if (NavigationContext.QueryString.TryGetValue( selecteditem, out selectedindex)) { currentitemid = int.parse(selectedindex); DataContext = App.ViewModel.Items. FirstOrDefault(elem => elem.id == currentitemid); Listing 21. Przykład użycia kontrolki ListPicker (XAML) <toolkit:listpicker ItemsSource= {Binding AvailableColors SelectionChanged= ColorPicker_ SelectionChanged > </toolkit:listpicker> Dodając nowe tabele należy pamiętać o dodaniu ich również do klasy kontekstu. Ponieważ telefony z systemem WP8 występują w różnych kolorach, na stronie stronie szczegółów telefonu umożliwimy wybór koloru telefonu i obejrzenie zdjęć telefonu w wybranym kolorze. Relacja pomiędzy tabelami przestawia poniższy diagram (Rysunek 5) Aby zdefiniować relacje pomiędzy tabelami musimy opisać odpowiednie właściwości w tabelach dodatkowymi atrybutami. W tabeli zawierającej klucze obce (czyli ProductColors na powyższym schemacie) do odpowiednich właściwości dodajemy poniższe atrybuty (Listing 17). W klasie źródłowej również tworzymy właściwość odpowiadającą relacji (Listing 18). Strona szczegółów Po kliknięciu w wybrany produkt na liście widoku głównego powinniśmy zostać przekierowani do widoku szczegółów. Widok ten nie istniej jeszcze w naszej aplikacji więc trzeba go dodać i oprogramować. Do projektu dajemy nową stronę o nazwie ProductInfoPage typu PanoramaPage. Jest to strona umożliwiająca przewijanie jej zawartości w poziomie na kilku podstronach. Aby umożliwić przejście do szczegółów produktu należy oprogramować zdarzenie wyboru pozycji na kontrolce listy (Listing 19). Wykonanie tego kodu spowoduje otwarcie strony ProductInfoPage.xaml z przekazaniem identyfikatora wybranego produktu. W kodzie strony szczegółów możemy odczytać identyfikator wybranego elementu i ustawić wybrany produkt jako kontekst strony (Listing 20). Po ustawieniu odpowiedniego kontekstu strony możemy zaprogramować wygląd strony korzystając z techniki wiązania analogicznie do widoku głównego strony. Dodatkowo, ponieważ chcemy dać możliwość wyboru koloru w którym prezentowane są zdjęcia, uzyjemy kontroli ListPicker dostępnej w zestawie dodatkowych kontrolek możliwych do pobrania ze stron CodePlex: Samo użycie kontrolki sprowadza się do ustawienia odpowiedniego wiązania (Listinng 21). Gdzie właściwość jest AvailableColors zwraca listę dostępnych kolorów powiązanych z aktualnym telefonem. Wymagania dotyczące publikowania Po zakończeniu prac nad aplikacją należy ją opublikować w sklepie z aplikacjami dla Window Phone. Aplikacja ta zostanie zweryfikowana pod względem zgodności z regułami zdefiniowanymi przez Microsoft. Spis wszystkich warunków, które musi spełniać aplikacja, wraz z testami które są przeprowadzane w celu weryfikacji, jest dostępny na: Reguły weryfikują różne aspekty działania aplikacji. Na przykład sprawdzany jest czas uruchomienia aplikacji. Reguła określa, że aplikacja powinna wyświetlić pierwszy ekran w ciągu 5 sekund od uruchomienia aplikacji. Jest możliwe, żeby pierwszym ekranem był ekran powitalny w formie grafiki o nazwie SplashScreenImage. jpg znajdującym się w głównym folderze aplikacji. W takiej sytuacji czas, w którym aplikacja musi być responsywna na działania klienta wydłuża się do 20 sekund. Jest to istotne np. w przypadku zakładania bazy danych. Michał Bakalarczyk Projektant aplikacji.net/sharepoint w Grupie Unity, gdzie od 6 lat współtworzy rozwiązania IT dla Klientów. 17

18 Firefox OS czy przełamie duopol ios i Android? Ostatnie wyniki badań International Data Corporation (IDC) wskazują jedno rynek mobilnych systemów operacyjnych, ze względu na ich popularność, jest ściśle podzielony. Zdecydowanym liderem jest Android, wyprodukowany przez Android Inc. (wykupioną później przez Google) udział w rynku mobilnych OS w pierwszym kwartale 2013 roku sięgnął 75%. Pozycję drugą zajmuje ios Apple a, z wynikiem 17%. Kolejne pozycje są właściwie marginalne Windows Mobile (3%), BlackBerry OS (2,9%) Skąd tak wysoka pozycja tych firm? Android jest najczęściej używaną platformą dla smartfonów na świecie stoi za tym przede wszystkim cena. Niskie koszty tworzenia, szeroka dostępność, mnogość aplikacji, sprawiły, że klienci często sięgają po to rozwiązanie. Również w środowisku programistycznym technologia ta jest popularna kod źródłowy jest dostępny, co powoduje, że nowe aplikacje i możliwości systemu są szybko i łatwo tworzone, a co ważniejsze, nie potrzebują oficjalnych kanałów dystrybucji. ios reklamuje siebie jako najbardziej zaawansowany mobilny system operacyjny na świecie - przyjazny interfejs, fenomenalna funkcjonalność i niezachwiana stabilność - to cechy, które powinny rekompensować także wysoki koszt urządzeń. Posiadanie takowego, to w niektórych środowiskach niemal prestiż. Programowanie z użyciem Objective-C obwarowane jest jednak kilkoma warunkami, jak np. rejestracja w programie developerskim Apple czy system rocznych opłat (jeśli chcesz zamieścić aplikację w sklepie). Czy w tak podzielonym świecie jest możliwe miejsce dla nowego gracza? Czy ktoś będzie mógł zastąpić obecnych liderów? Tego zadania podjęła się Mozilla, wypuszczając na rynek swój najnowszy produkt Firefox OS. Próby detronizacji podejmowane były wcześniej pojawiły się open source owe Sailfish OS, Buntu Otuch, Tizen. Wszystkie one przesyły jednak bez echa. Czy teraz będzie podobnie? Wygląda na to, że jest szansa na zmianę lidera. Firefox OS, zgodnie z założeniem Telefonica Digital oraz Mozilli, ma zdemokratyzować i rozbić obecny układ technologii mobilnych. Ma być systemem całkowicie opensouroce owym, który nie wymaga do uruchomienia wielu nakładów i bez problemu może współpracować z każdą siecią. Sam system traktuje sieć jako platformę - jest to nowe rozwiązanie, które może pozwolić wejść Firefox do świata technologii mobilnych niekoniecznie jako jedna z nich. Firefox OS zbudowany jest na technologiach webowych opartych na lekkim, Linuxowym systemie operacyjnym. Każda aplikacja, włączając w to np. kamerę jest aplikacją webową - budowaną z użyciem standardów HTML5, CSS3 i JavaScript. Jego Interface przypomina interface Androida sami twórcy nie ukrywają, że to rozwiązanie było dla nich inspiracją. Aplikacje w nim stworzone działają jako Web apps na wszystkich urządzeniach, na których funkcjonuje przeglądarka Firefox (Android, Windows 8). Prostota wykonania, tania produkcja i łatwość adaptacji może spowodować, że Firefox OS wywyło sporo zamieszania na rynku. System jest banalnie prosty w obsłudze, nie wymaga od użytkownika tworzenia setek kont, rejestracji, konfiguracji, dzięki temu telefon jest konkurencyjny (pod względem ceny oraz wydajności) z innymi smartfonami w tej samej klasie. Pierwsza prezentacja w lutym 2012 roku zrobiła duże zamieszanie i była szeroko komentowana. System początkowo funkcjonował na smartfonach współpracujących z Androidem. W styczniu 2013 roku nawiązała się współpraca z ZTE, który zapowiedział wydanie telefonów z Firefox OS. Do współpracy włączył się takżę Alcatel. Pierwsze telefony w dystrybucji pojawiał się w lipcu 2013 w Hiszpani, Wenezueli, Kolumbii i Polsce (za sprawą T-Mobile i Alcatel One Touch Fire). W dalszych planach jest Ameryka Południowa, Niemcy, Norwegia, Węgry, Grecja i Stany Zjednoczone. Czy Firefox OS ma szansę z tuzami na rynku? Czy zastąpi Androida? System jest nadal w fazie rozwoju, po kilku miesiącach funkcjonowania producenci zapowiedzieli pierwsze rozszerzenia, a opinie i wrażenia były pozytywne. Przyszłość pokaże, czy Mozilla wykorzysta szansę i ogromny kredyt zaufania, jaki otrzymała na starcie. Piotr Wirkus Piotr Wirkus jest konsultantem HAYS odpowiedzialny za rozwój dywizji IT & Telecoms w gdańskim biurze Hays Poland. Realizuje projekty średniego i wyższego szczebla na terenie województw: pomorskiego, kujawsko-pomorskiego oraz warmińsko-mazurskiego. Koordynuje również projekty obejmujące prace konsultantów w kilku biurach. By być bliżej branży, sam również uczy się programowania. Piotr od wielu lat związany jest z branżą HR. Doświadczenie zdobywał w firmach doradczych, gdzie zajmował się rekrutacjami na stanowiska średniego i wyższego stopnia oraz uczestniczył aktywnie w rekrutacjach międzynarodowych. Zanim związał się z branżą HR przez kilka lat zajmował się sprzedażą detaliczną w sieciach multimedialnych oraz w wydawnictwie. Ukończył Politologię na Uniwersytecie Gdańskim oraz studia podyplomowe Zarządzanie Personelem przy Szkole Wyższej Psychologii Społecznej 18 3/2013

19

20 Zdalne aplikacje mobilne rozwiązanie problemu wielo-platformowości? Różnorodność mobilnych systemów operacyjnych i urządzeń powoduje, że każdy twórca aplikacji mobilnych staje przed dylematem na jakie platformy przygotować aplikację aby dotrzeć do jak największej grupy użytkowników, a jednocześnie nie rozbić budżetu. Na szczęście wybór między wieloma aplikacjami natywnymi, a uniwersalną aplikacją webową to nie jedyna opcja! DOWIESZ SIĘ Jakie są możliwe metody przygotowania aplikacji mobilnych na wiele platform. Że czas reakcji aplikacji na interakcje użytkownika nie zawsze pogarsza sie wraz z przeniesieniem przetwarzania na serwer. Jaka jest proporcja kosztów przygotowania wielo-platformowych aplikacji mobilnych w oparciu o różne metody. O ile przygotowywanie aplikacji mobilnej na dwa lub trzy najpopularniejsze systemy operacyjne nie stwarza wielkich problemów jest coraz więcej firm oferujących takie usługi, a ceny konsekwentnie maleją o tyle zaadresowanie długiego ogona systemów operacyjnych stanowi już nie lada wyzwanie. Polscy operatorzy telekomunikacyjni oferują smartfony działające pod kontrolą co najmniej 7 systemów operacyjnych: Android, ios, Windows Phone, BlackBerry OS, Symbian, Samsung Bada i Firefox OS. Za chwilę na rynku pojawią się kolejne: Tizen, Ubuntu Touch OS, Jolla Sailfish OS i inne. Jeśli aplikacja ma być dostępna dla wszystkich użytkowników, to powinna być przygotowana na każdy z tych dziesięciu POWINIENEŚ WIEDZIEĆ Na czym polega architektura klient-serwer. Jakie są ograniczenia przeglądarek WWW w kontekście przygotowania aplikacji mobilnych. systemów operacyjnych. Przygotowanie tylu aplikacji natywnych jest zbyt kosztowne, a opracowanie jednej uniwersalnej aplikacji webowej może być co najmniej kłopotliwe. Zdalna aplikacja mobilna Inną opcją, która potencjalnie łączy zalety obu rozwiązań, jest zdalna aplikacja mobilna. Jest to aplikacja działająca na serwerze, której tylko interfejs użytkownika jest dostarczany do urządzenia mobilnego. Interfejs użytkownika jest odtwarzany na urządzeniu przez uniwersalnego klienta aplikacji zdalnej natywny komponent aplikacji zdalnej instalowany na urządzeniu mobilnym. Z pozoru jest to taka sama architektura jak w przypad- Rysunek 1. Architektura zdalnej aplikacji mobilnej 20 3/2013

Analiza i projekt systemu pracy grupowej z zastosowaniem metodyki SCRUM w technologii SharePoint Karolina Konstantynowicz

Analiza i projekt systemu pracy grupowej z zastosowaniem metodyki SCRUM w technologii SharePoint Karolina Konstantynowicz Analiza i projekt systemu pracy grupowej z zastosowaniem metodyki SCRUM w technologii SharePoint Karolina Konstantynowicz Promotor dr inż. Szymon Supernak Warszawa, 22.05.2014 Plan prezentacji 1. Cel i

Bardziej szczegółowo

Usługi analityczne budowa kostki analitycznej Część pierwsza.

Usługi analityczne budowa kostki analitycznej Część pierwsza. Usługi analityczne budowa kostki analitycznej Część pierwsza. Wprowadzenie W wielu dziedzinach działalności człowieka analiza zebranych danych jest jednym z najważniejszych mechanizmów podejmowania decyzji.

Bardziej szczegółowo

SYSTEMY INFORMATYCZNE ćwiczenia praktyczne

SYSTEMY INFORMATYCZNE ćwiczenia praktyczne SYSTEMY INFORMATYCZNE ćwiczenia praktyczne 12.03.2019 Piotr Łukasik p. 373 email: plukasik@agh.edu.pl / lukasik.pio@gmail.com www.lukasikpiotr.com Zakres tematyczny implementacji projektu informatycznego

Bardziej szczegółowo

1. Od czego zacząć? - Instalacja środowiska pracy

1. Od czego zacząć? - Instalacja środowiska pracy 1. Od czego zacząć? - Instalacja środowiska pracy 1.1 Jeśli mamy komputer z Windows 8.1 Prof. lub nowszy W takim przypadku potrzebne nam będą tylko aktualne aktualizacje no i oczywiście środowisko pracy.

Bardziej szczegółowo

REFERAT PRACY DYPLOMOWEJ

REFERAT PRACY DYPLOMOWEJ REFERAT PRACY DYPLOMOWEJ Temat pracy: Projekt i implementacja środowiska do automatyzacji przeprowadzania testów aplikacji internetowych w oparciu o metodykę Behavior Driven Development. Autor: Stepowany

Bardziej szczegółowo

Usługa: Testowanie wydajności oprogramowania

Usługa: Testowanie wydajności oprogramowania Usługa: Testowanie wydajności oprogramowania testerzy.pl przeprowadzają kompleksowe testowanie wydajności różnych systemów informatycznych. Testowanie wydajności to próba obciążenia serwera, bazy danych

Bardziej szczegółowo

Instalacja SQL Server Express. Logowanie na stronie Microsoftu

Instalacja SQL Server Express. Logowanie na stronie Microsoftu Instalacja SQL Server Express Logowanie na stronie Microsoftu Wybór wersji do pobrania Pobieranie startuje, przechodzimy do strony z poradami. Wypakowujemy pobrany plik. Otwiera się okno instalacji. Wybieramy

Bardziej szczegółowo

REKOMENDACJE DOTYCZĄCE PLATFORMY ZARZĄDZANIA KOMPETENCJAMI

REKOMENDACJE DOTYCZĄCE PLATFORMY ZARZĄDZANIA KOMPETENCJAMI REKOMENDACJE DOTYCZĄCE PLATFORMY ZARZĄDZANIA KOMPETENCJAMI WYTYCZNE DO MODELU DANIEL WOJEWÓDZKI Rekomendacje dotyczące Platformy Zarządzania Kompetencjami System adresowany do małych przedsiębiorstw do

Bardziej szczegółowo

CMS, CRM, sklepy internetowe, aplikacje Web

CMS, CRM, sklepy internetowe, aplikacje Web CMS, CRM, sklepy internetowe, aplikacje Web Aplikacje PHP, open source, dodatki Add-ins, templatki, moduły na zamówienie Aplikacje mobilne jquery Mobile + PhoneGap Kilka platform w cenie jednego kodu JavaScript!

Bardziej szczegółowo

Dokument Detaliczny Projektu Temat: Księgarnia On-line Bukstor

Dokument Detaliczny Projektu Temat: Księgarnia On-line Bukstor Koszalin, 15.06.2012 r. Dokument Detaliczny Projektu Temat: Księgarnia On-line Bukstor Zespół projektowy: Daniel Czyczyn-Egird Wojciech Gołuchowski Michał Durkowski Kamil Gawroński Prowadzący: Dr inż.

Bardziej szczegółowo

ActiveXperts SMS Messaging Server

ActiveXperts SMS Messaging Server ActiveXperts SMS Messaging Server ActiveXperts SMS Messaging Server to oprogramowanie typu framework dedykowane wysyłaniu, odbieraniu oraz przetwarzaniu wiadomości SMS i e-mail, a także tworzeniu własnych

Bardziej szczegółowo

Zmiany funkcjonalne i lista obsłużonych zgłoszeń Comarch DMS

Zmiany funkcjonalne i lista obsłużonych zgłoszeń Comarch DMS Zmiany funkcjonalne i lista obsłużonych zgłoszeń 1. Wstęp W niniejszym dokumencie zostały opisane modyfikacje wprowadzone w wersji. 2. Poprawa bezpieczeństwa danych w W instalatorze wprowadzono nową funkcjonalność

Bardziej szczegółowo

Programowanie zespołowe

Programowanie zespołowe Programowanie zespołowe Laboratorium 4 - modele tworzenia oprogramowania, manifest Agile i wstęp do Scruma mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 14 marca 2017 1 / 21 mgr inż. Krzysztof

Bardziej szczegółowo

Jarosław Kuchta Dokumentacja i Jakość Oprogramowania. Wymagania jakości w Agile Programming

Jarosław Kuchta Dokumentacja i Jakość Oprogramowania. Wymagania jakości w Agile Programming Jarosław Kuchta Wymagania jakości w Agile Programming Wady klasycznych metod zapewnienia jakości Duży narzut na dokumentowanie Późne uzyskiwanie konkretnych rezultatów Trudność w odpowiednio wczesnym definiowaniu

Bardziej szczegółowo

REFERAT O PRACY DYPLOMOWEJ

REFERAT O PRACY DYPLOMOWEJ REFERAT O PRACY DYPLOMOWEJ Temat pracy: Projekt i realizacja elektronicznego dziennika ocen ucznia Autor: Grzegorz Dudek wykonanego w technologii ASP.NET We współczesnym modelu edukacji, coraz powszechniejsze

Bardziej szczegółowo

Microsoft.NET: LINQ to SQL, ASP.NET AJAX

Microsoft.NET: LINQ to SQL, ASP.NET AJAX Microsoft.NET: LINQ to SQL, ASP.NET AJAX Do realizacji projektu potrzebne jest zintegrowane środowisko programistyczne Microsoft Visual Studio 2008 oraz serwer bazy danych SQL Server Express 2005 (lub

Bardziej szczegółowo

REFERAT PRACY DYPLOMOWEJ

REFERAT PRACY DYPLOMOWEJ REFERAT PRACY DYPLOMOWEJ Temat pracy: Projekt o implementacja pakietu gier planszowych realizowany na platformie Android Autor: Paweł Piechociński Promotor: dr Jadwiga Bakonyi Kategorie: gra planszowa

Bardziej szczegółowo

Tester oprogramowania 2014/15 Tematy prac dyplomowych

Tester oprogramowania 2014/15 Tematy prac dyplomowych Tester oprogramowania 2014/15 Tematy prac dyplomowych 1. Projekt i wykonanie automatycznych testów funkcjonalnych wg filozofii BDD za pomocą dowolnego narzędzia Jak w praktyce stosować Behaviour Driven

Bardziej szczegółowo

Dokument Detaliczny Projektu

Dokument Detaliczny Projektu Dokument Detaliczny Projektu Dla Biblioteki miejskiej Wersja 1.0 Streszczenie Niniejszy dokument detaliczny projektu(ddp) przedstawia szczegóły pracy zespołu projektowego, nad stworzeniem aplikacji bazodanowej

Bardziej szczegółowo

Backend Administratora

Backend Administratora Backend Administratora mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011 W tym celu korzystając z konsoli wydajemy polecenie: symfony generate:app backend Wówczas zostanie stworzona

Bardziej szczegółowo

Plan testów do Internetowego Serwisu Oferowania i Wyszukiwania Usług Transportowych

Plan testów do Internetowego Serwisu Oferowania i Wyszukiwania Usług Transportowych Plan testów do Internetowego Serwisu Oferowania i Wyszukiwania Usług Transportowych Michał Lewowski, Piotr Skowron, Michał Matczuk, Piotr Wygocki 5 czerwca 2006 1 Spis treści 1 Wprowadzenie 3 1.1 Cel..........................................

Bardziej szczegółowo

Zarządzanie testowaniem wspierane narzędziem HP Quality Center

Zarządzanie testowaniem wspierane narzędziem HP Quality Center Zarządzanie testowaniem wspierane narzędziem HP Quality Center studium przypadku Mirek Piotr Szydłowski Ślęzak Warszawa, 17.05.2011 2008.09.25 WWW.CORRSE.COM Firma CORRSE Nasze zainteresowania zawodowe

Bardziej szczegółowo

Zarządzanie i realizacja projektów systemu Microsoft SharePoint 2010

Zarządzanie i realizacja projektów systemu Microsoft SharePoint 2010 Zarządzanie i realizacja projektów systemu Microsoft SharePoint 2010 Geoff Evelyn Przekład: Natalia Chounlamany APN Promise Warszawa 2011 Spis treści Podziękowania......................................................

Bardziej szczegółowo

Piotr Ślęzak. Gdzie się podziała jakość

Piotr Ślęzak. Gdzie się podziała jakość Piotr Ślęzak Gdzie się podziała jakość Działamy na styku Biznesu i IT Analiza biznesowa Kontrola jakości Doradztwo Projekty Szkolenia ForProgress spółka z ograniczoną odpowiedzialnością sp.k. kontakt@forprogress.com.pl

Bardziej szczegółowo

Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC

Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC Akademia MetaPack Uniwersytet Zielonogórski Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC Krzysztof Blacha Microsoft Certified Professional Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC Agenda:

Bardziej szczegółowo

SCRUM niełatwe wdrażanie metodyki w praktyce. Adam Krosny

SCRUM niełatwe wdrażanie metodyki w praktyce. Adam Krosny SCRUM niełatwe wdrażanie metodyki w praktyce Adam Krosny 1 Czym się zajmujemy Realizujemy projekty informatyczne średniej wielkości Ilość osób w projekcie 10-50 Architektura SOA, EBA Wiele komponentów

Bardziej szczegółowo

Symulator doboru koloru i przetłoczenia bramy garażowej oraz wzoru drzwi wejściowych. do elewacji budynku klienta

Symulator doboru koloru i przetłoczenia bramy garażowej oraz wzoru drzwi wejściowych. do elewacji budynku klienta Symulator doboru koloru i przetłoczenia bramy garażowej oraz wzoru drzwi wejściowych do elewacji budynku klienta Wszechobecna nowa technologia Smartfony obecnie coraz częściej zastępują zwykłe telefony

Bardziej szczegółowo

Acceptance Test Driven Development wspierane przez narzędzie ROBOT Framework. Edyta Tomalik Grzegorz Ziemiecki

Acceptance Test Driven Development wspierane przez narzędzie ROBOT Framework. Edyta Tomalik Grzegorz Ziemiecki Acceptance Test Driven Development wspierane przez narzędzie ROBOT Framework Edyta Tomalik Grzegorz Ziemiecki 1 Nokia Siemens Networks 2013 Tradycyjne podejście analityk programista tester implementacja

Bardziej szczegółowo

NASZA MISJA. wszystkie nasze dzialania sfokusowane sa na efektywną, partnerską współprace.

NASZA MISJA. wszystkie nasze dzialania sfokusowane sa na efektywną, partnerską współprace. NASZA MISJA Aby tworzyć najbardziej użyteczne, najlepsze aplikacje ściśle dopasowane do Państwa wymagań i potrzeb oraz budżetu, który chcecie Państwo zainwestować. podstawa satysfakcjonujacej współpracy

Bardziej szczegółowo

Oferta szkoleń firmy Code Sprinters

Oferta szkoleń firmy Code Sprinters Oferta szkoleń firmy Code Sprinters Code Sprinters sp z o.o. Królewska 2/2 Kraków Telefon +48 12 379 34 14 Fax +48 12 379 34 11 info@codesprinters.com www.codesprinters.com Jako liderzy na rynku szkoleń

Bardziej szczegółowo

D&B Data Manager. Proces zarządzania Twoimi danymi na jednej platformie internetowej

D&B Data Manager. Proces zarządzania Twoimi danymi na jednej platformie internetowej D&B Data Manager Proces zarządzania Twoimi danymi na jednej platformie internetowej Czym jest D&B Data Manager : D&B Data Manager jest zabezpieczoną platformą online, która zapewnia naszym klientom możliwość

Bardziej szczegółowo

Cechy systemu X Window: otwartość niezależność od producentów i od sprzętu, dostępny kod źródłowy; architektura klient-serwer;

Cechy systemu X Window: otwartość niezależność od producentów i od sprzętu, dostępny kod źródłowy; architektura klient-serwer; 14.3. Podstawy obsługi X Window 14.3. Podstawy obsługi X Window W przeciwieństwie do systemów Windows system Linux nie jest systemem graficznym. W systemach Windows z rodziny NT powłokę systemową stanowi

Bardziej szczegółowo

Biorąc udział w projekcie, możesz wybrać jedną z 8 bezpłatnych ścieżek egzaminacyjnych:

Biorąc udział w projekcie, możesz wybrać jedną z 8 bezpłatnych ścieżek egzaminacyjnych: Egzaminy na plus Stres na minus! Zdawaj bezpłatne egzaminy Microsoft, Linux, C++ z nami i zadbaj o swoją karierę. Oferujemy Ci pierwsze certyfikaty zawodowe w Twojej przyszłej karierze, które idealnie

Bardziej szczegółowo

MonoGame. Wieloplatformowe gry w C# Mateusz Cicheński

MonoGame. Wieloplatformowe gry w C# Mateusz Cicheński MonoGame Wieloplatformowe gry w C# Mateusz Cicheński Plan prezentacji Założenia Alternatywy Narzędzia Różnice między WP8, ios, Android DEMO Podsumowanie Założenia CEL: Stworzenie wieloplatformowej gry

Bardziej szczegółowo

IO - Plan testów. M.Jałmużna T.Jurkiewicz P.Kasprzyk M.Robak. 5 czerwca 2006

IO - Plan testów. M.Jałmużna T.Jurkiewicz P.Kasprzyk M.Robak. 5 czerwca 2006 IO - Plan testów M.Jałmużna T.Jurkiewicz P.Kasprzyk M.Robak 5 czerwca 2006 1 SPIS TREŚCI 2 Spis treści 1 Historia zmian 3 2 Zakres testów 3 2.1 Integration testing - Testy spójnosci.............. 3 2.2

Bardziej szczegółowo

Usługa: Audyt kodu źródłowego

Usługa: Audyt kodu źródłowego Usługa: Audyt kodu źródłowego Audyt kodu źródłowego jest kompleksową usługą, której głównym celem jest weryfikacja jakości analizowanego kodu, jego skalowalności, łatwości utrzymania, poprawności i stabilności

Bardziej szczegółowo

Podejście tradycyjne. plan wykonanie sekwencyjna natura wykonywanych zadań

Podejście tradycyjne. plan wykonanie sekwencyjna natura wykonywanych zadań Metodyka Scrum Podejście tradycyjne plan wykonanie sekwencyjna natura wykonywanych zadań analiza i definiowanie wymagań projektowanie rozwiązań kodowanie rozwiązań testowanie odstępstwo od planu jest kosztowne

Bardziej szczegółowo

Planowanie i realizacja zadań w zespole Scrum

Planowanie i realizacja zadań w zespole Scrum MetaPack IT Academy Uniwersytet Zielonogórski Planowanie i realizacja zadań w zespole Scrum Paweł Przybyła Professional Scrum Master (www.scrum.org) Planowanie i realizacja zadań w zespole Scrum Agenda:

Bardziej szczegółowo

Ulotka skrócona Moduł Analizy BI. Wersja: 2013.0.1

Ulotka skrócona Moduł Analizy BI. Wersja: 2013.0.1 Ulotka skrócona Moduł Analizy BI Wersja: 2013.0.1 Spis treści 1. Reinstalacja z poprzedniej wersji... 3 2. Raporty Wzorcowe... 5 2.1 Nowości... 5 2.2 Zmiany... 6 3. Ogólne... 6 3.1 Nowości... 6 3.2 Zmiany...

Bardziej szczegółowo

OMNITRACKER Wersja testowa. Szybki przewodnik instalacji

OMNITRACKER Wersja testowa. Szybki przewodnik instalacji OMNITRACKER Wersja testowa Szybki przewodnik instalacji 1 Krok 1:Rejestracja pobrania (jeżeli nie wykonana dotychczas) Proszę dokonać rejestracji na stronieomninet (www.omnitracker.com) pod Contact. Po

Bardziej szczegółowo

Rozdział 5: Zarządzanie testowaniem. Pytanie 1

Rozdział 5: Zarządzanie testowaniem. Pytanie 1 Pytanie 1 Dlaczego niezależne testowanie jest ważne: A) Niezależne testowanie jest w zasadzie tańsze niż testowanie własnej pracy B) Niezależne testowanie jest bardziej efektywne w znajdywaniu defektów

Bardziej szczegółowo

Programowanie Zespołowe

Programowanie Zespołowe Programowanie Zespołowe Programowanie zwinne dr Rafał Skinderowicz mgr inż. Michał Maliszewski Programowanie zwinne Grupa metodyk wytwarzania oprogramowania oparta na modelu iteracyjno-obiektowym Powstała

Bardziej szczegółowo

INSTRUKCJA INSTALACJI OPROGRAMOWANIA MICROSOFT LYNC 2010 ATTENDEE ORAZ KORZYTANIA Z WYKŁADÓW SYNCHRONICZNYCH

INSTRUKCJA INSTALACJI OPROGRAMOWANIA MICROSOFT LYNC 2010 ATTENDEE ORAZ KORZYTANIA Z WYKŁADÓW SYNCHRONICZNYCH INSTRUKCJA INSTALACJI OPROGRAMOWANIA MICROSOFT LYNC 2010 ATTENDEE ORAZ KORZYTANIA Z WYKŁADÓW SYNCHRONICZNYCH Wstęp Warunkiem uczestnictwa w wykładzie zdalnym jest zainstalowanie na komputerze ucznia uczestnika

Bardziej szczegółowo

Kadry Optivum, Płace Optivum. Jak przenieść dane na nowy komputer?

Kadry Optivum, Płace Optivum. Jak przenieść dane na nowy komputer? Kadry Optivum, Płace Optivum Jak przenieść dane na nowy komputer? Aby kontynuować pracę z programem Kadry Optivum lub Płace Optivum (lub z obydwoma programami pracującymi na wspólnej bazie danych) na nowym

Bardziej szczegółowo

Baza danych sql. 1. Wprowadzenie

Baza danych sql. 1. Wprowadzenie Baza danych sql 1. Wprowadzenie Do tej pory operowaliście na listach. W tej instrukcji pokazane zostanie jak stworzyć bazę danych. W zadaniu skorzystamy z edytora graficznego struktury bazy danych, który

Bardziej szczegółowo

Piotr Bubacz Cloud Computing

Piotr Bubacz Cloud Computing Cloud Computing ITA-112 Wersja 0.9 Warszawa, Czerwiec 2011 Spis treści Wprowadzenie i-4 Moduł 1 Wprowadzenie do Cloud Computing 1-1 Moduł 2 Wprowadzenie do Windows 2-1 Moduł 3 Storage Tabele 3-1 Moduł

Bardziej szczegółowo

OMNITRACKER Wersja testowa. Szybki przewodnik instalacji

OMNITRACKER Wersja testowa. Szybki przewodnik instalacji OMNITRACKER Wersja testowa Szybki przewodnik instalacji 1 Krok 1:Rejestracja pobrania (jeżeli nie wykonana dotychczas) Proszę dokonać rejestracji na stronieomninet (www.omnitracker.com) pod Contact. Po

Bardziej szczegółowo

Dokument Detaliczny Projektu

Dokument Detaliczny Projektu Dokument Detaliczny Projektu Dla Biblioteki miejskiej Wersja 1.0 Streszczenie Niniejszy dokument detaliczny projektu(ddp) przedstawia szczegóły pracy zespołu projektowego, nad stworzeniem aplikacji bazodanowej

Bardziej szczegółowo

System Obsługi Zleceń

System Obsługi Zleceń System Obsługi Zleceń Podręcznik Administratora Atinea Sp. z o.o., ul. Chmielna 5/7, 00-021 Warszawa NIP 521-35-01-160, REGON 141568323, KRS 0000315398 Kapitał zakładowy: 51.000,00zł www.atinea.pl wersja

Bardziej szczegółowo

1 LINQ. Zaawansowane programowanie internetowe Instrukcja nr 1

1 LINQ. Zaawansowane programowanie internetowe Instrukcja nr 1 1 LINQ 1 1. Cel zajęć Celem zajęć jest zapoznanie się z technologią LINQ oraz tworzeniem trójwarstwowej aplikacji internetowej. 2. Zadanie Proszę przygotować aplikację WWW, która: będzie pozwalała na generowanie

Bardziej szczegółowo

Zarządzanie projektami. Porównanie podstawowych metodyk

Zarządzanie projektami. Porównanie podstawowych metodyk Zarządzanie projektami Porównanie podstawowych metodyk Porównanie podstawowych metodyk w zarządzaniu projektami PRINCE 2 PMBOK TENSTEP AGILE METODYKA PRINCE 2 Istota metodyki PRINCE 2 Project IN Controlled

Bardziej szczegółowo

Rys. 3. Kod elementów na stronie po dodaniu kontrolek podstawowych.

Rys. 3. Kod elementów na stronie po dodaniu kontrolek podstawowych. 1 2 Kontrolki standardowe WP7 Michał Ręczkowicz, Opublikowano: 2012-02-08 http://msdn.microsoft.com/pl-pl/library/rozpoczecie-pracy-z-windows-phone--kontrolki-standardowe W tym samouczku dowiesz się, jakie

Bardziej szczegółowo

Tom 6 Opis oprogramowania Część 8 Narzędzie do kontroli danych elementarnych, danych wynikowych oraz kontroli obmiaru do celów fakturowania

Tom 6 Opis oprogramowania Część 8 Narzędzie do kontroli danych elementarnych, danych wynikowych oraz kontroli obmiaru do celów fakturowania Część 8 Narzędzie do kontroli danych elementarnych, danych wynikowych oraz kontroli Diagnostyka stanu nawierzchni - DSN Generalna Dyrekcja Dróg Krajowych i Autostrad Warszawa, 21 maja 2012 Historia dokumentu

Bardziej szczegółowo

Zacznij Tu! Poznaj Microsoft 2012. Visual Basic. Michael Halvorson. Przekład: Joanna Zatorska

Zacznij Tu! Poznaj Microsoft 2012. Visual Basic. Michael Halvorson. Przekład: Joanna Zatorska Zacznij Tu! Poznaj Microsoft 2012 Visual Basic Michael Halvorson Przekład: Joanna Zatorska APN Promise, Warszawa 2013 Spis treści Wstęp...................................................................vii

Bardziej szczegółowo

Tworzenie prezentacji w MS PowerPoint

Tworzenie prezentacji w MS PowerPoint Tworzenie prezentacji w MS PowerPoint Program PowerPoint dostarczany jest w pakiecie Office i daje nam możliwość stworzenia prezentacji oraz uatrakcyjnienia materiału, który chcemy przedstawić. Prezentacje

Bardziej szczegółowo

Politechnika Poznańska, Instytut Informatyki, TWO/GE. Programowanie dla ios

Politechnika Poznańska, Instytut Informatyki, TWO/GE. Programowanie dla ios Politechnika Poznańska, Instytut Informatyki, TWO/GE Programowanie dla ios 13 stycznia 2012 Urządzenia ios Urządzenie Data prezentacji iphone 9.01.2007/06.2007 ipod touch 5.09.2007 iphone 3G 9.06.2008

Bardziej szczegółowo

Kadry Optivum, Płace Optivum. Jak przenieść dane na nowy komputer?

Kadry Optivum, Płace Optivum. Jak przenieść dane na nowy komputer? Kadry Optivum, Płace Optivum Jak przenieść dane na nowy komputer? Aby kontynuować pracę z programem Kadry Optivum lub Płace Optivum (lub z obydwoma programami pracującymi na wspólnej bazie danych) na nowym

Bardziej szczegółowo

Budowa aplikacji ASP.NET współpracującej z bazą dany do przeprowadzania ankiet internetowych

Budowa aplikacji ASP.NET współpracującej z bazą dany do przeprowadzania ankiet internetowych Budowa aplikacji ASP.NET współpracującej z bazą dany do przeprowadzania ankiet internetowych widok ankiety w przeglądarce Rozpoczniemy od zaprojektowania bazy danych w programie SYBASE/PowerDesigner umieszczamy

Bardziej szczegółowo

Tematy seminariów wg Roger S. Pressman, Praktyczne podejście do oprogramowania, WNT, Zofia Kruczkiewicz

Tematy seminariów wg Roger S. Pressman, Praktyczne podejście do oprogramowania, WNT, Zofia Kruczkiewicz Tematy seminariów wg Roger S. Pressman, Praktyczne podejście do oprogramowania, WNT, 2004 Zofia Kruczkiewicz 1. Przedstaw znaczenie oprogramowania we współczesnym świecie x 1 2. Jaki wpływ na ludzi, komunikację

Bardziej szczegółowo

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych PAŃSTWOWA WYŻSZA SZKOŁA ZAWODOWA W ELBLĄGU INSTYTUT INFORMATYKI STOSOWANEJ Sprawozdanie z Seminarium Dyplomowego Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

Bardziej szczegółowo

Procesowa specyfikacja systemów IT

Procesowa specyfikacja systemów IT Procesowa specyfikacja systemów IT BOC Group BOC Information Technologies Consulting Sp. z o.o. e-mail: boc@boc-pl.com Tel.: (+48 22) 628 00 15, 696 69 26 Fax: (+48 22) 621 66 88 BOC Management Office

Bardziej szczegółowo

YOUR SOFTWARE CHALLENGE IS OUR MISSION. Case Study POLITYKA

YOUR SOFTWARE CHALLENGE IS OUR MISSION. Case Study POLITYKA YOUR SOFTWARE CHALLENGE IS OUR MISSION Case Study POLITYKA PROBLEM KLIENTA Szybko postępujące zmiany przemysłu wydawniczego, spowodowane przez rewolucję technologiczną, wymagają dostosowywania do trendów

Bardziej szczegółowo

Zawartość. Wstęp. Moduł Rozbiórki. Wstęp Instalacja Konfiguracja Uruchomienie i praca z raportem... 6

Zawartość. Wstęp. Moduł Rozbiórki. Wstęp Instalacja Konfiguracja Uruchomienie i praca z raportem... 6 Zawartość Wstęp... 1 Instalacja... 2 Konfiguracja... 2 Uruchomienie i praca z raportem... 6 Wstęp Rozwiązanie przygotowane z myślą o użytkownikach którzy potrzebują narzędzie do podziału, rozkładu, rozbiórki

Bardziej szczegółowo

Voicer. SPIKON Aplikacja Voicer V100

Voicer. SPIKON Aplikacja Voicer V100 Voicer SPIKON Aplikacja Voicer V100 SPIKON Voicer Aplikacja Voicer w platformie SPIKON dedykowana jest przede wszystkim konsultantom kampanii wirtualnego Call Center. Dając łatwy dostęp do najważniejszych

Bardziej szczegółowo

AUREA BPM HP Software. TECNA Sp. z o.o. Strona 1 z 7

AUREA BPM HP Software. TECNA Sp. z o.o. Strona 1 z 7 AUREA BPM HP Software TECNA Sp. z o.o. Strona 1 z 7 HP APPLICATION LIFECYCLE MANAGEMENT Oprogramowanie Application Lifecycle Management (ALM, Zarządzanie Cyklem życia aplikacji) wspomaga utrzymanie kontroli

Bardziej szczegółowo

Leszek Stasiak Zastosowanie technologii LINQ w

Leszek Stasiak Zastosowanie technologii LINQ w Leszek Stasiak Zastosowanie technologii LINQ w C# 1. Wstęp - połączenie Do naszych zadań będziemy używać Microsoft Visual Studio 2010. Stwórzmy nowy projekt Windows Form Application. Mając do dyspozycji

Bardziej szczegółowo

Wykład VII. Programowanie III - semestr III Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

Wykład VII. Programowanie III - semestr III Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej Wykład VII - semestr III Kierunek Informatyka Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2014 c Copyright 2014 Janusz Słupik Wytwarzanie oprogramowania Model tworzenia oprogramowania

Bardziej szczegółowo

OfficeObjects e-forms

OfficeObjects e-forms OfficeObjects e-forms Rodan Development Sp. z o.o. 02-820 Warszawa, ul. Wyczółki 89, tel.: (+48-22) 643 92 08, fax: (+48-22) 643 92 10, http://www.rodan.pl Spis treści Wstęp... 3 Łatwość tworzenia i publikacji

Bardziej szczegółowo

mtim Dedykowane aplikacje mobilne dla TIM S.A.

mtim Dedykowane aplikacje mobilne dla TIM S.A. mtim Dedykowane aplikacje mobilne dla TIM S.A. O TIM TIM S.A. jest jednym z największych dystrybutorów artykułów elektrotechnicznych w Polsce. 25 lat w branży, z czego 17 lat na Giełdzie Papierów Wartościowych

Bardziej szczegółowo

Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych

Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych Obiekty reprezentują pewne pojęcia, przedmioty, elementy rzeczywistości. Obiekty udostępniają swoje usługi: metody operacje,

Bardziej szczegółowo

Przewodnik Szybki start

Przewodnik Szybki start Przewodnik Szybki start Program Microsoft Visio 2013 wygląda inaczej niż wcześniejsze wersje, dlatego przygotowaliśmy ten przewodnik, aby skrócić czas nauki jego obsługi. Zaktualizowane szablony Szablony

Bardziej szczegółowo

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32 Analiza i projektowanie oprogramowania Analiza i projektowanie oprogramowania 1/32 Analiza i projektowanie oprogramowania 2/32 Cel analizy Celem fazy określania wymagań jest udzielenie odpowiedzi na pytanie:

Bardziej szczegółowo

Ćwiczenie Nr 6 Przegląd pozostałych najważniejszych mechanizmów systemu operacyjnego Windows

Ćwiczenie Nr 6 Przegląd pozostałych najważniejszych mechanizmów systemu operacyjnego Windows Ćwiczenie Nr 6 Przegląd pozostałych najważniejszych mechanizmów systemu operacyjnego Windows Cel ćwiczenia: Zapoznanie się z: zarządzaniem systemami plików, zarządzaniem atrybutami plików, prawami do plików

Bardziej szczegółowo

Utworzenie aplikacji mobilnej Po uruchomieniu Visual Studio pokazuje się ekran powitalny. Po lewej stronie odnośniki do otworzenia lub stworzenia

Utworzenie aplikacji mobilnej Po uruchomieniu Visual Studio pokazuje się ekran powitalny. Po lewej stronie odnośniki do otworzenia lub stworzenia Utworzenie aplikacji mobilnej Po uruchomieniu Visual Studio pokazuje się ekran powitalny. Po lewej stronie odnośniki do otworzenia lub stworzenia nowego projektu (poniżej są utworzone projekty) Po kliknięciu

Bardziej szczegółowo

Tworzenie natywnych aplikacji na urządzenia mobilne - PhoneGap Tomasz Margalski

Tworzenie natywnych aplikacji na urządzenia mobilne - PhoneGap Tomasz Margalski Tworzenie natywnych aplikacji na urządzenia mobilne - PhoneGap Tomasz Margalski Agenda Dlaczego PhoneGap i co to jest? Możliwości PhoneGap Jak pisać aplikacje z PhoneGap? Konfiguracja i przykład aplikacji

Bardziej szczegółowo

Zarządzaj projektami efektywnie i na wysokim poziomie. Enovatio Projects SYSTEM ZARZĄDZANIA PROJEKTAMI

Zarządzaj projektami efektywnie i na wysokim poziomie. Enovatio Projects SYSTEM ZARZĄDZANIA PROJEKTAMI Sprawne zarządzanie projektami Tworzenie planów projektów Zwiększenie efektywności współpracy Kontrolowanie i zarządzanie zasobami jak również pracownikami Generowanie raportów Zarządzaj projektami efektywnie

Bardziej szczegółowo

OPROGRAMOWANIE WSPOMAGAJĄCE ZARZĄDZANIE PROJEKTAMI. PLANOWANIE ZADAŃ I HARMONOGRAMÓW. WYKRESY GANTTA

OPROGRAMOWANIE WSPOMAGAJĄCE ZARZĄDZANIE PROJEKTAMI. PLANOWANIE ZADAŃ I HARMONOGRAMÓW. WYKRESY GANTTA OPROGRAMOWANIE WSPOMAGAJĄCE ZARZĄDZANIE PROJEKTAMI. PLANOWANIE ZADAŃ I HARMONOGRAMÓW. WYKRESY GANTTA Projekt to metoda na osiągnięcie celów organizacyjnych. Jest to zbiór powiązanych ze sobą, zmierzających

Bardziej szczegółowo

Załącznik nr 1. Specyfikacja techniczna portalu internetowego Łódź, 15.10.2012 r.

Załącznik nr 1. Specyfikacja techniczna portalu internetowego Łódź, 15.10.2012 r. Załącznik nr 1. Specyfikacja techniczna portalu internetowego Łódź, 15.10.2012 r. Stworzenie platformy internetowej na potrzeby projektu. 1 Wykonanie portalu internetowego na potrzeby e-usługi, obejmującego

Bardziej szczegółowo

Wyjaśnienia z dnia r. do treści Zapytania Ofertowego nr ZO/3/FO/POPC/2017 w odpowiedzi na pytania dotyczące Zapytania ofertowego.

Wyjaśnienia z dnia r. do treści Zapytania Ofertowego nr ZO/3/FO/POPC/2017 w odpowiedzi na pytania dotyczące Zapytania ofertowego. Wyjaśnienia z dnia 14.09.2017r. do treści Zapytania Ofertowego nr ZO/3/FO/POPC/2017 w odpowiedzi na pytania dotyczące Zapytania ofertowego. 1. Czy dobrze rozumiem, że administracja portalem jest po Państwa

Bardziej szczegółowo

omnia.pl, ul. Kraszewskiego 62A, 37-500 Jarosław, tel. +48 16 621 58 10 www.omnia.pl kontakt@omnia.pl

omnia.pl, ul. Kraszewskiego 62A, 37-500 Jarosław, tel. +48 16 621 58 10 www.omnia.pl kontakt@omnia.pl .firma Dostarczamy profesjonalne usługi oparte o nowoczesne technologie internetowe Na wstępie Wszystko dla naszych Klientów Jesteśmy świadomi, że strona internetowa to niezastąpione źródło informacji,

Bardziej szczegółowo

Microsoft.NET: ASP.NET MVC + Entity Framework (Code First)

Microsoft.NET: ASP.NET MVC + Entity Framework (Code First) Microsoft.NET: ASP.NET MVC + Entity Framework (Code First) Do realizacji projektu potrzebne jest zintegrowane środowisko programistyczne Microsoft Visual Studio 2012. W ramach projektu budowana jest prosta

Bardziej szczegółowo

Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie.

Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie. Część XXII C++ w Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie. Ćwiczenie 1 1. Utwórz nowy projekt w Dev C++ i zapisz go na

Bardziej szczegółowo

Budowa aplikacji ASP.NET współpracującej z bazą dany do przeprowadzania ankiet internetowych

Budowa aplikacji ASP.NET współpracującej z bazą dany do przeprowadzania ankiet internetowych Budowa aplikacji ASP.NET współpracującej z bazą dany do przeprowadzania ankiet internetowych widok ankiety w przeglądarce Rozpoczniemy od zaprojektowania bazy danych w programie SYBASE/PowerDesigner umieszczamy

Bardziej szczegółowo

Klient poczty elektronicznej

Klient poczty elektronicznej Klient poczty elektronicznej Microsoft Outlook 2010 wysyłaj i odbieraj pocztę elektroniczną, zarządzaj kalendarzem, kontaktami oraz zadaniami. Aplikacja Outlook 2010 to narzędzie spełniające wszystkie

Bardziej szczegółowo

Obiekt klasy jest definiowany poprzez jej składniki. Składnikami są różne zmienne oraz funkcje. Składniki opisują rzeczywisty stan obiektu.

Obiekt klasy jest definiowany poprzez jej składniki. Składnikami są różne zmienne oraz funkcje. Składniki opisują rzeczywisty stan obiektu. Zrozumienie funkcji danych statycznych jest podstawą programowania obiektowego. W niniejszym artykule opiszę zasadę tworzenia klas statycznych w C#. Oprócz tego dowiesz się czym są statyczne pola i metody

Bardziej szczegółowo

ZAŁĄCZNIK NR 3 OPIS PRZEDMIOTU ZAMÓWIENIA DOTYCZĄCY WDROŻENIA PLATFORMY ZAKUPOWEJ

ZAŁĄCZNIK NR 3 OPIS PRZEDMIOTU ZAMÓWIENIA DOTYCZĄCY WDROŻENIA PLATFORMY ZAKUPOWEJ ZAŁĄCZNIK NR 3 OPIS PRZEDMIOTU ZAMÓWIENIA DOTYCZĄCY WDROŻENIA PLATFORMY ZAKUPOWEJ 1. PRZEDMIOT ZAMÓWIENIA Przedmiotem zamówienia jest dostarczenie i wdrożenie systemu informatycznego dalej Platforma zakupowa

Bardziej szczegółowo

HP Service Anywhere Uproszczenie zarządzania usługami IT

HP Service Anywhere Uproszczenie zarządzania usługami IT HP Service Anywhere Uproszczenie zarządzania usługami IT Robert Nowak Architekt rozwiązań HP Software Dlaczego Software as a Service? Najważniejsze powody za SaaS UZUPEŁNIENIE IT 2 Brak zasobów IT Ograniczone

Bardziej szczegółowo

DESIGNER APPLICATION. powered by

DESIGNER APPLICATION. powered by DESIGNER APPLICATION powered by O FIRMIE HiddenData specjalizuje się w technologii dystrybucji treści video w Internecie oraz w budowie złożonych, funkcjonalnych aplikacji internetowych i mobilnych. Budujemy

Bardziej szczegółowo

PDM wbudowany w Solid Edge

PDM wbudowany w Solid Edge PDM wbudowany w Solid Edge Firma GM System Integracja Systemów Inżynierskich Sp. z o.o. została założona w 2001 roku. Zajmujemy się dostarczaniem systemów CAD/CAM/CAE/PDM. Jesteśmy jednym z największych

Bardziej szczegółowo

MAMP: Można to pobrać i zainstalować z XAMPP: Można go pobrać i zainstalować z

MAMP: Można to pobrać i zainstalować z   XAMPP: Można go pobrać i zainstalować z WordPress : Omówienie I Instalacja Na początek, dlaczego byłbyś zainteresowany wykorzystaniem WordPressa razem z PhoneGap? Zapytałbym: "Dlaczego byś nie?" Moim zdaniem WordPress jest jednym z najłatwiejszych

Bardziej szczegółowo

System Comarch OPT!MA v. 17.1

System Comarch OPT!MA v. 17.1 System Comarch OPT!MA v. 17.1 Comarch OPT!MA Pulpit Menadżera v. 4.1 31-864 Kraków, Al. Jana Pawła II 41g tel. (12) 681 43 00, fax (12) 687 71 00 Dział Wsparcia Klienta i Partnera: (12) 681 43 00 http://www.comarch.pl/erp/

Bardziej szczegółowo

Mamy najlepsze ceny na rynku!

Mamy najlepsze ceny na rynku! M U LT I M E D I A C R E AT I O N H O U S E Jesteśmy zespołem programistów oraz grafików. Animacje i prezentacje multimedialne. Aplikacje mobilne i internetowe. Od 0 lat pracujemy dla najbardziej wymagających

Bardziej szczegółowo

Roger Access Control System. Aplikacja RCP Point. Wersja oprogramowania : 1.0.x Wersja dokumentu: Rev. C

Roger Access Control System. Aplikacja RCP Point. Wersja oprogramowania : 1.0.x Wersja dokumentu: Rev. C Roger Access Control System Aplikacja RCP Point Wersja oprogramowania : 1.0.x Wersja dokumentu: Rev. C Spis treści Spis treści... 2 1. Wstęp... 3 1.1 Przeznaczenie i główne cechy aplikacji... 3 1.2 Wymagania

Bardziej szczegółowo

timetrack Przewodnik Użytkownika timetrack Najważniejsze Funkcje

timetrack Przewodnik Użytkownika timetrack Najważniejsze Funkcje timetrack Przewodnik Użytkownika timetrack jest łatwą w obsłudze aplikacją, stworzoną do rejestracji czasu. Pozwala ona na zapisywanie czasu spędzonego z klientami oraz podczas pracy nad projektami i zadaniami

Bardziej szczegółowo

Piotr Dynia. PowerPivot. narzędzie do wielowymiarowej analizy danych

Piotr Dynia. PowerPivot. narzędzie do wielowymiarowej analizy danych Piotr Dynia PowerPivot narzędzie do wielowymiarowej analizy danych Od autora Wraz z wprowadzeniem na rynek nowej wersji pakietu Office: Microsoft Office 2010 udostępniono darmowy dodatek dla Excela o nazwie

Bardziej szczegółowo

REQB POZIOM PODSTAWOWY PRZYKŁADOWY EGZAMIN

REQB POZIOM PODSTAWOWY PRZYKŁADOWY EGZAMIN REQB POZIOM PODSTAWOWY PRZYKŁADOWY EGZAMIN Podziękowania REQB Poziom Podstawowy Przykładowy Egzamin Dokument ten został stworzony przez główny zespół Grupy Roboczej REQB dla Poziomu Podstawowego. Tłumaczenie

Bardziej szczegółowo

Instrukcja użytkownika

Instrukcja użytkownika Instrukcja użytkownika Menadżer Licencji Wersja 2013.0.1 Spis treści 1 WPROWADZENIE... 3 2 AKTUALIZACJA SERWISU KLUCZA HASP ORAZ ZDALNEGO SERWISU KLUCZA... 3 3 INSTALACJA... 3 4 MONITOR MENADŻERA LICENCJI...

Bardziej szczegółowo

ZAPYTANIE OFERTOWE. Zamawiający. Przedmiot zapytania ofertowego. Wrocław, dnia 23.03.2015 r.

ZAPYTANIE OFERTOWE. Zamawiający. Przedmiot zapytania ofertowego. Wrocław, dnia 23.03.2015 r. ZAPYTANIE OFERTOWE Wrocław, dnia 23.03.2015 r. W związku z realizacją przez Nova Telecom spółka z ograniczoną odpowiedzialnością, projektu pn.: Wdrożenie zintegrowanego systemu klasy B2B, umożliwiającego

Bardziej szczegółowo