Sync Framework na Windows Phone 7.5 tutorial

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

Download "Sync Framework na Windows Phone 7.5 tutorial"

Transkrypt

1 AKADEMIA GÓRNICZO-HUTNICZA WYDZIAŁ ELEKTROTECHNIKI, AUTOMATYKI, INFORMATYKI I ELEKTRONIKI KIERUNEK INFORMATYKA Sync Framework na Windows Phone 7.5 tutorial Autorzy PIOTR BOBER TOMASZ CUDEK Przedmiot BAZY DANYCH II Prowadzący dr inż. LESZEK SIWIK

2 1. Wstęp Celem niniejszego dokumentu jest zaprezentowanie użycia pakietu Micorosft Sync Framework do synchronizacji pomiędzy centralną bazą danych, a urządzeniami mobilnymi. Wymagania Będziemy używać serwera SQL Server 2008 z zainstalowaną bazą Northwind, urządzeniem mobilnym będzie telefon z systemem Windows Phone 7.5, w naszym przypadku emulator takiego urządzenia. Korzystamy z wersji 4.0 pakietu Sync Framework, która dostępna jest pod adresem: W programie używamy również zoptymalizowanej wersji niezdeterminowanego paska postępu (indeterminate progress bar) do śledzenia czy aplikacja przeprowadza w danej chwili sesję Sync. Ponieważ nie jest to istotna część projektu, implementacja paska nie jest omówiona w tym tutorialu, do projektu załączona jest odpowiednia biblioteka. Pasek oraz instrukcje w jaki sposób dodać go oraz używać w projekcie pobrane mogą zostać ze strony: msdn.microsoft.com/en-us/library/gg442303(v=vs.95).aspx 2. Przygotowanie środowiska pracy Najpierw należy zainstalować Microsoft SQL Server 2008 oraz Visual Studio Następnie, w zależności od wersji instalatora, może być potrzebna instalacja łatek bezpieczeństwa (Service Pack) do tych programów. Następnie należy zainstalować Windows Phone SDK ze strony: (mimo wersji SDK 7.1, obsługiwana jest też nowsza wersja 7.5) Ostatnim programem, który należy zainstalować, jest Sync Framework. Kolejnym krokiem jest stworzenie bazy Northwind - domyślnie nie jest dostępna z SQL Serverem. Instalator bazy można pobrać z: Po zainstalowaniu, uruchamiamy Microsoft SQL Server Management Studio, i otwieramy plik C:\SQL Server 2000 Sample Databases\instnwd.sql, po czym naciskając klawisz F5 uruchamiamy skrypt instalacyjny. Baza ta ma jedną wadę - w jednej z tabel kluczem głównym jest string, co powoduje nieprawidłowe zachowanie Sync Frameworka. Dlatego dołączamy swoją wersję bazy, ze zmienionym kluczem głównym na int. ~ 2 ~

3 3. Architektura sytemu Sync Framework narzuca korzystanie z architektury trójwarstwowej. Jedną warstwę tworzy serwer SQL, a drugą program po stronie klienta końcowego, czyli aplikacja mobilna, które jednak nie komunikują się ze sobą. Warstwą pośredniczącą jest serwis ASP, który z jednej strony odbiera żądania klienta, a z drugiej przesyła je do serwera SQL. 4. Automatyzacja generowania systemu wykorzystującego Sync Framework za pomocą narzędzia SyncUtilHelper Warstwa serwera SQL jest już gotowa - nic nie trzeba w niej zmieniać. Warstwa serwisu ASP - tutaj podstawowy serwis można wygenerować korzystając z narzędzia SyncSvcUtilHelper, które znajduje się w katalogu Microsoft SKDs\Microsoft Sync Framework\4.0\bin, zawartym na ogół w Program Files. Wygenerowanie wymaga wykonania trzech kroków - wyraźnie zaznaczonych w programie pomocniczym. ~ 3 ~

4 Pierwszy krok Określenie bazy danych do synchronizacji, serwera bazodanowego, sposobu autentykacji Najpierw musimy wybrać nazwę pliku, z konfiguracją generowanego serwisu. Następnie tworzymy nowe połączenie z bazą danych - klikając na Add, możemy ustalić konfigurację połączenia. Do uzupełnienia mamy: Config name - nazwę, pod jaką dane połączenie widnieje na liście połączeń. Wartośc jest dowolna. Db Server Db Name - nazwa serwera. Można ją zobaczyć w programie Microsoft SQL Server Managements Studio jako Server Name - nazwa wybranej bazy danych - w naszym przypadku Northwind Jako sposób autentykacji zostawiamy domyślny Use Windows Auth, chyba że podczas instalacji SQL Servera, wybraliśmy inny sposób. Na koniec możemy sprawdzić, czy wszystko dobrze wpisaliśmy, klikając na Test. Jeśli wszystko przebiegło pomyślnie, możemy zapisać to połączenie i przejść dalej. Określenie zakresów synchronizacji Microsoft Sync korzysta przy synchronizacji z zakresów (scope) - w momencie, gdy następuje zsynchronizowanie z bazą danych synchronizowane są wszystkie kolumny z tabel należących do pojedynczego zakresu. W naszej aplikacji ustalić musimy co najmniej trzy zakresy: DefaultScope - obejmuje on tabele: Emploeeys oraz Suppliers, w każdym kroku chcemy wyciągać z nich wszystkie rekordy. EmployeeOrderScope - obejmuje tabelę Orders filtrowaną po wybranym ID pracownika EmployeeCustomerScope - obejmuje tabelę Customers filtrowaną po ID klienta. Jeżeli chcemy przeprowadzać synchronizację z użyciem filtra, musimy zaznaczyć w ustawieniach zakresu opcję IsTemplateScope. Wybór tabel do synchronizacji W następnym etapie wybieramy tabele do synchronizacji, osobno dla każdego zakresu. Uwaga: Wybierając tabele do synchronizacji należy uważać, by nie deklarować tych samych tabel/kolumn w kilku różnych zakresach, gdyż uniemożliwi to przeprowadzenie pomyślnego zaopatrzenia (provisioning) bazy danych. Klikamy na Add / Edit, w następnym kroku wybieramy zapisaną wcześniej nazwę połączenia z bazą i możemy wybierać, które tabele należy synchronizować. Zaznaczając w odpowiednim wierszu kolumnę Sync? określamy, że ta kolumna tabeli będzie synchronizowana. Zaznaczenie Filter? pozwala określić kryterium, jakie muszą spełniać wartości w danej kolumnie, by były synchronizowane. Następnie klikamy Next i możemy zobaczyć podsumowanie. Klikamy Finish i kończymy ten etap konfiguracji, program wygeneruje automatycznie plik konfiguracyjny. ~ 4 ~

5 Drugi krok W tym kroku wybieramy wygenerowany wcześniej plik konfiguracyjny i zaznaczamy opcję provision. Klikamy Next, a następnie Finish. Provisioning musimy przeprowadzić dla każdego ze zdefiniowanych we wcześniejszym kroku zakresów. Powoduje on utworzenie we wskazanej bazie danych tabel, których Sync Framework używa do przechowywania meta danych potrzebnych do przeprowadzenia synchronizacji. W przypadku, gdy baza danych jest już zaopatrzona w tablice z metadanymi, a chcemy ustalić dla niektórych tabel inne konfiguracje Sync Framework, to przed wykonaniem zaopatrzenia musimy wykonać deprovisoning, podając odpowiedni plik konfiguracyjny oraz zakres, który będziemy chcieli następnie użyć do zaopatrzenia bazy. Trzeci krok W tym kroku generujemy podstawowe pliki źródłowe. W pierwszym kroku wybieramy plik konfiguracyjny. Następnie wybieramy dla jakiego programu chcemy wygenerować pliki: Server - dla serwisu ASP IsolatedStore Client - dla aplikacji na telefon Wybieramy, gdzie mają być zapisane wygenerowane pliki. Możemy też wybrać język: C# lub Visual Basic, a także w jakiej przestrzeni nazw będą widniały wygenerowane klasy. Klikając Next, wygenerujemy pliki. Musimy wygenerować osobne pliki dla każdego z zakersów. Wszystkie dalsze operacje będą już wykonywane w ramach Visual Studio. Uwaga: Mimo, że część plików tworzonych przez SyncUtilHelper zarówno dla serwera jak i klienta maj identyczną nazwę, to jednak zawartość tych plików jest różna. Należy zwrócić na to uwagę, gdyż może być to przyczyną niezrozumiałych błędów lub niewyjaśnionych brakujących klas. 5. Zaopatrywanie bazy danych - obserwacje Do poprawnego działa Sync Framework potrzebuje dodatkowych tabel, w których zapisuje dane potrzebne do synchronizacji. Jak było wcześniej wspomniane są one dodawane do bazy danych na etapie wykonania operacji provision przez narzędzie SyncUtilHelper. Każda tabela, która ma być synchronizowana posiada odpowiadającą tabelę do zapisywania zmian wartości od ostatniej synchronizacji. Nazwa takich tabel to X_tracking. ~ 5 ~

6 Tabela taka ma następujące kolumny: klucz główny - odpowiada kluczowi głównemu tabeli, którą opisuje identyfikator zakresu, w ramach którego odbyła się ostatnia aktualizacja lub usunięcie identyfikator węzła, który był odpowiedzialny za ostatnią zmianę znacznik czasowy w węźle, w chwili zmiany lokalny identyfikator węzła lokalny znacznik czasowy węzła identyfikator węzła, który dodał nowy rekord - zawiera NULL, gdy odbyła się aktualizacja identyfikator węzła, który dokonał wstawienia znacznik czasowy w węźle, w chwili wstawienia lokalny identyfikator węzła lokalny znacznik czasowy węzła flagę określającą, czy dany rekord dotyczy elementu już usuniętego z wyjściowej tabeli czas ostatniej zmiany czas ostatniego przywracania wartości opcjonalnie - kolumny zawierające wartości z kolumn wbranych do filtrowania Także z każdym zakresem jest związana reprezentująca go tabela, która zawiera: identyfikator zakresem - w postaci GUID liczbę identyfikującą zakres nazwę zakresu binarną reprezentację wiedzy zakresu oraz wiedzy już zapomnianej znacznik czasowy ostatniej zmiany w danym zakresie ostatni czas czyszczenia (zapominania wiedzy) zakresu Dodatkowo są tabele zawierające informacje o bieżącej wersji schematu bazy, wybranych parametrach oraz wybranych w ramach SyncUtilHelpera szablonach. Dodatkowo są tabele zawierające informacje o bieżącej wersji schematu bazy, wybranych parametrach oraz wybranych w ramach SyncUtilHelpera szablonach. 6. Strona serwerowa 6.1 Utworzenie serwisu ASP Uruchamiamy Visual Studio i z menu File->New Project tworzymy nowy projekt. Wybieramy Visual C# -> Web i wybieramy ASP.NET Empty Web Application. Wybieramy folder z wygenerowanymi plikami dla serwera. Następnie dodajemy referencje: w oknie Solution Explorer klikamy prawym klawiszem na References->Add Reference. W zakładce.net wybieramy Microsoft.Synchronization.Services. Na końcu dodajemy do projektu wszystkie wygenerowane pliki. W każdym z wygenerowanych plików o nazwie <scopename>syncservice.svc musimy ponadto dopisać co najmniej dwie linijki określające dane do połączenia z bazą danych oraz nazwę zakresu. Na koniec pozostaje skompilowanie i uruchomienie serwera. W ten sposób strona serwisowa jest gotowa do użycia. ~ 6 ~

7 6.2 Kod serwera Zasadniczo, jedyną rzeczą, która wymaga uzupełnienia w wygenerowanym szkielecie, jest treść metody InitializeService, mówi też o tym umieszczony komentarz TODO. Pierwszą rzeczą, którą ustawiamy, jest nazwa serwera, czyli ServerConnectionString. Podajemy nazwę serwera jako Data Source, Initial Catalog to nazwa bazy, z której chcemy korzystać. Dodatkowo możemy użyć zintegrowanej ochrony - do logowania do serwera będzie wtedy użyte konto bieżącego użytkownika systemu Windows. Możemy również ustalić mechanizm rozwiązywania konfliktów - czy wygrywać ma strona serwerowa, czy kliencka. Ponadto, jeżeli synchronizujemy z użyciem filtrowania, musimy także dodać odpowiednie informacje o filtrowanych kolumnach. Należy podać nazwę kolumny oraz tabeli, a także nazwę używaną przez Sync (na ogół jest to oraz nazwa kolumny. Ponadto określamy typ tej kolumny. Obowiązkowo musimy jeszcze wybrać nazwę przestrzeni, z której korzystamy. Dodatkowo, możemy wymusić zgłaszanie czytelnych wyjątków (UseVerboseErrors) oraz pojawienie się specjalnej strony, która będzie zawierała informacje diagnostyczne. Cały kod dla zakresu EmployeeCustomersScope wygląda w naszym przypadku, tak: public class EmployeeCustomersScopeSyncService : Microsoft.Synchronization.Services.SyncService<EmployeeCustomersScopeOfflineEntities> public static void InitializeService( Microsoft.Synchronization.Services.ISyncServiceConfiguration config) config.serverconnectionstring = "Data Source=(local);Initial Catalog=Northwind;Integrated Security=true"; config.setenablescope("employeecustomersscope"); //only when your scope use filters config.addfilterparameterconfiguration( "customerid", "Customers", typeof(int)); config.enablediagnosticpage = true; config.useverboseerrors = true; Fig. Kod serwera dla zakresu EmployeeCustomerScope ~ 7 ~

8 7. Strona kliencka 7.1 Widoki Main Page Opis: Główna strona aplikacji, przedstawia ekran logowania, pozwala przejść na stronę wybranego pracownika Zawartość: Lista imion i nazwisk pracowników, pobrana z serwera bazodanowego Przyciski: Zaloguj: Odśwież: - loguje się na konto wybranego użytkownika, - przejście do widoku EmployeePage odświeżenie pamięci podręcznej i widoku, synchronizacja z bazą danych EmployeePage Opis: Zawartość: Ekran pracownika, wyświetla nazwisko aktualnie zalogowanego pracownika Hiperłącza do stron MySuppliers i MyOrders Hiperłącza: Dostawcy: Moje zamówienia: przejście do strony MySuppliers, zawierającej dane o wszystkich dostawcach przejście do strony MyOrders, zawierającej dane o wszystkich zamówieniach obsługiwanych przez zalogowanego pracownika ~ 8 ~

9 MySuppliers Opis: Zawartość: Strona zawierająca dane wszystkich dostawców pracujących dla firmy Northwind Traders. Można dodać nowego dostawcę, usunąć dostawcę, zmodyfikować dane dostawcy. Tablica danych dostawców, kolumny: Nazwa Przedstawiciel Tytuł przedstawiciela Ulica Miasto Kod pocztowy Telefon Dane w tablicy można edytować Przyciski: Dodaj: Odśwież: - przenosi na stronę NewSupplier, na której możemy dodać nowego dostawcę - odświeżenie pamięci podręcznej i widoku, synchronizacja z bazą danych Usuń: NewSupplier - usuwa wszystkie zaznaczone wiersze, jeżeli usunięcie wiersza naruszyłoby warunki integralnościowe bazy, konflikt zostaje rozwiązany na korzyść serwera, tj. wiersz nie jest usuwany, jego rekord dodawany jest z powrotem do kontekstu Opis: Ekran na którym edytuje się dane dostawcy, którego chcemy dodać do bazy Zawartość: Pola do edycji danych dodawanego dostawcy: Nazwa firmy Nazwa przedstawiciela Tytuł przedstawiciela Adres Miasto Kod pocztowy Państwo Telefon Przyciski: Dodaj: Anuluj: przenosi użytkownika na stronę MySuppliers, po czym następuje dodanie dostawcy do bazy danych przenosi użytkownika na stronęmysuppliers ~ 9 ~

10 MyOrders Opis: Zawartość: Przedstawia zamówienia obsłużone przez pracownika, pozwala wyświetlić dane klienta, który dokonał zamówienia Tablica danych zamówień, kolumny: ID zamówienia Firma Ulica Miasto Państwo Tablicy tej nie można edytować. Przyciski: Odśwież: Info: odświeżenie pamięci podręcznej i widoku, synchronizacja z bazą danych przejście do strony MySuppliers wyświetlającej dane użytkownika, który dokonał zamówienia MyCustomers Opis: Zawartość: Informacje o kliencie Tablica danych klienta, dane można edytować, kolumny: Nazwa firmy Przedstawiciel firmy Tytuł przedstawiciela Adres Miasto Kod pocztowy Kraj Telefon Przyciski: Odśwież: odświeżenie pamięci podręcznej i widoku, synchronizacja z bazą danych ~ 10 ~

11 7.2 Utworzenie projektu aplikacji mobilnej Uruchamiamy Visual Studio i tworzymy projekt: C# -> Silverlight for Windows Phone i wybieramy Windows Phone Application. Wybieramy wersję Windows Phone 7.1 Następnie dodajemy do projektu pliki wygenerowane przez SyncUtilHelper dla strony klienckiej. Musimy dodać referencje. Są to: Microsoft.Synchronization.ClientServices, którą można znaleźć w katalogu C:\Program Files\Microsoft SDKs\Microsoft Sync Framework\4.0\Client\WP7 System.ComponentModel.DataAnnotations z katalogu : C:\Program Files\Microsoft SDKs\Silverlight\v3.0\Libraries\Client\System.ComponentModel.DataAnnotations.dll Przy dodawaniu referencji pojawiają się ostrzeżenia, które można zignorować. 7.3 Omówienie kodu strony MySupliers W kolejnych podrozdziałach w szczegółowy sposób zaprezentowane zostanie stworzenie jednej ze stron aplikacji klienckiej - strony MySuppliers. Zostanie w nich omówiony kod, głównie pod kątem synchronizacji, ale znajdą się również ogólne spostrzeżenia oraz wnioski na temat pisania aplikacji mobilnych. Ponieważ kod odpowiedzialny za każdą ze stron w naszej aplikacji jest bardzo podobny, przeprowadzimy analizę utworzenia tylko tej jednej przykładowej strony, zawierającej większość użytych przez nas w projekcie mechanizmów synchronizacji XAML Utworzenie aplikacji klienckiej wymaga znacznie więcej pracy, niż utworzenie strony serwerowej. Przede wszystkim trzeba utworzyć odpowiednie formatki - w zasadzie powinna być jedna formatka do każdej tabeli, a uwzględniając możliwość dodawania danych - nawet więcej. Formatki można wyklikać za pomocą narzędzi oferowanych przez Visual Studio, ale w przypadku korzystania z zewnętrznych zbiorów danych wygodnym mechanizmem jest Data Binding - dlatego nieuniknione jest korzystanie ze znaczników XAML. Strona MySuppliers wyświetla listę wszystkich dostawców - nazwy firm, reprezentantów firm, adresy, kody pocztowe, miasta, państwa, telefony. Możemy modyfikować rekordy dostawców, dodać nowego dostawcę (zostaniemy przekierowani na stronę, na której będziemy musieli uzupełnić ich dane kontaktowe) lub usunąć istniejących. Samo tworzenie interfejsu dla telefonów w technologii Silverlight nie różni się bardzo od tworzenia interfejsu dla komputerów stacjonarnych, dlatego nie skupimy się aż tak bardzo na samym tworzeniu GUI. Do wyświetlania danych użyjemy data bindingu. Ponieważ z tabeli Suppliers interesują nas tylko wybrane kolumny, to musimy stworzyć szablon elementu listy, który definiujemy następująco (niektóre atrybuty XAML zostały pominięte dla większej czytelności): ~ 11 ~

12 <ListBox Name="suppliers" ItemsSource="Binding Path=AllSuppliers, Mode=TwoWay"> <ListBox.ItemTemplate> <DataTemplate> <Grid UseLayoutRounding="False" AllowDrop="False"> <Grid.ColumnDefinitions> <ColumnDefinition Width="60"/> <ColumnDefinition Width="200" /> <ColumnDefinition Width="200" /> <ColumnDefinition Width="200" /> <ColumnDefinition Width="200" /> <ColumnDefinition Width="200" /> <ColumnDefinition Width="200" /> <ColumnDefinition Width="200" /> </Grid.ColumnDefinitions> <CheckBoxIsChecked="Binding first, Mode=TwoWay" Grid.Column="0" /> <TextBox Text="Binding second.companyname, Mode=TwoWay" Grid.Column="1"/> <TextBox Text="Binding second.contactname, Mode=TwoWay" Grid.Column="2"/> <TextBox Text="Binding second.contacttitle, Mode=TwoWay" Grid.Column="3"/> <TextBox Text="Binding second.address, Mode=TwoWay" Grid.Column="4" /> <TextBox Text="Binding second.city, Mode=TwoWay" Grid.Column="5" /> <TextBox Text="Binding second.postalcode, Mode=TwoWay" Grid.Column="6" /> <TextBox Text="Binding second.country, Mode=TwoWay" Grid.Column="7" /> <TextBox Text="Binding second.phone, Mode=TwoWay" Grid.Column="8" /> </Grid> </DataTemplate> </ListBox.ItemTemplate> </ListBox> Fig. Data binding Uwaga: gdy dopuszczamy możliwość edycji danych, należy przy data bindingu dodać opcję: Mode=TwoWay, w celu automatycznego aktualizowania. Pozostałe formatki tworzymy podobnie - korzystając z DependencyProperty Kod C# Kontener do przechowywania synchronizowanych danych Dane, które chcemy synchronizować będą mogą zmieniać się w czasie. Wywołania SyncFramework są asynchroniczne, musimy zapewnić, że w chwili zmiany właściwości AllEmployees, GUI zostanie o tym powiadomione i odświeży swoją zawartość. Żeby nie tworzyć tego ręcznie, skorzystamy z klas DependencyProperty i ObservableCollection, które załatwiają odpowiednie notyfikacje w imieniu programisty. Best practice DependecnyProperty zakłada, że najpierw deklarujemy publiczne, statyczne pole typu DependencyProperty, które inicjalizujemy statyczną metodą Register wspomnianej klasy. Jako pierwszy argument podajemy nazwę właściwości, to ona jest widoczna w Data Bindingu. Następnie podajemy typ, typ okna, oraz metadane - metadane w naszym przypadku nie są potrzebne, więc są ustawione na null. Następnie tworzymy zwykłą właściwość, o nazwie i typie takich jak w wywołaniu metody register. Get i Set korzystają z funkcji (odpowiednio): GetValue i SetValue. ~ 12 ~

13 public static DependencyProperty AllSuppliersProperty = v DependencyProperty.Register( "AllSuppliers", typeof(observablecollection<pair<bool, Suppliers>>), typeof(mysuppliers), null); public ObservableCollection<Pair<bool, Suppliers>> AllSuppliers get return (ObservableCollection<Pair<bool, Suppliers>>) GetValue(AllSuppliersProperty); set SetValue(AllSuppliersProperty, value); Fig. Utworzenie ObservableCollection Po każdym odświeżeniu kontekstu następuje przypisanie odpowiedniej jego zawartości do naszej kolekcji, co pociąga za sobą odświeżenie widoku strony: void CacheController_RefreshCompleted(object sender, Microsoft.Synchronization.ClientServices.RefreshCompletedEventArgs e) progressbar.visibility = Visibility.Collapsed; iscachebusy = false; if (iscacheopen) AllSuppliers = new ObservableCollection<Pair<bool, Suppliers>>( Pair<bool, Suppliers>.createPair(suppliersContext.SuppliersCollection)); if (e.error!= null) Dispatcher.BeginInvoke(delegate MessageBox.Show(e.Error.ToString()); ); Fig. Handler obsługujący zdarzenie wywoływane po odświeżeniu pamięci podręcznej, zaznaczona część kodu powoduje odświeżenie widoku strony Elementy aplikacji, uwagi ogólne Trzy funkcje do obsługi powiadomień: załadowanie formatki (this.loaded) - w tej funkcji ładujemy obiekt kontekstu wywołując: context.loadasync(). context.loadcompleted - to powiadomienie dostaniemy, gdy wszystkie dane z głównej bazy zostaną ściągnięte. Wtedy musimy zmienić zawartość właściwości AllSuppiers. Ponieważ jednak, powiadomienie i GUI pracują w różnych wątkach, trzeba użyć do zmiany obiektu Dispatcher. Przykładowy kod: Dispatcher.BeginInvoke( delegate AllSuppliers = new ObservableCollection<Pair<bool, Suppliers>>( Pair<bool, Suppliers>.createPair( supplierscontext.supplierscollection)); ); Fig. Użycie dispatchera ~ 13 ~

14 CacheController.RefreshComplete - w tym powiadomieniu sprawdzamy i wyświetlamy ewentualne błędy. Odświeżenie zawartość kontekstu robimy przez wywołanie: context.cachecontroller.refreshasync(). Natomiast przechodzenie między formatkami tworzymy przez NavigationService. Poza tym tworzymy jeszcze odpowiednie callbacki dla przycisków. Obsługa przechodzenia (navigation) między stronami realizowana jest za pomocą funkcji OnNavigatedTo, OnNavigatingFrom, obsługujących odpowiednio wywołania zdarzeń NavigatedTo i NavigatingFrom. Warto tu podkreślić możliwość przesyłania danych między formatkami, tak jak w adresie internetowym, np: NavigationService.Navigate(new Uri("/Forms/EmployeePage.xaml?employeeID=" + emp.employeeid + "&employeename=" + emp.lastname, UriKind.Relative)); Fig. Przykładowe przejście ze strony MainPage do EmployeePage Odczyt tak przesłanych danych odbywa się przez przeładowanie metody OnNavigatedTo: protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e) base.onnavigatedto(e); NavigationContext.QueryString.TryGetValue("employeeID", out id); NavigationContext.QueryString.TryGetValue("employeeName", out empl); EmployeeName = empl; Fig. Przykładowe odczytanie danych z URI przy wejściu na stronę EmployeePage Synchronizacja aplikacji Do synchronizacji operacji w MySuppliers używamy dwóch zmiennych logicznych: iscacheopen oraz iscachebusy. Pierwsza z nich informuje czy pamięć podręczna jest w danej chwili otwarta, natomiast druga, czy nie jest w danej chwili przeprowadzana operacja synchronizacji (a dokładniej, jest równe true, jeżeli nastąpiło wywołanie żądania synchronizacji z serwerem bazodanowym i nie wykonał się jeszcze handler obsługujący wydarzenie RefreshCompleted, wywoływany po zakończeniu synchronizacji i odświeżaniu pamięci podręcznej), ich domyślne wartości są równe false. Synchronizacja jest niezbędna, ponieważ musimy zapewnić, że w danej chwili, dla pamięci podręcznej może być wykonywana jedna i tylko jedna sesja Sync oraz że nie będziemy próbowali wykonywać operacji na zamkniętym cache u. Ponieważ wartości iscacheopen i iscachebusy zmiennych będziemy zmieniać tylko i wyłącznie wewnątrz bloków obsługi zdarzeń, nie musimy się martwić o atomiczność tych operacji, gdyż obsługa zdarzeń jest automatycznie synchronizowana przez wewnętrzne mechanizmy.net. ~ 14 ~

15 Zmienne: iscacheopened jest ustawiana na true, po tym jak, pamięć zostanie otworzona przez kontroler, wartość false przyjmuje w momencie, gdy cache zostanie zamknięty, czyli w praktyce w czasie opuszczania strony. Jakiekolwiek operacje związane z zestawianiem sesji Sync mogą się odbyć wyłącznie, gdy parametr ten jest ustawiony na true. iscachebusy zostaje ustawiona na true, gdy zestawiona ma zostać sesja Sync, czyli przed wykonaniem operacji dodania, usunięcia rekordu lub odświeżenia widoku. Wartość false przyjmuje, gdy zakończone zostanie odświeżanie cache a. Sprawdzanie zmiennej odbywa się przed wykonaniem jakiejkolwiek operacji modyfikującej zawartość cache a lub bazy danych. Spełniony w ten sposób zostaje warunek, że w danej chwili odbywać się może tylko jedna sesja Sync (użytkownik może bardzo łatwo próbować zainicjować niedozwoloną podwójną sesję, choćby naciskając dwa razy pod rząd przycisk Odśwież. Pozostałe szczegóły synchronizacji zostaną omówione dokładniej w kolejnych podrozdziałach. Pamięć podręczna (cache) Pamięć podręczna jest wykorzystywana przy synchronizacji maszyny lokalnej ze zdalnym serwisem synchronizacyjnym. Dostęp do cache a uzyskujemy poprzez obiekt klasy CacheController, będący z polem klasy IsolatedStoreageOfflineContext(a właściwie jej specjalizacji, będącej obiektem SyncFramework, wygenerowanym przez SyncUtilHelper), odpowiadającej za komunikację z Izolowanym Magazynem (Isolated Storage), czyli przestrzenią do przechowywania danych używanych przez aplikację, do której dostępu nie mają inne aplikację. Ponieważ na Windows Phone żadna z aplikacji nie ma bezpośredniego dostępu do systemu plików, Izolowany Magazyn jest jedynym mechanizmem umożliwiającym zapis danych synchronizacyjnych do pamięci trwałej. Otwieranie pamięci podręcznej (cache) i Magazynu Izolowanego (Isolated Storeage) W pamięci podręcznej przechowujemy dane, w których przechowywane są metadane potrzebne do synchronizacji z serwisem Sync. Cache tworzymy przy instancjonowaniu obiektu klasy IsolatedStoreageOfflineContext. W konstruktorze obiektu podajemy nazwę pliku, w którym chcemy przechowywać dane dla usługi Sync, oraz Uri serwisu. Jeżeli cache wcześniej nie istniał zostanie stworzony i permanentnie powiązany z serwisem, w przeciwnym razie zostanie otworzony. W pamięci izolowanej zapisywane są rekordy pobrane z bazy danych w trakcie synchronizacji. Cache można otworzyć tylko dla Uri serwisu dla jakiego został utworzony. Cache jest jednoznacznie identyfikowany przez swoją nazwę. Dostęp do danej pamięci podręcznej może mieć w danej chwili tylko jeden kontroler. Jeżeli cache jest już otworzony, to ponowna próba jego otwarcia, zanim zostanie on zamknięty, spowoduje rzucenie wyjątku. DefaultScopeOfflineContext supplierscontext; //dziedziczy z IsoletedStoreageOfflineContext supplierscontext = new DefaultScopeOfflineContext("suppliers", new Uri("http://localhost:4000/DefaultScopeSyncService.svc/")); Fig. Utworzenie/Otwarcie cache a w pliku suppliers dla usługi zarejestrowanej pod adresem: ~ 15 ~

16 W przypadku, gdy obsługujemy synchronizację z filtrowaniem, np. wyszukujemy zamówienia dla konkretnego ID pracownika, to jeżeli dla każdego pracownika umieszczać będziemy dane w tej samej pamięci podręcznej to szybko się one pomieszają. Np. po synchronizacji z bazą danych pracownika o ID równym 1, pracownik z numerem 2 miałby, po synchronizacji i pobraniu zawartości cache a zarówno dane swoje, jak i poprzedniego pracownika. Stwarza to więc w takich przypadkach konieczność utworzenia osobnego cache a dla każdego z pracowników, by zapewnić, że zawierał on będzie wyłącznie interesujące nas dane. Aby to zrealizować pobieramy najpierw ID pracownika (zapisane w URI strony), następnie otwieramy pamięć podręczną, jako nazwę pliku podając orders indeksowane numerem pracownika (np. dla pracownika z o ID 1 orders1 ). Na koniec podajemy kontrolerowi informację o wartości ID dla którego ma filtrować rekordy z bazy danych. NavigationContext.QueryString.TryGetValue("employeeID", out employeeid); ordercontext = new EmployeeOrdersScopeOfflineContext( "orders" + employeeid, new Uri("http://localhost:4000/EmployeeOrdersScopeSyncService.svc/")); ordercontext.cachecontroller.controllerbehavior.addscopeparameters("employeeid", employeeid ); Fig. Utworzenie/Otwarcie cache a orders<employeeid> dla usługi zarejestrowanej pod adresem: Zamykanie pamięci podręcznej Opuszczając stronę musimy zamknąć pamięć podręczną, ponieważ, przy ponownym przejściu na tą samą stronę, dostalibyśmy wyjątek, próbując ponownie otworzyć niezamknięty cache. Robimy to w obsłudze zdarzenia opuszczenia strony (procedura zamknięcia pamięci podręcznej jest taka sama zarówno dla danych filtrowanych, jak i niefiltrowanych): protected override void OnNavigatingFrom(System.Windows.Navigation. NavigatingCancelEventArgs e) /* do uninteresting things */ supplierscontext.close(); base.onnavigatedfrom(e); Fig. Zamknięcie cache a Obsługa nawigacji Żądanie zmiany strony realizowane jest za pomocą uaktywnienia odpowiedniego zdarzenia oraz obsłużenia go przy pomocy dedykowanego handlera. Operacjom zmiany strony towarzyszą następujące zdarzenia: OnNavigatedTo : wywoływane przy wejściu użytkownika na stronę OnNavigatingFrom : wywoływane zanim użytkownik opuści stronę, można anulować przejście OnNavigatedFrom : wywoływane po tym jak użytkownik opuścił stronę OnBackKeyPress : wywoływane po naciśnięciu przycisku wstecz, można anulować przejście W naszym programie wystarcza nam obsługa zdarzeń OnNavigatedTo oraz OnNavigatingFrom. Dodatkowo, chociaż samo wywołanie zdarzeń może odbywać się asynchronicznie ich obsługa jest zsynchronizowana, za pomocą wewnętrznych mechanizmów dostarczanych przez.net Framework, dzięki czemu mamy pewność, że wykonanie wszystkich operacji zawartych w handlerze nigdy nie zostanie przerwane przez wystąpienie w tym czasie wywołania obsługi kolejnego zdarzenia. ~ 16 ~

17 Obsługa wejścia na stronę W handlerze wykonujemy takie czynności jak otworzenie cache a i ustawienie własności kontrolera. Potrzebne dane takie (np. ID pracownika) pobieramy z URI strony. Dodatkowo mamy możliwość dodania nowego dostawcy, procedura dodania dostawcy wygląda następująco: dane pracownika edytowane są w widoku NewSupplier, naciśnięcie przycisku Dodaj w tamtym widoku powoduje przekierowanie na stronę MyCustomers, przy czym w URI strony zapisywane są wszystkie dane odnośnie nowododanego dostawcy. Zatem w obsłudze wejścia na stronę musimy: Zainicjalizować kontroler pamięci podręcznej oraz otworzyć cache Sprawdzić, czy wejście na stronę nie nastąpiło w wyniku żądania dodania nowego klienta. Robimy to sprawdzając ilość wartości w URI (więcej niż jedną mamy tylko w przypadku, gdy zostaliśmy przekierowani ze strony służącej do dodawania nowego dostawcy) oraz czy wejście na stronę nie nastąpiło z powodu operacji cofnij / przywróć : NavigationContext.QueryString.Values.Count > 1 && e.navigationmode==system.windows.navigation.navigationmode.new Jeżeli warunki są spełnione dodajemy nowy wpis do kontekstu i przeprowadzamy synchronizację z bazą danych: Suppliers supplier = new Suppliers(); //wybierz niepowtarzajace sie id supplier.supplierid = shipperscontext.supplierscollection.max( s => s.supplierid) + 1; supplier.region = null; supplier.postalcode = NavigationContext.QueryString["PostalCode"]; supplier.phone = NavigationContext.QueryString["Phone"]; supplier.homepage = null; supplier.fax = null; supplier.country = NavigationContext.QueryString["Country"]; supplier.contacttitle = NavigationContext.QueryString["ContactTitle"]; supplier.contactname = NavigationContext.QueryString["ContactName"]; supplier.companyname = NavigationContext.QueryString["CompanyName"]; supplier.city = NavigationContext.QueryString["City"]; supplier.address = NavigationContext.QueryString["Address"]; shipperscontext.addsuppliers(supplier); shipperscontext.savechanges(); Fig. Zamknięcie cache a Zauważmy, że SuplierID, który z oczywistych względów nie jest definiowany przez użytkownika, musimy niestety ustawiać ręcznie i w dodatku w sposób, który nie naruszy warunków integralnościowych bazy danych, resztę wyciągamy z URI. Nowy obiekt dostawcy dodajemy do przechowywanej w pamięci podręcznej kolekcji po czym wywołujemy funkcję SaveChanges(), która zapisuje w pamięci izolowanej (Isolated Storeage) poczynione przez nas zmiany, wcześniej synchronizując je z serwerem. Ustawiamy również zmienne logiczne służące do synchronizacji, tz: iscacheopen = true. Cały handler obsługujący nawigację na stronę MySuppliers: ~ 17 ~

18 protected override void OnNavigatedTo( System.Windows.Navigation.NavigationEventArgs e) base.onnavigatedto(e); shipperscontext = new DefaultScopeOfflineContext("suppliers", new Uri("http://localhost:4000/DefaultScopeSyncService.svc/")); if (e.navigationmode==system.windows.navigation.navigationmode.new) /*jesli > 1 to dodano nowego dostawce*/ if (NavigationContext.QueryString.Values.Count > 1) Suppliers supplier = new Suppliers(); //wybierz niepowtarzajace sie id supplier.supplierid = shipperscontext.supplierscollection.max( s => s.supplierid) + 1; supplier.region = null; supplier.postalcode = NavigationContext.QueryString["PostalCode"]; supplier.phone = NavigationContext.QueryString["Phone"]; supplier.homepage = null; supplier.fax = null; supplier.country = NavigationContext.QueryString["Country"]; supplier.contacttitle = NavigationContext.QueryString["ContactTitle"]; supplier.contactname = NavigationContext.QueryString["ContactName"]; supplier.companyname = NavigationContext.QueryString["CompanyName"]; supplier.city = NavigationContext.QueryString["City"]; supplier.address = NavigationContext.QueryString["Address"]; shipperscontext.addsuppliers(supplier); shipperscontext.savechanges(); NavigationContext.QueryString.TryGetValue("employeeID", out employeeid); shipperscontext.cachecontroller.controllerbehavior.serializationformat = Microsoft.Synchronization.ClientServices.SerializationFormat.ODataAtom; shipperscontext.cachecontroller.refreshcompleted += new EventHandler<Microsoft.Synchronization.ClientServices.RefreshCompletedEventArgs>( CacheController_RefreshCompleted); shipperscontext.loadcompleted += new EventHandler<LoadCompletedEventArgs>( context_loadcompleted); this.loaded += new RoutedEventHandler(MySuppliers_Loaded); iscacheopen = true; Fig. Obsługa nawigacji na stronę MySuppliers Obsługa opuszczenia strony Opuszczając stronę musimy, jak to było wcześniej wspomniane zamknąć cache. Jest z tym związany, pewien drobny, na pierwszy rzut oka niewidoczny problem - jeżeli opuścimy stronę, w trackie sesji Sync, związanej np. z odświeżaniem pamięci podręcznej, nastąpi zwolnienie zasobów przechowywanych przez stronę, w tym także obserwowanej kolekcji AllSuppliers. Zauważmy, również, że w handlerze zdarzenia RefreshCompeted, wywoływanym po zakończeniu synchronizacji, nawet jeżeli strona została opuszczona, następuje przypisanie AllSupppliers zawartości pamięci podręcznej. Powoduje to rzucenie wyjątku. ~ 18 ~

19 void CacheController_RefreshCompleted(object sender, Microsoft.Synchronization.ClientServices.RefreshCompletedEventArgs e) progressbar.visibility = Visibility.Collapsed; iscachebusy = false; if (iscacheopen) AllSuppliers = new ObservableCollection<Pair<bool, Suppliers>>( Pair<bool, Suppliers>.createPair(suppliersContext.SuppliersCollection)); if (e.error!= null) Dispatcher.BeginInvoke(delegate MessageBox.Show(e.Error.ToString()); ); Fig. Kłopotliwy fragment kodu Aby się przed tym uchronić, przy zamykaniu strony sprawdzamy, czy zakończona została sesja Sync, jeżeli nie, operacja opuszczenia strony zostaje porzucona przez ustawienie property Cancel zdarzenia NavigatingCancelEventArgs na true. Ponadto ustawiamy również wartość zmiennej iscacheopen na false, zabraniając od tej pory wykonywania jakichkolwiek operacji związanych z dostępem do pamięci podręcznej. protected override void OnNavigatingFrom(System.Windows.Navigation.NavigatingCancelEventArgs e) if (iscachebusy) e.cancel = true; //nie wychodź ze strony return; iscacheopen = false; supplierscontext.close(); base.onnavigatingfrom(e); Fig. Operacje wykonywane przed opuszczeniem strony Uwagi końcowe W rozdziale przedstawiona została szczegółowa analiza przykładu ukazującego w jaki sposób zbudować na Windows Phone 7 prostą stronę dla aplikacji mobilnej wykorzystującej Sync Framework. Zostały omówione aspekty użycia SyncFramework, a także problemy związane z synchronizacją aplikacji. Pozostałe strony zostały zbudowane w sposób analogiczny, zrozumienie tego przykładu powinno wystarczyć, by czytelnik bez większych problemów zrozumiał resztę działania aplikacji, szczegóły implementacji znaleźć można w dostarczonych źródłach. 8. Podsumowanie Tutorial stanowi wprowadzenie do Microsoft Sync Framework. Dostarczona została przykładowa aplikacja mobilna wykorzystująca Sync Framework, wraz z serwisem umożliwiającym przeprowadzanie sesji Sync z bazą danych działającą na SQLServer, która została następnie szczegółowo opisana w niniejszym tutorialu. Przedstawione i zbadane zostały podstawowe mechanizmy synchronizacji udostępniane przez framework, a także podstawowe problemy z nimi związane dotyczące synchronizacji operacji i obsługi błędów, wynikających z wykonywania operacji na pamięci podręcznej oraz zestawiania sesji Sync. Omówione także zostało narzędzie graficzne SyncUtilFrameworkGUI pozwalające na: tworzenie plików konfiguracyjnych synchronizacji, zaopatrzenie (lub usunięcie) bazę danych w metadane potrzebne do synchronizacji oraz generację podstawowych plików źródłowych. ~ 19 ~

Budowa aplikacji ASP.NET współpracującej z bazą dany do obsługi przesyłania wiadomości

Budowa aplikacji ASP.NET współpracującej z bazą dany do obsługi przesyłania wiadomości Budowa aplikacji ASP.NET współpracującej z bazą dany do obsługi przesyłania wiadomości Rozpoczniemy od zaprojektowania bazy danych w programie SYBASE/PowerDesigner umieszczamy dwie Encje (tabele) prawym

Bardziej szczegółowo

Zaawansowane aplikacje internetowe - laboratorium

Zaawansowane aplikacje internetowe - laboratorium Zaawansowane aplikacje internetowe - laboratorium Web Services (część 3). Do wykonania ćwiczeń potrzebne jest zintegrowane środowisko programistyczne Microsoft Visual Studio 2005. Ponadto wymagany jest

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

ASP.NET MVC. Podstawy. Zaawansowane programowanie internetowe Instrukcja nr 3

ASP.NET MVC. Podstawy. Zaawansowane programowanie internetowe Instrukcja nr 3 3 ASP.NET MVC Podstawy 1 1. Cel zajęć Celem zajęć jest zapoznanie się z podstawami ASP.NET MVC 2.0 Framework. 2. Zadanie Proszę zbudować prostą aplikację WWW przy zastosowaniu framework a ASP.NET MVC 2.0

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

Instalacja Webroot SecureAnywhere przy użyciu GPO w Active Directory

Instalacja Webroot SecureAnywhere przy użyciu GPO w Active Directory Instalacja Webroot SecureAnywhere przy użyciu GPO w Active Directory Poniższa instrukcja opisuje sposób zdalnej instalacji oprogramowania Webroot SecureAnywhere w środowiskach wykorzystujących usługę Active

Bardziej szczegółowo

Currenda EPO Instrukcja Konfiguracji. Wersja dokumentu: 1.3

Currenda EPO Instrukcja Konfiguracji. Wersja dokumentu: 1.3 Currenda EPO Instrukcja Konfiguracji Wersja dokumentu: 1.3 Currenda EPO Instrukcja Konfiguracji - wersja dokumentu 1.3-19.08.2014 Spis treści 1 Wstęp... 4 1.1 Cel dokumentu... 4 1.2 Powiązane dokumenty...

Bardziej szczegółowo

WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem.

WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem. WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM NetBeans Wykonał: Jacek Ventzke informatyka sem. VI 1. Uruchamiamy program NetBeans (tu wersja 6.8 ) 2. Tworzymy

Bardziej szczegółowo

Wstęp. Opis ten dotyczy wydziałów orzeczniczych.

Wstęp. Opis ten dotyczy wydziałów orzeczniczych. Wstęp. Opis ten dotyczy wydziałów orzeczniczych. W związku z przekształceniem 79 Sądów w Wydziały Zamiejscowe i związane z tym liczne zapytania odnośnie strony technicznej i sposobu przygotowania baz danych

Bardziej szczegółowo

FS-Sezam SQL. Obsługa kart stałego klienta. INFOLINIA : tel. 14/698-20-02, kom. 608/92-10-60. edycja instrukcji : 2013-11-25

FS-Sezam SQL. Obsługa kart stałego klienta. INFOLINIA : tel. 14/698-20-02, kom. 608/92-10-60. edycja instrukcji : 2013-11-25 FS-Sezam SQL Obsługa kart stałego klienta INFOLINIA : tel. 14/698-20-02, kom. 608/92-10-60 edycja instrukcji : 2013-11-25 Aplikacja FS-Sezam SQL jest programem służącym do obsługi kart stałego klienta.

Bardziej szczegółowo

Instrukcja instalacji i obsługi programu Szpieg 3

Instrukcja instalacji i obsługi programu Szpieg 3 COMPUTER SERVICE CENTER 43-300 Bielsko-Biała ul. Cieszyńska 52 tel. +48 (33) 819 35 86, 819 35 87, 601 550 625 Instrukcja instalacji i obsługi programu Szpieg 3 wersja 0.0.2 123 SERWIS Sp. z o. o. ul.

Bardziej szczegółowo

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

S P I S T R E Ś C I. Instrukcja obsługi S P I S T R E Ś C I Instrukcja obsługi 1. Podstawowe informacje o programie.................................................................................... 2 2. Instalacja programu.....................................................................................................

Bardziej szczegółowo

Szpieg 2.0 Instrukcja użytkownika

Szpieg 2.0 Instrukcja użytkownika Szpieg 2.0 Instrukcja użytkownika Spis treści: Wstęp: 1. Informacje o programie 2. Wymagania techniczne Ustawienia: 3. Połączenie z bazą danych 4. Konfiguracja email 5. Administracja Funkcje programu:

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

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl Narzędzia i aplikacje Java EE Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl Niniejsze opracowanie wprowadza w technologię usług sieciowych i implementację usługi na platformie Java EE (JAX-WS) z

Bardziej szczegółowo

Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf. Materiały poprawione

Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf. Materiały poprawione Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf Materiały poprawione Rozwiązanie zadania w NetBeans IDE 7.4: Jarosław Ksybek, Adam Miazio Celem ćwiczenia jest przygotowanie prostej aplikacji

Bardziej szczegółowo

Instrukcja laboratoryjna cz.6

Instrukcja laboratoryjna cz.6 Programowanie aplikacji internetowych 2013/2014 Instrukcja laboratoryjna cz.6 Technologia Silverlight cz.2 Prowadzący: Tomasz Goluch Wersja: 3.0 I. Model danych (tworzenie bazy na podstawie modelu). Cel:

Bardziej szczegółowo

Synchronizator plików (SSC) - dokumentacja

Synchronizator plików (SSC) - dokumentacja SZARP http://www.szarp.org Synchronizator plików (SSC) - dokumentacja Wersja pliku: $Id: ssc.sgml 4420 2007-09-18 11:19:02Z schylek$ > 1. Witamy w programie SSC Synchronizator plików (SZARP Sync Client,

Bardziej szczegółowo

Instalacja systemu zarządzania treścią (CMS): Joomla

Instalacja systemu zarządzania treścią (CMS): Joomla Instalacja systemu zarządzania treścią (CMS): Joomla Na stronie http://www.cba.pl/ zarejestruj nowe konto klikając na przycisk:, następnie wybierz nazwę domeny (Rys. 1a) oraz wypełnij obowiązkowe pola

Bardziej szczegółowo

xmlns:prism=http://www.codeplex.com/prism c.

xmlns:prism=http://www.codeplex.com/prism c. <ContentControl prism:regionmanager.regionname=mainregion /> 1 Tworzenie Shella a. W pierwszej kolejności tworzymy nowy projekt: WPF Application. Name: Shell SolutionName: PrismApp b. Dodajemy bibliotekę PRISM za pomocą NuGet Managera (dla.net Framework 4.5 Prism

Bardziej szczegółowo

Instrukcja laboratoryjna cz.3

Instrukcja laboratoryjna cz.3 Języki programowania na platformie.net cz.2 2015/16 Instrukcja laboratoryjna cz.3 Język C++/CLI Prowadzący: Tomasz Goluch Wersja: 2.0 I. Utworzenie projektu C++/CLI z interfejsem graficznym WPF 1 Cel:

Bardziej szczegółowo

UNIWERSYTET RZESZOWSKI KATEDRA INFORMATYKI

UNIWERSYTET RZESZOWSKI KATEDRA INFORMATYKI UNIWERSYTET RZESZOWSKI KATEDRA INFORMATYKI LABORATORIUM TECHNOLOGIA SYSTEMÓW INFORMATYCZNYCH W BIOTECHNOLOGII Aplikacja bazodanowa: Cz. II Rzeszów, 2010 Strona 1 z 11 APLIKACJA BAZODANOWA MICROSOFT ACCESS

Bardziej szczegółowo

Przewodnik instalacji i rozpoczynania pracy. dla DataPage+ 2012

Przewodnik instalacji i rozpoczynania pracy. dla DataPage+ 2012 Przewodnik instalacji i rozpoczynania pracy dla DataPage+ 2012 Pomoc aktualizowano ostatnio: 29 sierpnia 2012 Spis treści Instalowanie wymaganych wstępnie komponentów... 1 Przegląd... 1 Krok 1: Uruchamianie

Bardziej szczegółowo

Instrukcja obsługi aplikacji MobileRaks 1.0

Instrukcja obsługi aplikacji MobileRaks 1.0 Instrukcja obsługi aplikacji MobileRaks 1.0 str. 1 Pierwsze uruchomienie aplikacji. Podczas pierwszego uruchomienia aplikacji należy skonfigurować połączenie z serwerem synchronizacji. Należy podać numer

Bardziej szczegółowo

Podręcznik instalacji i konfiguracji aplikacji 7 Office Ship Control dla Microsoft Office 2007 i 2010. Siódemka S.A. Warszawa, dnia 06.02.20112r.

Podręcznik instalacji i konfiguracji aplikacji 7 Office Ship Control dla Microsoft Office 2007 i 2010. Siódemka S.A. Warszawa, dnia 06.02.20112r. Podręcznik instalacji i konfiguracji aplikacji 7 Office Ship Control dla Microsoft Office 2007 i 2010 Siódemka S.A. Warszawa, dnia 06.02.20112r. 1 Spis treści: 1. Przed instalacją aplikacji 7 Office Ship

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

Instrukcja użytkownika. Aplikacja dla Comarch ERP XL

Instrukcja użytkownika. Aplikacja dla Comarch ERP XL Instrukcja użytkownika Aplikacja dla Comarch ERP XL Instrukcja użytkownika Aplikacja dla Comarch ERP XL Wersja 1.0 Warszawa, Listopad 2015 Strona 2 z 12 Instrukcja użytkownika Aplikacja dla Comarch ERP

Bardziej szczegółowo

Dokumentacja systemu NTP rekrut. Autor: Sławomir Miller

Dokumentacja systemu NTP rekrut. Autor: Sławomir Miller Dokumentacja systemu NTP rekrut Autor: Sławomir Miller 1 Spis treści: 1. Wstęp 1.1 Wprowadzenie 1.2 Zakres dokumentu 2. Instalacja 2.1 Wymagania systemowe 2.2 Początek 2.3 Prawa dostępu 2.4 Etapy instalacji

Bardziej szczegółowo

Instrukcja użytkownika. Aplikacja dla WF-Mag

Instrukcja użytkownika. Aplikacja dla WF-Mag Instrukcja użytkownika Aplikacja dla WF-Mag Instrukcja użytkownika Aplikacja dla WF-Mag Wersja 1.0 Warszawa, Kwiecień 2015 Strona 2 z 13 Instrukcja użytkownika Aplikacja dla WF-Mag Spis treści 1. Wstęp...4

Bardziej szczegółowo

1. Opis ogólny. 2. Opis techniczny. 3. Wymagania techniczne

1. Opis ogólny. 2. Opis techniczny. 3. Wymagania techniczne Dokumentacja programu e Zoz Opis biblioteki PhantomAPI.dll Wersja 1.22.1.5 Zielona Góra 2010-08-26 1. Opis ogólny Biblioteka programistyczna PhantomAPI.dll służy do integracji oprogramowania zewnętrznego

Bardziej szczegółowo

Internetowy serwis Era mail Aplikacja sieci Web

Internetowy serwis Era mail Aplikacja sieci Web Internetowy serwis Era mail Aplikacja sieci Web (www.login.eramail.pl) INSTRUKCJA OBSŁUGI Spis treści Internetowy serwis Era mail dostępny przez komputer z podłączeniem do Internetu (aplikacja sieci Web)

Bardziej szczegółowo

KONFIGURACJA KONTA POCZTOWEGO DO POBRANIA WIADOMOŚCI Z OBECNEGO SERWERA POCZTOWEGO. Zespół Systemów Sieciowych

KONFIGURACJA KONTA POCZTOWEGO DO POBRANIA WIADOMOŚCI Z OBECNEGO SERWERA POCZTOWEGO. Zespół Systemów Sieciowych KONFIGURACJA KONTA POCZTOWEGO DO POBRANIA WIADOMOŚCI Z OBECNEGO SERWERA POCZTOWEGO Zespół Systemów Sieciowych Spis treści 1. Konfiguracja klienta pocztowego Outlook Express 3 2. Konfiguracja klienta pocztowego

Bardziej szczegółowo

Rozdział ten zawiera informacje o sposobie konfiguracji i działania Modułu OPC.

Rozdział ten zawiera informacje o sposobie konfiguracji i działania Modułu OPC. 1 Moduł OPC Moduł OPC pozwala na komunikację z serwerami OPC pracującymi w oparciu o model DA (Data Access). Dzięki niemu można odczytać stan obiektów OPC (zmiennych zdefiniowanych w programie PLC), a

Bardziej szczegółowo

Przewodnik instalacji i rozpoczynania pracy. Dla DataPage+ 2013

Przewodnik instalacji i rozpoczynania pracy. Dla DataPage+ 2013 Przewodnik instalacji i rozpoczynania pracy Dla DataPage+ 2013 Ostatnia aktualizacja: 25 lipca 2013 Spis treści Instalowanie wymaganych wstępnie komponentów... 1 Przegląd... 1 Krok 1: Uruchamianie Setup.exe

Bardziej szczegółowo

Serwis jest dostępny w internecie pod adresem www.solidnyserwis.pl. Rysunek 1: Strona startowa solidnego serwisu

Serwis jest dostępny w internecie pod adresem www.solidnyserwis.pl. Rysunek 1: Strona startowa solidnego serwisu Spis treści 1. Zgłoszenia serwisowe wstęp... 2 2. Obsługa konta w solidnym serwisie... 2 Rejestracja w serwisie...3 Logowanie się do serwisu...4 Zmiana danych...5 3. Zakładanie i podgląd zgłoszenia...

Bardziej szczegółowo

Administracja Internetowymi systemami baz danych (niestacjonarne) Laboratorium 5. Reporting Services (SSRS), Integration Services (SSIS)

Administracja Internetowymi systemami baz danych (niestacjonarne) Laboratorium 5. Reporting Services (SSRS), Integration Services (SSIS) Administracja Internetowymi systemami baz danych (niestacjonarne) Laboratorium 5 Reporting Services (SSRS), Integration Services (SSIS) Instrukcja do laboratorium V: I. Tworzenie raportów II. Migracja

Bardziej szczegółowo

emszmal 3: Eksport wyciągów do Subiekt (Su\Re) GT (plugin dostępny wraz z dodatkiem Biznes)

emszmal 3: Eksport wyciągów do Subiekt (Su\Re) GT (plugin dostępny wraz z dodatkiem Biznes) emszmal 3: Eksport wyciągów do Subiekt (Su\Re) GT (plugin dostępny wraz z dodatkiem Biznes) Zastosowanie Rozszerzenie Eksport wyciągów do Subiekt (Su\Re) GT przeznaczone jest dla użytkowników programów

Bardziej szczegółowo

Budowa aplikacji ASP.NET współpracującej z bazą dany do obsługi przesyłania wiadomości

Budowa aplikacji ASP.NET współpracującej z bazą dany do obsługi przesyłania wiadomości Budowa aplikacji ASP.NET współpracującej z bazą dany do obsługi przesyłania wiadomości część 2 Zaprojektowaliśmy stronę dodaj_dzial.aspx proszę jednak spróbować dodać nowy dział nie podając jego nazwy

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

Instrukcja dla użytkowników Windows Vista Certyfikat Certum Basic ID

Instrukcja dla użytkowników Windows Vista Certyfikat Certum Basic ID Instrukcja dla użytkowników Windows Vista Certyfikat Certum Basic ID wersja 1.3 Spis treści 1. INSTALACJA CERTYFIKATU... 3 1.1. KLUCZ ZAPISANY BEZPOŚREDNIO DO PRZEGLĄDARKI (NA TYM KOMPUTERZE),... 3 1.2.

Bardziej szczegółowo

Certyfikat Certum Basic ID. Instrukcja dla użytkowników Windows Vista. wersja 1.3 UNIZETO TECHNOLOGIES SA

Certyfikat Certum Basic ID. Instrukcja dla użytkowników Windows Vista. wersja 1.3 UNIZETO TECHNOLOGIES SA Certyfikat Certum Basic ID Instrukcja dla użytkowników Windows Vista wersja 1.3 Spis treści 1. INSTALACJA CERTYFIKATU... 3 1.1. KLUCZ ZAPISANY BEZPOŚREDNIO DO PRZEGLĄDARKI (NA TYM KOMPUTERZE),... 3 1.2.

Bardziej szczegółowo

I. Informacje ogólne. Jednym z takich systemów jest Mambo.

I. Informacje ogólne. Jednym z takich systemów jest Mambo. MAMBO (CMS) I. Informacje ogólne CMS, Content Management System ("system zarządzania treścią") jest to jedna lub zestaw aplikacji internetowych pozwalających na łatwe utworzenie oraz późniejszą aktualizację

Bardziej szczegółowo

Przewodnik Szybki start

Przewodnik Szybki start Przewodnik Szybki start Program Microsoft Access 2013 wygląda inaczej niż wcześniejsze wersje, dlatego przygotowaliśmy ten przewodnik, aby skrócić czas nauki jego obsługi. Zmienianie rozmiaru ekranu lub

Bardziej szczegółowo

Laboratorium 7 Blog: dodawanie i edycja wpisów

Laboratorium 7 Blog: dodawanie i edycja wpisów Laboratorium 7 Blog: dodawanie i edycja wpisów Dodawanie nowych wpisów Tworzenie formularza Za obsługę formularzy odpowiada klasa Zend_Form. Dla każdego formularza w projekcie tworzymy klasę dziedziczącą

Bardziej szczegółowo

Program dla praktyki lekarskiej

Program dla praktyki lekarskiej Program dla praktyki lekarskiej ErLab Instrukcja konfiguracji i obsługi Spis Treści 1. Wstęp... 2 2. Konfiguracja... 3 2.1. Serwer... 3 2.2. Laboratorium... 3 2.3. Punkt pobrań... 4 3. Wysyłanie skierowania...

Bardziej szczegółowo

Instrukcja obsługi programu Profile GT

Instrukcja obsługi programu Profile GT Instrukcja obsługi programu Profile GT 1. Instalacja i pierwsze uruchomienie Instalacja programu jest prosta. Należy uruchomić plik setup.exe i w zasadzie wszystkie pytania można pominąć przyjmując domyślne

Bardziej szczegółowo

1. Podręcznik instalacji aplikacji EXR Creator... 2 1.1 Wstęp... 3 1.2 Instalacja... 4 1.2.1 Instalacja aplikacji EXR Creator z płyty CD... 5 1.2.1.

1. Podręcznik instalacji aplikacji EXR Creator... 2 1.1 Wstęp... 3 1.2 Instalacja... 4 1.2.1 Instalacja aplikacji EXR Creator z płyty CD... 5 1.2.1. 1. Podręcznik instalacji aplikacji EXR Creator.................................................................... 2 1.1 Wstęp.............................................................................................

Bardziej szczegółowo

Pracownia internetowa w szkole ZASTOSOWANIA

Pracownia internetowa w szkole ZASTOSOWANIA NR ART/SBS/07/01 Pracownia internetowa w szkole ZASTOSOWANIA Artykuły - serwery SBS i ich wykorzystanie Instalacja i Konfiguracja oprogramowania MOL Optiva na szkolnym serwerze (SBS2000) Artykuł opisuje

Bardziej szczegółowo

Instrukcja użytkownika. Aplikacja dla Comarch Optima

Instrukcja użytkownika. Aplikacja dla Comarch Optima Instrukcja użytkownika Aplikacja dla Comarch Optima Instrukcja użytkownika Aplikacja dla Comarch Optima Wersja 1.1 Warszawa, Luty 2016 Strona 2 z 14 Instrukcja użytkownika Aplikacja dla Comarch Optima

Bardziej szczegółowo

Wdrożenie modułu płatności eservice. dla systemu Zen Cart 1.3.9 1.5

Wdrożenie modułu płatności eservice. dla systemu Zen Cart 1.3.9 1.5 Wdrożenie modułu płatności eservice dla systemu Zen Cart 1.3.9 1.5 - dokumentacja techniczna Wer. 01 Warszawa, styczeń 2014 1 Spis treści: 1 Wstęp... 3 1.1 Przeznaczenie dokumentu... 3 1.2 Przygotowanie

Bardziej szczegółowo

Zapytania i wstawianie etykiet z bazy danych do rysunku

Zapytania i wstawianie etykiet z bazy danych do rysunku Zapytania i wstawianie etykiet z bazy danych do rysunku Pracujemy z gotową bazą danych MSAccess o nazwie KOMIS.MDB. Baza ta składa się z kilku tabel, rys. 1 Rys. 1. Diagram relacji. Wybierając w MSAccess,

Bardziej szczegółowo

Wprowadzenie do projektu QualitySpy

Wprowadzenie do projektu QualitySpy Wprowadzenie do projektu QualitySpy Na podstawie instrukcji implementacji prostej funkcjonalności. 1. Wstęp Celem tego poradnika jest wprowadzić programistę do projektu QualitySpy. Będziemy implementować

Bardziej szczegółowo

Instrukcja obsługi Zaplecza epk w zakresie zarządzania tłumaczeniami opisów procedur, publikacji oraz poradników przedsiębiorcy

Instrukcja obsługi Zaplecza epk w zakresie zarządzania tłumaczeniami opisów procedur, publikacji oraz poradników przedsiębiorcy Instrukcja obsługi Zaplecza epk w zakresie zarządzania tłumaczeniami opisów procedur, publikacji oraz poradników przedsiębiorcy Spis treści: 1 WSTĘP... 3 2 DOSTĘP DO SYSTEMU... 3 3 OPIS OGÓLNY SEKCJI TŁUMACZENIA...

Bardziej szczegółowo

INSTRUKCJA KONFIGURACJI KLIENTA POCZTOWEGO

INSTRUKCJA KONFIGURACJI KLIENTA POCZTOWEGO INSTRUKCJA KONFIGURACJI KLIENTA POCZTOWEGO UWAGA!!! Wskazówki dotyczą wybranych klientów pocztowych Zespół Systemów Sieciowych Spis treści 1. Konfiguracja klienta pocztowego Outlook Express 3 2. Konfiguracja

Bardziej szczegółowo

Po uzupełnieniu informacji i zapisaniu formularza, należy wybrać firmę jako aktywną, potwierdzając na liście dostępnych firm klawiszem Wybierz.

Po uzupełnieniu informacji i zapisaniu formularza, należy wybrać firmę jako aktywną, potwierdzając na liście dostępnych firm klawiszem Wybierz. Pierwsze kroki Krok 1. Uzupełnienie danych własnej firmy Przed rozpoczęciem pracy z programem, należy uzupełnić informacje o własnej firmie. Odbywa się to dokładnie tak samo, jak uzupełnianie informacji

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

Konfiguracja konta pocztowego w Thunderbird

Konfiguracja konta pocztowego w Thunderbird Konfiguracja konta pocztowego w Thunderbird Sygnity SA 2013 Wszystkie prawa zastrzeżone. Znaki firmowe oraz towarowe użyte w opracowaniu są prawną własnością ich właścicieli. Autor dokumentacji: Magdalena

Bardziej szczegółowo

Wykład 4 Delegat (delegate), właściwości indeksowane, zdarzenie (event) Zofia Kruczkiewicz

Wykład 4 Delegat (delegate), właściwości indeksowane, zdarzenie (event) Zofia Kruczkiewicz Wykład 4 Delegat (delegate), właściwości indeksowane, zdarzenie (event) Zofia Kruczkiewicz Zagadnienia 1. Delegaty wiązane, właściwości indeksowane 2. Delegaty niewiązane 3. Nowa wersja kalkulatora, delegaty

Bardziej szczegółowo

BACKUP BAZ DANYCH FIREBIRD

BACKUP BAZ DANYCH FIREBIRD BACKUP BAZ DANYCH FIREBIRD SPIS TREŚCI Informacje ogólne... 2 Tworzenie projektu... 2 Krok 1: Informacje podstawowe... 2 Krok 2: Dane... 3 Backup bazy umieszczonej na serwerze... 3 Bezpośredni backup pliku

Bardziej szczegółowo

Ciekawym rozwiązaniem służącym do obsługi zdarzeń dla kilku przycisków w ramach jednej aktywności może być następujący kod:

Ciekawym rozwiązaniem służącym do obsługi zdarzeń dla kilku przycisków w ramach jednej aktywności może być następujący kod: 1. Listener dla przycisku. Ciekawym rozwiązaniem służącym do obsługi zdarzeń dla kilku przycisków w ramach jednej aktywności może być następujący kod: W linii 24 tworzymy globalną metodę mglobal_onclicklistener,

Bardziej szczegółowo

Nagrywamy podcasty program Audacity

Nagrywamy podcasty program Audacity Pobieranie i instalacja Program Audacity jest darmowym zaawansowanym i wielościeżkowym edytorem plików dźwiękowych rozpowszechnianym na licencji GNU GPL. Jest w wersjach dla systemów typu Unix/Linux, Microsoft

Bardziej szczegółowo

MATERIAŁY - udostępnianie materiałów dydaktycznych w sieci SGH

MATERIAŁY - udostępnianie materiałów dydaktycznych w sieci SGH MATERIAŁY - udostępnianie materiałów dydaktycznych w sieci SGH SPIS TREŚCI i EKRANÓW WSTĘP Ekran1: Wstęp. Logowanie Ekran2: Strona początkowa UDOSTEPNIONE MATERIAŁY Ekran3: Dostępne materiały Ekran4: Zawartość

Bardziej szczegółowo

Laboratorium 1. Wzorce oprogramowania lab1, Zofia Kruczkiewicz

Laboratorium 1. Wzorce oprogramowania lab1, Zofia Kruczkiewicz Aplikacja internetowa zbudowana w oparciu o środowisko Visual Web Java Server Faces. Zarządzanie obiektami typu SesionBeans, RequestBeen i ApplicationBeans, Laboratorium 1 Wzorce oprogramowania lab1, Okres

Bardziej szczegółowo

Architektury Usług Internetowych. Laboratorium 2. Usługi sieciowe

Architektury Usług Internetowych. Laboratorium 2. Usługi sieciowe Architektury Usług Internetowych Laboratorium 2. Usługi sieciowe Wstęp Celem laboratorium jest zapoznanie się z modelem usług sieciowych na przykładzie prostego serwera Apache Axis2. Apache Axis2 Apache

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

Wdrożenie modułu płatności eservice. dla systemu oscommerce 2.3.x

Wdrożenie modułu płatności eservice. dla systemu oscommerce 2.3.x Wdrożenie modułu płatności eservice dla systemu oscommerce 2.3.x - dokumentacja techniczna Wer. 01 Warszawa, styczeń 2014 1 Spis treści: 1 Wstęp... 3 1.1 Przeznaczenie dokumentu... 3 1.2 Przygotowanie

Bardziej szczegółowo

INSTRUKCJA INSTALACJI SYSTEMU

INSTRUKCJA INSTALACJI SYSTEMU Zarządzanie Procesami Informatycznymi Sp. z o.o. 54-204 Wrocław, ul. Legnicka 62 Tel. : ( 071 ) 354 88 88 Fax : ( 071 ) 354 88 99 E-mail : biuro@vilico.pl INSTRUKCJA INSTALACJI SYSTEMU Wersja 1.4-1 - Spis

Bardziej szczegółowo

Połączenie AutoCad'a z bazą danych

Połączenie AutoCad'a z bazą danych Połączenie AutoCad'a z bazą danych Założenie bazy danych z pojedynczą tablicą Samochody, za pomocą aplikacji MS Access 1. Na dysku C: założyć katalog: C:\TKM\GR1x 2. Do tego katalogu przekopiować plik:

Bardziej szczegółowo

Szanowni Państwo. Należy przy tym pamiętać, że zmiana stawek VAT obejmie dwie czynności:

Szanowni Państwo. Należy przy tym pamiętać, że zmiana stawek VAT obejmie dwie czynności: Szanowni Państwo Zapowiedź podniesienia stawek VAT stała się faktem. Zgodnie z ustawą o podatku od towarów i usług z dniem 1 stycznia 2011 roku zostaną wprowadzone nowe stawki VAT. Obowiązujące aktualnie

Bardziej szczegółowo

Ustalanie dostępu do plików - Windows XP Home/Professional

Ustalanie dostępu do plików - Windows XP Home/Professional Ustalanie dostępu do plików - Windows XP Home/Professional Aby edytować atrybuty dostępu do plikow/ katalogow w systemie plików NTFS wpierw sprawdź czy jest Wyłączone proste udostępnianie czyli przejdź

Bardziej szczegółowo

5.4. Tworzymy formularze

5.4. Tworzymy formularze 5.4. Tworzymy formularze Zastosowanie formularzy Formularz to obiekt bazy danych, który daje możliwość tworzenia i modyfikacji danych w tabeli lub kwerendzie. Jego wielką zaletą jest umiejętność zautomatyzowania

Bardziej szczegółowo

Viatoll Calc v1.3. Viatoll Calc. Instrukcja użytkownika. Strona 1

Viatoll Calc v1.3. Viatoll Calc. Instrukcja użytkownika. Strona 1 Viatoll Calc Instrukcja użytkownika Strona 1 Spis treści 1 Wstęp...3 2 Opis panelu głównego...3 2.1 Menu aplikacji...4 2.2 Tabela z trasami...5 2.3 Strona kalkulatora viatoll...6 2.4 Pasek statusu...7

Bardziej szczegółowo

Aplikacje WWW - laboratorium

Aplikacje WWW - laboratorium Aplikacje WWW - laboratorium Serwlety Celem ćwiczenia jest przygotowanie kilku prostych serwletów ilustrujących możliwości tej technologii. Poszczególne ćwiczenia prezentują sposób przygotowania środowiska,

Bardziej szczegółowo

INSTRUKCJA UŻYTKOWNIKA PROGRAMU VAT2011 VER 1.0

INSTRUKCJA UŻYTKOWNIKA PROGRAMU VAT2011 VER 1.0 INSTRUKCJA UŻYTKOWNIKA PROGRAMU VAT2011 VER 1.0 1 Spis treści 1. Opis programu...3 2. Wymagania...3 3. Rejestracja programu...3 4. Instalacja programu...3 5. Rozpoczęcie pracy z programem...4 6. Zmiana

Bardziej szczegółowo

LINQ TO SQL w dużym skrócie jest to zintegrowany język zapytao pozwalający na mapowanie relacyjnych baz danych na model obiektowy.

LINQ TO SQL w dużym skrócie jest to zintegrowany język zapytao pozwalający na mapowanie relacyjnych baz danych na model obiektowy. LINQ TO SQL w dużym skrócie jest to zintegrowany język zapytao pozwalający na mapowanie relacyjnych baz danych na model obiektowy. Zanim ktokolwiek postanowi użyd tego w swoim projekcie, należy zaznaczyd

Bardziej szczegółowo

Projektowanie baz danych za pomocą narzędzi CASE

Projektowanie baz danych za pomocą narzędzi CASE Projektowanie baz danych za pomocą narzędzi CASE Metody tworzenia systemów informatycznych w tym, także rozbudowanych baz danych są komputerowo wspomagane przez narzędzia CASE (ang. Computer Aided Software

Bardziej szczegółowo

11. Rozwiązywanie problemów

11. Rozwiązywanie problemów 11. Rozwiązywanie problemów Ćwiczenia zawarte w tym rozdziale pokaŝą, jak rozwiązywać niektóre z problemów, jakie mogą pojawić się podczas pracy z komputerem. Windows XP został wyposaŝony w kilka mechanizmów

Bardziej szczegółowo

LK1: Wprowadzenie do MS Access Zakładanie bazy danych i tworzenie interfejsu użytkownika

LK1: Wprowadzenie do MS Access Zakładanie bazy danych i tworzenie interfejsu użytkownika LK1: Wprowadzenie do MS Access Zakładanie bazy danych i tworzenie interfejsu użytkownika Prowadzący: Dr inż. Jacek Habel Instytut Technologii Maszyn i Automatyzacji Produkcji Zakład Projektowania Procesów

Bardziej szczegółowo

Zintegrowane Systemy Zarządzania Biblioteką SOWA1 i SOWA2 ZAMAWIANIE I REZERWOWANIE

Zintegrowane Systemy Zarządzania Biblioteką SOWA1 i SOWA2 ZAMAWIANIE I REZERWOWANIE Zintegrowane Systemy Zarządzania Biblioteką SOWA1 i SOWA2 ZAMAWIANIE I REZERWOWANIE Poznań 2011 Spis treści 1. Zamawianie i rezerwowanie definicja pojęć...3 2. Zasada działania systemu...4 3. Zamawianie

Bardziej szczegółowo

Instrukcja uaktualnienia AdRem NetCrunch z wersji 5.3 do 6.x

Instrukcja uaktualnienia AdRem NetCrunch z wersji 5.3 do 6.x Instrukcja uaktualnienia AdRem NetCrunch z wersji 5.3 do 6.x 2010 AdRem Software, sp. z o.o. Niniejszy dokument został opracowany przez firmę AdRem Software i przedstawia poglądy oraz opinie firmy AdRem

Bardziej szczegółowo

Skrócona instrukcja korzystania z Platformy Zdalnej Edukacji w Gliwickiej Wyższej Szkole Przedsiębiorczości

Skrócona instrukcja korzystania z Platformy Zdalnej Edukacji w Gliwickiej Wyższej Szkole Przedsiębiorczości Skrócona instrukcja korzystania z Platformy Zdalnej Edukacji w Gliwickiej Wyższej Szkole Przedsiębiorczości Wstęp Platforma Zdalnej Edukacji Gliwickiej Wyższej Szkoły Przedsiębiorczości (dalej nazywana

Bardziej szczegółowo

Leonard G. Lobel Eric D. Boyd. Azure SQL Database Krok po kroku. Microsoft. Przekład: Marek Włodarz. APN Promise, Warszawa 2014

Leonard G. Lobel Eric D. Boyd. Azure SQL Database Krok po kroku. Microsoft. Przekład: Marek Włodarz. APN Promise, Warszawa 2014 Leonard G. Lobel Eric D. Boyd Microsoft TM Azure SQL Database Krok po kroku Przekład: Marek Włodarz APN Promise, Warszawa 2014 Spis treści Wprowadzenie........................................................

Bardziej szczegółowo

Poradnik zetula.pl. Jak założyć konto na zetula.pl. i zabezpieczyć dane na swoim komputerze?

Poradnik zetula.pl. Jak założyć konto na zetula.pl. i zabezpieczyć dane na swoim komputerze? Poradnik zetula.pl Jak założyć konto na zetula.pl i zabezpieczyć dane na swoim komputerze? 1.Wejdź na stronę www.zetula.pl 2.Kliknij na odnośniku Utwórz nowe konto 3.Wypełnij formularz rejestracyjny. Pola

Bardziej szczegółowo

Instrukcja tworzenia aplikacji bazodanowej opartej o technologię Oracle i platformę.net

Instrukcja tworzenia aplikacji bazodanowej opartej o technologię Oracle i platformę.net Instrukcja tworzenia aplikacji bazodanowej opartej o technologię Oracle i platformę.net Aby móc uzyskaćdostęp do bazy danych z zewnętrznych aplikacji, w tym wypadku aplikacji.net, niezbędne jest wykonanie

Bardziej szczegółowo

Symfonia Produkcja Instrukcja instalacji. Wersja 2013

Symfonia Produkcja Instrukcja instalacji. Wersja 2013 Symfonia Produkcja Instrukcja instalacji Wersja 2013 Windows jest znakiem towarowym firmy Microsoft Corporation. Adobe, Acrobat, Acrobat Reader, Acrobat Distiller są zastrzeżonymi znakami towarowymi firmy

Bardziej szczegółowo

Programowanie w Javie

Programowanie w Javie Programowanie w Javie Andrzej Czajkowski Lista nr 0 Debugger w Javie Celem ćwiczenia jest poznanie podstawowych funkcji narzędzia debugera (odpluskwiacz) w środowisku Eclipse. Po ukończeniu ćwiczenia student

Bardziej szczegółowo

Instrukcja użytkownika. Aplikacja dla Comarch Optima

Instrukcja użytkownika. Aplikacja dla Comarch Optima Instrukcja użytkownika Aplikacja dla Comarch Optima Instrukcja użytkownika Aplikacja dla Comarch Optima Wersja 1.0 Warszawa, Sierpień 2015 Strona 2 z 12 Instrukcja użytkownika Aplikacja dla Comarch Optima

Bardziej szczegółowo

Współpraca z platformą Emp@tia. dokumentacja techniczna

Współpraca z platformą Emp@tia. dokumentacja techniczna Współpraca z platformą Emp@tia dokumentacja techniczna INFO-R Spółka Jawna - 2013 43-430 Pogórze, ul. Baziowa 29, tel. (33) 479 93 29, (33) 479 93 89 fax (33) 853 04 06 e-mail: admin@ops.strefa.pl Strona1

Bardziej szczegółowo

Instrukcja obsługi programu Dystrybutor GT

Instrukcja obsługi programu Dystrybutor GT Instrukcja obsługi programu Dystrybutor GT 1. Instalacja i pierwsze uruchomienie Instalacja programu jest prosta. Należy uruchomić plik setup.exe i w zasadzie wszystkie pytania można pominąć przyjmując

Bardziej szczegółowo

Instrukcja Instalacji

Instrukcja Instalacji Generator Wniosków Płatniczych dla Programu Operacyjnego Kapitał Ludzki Instrukcja Instalacji Aplikacja współfinansowana ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego Spis treści

Bardziej szczegółowo

Zanim zaczniesz. Warto ustawić kartę sieciową naszego serwera.

Zanim zaczniesz. Warto ustawić kartę sieciową naszego serwera. Zanim zaczniesz. Warto ustawić kartę sieciową naszego serwera. Wchodzimy w Centrum sieci -> Połączenia sieciowe -> następnie do właściwości naszej karty sieciowej. Następnie przechodzimy do Protokół internetowy

Bardziej szczegółowo

Instrukcja instalacji programu ARPunktor wraz z serwerem SQL 2005 Express

Instrukcja instalacji programu ARPunktor wraz z serwerem SQL 2005 Express Instrukcja instalacji programu ARPunktor wraz z serwerem SQL 2005 Express 1. Przygotowanie do instalacji W celu zainstalowania aplikacji należy ze strony internetowej pobrać następujący plik: http://in.take.pl/arpunktor/instalacja.zip.

Bardziej szczegółowo

Damian Daszkiewicz 2010 www.damiandaszkiewicz.pl www.videowebmaster.pl. Tworzenie strony-wizytówki dla firmy XYZ

Damian Daszkiewicz 2010 www.damiandaszkiewicz.pl www.videowebmaster.pl. Tworzenie strony-wizytówki dla firmy XYZ Damian Daszkiewicz 2010 www.damiandaszkiewicz.pl www.videowebmaster.pl Tworzenie strony-wizytówki dla firmy XYZ Dokument może być dowolnie rozpowszechniany w niezmiennej formie. Nie możesz pobierać opłat

Bardziej szczegółowo

Kostki OLAP i język MDX

Kostki OLAP i język MDX Kostki OLAP i język MDX 24 kwietnia 2015 r. Opis pliku z zadaniami Wszystkie zadania na zajęciach będą przekazywane w postaci plików PDF sformatowanych jak ten. Będą się na nie składały różne rodzaje zadań,

Bardziej szczegółowo

Płace Optivum. 1. Zainstalować serwer SQL (Microsoft SQL Server 2008 R2) oraz program Płace Optivum.

Płace Optivum. 1. Zainstalować serwer SQL (Microsoft SQL Server 2008 R2) oraz program Płace Optivum. Płace Optivum Jak przenieść dane programu Płace Optivum na nowy komputer? Aby kontynuować pracę z programem Płace Optivum na nowym komputerze, należy na starym komputerze wykonać kopię zapasową bazy danych

Bardziej szczegółowo

Korzystanie z aplikacji P-touch Transfer Manager

Korzystanie z aplikacji P-touch Transfer Manager Korzystanie z aplikacji P-touch Transfer Manager Wersja 0 POL Wprowadzenie Ważna uwaga Treść niniejszego dokumentu i dane techniczne produktu mogą ulegać zmianom bez powiadomienia. Firma Brother zastrzega

Bardziej szczegółowo

emszmal 3: Automatyczne księgowanie przelewów w sklepie internetowym Magento (plugin dostępny w wersji ecommerce)

emszmal 3: Automatyczne księgowanie przelewów w sklepie internetowym Magento (plugin dostępny w wersji ecommerce) emszmal 3: Automatyczne księgowanie przelewów w sklepie internetowym Magento (plugin dostępny w wersji ecommerce) Zastosowanie Rozszerzenie to przeznaczone jest dla właścicieli sklepów internetowych opartych

Bardziej szczegółowo

Jak używać funkcji prostego udostępniania plików do udostępniania plików w systemie Windows XP

Jak używać funkcji prostego udostępniania plików do udostępniania plików w systemie Windows XP Jak używać funkcji prostego udostępniania plików do udostępniania plików w systemie Windows XP System Windows XP umożliwia udostępnianie plików i dokumentów innym użytkownikom komputera oraz innym użytkownikom

Bardziej szczegółowo

Wdrożenie modułu płatności eservice. dla systemu Gekosale 1.4

Wdrożenie modułu płatności eservice. dla systemu Gekosale 1.4 Wdrożenie modułu płatności eservice dla systemu Gekosale 1.4 - dokumentacja techniczna Wer. 01 Warszawa, styczeń 2014 1 Spis treści: 1 Wstęp... 3 1.1 Przeznaczenie dokumentu... 3 1.2 Przygotowanie do integracji...

Bardziej szczegółowo