Platformy programistyczne:.net i Java L ABORATORIUM 7,8: HACKATHON - JTTT



Podobne dokumenty
Platfomry programistyczne:.net i Jawa L ABORATORIUM 3: HACKATHON - JTTT

Platformy programistyczne:.net i Java WYKŁ AD 1: WPROWADZENIE

Platformy programistyczne:.net i Java WYKŁ AD 1: WPROWADZENIE

Podstawy technologii WWW

Programowanie obiektowe 2 - opis przedmiotu

Programowanie Komponentowe WebAPI

Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych.

Programowanie obiektowe

Platformy programistyczne:.net i Java WYKŁ AD 1: WPROWADZENIE

Opis zmian funkcjonalności platformy E-GIODO wprowadzających możliwość podpisania wniosku bezpośrednio w oknie przeglądarki.

Programowanie obiektowe 1 - opis przedmiotu

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

WOJSKOWA AKADEMIA TECHNICZNA

Systemy mobilne. Laboratorium. Dostęp do danych GPS w Windows Phone 7

Programowanie obiektowe

Wprowadzenie do programowania

Rok akademicki: 2012/2013 Kod: ZIE s Punkty ECTS: 3. Poziom studiów: Studia I stopnia Forma i tryb studiów: -

ActiveXperts SMS Messaging Server

EtiNET Projekt platformy internetowej dla studentów kierunku edukacja techniczno-informatyczna

Instrukcja laboratoryjna cz.3

OPTIMA PC v Program konfiguracyjny dla cyfrowych paneli domofonowy serii OPTIMA ELFON. Instrukcja obsługi. Rev 1

KARTA PRZEDMIOTU. Programowanie aplikacji internetowych

EXSO-CORE - specyfikacja

Praca w środowisku Visual Studio 2008, Visual C

Baza danych sql. 1. Wprowadzenie

Konspekt pracy inżynierskiej

Wykład Ćwiczenia Laboratorium Projekt Seminarium

Baza danych sql. 1. Wprowadzenie. 2. Repozytaria generyczne

Programowanie obiektowe Object programming. Elektrotechnika II stopień (I stopień / II stopień) Ogólno akademicki (ogólno akademicki / praktyczny)

System rejestracji wizyt w BIOBANKU Instrukcja uz ytkownika systemu

Referat Pracy Dyplomowej

Informatyka II. Laboratorium Aplikacja okienkowa

Wydział Informatyki, Elektroniki i Telekomunikacji. Katedra Informatyki

Programowanie dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop Spis treści

Wprowadzenie do laboratorium. Zasady obowiązujące na zajęciach. Wprowadzenie do narzędzi wykorzystywanych podczas laboratorium.

Instrukcja użytkownika

Modele danych walidacja widoki zorientowane na model

Wizualizacja pogody dla windsurferów

SYSTEM OPERACYJNY. Monika Słomian

Rejestratory Sił, Naprężeń.

Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Opis instalacji sterowników urządzeń INNOVA

Tworzenie pliku źródłowego w aplikacji POLTAX2B.

Programowanie proceduralne w języku C++ Podstawy

Programowanie urządzeń mobilnych. projekt 6 ( )

1.Wstęp. 2.Generowanie systemu w EDK

Instrukcja laboratoryjna

Mazowiecki Elektroniczny Wniosek Aplikacyjny

Język Java część 2 (przykładowa aplikacja)

NETBEANS PROFILER TOMASZ ŁUKASZUK

Programowanie obiektowe

Instrukcja generowania certyfikatu PFRON i podpisywania dokumentów aplikacji SODiR w technologii JS/PKCS 12

Specyfikacja implementacyjna aplikacji mobilnej

1. Opis aplikacji. 2. Przeprowadzanie pomiarów. 3. Tworzenie sprawozdania

Aplikacja do podpisu cyfrowego npodpis

Instrukcja użytkownika

Analiza i projektowanie aplikacji Java

Zaliczenie przedmiotu:

- Narzędzie Windows Forms. - Przykładowe aplikacje. Wyższa Metody Szkoła programowania Techniczno Ekonomiczna 1 w Świdnicy

Współpraca FDS z arkuszem kalkulacyjnym

KARTA KURSU. Student zna podstawy analizy, projektowania i programowani obiektowego oraz podstawy języka C++.

Wykaz zmian w programie SysLoger

KARTA KURSU (realizowanego w module specjalności)

Zmiany wprowadzone w pakiecie Projekt PSZ.eDOK Wersja PSZ.eDOK 6.0

Programowanie obiektowe

Dodawanie operacji dodatkowych w WAPRO Mag.

Programowanie aplikacji mobilnych

Programowanie zespołowe

Narzędzia podnoszące jakość procesu wytwarzania i wdrażania

Informatyka I stopień (I stopień / II stopień) Ogólnoakademicki (ogólno akademicki / praktyczny) stacjonarne (stacjonarne / niestacjonarne)

KURSY PROGRAMOWANIA DLA DZIECI

Instrukcja instalacji oprogramowania dla środowiska Windows

S P I S T R E Ś C I. Instrukcja obsługi

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje w roku akademickim 2012/2013. Przedmioty kierunkowe

Programowanie komputerowe. Geodezja i Kartografia I stopień (I stopień / II stopień) akademicki (ogólno akademicki / praktyczny)

Zapytanie ofertowe nr 1/IAP/2013 ( dotyczy modułu nr 1/IAP )

KARTA PRZEDMIOTU. Programowanie aplikacji sieciowych w języku C# D1_2

Krakowska Akademia im. Andrzeja Frycza Modrzewskiego. Karta przedmiotu. obowiązuje studentów, którzy rozpoczęli studia w roku akademickim 2012/2013

Programowanie na poziomie sprzętu. Programowanie w Windows API

NIEZAWODNE ROZWIĄZANIA SYSTEMÓW AUTOMATYKI. asix. Aktualizacja pakietu asix 4 do wersji 5 lub 6. Pomoc techniczna

Podstawy JavaScript ćwiczenia

Instrukcja laboratoryjna nr.4

Aplikacje WWW i PHP - opis przedmiotu

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

REFERAT PRACY DYPLOMOWEJ

INSTRUKCJA obsługi certyfikatów

Instrukcja użytkownika ARSoft-WZ1

GS2TelCOMM. Rozszerzenie do TelCOMM 2.0. Opracował: Michał Siatkowski Zatwierdził: IMIĘ I NAZWISKO

Integracja KS-ASW i KS-Medis z system CATO

KARTA MODUŁU KSZTAŁCENIA

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2012/2013

Instrukcja aktualizacji programu Integra 7

MeetingHelper. Aplikacja Android ułatwiająca przekazywanie materiałów pomiędzy uczestnikami spotkania. Instrukcja obsługi dla programisty

Instrukcja obsługi aplikacji Karty Pojazdów dla Dealerów Samochodowych

SYLABUS/KARTA PRZEDMIOTU

KURSY PROGRAMOWANIA DLA DZIECI

SHOPER INTEGRATOR XL BY CTI INSTRUKCJA

Projekt ZSWS. Instrukcja uŝytkowania narzędzia SAP Business Explorer Analyzer. 1 Uruchamianie programu i raportu. Tytuł: Strona: 1 z 31

Transkrypt:

Platformy programistyczne:.net i Java L ABORATORIUM 7,8: HACKATHON - JTTT

O co chodzi? - Przypomnienie Hackathon - http://en.wikipedia.org/wiki/hackathon A hackathon is an event in which computer programmers and others involved in software development, collaborate intensively on software projects Definiujemy sobie konkretny cel np. stworzenie prostej aplikacji Pracujemy w podgrupach, aby cel mógł być osiągnięty w trakcie kilku zajęć laboratoryjnych Na każdych zajęciach może być definiowany dodatkowy cel tematyczny Na każdych kolejnych zajęciach pracujemy w stałych grupach 2-3 osobowych Niezbędne linki: Visual Studio - http://www.visualstudio.com/ MSDN - http://msdn.microsoft.com/ StackOverflow - http://stackoverflow.com/ IFTTT - https://ifttt.com/

JTTT Jeśli to to wykonaj to

JTTT faza 3.0 to już było

JTTT faza 3.0 to już było To jest przykładowy schemat zależny od sposobu zamodelowania danych w aplikacji. W ramach ćwiczenia nie trzeba próbować go naśladować

Wprowadzenie pojęć API (Application Programming Interface) w ogólności sposób, w jaki elementy oprogramowania powinny/mogą ze sobą się komunikować JSON (JavaScript Object Notation) prosty, tekstowy format wymiany danych: Niezależny od języków programowania Dwie uniwersalne struktury danych: zbiór par nazwa / wartość, uporządkowana lista wartości Prosty w obsłudze, zorientowany na dane Mniejsza objętość niż w przypadku XML-a Bardzo popularny we wszelkich zastosowaniach webowych Przykładowy zestaw danych w JSONie { } books : [ { title : My First Book, Author : Fake Author }, { title : Test book, Author : Real Author } ]

JTTT faza 4.0 Celem fazy 4.0 jest podłączenie aplikacji do zewnętrznego API Chcemy móc decydować o akcjach w zależności od aktualnej pogody w danym miejscu Korzystamy z API http://openweathermap.org/, które dostarcza odpowiedź w JSONie Zadanie 1 (wstępne): Dodać nowy formularz do aplikacji, który na podstawie podanej nazwy miasta podaje informację o aktualnej pogodzie Zadanie 2: Dodać nowy warunek do wyboru, który sprawdza temperaturę pogody w podanym mieście Zadanie 3: Dodać nową akcję do wyboru, która pozwala na wyświetlenie rezultatów w okienku Zadanie 4: (dodatkowe) Uruchamiać sprawdzenie listy zadań w osobnym wątku

JTTT faza 4.0, zadanie 1 W ramach tego zadania przygotowujemy prosty formularz, który wyświetla aktualny stan pogodowy w wybranym mieście To zadanie jest wstępne, żeby można było łatwiej sprawdzić, czy pobieranie danych o pogodzie działa poprawnie Zakres wyświetlanych danych można rozszerzyć w porównaniu do przykładowego okna poniżej

JTTT faza 4.0, zadanie 1 jak? Opis wykorzystywanego API: http://openweathermap.org/api Przykładowe wywołanie API: http://api.openweathermap.org/data/2.5/weather?q=wroclaw,pl Aby obejrzeć sformatowany ciąg znaków można użyć na przykład systemu http://jsonformatter.curiousconcept.com/ Specyfikacja danych pogodowych: http://openweathermap.org/weather-data Specyfikacja kodów odpowiedzi: http://openweathermap.org/weather-conditions Aby odczytać dane z API możemy użyć znanej już nam metody klasy WebClient

JTTT faza 4.0, zadanie 1 jak? Do deserializacji danych JSONowych używać będziemy biblioteki Json.NET http://james.newtonking.com/json (najlepiej zainstalować pakiet przez NuGeta) Przykładowe wywołanie metody deserializującej: JsonConvert.DeserializeObject<WeatherObject>(json) Aby wygodnie operować na danych potrzebujemy przygotować odpowiedni model danych w postaci klas zgodnych ze strukturą API Możemy pracowicie to napisać ręcznie na podstawie specyfikacji API lub Automatycznie wygenerować przy użyciu http://json2csharp.com/

JTTT faza 4.0, zadanie 2 System.Windows.Forms.TabControl

JTTT faza 4.0, zadanie 2 jak? Celem jest, aby można było wybrać jeden z dwóch warunków poprzedni (sprawdzenie podpisów pod obrazkami) lub nowy (sprawdzanie pogody) Parametry warunku: Nazwa miasta, dla którego sprawdzamy prognozę pogody Wartość temperatury, powyżej której uznajemy, że warunek jest spełniony Nowy warunek powinien zapisywać się w bazie danych równie dobrze, jak poprzedni Być może trzeba będzie przemodelować istniejącą strukturę klas, aby warunek był oddzielony od akcji Wartość temperatury powinna być przekazana do akcji tak, żeby w komunikacie była podana aktualna wartość (podobnie jak przekazujemy nazwę załącznika do wysyłki z demotywatorów)

JTTT faza 4.0, zadanie 3

JTTT faza 4.0, zadanie 3 jak? Celem jest, aby można było wybrać jedną z dwóch akcji poprzednią (wysyłanie maila z załącznikiem) lub nową (wyświetlanie okienka z treścią i załącznikiem) Obie akcje powinny być dostępne do użycia niezależnie od wybranego warunku Nowa rodzaj akcji powinien zapisywać się w bazie danych równie dobrze, jak poprzedni Akcje powinny otrzymywać i przechowywać dodatkowe informacje (np. nazwa obrazka z demotywatorów, wartość aktualnej temperatury z API) uwaga: tych informacji w bazie nie ma sensu zapisywać Być może potrzebna będzie klasa agregująca wybrany warunek i wybraną akcję (przykładowe rozwiązanie), gdzie zarówno warunek, jak i akcja dziedziczą po odpowiednich klasach abstrakcyjnych

JTTT faza 4.0, zadanie 4 jak? Celem jest uruchamianie sprawdzania listy zadań w osobnych wątkach Można wykorzystać mechanizm klasy System.Threading.Tasks.Task Uwaga! W aplikacji Windows Forms wszelkie operacje na elementach interfejsu użytkownika (jeżeli będą potrzebne) muszą być zsynchronizowane z głównym wątkiem aplikacji, patrz: BeginInvoke - http://msdn.microsoft.com/pl-pl/library/0b1bf3y3(v=vs.110).aspx Invoke - http://msdn.microsoft.com/pl-pl/library/a1hetckb(v=vs.110).aspx

Kilka dobrych rad Zacznij od napisania wersji, która działa, ale po uruchomieniu przystąp do refactoringu (tzn. do uporządkowania kodu, aby był czystszy, bardziej przejrzysty i przygotowany do dalszego rozwijania - http://en.wikipedia.org/wiki/code_refactoring ) Jeżeli nie wiesz, jak coś zrealizować szukaj w dokumentacji i studiuj przykłady kodu. Oraz pytaj, pytaj i jeszcze raz pytaj Jeżeli wklejasz kod z dokumentacji miej pewność, że rozumiesz jak działa Tworzony kod trzymaj w repozytorium Zaznacz w repozytorium autorów Zaproś do repozytorium prowadzącego Na kolejnych zajęciach (numer 7 i 8) będziemy rozwijać dalej tą samą aplikację, więc trzeba mieć pod ręką stabilną wersję

Zadanie domowe Przygotować działającą aplikację według minimalnego zakresu dla fazy 4.0 Przygotować całość tak, żeby można było zaprezentować osiągnięcia i otrzymać (pozytywną) oceną na koniec zajęć nr 8 Aplikację zsynchronizować z repozytorium na Bitbucket-cie Umieć pokazać w historii repozytorium, że każda osoba z grupy miała równy wkład w dostarczone rozwiązanie (git log będzie nam bardzo pomocny) Rozumieć i potrafić wytłumaczyć to, co się zrobiło To dotyczy wszystkich osób z grupy!

JTTT dalsze plany Zajęcia 7 i 8 poświęcone są na rozwijanie fazy 4.0 aplikacji JTTT Na koniec zajęć 8 każda grupa prezentuje swoje osiągnięcia i na tej podstawie otrzymuje ocenę za część laboratorium dotyczącą platformy.net Ostatnie zajęcia to będzie ostateczny termin oddawania pracy i ostateczny moment, kiedy można otrzymać ocenę z części.net Aby otrzymać ocenę z części.net konieczne jest być obecnym na zajęciach Na koniec semestru ocena z laboratorium będzie uśrednioną oceną z części.net i Java