dit06omr@cs.umu.se 12 juni 2009 Projektplan Webb-baserat bokningssystem för flyg Kurs: Applikationsutveckling för internet, TFE



Relevanta dokument
Webservice & ERP-Integration Rapport

UTVECKLINGSMILJÖER Microsoft Visual Studio ( ), SQL Server Management Studio , Eclipse

Projekt Foreläsning VI

Hemsideutveckling för Anjool AB

Mål med lektionen! Repetera och befästa kunskaperna.

Kursplanering Utveckling av webbapplikationer

Medieteknologi Webbprogrammering och databaser MEB725, 5p (7,5 ECTS) Klientprogrammering JavaScript Program på flera sidor

Metoder (funktioner) Murach s: kap Winstrand Development

Klient/server. Översikt. Lektion 1: Webbtekniker från Microsoft. Webbteknik från Microsoft. Klient/server. Designmönster. Utrullning.

GATEWAY TJÄNSTEBESKRIVNING. Webbservice. WSDL-fil. Skicka meddelanden. SMS och FastnätsSMS

Webbtjänster med API er

Översikt. Installation av EasyPHP 1. Ladda ner från Jag använder Release Installera EasyPHP.

Slutrapport YUNSIT.se Portfolio/blogg

XtraMatLagning. August Ek och Oscar Johnson. TNM065 Dokumentstrukturer

Objektorienterad Programkonstruktion. Föreläsning jan 2016

Användarhandbok. version sida 1 av 15

Webbprogrammering. Sahand Sadjadee

Webbprogrammering, grundkurs 725G54

Dagens program. Programmeringsteknik och Matlab. Objektorienterad programmering. Vad är vitsen med att ha både metoder och data i objekten?

Sammanfattning. Applikationen är utvecklad i Microsofts utvecklingsmiljö Visual Studio 2012.

Kopiering av objekt i Java

VIDEODAGBOKEN. Individuellt Mjukvaruutvecklingsprojekt. En dagbok i videoform online. Robert Forsgren (rf222ce) UD

Slutrapport för JMDB.COM. Johan Wibjer

Generiska konstruktioner. Kursbokens kapitel 13

Användarhandledning Version 1.2

Tove Carlsund Systemutvecklare

ASP.NET Thomas Mejtoft

Rune Tennesmed. Oskar Norling 1DV430. Individuellt Mjukvaruutvecklingsprojekt 1DV430 Webbprogrammerare H12 Oskar Norling

Konsultprofil. Per Norgren (1983) Arkitekt & webbutvecklare

Mål med lektionen! Veta kursmålen. Ha kännedom om några av de grundläggande begreppen.

Projektarbete myshop. Sandra Öigaard so222es WP12 Individuellt mjukvaruutvecklingsprojekt

Arbeta med databas. Översikt. Lektion 1: Arbeta med Entity Data Models. Arbeta med Entity Data Models. LINQ (Language Integrated Query).

SLUTRAPPORT RUNE TENNESMED WEBBSHOP

Tentamen ID1004 Objektorienterad programmering May 29, 2012

DELPROV 1 I DATAVETENSKAP

"Är en"-relation. "Har en"-relation. Arv. Seminarium 2 Relevanta uppgifter. I exemplet Boll från förra föreläsningen gällde

L04.1 Marodören. Inledning. Mål. Genomförande. Uppgift 1 Hello World. Moment I

Individuellt Mjukvaruutvecklingsprojekt. Slutrapport. Projekt: ASP.NET Applikation: Clustery Gaming Datum: Författare: Adam Gustafsson UD11

RDT Externt Webbtjänst Gränssnitt

KARLSTADS UNIVERSITET 12/8/09 informatik & datavetenskap Johan Öfverberg, Kerstin Andersson Laboration 4, ISG A04 och DVG A08 HT-09

Objektorienterad programmering E. Telefonboken, än en gång. Gränssnitt. Telefonboken med gränssnitt specificerat, del 1.

TDP013. Webbprogrammering och interaktivitet. AJAX, CORS & jquery. Marcus Bendtsen Institutionen för Datavetenskap (IDA)

Laboration 1: Figurer i hierarki

Administrations GUI till DIAMONDS databas

Nya webbservern Dvwebb.mah.se

Introduktion Schenker-BTL AB, Stab IT Beskrivning över informationsintegreringmed Schenker, metodbeskrivning version 1.

Webbprogrammering - 725G54 PHP. Foreläsning II

Projekt Rapport. RaidPlanner. Jeanette Karlsson UD10

Bankkonto - övning. Övning 2 Skriv en metod, geträntan, som returnerar räntan.

Objektorienterad programmering i Java I. Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6

Webbteknik. Innehåll. Historisk återblick Teknisk beskrivning Märkspråk Standardisering Trender. En kort introduktion

Laboration: SQL Server

Institutionen för Tillämpad fysik och elektronik Stefan Berglund och Per Kvarnbrink. Laboration: Flerskiktade applikationer

TENTAMEN. Kurs: Objektorienterad programmeringsmetodik 5DV133 Ansvarig lärare: Anders Broberg. VT-13 Datum: Tid: kl

RDT Externt Webbtjänst Gränssnitt

Innehåll MySQL Intro. Allmänt om Lagrade Procedurer Enkel utformning Skapa en lagrad procedur Använda parameter som indata

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

GIT L0006B. C# och Windowsbaserad applikationsutveckling. Information inför kursstart

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Classes och Interfaces, Objects och References, Initialization

Administrativt. Programmeringsteknik för I1. Dagens program. Objektorienterad programmering

Karlstads Universitet, Datavetenskap 1

En integration av betalningssystem på hemsida

UML. Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016

1 Klasser och objektorientering Vad är objektorientering?

Föreläsning 8 - del 2: Objektorienterad programmering - avancerat

Databasapplikationen HYR AKS. Vers 1.0 6, AKS har framtagits av ApplData AB på uppdrag av TillSaluGrejorAB

Räkna med ASP.NET MVC 3

E12 "Evil is going on"

Webbprogrammering TDDD52

TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 6 Erik Nilsson, Institutionen för Datavetenskap, LiU

Kungl. Tekn. Högskolan Förel 1, bild 1 Föreläsning 1: Introduktion ffl Kursinnehåll ffl Javarepetition ffl Referenser ffl Nyckelordet static ffl Klass

ID1004 Laboration 4, November 2012

ADITRO LÖSNINGAR FÖR EN ENKLARE JOBBVARDAG SUMMIT 2014 PER JOHANSSON & JOEL KÖHL ADITRO L FRÅN WINDOWS TILL WEB

WEBBSERVERPROGRAMMERING

Kort repetition. Programmeringsteknik för Bio1 och I1. Vad ska vi lära oss idag? Ett exempel

Laboration 1 Introduktion till Visual Basic 6.0

SMD140 - Projekt för dataingenjörer Omvänd auktion

TDDD78, TDDE30, 729A Introduktion till Java -- för Pythonprogrammerare

Obs! Inget ur Javas standardbibliotek får användas i ett svar (om det inte står att man får det).

TDDD78, TDDE30, 729A Introduktion till Java -- för Pythonprogrammerare

TDDD78 Objektorientering: Lagring och livstid

Lab 6: ASP.NET 2.0 Providermodellen

Kursplanering Objektorienterad programmering

Objektorientering: Lagring, räckvidd och livstid

Diagnostiskt Prov. Antaganden Om förutsättningar saknas I en uppgift skall rimliga antaganden göras och nedtecknas.

Outline. Objektorienterad Programmering (TDDC77) Åsidosättning. Signatur. Åsidosättning. Abstrakta klasser. Ahmed Rezine.

ADO.NET Murach Kapitel 17-20

Undervisningen i ämnet webbutveckling ska ge eleverna förutsättningar att utveckla följande:

Visual Basic, en snabbgenomgång

Introduktion till objektorientering. Vad är objektorientering egentligen? Hur relaterar det till datatyper? Hur relaterar det till verkligheten?

WP-Edit. Robin Larsson Martin Davik. Examensarbete, grundnivå, 15 hp Datavetenskap Internetteknologprogrammet

KONSULTPROFIL Michael

Programmering = modellering

Objektorientering: Lagring och livstid

Document name. Itsy - Systembeskrivning.doc. Gustav Wilhelmsson

Classes och Interfaces, Objects och References Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016

Projektanvisning. Webbsideprojekt. Författare: Johan Leitet Version: 2 Datum:

Systemutvecklare.NET, C#/VB, C/C++, ASP.NET, T-SQL, JAVA Systemdesign

Language Integrated Query, LINQ, och databaser

Transkript:

Projektplan Webb-baserat bokningssystem för flyg Kurs: Applikationsutveckling för internet, TFE VT-09

Innehållsförteckning Inledning & problembeskrivning...1 Systembeskrivning...2 Affärsobjekt...2 Databasen...4 Ajax - jquery...4 Webbtjänst...4 Gränssnitt...5 Lösningen begränsningar...6 Problem & reflektioner...6 Referenslitteratur...6

Inledning & problembeskrivning Eftersom systemet är tänkt att säljas om det blir bra uppmanas du som läsare att hålla detta dokument konfidentiellt! Projektet syftar till att skapa användbara gränssnitt med ASP.NET och C#. Dessa kommer att användas för att skapa ett webbaserat bokningssystem för flyg. Webbplatsen ska vara stilren och framförallt enkel med lagom information på varje sida. Menysystemet ska även vara kort & koncis med flera nivåer där det krävs. Alla funktioner bör vara kort förklarade på varje sida med en eventuell hjälpsida eller hjälpavsnitt där det kan vara nödvändigt. I första hand syftar projektet till att skapa tekniska lösningar, design kommer i andra hand. JavaScript (ajax) kommer användas för att utöka funktionalitet men skall inte vara ett krav för användaren för att kunna använda webbplatsen (en del användare har inte javascript installerat / aktiverat). Ett exempel där javascript kan tänkas användas är i formulär som förslag till användaren från databaser. Systemet syftar till att hjälpa kunder hitta billiga flygningar, själva bokningsprocessen kommer dock i slutändan ske genom flygbolaget. För att systemet (företaget) ska gå med vinst måste kunder registrera sig för att ta del av essentiell bokningsinformation såsom flygbolag och kontaktinformation. Utan registrering kan kunder endast se destinationer och priser, detta kommer förhoppningsvis leda till att de registrerar sig. Kurs: Applikationsutveckling för Internet (TFE), VT-09 1

Systembeskrivning Projektet är utfört med Asp.net 3.5 i Visual Studio 2008, databasen som har använts är Microsoft SQL SMSE. Projektet använder sig av en treskiktad lösning med ett affärsobjekt och en webbtjänst som mellanlager (mellan databasen och gränssnittet). Affärsobjektet är utav god objektorienterad stil. Affärsobjekt Största delen av systemlogiken är implementerad inuti affärsobjektet. Gränssnittet har en mindre del kod som endast påverkar gränssnittet. Illustration 1: Affärsobjekt FlightMethods är standardmetoder som används för alla användare, MemberMethods är metoder som används för medlemmar och AdminMethods är metoder för administratörer. Metoen gettrips() returnerar alla resor från en destination till en annan från ett visst datum. Det går bra att skicka in tomma strängar för allt utom datumet (som inte heller är en sträng). Metoden makequerystring() används för att skapa en så kallad query string med GETvariabler, det är browserns synliga variabler när man surfar. Ett exempel: http://www.website.com/products.html?id=1296&category=things Genom att skicka in en lista av datatypen GetVariable (egen datatyp, se illustration 2) och sidan användaren ska dirigeras till får man tillbaka en query string enligt exemplet ovan i fetstil. Metoden getlastquery() returnerar senaste begärda sträng vilket är användbart för tillbakaknappar. Kurs: Applikationsutveckling för Internet (TFE), VT-09 2

Illustration 2: Instansobjekt Trip motsvarar en resa, när ett objekt instansieras sparas det högsta budet för omedelbar hämtning eftersom gettrips() från FlightMethods returnerar en lista med Trip's. För säkerhetsskull går det endast att hämta det högsta budet (gethighestbid()) en gång. Om metoden anropas en andra gång kastas därför ett undantag eftersom det högsta budet eventuellt har ökat sedan det hämtades från databasen. Currency är valutan som används för budgivning för att förenkla för flygbolag från olika länder. Metoden getexception() returnerar ett undantag om ett sådant har kastats annars returnerar den null (se problem och reflektioner). Means är en Enum som definerar vilken typ av resa det handlar om; flyg, helikopter eller limousin. Kurs: Applikationsutveckling för Internet (TFE), VT-09 3

Databasen Relationen mellan tbl_trips och tbl_planes är streckad eftersom den inte måste existera. Ajax - jquery För att hämta förslag på länder och städer till användaren har Ajax biblioteket jquery använts. Förslagen hämtas från en webbtjänst som i sin tur anropar databasen och hämtar de länder och städer som det finns resor mellan. En utökning av biblioteket för autocomplete har använts som stöder xml (se referenslitteratur). Webbtjänst Webbtjänsten innehåller följande metoder: public List<string> getlocationcities(string q, int limit) public List<string> getdestinationcities(string q, int limit) public List<string> getlocationcountries(string q, int limit) public List<string> getdestinationcountries(string q, int limit) Kurs: Applikationsutveckling för Internet (TFE), VT-09 4

Gränssnitt Illustration 3: Startsidan Illustration 4: Sidan 2 / Sökresultat Kurs: Applikationsutveckling för Internet (TFE), VT-09 5

Lösningen begränsningar AdminMethods och MemberMethods är inte implementerade. FlightMethods behöver fler metoder. Trip.getHighestBid() ska bara användas i direkt samband med hämtning av data (gettrips() t.ex.) Databasen: En resa måste ha minst 1 bud för att kunna listas, därför ska ett bud (tbl_bids) på 0 således alltid göras när resor läggs till. Problem & reflektioner Att anropa en lagrad procedur från en webbtjänst verkar inte fungera. SELECT TOP @limit FROM tabell skickar sql-satsen bokstavligt talat (den ersätter inte @limit) med den parameter du anger). Detta tog mig ganska lång tid att komma underfund med. Att få auto-complete funktionen att fungera tog mig flera dagar. Webbtjänsten måste ligga i samma projekt eller på en riktig webbserver. Databaser på andra servrar är förbjudna att kontaktas som standard av säkerhetsskäl har jag upptäckt. Referenslitteratur Updated jquery Autocomplete Plugin for ASMX & XML http://www.zachhunter.net/blog/trackback.aspx?guid=e3e394c1-4a23-4fb5-9682-3121405a7560 Kurs: Applikationsutveckling för Internet (TFE), VT-09 6