Utveckling av mötesplats på Internet



Relevanta dokument
Webbservrar, severskript & webbproduktion

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

Slutrapport för JMDB.COM. Johan Wibjer

ASP.NET Thomas Mejtoft

Vidareutveckling av lokalbokningssystem

Innehåll. MySQL Grundkurs

Hemsideutveckling för Anjool AB

Inledande programmering med C# (1DV402) Introduktion till C#

Mina listor. En Android-applikation. Rickard Karlsson Rickard Karlsson - rk222cu Linnéuniversitet rk222cu@student.lnu.

ANNA ÅBERG. Häng med in i min värld och lär känna mig. Kanske är jag just den som ni söker... Jag är...

12 juni 2009 Projektplan Webb-baserat bokningssystem för flyg Kurs: Applikationsutveckling för internet, TFE

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

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

Priskamp. En prisjämförelsesite Björn Larsson

KONSULTPROFIL Rodrigo

Konsultprofil. Per Norgren (1983) Arkitekt & webbutvecklare

Introduktion till MySQL

Storegate Pro Backup. Innehåll

Henrik Häggbom Examensarbete Nackademin Våren 2015

Projekt Rapport. RaidPlanner. Jeanette Karlsson UD10

Slutrapport Thunderbug

Webbprogrammering - 725G54 PHP. Foreläsning II

Version Namn Datum Beskrivning 1.0 Förutsättningar Vitec Ekonomi 1.1 Marie Justering för krav på Windows Server

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

emopluppen Användning av "Ant" Niklas Backlund Version: 1.4 ( 2002/04/26 07:27:52 UTC)

Webbtjänster med API er

Hja lp till Mina sidor

Prova på-laboration i PHP Johan Sjöholm johsj@ida.liu.se Institutionen för datavetenskap, Linköpings universitet

Stored procedure i ASP.NET

Slutrapport YUNSIT.se Portfolio/blogg

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

Dynamiska webbsystem. Ajax

EXAMENSARBETE. Rickard Larsson HÖGSKOLEINGENJÖRSPROGRAMMET DATATEKNIK. Institutionen i Skellefteå

Föreläsning 2. Operativsystem och programmering

Programmering B med Visual C

SLUTRAPPORT RUNE TENNESMED WEBBSHOP

Installationsanvisningar

Kursplanering Utveckling av webbapplikationer

Installationsanvisningar

Kristoffer Eriksson Christer Oscarsson Andreas Dahlberg Martin Bengtsson

Game of 40. Regler och om sidan är in princip samma sak. Det som skiljer dem åt är att de inte har samma text.

VAD GÖR DU / VEM ÄR DU?

Installationsbeskrivning för CAB Service Platform med CABInstall

Innehåll. Dokumentet gäller från och med version

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

Avancerade Webbteknologier

Installation/uppdatering av Hogia Personal fr.o.m. version 13.1

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

Författare Version Datum. Visi System AB

FrontPage Express. Ämne: Datorkunskap (Internet) Handledare: Thomas Granhäll

Nya webbservern Dvwebb.mah.se

Web Services. Cognitude 1

Installera SoS2000. Kapitel 2 Installation Innehåll

Årsskiftesrutiner i HogiaLön Plus SQL

Innehållsförteckning Sida 3 Om IT-Högskolan Sida 4-5.NET-utvecklare Sida 6-7 Applikationsutvecklare till iphone och Android Sida 8-9 Mjukvarutestare

Webbprogrammering. Sahand Sadjadee

Elektronisk publicering TNMK30

GYMKEEPER ANDREAS SÖDERSTRÖM

<script src= "

Webservice & ERP-Integration Rapport

SLUTRAPPORT WEBBPROJEKT 1

ToDo ios-applikation. Mikael Östman. Mikael Östman - mo22ez Linnéuniversitetet

Uppdaterad EDP Future Uppdateringsanvisningar från 1.7x. Sida 1

Laboration 1 Introduktion till Visual Basic 6.0

Projektarbete myshop. Sandra Öigaard so222es WP12 Individuellt mjukvaruutvecklingsprojekt

Bloggar - Som marknadsföring och varumärkesbyggande. Calle Johansson Essä i Digitala Distributionsformer Högskolan Väst - 23 maj 2011

ARX på Windows Vista, Windows 7 eller Windows 2008 server

Joakim Jonsson jj222kc. Minesweeper. Individuellt Mjukvaruprojekt Joakim Jonsson

Installera din WordPress med 9 enkla steg

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

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

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

VAD GÖR DU / VEM ÄR DU?

Instruktioner. Innehåll: 1. Vad är Kimsoft Control (SIDA 2) 3. Hem (SIDA 2)

Diagnostisktprov Utveckla i Azure

Installationsanvisningar VisiWeb. Ansvarig: Visi Closetalk AB Version: 2.3 Datum: Mottagare: Visi Web kund

Webbprogrammering TDDD52

URVAL AV UTFÖRDA FRILANSJOBB

Creo Customization. Lars Björs

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

Börja med git och GitHub - Windows

Introduktion till programmering. Programspråk och paradigmer

CMS. - Content management system

ENTRÉ DOKUMENTHANTERING...

TUTORIAL: KLASSER & OBJEKT

TMP Consulting - tjänster för företag

Molntjänster. Översikt. Lektion 1: Introduktion till molntjänst. Introduktion till molntjänst. Vilka tjänster finns? Säkerhet.

Webbserverprogrammering

Emacs. Eric Elfving Institutionen för datavetenskap (IDA) 22 augusti 2016

Alla filer som bearbetar PHP script ska avslutas med ändelsen.php, exempelvis ska en indexsida till en hemsida heta index.php

TEKNISK SPECIFIKATION. för TIDOMAT Portal version 1.7

Varför ska man använda ett CMS? Vilka är fördelarna och är det alltid bra? Kattis Lodén

Webbprogrammering, grundkurs 725G54

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

Systemutvecklare SU14, Malmö

Kom igång-guide: Spara tusenlappar med Libreoffice - IDG.se

L0009B. Moment. Introduktion till geografiska databaser: G:\L0009B\Allmänt\IntroGeoDB.pdf (F)

Elektronisk publicering TNMK30

Transkript:

Beteckning: Institutionen för matematik, natur- och datavetenskap Utveckling av mötesplats på Internet Johan Wennberg och Martin Hallmo Juni 2007 Examensarbete, 10 poäng, B Datavetenskap Internetteknologiprogrammet Examinator/handledare: Ann-Sofie Östberg Medbedömare: Bengt Östberg

Utveckling av mötesplats på Internet av Johan Wennberg & Martin Hallmo Institutionen för matematik, natur- och datavetenskap Högskolan i Gävle S-801 76 Gävle, Sweden Email: nit05jwg@student.hig.se, efk04mho@student.hig.se Abstrakt Ett av Internets stora användningsområden är att skapa kontakter mellan människor. För att underlätta detta har det under årens lopp kommit en rad olika mötesplatser, s.k. communities på Internet. De problem vi ser med de nuvarande är att sidorna känns svårnavigerade, och med röriga funktioner. Därför bestämde vi oss för att skapa en egen mötesplats med nyskapande och roliga funktioner för att kunna nå ut till en bred publik. Detta arbete innefattar utformningen av MySQL databasen ifrån grunden och dess relationer, samt programmering av funktionerna, i Microsoft.NET miljö. Nyckelord: Webbprogrammering, databas, MySQL, Microsoft.NET 2

1. Inledning... 4 1.1 Problembeskrivning... 4 1.2 Syfte... 4 1.3 Frågeställningar... 4 1.4 Avgränsningar... 5 2. Bakgrund... 6 2.1 Microsoft.NET... 6 2.1.1 ASP.NET... 7 2.1.2 VB.NET... 7 2.2 MySQL... 7 2.3 SQL... 7 2.4 AJAX... 7 3 Förutsättningar och krav... 8 3.1 Förutsättningar... 8 3.2 Krav på funktion... 8 3.3 Krav på säkerhet... 8 4. Beskrivning av konstruktionslösning... 9 4.1 Val av teknologi... 9 4.1.1 ASP.NET... 9 4.1.2 JavaScript... 9 4.1.3 MySQL... 9 4.1.4 IIS...10 4.1.5 AJAX...10 4.2 Säkerhet...10 4.2.1 Lösenord...10 4.2.2 Session...10 4.3 Funktionsbeskrivning...11 4.3.1 Lägga till information i databasen...11 4.3.2 Hämta enskilda parametrar ifrån databasen...11 4.3.3 Hämta listor av information ur databasen...11 4.3.4 Uppdatera information ur databasen...11 4.3.4 Ta bort...11 4.3.5 Funktioner för att beräkna ålder...11 4.3.6 Substring-funktioner...11 4.3.7 Javascript...11 5. Implementering och problem...12 5.1 Implementering av webbapplikation...12 5.2 Problem...12 5.2.1 MySQL och ASP.NET...12 5.2.2 Session...12 5.2.3 Teckenuppsättning....12 5.3 Val av utvecklingsmiljö...13 6. Diskussion...14 6.1 Diskussion kring lösning...14 6.2 Diskussion kring genomförande...15 6.3 Förslag på förbättringar...16 7. Slutsats...17 8. Källförteckning...18 9 Bilagor...19 9.1 Relationstabell 1. Presentation...19 9.2 Relationstabell 2. Övriga...20 3

1. Inledning Ett av Internets större användningsområden idag är att skapa kontakter mellan människor. Sedan Lunarstorm öppnade sin sida för ett antal år sedan har en rad nya möteplatser, så kallade communities tillkommit, i såväl Sverige som internationellt. 1.1 Problembeskrivning Då många nuvarande mötesplatser och öppna forum på Internet känns svårnavigerade och röriga skall en sida skapas med ett stilrent grässnitt och lättillgängliga funktioner. Säkerheten blir något som måste has i åtanke under utvecklingen. Alla databaskopplingar och funktioner måste vara utformade på ett säkert sätt för att undvika eventuella intrång. Ett av det största problemet är att hitta något som sticker ut från andra mötesplatser på nätet, dvs skapa något eget för att få en tillräckligt stor publik och för att få mötesplatsen så intressant som möjligt för besökarna. 1.2 Syfte Syftet är att skapa en mötesplats på Internet som inriktar sig på människor i alla åldrar, men framför allt 17-25 år. Tanken är att istället för att var extremt nischade, stuva ihop flera av andra mötesplatser funktioner i ett, det vill säga resor, fest och sommar. Sommartemat kommer vara ett genomgående inslag på hela sidan. Mötesplatsen kommer att utvecklas tillsammans med Johan Eklöf och Victor Nordstrand, som i första hand står för design och databasdelen, medan vi programmerar och utvecklar alla bakomliggande funktioner. 1.3 Frågeställningar Vilka funktioner är relevanta för mötesplatsen? Finns det någon/några nya bra funktioner som ingen annan mötesplats tillhandahåller? Vilken databas är mest lämplig att köra? Vilket språk är mest lämpligt att använda av VB.NET och C#.NET? 4

1.4 Avgränsningar Mötesplatsen skall avgränsas till dom mest grundläggande och relevanta funktionerna en bra mötesplats ska tillhandahålla, dessa kan exempelvis vara gästbok, meddelanden, vänlista, blogg och presentation. Förutom dessa vanliga funktioner ska även någon form av rese-tema-funktion appliceras, vilket förhoppningsvis kommer att resultera i mer besökare och en bredare målgrupp. Det viktigaste inom den sektionen är ett öppet forum där man ska kunna diskutera sina reseupplevelser, dela med sig av foton, samt betygsätta hotell och resmål. 5

2. Bakgrund 2.1 Microsoft.NET.NET är en rad olika program som sammankopplar information och system..net baseras och kopplas oftast samman med webbtjänster. För att utveckla och köra.net applikationer behöver man den standardiserade plattformen.net framework, vilket i stora drag kompilerar den kod man skriver. Kärnan i Dotnet Framework är Common Language Runtime (CLR). CLR används för att köra programmen och hanterar bland annat kodsäkerhet och profilering. CLI (Common Language Infrastructure) är den standard som.net Framework resulterar i. CLI används främst för att program ska kunna köras i olika miljöer utan att behöva skrivas om. CSL (Common language Spesification) är den standard som alla språk ska uppfylla för att kunna köras i.net Framework. Nedan finns en lista över språk som stöds för.net. C# C++ VB.NET (Visual Basic.NET) J# Till.NET-delen tillhör också Microsoft Visual Studio.net, vilket är en avancerad programutvecklingsmiljö från Microsoft. Det finns också en mängd olika programutvecklingsmiljöer för hemmabruk som inriktar sig på vart och ett av språken. Dessa program är gratis, men följs upp av en express-version som innehåller en mer avancerad utvecklingsmiljö och som inte är gratis. Microsoft tenderar nu på att satsa mer och mer på.net, vilket man framförallt kan se i nya Windows Vista där man kan utvidga exempelvis Office-paketet med.net. Fler och fler företag har fått upp ögonen för.net, som bara för ett par år sedan inte var särskilt populärt bland företag inom systemutveckling, då branschen hägrades av Java..NET är tänkt som en konkurrent till Java och man kan se att Microsoft har hämtat många idéer från Sun eller föregångaren Component Object Model. En viktig fråga att ställa sig är givetvis, på vilket sätt skiljer sig dessa på? Vad har.net för intressant att erbjuda i jämförelse mot konkurrenten Java? Värt att notera är att.net är plattformsberoende och utvecklat av Microsoft, vilket resulterar i att.net Framework inte går att köras på ett Linux system. Detta är fördel för Sun, då Java är plattformsoberoende. 6

2.1.1 ASP.NET ASP.NET är utvecklat av Microsoft och baserat på.net ramverket. Det används precis som det låter i samband med.net. Fördelen med ASP.NET gentemot andra tekniker är att det är komponent- och händelsebaserat, samt att det bygger på programspråk istället för enklare scriptspråk som andra konkurrerande tekniker använder. För att utveckla ASP.NET-applikationer kan man använda sig av C#.NET, VB.NET, eller J#.NET som programspråk. 2.1.2 VB.NET VB.NET eller Visual Basic.NET som det egentligen heter är ett programspråk som är baserat på Visual Basic. VB har utvecklats massor och har under senare år blivit mer och mer kraftfullt, mycket på grund av VB.NET som kan beskrivas som en evolutionär utveckling från Visual Basic version 6.0. 2.2 MySQL MySQL skapades av det Svenska företaget MySQL AB. Det är ett relationsdatabassystem som bygger på frågespråket SQL. Under årens lopp har MySQL vuxit och blivit en av de mest använda databashanterarna I början var det mest använt i Linuxmiljöer, men det finns dock numera till de flesta plattformarna, och det är också mycket vanligt i windowsmiljöer. De flesta stora programmeringsspråken har biblioteket för att kunna använda MySQL. Det bör tilläggas att MySQL är gratis att använda för såväl privat som kommersiellt bruk. 2.3 SQL SQL är ett standardiserar språk för att ställa frågor och modifiera relationsdatabaser. Det utvecklades av forskare i USA på 1970-talet, och 1979 kom den första riktiga kommersiella versionen av SQL, som släpptes av Oracle. Under samma period släppte IBM också sin version, och det fick en enorm genomslagskraft. 2.4 AJAX AJAX står för asynkrona JavaScripts och XML, och är en relativt ny teknik (som bygger på gamla metoder) som fått en stor genomslagskraft på Internet på senare år, inte minst på Google 7

där de byggt sina tjänster i det. Det bygger på JavaScripts och XML. För att förklara kort om hur det fungerar så är det JavaScripts och http requests som arbetar tillsammans. Det innebär att man kan koppla ihop JavaScripts och serveranrop i ASP.NET och på så sätt få det att ske dynamiskt. 3 Förutsättningar och krav 3.1 Förutsättningar Mötesplatsen ska köras på IIS 5.0 och senare versioner, vilket den webbserver som används under utvecklingsprocessen även har. Mötesplatsen ska kunna kopplas samman med en MySql databas. Under utvecklingsfasen finns databasen i kopior på de lokala utvecklingsdatorerna. De ändringar som kan tillkomma vid lansering, ska kunna ändras från formulär som ligger på webben. Dessa formulär är endast tillgängliga för administratörerna. Ytterst få ändringar kan komma att ändras genom den färdigutvecklade databasen, såsom nya tabeller eller kolumner. 3.2 Krav på funktion De viktigaste funktionerna mötesplatsen ska tillhandahålla är gästbok, privata meddelanden, blogg, presentation, fotoalbum och egna listor, samt att kunna se sina vänner och besökare. Utöver dessa funktioner, finns det en del nöjes- och resefunktioner. Det kan exempelvis vara att se olika nöjesevents för sommaren, eller att skapa och gå med i olika reseklubbar. Observera att alla funktioner gäller för alla användare, vilket betyder att alla användare har tillgång till lika många funktioner på mötesplatsen och att någon form av VIP-medlem med extra funktioner inte finns tillgängligt i dagsläget. 3.3 Krav på säkerhet Eftersom mötesplatsen nås via Internet är säkerheten a och o. Varje användare har sin unika identitet. För att säkerställa identiteten måste någon form av inloggning finnas, där användarens smeknamn och lösenord matas in. Kraven på lösenordet är att det inte får synas i klartext vid inmatning och det ska vara sex tecken långt. För att skydda mötesplatsen mot så 8

kallade sql-injections (lura databasen med SQL-frågor i inmatningsfält för att få ut information) har.net ett inbyggt skydd som ska förhindra denna typ av hot. Sammanfattningsvis, är det viktigast att användaren har sin unika identitet eftersom mycket bygger på den och sessionen som skapas vid inloggning. 4. Beskrivning av konstruktionslösning 4.1 Val av teknologi 4.1.1 ASP.NET Det kändes som ett självklart val att börja med ASP.NET då det fanns en viss erfarenhet av systemutveckling i ASP, och delvis PHP. Vi valde ASP.NET för sina kraftfulla inbyggda kontroller och funktioner som både passar bra för systemutveckling och webbutveckling..net är ett ramverk för utveckling i olika miljöer som ASP.NET, C#, VB.NET och så vidare. I det här projektet har vi varit konsekventa med att programmera i VB.NET, av den anledningen att det kändes som en bra övergång ifrån traditionella ASP där man i stor utsträckning använder sig av VB Scripts. 4.1.2 JavaScript Då ASP.NET är ett serverbaserat språk som uteslutande använder servern för att exekvera kod, saknar man ibland funktioner som klientbaserade språk erbjuder. Det är i de fall då man vill ha dynamiskt innehåll på sin sida, som uppdateras direkt på klienten som JavaScript är ett bra alternativ. Visserligen har ASP.NET en del inbyggda valideringsfunktioner som är klientbaserade, men de bygger i grunden på JavaScript. De ställen där rörligt innehåll finns (utan att använda flash), samt dynamiska objekt som uppdaterar sig själv utan postbacks, det vill säga utan att man behöver ladda om sidan och ha kontakt med servern använder JavaScript. Det är ett språk som funnits ute på Internet i många år, men används i minst lika stor utsträckning nu. 4.1.3 MySQL MySQL valdes, framför MS SQL främst av den anledningen att det är gratis. Inga licenser behövs och det är tillräckligt kraftfullt för vårt ändamål. 9

4.1.4 IIS IIS var ett självklart val då vi genomgående arbetar i Windows miljö, och med.net ramverket. IIS verkar vara stabilt, snabbt och framförallt, har det stöd för ASP.NET 2.0 som är det som används i projektet. 4.1.5 AJAX Vi använder oss av ett tillägg till.net i form av en AJAX Container. Det innebär att ASP.NET-kontrollerna inuti den kan uppdateras dynamiskt utan att sidan behöver postas, vilket gör gränssnitten smidigare och snyggare. 4.2 Säkerhet Säkerhet är alltid en viktig faktor att ha i åtanke då man arbetar med sidor på Internet, och webbutveckling överhuvudtaget. I detta projekt är det användarnas säkerhet som står i fokus. 4.2.1 Lösenord Användarnas lösenord ska vara minst 6 tecken långt. Detta är givetvis för att ingen annan ska kunna lista ut det så enkelt. Sen är det upp till användaren vilken typ av lösenord den vill ha. Vi kan bara uppmana användaren att välja ett säkert lösenord, som helst ska innehålla både siffror och tecken. 4.2.2 Session Då man loggar in blir man tilldelad en unik session, ett slumptal som tilldelas av ASP.NET objektet. Sessionen har en timeout på 30 minuter vilket innebär att man blir utloggad automatiskt av 30 minuters inaktivitet. 30 minuter valdes på grund av att vi tycker det är en rimlig tid för detta ändamål. Har man inte uppdaterat sidan på 30 min finns det ingen anledning att vara inloggat längre. Varje enskild sida har en check som kontrollerar så att användaren är inloggad och har en session tilldelad till sitt användarnamn, och att inte sessionstiden har gått ut. 10

4.3 Funktionsbeskrivning Nedan finns en beskrivning av de olika typer av funktioner som finns. 4.3.1 Lägga till information i databasen Dessa funktioner lägger till data i databasen, som nya gästboksinlägg, nya besökare eller nya användare. Informationen hämtas ifrån formulär, adressfält, eller andra funktioner. 4.3.2 Hämta enskilda parametrar ifrån databasen De här funktionerna hämtar endast ett värde ur databasen, som ett användarnamn, ett användarid eller ett heltal. 4.3.3 Hämta listor av information ur databasen I dessa funktioner hämtas mer information, som alla gästboksinlägg till en specifik användare, alla drinkar, foton och så vidare Det returneras till ett dataset som sedan skrivs ut på de olika webbformulärsidorna. 4.3.4 Uppdatera information ur databasen Uppdaterar och ändrar befintlig information i databasen. T.ex. ändra inställningar för användare, uppdatera antal besökare och så vidare. 4.3.4 Ta bort Radera poster i databasen. 4.3.5 Funktioner för att beräkna ålder Användaren får mata in sitt personnummer då denne registrerar sig, och den här funktionen beräknar dess ålder baserat på det, en beräkning utifrån dagens datum i jämförelse med födelseåret. 4.3.6 Substring-funktioner Delar upp strängar i mindre bitar och returnerar. På vissa ställen vill vi inte lista ut datum och tid som det ser ut i databasen. 4.3.7 Javascript JavaScripts användes för att till exempel beräkna antal tecken i inmatningsrutor, inaktivera kontroller, samt få saker att hända dynamiskt på sidan. Vi har också gjort en timer för gästboken och klotterplanket med JavaScripts, för att förhindra spam. 11

5. Implementering och problem 5.1 Implementering av webbapplikation Alla aspx-filer, även kallade webbformulär ligger i separata mappar; pres,nöje,resor och så vidare. Klassfilerna som innehåller alla funktioner ligger i en speciell mapp, som är avsedd för det, App-Code. När man skapar en applikation i IIS kan webbformulären ärva alla funktioner i klasserna. Våra klasser är noje, resor, pres och community. Den sistnämnda innehåller generella funktioner som återkommer på hela mötesplatsen. Därför ärver alla andra klasser av den, vilket innebär att om ett webbformulär ärver resor, så ärver den i sin tur alla funktioner ifrån klassen community automatiskt. Vidare har vi försökt döpa funktionernas namn på ett vettigt och logiskt sätt, alla funktioner för att lägga till i databasen börjar på add, och så har vi list- och get-funktioner för att hämta data ur databasen. Delete och update för att ta bort respektive uppdatera information i databasen. 5.2 Problem 5.2.1 MySQL och ASP.NET Ett problem var att hitta ett lämpligt sätt att koppla upp sig emot MySQL servern. Det finns olika sätt att göra det på, med olika drivrutiner, som ODBC och SQL, men den bästa lösningen var att ladda ner en MySQL-drivrutin som också används på många webhotell, vilket löste problemet. 5.2.2 Session Det här problemet har varit genomgående under hela utvecklingstiden då mötesplatsen har testats lokalt på våra laptops. När vi sedan laddade upp och testade på den dedikerade servern var det inte längre något problem. 5.2.3 Teckenuppsättning. Det fanns länge ett problem med teckenuppsättningen då information hämtas från databasen. Det var problem med å,ä,ö trots att rätt teckenuppsättning inställd i såväl MySQL-servern som ASP.NET. Problemet var att data matades in i databasen med Windows kommandotolk. Efter att ha läst på en del forum upptäckte vi att det var fler som hade samma problem, så egna formulär användes i fortsättningen för inmatning, eller MySQL query browser, som är ett tillägg till MySQL-servern. 12

5.3 Val av utvecklingsmiljö För att utveckla applikationer i.net finns det en rad olika program man kan använda sig av. Denna mötesplasts utvecklades med programmet Visual Web Developer 2005 Express Edition från Microsoft. Detta program ingår i Microsoft Visual Studio och är gratis att ladda ner, dock måste du registrera dig efter 30 dagar, men expressversionen är fortfarande gratis. Visual Web Developer är ett väldigt kraftfullt verktyg att utveckla.net-applikationer med. När man skapar en ny fil, får man välja mellan en rad olika format, stylesheets,.net, html, webservices mm. Man får även välja vilket.net-språk man vill utveckla applikationen med, därefter anpassas programmet efter det valda språket. Sidorna kan skapas med ett grafiskt gränssnitt, eller genom att skriva koden manuellt. Det som gör programmet så kraftfullt är delvis att ord med en viss betydelse visas i speciella färger och att metoder och egenskaper för objekt visas automatiskt i en rullmeny när objektnamnet anges, dessa egenskaper och ord kan man även tabba fram, vilket gör att man ibland spar mycket tid. En annan bra funktion i Visual Web Developer är att klassuppdelningen sker på ett smidigt sätt. När man arbetar med klasserna kan man få upp alla funktioner i en rullgardinsmeny högst upp, vilket gör att navigeringen mellan de olika klasserna sker mycket smidigt. Denna funktion är ytterst viktigt för utvecklaren när applikationen i fråga har 100-tals funktioner i en klass. Här är ett exempel på hur det kan se ut när man arbetar med Visual Web Developer. Figur 1. Arbetsmiljön i Viusal Web Developer 2005 13

6. Diskussion Att hålla kontakten med vänner och bekanta, att skriva en blog om en speciell händelse, att kolla om just jag är med på någon av vimmelbilderna från helgens rabalder, att göra allt detta på Internet, på en enda stor mötesplats är något som många ungdomar uppskattar. I och med att Internet finns att tillgå nästan överallt idag, har så kallade mötesplatser på Internet blivit väldigt populära bland ungdomar. Sveriges största mötesplats Lunarstorm har hela 1,2 miljoner registrerade användare och når ut till ofantligt många ungdomar i Sverige. Ja, mötesplatser i all ära, men blir det aldrig för många utav dem? Ett av målen med detta arbete var att samla de populäraste funktionerna från andra mötesplatser till en, samt att fokusera på sommar- och restema, just för att skapa en mötesplats som sticker ut lite mot de andra som finns på webben idag. Så länge det finns hög efterfrågan och nya idéer spelar inte antalet så stor roll. Det viktigaste är att det ska finnas ett stort utbud och många valmöjligheter, beslutet att registrera sig ligger ju trotts allt hos besökaren. 6.1 Diskussion kring lösning Innan arbetet påbörjades hade vi en diskussion kring vilket språk som skulle vara vettigast att lära sig inför framtiden. PHP är ett språk som är plattformsoberoende, vilket är en fördel, men när det gäller kraftfullhet och mångsidighet kändes det lite tamt. ASP är ett relativt enkelt språk att lära sig, men det används inte så mycket i arbetslivet idag och är inte lika kraftfullt som exempelvis Java och.net. Därför kändes det som att ASP.NET låg närmast till hands. Både PHP och ASP skulle kunna lämpa sig lika bra för detta ändamål, men frågan är vilket språk man har mest användning av att kunna om man blickar framåt några år? Struktur är betydelsefullt vid all slags applikationsutvecklande. Viktigast är det när man utvecklar en applikation med många funktioner och klasser. I ASP.NET delar man upp funktioner i olika klasser för att sedan kalla på dem i HTML-koden. Detta gör att det är lätt att hålla en bra struktur så länge man döper funktionerna till förståndiga namn. Även det gör att ASP.NET känns mer användarvänligt och användbart än konkurrerande tekniker. Nackdelen är att det endast går att utveckla på en Windows-plattform eftersom ramverket är plattformsberoende till Windows. Detta leder också till att IIS är 14

ett måste istället för exempelvis andra webbservrar som Apache och liknande. MySQL valdes som databaskälla för detta ändamål. Microsoft Access kanske skulle kännas som ett mer naturligt val, eftersom både.net och Access lutar sig mot Microsoft, men för att få tillgång till Access behövs Microsoft Office, vilket är licensbaserat och inte gratis. MySQL är däremot gratis, vilket passade oss bra även om Access känns mer användarvänligt vid exempelvis inmatning av data. I MySQL dras inga relationer som det görs i Access, utan detta får man göra direkt i SQL-satsen, i de olika funktionerna. Detta kan kännas som en nackdel, dock ångrar vi inte att vi använde oss av MySQL som databas. Det som kan tyckas vara en nackdel omvänds till en fördel i kunskapen om relationsdatabaser eftersom man lär sig mycket mer om tänkesättet angående primär- och extärnnycklar genom detta sätt att skapa relationer. Så här i efterhand känns det som att valen vi gjorde kring lösningen inte var några dumma val. Att fokusera på framtiden och framtidens marknad är idag högst betydelsefullt på grund av den hårda konkurrensen. Att de på förhand enkla lösningarna inte alltid är de bästa ser man prov på såhär i efterhand. 6.2 Diskussion kring genomförande Under hela utvecklingsperioden har det varit till stor hjälp att använda sig av ett verktyg som Visual Web Developer. Alla föregående projekt inom programmering har kodats med hjälp av en vanlig texteditor som exempelvis Notepad. Det är först nu man märker hur pass mycket det underlättar med en avancerad texteditor för det specifika programmeringsspråket. Bara en automatiseringsfunktion som gör att man kan tabba fram objektnamn och liknande, eller att vissa nyckelord står med en specifik färg underlättar arbetet avsevärt. Värt att notera är att programmet i sin helhet har mycket mer att erbjuda än det vi har tagit del av. Det skulle ha varit bra att lära sig programmet mer grundligt från början, vilket säkert skulle ha underlättat arbetet mer. Dock fanns det ingen tid för detta då vi knappt hann programmera och strukturera upp alla funktioner inom den planerade tidsramen. Vissa större delar som presentation och resor har vi kodat tillsammans, medan mindre delar som krönikor, nöjesevents och bloggar har vi kunnat göra var och en för sig. Dock har vi även vid enskilt arbete ofta suttit tillsammans och diskuterat om vad som kan förbättras och förändras. 15

Strukturen som vi var inne på tidigare har inte varit optimalt genomgående i projektet. Detta beror dels på att vi från början inte visste ASP.NETs styrkor och kraftfullhet. Dessutom har en del nya funktioner uppkommit då applikationens funktionalitet har ändrats. Detta har kunnat undvikas med bättre planering från början, vilket är lättare sagt än gjort vid ett första försök att göra en webbaserad mötesplats. 6.3 Förslag på förbättringar Under arbetets gång kommit hela tiden kommit på förbättringar, och förändringar som kan göras. Vissa saker har vi ändrat på och vissa saker har vi skjutit på till framtiden. Det finns en del normer kring programmering som man bör använda sig av. Man bör till exempel ha i åtanke att om man kan, spara på kod, och återanvända kod. Rent konkret så borde vi tex. ha gjort en global funktion för databaskopplingar, vilket vi med all säkerhet kommer ändra på så småningom. Globala variabler är en annan sak. Vissa variabler deklarerar vi i så många funktioner att det vore bättre att använda sig av publika variabler som gäller för hela klassen. Vi har funderat lite kring funktioner som tar emot värden och behandlar. I de flesta fall hämtar dessa funktioner värden ifrån adressfält eller formulär. I några enstaka fall skickar vi själv med värden in i funktionerna, som då är skrivna för att ta emot en sträng eller ett heltal till exempel. Det kanske inte bör nämnas, båda sätten fungerar bra, och i vissa fall vill man lösa det på det ena eller andra sättet. Det finns en fil som heter web.config, som ligger i projektmappen, eller mappen för applikationen om man har en sådan. I denna fil kan man ange inställningar som gäller för hela projektet. Vi har inte satt oss in i alla möjliga inställningar man kan ha för den filen, men vi använder den delvis. Dels för att ställa in utgående mailserver för glömt lösenord sidan. Dels för att ställa in teckenuppsättningen för hela projektet, samt en inställning som talar om för ASP.NET att ladda alla drivrutiner i /bin mappen, där drivrutiner för MySQL och AJAX är placerade. I dagsläget finns inga kommentarer i koden, vilket gör det ganska svårt för andra att förstå alla funktioner. 16

7. Slutsats Vilka funktioner är relevanta för mötesplatsen? Till användarens personliga profil finns gästbok, privata meddelanden, blogg, fotoalbum, personliga topplistor, besökare, vänlista och en personlig presentation. Dessa funktioner är relevanta för att överhuvudtaget åstadkomma en mötesplats. Finns det någon/några nya bra funktioner som ingen annan mötesplats tillhandahåller? När man ser till de befintliga mötesplatser som finns på Internet, som inriktar sig på blandade funktioner och inte bara ett tema så har vi några funktioner som ingen annan tillhandahåller. Vår resedel gör det möjligt för medlemmar på mötesplatsen att lägga upp information om sina resor, foton, bloggar och så vidare. Vi har en komplett lista över nöjesevents, drinklista och rent designmässigt så är våra funktioner sammanknutna på ett bättre sätt än vad andra mötesplatser har. Vilken databas är mest lämplig att köra? En relationsdatabas, och i det här fallet MySQL som är både snabb och stabil samtidigt som det är gratis. Vilket språk är mest lämpligt att använda av VB.NET och C#.NET? Det är egentligen en smaksak. Både VB.NET och C#.NET har sina fördelar respektive nackdelar. VB är dock en bra övergång ifrån traditionell ASP och VBScripts. 17

8. Källförteckning Payne, C. (2003). SAMS Teach Yourself ASP.NET 2.0 2nd edt in 21 days, SAMS Forta, B. (2004). SQL Rakt på sak inget krångel, Pagina Internet. http://sv.wikipedia.org. (2007-05-29). ASP.NET,.NET, SQL, MySQL Internet. http://www.w3schools.com. (2007-05-29). W3 Schools ASP.NET, SQL. Javascript Internet. http://www.mysql.com. (2007-05-29). SQL Syntax Internet. http://www.gotdotnet.com. (2007-05-29). Gridview examples 18

9 Bilagor 9.1 Relationstabell 1. Presentation 19

9.2 Relationstabell 2. Övriga 20