AKADEMIA TECHNICZNO-HUMANISTYCZNA W BIELSKU - BIAŁEJ WYDZIAŁ BUDOWY MASZYN I INFORMATYKI PRACA DYPLOMOWA. INŻYNIERSKA nr..

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

Download "AKADEMIA TECHNICZNO-HUMANISTYCZNA W BIELSKU - BIAŁEJ WYDZIAŁ BUDOWY MASZYN I INFORMATYKI PRACA DYPLOMOWA. INŻYNIERSKA nr.."

Transkrypt

1 AKADEMIA TECHNICZNO-HUMANISTYCZNA W BIELSKU - BIAŁEJ WYDZIAŁ BUDOWY MASZYN I INFORMATYKI PRACA DYPLOMOWA INŻYNIERSKA nr.. Tomasz Stojecki Nr albumu: 10619/A/327 Kierunek: Informatyka Specjalność: Inżynieria oprogramowania Temat: Programowanie aplikacji RIA dla SharePoint Server 2010 Zakres pracy: Przegląd możliwości programu SharePoint Server 2010 oraz Visual Studio 2010 SharePoint Tools Wykorzystanie technologii Silverlight do programowania aplikacji działających w środowisku SharePoint po stronie klienta Implementacja aplikacji w środowisku programistycznym.net 4.0 Implementacje wzorców projektowych umożliwiających budowanie aplikacji metodami TDD/ MVVM (test driven development / model view viewmodel) Przeprowadzenie testów oprogramowania i sformułowanie wniosków Promotor: dr inż. Mirosław Kordos KATEDRA MATEMATYKI I INFORMATYKI Bielsko-Biała, rok akademicki 2010/ Podpis i pieczątka Kierownika Jednostki

2 Spis Treści 1 Wstęp Cel i zakres pracy Technologia SharePoint Foundation 2010 i SharePoint Server Możliwości Wymagania sprzętowe Omówienie budowanej aplikacji Środowisko programistyczne Visual Studio 2010 dla SharePoint Aplikacje RIA Technologia Silverlight Możliwości Silverlight Integracja rozwiązań Silverlight z SharePoint Wdrażanie aplikacji Silverlight w środowisku SharePoint Silverlight Web Part Komunikacja Silverlight z SharePoint API Client Object Model Wzorzec MVVM Bindowanie danych w Silverlight Aplikacja Menadżer Projektów Założenia Lista Projektów w SharePoint Struktura projektu Visual Studio Aplikacja Silverlight Interfejs Użytkownika Aplikacja Silverlight - Model Aplikacja Silverlight - ViewModel Testy jednostkowe Testy aplikacji Menadżer Projektów Zalecenia i wnioski Bibliografia Biblioteki i komponenty open source

3 1 Wstęp Nowoczesne firmy chcąc efektywnie konkurować na rynku muszą dysponować szerokim wachlarzem aplikacji biznesowych usprawniających codzienną działalność przedsiębiorstwa. Ewolucja oprogramowania a zwłaszcza dynamiczny rozwój internetu, sprawiły że aplikacje biznesowe wykorzystują dziś infrastrukturę internetu do budowy elastycznych rozwiązań przynoszących szereg wymiernych korzyści takich jak: Praca w dowolnym miejscu i na wielu urządzeniach dająca użytkownikom możliwość dokonywania szybkich i bardziej trafnych decyzji Zwiększona moc oprogramowania poprzez wykorzystanie usług i serwisów w architekturze typu chmura Zmniejszenie kosztów związanych z wdrożeniem i utrzymaniem oprogramowania Lepszy kontakt i współpraca przy wykorzystaniu narzędzi pracy grupowej i wymiany informacji Firma Microsoft od dłuższego czasu podąża strategią budowy sztandarowych technologii produktywności biznesowej z wykorzystaniem usług online. Można zaliczyć do nich między innymi najnowszą wersję pakietu Microsoft Office 2010, technologię SharePoint czy technologię Silverlight. Dziś budowanie aplikacji przy użyciu pojedynczej technologii staje się nieefektywne, w związku z tym firmy programistyczne poszukują zestawienia technologii, które umożliwi im tworzenie aplikacji w sposób elastyczny, produktywny i dający zamierzony efekt końcowy. Nie wystarczy już wyłącznie dostarczenie funkcjonalności, trzeba również zadbać o należytą prezentację i użytkowalność oprogramowania. Użytkownik musi odnosić wrażenie, że praca z oprogramowaniem odbywa się w sposób optymalny [1]. Jednocześnie przed firmami decydującymi się na inwestycję w oprogramowanie stawia się pytanie czy zlecać tworzenie oprogramowania od podstaw na wyłączne potrzeby danego przedsiębiorstwa, czy też wykorzystywać gotowe rozwiązania, które spełnią znaczną część wymagań i uzupełnić pozostałe poprzez budowę zintergorwanych rozwiązań niestandardowych. Taka strategia potocznie nazywa się kup czy buduj (z ang. buy vs build). Technologia SharePoint jest realizacją wizji Microsoftu budowy systemu, posiadającego szeroki asortyment funkcji niezbędnych do efektywnego konkurowania na rynku. By strategia ta odniosła sukces, Microsoft zdał sobie sprawę, że niezbędnym jest umożliwienie integracji rozwiązań niestandardowych i szeroko rozumianej modyfikacji systemu w celu dostosowania do unikalnych procesów charakterystycznych dla danego klienta. Strategia ta okazała się sukcesem a rynek usług integracyjnych SharePoint świadczonych przez programistów i partnerów firmy 3

4 Microsoft jest obecnie szacowany w miliardach dolarów [2]. SharePoint tym samym stał się elastyczną platformą pozwalającą programistom szybko reagować na potrzeby biznesowe. 1.1 Cel i zakres pracy Poniższe opracowanie ma na celu przedstawienie niektórych z możliwości jakie oferuje platforma SharePoint zarówno w samym produkcie jak i pod kątem rozszerzania o dodatkową funkcjonalność. Od strony platformy SharePoint, stworzona zostanie przykładowa witryna SharePoint 2010, wyposażona w bibliotekę umożliwiają przechowywanie dokumentów, kalendarz, listę zadań oraz listę definiującą aktualne projekty i zespoły nad nimi pracujące. Zwrócimy uwagę na prosty proces tworzenia i dostosowywania do własnych potrzeb witryn i ich elementów składowych. Zaprezentowane zostaną również możliwości łatwego wyszukiwania użytkowników portalu na podstawie funkcji jakie pełnią w firmie, dokumentów i publikacji jakie opracowali czy ich zainteresowań. Drugą częścią pracy będzie budowa aplikacji Silverlight zintegrowanej ze środowiskiem SharePoint. Aplikacja ta będzie miała na celu łatwe tworzenia nowych projektów i zespołów, które komunikować będą się ze wspomnianą wcześniej listą. Nacisk położony zostanie na interaktywny interfejs użytkownika aplikacji Silverlight a także na sposób komunikacji poprzez technologie web serwisowe. Wreszcie omówiony zostanie wzorzec projektowy, o który zostanie oparta aplikacja, który sprawi, że kod aplikacji będzie modularny, łatwy w rozszerzeniu i testowaniu. 4

5 2 Technologia SharePoint Foundation 2010 i SharePoint Server Technologia SharePoint wyrosła przez lata do miana kluczowego składnika firmy Microsoft w zakresie oferty infrastruktury zwiększającej produktywność w firmie. Mimo braku kampanii marketingowych towarzyszących innym flagowym produktom Microsoftu, SharePoint wspiął się do miana najlepiej sprzedającego się produktu serwerowego firmy już w 2009 roku, przekraczając dochody rzędu 1 miliarda dolarów i kontynuując tą passę do dnia dzisiejszego. Sukces finansowy przerodził się tym samym w kolejne wersje produktu, udoskonalone o nowe funkcjonalności i możliwości [3]. Zasadniczą ideą SharePoint a od jego początkowej wersji 2001 jest stworzenie jednolitego środowiska złożonego z witryn internetowych opartych o biblioteki, listy i składniki web parts. Zasadniczą funkcją bibliotek i list jest przechowywanie danych w tworzonych wcześniej strukturach czy plikach. Użytkownicy tego środowiska zyskiwali jednolity interfejs do zarządzania dokumentami, możliwości ich szybkiego przeszukiwania, współdzielenia czy wersjonowania. Administratorzy odnajdywali łatwość tworzenia nowych witryn dla grup, zespołów, zarządzania bezpieczeństwem czy tworzenia kopii zapasowych. Wreszcie programiści otrzymali możliwość integracji rozwiązań niestandardowych opartych o technologię ASP.NET. Dziś SharePoint Foundation 2010 i SharePoint Server oferują znacznie szerszy wachlarz możliwości, nie mniej kluczowa idea pozostaje taka sama stworzyć zintegrowane środowisko współpracy nad projektami i dokumentami, opartym o technologie online. Towarzyszące temu funkcjonalności oferowane przez platformę omówione zostały w sekcji Możliwości [4]. Warto dodać, że SharePoint Foundation 2010, której poprzednikiem jest Windows SharePoint Services, jest technologią darmową oferowaną na systemach serwerowych Microsoftu. Program SharePoint Server (poprzednik Microsoft Office SharePoint Server) jest niejako rozszerzeniem SharePoint Foundation 2010, gdzie w wersji płatnej oferowane są dodatkowe funkcje systemu. 2.1 Możliwości Portal współpracy i wymiany informacji bazowa funkcja technologii SharePoint skupiająca możliwości łatwego tworzenia i zarządzania zawartością. Tworzenie zawartości odbywa się z poziomu przeglądarki bądź poprzez odwołanie się do ściśle zintegrowanych programów pakietu Microsoft Office. Funkcje zarządzania dokumentami dają możliwość na skonsolidowanie różnej zawartości z wielu lokalizacji w centralnie zarządzanym repozytorium, w którym jest stosowana spójna kategoryzacja. Funkcje zarządzania metadanymi, czyli informacją dotyczącą danych, upraszcza centralne zarządzanie metadanymi we wszystkich witrynach organizacji. Na podstawie metadanych można oprzeć nawigację systemu umożliwiając użytkownikom proste dotarcie do elementu docelowego. Zawartość może być oczywiście chroniona przed nieautoryzowanym dostępem, niemalże na każdym poziomie struktury przechowywania dokumentu. 5

6 Wyszukiwanie program SharePoint Server 2010 udostępnia zaawansowaną infrastrukturę wyszukiwania, będącą uzupełnieniem innych funkcji zwiększających produktywność firm, takich jak zarządzanie zawartością czy współpraca. Zarządzanie dokumentami i treścią - narzędzia współpracy, takie jak przepływy pracy, ułatwiają użytkownikom wspólne tworzenie, recenzowanie i zatwierdzanie dokumentów w uporządkowany sposób. Obieg dokumentów technologia umożliwiająca tworzenie w sposób graficzny własnych diagramów obrazujących procesy jakie chcemy wymusić na danym dokumencie. Przykładowymi procesami mogą być zatwierdzenia urlopów, umów czy artykułów publikowanych online. Narzędziem do tworzenia tego typu diagramów jest darmowy SharePoint Designer 2010 bądź środowisko Visual Studio Formularze prosty w obsłudze program do budowania aplikacji opartych o formularze InfoPath 2010 sprawia, że zbieranie, organizowanie i zarządzanie danymi oraz ich integracja z funkcjami systemu SharePoint staje się dużo łatwiejsze. Gotowe szablony, tabele, układy stron z opcjami kolumn, stylów sprawiają, że nie wymagana jest wiedza o projektowaniu stron internetowych i technologiach serwerowych, by tworzyć funkcjonalne i atrakcyjne wizualnie formularze. Zintegrowano również system reguł do formularzy umożliwiający walidację danych wprowadzanych do systemu. BI (Business Intelligence) szereg ściśle zintegrowanych technologii umożliwiających podejmowanie strategicznych decyzji na podstawie danych przechowywanych na serwerze SharePoint 2010, takich jak PowerPivot, PerformancePoint Services, Reporting Services. Dodatek PowerPivot łączy natywne funkcje programu Excel 2010 takie jak szybkie manipulowanie dużymi zestawami danych, integracji danych z wielu źródeł, możliwość tworzenia interaktywnych raportów oraz wiele innych funkcji analitycznych. Technologie PerformancePoint Services oraz Reporting Services wprowadzają możliwość tworzenia interaktywnych raportów i kluczowych wskaźników efektywności i prosty sposób ich publikacji na witrynach portalu. BCS (Business Connectivity Services) wzbogacają możliwości platformy SharePoint o funkcje, narzędzia i usługi upraszczające projektowanie rozwiązań ze ścisła integracją zewnętrznych danych i usług. Istnieje możliwość zarówno odczytywania, przeszukiwania jak i manipulacji w sposób bezpieczny danych przechowywanych w systemach zewnętrznych do systemu SharePoint. 6

7 Rysunek 1. Witryna SharePoint Rysunek 1 przedstawia typową witrynę SharePoint opartą na wbudowanym szablonie strony zespołowej (Team Site) z wyróżnionymi bardziej znaczącymi elementami składowymi. 1. Menu szybkiej nawigacji (Quick Launch). Jeden z wielu elementów nawigacji witryn SharePoint z rozbudowaną możliwością konfiguracji z poziomu strony internetowej. Nawigacja może zawierać elementy takie jak odnośniki do innych stron, list, bibliotek, funkcji administracyjnych, etc. Dla danego użytkownika wyświetlane są tylko odnośniki do stron do których użytkownik ma uprawnienia. 2. Rozbudowane, kontekstowe menu administracji witryną i jej elementami składowymi. Oparte na menu pakietu Microsoft Office 2010 (tzw. Ribbon) dostosowujące swoją zawartość w zależności od kontekstu strony. Istnieje możliwość dodawania i modyfikacji elementów menu. 3. Obszar główny witryny SharePoint, z reguły złożony ze składników web part, z bogatą opcją konfiguracji zarówno w trybie dzielonym gdzie wszyscy użytkownicy widzą wprowadzane zmiany jak i w trybie personalnym, gdzie użytkownik wprowadza zmiany widoczne tylko przez niego samego. 4. Biblioteka dokumentów, jeden z wielu możliwych widoków prezentacji 5. Lista projektów, jeden z wielu możliwych widoków prezentacji 7

8 2.2 Wymagania sprzętowe Bogata oferta funkcji zawartych w SharePoint Server 2010 przekłada się na wymagania sprzętowe i programowe. W najnowszej wersji, podstawowym wymaganiem stał się 64-bitowy system operacyjny na którym produkt będzie instalowany. Dla środowisk produkcyjnych, Microsoft oferuje 64-bitowe wersje systemu Windows Server W rozdziale tym skupimy się jednak na wymaganiach dotyczących środowiska programistycznego. Pomimo znaczących wymagań sprzętowych, Microsoft po raz pierwszy od początku istnienia produktu wprowadził możliwość jego instalacji na systemach nie serwerowych dla celów środowiska programistycznego. Oznacza to, że programiści mogą zainstalować program SharePoint Server 2010 lokalnie na systemach Windows Vista bądź Windows 7 zakładając że są to systemy 64-bitowe [5]. Minimalne wymagania zalecane przez Microsoft to: Procesor 64-bitowy RAM 4 GB dla środowiska programistycznego bądź w celach ewaluacji, 8 GB dla systemów produkcyjnych Dysk twardy 80 GB, przy czym na cele produkcyjne zaleca się dwa razy więcej by umożliwić funkcje logowania i monitorowania systemu. Preferowane są dyski szybkie, takie jak Solid State Drive (SSD). Instalacja programu na systemach Windows 7 oraz Vista wiążę się z dodatkowymi krokami, związanymi z konfiguracją fukcji serwerowych. Dokładne instrukcje odnośnie instalacji systemu zawarte są na stronie msdn microsoftu: Kolejną opcją jest instalacja systemu na maszynach wirtualnych. Trzeba pamiętać że z uwagi na 64-bitowe wymaganie odnośnie systemu operacyjnego nie ma możliwości instalacji programu SharePoint 2010 na darmowych maszynach wirtualnych firmy Microsoft jak Virtual PC czy Virtual Server. Można jednak instalować na znacznie wydajniejszym oprogramowaniu Microsoft Hyper-V, będącym częścią systemów Windows Server 2008 R2. Poniżej zamieszczono listę popularnych konfiguracji środowisk programistycznych dla SharePoint Server 2010 [6]: Maszyna wirtualna System operacyjny Zalety Hyper-V Windows Server 2008 R2 Wydajny, akceleracja sprzętowa, darmowy z licencją na system operacyjny VMWare Workstation lub VMWare Server Virtual Box Windows 7, Vista, Windows Server 2008 Windows 7, Vista, Windows Server 2008 Wydajny, akceleracja sprzętowa, możliwość instalacji na systemach nie serwerowych Możliwość instalacji na systemach nie serwerowych, darmowy 8

9 3 Omówienie budowanej aplikacji Aplikacja tworzona na potrzeby tego opracowania będzie miała dwa podstawowe zadania. Po pierwsze skupimy się na wykorzystaniu infrastruktury wbudowanej w środowisko SharePoint do stworzenia repozytorium zespołów programistycznych firmy w postaci listy umieszczonej na witrynie SharePoint. Pokażemy jak prosto można tworzyć interfejs umożliwiający łatwe przeglądanie i zarządzanie danymi, w tym przypadku opisującymi zespoły programistyczne. Wykorzystując infrastrukturę SharePoint zyskamy możliwość tworzenia własnych widoków danych, zarządzania danymi oraz ich wyszukiwania. Ponieważ członkowie zespołów reprezentowani są przez użytkowników portalu, wyszukiwanie interesujących nas charakterystyk użytkowników oprzemy wokół wbudowanych mechanizmów social features. Po drugie, zbudujemy aplikację Silverlight 4, którą następnie zintegrujemy z wcześniej utworzoną witryną i listą. W ten sposób dodamy interaktywny moduł do zarządzania zespołami programistycznymi, wzbogacając możliwości operowania danymi wykorzystując niestandardowe dla przeglądarek kontrolki czy techniki drag and drop. Proces tworzenia nowego zespołu oprzemy w aplikacji o trzy proste kroki: 1. Wyszukanie danych użytkowników i ich prezentacja w aplikacji. Każdy z użytkowników będzie opisany danymi personalnymi takimi jaki imię, nazwisko i adres a także stawkę godzinową zależną od roli i kwalifikacji użytkownika. 2. Wypełnienie prostego formularza wprowadzającego nazwę projektu na potrzeby którego tworzony jest zespół a także możliwość ustawienia budżetu projektu, który następnie będzie monitorowany wraz z wprowadzaniem nowym członków projektu. 3. Proces tworzenia zespołu sprowadzi się do przeciągnięcia użytkowników do odpowiedniej części aplikacji. Jednocześnie monitorowany będzie budżet tak by nie dopuścić do jego przekroczenia. 3.1 Środowisko programistyczne Visual Studio 2010 dla SharePoint SharePoint od początkowych wersji umożliwiał integrację rozwiązań niestandardowych przy użyciu środowiska Microsoft Visual Studio. Początkowo rozwiązania te mogły być tworzone jako standardowe biblioteki klas, które nie miały wbudowanych żadnych specyficznych dla technologii SharePoint funkcji. Programista sam musiał dodać odpowiednie biblioteki i znaleźć efektywny sposób wdrażania i testowania rozwiązań, niejednokrotnie pomagając sobie dostępnymi jako open source bądź komercyjnie programami. Wraz ze wzrostem popularności tego typu rozwiązań przyszła i zmiana strategii Microsoftu, który w najnowszej wersji środowiska Visual Studio 2010 zdecydował się na umieszczenie szeregu szablonów projektów, znacznie upraszczających i przyspieszających proces tworzenia rozwiązań zintegrowanych z SharePoint [7]. 9

10 Omówmy pokrótce niektóre z nich: Składniki Web Part najbardziej popularny i fundamentalny sposób tworzenia rozwiązań niestandardowych na platformie SharePoint. Składniki Web parts to serwerowe kontrolki ASP.NET, które dodawane są do stref składników Web Part przez użytkowników czy administratorów w trakcie działania programu. Wyposażone zostały w bogate narzędzia personalizacji zawartości i wyglądu poszczególnego składnika, tak, że to użytkownicy witryny (w zależności od uprawnień) mają możliwości modyfikowania składników, wprowadzania zmian widocznych wyłącznie dla siebie bądź dla szerszego grona użytkowników. Interfejs użytkownika programu SharePoint w zdecydowanej większości oparty jest o koncepcję składników Web Parts. Strony ASP.NET ponieważ technologia SharePoint oparta jest o technologię ASP.NET, istnieje możliwość integracji aplikacji ASP.NET z tym środowiskiem. Jest to mniej popularny sposób uzyskiwania dodatkowej funkcjonalności, od składników Web Parts głównie z uwagi na bardziej złożony proces wdrażania oraz administracji tego typu rozwiązaniami. Workflows obieg dokumentów oparty o technologię Windows Workflow, dający programistą i zaawansowanym użytkownikom możliwość łatwego tworzenia diagramów opisujących procesy jakie chcemy wymusić na określonych typach dokumentów. Tego typu rozwiązania tworzone w znacznej części przy wykorzystaniu graficznych edytorów, które w przejrzysty sposób obrazują sposób działania i obiegu danego procesu. Event Receivers - obiorcy zdarzeń, czyli komponenty implementacja których daje programistą możliwość odpowiedzi na zdarzenia zachodzące w systemie. Takimi zdarzeniami mogą być dodawanie, edycja czy usuwanie dokumentów, tworzenie witryn i edycja ich zawartości, etc... List Definitions, Site Definitions elementy enkapsulacji własnych definicji list, bibliotek dokumentów i witryn. Paczkowane w ten sposób definicje mogą być łatwo rozprzestrzeniane na inne witryny i pomiędzy różnymi instancjami środowisk SharePoint. 10

11 Rysunek 2. Szablony projektów SharePoint w Visual Studio

12 4 Aplikacje RIA RIA (z ang. RIA - Rich Internet Applications) to bogate, interaktywne aplikacje internetowe, przypominające zachowaniem i użytkowalnością aplikacje desktopowe. Dostęp do aplikacji z reguły odbywa się poprzez przeglądarkę, przeglądarkę z wtyczką (plug-in) lub wirtualną maszynę. Technologie początkowo wykorzystywane głównie do budowy gier online bądź aplikacji multimedialnych, dziś znajdują coraz większe zastosowanie w biznesie. Na rynku można wyróżnić następujące znaczące technologie RIA [8]: 1. Flash/Flex firmy Adobe 2. Microsoft Silverlight 3. Java (JRE) 4. HTML + Javascript W przypadku pierwszych trzech pozycji, wykorzystywana jest wtyczka do przeglądarek internetowych (bądź maszyna wirtualna), która musi być zainstalowana na komputerze uruchamiającym aplikację. Wtyczka taka ma za zadanie udostępnienie dodatkowej funkcjonalności przeglądarce, wykorzystywanej do dostarczenia funkcji niemożliwych bądź trudnych do uzyskania za pomocą HTML i Javascript. Takimi funkcjonalnościami mogą być zaawansowane animacje, bogate opcje nawigacji i obsługi aplikacji po stronie klienta, multimedia. Korzyści wynikające z zastosowania tego typu technologii wiążą się nie tylko z dodatkową funkcjonalnością w jakią wyposażymy aplikację, ale także z reguły z bardziej zintegrowanym środowiskiem programistycznym, które daje programistą możliwość szybszego i tym samym tańszego tworzenia rozwiązań. Trzeba sobie jednak jasno powiedzieć, wraz z dynamicznym rozwojem rozwiązań wykorzystujących technologię AJAX, bariera ta się zaciera. Dziś Javascript jest wykorzystywany na tak szeroką skalę, że powstaje cały szereg rozbudowanych środowisk programistycznych i gotowych bibliotek (z reguły open source) znacznie upraszczających proces tworzenia bogatych interfejsów i interaktywnych aplikacji. Podsumowując wyznaczmy charakterystyczne cechy aplikacji RIA: Interaktywne przypominające aplikacje typu desktop od strony użytkowalności aplikacji, nie mniej działające w oparciu o przeglądarki internetowe. Po stronie klienta obsługa interfejsu użytkownika odbywa się po stronie klienta, zmniejszając w ten sposób obciążenie po stronie serwera. Komunikacja z web serwisami komunikacja z serwerem ma z reguły na celu pozyskanie danych do prezentacji w aplikacji i odbywa się za pomocą web serwisów. Z reguły są to web serwisy oparte o protokół SOAP, bądź web serwisy typu REST, zwracające XML lub JSON (Javascript Object Notation). 12

13 5 Technologia Silverlight Silverlight jest rozwiązaniem firmy Microsoft do budowy aplikacji RIA działającej we wszystkich standardowych przeglądarkach internetowych. Z założenia pozwala na tworzenie atrakcyjnych wizualnie interfejsów użytkownika, które mogą procować na wielu środowiskach i urządzeniach. Przykładem może być wsparcie zarówno dla systemów Microsoft Windows jak i Apple Macintosh. Silverlight udostępnia elastyczny i spójny model programowania wspierający AJAX, języki.net i pozwalający na integrację z istniejącymi aplikacjami internetowymi. 5.1 Możliwości Silverlight Opis funkcji technologii Silverlight można podzielić na trzy grupy [9]: Aplikacje Interaktywne, rozbudowane interfejsy osiągane niewielkim wysiłkiem. Prezentacja danych, edycja danych w tabelkach i formularzach, lokalne buforowanie wyników przeliczeń, walidacja, drag and drop to tylko niektóre z wbudowanych funkcji pozwalających szybko tworzyć atrakcyjne wizualnie interfejsy użytkownika. Do tego dochodzi możliwość animacji dowolnych właściwości obiektów. Obrys, wypełnienie, kolor, gradient, wypukłość, przeźroczystość, kąt, położenie w przestrzeni quasi-3d itd. każdy z tych parametrów ma przypisaną wartość, która może zmieniać się na osi czasu. Wszystko to definiowane w jawnej strukturze XAML (XML) co ułatwia proces tworzenia, rozwoju i modyfikacji. Aplikacje w przeglądarce i na desktopie tworzenie aplikacji działających identycznie w przeglądarce WWW i poza nią przy użyciu jednej opcji. Aplikację działającą w przeglądarce można skonstruować tak, by użytkownik mógł samodzielnie zdecydować, czy może ona działać jako program całkowicie niezależny od przeglądarki bez wymuszania instalacji czegokolwiek. 60+ wbudowanych kontrolek, oraz wiele więcej open source i komercyjnych Łatwość prototypowania z użyciem narzędzie SketchFlow Rich Text, Drukowanie, dostęp do niektórych funkcji systemu takich jak schowek, lokalny dysk, funkcje MS Office Media Platforma zawiera narzędzia umożliwiające tworzenie witryn i aplikacji zarówno do dystrybucji plików audio/wideo, jak i do udostępniania ich w trybie strumieniowym. Strumienie mogą wykorzystywać pakiety multicast, a ich stopień kompresji może się dynamicznie zmieniać w zależności od dostępnego pasma. Do kodowania obrazu i dźwięku można wykorzystywać najnowsze kodeki wysokiej jakości (H.264 AVC lub VC-1, z rozdzielczością do 1080p) bez obawy o moc obliczeniową komputerów użytkowników. 13

14 Silverlight 4 pozwala bowiem na sprzętowe wspomaganie dekodowania sygnałów audio i wideo. Technologia Deep Zoom daje możliwość wyświetlania wysokiej jakości zdjęć bez konieczności czekania na przeładowanie grafiki czy zbędnego obciążania wydajności aplikacji. Wbudowane funkcje integrujące z kamerą czy mikrofonem dają możliwość przechwytywania sygnału z urządzeń peryferyjnych i ich wykorzystania w aplikacji. Nagrany materiał może być zapisany z nagłówkami lub jako materiał surowy a także może być zabezpieczony technologią DRM (Digital Rights Management). Windows Phone 7, Windows Embedded Silverlight 4 jest także podstawowym środowiskiem do tworzenia aplikacji dla najnowszej platformy mobilnej Windows Phone 7. Jest też przewidziany jako podstawowa platforma aplikacyjna dla nowej edycji platformy Windows Embedded (odbiorniki TV, kioski). 14

15 6 Integracja rozwiązań Silverlight z SharePoint 2010 Microsoft nie poprzestał na zaleceniu wykorzystania technologii Silverlight w środowisku SharePoint, ale sam oparł cały szereg elementów witryn wokół tej technologii dla uzyskania bogatszego doświadczenia jakie użytkownik odnosi przy pracy z SharePoint em. Całość została pomyślana tak, by dać użytkownikowi prawo wyboru odnośnie tego czy chce te możliwości wykorzystać, czy też woli oprzeć się o standardy HTML i Javascript. System SharePoint potrafi więc automatycznie rozpoznać czy użytkownik ma zainstalowaną wtyczkę Silverlight i wyrenderować odpowiedni interfejs. Wykorzystanie Silverlight w środowisku SharePoint 2010 zmusiło Microsoft do opracowania zespołu elementów ułatwiających tworzenie i wdrażanie aplikacji, które następnie mogą być wykorzystane przez programistę do budowy własnych rozwiązań RIA integrujących z SharePoint. Do elementów tych zaliczyć można środowisko programistyczne (IDE - Integrated Development Environment) do budowy aplikacji Silverlight, elementy wspierające wdrażanie aplikacji Silverlight i jej integrację z witrynami SharePoint oraz zespół bibliotek i web serwisów umożliwiających programowy dostęp do wbudowanych funkcji systemu (SharePoint API). 6.1 Wdrażanie aplikacji Silverlight w środowisku SharePoint Microsoft zadbał o to, by integracja aplikacji Silverlight odbywała się w prosty i przejrzysty sposób. Ponieważ cały kod źródłowy aplikacji Silverlight kompilowany jest do pliku.xap, środowisko SharePoint wyposażono w składnik Silverlight web part, którego naczelnym zadaniem jest odwołanie się do pliku xap i wygenerowanie kodu HTML uruchamiającego aplikację jako część strony internetowej. Sam plik.xap może być przechowywany zarówno w systemie plików gdzie zainstalowany jest SharePoint, przy założeniu że plik jest przechowywany w wirtualnym folderze, do którego możliwy jest dostęp poprzez HTTP, bądź w bibliotekach dokumentów lub folderach samego SharePoint. Przyjrzyjmy się teraz jak tworzone jest rozwiązanie Silverlight dla SharePoint w środowisku Visual Studio Tworzenie nowego projektu Silverlight zaczyna się od wybrania szablonu Silverlight Application dostępnego w kategorii Silverlight, w menu File-New-Project... 15

16 Rysunek 3. Nowy projekt Silverlight Application w VS Przy zapytaniu czy chcemy utworzyć projekt strony web do uruchomienia aplikacji Silvelight, odpowiadamy nie, z uwagi na to, że aplikacja będzie uruchamiana w środowisku SharePoint. Rysunek 4. Okno tworzenia aplikacji testowej projektu Silverlight w VS

17 3. Dodajemy kolejny projekt, tym razem z zakładki SharePoint, wybierając Empty SharePoint Project. Celem tego projektu będzie wdrożenie pliku wynikowego.xap do folderu strony SharePoint. Rysunek 5. Projekty SharePoint Ponieważ jest to projekt SharePoint, należy podać adres witryny, która posłuży do testowania i debugowania naszej aplikacji. Należy również odpowiedzieć na pytanie czy chcemy utworzyć Sandboxed solution czy Full Trust solution. Dla rozwiązań SharePoint wybieramy Sandboxed solution i naciskamy Finish. 17

18 Rysunek 6. Konfiguracja witryny testowej projektu SharePoint 5. W kolejnym kroku dodajemy tzw. moduł (Module), który ma za zadanie kopiowanie plików lokalnych do list, bibliotek bądź folderów SharePoint. Dla nowo utworzonego projektu SharePoint wybieramy więc Add New Item a następnie z kategorii SharePoint wybieramy Module i podajemy nazwę modułu w naszym przypadku XAPs. 18

19 Rysunek 7. Tworzenie modułu w projekcie SharePoint Na tym etapie całość rozwiązania będzie składała się z dwóch projektów Silverlight i SharePoint. Projekt Silverlight domyślnie posiada dwa pliki xaml które tworzą startowe okno aplikacji Silverlight. Projekt SharePoint będzie posiadał większa liczbę elementów i zanim przejdziemy do kolejnego kroku, przyjrzyjmy się im bliżej. 19

20 Rysunek 8. Elementy składowe projektów Silverlight i SharePoint Features (funkcje), moduł umożliwiający wdrażanie i administrację w systematyczny i uregulowany sposób elementarnymi funkcjami zintegrowanymi z SharePoint. Każda niestandardowa funkcjonalność wdrażana do SharePoint powinna być zawarta jako funkcja. Funkcje mogą wpływać na różne obszary SharePoint'a, np. na pojedynczą witrynę, kolekcję witryn, czy całą farmę. Wbudowane funkcje oraz funkcje z rozwiązaniami typu Full Trust zlokalizowane są w folderze %14%\TEMPLATE\FEATURES (%14% odwołuje się do folderu głównego SharePoint 2010, tzw. SharePoint Root, domyślnie zlokalizowany w C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14). W poprzedniej wersji 2007, folder ten nazywał się 12. Funkcje dla rozwiązań typu Sandboxed nie są instalowane w systemie plików, ale przechowywane są w wirtualnej galerii rozwiązań SharePoint. Funkcje mogą definiować praktycznie wszystkie elementy składowe architektury SharePoint'a, takie jak: o składnik Web Part o moduły o szablon witryny o typ zawartości o obiegi dokumentów o szablony i instancje list 20

21 Aktywując daną funkcję udostępniamy ją na danym poziomie, na przykład na pojedynczej witrynie lub w całej kolekcji witryn. Solution Package (rozwiązanie, paczka) plik.wsp zawierający wszystkie elementy składowe wdrażanego rozwiązania takie jak funkcje czy moduły. Administrator ma do dyspozycji narzędzia ułatwiające ich wdrażanie i administrację. Module (moduł) element pozwalający na wdrożenie jednego lub wielu plików do docelowych bibliotek, list czy folderów SharePoint a. W naszym przypadku, stworzony moduł XAPs wdroży pliki zdefiniowane w definicji modułu zawartego w pliku elements.xml. Plik ten ma za zadanie określenie źródła i miejsca docelowego dla wdrażanych plików. 6. Domyślnie moduł zawiera plik sample.txt. Jeżeli otworzymy plik elements.xml modułu zauważymy, że element File określa jak umieścić plik w zadanej lokalizacji środowiska SharePoint. <Elements xmlns=" <Module Name="XAPs"> <File Path="XAPs\Sample.txt" Url="XAPs/Sample.txt" /> </Module> </Elements> Zwróćmy uwagę, że atrybut Path definiuje lokalizację w systemie plików, natomiast atrybut Url definiuje docelową lokalizację w folderze XAPs SharePoint a. Co ważne, moduł domyślnie wyposażony jest w funkcję śledzenia jakie pliki znajdują się w katalogu modułu i odpowiednio aktualizuje zawartość pliku elements.xml. Usuniemy więc plik Sample.txt z naszego modułu i zobaczymy, że element File zostanie usunięty z pliku elements.xml. 7. Ostatnim krokiem przed uruchomieniem procesu wdrożenia jest dodanie pliku wynikowego.xap do modułu XAPs. Należy się upewnić, że plik.xap będzie miał ustawiony DeploymentType jako ElementFile we właściwościach pliku. To zapewni, że plik nasz będzie dołączony do rozwiązania (.wsp). Krok ten można zautomatyzować przy z wykorzystaniem zdarzeń budujących (post-build events) w Visual Studio Pozwalają one na specyfikowanie operacji wykonywanych przed bądź po każdorazowym skompilowaniu naszego projektu. Można więc posłużyć się komendą xcopy do skopiowania pliku.xap do folderu XAPs. Więcej na temat post-build events w Visual Studio 2010 można znaleźć na stronach MSDN: 21

22 Rysunek 9. Plik.xap w module projektu SharePoint 8. Tak przygotowany projekt możemy wdrożyć do środowiska SharePoint opcją Deploy. Rysunek 10. Wdrażanie aplikacji Silverlight do środowiska SharePoint Zanim przejdziemy do kolejnego etapu, należy podkreślić, że pliki.xap równie dobrze kopiować można do folderów wirtualnych SharePoint a, takich jak folder _layouts 22

23 (%14%\TEMPLATE\LAYOUTS). W ten sposób nasz plik będzie dostępny dla całej farmy, nie tylko dla wybranych witryn. 6.2 Silverlight Web Part Na tym etapie, aplikacja Silverlight (plik.xap) jest dostępna z poziomu przeglądarki, zakładając, że użytkownik ma odpowiednie uprawnienia do pliku. Pozostaje więc skonfigurować witrynę tak, by uruchomić zawartą na niej aplikację. Do tego celu posłużymy się wbudowanym składnikiem Silverlight Web Part. Składnik ten jest bardzo prosty w konfiguracji i sprowadza się do podania parametru URL określającego adres pliku.xap. W naszym przypadku plik został wdrożony do folderu XAPs korzenia hierarchii portalu, w związku z czym adres internetowy możemy określić jako /XAPs/AplikacjaSilverlight.xap. Opcjonalnie składnik daje możliwość podania parametrów startowych, które następnie są przekazywane do aplikacji Silverlight poprzez właściwość InitParameters. Rysunek 11. Konfiguracja składnika SharePoint web part 23

24 6.3 Komunikacja Silverlight z SharePoint API Ponieważ Silverlight jest technologią kliencką a SharePoint serwerową wymagane jest zapewnienie mechanizmów komunikacji, które umożliwią wykorzystanie bogatych funkcji serwerowych w aplikacji klienckiej. Mechanizmy te oparte zostały o serwisy webowe (web service) umożliwiające komunikację z serwerem w oparciu o standardowe protokoły sieciowe takie jak HTTP. Należy podkreślić, że w Silverlight komunikacja sieciowa musi odbywać się w sposób asynchroniczny. Narzucenie tej konwencji ma na celu uniemożliwienie blokowania systemu klienckiego przy wykonywaniu dłuższych operacji, takich jak komunikacja z web serwisem. Model programowania asynchronicznego zostanie omówiony szerzej w sekcji Komunikacja Silverlight z SharePoint API. W SharePont 2010 zdecydowanie najbardziej popularną opcją komunikacji klienta z serwerem jest Client Object Model. Do alternatywnych metod dostępu do SharePoint API zaliczyć można: Web serwisy SOAP, przeniesione w znacznej części z wersji 2007 pomimo że oferują dostęp do znacznej części API, model programowania znacznie odbiega od ideału. Z reguły by uzyskać interesujące nas dane, zmuszeni jesteśmy do parsowania XML a, co prowadzi do częstych błędów i wymaga większego nakładu pracy. REST Services zyskujący coraz większą popularność wzorzec architektury systemów rozproszonych oparty na wykorzystaniu protokołu HTTP i mechanizmów w nim zawartych do reprezentacji zasobów przechowywanych na serwerze. Jako nośnik informacji wykorzystuje się formaty XML i JSON, co znacznie upraszcza programowanie po stronie klienta z uwagi na możliwość wykorzystania standardowych bibliotek obsługujących te formaty praktycznie w każdym języku programowania Client Object Model Microsoft od samego początku wprowadzania technologii Silverlight podkreślał, że programiści.net będą mieli do dyspozycji dobrze im znany model programowania oparty o języki C# i VB.NET. Nie inaczej jest w przypadku programowania aplikacji Silverlight dla SharePoint, gdzie stworzono zespół bibliotek.net umożliwiających komunikację z API SharePoint a w sposób programowy bez konieczności wywoływania metod i usług zapewniających komunikację sieciową. W tym celu stworzono Client Object Model (Client OM), który charakteryzuje się następującymi własnościami: Zawiera znaczną część SharePoint API umożliwiając programową komunikację z witrynami i ich elementami składowymi, takimi jak listy, biblioteki dokumentów, użytkownicy. Wspiera operacje wykonywane grupowo w celu optymalizacji czasu zapytania i odpowiedzi. Implementacja dla.net, Silverlight i Javascript umozliwia wykorzystanie w różnorakich aplikacjach, takich jak aplikacje desktopowe, strony internetowe, czy aplikacje Silverlight. 24

25 Na diagramie Rysunek 12. Schemat działania Client Object Model przedstawiono elementy składowe i role jakie odgrywają w procesie komunikacji klienta z serwerem [10]. Kod aplikacji Silverlight odwołuje się bezpośrednio do bibliotek Client OM operując na zawartych tam klasach i obiektach. Następnie biblioteka Client OM delegując do klas proxy kieruje żądania wykonania poszczególnych usług do kodu odpowiedniego web serwisu. Logika web serwisu zawarta jest w serwisie WCF (Windows Communication Foundation) o nazwie Client.svc. Web serwis ten z kolei odwołuje się do API SharePoint a, w odpowiedzi dostając żądane dane bądź zlecając wykonanie usług. Rysunek 12. Schemat działania Client Object Model Aby wykorzystać biblioteki w aplikacji Silverlight, musimy dodać dwa pliki.dll zawarte w folderze 14\TEMPLATE\LAYOYTS\ClientBin Microsoft.SharePoint.Client.Silverlight.dll Microsoft.SharePoint.Client.Silverlight.Runtime.dll W ten sposób możemy zacząć odwoływać się do obiektów reprezentujących elementy składowe SharePoint jak na przykład Web (witryna) czy List (lista). 25

26 6.4 Wzorzec MVVM Programista przy budowie aplikacji Silverlight ma pełną swobodę projektowania kodu aplikacji według własnych upodobań. Z czasem jednak, programiści zaczęli opracowywać pewne wzorce, których naczelnym celem było utrzymanie wysokiej jakości kodu, między innymi poprzez odseparowanie zagadnień logiki biznesowej od logiki prezentacji. Jednym z takich wzorców jest wzorzec MVVM (Model View ViewModel) [11], zaprojektowany na podstawie popularnego w technologiach serwerowych języków programowania wzorca MVC (Model View Controller). O popularności MVC świadczy fakt, że praktycznie wszystkie znane języki programowania aplikacji internetowych (ASP.NET, Java, Ruby on Rails, Python) dostarczają rozwiązań umożliwiających tworzenie projektu podążając wytycznymi wzorca MVC. Do korzyści wynikających z takiej budowy aplikacji zaliczyć można m.in. separację zagadnień, testowalność aplikacji (możliwość pisania testów jednostkowych, o których mowa będzie szerzej w rozdziale 26

27 Testy jednostkowe), łatwiejszą rozbudowę aplikacji, reużywalność kodu, czy płynniejsza współpraca pomiędzy grafikiem a programistą z uwagi na łatwość wprowadzania danych projektowych (design data). Konieczność dostosowania wzorca MVC, w wyniku czego powstał wzorzec MVVM, wzięła się głównie z chęci wykorzystania bardzo użytecznej cechy technologii Silverlight i WPF jaką jest bindowanie danych (data bindings). Cecha ta umożliwia zlecenie wyświetlania danych i ich formatowania oraz określenie sposobu interakcji elementom interfejsu użytkownika w sposób deklaratywny. Nie tylko upraszcza to procedurę prezentacji i interakcji z danymi po stronie interfejsu użytkownika, ale pozwala również na monitorowania zmian zachodzących w obiektach przechowujących dane i odpowiednią reakcję elementów prezentacji danych. Jako programiści oznacza to, że jesteśmy zwolnieni z obowiązku odświeżania kontrolek wraz ze zmianą danych, kontrolki bindowane do danych będą natywnie pełniły tę funkcję. Działanie bindowania danych zostanie omówione szerzej w sekcji Popularność wzorca MVVM sprawiła, że powstał cały szereg szkieletów aplikacyjnych (framework) stworzonych przez firmę Microsoft badź open source, upraszczających znacznie budowę aplikacji tą metodą. Do bardziej popularnych należą: MVVM Light Toolkit open source ( Caliburn open source ( Calcium open source ( MEF (Managed Extensibility Framework) Microsoft Do budowy naszej aplikacji, wykorzystany został MVVM Light Toolkit. Bindowanie danych w Silverlight. Wzorzec MVVM jak sama nazwa wskazuje wyróżnia trzy podstawowe bloki budujące aplikację: View (widok) kod bezpośrednio tworzący interfejs użytkownika, w przypadku Silverlight najczęściej zawarty w plikach XAML (Extensible Application Markup Language) będącym językiem XML opisującym elementy interfejsu użytkownika. Jedynym zadaniem widoku powinna być prezentacja danych. Widok nie powinien zawierać logiki biznesowej, czy nawet logiki odnoszącej się do prezentacji. Powinien zawierać okna, strony, kontrolki, style, czyli wszystko co służy do prezentacji informacji. Oczywiście elementy te będą z reguły umożliwiały pewną formę interakcji z użytkownikiem i tu widok ma za zadanie umożliwienie takowej, poprzez przekazanie obsługi zdarzenia elementowi ViewModel. Model (model) dane i usługi im towarzyszące. Obiekty tworzące logikę biznesową naszej aplikacji dające możliwość pozyskania i manipulacji interesującymi nas danymi. W skład modelu wchodzą z reguły obiekty domeny biznesowej, ich właściwości i reguły walidacji. ViewModel (widok model) element pośredniczący pomiędzy widokiem a modelem (interfejsem a danymi). Będzie zbindowany do widoku, co umożliwi bardzo prostą obsługę 27

28 wszelkiego rodzaju interakcji udostępnionej przez elementy widoku. Jednocześnie będzie posiadał potrzebne elementy modelu, delegując wszelkiego rodzaju żądania usług i danych do tej warstwy. Widok nigdy nie komunikuje się bezpośrednio z modelem i odwrotnie. Komunikacja odbywa się poprzez element ViewModel. ViewModel Logika prezentacji View (Widok) Model XAML Kod Logika biznesowa Rysunek 13. Komunikacja pomiędzy elementami wzorca MVVM Popularność wzorca MVVM sprawiła, że powstał cały szereg szkieletów aplikacyjnych (framework) stworzonych przez firmę Microsoft badź open source, upraszczających znacznie budowę aplikacji tą metodą. Do bardziej popularnych należą: MVVM Light Toolkit open source ( Caliburn open source ( Calcium open source ( MEF (Managed Extensibility Framework) Microsoft Do budowy naszej aplikacji, wykorzystany został MVVM Light Toolkit. 6.5 Bindowanie danych w Silverlight Zasada działania bindowania danych może być przedstawiona w następujący sposób: Cel bindowania Źródło bindowania Element Interfejsu Właściwośd zależna Obiekt Bindujący Obiekt Właściwośd Konwerter wartości 28

29 Rysunek 14. Bindowanie w Silverlight Mechanizm bindujący otrzymuje od obiektu bindującego następujące informacje: 1. Docelowa własność elementu interfejsu użytkownika, która wyświetla i pozwala bądź nie na wprowadzenie zmian. 2. Obiekt źródłowy zawierający dane przepływające między źródłem i elementem docelowym. 3. Kierunek przepływu danych zdefiniowany przez właściwość Mode obiektu bindującego. 4. Opcjonalny konwerter wartości (Value Converter), będący implementacją interfejsu IValueConverter. W naszym projekcie zastosujemy bindowanie danych do wyświetlania i edycji danych. Bindowanie ustawia się w pliku XAML, gdzie znajduje się nasza kontrolka przy użyciu składni {Binding...}. Poniższy przykład prezentuje kontrolkę TextBox, gdzie właściwość Text jest deklaratywnie bindowana do właściwości ProjectName obiektu źródłowego. W ten sposób nazwa projektu będzie się automatycznie zmieniać w zależności od wartości przechowywanej we własności ProjectName. Zauważmy również, ze jako źródło przypisania można użyć zasobów statycznych (np. atrybut Style do zmiany wyglądu kontrolki). <TextBox x:name="projectnametextbox" Text="{Binding ProjectName}" Style="{StaticResource TextBox}"/> Należy podkreślić, że aby istniała możliwość automatycznego odświeżenia wartości prezentowanych danych przy zmianie danych w obiekcie źródłowym, obiekt ten musi zaimplementować interfejs INotifyPropertyChanged, a konkretnie zdarzenie PropertyChanged. Zdarzenie to ma za zadanie powiadomienie obiektu docelowego, że obiekt źródłowy uległ zmianie, tak by wymusić aktualizację prezentowanych wartości. W naszym przypadku, zaimplementowany zostanie w klasie bazowej NotifiableObject od której to dziedziczyć będą obiekty będące źródłami bindowania. Przyjrzyjmy się zatem implementacji klasy bazowej: public abstract class NotifiableObject : INotifyPropertyChanged { public event PropertyChangedEventHandler PropertyChanged; protected void RaisePropertyChanged(string propertyname) { if (PropertyChanged!= null) { PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); } } 29

30 } Jak widać implementacja interfejsu opiera się na dostarczeniu logiki definiującej zdarzenie PropertyChanged, a więc zdarzenie zmiany właściwości obiektu. Tego typu sposób obsługi zdarzeń jest typowy dla języków programowania technologii.net i można go spotkać w większości klas umożliwiających obsługę zdarzeń. Sprowadza się on do dwóch zasadniczych kroków: 1. Deklaracji zdarzenia wraz z delegatem (PropertyChangedEventHandler), określającym sygnaturę metody obsługującej zdarzenie: public event PropertyChangedEventHandler PropertyChanged; 2. Udostępnienia metody umożliwiającej wywołanie zdarzenia. Sprawdzenie wartości null obiektu event odpowiada sprawdzeniu, czy są obiekty nasłuchujące danego zdarzenia. W przypadku gdy takie są, zostaną powiadomione o zdarzeniu. protected void RaisePropertyChanged(string propertyname) { if (PropertyChanged!= null) { PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); } } W ten prosty sposób uzyskujemy klasę abstrakcyjną, dziedziczenie od której daje nam funkcję niezbędną do efektywnego bindowania obiektów w Silverlight. 7 Aplikacja Menadżer Projektów Menadżer Projektów jest aplikacją Silverlight stworzoną na potrzeby tego opracowania prezentującą praktyczne zastosowanie omówionych wcześniej technologii. W tym rozdziale szczegółowo omówię elementarne moduły wraz z kodem źrodłowym tworzące aplikację a także proces wdrażania i uruchamiania w środowisku SharePoint Server Zanim przejdę do szczegółów implementacji, omówione zostaną założenia projektu. 7.1 Założenia Założenia funkcjonalne: Aplikacja ma wyświetlić dane istniejących pracowników firmy, takie jak imię, nazwisko, , zdjęcie oraz stawka godzinowa 30

31 Aplikacja ma umożliwić tworzenie zespołów projektowych złożonych z pracowników firmy przy określeniu nazwy i budżetu projektu Aplikacja ma umożliwić wprowadzenie budżetu projektu i wymusić by koszt projektu złożony dla uproszczenia wyłącznie ze stawek godzinowych pracowników nie został przekroczony Założenia niefunkcjonalne: Aplikacja ma być uruchamiania na witrynie środowiska SharePoint jako aplikacja Silverlight Aplikacja ma komunikować się z listami środowiska SharePoint do pobierania i manipulacji danych poprzez wykorzystanie bibliotek Client OM Aplikacja ma umożliwić łatwe tworzenie nowych projektów z użyciem technologii drag and drop do wyboru pracowników projektu Aplikacja ma dostarczyć łatwy w użyciu i intuicyjny interfejs użytkownika Budżet ma być wprowadzany za pomocą kontrolki typu numeric picker 7.2 Lista Projektów w SharePoint Zanim przejdziemy do tworzenia aplikacji Silverlight, niezbędne jest stworzenie elementów z którymi aplikacja będzie się komunikować w środowisku SharePoint. W naszym przypadku będzie to prosta lista, umieszona na witrynie SharePoint zadaniem której będzie wyświetlanie projektów i biorących w nich udział pracowników. Lista powinna grupować członków poszczególnych projektów według ich przynależności do projektu. Powinna wyświetlić zdjęcie użytkownika, jego dane osobowe oraz stawkę godzinową. W środowisku SharePoint, tworzenie nowych list sprowadza się do kilku prostych kroków. 1. Z menu Site Actions należy wybrać opcję More Options Zaprezentowane zostanie okno Create wyświetlające wszystkie dostępne typy obiektów jakie możemy utworzyć. Z lewego menu Filters wybieramy List, następnie z okna głównego Custom List i nadajemy nowo tworzonej liście nazwę Projekty po czym klikamy przycisk Create. 31

32 Rysunek 15. Okno Create witryny SharePoint 3. Na tym etapie nasza lista została stworzona. Pozostaje dodać pola, które będą opisywać dane przechowywane w liście. W tym celu, z menu górnego wybieramy List Settings. Rysunek 16. Nowo stworzona lista SharePoint 4. W List Settings, w sekcji Columns, klikamy na domyślną kolumnę Title i zmieniamy jej nazwę na Nazwa Projektu. 5. Klikamy Create Column i tworzymy dodatkowe kolumny o następujących nazwach i typach: a. Funkcja - Typ: Choice (w polu Type each choice on a separate line należy wprowadzić wartości: Kierownik, Programista, Tester, Menadżer) b. Pracownik Typ: User or Group (w polu Show field należy wybrać Name (with picture) ) c. Stawka Typ: Currency (w polu Currency format należy wybrać zł (Poland) ) 32

33 6. W List Settings, z sekcji Views klikamy na widok All Items. W sekcji Columns, zaznaczamy pola Pracownik, Funkcja, Stawka. W sekcji Group By, obok First group by the column, wybieramy Nazwa Projektu (linked to item with edit menu). Na tym etapie nasza lista jest utworzona. Pozostaje utworzyć projekty i przypisać im pracowników. Rysunek 17. Widok listy projektów 7.3 Struktura projektu Visual Studio 2010 W rozdziale Wdrażanie aplikacji Silverlight w środowisku SharePoint omówiliśmy szczegółowo proces tworzenia projektu aplikacji Silverlight na potrzeby integracji z środowiskiem SharePoint. Projekt Menadżer Projektów został stworzony podążając tymi samymi wytycznymi. Całość składa się więc z projektu Aplikacji Silverlight, projektu SharePoint oraz projektu zawierającego testy (projekty testowe będą szerzej omówione w rozdziale Testy aplikacji Menadżer Projektów). 33

34 Rysunek 18. Projekty tworzące aplikację Menadżer Projektów 7.4 Aplikacja Silverlight Interfejs Użytkownika Elementy interfejsu użytkownika zostały zawarte w pliku MainPage.xaml. Zauważmy, że otwarcie pliku MainPage.xaml, zaprezentowane na Rysunek 19, prezentuje okno aplikacji wraz z danymi projektowymi (z ang. Design data, czasami nazywane danymi testowymi). Jest to niezwykle użyteczna funkcja wynikająca z zastosowania wzorca MVVM wraz z biblioteką MVVM Light, oraz jej wsparcia dla danych projektowych. W oknie poniżej widać wycinek kodu wynikowego XAML powstającego w wyniku dodania kontrolek składowych okna aplikacji. 34

35 Rysunek 19. Okno aplikacji w środowisku VS 2010 z danymi projektowymi 1. Elementy grupowane są za pomocą kontrolek Grid oraz StackPanel. Są to standardowe kontrolki Silverlight dające możliwość elastycznego budowania układu strony. Element Grid jest strukturą złożoną z wierszy i kolumn [12]. Najbardziej zewnętrznym elementem jest Grid o nazwie LayoutRoot określający zewnętrzne wymiary okna. Wewnątrz znajduje się kolejny Grid (UsersGrid) dzielący okno główne na trzy kolumny widoczne na Rysunku 2. Pozycjonowanie elementów wewnątrz kolumn odbywa się za pomocą tzw. atrybutów dołączonych (attached properties) elementów składowych. Na przykład aby umieścić element StackPanel w kolumnie o indeksie 2, dodajemy atrybut Grid.Column o wartości 2. <StackPanel Name="TeamFormStackPanel" Grid.Column="2" ></StackPanel> 35

36 Element StackPanel z kolei pozwala na proste pozycjonowanie elementów jeden pod drugim bądż jeden obok drugiego. 2. Lista użytkowników portalu wyświetlana jest za pomocą kontrolek ListBox. ListBox jest niezwykle elastycznym komponentem pozwalającym na wyświetlania, formatowanie, grupowanie kolekcji danych. My posłużymy się nim do sformatowania danych użytkowników pobranych ze środowiska SharePoint w sposób pokazany na Rysunek 19. Widzimy, że wyświetlamy zdjęcie użytkownika wraz z częścią jego danych, takich jak imię czy stawka godzinowa. Element oznaczony jako 3 jest również kontrolką ListBox, na która będziemy przeciągać użytkowników aplikacji, których chcemy przypisać do danego zespołu projektowego. Mechanizm drag and drop zaimplementowany został za pomocą kontrolek ListBoxDragDropTarget, będących częścią biblioteki Silverlight 4 Toolkit [13]. Uzyskanie efektu drag and drop ogranicza się do umieszczenia kontrolek ListBox wewnątrz ListBoxDragDropTarget i ustawienia atrybutów AllowDrop = True. Ponieważ my chcemy odpowiadać na zdarzenia przeciągnięcia czy upuszczenia użytkownika, zdefiniujemy również jakie zdarzenia chcemy przekazywać w postaci komend (Command) do elementu ViewModel za pomocą tzw. wyzwalaczy zdarzeń (Event Trigger). W przykładzie poniżej definiujemy, że chcemy aby zdarzenie ItemDragStarting kontrolki ListBoxDragDropTarget (rozpoczęcie przeciągania) uruchomiło komendę DropStartingUserCommand zbindowaną w klasie ViewModel. Możemy również określić argument do przekazania metodzie odbierającej zdarzenie [14]. <toolkit:listboxdragdroptarget AllowDrop="True" VerticalAlignment="Top" HorizontalAlignment="Left" MinHeight="320"> <i:interaction.triggers> <i:eventtrigger EventName="ItemDragStarting"> <mvvmlightcmd:eventtocommand Command="{Binding DropStartingUserCommand}" PassEventArgsToCommand="True" /> </i:eventtrigger> <i:interaction.triggers> Zwróćmy jeszcze uwagę na definicję pojedynczego elementu listy. Posłużymy się w tym przypadku elementem DataTemplate, zawartym wśród zasobów okna aplikacji. Sam szablon składa się z elementów StackPanel, jednego do układu poziomego, drugiego do układu pionowego. W ten sposób możemy rozmieścić zdjęcie i dane opisujące atrybuty użytkownika. Ponieważ definicja szablonu zawarta jest w zasobach, możemy łatwo użyć go 36

37 w wielu miejscach aplikacji. W naszym przypadku, będą to dwie kontrolki ListBox, jedna z której przeciągamy elementy i druga docelowa. <UserControl.Resources> <DataTemplate x:key="useritemtemplate">... </DataTemplate> </UserControl.Resources> 3. Docelowa lista zawierający pracowników przypisanych do projektu jest zdefiniowana za pomocą kontrolki ListBox. Szablon, style i zdarzenia pokrywają się z tym co opisane w punkcie W górnej części okna znajdują sie dwie kontrolki typu Button. Począwszy od Silverlight 4, kontrolka Button implementuje ICommand interfejs co sprawia, że natywnie wspiera ona komendy. Każdemu z przycisków przypisujemy więc komendę do wywołania wykorzystując wcześniej omówiony mechanizm bindowania: <Button Content="Resetuj" Command="{Binding ResetCommand}" /> <Button Content="Utwórz" Command="{Binding SubmitCommand}"/> 5. Kontrolka TextBox pozwalająca na wprowadzenie nazwy projektu. 6. Kontrolka NumericUpDown pozwalająca na określenie budżetu projektu. 7. Panel wyświetlający dynamicznie liczone parametry projektu. 7.5 Aplikacja Silverlight - Model Logika biznesowa aplikacji została zdefiniowana w klasach umieszonych w folderach Data i Services. Usługi aplikacji zdefiniowane zostały w klasie UserDataServices i sprowadzają się do dwóch zasadniczych operacji: 1. GetUsers metoda pobierająca użytkowników portalu 2. CreateProject metoda tworząca nowy projekt wraz z przypisanymi mu użytkownikami Przyglądając się definicji metody GetUsers zauważamy, że zawiera ona parametr określony delegatem generycznym: void GetUsers(Action<IEnumerable<User>, Exception> getuserscallback) Jak wspomniano wcześniej, wszelka komunikacja sieciowa w Silverlight musi odbywać się asynchronicznie. Model programowania asynchronicznego w.net można realizować na wiele sposobów, jednakże ten z wykorzystaniem delegatów generycznych jest wyjątkowo przejrzysty. Sprowadza się do wywołania metody asynchronicznej i określenia metody zwrotnej wraz z jej typem (callback, delegate). W naszym przypadku wywoływana będzie metoda ExecuteQueryAysnc obiektu ClientContext, biblioteki Client OM. Pozostaje więc tylko 37

38 określenie typu metody zwrotnej. Dla GetUsers będzie to Action<IEnumerable<Users>>, Exception>, co oznacza, że po zakończeniu działania metoda ExecuteQueryAsync wywoła metodę zwrotną, której pierwszy parametr to kolekcja obiektów typu User, natomiast drugi parametr obiekt typu Exception. W ten sposób mamy dostęp do użytkowników, którzy zostali pobrani z portalu SharePoint, lub ewentualnego wyjątku, jeżeli takowy wystąpił. Przyjrzyjmy się bliżej implementacji tej metody z wykorzystaniem Client OM. Wszelka komunikacja z SharePoint odbywa się poprzez obiekt ClientContext, który w swym konstruktorze definiuje adres witryny zawierającej obiekt docelowy. using (var context = new ClientContext(" W podanym przykładzie odwołanie następuje do witryny SharePoint zlokalizowanej pod adresem Z uwagi na fakt, że obiekt odwołuje się do części niezarządzanych języka (unmanaged resources), dobrą praktyką jest umieszczenie go w dyrektywie using, która zapewni, że po zakończeniu pracy z obiektem, jego zasoby zostaną odpowiednio zwolnione. Przy pracy z obiektami API SharePoint a jest to częsta praktyka i Microsoft publikuje szereg wytycznych dotyczących odpowiedniego alokowania i zwalniania zasobów. Więcej na ten temat można znaleźć w publikacji: Best Practices: Using Disposable Windows SharePoint Services Objects pod adresem W momencie w którym obiekt ClientContext został poprawnie stworzony i zainicjalizowany, możemy zacząć wykonywać konkretne zapytania dla uzyskania potrzebnych nam danych. W naszym przyadku, będzie to zapytanie, które pobierze wiersze listy o tytule User Information List. Jest to wbudowana lista każdej kolekcji stron SharePoint, przechowująca wszelkich użytkowników i grupy przypisane do danej kolekcji. Aby wyspecyfikować szczegóły zapytania, takie jak lista pól, czy warunek where, posłużymy się językiem CAML (Collaborative Application Markup Language), który jest językiem XML pomagającym w tworzeniu zapytań, budowaniu i modyfikowaniu witryn SharePoint i ich elementów składowych. W naszym przypadku zapytanie będzie selekcjonowało użytkowników przypisanych do działu IT (pole Department). var userslist = context.loadquery(context.web.lists.getbytitle("user Information List").GetItems(new CamlQuery() { ViewXml = "<View><Query><Where><Eq><FieldRef Name='Department' /><Value Type='Text'>IT</Value></Eq></Where></Query></View>" })); Jak widać konstruowanie zapytań wysyłanych do SharePoint jest intuicyjne i sprowadza się do kilku prostych kroków. Samo wykonanie zapytania odbędzie się wywołaniem metody ExecuteQueryAsync, która jest asynchroniczną metodą wymagającą wyspecyfikowania dwóch 38

39 metod zwracających. Jedna oznacza metodę wywołaną przy poprawnej odpowiedzi systemu, druga metodę wywołaną przy zwróceniu błędu. Do specyfikacji tych metod posłużymy się niezwykle użyteczną funkcja języka C# jaką są wyrażenia lambda. Wyrażenia lambda to anonimowe delegaty, czyli delegaty bez nazwy. Lewa strona wyrażenia to parametry (może być również bezparametrowa) a prawa to operacje. Obie strony rozdzielone są znacznikiem =>. context.executequeryasync( //success callback (s, e) => { var users = new List<User>(); foreach (var listitem in userslist) { users.add(new User() { UserId = (int)listitem["id"], LoginName = listitem["name"] as string, Title = listitem["title"] as string, FirstName = listitem["firstname"] as string, LastName = listitem["lastname"] as string, = listitem[" "] as string, ImageUri = listitem["picture"]!= null? (listitem["picture"] as FieldUrlValue).Url : string.empty, HourlyRate = listitem["rate"]!= null? Convert.ToDecimal(listItem["Rate"]) : 0 }); } getuserscallback(users, null); }, //failed callback (s, e) => { getuserscallback(null, e.exception); }); W przypadku zakończenia sukcesem, przekażemy kolekcję danych do metody zwrotnej której zadaniem będzie przekazanie kolekcji do odpowiednich komponentów interfejsu użytkownika. W przypadku zakończenia błędem, przekażemy obiekt zawierający informację o błędzie. 39

40 7.6 Aplikacja Silverlight - ViewModel Trzecim składnikiem tworzącym strukturę MVVM jest element ViewModel. Jak zostało wcześniej wspomniane ma on zapewnić komunikację między elementami View i Model. W naszym przypadku, klasa pełniąca to zadanie będzie nosiła nazwę UserViewModel. Komunikacja pomiędzy tymi elementami realizowana jest poprzez właściwość DataContext wbudowaną w większość kontrolek Silverlight. W hierarchii kontrolek, właściwość ta jest dziedziczona od rodziców do dzieci, tak, że nie ma potrzeby specyfikowania tej własności dla każdego elementu. W oknie głównym aplikacji Menadżer Projektów przypisanie własności DataContext wygląda następująco: <UserControl x:class="projectmanagermvvm.mainpage" DataContext="{Binding UserViewModel, Source={StaticResource Locator}}"> Zauważmy, że tworzenie instancji klas ViewModel jest realizowane poprzez obiekt Locator, będącego kluczem zasobu zdefiniowanego w pliku ObjectResoruceDictionary. Przyglądając się defnicji zasobu, widzimy, że tworzy on instancje klasy ViewModelLocator. <viewmodels:viewmodellocator x:key="locator" /> Zadaniem klasy ViewModelLocator będzie tworzenie instancji elementów ViewModel wraz z odpowiednimi zależnościami (object dependencies). Najczęściej będą to elementy takie jak serwisy, do których klasa ViewModel będzie delegować żądania wykonania usług. Dokładnie mówiąc klasa ViewModelLocator odwoła się do klasy ServisProvider, dziedziczonej po klasie ServisProviderBase w celu uzyskania instancji odpowiednich serwisów [11]. ServisProviderBase implementując metodę CreateInstance(), podejmuje decyzję o tym w którym gdzie jest uruchamiania aplikacja i dostarcza serwisy odpowiednie dla tego środowiska. Podjęcie decyzji opiera się na sprawdzeniu właściwości IsInDesignTool klasy DesignerProperties zaimplementowanej w przestrzeni nazw System.Component model.net Framework. static ServiceProviderBase CreateInstance() { return _instance = DesignerProperties.IsInDesignTool? (ServiceProviderBase)new DesignServiceProvider() : new ServiceProvider(); } Ten rodzaj architektury umożliwia konfigurowanie innych serwisów przy uruchamianiu aplikacji w środowisku SharePoint i innych przy wyświetlaniu aplikacji w Visual Studio 2010, co wraca do idei danych projektowych. W momencie, w którym znajdujemy się w środowisku programistycznym, dostawca serwisów będzie klasą DesignServiceProvider. 40

41 Rysunek 20. Diagram klas - tworzenie ViewModel i klas serwisowych 41

42 9 Testy jednostkowe Idea testów jednostkowych polega na opatrzeniu procedurami testującymi elementów kodu, tak by możliwe była automatyczna weryfikacja kodu programu. Testy jednostkowe zyskały na popularności przy okazji popularyzacji metod Agile zarządzania projektami programistycznymi, gdzie wiele z tych metod wymaga ich stosowania (np. metoda XP Extreme Programming). Co więcej, niektóre z nich zalecają stosowanie metody TDD (test driven development), która polega na pisaniu testu przed pisaniem kodu programu. W ten sposób zaczynamy od testów, które kończą się niepowodzeniem i piszemy kod programu do momentu aż test kończy się sukcesem. W rezultacie testy jednostkowe maja nie tyko weryfikować poprawność funkcji czy metod programu, ale również wpływają na jego kształt i architekturę [15]. Przy tworzeniu testów jednostkowych w środowisku.net, wykorzystuje się szereg bibliotek testowych, open source bądź komercyjnych. Do najpopularniejszych należą NUnit (open source), MSTest (Microsoft). Biblioteki te nie zostały jednak przystosowane do pracy z Silverlight, w rezultacie czego stworzono i udostępniono jako open source bibliotekę testującą Silverlight Unit Test framework, przeznaczoną specjalnie dla środowiska Silverlight. Trzeba również wspomnieć o instnieniu tzw. bibliotek naśladujących (mocking frameworks), które wprowadzają przewidywalne i z góry ustalone zachowania do obiektów testowych ograniczając w ten sposób magines błędu. Pozwalają one jendocześnie na śledzenie i testowanie integracji z obiektami odwołującymi się do usłgu obiektu naśladującego. W środowisku.net nie mały wpływ na łatwość tworzenia testów oraz ich jakość ma architektura aplikacji. Testy wysokiej jakości z reguły odznaczają się następującymi atrybutami: Testują elementarne funkcje systemu co sprawia, że przy testach zakończonych niepowodzeniem możliwa jest szybka diagnoza źródła problemu. Są szybkie, co motywuje do ich częstego uruchamiania. Są czytelne, co ułatwia ich pielęgnację a także współpracę z innymi programistami i testerami. Model MVVM przekłada się na architekturę, która jest stosunkowo przyjazna pisaniu testów jednostkowych. Wiąże się to z tym, że aplikacja jest budowana w sposób modularny, to znaczy nie ma stałego sprzężenia między obiektami aplikacji, stąd obiekty mogą być testowane w izolacji od siebie (testowanie elementarnych funkcji systemu). Ponadto, wyjątkowy nacisk kładzie sią na oddzielenie warstwy prezentacji od warstwy biznesowej, co sprawia, że logika biznesowa jest dużo prostsza w testowaniu. Testowanie interfejsów użytkownika jest sztuką trudną z uwagi na zależności od komponentów, nad którymi autor testów nie ma pełnej kontroli, takich jak na przykład serwer www i przeglądarka, w którym uruchamiana jest aplikacja. Zamiast próby ich testowania wykorzystuje się techniki izolowania (zaślepiania) budując własne obiekty bądź wykorzystując wspomniane wcześniej biblioteki izolujące. Dla jakich obiektów mocking jest najbardziej przydatny? 42

43 Obiekty, których stan trudno jest odtworzyć Obiekty interfejsu użytkownika Obiekty, których metody trwają znaczący czas (połączenie z bazą danych, web serwisem, odczyt lub zapis do pliku) Obiekty klas, w których zależności z innymi obiektami są wysokie (w celu stworzenia obiektu musimy stworzyć inny obiekt, który wymaga kolejnego obiektu, etc...) Trudno przewidzieć zachowanie danego obiektu w czasie uruchamiania testu (np. metody wykorzystujące czas systemowy) W przypadku aplikacji Silverlight dochodzi jeszcze jedna ważna zależność. Mianowicie jak wspominaliśmy wcześniej, Silverlight narzuca konwencję programowania asynchronicznego przy jakimkolwiek komunikacji z różnego rodzaju źródłami danych. W związku z tym autor testów musi przestrzegać konwencji wykorzystanych do konstrukcji metod asynchronicznych. Tu z pomocą przychodzi Silverlight Unit Test Framework [16] (część Silverlight 4 Toolkit), która posiada gotowe mechanizmy do uruchamiania testów kodu asynchronicznego. Dodatkowo oferuje ona szablony dla środowiska Visual Studio 2010 oraz aplikację testującą napisaną w Silverlight co sprawia, że testy uruchamiane są w oknie przeglądarki. Rysunek 21. Szablon projektu Silverlight Unit Test framework w VS

TOPWEB SPSall Budowanie portalu intranetowego

TOPWEB SPSall Budowanie portalu intranetowego TOPWEB SPSall Budowanie portalu intranetowego Przeznaczenie szkolenia Szkolenie dla osób chcących: Profesjonalnie budować intranetowy portal w oparciu o aplikację Microsoft SharePoint 2013. Sprawnie posługiwać

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

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

Tworzenie aplikacji Web Alicja Zwiewka. Page 1

Tworzenie aplikacji Web Alicja Zwiewka. Page 1 Tworzenie aplikacji Web Alicja Zwiewka Page 1 Co to są web-aplikacje? Aplikacja internetowa (ang. web application) program komputerowy, który pracuje na serwerze i komunikuje się poprzez sieć komputerową

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

Dotacje na innowacje. Inwestujemy w waszą przyszłość.

Dotacje na innowacje. Inwestujemy w waszą przyszłość. PROJEKT TECHNICZNY Implementacja Systemu B2B w firmie Lancelot i w przedsiębiorstwach partnerskich Przygotowane dla: Przygotowane przez: Lancelot Marek Cieśla Grzegorz Witkowski Constant Improvement Szkolenia

Bardziej szczegółowo

Microsoft SharePoint 2016 : krok po kroku / Olga Londer, Penelope Coventry. Warszawa, Spis treści

Microsoft SharePoint 2016 : krok po kroku / Olga Londer, Penelope Coventry. Warszawa, Spis treści Microsoft SharePoint 2016 : krok po kroku / Olga Londer, Penelope Coventry. Warszawa, 2017 Spis treści Wprowadzenie ix 1 Wprowadzenie do programu SharePoint 2016 1 Rozpoczynanie pracy w programie SharePoint

Bardziej szczegółowo

Microsoft SharePoint Współpraca bez barier oraz organizacja portalu intranetowego i obiegu dokumentów

Microsoft SharePoint Współpraca bez barier oraz organizacja portalu intranetowego i obiegu dokumentów Microsoft SharePoint 2013 - Współpraca bez barier oraz organizacja portalu intranetowego i obiegu dokumentów KORZYŚCI WYNIKAJĄCE Z UKOŃCZENIA SZKOLENIA Po ukończeniu szkolenia uczestnik będzie potrafił

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

Przesłanki powstania książki... xvi Dla kogo przeznaczona jest ta książka?... xvi Co znajdziemy wewnątrz książki?... xvii

Przesłanki powstania książki... xvi Dla kogo przeznaczona jest ta książka?... xvi Co znajdziemy wewnątrz książki?... xvii Przedmowa...ix Podziękowania....xi Wprowadzenie.... xv Przesłanki powstania książki... xvi Dla kogo przeznaczona jest ta książka?... xvi Co znajdziemy wewnątrz książki?... xvii Część pierwsza: Modele wykonywania

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

MVVM Light Toolkit. Julita Borkowska

MVVM Light Toolkit. Julita Borkowska MVVM Light Toolkit Julita Borkowska Czym jest MVVM Light Toolkit? MVVM Light Toolkit został stworzony w 2009 roku przez Laurenta Bugnion. Jest to biblioteka dostarczająca zestaw komponentów pomocnych podczas

Bardziej szczegółowo

Instrukcja instalacji

Instrukcja instalacji Instrukcja instalacji Nintex USA LLC 2012. Wszelkie prawa zastrzeżone. Zastrzegamy sobie prawo do błędów i pominięć. support@nintex.com 1 www.nintex.com Spis treści 1. Instalowanie programu Nintex Workflow

Bardziej szczegółowo

Część I Rozpoczęcie pracy z usługami Reporting Services

Część I Rozpoczęcie pracy z usługami Reporting Services Spis treści Podziękowania... xi Wprowadzenie... xiii Część I Rozpoczęcie pracy z usługami Reporting Services 1 Wprowadzenie do usług Reporting Services... 3 Platforma raportowania... 3 Cykl życia raportu...

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

To sposób w jaki użytkownik wchodzi w interakcje z systemem. Środowisko graficzne używa kombinacji graficznych elementów(przyciski, okna, menu) i

To sposób w jaki użytkownik wchodzi w interakcje z systemem. Środowisko graficzne używa kombinacji graficznych elementów(przyciski, okna, menu) i Aleksandra Dębiecka To sposób w jaki użytkownik wchodzi w interakcje z systemem. To sposób w jaki użytkownik wchodzi w interakcje z systemem. Środowisko graficzne używa kombinacji graficznych elementów(przyciski,

Bardziej szczegółowo

SHAREPOINT SHAREPOINT QM SHAREPOINT DESINGER SHAREPOINT SERWER. Opr. Barbara Gałkowska

SHAREPOINT SHAREPOINT QM SHAREPOINT DESINGER SHAREPOINT SERWER. Opr. Barbara Gałkowska SHAREPOINT SHAREPOINT QM SHAREPOINT DESINGER SHAREPOINT SERWER Opr. Barbara Gałkowska Microsoft SharePoint Microsoft SharePoint znany jest również pod nazwą Microsoft SharePoint Products and Technologies

Bardziej szczegółowo

Przygotowanie do nowoczesnego programowania po stronie przeglądarki. (HTML5, CSS3, JS, wzorce, architektura, narzędzia)

Przygotowanie do nowoczesnego programowania po stronie przeglądarki. (HTML5, CSS3, JS, wzorce, architektura, narzędzia) Program szkolenia: Przygotowanie do nowoczesnego programowania po stronie przeglądarki (HTML5, CSS3, JS, wzorce, architektura, narzędzia) Informacje: Nazwa: Kod: Kategoria: Grupa docelowa: Czas trwania:

Bardziej szczegółowo

Projektowanie aplikacji internetowych Tworzenie własnego portalu Internetowego przy użyciu oprogramowania SharePoint Services

Projektowanie aplikacji internetowych Tworzenie własnego portalu Internetowego przy użyciu oprogramowania SharePoint Services Instrukcja numer W01 Projektowanie aplikacji internetowych Tworzenie własnego portalu Internetowego przy użyciu oprogramowania SharePoint Services SharePoint Zasada działania Zasada działania SharePoint

Bardziej szczegółowo

Portale raportowe, a narzędzia raportowe typu self- service

Portale raportowe, a narzędzia raportowe typu self- service Portale raportowe, a narzędzia raportowe typu self- service Bartłomiej Graczyk Kierownik Projektów / Architekt rozwiązań Business Intelligence E mail: bartek@graczyk.info.pl Site: www.graczyk.info.pl Agenda

Bardziej szczegółowo

1 Wprowadzenie do koncepcji Microsoft Office BI 1 Zakres ksiąŝki 2 Cel ksiąŝki 3 Wprowadzenie do tematu 3 Zawartość rozdziałów 4

1 Wprowadzenie do koncepcji Microsoft Office BI 1 Zakres ksiąŝki 2 Cel ksiąŝki 3 Wprowadzenie do tematu 3 Zawartość rozdziałów 4 1 Wprowadzenie do koncepcji Microsoft Office BI 1 Zakres ksiąŝki 2 Cel ksiąŝki 3 Wprowadzenie do tematu 3 Zawartość rozdziałów 4 2 Tabele przestawne, wykresy przestawne i formatowanie warunkowe 11 Co to

Bardziej szczegółowo

Forum Client - Spring in Swing

Forum Client - Spring in Swing Forum Client - Spring in Swing Paweł Charkowski. 0. Cel projektu Celem projektu jest próba integracji Spring Framework z różnymi technologiami realizacji interfejsu użytkownika, oraz jej ocena. Niniejszy

Bardziej szczegółowo

Instrukcja laboratoryjna

Instrukcja laboratoryjna Zaawansowane techniki obiektowe 2016/17 Instrukcja laboratoryjna Testy funkcjonalne Prowadzący: Tomasz Goluch Wersja: 1.0 Testowanie aplikacji z bazą danych Większość współczesnych aplikacji korzysta z

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

Tworzenie i wykorzystanie usług sieciowych

Tworzenie i wykorzystanie usług sieciowych Ćwiczenie 14 Temat: Tworzenie i wykorzystanie usług sieciowych Cel ćwiczenia: W trakcie ćwiczenia student zapozna się z procedurą tworzenia usługi sieciowej w technologii ASP.NET oraz nauczy się tworzyć

Bardziej szczegółowo

SYSTEM VILM ZARZĄDZANIE CYKLEM ŻYCIA ŚRODOWISK WIRTUALNYCH. info@prointegra.com.pl tel: +48 (032) 730 00 42

SYSTEM VILM ZARZĄDZANIE CYKLEM ŻYCIA ŚRODOWISK WIRTUALNYCH. info@prointegra.com.pl tel: +48 (032) 730 00 42 SYSTEM VILM ZARZĄDZANIE CYKLEM ŻYCIA ŚRODOWISK WIRTUALNYCH info@prointegra.com.pl tel: +48 (032) 730 00 42 1. WPROWADZENIE... 3 2. KORZYŚCI BIZNESOWE... 4 3. OPIS FUNKCJONALNY VILM... 4 KLUCZOWE FUNKCJE

Bardziej szczegółowo

APLIKACJA SHAREPOINT

APLIKACJA SHAREPOINT APLIKACJA SHAREPOINT Spis treści 1. Co to jest SharePoint?... 2 2. Tworzenie nowej witryny SharePoint (obszar roboczy)... 2 3. Gdzie znaleźć utworzone witryny SharePoint?... 3 4. Personalizacja obszaru

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

Platforma e-learningowa

Platforma e-learningowa Dotyczy projektu nr WND-RPPD.04.01.00-20-002/11 pn. Wdrażanie elektronicznych usług dla ludności województwa podlaskiego część II, administracja samorządowa realizowanego w ramach Decyzji nr UDA- RPPD.04.01.00-20-002/11-00

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

Produktywne tworzenie aplikacji webowych z wykorzystaniem Groovy i

Produktywne tworzenie aplikacji webowych z wykorzystaniem Groovy i Program szkolenia: Produktywne tworzenie aplikacji webowych z wykorzystaniem Groovy i Informacje: Nazwa: Kod: Kategoria: Grupa docelowa: Czas trwania: Forma: Produktywne tworzenie aplikacji webowych z

Bardziej szczegółowo

MVVM i XAML w Visual Studio 2015 / Jacek Matulewski. Gliwice, cop Spis treści

MVVM i XAML w Visual Studio 2015 / Jacek Matulewski. Gliwice, cop Spis treści MVVM i XAML w Visual Studio 2015 / Jacek Matulewski. Gliwice, cop. 2016 Spis treści Część I Wzorzec MVVM. Podstawy XAML 7 Rozdział 1. Szybkie wprowadzenie do XAML 9 Wzorzec widoku autonomicznego 9 Tworzenie

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

Szkolenie autoryzowane. MS SharePoint Online Power User. Strona szkolenia Terminy szkolenia Rejestracja na szkolenie Promocje

Szkolenie autoryzowane. MS SharePoint Online Power User. Strona szkolenia Terminy szkolenia Rejestracja na szkolenie Promocje Szkolenie autoryzowane MS 55215 SharePoint Online Power User Strona szkolenia Terminy szkolenia Rejestracja na szkolenie Promocje Opis szkolenia Uczestnicy szkolenia zdobędą wiedzę potrzebną w planowaniu,

Bardziej szczegółowo

9.1.2. Ustawienia personalne

9.1.2. Ustawienia personalne 9.1.2. Ustawienia personalne 9.1. Konfigurowanie systemu Windows Systemy z rodziny Windows umożliwiają tzw. personalizację ustawień interfejsu graficznego poprzez dostosowanie wyglądu pulpitu, menu Start

Bardziej szczegółowo

Tworzenie aplikacji GIS w technologii Flex. Tomasz Turowski Esri Polska

Tworzenie aplikacji GIS w technologii Flex. Tomasz Turowski Esri Polska Tworzenie aplikacji GIS w technologii Flex Tomasz Turowski Esri Polska Rodzina produktów bazujących na Fleksie ArcGIS API for Flex zbiór klas wprowadzających funkcjonalności mapowe do środowiska Flex.

Bardziej szczegółowo

Pracownia internetowa w każdej szkole (edycja Jesień 2007)

Pracownia internetowa w każdej szkole (edycja Jesień 2007) Instrukcja numer D1/02_05 Pracownia internetowa w każdej szkole (edycja Jesień 2007) Opiekun pracowni internetowej cz. 1 (D1) Tworzenie własnego portalu Internetowego przy użyciu oprogramowania SharePoint

Bardziej szczegółowo

Tomasz Grześ. Systemy zarządzania treścią

Tomasz Grześ. Systemy zarządzania treścią Tomasz Grześ Systemy zarządzania treścią Co to jest CMS? CMS (ang. Content Management System System Zarządzania Treścią) CMS definicje TREŚĆ Dowolny rodzaj informacji cyfrowej. Może to być np. tekst, obraz,

Bardziej szczegółowo

4 Web Forms i ASP.NET...149 Web Forms...150 Programowanie Web Forms...150 Możliwości Web Forms...151 Przetwarzanie Web Forms...152

4 Web Forms i ASP.NET...149 Web Forms...150 Programowanie Web Forms...150 Możliwości Web Forms...151 Przetwarzanie Web Forms...152 Wstęp...xv 1 Rozpoczynamy...1 Co to jest ASP.NET?...3 W jaki sposób ASP.NET pasuje do.net Framework...4 Co to jest.net Framework?...4 Czym są Active Server Pages (ASP)?...5 Ustawienia dla ASP.NET...7 Systemy

Bardziej szczegółowo

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

Narzędzia podnoszące jakość procesu wytwarzania i wdrażania Program szkolenia: Narzędzia podnoszące jakość procesu wytwarzania i wdrażania Informacje: Nazwa: Kod: Kategoria: Grupa docelowa: Czas trwania: Forma: Narzędzia podnoszące jakość procesu wytwarzania i

Bardziej szczegółowo

Szczegółowy opis przedmiotu umowy. 1. Środowisko SharePoint UWMD (wewnętrzne) składa się z następujących grup serwerów:

Szczegółowy opis przedmiotu umowy. 1. Środowisko SharePoint UWMD (wewnętrzne) składa się z następujących grup serwerów: Rozdział I Szczegółowy opis przedmiotu umowy Załącznik nr 1 do Umowy Architektura środowisk SharePoint UMWD 1. Środowisko SharePoint UWMD (wewnętrzne) składa się z następujących grup serwerów: a) Środowisko

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

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

Warszawa, Wytyczne dla projektu Biblioteka GUI

Warszawa, Wytyczne dla projektu Biblioteka GUI Warszawa, 30.03.2017 Wytyczne dla projektu Biblioteka GUI Jaka powinna być biblioteka GUI? 2 Proponowany zakres treści na stronie biblioteki na aplikacje.gov.pl 2 Wytyczne dla identyfikacji wizualnej:

Bardziej szczegółowo

Budowanie aplikacji biznesowych przy użyciu. Presentation Foundation i wzorca MVVM

Budowanie aplikacji biznesowych przy użyciu. Presentation Foundation i wzorca MVVM Budowanie aplikacji biznesowych przy użyciu Windows Presentation Foundation i wzorca MVVM Raffaele Garofalo Przekład: Jakub Niedźwiedź APN Promise Warszawa 2011 Spis treści Wstęp................................................................

Bardziej szczegółowo

Tytuł szkolenia: Angular 4 - budowanie nowoczesnych i wydajnych aplikacji przeglądarkowych

Tytuł szkolenia: Angular 4 - budowanie nowoczesnych i wydajnych aplikacji przeglądarkowych Kod szkolenia: ANGULAR 4 Tytuł szkolenia: Angular 4 - budowanie nowoczesnych i wydajnych aplikacji przeglądarkowych Dni: 5 Opis: Adresaci szkolenia Kurs przeznaczony jest dla programistów posiadających

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

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

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

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

W dalszej części dokumentu przedstawiamy skrócony opis kluczowych funkcji systemu. Niniejszy dokument nie zawiera opisu technicznego systemu.

W dalszej części dokumentu przedstawiamy skrócony opis kluczowych funkcji systemu. Niniejszy dokument nie zawiera opisu technicznego systemu. 1. Informacje Podstawowe Mediamanager 2.1 jest systemem wspierającym zarządzanie dokumentami elektronicznymi. Podstawowymi funkcjami realizowanymi przez oprogramowanie jest przetrzymywanie, zarządzanie

Bardziej szczegółowo

Dokumentacja Administratora portalu. aplikacji. Wirtualna szkoła

Dokumentacja Administratora portalu. aplikacji. Wirtualna szkoła Dokumentacja Administratora portalu aplikacji Wirtualna szkoła aktualna na dzień 20.12.2012 Wykonawca: Young Digital Planet SA 2012 Strona 2 z 15 Spis Treści Wirtualna szkoła SYSTEM ZARZĄDZANIA NAUCZANIEM...

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

Instrukcja obsługi systemu zarządzania treścią dwajeden.pl

Instrukcja obsługi systemu zarządzania treścią dwajeden.pl Instrukcja obsługi systemu zarządzania treścią dwajeden.pl Tworzenie i edycja danych na stronie www 1. Rozpoczęcie pracy. Logowanie się do systemu zarządzania treścią dwajeden.pl ropocząć należy od podania

Bardziej szczegółowo

Webowy generator wykresów wykorzystujący program gnuplot

Webowy generator wykresów wykorzystujący program gnuplot Uniwersytet Mikołaja Kopernika Wydział Fizyki, Astronomii i Informatyki Stosowanej Marcin Nowak nr albumu: 254118 Praca inżynierska na kierunku informatyka stosowana Webowy generator wykresów wykorzystujący

Bardziej szczegółowo

Tworzenie cross-platformowych aplikacji w Xamarin.Forms

Tworzenie cross-platformowych aplikacji w Xamarin.Forms Tworzenie cross-platformowych aplikacji w Xamarin.Forms Wprowadzenie Tomasz Gibulski Microsoft Certified Professional (MCP) Microsoft Certified Technology Specialist (MCTS) tomasz@gibulski.com www.gibulski.com

Bardziej szczegółowo

OpenOfficePL. Zestaw szablonów magazynowych. Instrukcja obsługi

OpenOfficePL. Zestaw szablonów magazynowych. Instrukcja obsługi OpenOfficePL Zestaw szablonów magazynowych Instrukcja obsługi Spis treści : 1. Informacje ogólne 2. Instalacja zestawu a) konfiguracja połączenia z bazą danych b) import danych z poprzedniej wersji faktur

Bardziej szczegółowo

Szkolenie autoryzowane. MS Zaawansowany użytkownik programu SharePoint 2016

Szkolenie autoryzowane. MS Zaawansowany użytkownik programu SharePoint 2016 Szkolenie autoryzowane MS 55217 Zaawansowany użytkownik programu SharePoint 2016 Strona szkolenia Terminy szkolenia Rejestracja na szkolenie Promocje Opis szkolenia Szkolenie przeznaczone jest dla zaawansowanych

Bardziej szczegółowo

EXSO-CORE - specyfikacja

EXSO-CORE - specyfikacja EXSO-CORE - specyfikacja System bazowy dla aplikacji EXSO. Elementy tego systemu występują we wszystkich programach EXSO. Może on ponadto stanowić podstawę do opracowania nowych, dedykowanych systemów.

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

Symfonia Produkcja. Kreator raportów. Wersja 2013

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

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

Przewodnik... Tworzenie Landing Page

Przewodnik... Tworzenie Landing Page Przewodnik... Tworzenie Landing Page Spis treści Kreator strony landing page Stwórz stronę Zarządzaj stronami 2 Kreator strony landing page Kreator pozwala stworzyć własną stronę internetową z unikalnym

Bardziej szczegółowo

Programowanie MorphX Ax

Programowanie MorphX Ax Administrowanie Czym jest system ERP? do systemu Dynamics Ax Obsługa systemu Dynamics Ax Wyszukiwanie informacji, filtrowanie, sortowanie rekordów IntelliMorph : ukrywanie i pokazywanie ukrytych kolumn

Bardziej szczegółowo

Środowiska i platformy programistyczne

Środowiska i platformy programistyczne Środowiska i platformy programistyczne 1 Rys historyczny lata 80-90: efektywność! Cel: zwiększyć efektywność programisty jedno narzędzie: integracja edytor kodu, funkcje programistyczne (kompilacja, łączenie,

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

Laboratorium Technologii Informacyjnych. Projektowanie Baz Danych

Laboratorium Technologii Informacyjnych. Projektowanie Baz Danych Laboratorium Technologii Informacyjnych Projektowanie Baz Danych Komputerowe bazy danych są obecne podstawowym narzędziem służącym przechowywaniu, przetwarzaniu i analizie danych. Gromadzone są dane w

Bardziej szczegółowo

Możliwość dodawania modułów pozwala na dopasowanie oprogramowania do procesów biznesowych w firmie.

Możliwość dodawania modułów pozwala na dopasowanie oprogramowania do procesów biznesowych w firmie. zajmuje się wdrażaniem koncepcji CRM Eroica CRM bazującej na najczęściej używanym rozwiązaniu Open Source vtiger. Eroica CRM posiada wiele funkcji ułatwiających zarządzanie relacjami z klientem w kancelarii.

Bardziej szczegółowo

Gra-zabawka dla niemowląt przygotowana z użyciem w Unity 3D

Gra-zabawka dla niemowląt przygotowana z użyciem w Unity 3D Uniwersytet Mikołaja Kopernika Wydział Fizyki, Astronomii i Informatyki Stosowanej Katedra Informatyki Stosowanej Tomasz Gańko nr albumu: 244629 Praca magisterska na kierunku informatyka stosowana Gra-zabawka

Bardziej szczegółowo

1 Implementowanie i konfigurowanie infrastruktury wdraŝania systemu Windows... 1

1 Implementowanie i konfigurowanie infrastruktury wdraŝania systemu Windows... 1 Spis treści Wstęp... xi Wymagania sprzętowe (Virtual PC)... xi Wymagania sprzętowe (fizyczne)... xii Wymagania programowe... xiii Instrukcje instalowania ćwiczeń... xiii Faza 1: Tworzenie maszyn wirtualnych...

Bardziej szczegółowo

podstawowa obsługa panelu administracyjnego

podstawowa obsługa panelu administracyjnego podstawowa obsługa panelu administracyjnego Poniższy dokument opisuje podstawowe czynności i operacje jakie należy wykonać, aby poprawnie zalogować się i administrować środowiskiem maszyn wirtualnych usługi

Bardziej szczegółowo

Efektywne tworzenie aplikacji webowych z wykorzystaniem AngularJS, HTML5 i JavaScript

Efektywne tworzenie aplikacji webowych z wykorzystaniem AngularJS, HTML5 i JavaScript Kod szkolenia: Tytuł szkolenia: HTML5/ANG Efektywne tworzenie aplikacji webowych z wykorzystaniem AngularJS, HTML5 i JavaScript Dni: 5 Opis: Adresaci szkolenia: Kurs przeznaczony jest dla programistów

Bardziej szczegółowo

Referat pracy dyplomowej

Referat pracy dyplomowej Referat pracy dyplomowej Temat pracy: Wdrożenie intranetowej platformy zapewniającej organizację danych w dużej firmie na bazie oprogramowania Microsoft SharePoint Autor: Bartosz Lipiec Promotor: dr inż.

Bardziej szczegółowo

IBM SPSS Statistics - Essentials for Python: Instrukcje instalacji dla Windows

IBM SPSS Statistics - Essentials for Python: Instrukcje instalacji dla Windows IBM SPSS Statistics - ssentials for Python: Instrukcje instalacji dla Windows Przedstawione poniżej instrukcje dotyczą instalowania IBM SPSS Statistics - ssentials for Python w systemach operacyjnych Windows.

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

Instrukcja laboratoryjna cz.3

Instrukcja laboratoryjna cz.3 Programowanie aplikacji internetowych 2014/2015 Instrukcja laboratoryjna cz.3 Technologia Silverlight cz.1 Prowadzący: Tomasz Goluch Wersja: 4.1 I. Szablon aplikacji oparty o platformę nawigacyjną. Cel:

Bardziej szczegółowo

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

Zmiana logo. Dziękujemy za wybór naszych rozwiązań. apjoo od Apláuz. Wspólnie przebrniemy przez proces konfiguracji strony www i wstawiania treści.

Zmiana logo. Dziękujemy za wybór naszych rozwiązań. apjoo od Apláuz. Wspólnie przebrniemy przez proces konfiguracji strony www i wstawiania treści. Użytkownicy i hasła Dostęp do zaplecza umożliwia rozbudowany system zarządzania użytkownikami. 1. Konta użytkowników tworzy się wybierając z menu Użytkownicy > Menedżer użytkowników na stronie głownej

Bardziej szczegółowo

Aplikacja serwerowa Platformy Prezentacyjnej Opis produktu

Aplikacja serwerowa Platformy Prezentacyjnej Opis produktu Aplikacja serwerowa Platformy Prezentacyjnej Opis produktu Polska Organizacja Turystyczna ul. Chałubińskiego 8 00-613 Warszawa Spis treści 1 Założenia wstępne... 1 1.1 Informacje wstępne... 1 1.2 Cel projektu...

Bardziej szczegółowo

Plan. Aplikacja. Architektura aplikacji. Architektura aplikacji Tworzenie aplikacji Application Builder podstawy

Plan. Aplikacja. Architektura aplikacji. Architektura aplikacji Tworzenie aplikacji Application Builder podstawy Plan Podstawy narzędzia Application Builder, 2 budowa strony, kreatory Architektura Tworzenie Tworzenie formularza tabelarycznego Budowa strony 2 Architektura Aplikacja kolekcja stron połączonych ze sobą

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

System zarządzający grami programistycznymi Meridius

System zarządzający grami programistycznymi Meridius System zarządzający grami programistycznymi Meridius Instytut Informatyki, Uniwersytet Wrocławski 20 września 2011 Promotor: prof. Krzysztof Loryś Gry komputerowe a programistyczne Gry komputerowe Z punktu

Bardziej szczegółowo

JavaFX. Technologie Biznesu Elektronicznego. Wydział Informatyki i Zarządzania Politechnika Wrocławska

JavaFX. Technologie Biznesu Elektronicznego. Wydział Informatyki i Zarządzania Politechnika Wrocławska JavaFX - wprowadzenie JavaFX Wydział Informatyki i Zarządzania Politechnika Wrocławska Definicja JavaFX - wprowadzenie Definicja Historia JavaFX Script Rich Internet Application JavaFX - rodzina technologii

Bardziej szczegółowo

Tworzenie oprogramowania

Tworzenie oprogramowania Tworzenie oprogramowania dr inż. Krzysztof Konopko e-mail: k.konopko@pb.edu.pl 1 Tworzenie oprogramowania dla systemów wbudowanych Program wykładu: Tworzenie aplikacji na systemie wbudowanym. Konfiguracja

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

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

Załącznik 1 instrukcje instalacji

Załącznik 1 instrukcje instalacji Załącznik 1 instrukcje instalacji W poniższym załączniku przedstawione zostaną instrukcje instalacji programów wykorzystanych w trakcie tworzenia aplikacji. Poniższa lista przedstawia spis zamieszczonych

Bardziej szczegółowo

Z pojedynczym obiekcie zasady grupy znajdziemy dwa główne typy ustawień:

Z pojedynczym obiekcie zasady grupy znajdziemy dwa główne typy ustawień: Zasady grupy (GPO) Windows Server 2008 R2 Zasady grupy to potężne narzędzie udostępnione administratorom systemów Windows w celu łatwiejszego zarządzania ustawieniami stacji roboczych. Wyobraźmy sobie

Bardziej szczegółowo

Kompleksowe tworzenie aplikacji klasy Desktop z wykorzystaniem SWT i

Kompleksowe tworzenie aplikacji klasy Desktop z wykorzystaniem SWT i Program szkolenia: Kompleksowe tworzenie aplikacji klasy Desktop z wykorzystaniem SWT i JFace Informacje ogólne Nazwa: Kod: Kategoria: Grupa docelowa: Czas trwania: Forma: Kompleksowe tworzenie aplikacji

Bardziej szczegółowo

ZARZĄDZANIE DOKUMENTACJĄ. Tomasz Jarmuszczak PCC Polska

ZARZĄDZANIE DOKUMENTACJĄ. Tomasz Jarmuszczak PCC Polska ZARZĄDZANIE DOKUMENTACJĄ Tomasz Jarmuszczak PCC Polska Problemy z zarządzaniem dokumentacją Jak znaleźć potrzebny dokument? Gdzie znaleźć wcześniejszą wersję? Która wersja jest właściwa? Czy projekt został

Bardziej szczegółowo

5. Praca z klasą. Dodawanie materiałów i plików. Etykieta tematu. Rozdział 5 Praca z klasą

5. Praca z klasą. Dodawanie materiałów i plików. Etykieta tematu. Rozdział 5 Praca z klasą 5. Praca z klasą Jako prowadzący i nauczyciel mamy bardzo duże możliwości, jeżeli chodzi o zamieszczanie i korzystanie z materiałów na platformie e-learningowej. Wykładowca w pierwszej kolejności musi

Bardziej szczegółowo

Język UML w modelowaniu systemów informatycznych

Język UML w modelowaniu systemów informatycznych Język UML w modelowaniu systemów informatycznych dr hab. Bożena Woźna-Szcześniak Akademia im. Jan Długosza bwozna@gmail.com Wykład 10 Diagramy wdrożenia I Diagramy wdrożenia - stosowane do modelowania

Bardziej szczegółowo

Wspomaganie pracy w terenie za pomocą technologii BlackBerry MDS. (c) 2008 Grupa SPOT SJ

Wspomaganie pracy w terenie za pomocą technologii BlackBerry MDS. (c) 2008 Grupa SPOT SJ Wspomaganie pracy w terenie za pomocą technologii BlackBerry MDS (c) 2008 Grupa SPOT SJ Grupa SPOT Krzysztof Cieślak, Maciej Gdula Spółka Jawna Podstawowe dane: firma założona w roku 2004 w wyniku połączenia

Bardziej szczegółowo

Lista wprowadzonych zmian w systemie Vario v. 3.3 od wydania 3.003.60177.00403 do wydania 3.003.60180.00419

Lista wprowadzonych zmian w systemie Vario v. 3.3 od wydania 3.003.60177.00403 do wydania 3.003.60180.00419 Lista wprowadzonych zmian w systemie Vario v. 3.3 od wydania 3.003.60177.00403 do wydania 3.003.60180.00419 LP Vario* Wersja Zmiany 1. BPM 3.003.60177.00403 Ulepszenie działania pola przeznaczonego do

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

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

asix Autoryzacja dostępu do zasobów WWW systemu asix (na przykładzie systemu operacyjnego Windows 2008)

asix Autoryzacja dostępu do zasobów WWW systemu asix (na przykładzie systemu operacyjnego Windows 2008) NIEZAWODNE ROZWIĄZANIA SYSTEMÓW AUTOMATYKI asix (na przykładzie systemu operacyjnego Windows 2008) Pomoc techniczna Dok. Nr PLP0018 Wersja: 2011-08-26 ASKOM i asix to zastrzeżony znak firmy ASKOM Sp. z

Bardziej szczegółowo

WYMAGANIA EDUKACYJNE. Witryny i Aplikacje Internetowe klasa I

WYMAGANIA EDUKACYJNE. Witryny i Aplikacje Internetowe klasa I WYMAGANIA EDUKACYJNE Witryny i Aplikacje Internetowe klasa I Dopuszczający definiuje pojęcia: witryna, portal, wortal, struktura witryny internetowej; opisuje rodzaje grafiki statycznej wymienia i charakteryzuje

Bardziej szczegółowo