mylittlemvc Framework MVC dla ASP.NET Autor: Michał Skowronek

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

Download "mylittlemvc Framework MVC dla ASP.NET Autor: Michał Skowronek"

Transkrypt

1 mylittlemvc Framework MVC dla ASP.NET Autor: Michał Skowronek

2 1. Cel projektu Celem projektu było stworzenie frameworka, dzięki któremu byłoby możliwe tworzenie aplikacji internetowych w ASP.NET używając wzorca MVC (Model View Controller)., MyLittleMVC, bo tak nazywa się powstały framework, wspomaga tworzenie, rozwój i testowanie powstającej aplikacji internetowej zgodnie z duchem powyższego wzorca, realizując całą jego funkcjonalność, czyli podział aplikacji na 3 oddzielne jednostki tj.: Model, Widok, Kontroler. Każda z części realizuje swoje zadania w sposób możliwie niezależny od pozostałych. Model jest odpowiedzialny za przechowywanie stanu aplikacji, który najczęściej jest ulokowany wewnątrz bazy danych. Widok jest odpowiedzialny za wyświetlenie gotowego interfejsu użytkownika, w tym wypadku gotowej strony internetowej. Zazwyczaj widok jest tworzony na podstawie danych pochodzących z modelu. Kontroler jest odpowiedzialny za przetwarzanie akcji użytkownika, obsługę modelu i w końcu wybór widoku to wyświetlenia. Jest zatem główną jednostką łączącą pozostałe 2 warstwy. Główną korzyścią z zastosowania MVC jest wprowadzenie wyraźnej separacji między poszczególnymi warstwami aplikacji (tutaj: model, widok, kontroler), dzięki czemu całość jest łatwiejsza w rozwijaniu oraz testowaniu (przede wszystkim z wykorzystaniem Test Driven Developmnent). 2. Jak działa ASP.NET Zanim przedstawię działanie frameworka warto przyjrzeć się jak działa samo ASP.NET. Rys. 1.1 Page Lifecycle (cykl życia strony aspx) Kiedy przeglądarka internetowa wysyła do serwera żądanie, serwer (IIS web server) najpierw sprawdza czy żądana strona jest plikiem, który ma być przez niego przetworzonym(domyślnie są to pliki zawierające rozszerzenia:.aspx.asmx.ashx.ascx). Jeśli jest, przekazuje go do ASP.NET runtime (środowiska uruchomieniowego ASP.NET) gdzie jest przetwarzany a wynik tego procesu zwracany do klienta w postaci gotowej strony. Zauważyć można, że największą rolę odgrywa tutaj ASP.NET runtime, którego uproszczony schemat działania przedstawia poniższy rysunek (rys. 1.2.).

3 Rys. 1.2 ASP.NET runtime Filtr ISAPI (Internet Server Application Programming Interface) w postaci pliku aspnet_isapi.dll, który widać na rysunku (rys. 1.2) w skrócie zajmuje się właśnie przechwyceniem żądań plików o konkretnym rozszerzeniu (.aspx i inne). HttpApplication natomiast jest to abstrakcyjna klasa reprezentująca aplikacje i ma ona na celu zapewnienie właściwego modelu programowania upraszczając go i upodobniając do modelu aplikacji dla systemu operacyjnego Windows (Cały mechanizm nosi nazwę WebForms i nazwa ta jest oczywistą analogią do WinForms w Windows, a wzorzec który jest domyślnie zaimplementowany w ASP.NET to Page Controller ). Obiekty klasy HttpApplication są tworzone w miarę potrzeb tak, aby zachować ciągłość przetwarzania żądań http (liczba stworzonych obiektów jest ograniczona do maksymalnej liczby wątków i zależy głównie od sprzętowych możliwości serwera). Następnie żądanie przechodzi przez tak zwany ASP.NET pipeline, który można skrótowo przedstawić jako pewien potok, w którym żądanie jest przetwarzane przez wszystkie istniejące moduły http (Http Modules), które posiadają metody do interakcji z żądaniem. Na końcu trafia natomiast do jednego z uchwytów http (Http Handlers), które zdefiniowane są do przetwarzania odpowiednich żądań zależnie od ustalonych reguł adresu URL i są odpowiedzialne za wygenerowanej właściwej odpowiedzi http (Response) wysyłanej z powrotem do klienta. Należy zwrócić uwagę, że podczas przetwarzania jednego żądania wywoływany jest tylko jeden HttpHandler w przeciwieństwie do HttpModules, których wywoływanych jest więcej. Cały proces ASP.NET pipeline najlepiej ilustruje rysunek (rys. 1.3.).

4 Rys ASP.NET pipeline 3. Jak działa mylittlemvc Framework mylittlemvc swe działanie opiera właśnie na wykorzystaniu uchwytu http (HttpHandler), który w tym wypadku spełnia jedno z zadań głównego kontrolera (front controllera) tj. przechwytuje wszystkie żądania, które są do niego kierowane. Domyślnie są to wszystkie żądania, których url kończy się łańcuchem znaków default.aspx. Literał ten jest tak zwanym inicjatorem akcji. Czym jest zatem akcja? Inaczej niż w standardowym modelu ASP.NET, adres url żądania nie odzwierciedla fizycznie istniejącego na serwerze pliku (w tym wypadku strony aspx), lecz jest raczej poleceniem wykonania danej metody (zwanej tutaj akcją) przez dany kontroler (klasę dziedziczącą po mylittlemvc.controller). Przykładowo adres home/index/default.aspx oznacza wykonanie akcji(metody) index przez klasę kontrolera o nazwie home. Jak napisano wyżej, default.aspx jest jedynie informacją dla odpowiedniego uchwytu http o przechwyceniu tego właśnie żądania. Głównym kontrolerem (uchwytem http w tym wypadku) w mylittlemvc jest klasa MainHandler, która jak każdy uchwyt http dziedziczy po System.Web.IHttpHandler. Jego główną metodą jest ProcessRequest, która jest wykonywana przez ASP.NET w celu przetworzenia żądania i to właśnie w tej metodzie mylittlemvc rozpoczyna swoje działanie przekazując żądanie i informacje z nim związane do Routera. Ten z kolei zajmuje się przetworzeniem url i rozbiciem go za pomocą obiektu Action na poszczególne jednostki wywołania czyli: Nazwę kontrolera, którego metoda akcji ma zostać wykonana, Nazwę metody akcji do wykonania, Ewentualne parametry metody akcji. Tak powstały obiekt klasy Action jest przekazywany do metody InvokeAction klasy ControllerFactory, gdzie zawarte w nim informacje posłużą do próby wykonania akcji. Proces ten wykorzystuje wbudowany w platformę.net system refleksji, który pozwala na przeglądanie i używanie własnych metadanych. Dalszy proces po pomyślnym wykonaniu akcji danego kontrolera, zależy od samej akcji i zostanie omówiony w następnym rozdziale podczas tworzenia przykładowej aplikacji.

5 4. MyLittleMVC w Akcji W celu zademonstrowania działania frameworka i opisu dalszego procesu przetwarzania żądania http przez niego najlepiej będzie posłużyć się przykładem (w katalogu prg\example znajduje się projekt utworzony w Visual Web Developer 2008 EE zawierający przykładową aplikację, której część stanowi poniższy przykład). Typową strukturę katalogów w aplikacji opartej na mylittlemvc przedstawia zrzut ekranu (rys. 4.1). Rys. 4.1 Struktura folderów aplikacji opartej na mylittlemvc Folder App_Code zawiera kod całej aplikacji podzielony na poszczególne części. W podfolderze Controller znajdować będą się klasy kontrolerów, Helper służy do przechowywania klas pomocniczych, natomiast Model zawierać powinien jak sama nazwa wskazuje klasy warstwy modelu aplikacji. Sama struktura katalogów w folderze App_Code ma jedynie charakter umowny i ma na celu zwiększenie przejrzystości aplikacji. Nic nie stoi na przeszkodzie by dodać własne podfoldery w miarę potrzeb, zalecane jest jednak trzymanie się pewnej konwencji znacząco ułatwiającej dalszy rozwój aplikacji. Folder Bin domyślnie zawiera jedynie referencję do biblioteki frameworka. Jego przeznaczenie nie ulega zmianie w stosunku do tego ze standardowego użycia w ASP.NET. Folder View zawiera wszyskie klasy widoków, które dziedziczą po mylittlemvc.basicview lub mylittlemvc.view<>(klasą bazową dla nich pozostaje dalej klasa System.Web.UI.Page czyli klasa reprezentująca stronę aspx, gdyż właśnie w ten sposób reprezentowane są widoki). Grupy widoków są posegregowane w katalogach ze względu na przynależność do danego kontrolera (np. folder home jak widać na rys. 4.1 zawiera wszystkie widoki przynależące do kontrolera home), jednak jest to również kwestia umowna i chcąc zwiększyć elastyczność aplikacji możliwe jest wybranie przez dany kontroler dowolnego widoku. Jedynym warunkiem jest by klasa widoku znajdowała się w folderze View. Na uwagę zasługuje folder common, który jest przeznaczony do przechowywania wspólnych widoków oraz szablonów widoków (klas widoków dziedziczących po mylittlemvc.masterview a fizycznie reprezentowanych przez klasę bazową System.Web.UI.MasterPage). Plik Web.config zawiera konfigurację całej aplikacji ASP.NET oraz konfigurację frameworka, której najważniejszą część opisuje listing 4.1. Istnienie pliku default.aspx zapewnia jedynie prawidłowe wykonanie domyślnej akcji.

6 Listing 4.1 <?xml version="1.0"?> <configuration> <configsections> <section name="mylittlemvcrouter" type="mylittlemvc.routerconfig"/> (1) <section name="mylittlemvcmain" type="mylittlemvc.mainconfig"/> (2) </configsections> <mylittlemvcrouter initactionpath="default.aspx" urlseparator="/" defaultaction="home/index" loginaction="member/login" langprefix="false"/> <mylittlemvcmain debugframework="true" projectnamespace=""/> <system.web> <httphandlers> <add verb="*" path="*default.aspx" type="mylittlemvc.mainhandler"/> </httphandlers> </system.web> </configuration> Kolejno w sekcji configsections odbywa się rejestracja sekcji konfiguracyjnych mylittlemvc, składających się z głównej konfiguracji(2) oraz konfiguracji routera(1). Główna część konfiguracji obejmują 2 ustawienia: debugframework (true false) ustawiający tryb debug dla mylittlemvc, wartość domyślna: true projectnamespace (np. Test ) zawierający przestrzeń nazw tworzonego projektu (a dokładnie przestrzeń nazw w której znajdują się kontrolery), wartość domyślna to. Na ustawienia routera składają się: initactionpath definiuje tak zwany inicjator akcji, czyli literał dołączany na koniec adresu URL zawierającego akcje w formie łańcucha znaków. Element ten musi być zawarty w atrybucie path ustawienia uchwytu mylittlemvc.mainhandler, wartość domyślna: default.aspx urlseparator to separator akcji url (znak lub grupa znaków oddzielających od siebie poszczególne części akcji url), wartość domyślna: /, defaultaction zawiera domyślną akcję w postaci kontroler/metoda_akcji, należy zadbać o odpowiedni separator (w przykładzie powyżej / ), wartość domyślna: home/index (wielkość liter ma znaczenie), loginaction zawiera akcję wykonywaną w razie wystąpienia wyjątku SecurityException (wyjątek występuje podczas próby dostępu do zasobu lub partii kodu, do którego użytkownik nie ma dostępu), jeżeli element nie zostanie ustawiony zamiast wywołania akcji zostanie wyświetlona odpowiednia strona błędu. LangPrefix (true false) element ustawia prefix (przedrostek) językowy w akcji znajdującej się w adresie url. Wartość prefixu jest zależna od ustawień regionalnych i automatycznie dostosowywana podczas zmiany języka. Mechanizm prefiksu językowego zapobiega cachowaniu przez przeglądarkę tej samej strony w innych językach jako tego samego dokumentu. Wartość domyślna: true.

7 W sekcji httphandlers rejestrowany jest główny uchwyt frameworka (mylittlemvc.mainhandler), który przechwytuje wszystkie żądania (zarówno GET i POST) zakończone inicjatorem akcji Kontroler - Akcja - Widok Nie zmieniając pliku konfiguracyjnego stwórzmy pierwszy kontroler jakim będzie klasa home (pełną definicję klasy home zawiera listing ). Będzie to nasz kontroler domyślny (taki, który zawiera domyślną akcję). public class home : Controller { public void index() {} } Jak widać, wraz z kontrolerem została utworzona publiczna metoda index(), która będzie domyślną akcją. Aby jednak tak się stało należy dodać do niej atrybut ActionMethod, którym oznaczane będą wszystkie metody akcji (został on wprowadzony w celach bezpieczeństwa by zapobiec nieautoryzowanemu wykonaniu dowolnej metody kontrolera odpowiednio przygotowaną akcją zawartą w adresie url). Prawidłowo więc powyższy przykład powinien wyglądać tak: public class home : Controller { [ActionMethod] public void index() {} } Po uruchomieniu aplikacji w takiej postaci zostanie wykonana, jak zdefiniowano w pliku konfiguracyjnym, domyślna akcja tj. home/index i na ekranie ukaże nam się białe tło. Oznacza to, że wszystko przebiegło pomyślnie jednak nie został wyrenderowany żaden widok. Stwórzmy więc jeden, dodając do katalogu View\home stronę home.aspx i zmieńmy jej klasę bazową z System.Web.UI.Page na generyczną klasę widoku mylittlemvc.view<> gdzie parametrem będzie typ String. Dzięki temu za pomocą kontrolera możemy wysłać do widoku dane (w tym wypadku będzie to zmienna typu String), które mogą być odczytane z właściwości DataView klasy naszego widoku. Typ danych wysyłanych z kontrolera do widoku może być oczywiście dowolny. MyLittleMVC posiada również inny mechanizm wysyłania danych do widoku za pomocą tzw. ActionFields, który zostanie przedstawiony w dalszej części tekstu. Wracając do naszego przykładu, chcąc wyświetlić przesłane dane posłużymy się kodem (znajdującym się w pliku home.aspx): <p> Przykładowe dane wysłane z kontrolera przez domyślną akcję za pomocą właściwości DataView: <%=DataView %> </p> Dalej jednak, akcja index kontrolera home nie posiada kodu odpowiedzialnego za wyświetlenie naszego widoku. Do tego celu służy metoda klasy kontrolera RenderView występująca w 3 przeładowanych wersjach (jej uzupełnieniem jest metoda RenderViewMaster). Do naszego celu posłuży wersja przyjmująca 2 argumenty. Pierwszym jest nazwa widoku do wyrenderowania, drugim natomiast obiekt reprezentujący dane wysyłane do tego widoku. Jak łatwo się domyśleć są to właśnie te dane, które będą widoczne w klasie widoku poprzez właściwość DataView. Dla przykładu danymi niech będzie data pobrana z serwera (patrz listing 4.1.1).

8 Kolejnym krokiem niech będzie stworzenie szablonu widoku dla naszej aplikacji. Aby to zrobić należy dodać plik.master (w naszym przypadku będzie to domyślny MasterPage.master ) do katalogu View\common i zmienić jego klasę bazową z System.Web.UI.MasterPage na mylittlemvc.masterview. Na koniec by nasz poprzedni widok korzystał z utworzonego szablonu należy zmodyfikować go w następujący sposób (przy zachowanym domyślnym nazewnictwie kontenerów head oraz ContentPlaceHolder1 ): <%@ Page Language="C#" MasterPageFile="~/View/common/MasterPage.master" (1) AutoEventWireup="true" CodeFile="home.aspx.cs" Inherits="View_home_home" %> <asp:content ID="Content1" ContentPlaceHolderID="head" runat="server"> </asp:content> <asp:content ID="Content2" ContentPlaceHolderID=" ContentPlaceHolder1" runat="server"> <p> Przykładowe dane wysłane z kontrolera przez domyślną akcję za pomocą właściwości DataView: <%=DataView %> </p> </asp:content> Kod odpowiedzialny za wykorzystanie szablonu widoku w naszym widoku znajduje się w miejscu oznaczonym punktem (1). Sam sposób tworzenia szablonów jak widać nie odbiega od tego jaki się stosuje w czystym ASP.NET. Na większą uwagę zasługuje klasa mylittlemvc.masterview, po której dziedziczy nasz szablon. Korzystając z niej uzyskujemy bowiem możliwość wysyłania danych z kontrolera do naszego szablonu widoku. Sposób w jaki uzyskamy tę funkcjonalność musi być oczywiście inny, niż przedstawiony wyżej bazujący na generycznej klasie View<>. Użyjemy wspomnianych wcześniej pól ActionFields. Listing using System; using mylittlemvc; /// <summary> /// Domyslny kontroler /// </summary> public class home : Controller { /// <summary> /// tytul strony wsylany do widoku szablonu (masterpage) /// </summary> [ActionField] public string title; (1) [ActionMethod] public void index() { title = "home"; string czas = DateTime.Now.ToString(); } } // Wyswietlenie widoku i wysłanie do niego zmiennej czas RenderView("home/home", czas);

9 Polami ActionFields są wszystkie publiczne pola klasy kontrolera posiadające atrybut ActionField (1). Kiedy w metodzie akcji zostanie przypisana do takiego pola wartość, zostanie ono wysłane do widoku podczas wykonania metody wyswietlającej widok ( RenderView lub RenderViewMaster ). Aby w widoku (tutaj w szablonie widoku) odebrać wysłane pole ActionField wystarczy zdefiniować wewnątrz klasy widoku publiczne pole tego samego typu i posiadające taką samą nazwę oraz opatrzyć je atrybutem ViewField. W naszym przykładzie plik codebehind (plik zawierający kod klasy strony aspx a w tym wypadku widoku, zdefiniowanej jako klasa częsciowa (ang. partial class)) prezentować się będzie następująco: Listing using mylittlemvc; public partial class View_common_MasterPage : MasterView { [ViewField] public string title; } Po tym prostym zabiegu, możemy korzystać ze zmiennej title w szablonie widoku. W przykładzie pole to będzie wykorzystywane do wyświetenia tytułu strony, bez potrzeby umieszczania go w każdej klasie widoku. Jak widać transfer danych z kontrolera do konretnego widoku jest bardzo prosty i intuicyjny, a dane są ściśle typowane co znacząco ułatwia i przyspiesza pracę oraz pozwala uniknąć wielu błędów. Wybór sposobu jakim dane zostaną wysłane zależy głownie od użytkownika frameworka i jego osobistych preferencji (warto zaznaczyć iż 1 sposób wykorzystujący generyczną klasę mylittlemvc.view<> został wprowadzony w celu zachowania zgodności z oficjalnym frameworkiem MVC Microsoftu i mimo iż posiada on kilka niedogodności w porównaniu z polami ActionField może być efektywnie stosowany w celu przesłania do widoku danych jednego typu) Parametry akcji Wiadomo już jak wywoływana jest akcja, w jaki sposób odbywa się wyświetlenie widoku oraz przekazanie do niego danych. Jak jednak przesłać do metody akcji parametry? Nic prostrzego. Jeśli parametry akcji pochodzą z adresu url wystarczy zdefiniować klasyczne parametry metody będącej akcją w liczbie i kolejności jaka występuje w adresie url. Czasem istnieje potrzeba zastąpienia parametru pochodzącego z url wartością domyślną. Język C# z uzasadnionych przyczyn nie zapewnia wbudowanego mechanizmu parametrów domyślnych. Z pomocą przychodzi jeden z atrybutów z grupy ActionMethodParams : [DefParam(object defvalue)], defvalue jest wartością domyślną przypisywaną do parametru w przypadku nie znalezienia wartości w adresie url akcji. Jego stosowanie do parametrów akcji jest zgodne z przyjętą konwencją stosowania parametrów domyślnych stosowanych w innych językach (m.in. C/C++) co oznacza ze atrybutem tym mogą być jedynie oznaczane ostatnie parametry metody akcji (nie biorąc pod uwagę parametrów oznaczonych innym atrybutem grupy ActionMethodParam ). Kolejnymi atrybutami stosowanymi do parametrów metody akcji są: [FormParam], Atrybut parametru akcji przypisujący do parametru wartość pochodzącą z formularza. Atrybut usuwa działanie innych atrybutów parametrów akcji z grupy ActionMethodParams, wiec powinien być stosowany samodzielnie, [SessionParam], Atrybut parametru akcji przypisujący do parametru wartość pochodzącą z obiektu sesji,

10 [QueryParam], Atrybut parametru akcji przypisujący do parametru wartość pochodzącą z query stringa, [CookieParam], Atrybut parametru akcji przypisujący do parametru wartość pochodzącą z pamięci cache, [AppParam], Atrybut parametru akcji przypisujący do parametru wartość pochodzącą z obiektu Application. Sam proces mapowania parametrów odbywa się w klasie mylittlemvc.controllerfactory tuż przed wykonaniem akcji. Sposób wykorzystania parametrów akcji (ActinonMethodParams) jest zawarty w dołączonym przykładzie ActionObjects Ostatnim ważnym mechanizmem jaki wykorzystuje mylittlemvc jest grupa atrybutów ActionObjects. Dotyczą one pól klasy kontrolera i dostarczają funkcjonalności mapowania ich na poszczególne obiekty należące do aplikacji (Cookies, Session, Application). Grupa ActionObjects zawiera: [SessionField], Atrybut dodawany do pól mapowanych na obiekt sesji (Session), [AppField], Atrybut dodawany do pól mapowanych na obiekt aplikacji (Application), [CookieField(int days[optional])], Atrybut dodawany do pól mapowanych na obiekt ciastka aktualnej odpowiedzi, konstruktor atrybutu zawiera opcjonalny parametr days ustawiający liczbę dni istnienia ciastka na komputerze klienta aplikacji. Domyślnie wynosi ona 1 dzień. Proces mapowania pół zawierających atrybuty z grupy ActionObjects odbywa się w metodach kończących akcję (metodach renderujących, przekierowujących akcję, wysyłających plik oraz gdy żadna z powyższych metod nie zostanie użyta w metodzie Flush() kontrolera). Framework zapewnia również usuwanie wartości z obiektów zmapowanych polami ActionObjects. Służy do tego pomocnicza metoda kontrolera RemoveField(string fieldname), gdzie field name to nazwa pola w postaci łańcucha znaków. 5. Na zakończenie Mam nadzieję, że w tym dość powierzchownym opisie frameworka mylittlemvc udało mi się choć trochę przybliżyć sposób jego działania oraz użycia go do budowy aplikacji. Sam framework oferuje znacznie więcej niż tu opisano, jednak z zamierzenia miał to być jedynie szkic zachęcający do dalszego poznawania go. Więcej przykładów użycia w konkretnych sytuacjach znajduje się w przykładowej aplikacji. Informacje na temat dalszego rozwoju frameworka oraz jego kolejnych wersji będą sukcesywnie dodawane na stronie Wersja o której mowa w tekście objęta jest licencją GNU GPL. Literatura [1] Stephen C. Perry, C# i.net, Core 2006 [2] Microsoft, msdn, [3] Microsoft, ASP.NET community, [4] Scott Guthrie, Microsoft, ScottGu's Blog,

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

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

Modele danych walidacja widoki zorientowane na model

Modele danych walidacja widoki zorientowane na model Modele danych walidacja widoki zorientowane na model 1. Wprowadzenie Modele danych Modele danych w ASP.NET MVC to klasy znajdujące się w katalogu Models. Ich zadaniem jest mapowanie danych przesyłanych

Bardziej szczegółowo

Laboratorium 7 Blog: dodawanie i edycja wpisów

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

Bardziej szczegółowo

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

Kontrola sesji w PHP HTTP jest protokołem bezstanowym (ang. stateless) nie utrzymuje stanu między dwoma transakcjami. Kontrola sesji służy do

Kontrola sesji w PHP HTTP jest protokołem bezstanowym (ang. stateless) nie utrzymuje stanu między dwoma transakcjami. Kontrola sesji służy do Sesje i ciasteczka Kontrola sesji w PHP HTTP jest protokołem bezstanowym (ang. stateless) nie utrzymuje stanu między dwoma transakcjami. Kontrola sesji służy do śledzenia użytkownika podczas jednej sesji

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

Laboratorium 6 Tworzenie bloga w Zend Framework

Laboratorium 6 Tworzenie bloga w Zend Framework Laboratorium 6 Tworzenie bloga w Zend Framework Przygotowanie bazy danych 1. Wykonaj skrypt blog.sql, który założy w bazie danych dwie tabele oraz wpisze do nich przykładowe dane. Tabela blog_uzytkownicy

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

PHP: bloki kodu, tablice, obiekty i formularze

PHP: bloki kodu, tablice, obiekty i formularze 1 PHP: bloki kodu, tablice, obiekty i formularze SYSTEMY SIECIOWE Michał Simiński 2 Bloki kodu Blok if-else Switch Pętle Funkcje Blok if-else 3 W PHP blok if i blok if-else wyglądają tak samo i funkcjonują

Bardziej szczegółowo

REFERAT O PRACY DYPLOMOWEJ

REFERAT O PRACY DYPLOMOWEJ REFERAT O PRACY DYPLOMOWEJ Temat pracy: Projekt i budowa systemu zarządzania treścią opartego na własnej bibliotece MVC Autor: Kamil Kowalski W dzisiejszych czasach posiadanie strony internetowej to norma,

Bardziej szczegółowo

ASP.NET MVC. Grzegorz Caban grzegorz.caban@gmail.com. 20 stycznia 2009

ASP.NET MVC. Grzegorz Caban grzegorz.caban@gmail.com. 20 stycznia 2009 ASP.NET MVC Grzegorz Caban grzegorz.caban@gmail.com 20 stycznia 2009 Agenda Przyczyna powstania Co to jest ASP.NET MVC Architektura Hello World w ASP.NET MVC ASP.NET MVC vs ASP.NET WebForm Przyszłość framework'a

Bardziej szczegółowo

Programowanie w Sieci Internet JSP ciąg dalszy. Kraków, 9 stycznia 2015 r. mgr Piotr Rytko Wydział Matematyki i Informatyki

Programowanie w Sieci Internet JSP ciąg dalszy. Kraków, 9 stycznia 2015 r. mgr Piotr Rytko Wydział Matematyki i Informatyki Programowanie w Sieci Internet JSP ciąg dalszy Kraków, 9 stycznia 2015 r. mgr Piotr Rytko Wydział Matematyki i Informatyki Co dziś będziemy robić JSP tags, Używanie tagów, Custom tags, JSP objests, Obiekty

Bardziej szczegółowo

Katalog książek cz. 3: Web Service

Katalog książek cz. 3: Web Service Katalog książek cz. 3: Web Service Przygotowanie usługi sieciowej (web service) 1) Uruchom Netbeans, otwórz projekt przygotowany w ramach poprzednich zajęć. W kolejnych krokach przerobimy klasę BookManager

Bardziej szczegółowo

Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody

Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody Obiektowy PHP Czym jest obiekt? W programowaniu obiektem można nazwać każdy abstrakcyjny byt, który programista utworzy w pamięci komputera. Jeszcze bardziej upraszczając to zagadnienie, można powiedzieć,

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

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

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Zmienne i stałe w PHP

Zmienne i stałe w PHP Zmienne i stałe w PHP Zmienne Zmienne to konstrukcje programistyczne, które pozwalają na przechowywanie danych. Każda zmienna posiada swoją nazwę oraz typ. Nazwa to jednoznaczny identyfikator, dzięki któremu

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Smarty PHP. Leksykon kieszonkowy

Smarty PHP. Leksykon kieszonkowy IDZ DO PRZYK ADOWY ROZDZIA SPIS TREœCI KATALOG KSI EK KATALOG ONLINE ZAMÓW DRUKOWANY KATALOG Smarty PHP. Leksykon kieszonkowy Autor: Daniel Bargie³ ISBN: 83-246-0676-9 Format: B6, stron: 112 TWÓJ KOSZYK

Bardziej szczegółowo

Widoki zagnieżdżone, layout. 1. Wprowadzenie Repozytoria danych

Widoki zagnieżdżone, layout. 1. Wprowadzenie Repozytoria danych Widoki zagnieżdżone, layout 1. Wprowadzenie Repozytoria danych Identyczne operacje na danych często się powtarzają np. pobierz książkę. Jeśli zapytanie realizowane jest za każdym razem w metodzie kontrolera

Bardziej szczegółowo

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

- Narzędzie Windows Forms. - Przykładowe aplikacje. Wyższa Metody Szkoła programowania Techniczno Ekonomiczna 1 w Świdnicy Wyższa Metody Szkoła programowania Techniczno Ekonomiczna 1 w Świdnicy - Narzędzie Windows Forms - Przykładowe aplikacje 1 Narzędzia Windows Form Windows Form jest narzędziem do tworzenia aplikacji dla

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

Informacje ogólne. Karol Trybulec p-programowanie.pl 1. 2 // cialo klasy. class osoba { string imie; string nazwisko; int wiek; int wzrost;

Informacje ogólne. Karol Trybulec p-programowanie.pl 1. 2 // cialo klasy. class osoba { string imie; string nazwisko; int wiek; int wzrost; Klasy w C++ są bardzo ważnym narzędziem w rękach programisty. Klasy są fundamentem programowania obiektowego. Z pomocą klas będziesz mógł tworzyć lepszy kod, a co najważniejsze będzie on bardzo dobrze

Bardziej szczegółowo

Aplikacje WWW - laboratorium

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

Bardziej szczegółowo

xmlns:prism=http://www.codeplex.com/prism c. <ContentControl prism:regionmanager.regionname="mainregion" />

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

Bardziej szczegółowo

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

Serwery aplikacji. dr Radosław Matusik. radmat

Serwery aplikacji. dr Radosław Matusik.   radmat www.math.uni.lodz.pl/ radmat EL - Expression Language Załóżmy, że mamy klasę Pracownik, której atrybutem jest PESEL. Załóżmy dalej, że w atrybucie sesji zalogowany przechowujemy obiekt aktualnie zalogowanego

Bardziej szczegółowo

Dokumentacja do API Javy.

Dokumentacja do API Javy. Dokumentacja do API Javy http://java.sun.com/j2se/1.5.0/docs/api/ Klasy i obiekty Klasa jest to struktura zawierająca dane (pola), oraz funkcje operujące na tych danych (metody). Klasa jest rodzajem szablonu

Bardziej szczegółowo

Ewolucja projektowania aplikacji w PHP na bazie frameworka Symfony 2

Ewolucja projektowania aplikacji w PHP na bazie frameworka Symfony 2 Ewolucja projektowania aplikacji w PHP na bazie frameworka Symfony 2 Statyczne strony HTML Wczytanie statycznej strony HTML sprowadza się do odebrania żądania przez serwer, odnalezienia właściwego pliku

Bardziej szczegółowo

Technologie internetowe ASP.NET Core. Paweł Rajba

Technologie internetowe ASP.NET Core. Paweł Rajba Technologie internetowe ASP.NET Core Paweł Rajba pawel@cs.uni.wroc.pl http://itcourses.eu/ Plan wykładu Wprowadzenie Podstawowa aplikacja Usługi i middleware Obsługa błędów Request, Response, ciastka i

Bardziej szczegółowo

Ajax. 1. Wprowadzenie. 2. Aplikacja serwerowa

Ajax. 1. Wprowadzenie. 2. Aplikacja serwerowa Ajax 1. Wprowadzenie Do tej pory każda akcja na Waszej stronie kończyła się nowym requestem do serwera i przeładowaniem całej strony w przeglądarce. W tej instrukcji dodamy elementy asynchroniczne na stronie,

Bardziej szczegółowo

Laboratorium Systemów Operacyjnych

Laboratorium Systemów Operacyjnych Laboratorium Systemów Operacyjnych Użytkownicy, Grupy, Prawa Tworzenie kont użytkowników Lokalne konto pozwala użytkownikowi na uzyskanie dostępu do zasobów lokalnego komputera. Konto domenowe pozwala

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Laboratorium z przedmiotu Programowanie obiektowe - zestaw 02 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas i obiektów z wykorzystaniem dziedziczenia.

Bardziej szczegółowo

Podstawy wzorca MVC 2011-10-18 MODEL KON- TROLER WIDOK. Odpowiada za wyświetlenie danych użytkownikowi. Zawiera dane aplikacji oraz jej logikę.

Podstawy wzorca MVC 2011-10-18 MODEL KON- TROLER WIDOK. Odpowiada za wyświetlenie danych użytkownikowi. Zawiera dane aplikacji oraz jej logikę. Podstawy wzorca MVC MODEL KON- TROLER WIDOK Zawiera dane aplikacji oraz jej logikę. MODEL WIDOK Odpowiada za wyświetlenie danych użytkownikowi KON- TROLER KON- TROLER MODEL WIDOK Jedyna część aplikacji,

Bardziej szczegółowo

Baza danych sql. 1. Wprowadzenie

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

Bardziej szczegółowo

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

Pracownia internetowa w każdej szkole (edycja Jesień 2007) Instrukcja numer D2/08_01 Pracownia internetowa w każdej szkole (edycja Jesień 2007) Opiekun pracowni internetowej cz. 2 (D2) Określanie właściwości stron WWW (domyślne pliki startowe, katalogi wirtualne,

Bardziej szczegółowo

Rozdział 4 KLASY, OBIEKTY, METODY

Rozdział 4 KLASY, OBIEKTY, METODY Rozdział 4 KLASY, OBIEKTY, METODY Java jest językiem w pełni zorientowanym obiektowo. Wszystkie elementy opisujące dane, za wyjątkiem zmiennych prostych są obiektami. Sam program też jest obiektem pewnej

Bardziej szczegółowo

Walidacja danych w ASP.NET MVC

Walidacja danych w ASP.NET MVC Walidacja danych w ASP.NET MVC 1. Prosta walidacja 2. Walidacja z Data Annotation public ActionResult Edit(Person person) bool blad = false; if(person.name.trim().length == 0) ViewData["Blad1"] = "Nazwisko

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

Spring Web MVC, Spring DI

Spring Web MVC, Spring DI Państwowa Wyższa Szkoła Zawodowa w Tarnowie Zakład Informatyki Laboratorium 5 Spring Web MVC, Spring DI Prowadzący: Kierunek: Semestr: Rok: Informatyka Zimowy 2 Technologie Technologie / narzędzia będące

Bardziej szczegółowo

Sesje i logowanie. 1. Wprowadzenie

Sesje i logowanie. 1. Wprowadzenie Sesje i logowanie 1. Wprowadzenie Żądania od nawet tego samego użytkownika na serwerze nie są domyślnie w żaden sposób łączone ze sobą. Każde jest w pewnym sensie nowe i serwer nie jest w stanie stwierdzić,

Bardziej szczegółowo

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

GS2TelCOMM. Rozszerzenie do TelCOMM 2.0. Opracował: Michał Siatkowski Zatwierdził: IMIĘ I NAZWISKO GS2TelCOMM Rozszerzenie do TelCOMM 2.0 Opracował: Michał Siatkowski 29-03-2017 Zatwierdził: IMIĘ I NAZWISKO DATA TEL-STER 2017 Spis treści Wprowadzenie... 3 Architektura... 3 Instalacja... 3 Współpraca

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

Kurs ASP.NET ASP.NET CORE APLIKACJE WEBOWE

Kurs ASP.NET ASP.NET CORE APLIKACJE WEBOWE Kurs ASP.NET ASP.NET CORE APLIKACJE WEBOWE Cena szkolenia Cena szkolenia wynosi 100 zł za 60 min. Ilość godzin szkolenia jest zależna od postępów w nauce uczestnika kursu oraz ilości czasu, którą będzie

Bardziej szczegółowo

Słowa kluczowe jak góry lodowe

Słowa kluczowe jak góry lodowe Public Słowa kluczowe jak góry lodowe czyli rzecz o bibliotekach testowych Marcin Kowalczyk marcin.kowalczyk@tieto.com Spis treści Dlaczego słowa kluczowe są jak góry lodowe, po co tworzyć własne biblioteki

Bardziej szczegółowo

Informatyka II. Laboratorium Aplikacja okienkowa

Informatyka II. Laboratorium Aplikacja okienkowa Informatyka II Laboratorium Aplikacja okienkowa Założenia Program będzie obliczał obwód oraz pole trójkąta na podstawie podanych zmiennych. Użytkownik będzie poproszony o podanie długości boków trójkąta.

Bardziej szczegółowo

Programowanie komponentowe. Przykład 1 Bezpieczeństwo wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

Programowanie komponentowe. Przykład 1 Bezpieczeństwo wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz Programowanie komponentowe Przykład 1 Bezpieczeństwo wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz Struktura wykładu 1. Utworzenie użytkowników i ról na serwerze aplikacji Sun Java System Application

Bardziej szczegółowo

TEMAT : KLASY DZIEDZICZENIE

TEMAT : KLASY DZIEDZICZENIE TEMAT : KLASY DZIEDZICZENIE Wprowadzenie do dziedziczenia w języku C++ Język C++ możliwa tworzenie nowej klasy (nazywanej klasą pochodną) w oparciu o pewną wcześniej zdefiniowaną klasę (nazywaną klasą

Bardziej szczegółowo

Tworzenie witryn internetowych PHP/Java. (mgr inż. Marek Downar)

Tworzenie witryn internetowych PHP/Java. (mgr inż. Marek Downar) Tworzenie witryn internetowych PHP/Java (mgr inż. Marek Downar) Rodzaje zawartości Zawartość statyczna Treść statyczna (np. nagłówek, stopka) Layout, pliki multimedialne, obrazki, elementy typograficzne,

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Laboratorium z przedmiotu Programowanie obiektowe - zestaw 03 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas abstrakcyjnych i interfejsów. Wprowadzenie

Bardziej szczegółowo

Wykład 5: Klasy cz. 3

Wykład 5: Klasy cz. 3 Programowanie obiektowe Wykład 5: cz. 3 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD - podstawy Konstruktor i destruktor (część I) 2 Konstruktor i destruktor KONSTRUKTOR Dla przykładu

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

Część XVII C++ Funkcje. Funkcja bezargumentowa Najprostszym przypadkiem funkcji jest jej wersja bezargumentowa. Spójrzmy na przykład.

Część XVII C++ Funkcje. Funkcja bezargumentowa Najprostszym przypadkiem funkcji jest jej wersja bezargumentowa. Spójrzmy na przykład. Część XVII C++ Funkcje Funkcja bezargumentowa Najprostszym przypadkiem funkcji jest jej wersja bezargumentowa. Spójrzmy na przykład. 2 3 Tworzymy deklarację i definicję funkcji o nazwie pobierzln() Funkcja

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

Programowanie aplikacji na iphone. Wstęp do platformy ios. Łukasz Zieliński

Programowanie aplikacji na iphone. Wstęp do platformy ios. Łukasz Zieliński Programowanie aplikacji na iphone. Wstęp do platformy ios. Łukasz Zieliński Plan Prezentacji. Programowanie ios. Jak zacząć? Co warto wiedzieć o programowaniu na platformę ios? Kilka słów na temat Obiective-C.

Bardziej szczegółowo

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

Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych. Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych. 1. Przygotowanie środowiska programistycznego. Zajęcia będą

Bardziej szczegółowo

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

Pracownia internetowa w każdej szkole (edycja Jesień 2007) Instrukcja numer D1/05_03/Z Pracownia internetowa w każdej szkole (edycja Jesień 2007) Opiekun pracowni internetowej cz. 1 Ręczne zakładanie kont użytkowników (D1) Jak ręcznie założyć konto w systemie

Bardziej szczegółowo

ActiveXperts SMS Messaging Server

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

Bardziej szczegółowo

Opis przykładowego programu realizującego komunikację z systemem epuap wykorzystując interfejs komunikacyjny "doręczyciel"

Opis przykładowego programu realizującego komunikację z systemem epuap wykorzystując interfejs komunikacyjny doręczyciel Opis przykładowego programu realizującego komunikację z systemem epuap wykorzystując interfejs komunikacyjny "doręczyciel" dn.24.09.2009 r. Dokument opisuje przykładowy program doręczający dokumenty na

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Praca w programie dodawanie pisma.

Praca w programie dodawanie pisma. Praca w programie dodawanie pisma. Wybór zakładki z danymi z Currendy (1) (tylko w przypadku włączenia opcji korzystania z danych Currendy). Wyszukanie i wybranie pisma. Po wybraniu wiersza dane z Currendy

Bardziej szczegółowo

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Programowanie obiektowe Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Java P. L. Lemay, Naughton R. Cadenhead Java Podręcznik 2 dla kaŝdego Języka Programowania Java Linki Krzysztof Boone oprogramowania

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

app/ - folder zawiera pliki konfiguracyjne dla całej aplikacji Można wybrać sposób zapisu konfiguracji: YML, XML, PHP

app/ - folder zawiera pliki konfiguracyjne dla całej aplikacji Można wybrać sposób zapisu konfiguracji: YML, XML, PHP Baza danych i ORM Struktura Bundle app/ - folder zawiera pliki konfiguracyjne dla całej aplikacji Można wybrać sposób zapisu konfiguracji: YML, XML, PHP src/ - folder zawiera cały kod PHP aplikacji vendor/

Bardziej szczegółowo

Poznaj ASP.NET MVC. Kamil Cieślak Microsoft Student Partner 2013-03-11

Poznaj ASP.NET MVC. Kamil Cieślak Microsoft Student Partner 2013-03-11 Poznaj ASP.NET MVC Kamil Cieślak Microsoft Student Partner 2013-03-11 Agenda Czym jest ASP.NET MVC? Wzorzec MVC ASP.NET MVC vs inne frameworki Bazy danych w ASP.NET MVC Jak zacząć? 2 Czym jest ASP.NET

Bardziej szczegółowo

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

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

Bardziej szczegółowo

4. Podstawowa konfiguracja

4. Podstawowa konfiguracja 4. Podstawowa konfiguracja Po pierwszym zalogowaniu się do urządzenia należy zweryfikować poprawność licencji. Można to zrobić na jednym z widżetów panelu kontrolnego. Wstępną konfigurację można podzielić

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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

PHP 5 język obiektowy

PHP 5 język obiektowy PHP 5 język obiektowy Wprowadzenie Klasa w PHP jest traktowana jak zbiór, rodzaj różnych typów danych. Stanowi przepis jak stworzyć konkretne obiekty (instancje klasy), jest definicją obiektów. Klasa reprezentuje

Bardziej szczegółowo

Instrukcja importu przesyłek. z Menedżera Sprzedaży do aplikacji Webklient

Instrukcja importu przesyłek. z Menedżera Sprzedaży do aplikacji Webklient Instrukcja importu przesyłek z Menedżera Sprzedaży do aplikacji Webklient Instrukcja importu przesyłek z Menedżera Sprzedaży do aplikacji Webklient Wersja 1.0 Warszawa, Luty 2015 Strona 2 z 7 Instrukcja

Bardziej szczegółowo

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

Baza danych sql. 1. Wprowadzenie. 2. Repozytaria generyczne Baza danych sql 1. Wprowadzenie Do tej pory operowaliście na listach. W tej instrukcji pokazane zostanie jak stworzyć bazę danych. W zadaniu skorzystamy z możliwości utworzenia struktury bazy danych z

Bardziej szczegółowo

Podstawy technologii WWW

Podstawy technologii WWW Podstawy technologii WWW Ćwiczenie 8 PHP, czyli poczatki nowej, dynamicznej znajomosci Na dzisiejszych zajęciach rozpoczniemy programowanie po stronie serwera w języku PHP. Po otrzymaniu żądania serwer

Bardziej szczegółowo

Nowe funkcjonalności wersji 3.12.0

Nowe funkcjonalności wersji 3.12.0 1. Folder poczekalnia Nowe funkcjonalności wersji 3.12.0 Dostępny jest z poziomu strony głównej w zakładce Foldery 2. Wkładka adresowa Zdefiniowane wkładu 3. Lokalizacja składów chronologicznych Możliwość

Bardziej szczegółowo

Tomasz Greszata - Koszalin

Tomasz Greszata - Koszalin T: Konfiguracja usługi HTTP w systemie Windows. Zadanie1: Odszukaj w serwisie internetowym Wikipedii informacje na temat protokołów HTTP oraz HTTPS i oprogramowania IIS (ang. Internet Information Services).

Bardziej szczegółowo

WINDOWS Instalacja serwera WWW na systemie Windows XP, 7, 8.

WINDOWS Instalacja serwera WWW na systemie Windows XP, 7, 8. WINDOWS Instalacja serwera WWW na systemie Windows XP, 7, 8. Gdy już posiadamy serwer i zainstalowany na nim system Windows XP, 7 lub 8 postawienie na nim serwera stron WWW jest bardzo proste. Wystarczy

Bardziej szczegółowo

Zrąb JavascriptMVC. Krzysztof Płocharz. 6 kwiecień 2009. Uniwersytet Warszawski

Zrąb JavascriptMVC. Krzysztof Płocharz. 6 kwiecień 2009. Uniwersytet Warszawski Uniwersytet Warszawski 6 kwiecień 2009 Spis Treści 1 MVC Jak to wygląda w JavascriptMVC 2 Prawie jak klasy 3 Hierarchia Widoki Kontrolery Modele 4 Struktura katalogów Generatory kodu Generatory dokumentacji

Bardziej szczegółowo

Technologie i usługi internetowe cz. 2

Technologie i usługi internetowe cz. 2 Technologie i usługi internetowe cz. 2 Katedra Analizy Nieliniowej, WMiI UŁ Łódź, 15 luty 2014 r. 1 Programowanie obiektowe Programowanie obiektowe (z ang. object-oriented programming), to paradygmat programowania,

Bardziej szczegółowo

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main. Część XVI C++ Funkcje Jeśli nasz program rozrósł się już do kilkudziesięciu linijek, warto pomyśleć o jego podziale na mniejsze części. Poznajmy więc funkcje. Szybko się przekonamy, że funkcja to bardzo

Bardziej szczegółowo

Systemy internetowe ASP.NET mgr inż. Andrzej Sobecki

Systemy internetowe ASP.NET mgr inż. Andrzej Sobecki Systemy internetowe ASP.NET mgr inż. Andrzej Sobecki Plan wykładu Wprowadzenie do ASP.NET Omówienie środowiska pracy Przykładowy projekt Omówienie komponentów składowych projektu ASP.NET Utworzenie i omówienie

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Instrukcja laboratoryjna cz.3

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

Bardziej szczegółowo

Jak ustawić cele kampanii?

Jak ustawić cele kampanii? Jak ustawić cele kampanii? Czym są cele? Jest to funkcjonalność pozwalająca w łatwy sposób śledzić konwersje wygenerowane na Twojej stronie www poprzez wiadomości email wysłane z systemu GetResponse. Mierzenie

Bardziej szczegółowo

Aplikacje w środowisku Java

Aplikacje w środowisku Java Aplikacje w środowisku Java Materiały do zajęć laboratoryjnych Klasy i obiekty - dziedziczenie mgr inż. Kamil Zieliński Katolicki Uniwersytet Lubelski Jana Pawła II 2018/2019 W ramach poprzedniego laboratorium

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Laboratorium z przedmiotu - zestaw 03 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas abstrakcyjnych i interfejsów. Wprowadzenie teoretyczne. Rozważana

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Laboratorium z przedmiotu - zestaw 02 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas i obiektów z wykorzystaniem dziedziczenia. Wprowadzenie teoretyczne.

Bardziej szczegółowo

Dokumentacja API BizIn

Dokumentacja API BizIn Dokumentacja API BizIn Spis treści Wstęp... 1 Dostęp do API BizIn... 1 Identyfikatory API... 1 Dostępne akcje... 3 Przykład wywołania API w języku PHP... 3 Pobieranie danych... 3 Wystawianie dokumentu

Bardziej szczegółowo

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV Piotr Jarosik, Kamil Jaworski, Dominik Olędzki, Anna Stępień Dokumentacja wstępna TIN Rozproszone repozytorium oparte o WebDAV 1. Wstęp Celem projektu jest zaimplementowanie rozproszonego repozytorium

Bardziej szczegółowo

Dokonaj instalacji IIS opublikuj stronę internetową z pierwszych zajęć. Ukaże się kreator konfigurowania serwera i klikamy przycisk Dalej-->.

Dokonaj instalacji IIS opublikuj stronę internetową z pierwszych zajęć. Ukaże się kreator konfigurowania serwera i klikamy przycisk Dalej-->. Dokonaj instalacji IIS opublikuj stronę internetową z pierwszych zajęć Ukaże się kreator konfigurowania serwera i klikamy przycisk Dalej-->. Następnie wybieramy Serwer aplikacji (IIS, ASP.NET) i klikamy

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 2015. W ramach projektu budowana jest prosta

Bardziej szczegółowo

PHP: bazy danych, SQL, AJAX i JSON

PHP: bazy danych, SQL, AJAX i JSON 1 PHP: bazy danych, SQL, AJAX i JSON SYSTEMY SIECIOWE Michał Simiński 2 Bazy danych Co to jest MySQL? Jak się połączyć z bazą danych MySQL? Podstawowe operacje na bazie danych Kilka dodatkowych operacji

Bardziej szczegółowo

PROE wykład 2 operacje na wskaźnikach. dr inż. Jacek Naruniec

PROE wykład 2 operacje na wskaźnikach. dr inż. Jacek Naruniec PROE wykład 2 operacje na wskaźnikach dr inż. Jacek Naruniec Zmienne automatyczne i dynamiczne Zmienne automatyczne: dotyczą kontekstu, po jego opuszczeniu są usuwane, łatwiejsze w zarządzaniu od zmiennych

Bardziej szczegółowo

Tak przygotowane pliki należy umieścić w głównym folderze naszego programu. Klub IKS www.informatyka.edu.pl

Tak przygotowane pliki należy umieścić w głównym folderze naszego programu. Klub IKS www.informatyka.edu.pl To jeden z ostatnich odcinków naszego kursu. Mam nadzieję, że pisanie własnego programu było ciekawym doświadczeniem. Zaproponowana w tym odcinku funkcja uatrakcyjni twój program. Stworzymy tak zwane okno

Bardziej szczegółowo

SZYBKI START. Tworzenie nowego połączenia w celu zaszyfrowania/odszyfrowania danych lub tekstu 2. Szyfrowanie/odszyfrowanie danych 4

SZYBKI START. Tworzenie nowego połączenia w celu zaszyfrowania/odszyfrowania danych lub tekstu 2. Szyfrowanie/odszyfrowanie danych 4 SZYBKI START Tworzenie nowego połączenia w celu zaszyfrowania/odszyfrowania danych lub tekstu 2 Szyfrowanie/odszyfrowanie danych 4 Szyfrowanie/odszyfrowanie tekstu 6 Tworzenie nowego połączenia w celu

Bardziej szczegółowo