ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΗΣ Windows 8 store «MΗΧΑΝΗ ΤΟΥ ΧΡΟΝΟΥ»



Σχετικά έγγραφα
TEC410 Ανάπτυξη Δικτυακών Τόπων (Δ εξάμηνο)

Κεφάλαιο 2.3: Ρυθμίσεις των Windows

Σχεδιάζοντας Εφαρμογές για το Διαδίκτυο

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010

Εισαγωγή 6. Tα πολλά πρόσωπα των απειλών για το PC 8. Οι βασικές ρυθμίσεις ασφαλείας στα Windows 18. Προστασία από το Malware με το Avast Antivirus 34

ΤΕΙ ΚΑΒΑΛΑΣ. Πτυχιακή εργασία ΕΙΣΑΓΩΓΗ. Μιλτιάδης Κακλαμάνης

EBSCOhost Research Databases

Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα;

Ερωτήσεις- Απαντήσεις Πολυμέσα Απο το Βιβλίο Εφαρμογές Η/Υ Α,Β,Γ Λυκείου

Περιεχόμενα. Μέρος 1: Βασικές έννοιες της πληροφορικής Πρόλογος... 11

12/5/18. συστημάτων. Το λογισµικό συστηµάτων. Κεφάλαιο 5

Πως θα κατασκευάσω το πρώτο πρόγραμμα;

F-Secure Anti-Virus for Mac 2015

Ο Οδηγός γρήγορης εκκίνησης

Ενημέρωση σε Windows 8.1 από τα Windows 8

Π Τ Υ Χ Ι Α Κ Η Ε Ρ Γ Α Σ Ι Α

Κεφάλαιο 1: Έναρξη...3

A3.3 Γραφικά Περιβάλλοντα Επικοινωνίας και Διαχείριση Παραθύρων

Σχεδιάζοντας Εφαρμογές για το Διαδίκτυο

Πρόλογος... 7 ΕΙΔΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ

Εισαγωγή στην εφαρμογή Βασική Σελίδα (Activity) Αναζήτηση Πελάτη... 6 Προβολή Πελάτη... 7 Επεξεργασία Πελάτη... 10

Μέρος 3 ο : Βασικές Έννοιες για δυναμικές ιστοσελίδες

Με την ολοκλήρωση της διαδικασίας μπορούμε αν θέλουμε να επιλέξουμε να ανοίξει ή όχι η εφαρμογή που έχει εγκατασταθεί.

Περιεχόμενα. Μέρος 1: Βασικές έννοιες Πληροφορικής και επικοινωνιών Μέρος 2: Χρήση υπολογιστή και διαχείριση αρχείων Πρόλογος...

Διαχείριση Επιλογών Διαμόρφωσης

Microsoft Excel Κεφάλαιο 1. Εισαγωγή. Βιβλίο εργασίας

Περιεχόμενα. Αντί προλόγου Πώς να χρησιμοποιήσετε το βιβλίο Κεφάλαιο 1: Πώς δημιουργώ το Προφίλ μου στο Facebook;...

Κεφάλαιο 1.6: Συσκευές αποθήκευσης

Interactive Power Point

Οδηγός αναβάθμισης των Windows 8 βήμα προς βήμα ΕΜΠΙΣΤΕΥΤ ΚΟ 1/53

Ημερομηνία Παράδοσης: 4/4/2013

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010

Δραστηριότητα 3: Ρυθμίσεις Oικιακής Ομάδας Τοπικού Δικτύου Η/Υ σε WINDOWS 7 & 8

ΕΓΧΕΙΡΙΔΙΟ ΟΔΗΓΙΩΝ ΧΡΗΣΤΗ. Ηλεκτρονική Υποβολή Α.Π.Δ.

Μαλούτα Θεανώ Σελίδα 1

Εργαστηριακή εισήγηση. «Ψηφιακή τάξη και Linux Ubuntu: ξεκίνημα, χρήση, τεκμηρίωση, πλεονεκτήματα»

6 Εισαγωγή στο Wordpress 3.x


Αντικειμενοστρεφής Προγραμματισμός

Τι είναι ένα σύστημα διαχείρισης περιεχομένου; δυναμικό περιεχόμενο

Οδηγός των Ελληνικών Microsoft WINDOWS 7

ΥΠΗΡΕΣΙΕΣ ΔΙΑΔΙΚΤΟΥ Explorer & Outlook 2013

Εργαλεία ανάπτυξης εφαρμογών internet Ι

APP INVENTOR ΟΔΗΓΟΣ 8 Οκτωβρίου 2018

Εφαρμογές Υπολογιστών. Κεφάλαιο 4 Λογισμικό Συστήματος

ΟΔΗΓΟΣ ΧΡΗΣΗΣ(ΜΑΝUΑL) ΔΙΑΧΕΙΡΙΣΤΗ-ΧΡΗΣΤΗ.

Εγκατάσταση της έκδοσης 5.30

Ανάπτυξη πλήρους διαδικτυακής e-commerce εφαρμογής με χρήση του CMS WordPress

Ελέγξτε την ταινία σας

Π Ε Ρ Ι Ε Χ Ο Μ Ε Ν Α

ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΑ ΕΡΓΑΛΕΙΑ ΓΙΑ ΤΟ ΔΙΑΔΙΚΤΥΟ

MANAGER SIDE BAR. Μία άλλη λειτουργία είναι το ξυπνητήρι. Μπορείτε να ορίσετε τον χρόνο υπενθύμισης. Μετά την λήξη του χρόνου θα ειδοποιηθείτε ηχητικά

ΥΠΟΧΡΕΩΤΙΚΕΣ ΓΝΩΣΕΙΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΕΡΟΣ ΙΙ

Σημείωση για το προϊόν

7.Α.1 Παρουσιάσεις. 7.Α.2 Περιγραφή περιεχομένων της εφαρμογής

Η εφαρμογή είναι βελτιστοποιημένη για όλες τις συσκευές ios και Android, με ios 9.x ή νεότερη έκδοση και Android 4.4 ή νεότερη έκδοση.

Βιωματικό εργαστήριο ηλεκτρονικών υπολογιστών. Οργάνωση εκπαιδευτικού υλικού με Η/Υ από δραστηριότητες στο Δημοτικό και στο Νηπιαγωγείο.

Ει ναι τα Windows που γνωρι ζετε, αλλα καλυ τερα

MICROBOT SERVER MICROBOT MONITOR ΕΦΑΡΜΟΓΕΣ ΕΛΕΓΧΟΥ ΚΑΙ ΠΑΡΑΚΟΛΟΥΘΗΣΗΣ ΓΙΑ ΣΥΣΤΗΜΑΤΑ MICROBOT

Οδηγός γρήγορης εκκίνησης του PowerSuite

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών

Λογισμικό - Προγράμματα

Περιεχόμενα. Λίγα λόγια από το συγγραφέα... 7

Απαντήστε στις παρακάτω ερωτήσεις πολλαπλής επιλογής (μόνο μία ερώτηση είναι σωστή):

To περιβάλλον Ανάπτυξης εφαρμογών της Visual Basic 2008 Express Edition

10 Νέα χαρακτηριστικά του Facebook που (πιθανόν) δεν γνωρίζεις

Copyright 2017 HP Development Company, L.P.

ΟΔΗΓΙΕΣ ΓΙΑ ΤΗΝ ΥΠΗΡΕΣΙΑ OTE TV GO ΣΕ ΥΠΟΛΟΓΙΣΤΗ (PC/LAPTOP)

Γεωργάκης Αριστείδης ΠΕ20

Ενσωματωμένα controls τα οποία προσαρμόζονται και χρησιμοποιούνται σε οποιαδήποτε ιστοσελίδα επιλέγει ο φορέας.

ANDROID Προγραμματισμός Εφαρμογών


Οδηγός αναβάθμισης των Windows 8 βήμα προς βήμα ΕΜΠΙΣΤΕΥΤΙΚΟ 1/53

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών

Γ3.3.Μ7 ΕΠΑΝΆΛΗΨΗ ΜΈΡΟΣ Α: ΈΝΝΟΙΕΣ ΤΙ ΕΊΝΑΙ Η VISUAL BASIC ΤΙ ΜΠΟΡΟΎΜΕ ΝΑ ΚΆΝΟΥΜΕ ΜΕ ΤΗ VISUAL BASIC ΑΝΤΙΚΕΊΜΕΝΑ: ΦΌΡΜΑ ΚΑΙ ΧΕΙΡΙΣΤΉΡΙΑ ΕΤΙΚΈΤΑ LABEL

Εισαγωγη στην html. Η δομή μιας ιστοσελίδας (αρχείο html) Η βασική δομή ενός αρχείου html είναι η εξής: <html> <head>

ΕΓΧΕΙΡΙΔΙΟ ΜΑΘΗΤΗ. της Πλατφόρμας Τηλεκατάρτισης

Ενότητα 1η. Εισαγωγή στην Πληροφορική

Μάθημα 4ο. Προγράμματα

Περιεχόμενα. Κεφάλαιο 1 Εισαγωγή στην Access...9. Κεφάλαιο 2 Χειρισμός πινάκων... 25

Κοινή χρήση πόρων με τα Windows XP

Συσκευές κατάδειξης και πληκτρολόγιο Οδηγός χρήσης

ΟΔΗΓΟΣ ΧΡΗΣΗΣ ΛΟΓΙΣΜΙΚΩΝ ΣΥΣΤΗΜΑΤΟΣ 2015

Windows 8 2_windows8.indd 39 10/5/2014 2:10:10 μμ 10/5/2014 2:10:10

Δημιουργώντας μια εφαρμογή ζωγραφικής. 2 η Εργασία

POWERPOINT Είναι το δημοφιλέστερο πρόγραμμα παρουσιάσεων.

Τεχνικά χαρακτηριστικά του προγράμματος DS-Video Club

Εισαγωγή 6. Είσοδος στα Windows και οθόνη κλειδώματος 11. Οι πρώτες ρυθμίσεις των Windows H επιφάνεια εργασίας 49

Τεχνικός Εφαρμογών Πληροφορικής

ΕΓΧΕΙΡΙ ΙΟ ΡΥΘΜΙΣΕΩΝ ΓΙΑ ΤΗΝ ΠΡΟΣΒΑΣΗ ΣΕ ΗΛΕΚΤΡΟΝΙΚΟΥΣ ΠΟΡΟΥΣ ΙΚΤΥΟ ΒΙΒΛΙΟΘΗΚΩΝ ΤΟΥ ΙΝΣΤΙΤΟΥΤΟΥ ΘΕΡΒΑΝΤΕΣ

Άνοιγμα (και κλείσιμο) της εφαρμογής Εγγράφου Κειμένου

Βοηθητικό πρόγραµµα Setup

Εγχειρίδιο Χρήσης Φορέα Πιστοποίησης

ΕΙΣΑΓΩΓΗ ΣΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ Microsoft WINDOWS (95-98-NT-2000-XP)

Εργασία-3: Παρουσίαση Εργασίας. Ομάδα Α. Προετοιμασία Αναφοράς

ΟΔΗΓΙΕΣ ΓΙΑ ΤΗΝ ΥΠΗΡΕΣΙΑ COSMOTE TV GO ΣΕ ΥΠΟΛΟΓΙΣΤΗ (PC/LAPTOP)

Copyright 2016 HP Development Company, L.P.

Μια εισαγωγή στο Linux με την διανομή Fedora. Βάιος Κολοφωτιάς MSc Informational Systems

Παραδείγματα Δεδομένων: Οι τιμές στο κυλικείο, μια λίστα από ονόματα, τα σήματα της τροχαίας.

Microsoft Office. Δρ. Νικόλαος Σγούρος

Transcript:

ΑΤΕΙ ΘΕΣΣΑΛΙΑΣ Σχολή Τεχνολογικών Εφαρμογών Τμημα Μηχανικών Πληροφορικής ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΗΣ Windows 8 store «MΗΧΑΝΗ ΤΟΥ ΧΡΟΝΟΥ» ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Καραθεοδώρου Αλέξανδρος (ΑΜ: τ01918) Επιβλέπων: Ομηρος Ιατρελης, Καθηγητής εφαρμογών Λαρισα 2015 1

2

«Δηλώνω υπεύθυνα ότι το παρόν κείμενο αποτελεί προϊόν προσωπικής μελέτης και εργασίας και πως όλες οι πηγές που χρησιμοποιήθηκαν για τη συγγραφή της δηλώνονται σαφώς είτε στις παραπομπές είτε στη βιβλιογραφία. Γνωρίζω πως η λογοκλοπή αποτελεί σοβαρότατο παράπτωμα και είμαι ενήμερος για την επέλευση των νομίμως συνεπειών» Καραθεοδώρου Αλέξανδρος 3

Εγκρίθηκε απο την τριμελή εξεταστική επιτροπή Τόπος:... Ημερομηνία:.../.../... ΕΠΙΤΡΟΠΗ ΑΞΙΟΛΟΓΗΣΗΣ 1....... 2....... 3....... Ονοματεπώνυμο Υπογραφή 4

5

ΕΥΧΑΡΙΣΤΙΕΣ Θα ήθελα να ευχαριστήσω την οικογένεια μου και την κοπέλα μου για την μεγάλη υπομονή και κατανόηση που επέδειξαν κατα την διάρκεια εκπόνησης της παρούσας πτυχιακής εργασίας. Η κατανόηση τους με βοήθησε να ολοκληρώσω το έργο μου. Καραθεοδώρου Αλέξανδρος 01/06/2015 6

7

ΠΕΡΙΕΧΟΜΕΝΑ Περίληψη...10 Κεφάλαιο1: Windows 8 11 1.1 Πρώτες εντυπώσεις και χαρακτηριστικά...11 1.2 Ελάχιστες απαιτήσεις...15 1.3 Ασφάλεια...15 1.4 Πλεονεκτήματα...18 Κεφάλαιο 2 : Εργαλέια ανάπτυξης εφαρμογής... 21 2.1 Μicrosoft Visual studio 2013..21 2.2 Microsoft Blend...23 Kεφάλαιο 3: Windows Store..24 Κεφάλαιο 4 : Βασικές γλώσσες προγραματισμού για την υλοποίηση μιας εφαρμογής...26 4.1 ΧAML 26 4.2 C#...27 4.3 C++.28 4.4 Visual Basic 29 4.5 HTML 30 4.6 Javascript..31 Κεφάλαιο 5 : Υλοποίηση εφαρμογής «Μηχανή του Χρόνου»...32 5.1 Σύντομη περιγραφή εφαρμογής...32 5.2 Περιγραφή UI και κώδικα XAML 33 5.3 Περιγραφή εφαρμογής (C#).39 8

Κεφάλαιο 6: Συμπεράσματα...44 Αναφορές και Βιβλιογραφία...45 9

ΠΕΡΙΛΗΨΗ Στόχος της συγκεκριμένης πτυχιακής εργασίας είναι ο σχεδιασμός και η δημιουργία της εφαρμογής «Μηχανή του Χρόνου», για ηλεκτρονικούς υπολογιστές που χρησιμοποιούν την πλατφόρμα της Microsoft, με λειτουργικό σύστημα Windows 8. H εφαρμογή «Μηχανή του Χρόνου», είναι μία ψηφιακή, διαδραστική εγκυκλοπέδια σημαντικών γεγονότων της παγκόσμιας ιστορίας, που έχει σαν στόχο την ενημέρωση του εκάστοτε χρήστη, για τα σημαντικότερα ιστορικά γεγονότα, με κριτήριο την τρέχουσα ημερομηνία, ή οποιαδήποτε ημερομηνία επιθυμεί ο χρήστης. Η συγκεκριμένη εφαρμογή περιλαμβάνει πάνω απο 14000 σημαντικά ιστορικά γεγονότα της παγκόσμιας ιστορίας, εύχρηστο interface για την επιλογή της εκάστοτε ημερομηνίας που αφορά τον χρήστη, καθώς και γρήγορη μετάβαση στα γεγονότα που συνέβησαν την τρέχουσα ημερομηνία. Η εφαρμογή υλοποιείται με την χρήση των εργαλείων ανάπτυξης εφαρμογής Visual Studio 2013 και Microsoft Blend, με C# και XAML. 10

KΕΦΑΛΑΙΟ 1: WINDOWS 8 1.1 Πρώτες εντυπώσεις και χαρακτηριστικά. Τα Windows 8 είναι η τρέχουσα έκδοση του λειτουργικού συτήματος Windows της Microsoft, για επιτραπέζιους ή φορητούς ηλεκτρονικούς υπολογιστές, καθώς και ταμπλέτες (Tablets). Κάθε χρήστης που είναι εξοικειωμένος με παλαιότερες εκδόσεις των Windows γρήγορα θα αντιληφθεί θεμελειώδεις διαφορές. Οι διαφορές αυτές παρατηρούντε τόσο στην φιλοσοφία όσο και στον σχεδιασμό του λειτουργικού συστήματος, και στοχεύουν στην άνοδο σε ένα άλλο επίπεδο τελευταίας τεχνολογίας, φιλοδοξόντας να αλάξουν τον τρόπο που χειρηζόμαστε τις ηλεκτρονικές συσκευές για τα επόμενα χρόνια. Επιπρόσθετα η Microsoft μαζί με τα Windows 8 κυκλοφορεί και τα Windows RT (Windows run time). Η έκδοση αυτή των Windows 8 είναι βελτιστοποιημένη για συσκευές με oθόνη αφής, και εκμεταλεύονται πλήρως την μπαταρία τους και προσφέρουν την καλύτερη δυνατή αυτονομία. Μία απο τις θεμελειώδεις αλλαγές ειναι στην οθόνη έναρξης. Με την έλευση των Windows 8 φεύγει το μενού «έναρξη» και εισάγεται ο νέος προσανατολισμός της οθόνης έναρξης στο νέο στύλ Metro, με νέες εφαρμογές, νέες επιφάνειες διασύνδεσης και πολλά ακόμα χαρακτηριστικά. Η οθόνη έναρξης περιλαμβάνει ομάδες πλακιδίων που αναπαριστούν προγράμματα, παρόμοια με τα εικονίδια της επιφάνειας εργασίας αλλα με ειδικά πλεονεκτήματα. Υπάρχει η δυνατότητα εκτέλεσης ενός προγράμματος με ένα click ή με ένα άγγιγμα σε ένα πλακίδιο. Γενικά, τα πλακίδια είναι πιο μεγάλα και με περισσότερο χρώμα απο τα εικονίδια της επιφάνειας εργασίας. Μερικά πλακίδια ειναι κινούμενα και μπορού να εμφανίζουν τρέχουσες πληροφορίες απευθείας απο την οθόνη έναρξης, ώστε να ενημερώνετε ο χρήστης χωρίς να ανοίγει το λογισμικό. Με τα πλακίδια της νέας οθόνης έναρξης υπάρχει η δυνατότητα εύκολης πρόσβασης σε όλες τις σημαντικές εφαρμογές, ενώ είναι δυνατή η μετακίνηση και ομαδοποίηση ανάλογα με τις ανάγκες του εκάστοτε χρήστη. 11

Τα Windows 8 έχουν προεγκατεστειμένες νέες εφαρμογές, ειδικά σχεδιασμένες για χρήση με την οθόνη έναρξης των Windows8, όπως «Μουσική», «Φωτογραφίες», «Καιρός» και πολλές ακόμη. Πολλές εφαρμογές έχπυν παρόμοια σχεδίαση και κοινά χαρακτηριστικά, ωστε να προσφέρουν μια πιο ενιαία εμπειρία, με κουμπιά επιστροφής, κύληση σε ολόκληρη την σελίδα και παρεμφερή χρήση των εικονιδίων και των κουμπιών. Οι νέες εφαρμογές είναι επίσης σχεδιασμένες για χειρισμό με αφή, για να παραμένουν ανοικτές για γρήγορη πρόσβαση, καθώς και για προβολή σε πλήρη οθόνη. Εικόνα1 : Οθόνη έναρξης Windows 8 12

Μία ακόμη καινοτομία των Windows 8 είναι οι ενεργές γωνίες. H Microsoft έχει προσθέσει μια σειρά απο σύμβολα πλοήγησης αόρατα στο μάτι του χρήστη. Για να εμφανιστούν τα σύμβολα πλοήγησης θα πρέπει να μετακηνιθεί το ποντίκι σε μια απο τις 4 γωνίες της οθόνης, και έχουν σαν στόχο την εύκολη πρόσβαση σε ενέργειες που χρησιμοποιούνται συχνά. Τα σύμβολα είναι πάντα διαθέσιμα είτε απο την οθόνη έναρξης είτε απο την επιφάνεια εργασίας των Windows είτε απο μία εφαρμογή.τα σύμβολα παρέχουν πρόσβαση στις εξής ενέργειες: Αναζήτηση (σε εφαρμογές, ρυθμίσεις, αρχεία, ακόμα και στο διαδύκτιο). Κοινή χρήση (κοινοποίηση φωτογραφιών, μουσικής, συνδέσμων σε άλλους χρήστες ή εφαρμογές) Σύμβολο έναρξης (χρησιμοποιείται για επιστροφή στην οθόνη έναρξης ή στην προηγούμενη οθόνη) Σύμβολο Συσκευών (χρησιμοποιείται για την αναπαραγωγή πολυμέσων σε τηλεοράσεις ή ηχοσυστήματα και στην χρησιμοποίηση περισσοτέρων απο μία οθονών) Σύμβολο ρυθμήσεων (χρησιμοποείται για την εξατομίκευση του υπολογιστή. Εικόνα2: μενού συμβόλων 1.σύμβολο αναζήτησης 2.σύμβολο κοινής χρήσης 3.σύμβολο έναρξης 4.σύμβολο συσκευών 5.σύμβολο ρυθμίσεων 13

Περιλιπτικά μερικά απο τα κυριότερα καινοτόμα στοιχεία των Windows 8 είναι: Νέα βελτιωμένη διαχείρηση εργασιών Το μενού Έναρξη αντικαταστάθηκε απο την οθόνη έναρξης Ο Microsoft Internet Explorer 10 περιλαμβάνεται και ως Metrostyle application 2 νέοι τρόποι προστασίας λογαριασμού : Κωδικός εικόνας και σύνδεση με PIN. Το Windows TO GO επιτρέπει στα Windows 8 να εκκινεί απο μία φορητή συσκευή USB Επίσημη υποστήρηξη οθόνης αφής Δυνατότητα λήψης εφαρμογών μέσω του Windows Store Και πολλά αλλα... 14

1.2 Ελάχιστες απαιτήσεις Μνήμη RAM 1 GB για συστήματα 32bit και 2GB για συστήματα 64 bit. Σκληρός δίσκος 16 GB για συστήματα 32 bit και 20 GB για συστήματα 64 bit. Eπεξεργαστής 1 GHz κάτι που όμως δεν ισχύει σε tablets και netbooks όπου εκεί η ανάγκη εξοικονόμησης ενέργειας είναι μεγάλη. Ανάλυση οθόνης 1024 x 768 εικονοστοιχεία. Κάρτα γραφικών συμβατή με Microsoft DirectX 9. 1.3 Ασφάλεια Η Microsoft προσθέτει και βελτιώνει συνεχώς προηγμένα στοιχεία ασφαλείας και δυνατότητες στο λειτουργικό της σύστημα, κατα την διάρκεια των τελευταίων ετών. Κάθε επανάληψη των Windows, χαρακτηρίζετε απο την βελτίωση της ασφάλειας, πραγμα που είναι απαραίτητο για την αντιμετωπηση των συνεχών επιθέσεων. Secure boot H Microsoft σχεδίασε το Secure boot για να προστατέψει τον υπολογιστή απο επιθέσεις χαμηλού επιπέδου, rootkits και bootloaders. Αποτελεί μια διαδικασία ασφαλείας απο κοινού μεταξύ του λειτουργικού συστήματος και του Unified Extensible Firmware Interface (UEFI, αντικαθιστώντας το BIOS). Το Secure Boot απαιτεί όλες οι εφαρμογές που εκτελούντε κατα την διαδικασία εκκίνησης, να φέρουν εγκυρο 15

προυπογεγραμμένο ψηφιακό πιστοποιητικό. Με αυτόν τον τρόπο το σύστημα γνωρίζει όλα τα αρχεία που φορτώνονται πριν απο τα Windows 8. Aν ενας bootloader έχει μολύνει τον υπολογιστή και προσπαθεί να φορτώσει κατα την διαδικασία εκκίνησης, το Secure Boot θα είναι σε θέση να αναιρέσει όλες τις αλλαγές, και να ματαιώσει την επίθεση. Συμπεραινουμε έτσι οτι με το Secure Boot είναι πολύ πιο δύσκολο για τους επιτιθέμενους, να θέσουν σε κίνδυνο την διαδικασία εκκίνησης. Windows Defender Η Microsoft αποφάσησε να κυκλοφορήσει τα Windows 8 με ενσωματομένο antivirus. Μια πολύ πιο ισχυρή εφαρμογή απο το Microsoft security essentials, το ελεύθερο anti-malware λογισμικό που οι χρήστες μπορούσαν να εγκαταστήσουν με μή αυτόματο τρόπο σε προηγούμενες εκδόσεις. Το Windows Defender είναι ενεργοποιημένο by default, προσφέροντας έτσι στον χρήστη μια μορφή ασφάλειας με την εκκίνηση της μηχανής. Αν και δεν μπορεί να καταργηθεί, μπορεί να απενεργοποιηθεί σε περίπτωση που ο χρήστης θελήσει να εγκαταστήσει ενα διαφορετικό προιόν ασφαλείας απο αλλον προμηθευτή. Ανεξάρτητα απο το αν ο χρήστης χρησιμοποιέι το Windows Defender ή καποιο άλλο anti-malware, τα Windows 8 έχουν τροποποιήσει την διαδικασία φόρτωσής τους ετσι ώστε το λογισμικό ασφάλειας να τρέχει πρώτο, ELAM (Early Launch Anti-Malware). Σε προηγούμενες εκδόσεις, αν το κακόβουλο λογισμικό είχε εκτελέστεί και φορτώθηκε στην μνήμη πριν το λειτουργικό σύστημα ή το antivirus, ήταν δύσκολο να εντοπισθεί και να απομακρυνθεί. Πλέον το Secure Boot αποτρέπει τα rootkits απο τη σύγκρουση με το λειτουργικό σύστημα, και το ELAM διασφαλίζει οτι τα προ-εγκερειμένα anti-malware προγράμματα οδήγησης, φορτώνονται πριν απο οποιαδήποτε άλλη εφαρμογή. 16

SMART SCREEN Η Microsoft πρόσθεσε ένα νέο στοιχείο στα Windows 8, το Smart screen. Όταν ένας χρήστης κατεβάζει ένα αρχείο ή ένα πρόγραμμα απο το Internet, το φίλτρο Smart screen ελέγχει αν άλλοι χρήστες κατεβάσαν το ίδιο αρχείο. Αν ναι, τότε υπάρχει αξιολόγηση για το αρχείο με βάση την δημοτικότητα του, καθώς και αν θεωρήθηκε κακόβουλο. Αν κάποιος χρήστης προσπαθήσει να κατεβάσει ένα αρχείο με χαμηλή βαθμολογία, και εφόσων το Smart screen είναι ενεργοποιημένο, τότε θα εμφανιστεί ένα μύνημα προειδοποίησης. Αυτο βοηθά στον εντοπισμό ψεύτικων antivirus και άλλα rogueware προγράμματα. Αρχικά το Smartscreen ήταν στοιχείο ασφαλείας του Internet Explorel. Εφόσων τωρα αποτελεί μέρος των Windows8, εμφανίζει ειδοποιήσεις ανεξάρτητα του προγράμματος περιήγησης που χρησιμοποιούμε. Όλα τα παραπάνω είναι ένα δείγμα απο τις πιο προφανείς αλλαγές που έχει κάνει η Microsoft για τα Windows8 στο θέμα ασφάλειας. Υπάρχουν πολλες αλλαγές ακόμα κυρίως απαρατήρητες, και ετσι θα επρεπε να είναι ώστε να κρατηθούν οι χρήστες ασφαλείς απο επιθέσεις. 17

1.4 Πλεονεκτήματα. Με την παρουσίαση των Windows8, επιβεβαιώθηκαν οι προσδοκίες οι οποίες έκαναν λόγο για ένα λειτουργικό συστημα,το οποίο είναι ριζικά ανανεωμένο σε σχέση με τους προκατόχους του, και φέρει σημαντικά πλεονεκτήματα. Ένα απο τα πρώτα πλεονεκτήματα που γίνονται αντιληπτά απο τον χρήστη, είναι ο χρόνος εκκίνησης. Ο χρόνος απο την στιγμή που θα πατηθεί το κουμπι Power μέχρι να είναι το λειτουργικο σύστημα σε θέση για πλήρη λειτουργία είναι σαφώς χαμηλότερος απ οτι παλιότερες εκδόσεις των Windows (7,xp,vista). Έχει παρατηρηθεί βελτίωση φόρτωσης του λειτουργικού συστήματος στον ίδιο υπολογιστή έως και 15-20 δευτερόλεπτα. Αυτη η βελτίωση οφείλετε κατα την διαδικασία του Shutdown. Tα Windows 8 αντί να κλείνουν εντελώς ορισμένες χαμηλού επιπέδου διεργασίες (όπως τους drivers των συσκευών), αποθηκεύουν την κατάσταση τους στον δίσκο, ετσι ώστε στην επόμενη εκκίνηση να φορτώνονται «ετοιμοπόλεμα». Αν μάλιστα σε εναν νέο υπολογιστή η motherboard διαθέτει και UEFI αντι για το κλασσικό BIOS τότε η εκκίνηση γίνεται ακόμα γρηγορότερα. Ένα άλλο πλεονέκτημα είναι οτι σε αντίθεση με προηγούμενες εκδόσεις των Windows, όσον αφορά την λειτουργία των προγραμμάτων οδήγησης του διαδικτύου, παρουσιάζονταν μια καθυστέρηση στην ενεργοποίηση τους, σε αντίθεση με τα Windows 8 που το διαδίκτυο είναι διαθέσιμο μόλις ξεκινήσει το σύστημα. Επίσης το Windows explorer έχει αλλάξει σε file explorer, όπου δίνετε άμεση πρόσβαση στον χρήστη σε επιλογές όπως το να βλέπει κρυφά αρχεία χωρίς να μπλέκει με υπομενού και καρτέλες. Άλλη μια σημαντική προσθήκη είναι η δυνατότητα mount αρχείων ISO και VHD χωρίς να χρειαζεται να εκαταστήσουμε επιλέον προγράμματα (daemon tools power iso κλπ). Τέλος οσον αναφορά τα πλεονεκτήματα στην διαχείρηση φακέλων, μία μικρή αλλα σημαντική προσθήκη είναι η επιστροφή του βέλους που μας πάει ενα φάκελο πάνω, το οποίο είχε αφαιρεθέι στα Windows7. Ένα ακόμα χαρακτηριστικό πλεονέκτημα των Windows 8 ειναι το Storage Spaces το οποίο επιτρέπει στον χρήστη, όταν έχει πολλαπλούς σκληρούς δίσκους στο σύστημα, να τους βλέπει σαν ένα μεγάλο. Σημαντικό πλεονέκτημα εντοπίζετε και στην αντιγραφή αρχείων. Το νέο παράθυρο αντιγραφής αρχείων δίνει στα Windows δυνατότητες 18

που μεχρι πρότεινος μπορούσαμε να έχουμε μόνο με την εγκατάσταση ξεχωριστών προγραμμάτων. Πλέον ο χρήστης έχει την δυνατότητα παύσης σε μια διαδικασία αντιγραφής ή μεταφοράς αρχείων, να βλέπει παράλληλα πολλές διαφορετικές εργασίες στο ίδιο παράθυρο, ενώ να αντιμετωπίσει και ευκολότερα τις περιπτώσεις conflict μεταξύ αρχείων (αν π.χ. έχουν το ίδιο όνομα). Eπίσης η Microsoft βελτίωσε και την λειτουργία πολλαπλών οθονών. Ενω αυτη η δυνατότητα υποστηρίζεται απο τα Window XP πρωτη φορά υπάρχει η δυνατότητα ξεχωριστών taskbar και ξεχωριστών wallpaper. Άλλη μια εκπληκτική βελτίωση της Microsoft σε σχέση με παλιότερα λειτουργικά συστήματα είναι το Task Manager. Πλέον μπορούμε να δούμε απο εδώ τα προγράμματα που ξεκινούν με την εκκίνηση του υπολογιστή και να τα απενεργοποιήσουμε κατα βούληση. Χάρη στα διαφορετικά χρώματα, ο χρήστης με μια ματιά μπορεί να διαπιστώσει πιο πρόγραμμα καταναλώνει τους περισσοτερους πόρους του συστήματος. Επίσης αν οτιδήποτε φανεί ύποπτο στον χρήστη, με ένα δεξί click και τη επιλογή search online μπορεί αμέσως να διαπιστώσει αν υπάρχει λόγος ανησυχίας. Τοεπόμενο πλεονέκτημα των Windows8 αφορά τις φορητές 19

συσκευες (laptops, tablets,notebooks). Χάρη σε βελτιώσεις στα έγκατα του κώδικα, τα Windows πλέον καταναλώνουν λιγότερη ενέργεια, με αποτέλεσμα οι συσκευές να έχουν αρκετά περισσότερη αυτονομία. Όπως αναφέρθηκε και παραπάνω η Microsoft εισέιγαγε πολλές καινοτομίες στα θέματα ασφάλειας κανοντας τα Windows8 σημαντικά πιο ασφαλή απο τις προηγούμενες εκδόσεις, όπως το προεγκατεστημένο antivirus windows defender, το secure boot που αποτρέπει rootkits να αναλάβουν τον έλεγχο της διεργασίας start up, η ενσωμάτωση του φίλτρου SmartScreen στο λειτουργικό σύστημα αποτρέπει τους αρχάριους χρήστες από το να κατεβάσουν και να εγκαταστήσουν ανεπιθύμητα malware. Τέλος, βελτιώσεις στο memory allocation και η λειτουργία ASLR (Address Space Layout Randomization κάνουν πιο δύσκολη την εκμετάλλευση τυχών κενών ασφαλείας. Ένα ακόμα πλεονέκτημα που κάνει τα Windows 8 να διαφέρουν απο προηγούμενες εκδόσεις είναι το Refresh και Reset. Ουσιαστικά είναι μία βελτίωση του System Restore, πλέον είναι αρκετά πιο εύκολο και φιλικό για το χρήστη να επαναφέρει το σύστημα του σε μία "καθαρή" κατάσταση, και να αποφύγει πιθανώς το format και την επανεγκατάσταση. Συνοψίζοντας βλέπουμε πως έχουμε μία αρκετά βελτιωμένη έκδοση των Windows που μέσω των καινοτομιών και των δυνατοτήτων εξατομίκευσης προσφέρονται απεριόριστες δυνατότητες στον χρήστη. 20

ΚΕΦΑΛΑΙΟ 2 Εργαλεία ανάπτυξης εφαρμογής 2.1 Μicrosoft Visual Studio 2013 Το Microsoft Visual Studio 2013 είναι ένα ολοκληρωμένο περιβάλλον ανάπτυξης (IDE), το οποίο αναπτύχτηκε από τη Microsoft για να μπορέσει να χρησιμοποιηθεί για την ανάπτυξη προγραμμάτων στα λειτουργικά συστήματα των Windows, αλλά και για τον σχεδιασμό και την ανάπτυξη διαδικτυακών ιστοσελίδων, εφαρμογών και υπηρεσιών διαδικτύου. Το Visual Studio χρησιμοποιεί διάφορες πλατφόρμες ανάπτυξης λογισμικού της Microsoft, όπως το Windows API, γνωστό και ως win32, που αξιοποιείται στην ανάπτυξη εφαρμογών, ώστε να τρέχουν με επιτυχία σε όλες τις εκδόσεις των Windows. Το Visual Studio περιλαμβάνει ένα πρόγραμμα εντοπισμού σφαλμάτων το ονομαζόμενο «Microsoft Visual Studio Debugger», που λειτουργεί τόσο ως ένα πρόγραμμα εντοπισμού σφαλμάτων επιπέδου πηγής, όσο και ως ένα πρόγραμμα εντοπισμού σφαλμάτων επιπέδου μηχανής. Λειτουργεί σε διαχειριζόμενο κώδικα και μπορεί να χρησιμοποιηθεί για τον εντοπισμό σφαλμάτων σε εφαρμογές, οι οποίες είναι γραμμένες σε οποιαδήποτε γλώσσα προγραμματισμού. Επιπλέον, έχει την δυνατότητα να συμπεριληφθεί σε διεργασίες που εκτελούνται για να μπορέσει να παρακολουθήσει καθώς και να εντοπίσει σφάλματα των συγκεκριμενών διαδικασιών. Το πρόγραμμα εντοπισμού σφαλμάτων στο Visual Studio μπορεί επίσης να δημιουργήσει χωματερές μνήμης. Συνήθως όταν το πρόγραμμα έχει τερματιστεί ανώμαλα χρησιμοποιούνται για να βοηθήσουν στη διάγνωση και στον εντοπισμό σφάλματων στα προγράμματα ηλεκτρονικών υπολογιστών. Το πρόγραμμα εντοπισμού σφαλμάτων επιτρέπει τον καθορισμό σημείων διακοπής, που αναγκάζουν την εκτέλεση να διακοπεί προσωρινά σε μια ορισμένη θέση και τα 21

ρολόγια που παρακολουθούν τις τιμές των μεταβλητών, καθώς η εκτέλεση προχωρεί. Το Visual Studio υποστηρίζει διάφορες γλώσσες προγραμματισμού και επιτρέπει την επεξεργασία του κώδικα και τον εντοπισμό σφαλμάτων. Το ολοκληρωμένο πρόγραμμα εντοπισμού σφαλμάτων λειτουργεί τόσο ως ένα πρόγραμμα εντοπισμού σφαλμάτων επιπέδου πηγής, όσο και ως ένα πρόγραμμα εντοπισμού σφαλμάτων επιπέδου μηχανής. Ένα σημαντικό νέο χαρακτηριστικό είναι η υποστήριξη για WinRT. Οι εφαρμογές WinRT υποστηρίζονται εν γένει τόσο σε αρχιτεκτονική για x86, όσο και για την αρχιτεκτονική ARM, καθώς επίσης τρέχει μέσα σε ένα sandboxed περιβάλλον για να επιτρέψει μεγαλύτερη ασφάλεια και σταθερότητα. Αξίζει να σημειωθεί ότι, στα Windows Phone 8 χρησιμοποιείται μια έκδοση του χρόνου εκτέλεσης Windows για να έχει την δυνατότητα να επιτρέπει την ανάπτυξη εφαρμογών με την χρήση γλωσσών προγραμματισμού σε C # καθώς και σε VB.NET. Το Visual Studio 2013 κυκλοφόρησε επίσημα στις 9 Σεπτεμβρίου 2013.Ο πηγαίος κώδικας του Visual Studio 2013 αποτελείται από περίπου 50 εκατομμύρια γραμμές κώδικα. Η Microsoft παρέχει, μια δωρεάν έκδοση του Visual Studio που ονομάζεται «Express» και η συγκεκριμένη έκδοση είναι διαθέσιμη με διάφορες παραλλαγές (Web Development, Windows Store Development, Windows Desktop Development) μέσω της ιστοσελίδας του, χωρίς κανένα κόστος. 22

2.2 Microsoft Blend Το Expression Blend είναι ένα εργαλείο κατασκευής γραφικών για εφαρμογές που βασίζονται στη XAML (Extensible Application Markup Language). Με την XAML προσέγγιση μπορούμε πλέον να διαχωρίσουμε το User Interface (UI) κώδικα με την εφαρμογή και να αποθηκεύεται σε διαφορετικά αρχεία. Άρα το Expression Blend μας βοηθάει να επεξεργαζόμαστε τα XAML αρχεία που αποτελούν και το UI της εφαρμογής μας χωρίς να την απασχολεί ο κώδικας από πίσω. Με XAML μπορούμε να φτιάξουμε WPF, Silverlight, Windows Phone 7, Windows 8 εφαρμογές. Τον XAML κώδικα μπορούμε να τον επεξεργαστούμε βεβαίως και στο Visual Studio όμως με το Expression Blend σίγουρα νιώθουμε πιο άνετα να σχεδιάζουμε animation, storyboards, gradients κ.τ.λ μέσω του γραφικού του περιβάλλοντος. Το Expression Blend για τη XAML είναι ότι το Visual Studio για τον κώδικα. Δηλαδή, θα μπορούσαμε να γράφουμε τον κώδικά μας σε Notepad και να το κάναμε μετέπειτα compile με commands. Όμως χρησιμοποιούμε το Visual Studio που έχει τόσα πολλά εργαλεία να μας βοηθήσουν στη συγγραφή κώδικα στο debugging, στην οργάνωσή του κ.τ.λ. Κατά ένα παρόμοιο τρόπο λοιπόν το Expression Blend λειτουργεί για τη XAML. Θα μπορούσαμε να επεξεργαστούμε τα αρχεία της XAML στο Visual Studio. Το Expression Blend όμως μας προσφέρει τόσα πολλά εργαλεία στη δημιουργία του UI της εφαρμογής μας όπου θα μας φαινόταν αδιανόητο αν ξεκινούσαμε να το χρησιμοποιούμε να γυρίσουμε στο Visual Studio για τη συγγραφή του XAML. Το Blend είναι ένας καταπληκτικός editor γιατί μπορούμε να επεξεργαστούμε τη XAML χωρίς να γράψουμε στην ουσία XAML. Μπορούμε να προσθέσουμε αντικείμενα στο canvas και να παράξει αυτόματα τη XAML. Υπήρχε όμως το παράπονο ότι δημιουργούσε μερικές φορές παραπάνω κώδικα απ όσο έπρεπε και ήταν πιο δύσκολο να επεξεργαστεί κάποιος τον κώδικα μετέπειτα. Με το Blend παράγεται πολύ καθαρή XAML που συνεχώς βελτιώνεται με κάθε καινούργια έκδοση. 23

ΚΕΦΑΛΑΙΟ 4 Windows Store Το Windows Store είναι ένα μία υπηρεσία διανομής εφαρμογών για τα Microsoft Windows. Η υπηρεσία μπορεί να χρησιμοποιηθεί για εγκατάσταση εφαρμογών οι οποίες είναι συμβατές με Windows 8, Windows Server 2012 και Windows RT. Επίσης διατίθεται και στο λειτουργικό σύστημα Windows 10, σε μία δοκιμαστική (beta) έκδοση. Μέσω του Windows Store διανέμονται δωρεάν και επί πληρωμή εφαρμογές, όπου οι τιμές τους κυμαίνονται από 0,99 έως 999.99 δολάρια. Το Windows Store διατέθηκε για πρώτη φορά με τα Windows 8 Customer Preview, ως δοκιμαστική έκδοση, στις 29 Φεβρουαρίου 2012. Όπως και με άλλες παρόμοιες εφαρμογές (App Store για Mac και ios και το Google Play για Android), το Windows Store παρέχει εφαρμογές που έχουν ελεγχθεί και πιστοποιηθεί για τη συμβατότητα και το περιεχόμενο τους. Η Microsoft παίρνει το 30% της τιμής πώλησης των εφαρμογών του Windows Store μέχρι οι πωλήσεις του δημιουργού να φτάσουν τα 25000 δολάρια. Ύστερα, το ποσοστό μειώνεται σε 20%. Από τις 8 του Μαρτίου 2015, υπάρχουν 201.326 εφαρμογές διαθέσιμες στο Windows Store. Οι μεγαλύτερες κατηγορίες με βάση τον αριθμό των εφαρμογών είναι παιχνίδια, ψυχαγωγία, βιβλία και εκπαίδευση. Η πλειονότητα των προγραμματιστών έχουν τουλάχιστον 1 εφαρμογή. Η Microsoft είχε στο παρελθόν μία παρόμοια υπηρεσία διανομής λογισμικού γνωστή ως Windows Marketplace, που επέτρεπε στους χρήστες να αγοράζουν εφαρμογές και να τις κατεβάσουν στον υπολογιστή τους. Επίσης, μπορούσαν να αγοράσουν "κλειδιά" και άδειες προϊόντων. Το Windows Marketplace σταμάτησε τη λειτουργία του το Νοέμβριο του 2008. Η Microsoft ανακοίνωσε για πρώτη φορά την νέα υπηρεσία διανομής λογισμικού για τα Windows κατά την παρουσίασή που πραγματοποίησε, στις 13 Σεπτεμβρίου 2011. Σύμφωνα με αυτή την παρουσίαση, οι χρήστες θα μπορούσαν, μέσω του Windows Store, να αποκτήσουν "Metro-style" εφαρμογές, που θα ήταν συμβατές και με αφή. Επίσης, ανακοίνωσε ότι μαζί με την έκδοση "Developer Preview" των Windows 8, το Windows Store δεν θα ήταν ακόμη διαθέσιμο για 24

εμπορική χρήση, μέχρι την έκδοση "Customer Preview" των Windows 8, η οποία κυκλοφόρησε τον Φεβρουάριο του 2012. Tο Windows Store έχει επιμεληθεί την ασφάλεια και την ποιότητα της κάθε εφαρμογής που βρίσκεται μέσα στην πλατφόρμα της. Επίσης, δίνει το δικαίωμα να εγκατασταθεί στον υπολογιστή η εκάστοτε εφαρμογή, η οποία πρέπει να είναι πιστοποιημένη και συμβατή με το περιεχόμενο τους. Για να μπορέσει ένας προγραμματιστής να ανεβάσει στην πλατφόρμα του Windows Store την εφαρμογή που έχει δημιουργήσει για το λογισμικό των Windows 8-8,1 πρέπει πρώτα να περάσει από τους βασικούς ελέγχους, που καθορίζει η Microsoft για όλες τις εφαρμογές. Ο έλεγχος αυτός εστιάζεται κυρίως στο πρόγραμμα και στην εξακρίβωση ότι η συγκεκριμένη εφαρμογή εκτελεί ακριβώς αυτό που αναφέρει πως κάνει και πως δεν έχει κακόβουλα λογισμικά που μπορούν να βλάψουν τον υπολογιστή. Επίσης, ελέγχει εάν το πρόγραμμα αναφέρει στον χρήστη όλες τις προσβάσεις που επιθυμεί να έχει στο σύστημα και δεν προσπαθεί να πάρει προσβάσεις σε δεδομένα που δεν αναφέρει και έτσι ο χρήστης βρίσκεται σε πλήρη επίγνωση. Οι υποψήφιοι πρέπει να λάβουν την έγκριση της Microsoft πριν η εφαρμογή τους γίνει διαθέσιμη στο ηλεκτρονικό κατάστημα εφαρμογών. 25

ΚΕΦΑΛΑΙΟ 4 Βασικές γλώσσες προγραμματισμού για την υλοποίηση μιας εφαρμογής. 4.1 XAML Η XAML είναι μία δηλωτική γλώσσα που βασίζεται πάνω στην XML και ορίζει αντικείμενα καθώς και τις παραμέτρους τους. Το ακρονύμιο βγαίνει από το Extensible Application Markup Language, ενώ προφέρεται «ζάμελ». Το ακρονύμιο αρχικά έβγαινε από το Extensible Avalon Markup Language, όπου Avalon ήταν η κωδική ονομασία του. Η σύνταξη της XAML εστιάζει στο User Interface και άρα είναι ξεχωριστή από τον κώδικα της εφαρμογής που βρίσκεται από πίσω. Παρότι η XAML παρουσιάστηκε για χρήση στα Windows, η WPF/E (Windows Presentation Foundation/Everywhere) θα φέρει σταδιακά την XAML και σε άλλες πλατφόρμες καθώς και συσκευές. Η σύνταξη της XAML περιγράφει αντικείμενα, παραμέτρους καθώς και τις σχέσεις που υπάρχουν μεταξύ τους, όπως και τις σχέσεις μεταξύ αντικειμένων και «παιδιών» Όπως αναφέρθηκε παραπάνω, με την xaml περιγράφουμε το τι βλέπει ο χρήστης. Αυτό γίνεται σε ένα αρχείο με την κατάληξη.xaml. Για να αποκτήσει λειτουργικότητα το UI,η xaml συνδιάζεται με μία γλώσα προγραμματισμού (όπως C# ή visual basic) σε ένα άλλο αρχέιο με το ίδιο όνομα και την ανάλογη κατάληξη (.cs ή.vb αντίστοιχα). Έτσι λοιπόν για ένα αρχείο xaml με το όνομα Window1.xaml θα υπάρχει και το αντίστοιχο αρχείο Window1.cs με τον κώδικα (σε C#). Με αυτόν τον διαχωρισμό λειτουργικότητας και περιγραφής του UI μας έχουμε πολλά πλεονεκτήματα 26

Μπορούν ένας designer και ένας developer να λειτουργήσουν πάνω στην κατασκευή της ίδιας εφαρμογής, ο καθένας στο δικό του κομμάτι. Επίσης, υπάρχουν εργαλεία και για τις δύο διεργασίες (Visual Studio για τον κώδικα και Expression Blend για το design της εφαρμογής μας). Με το Expression Blend απλοποιείται σημαντικά ο σχεδιασμός της εφαρμογής μας, και είναι πολύ εύκολο να επικεντρωθούμε στο design και να φτιάξουμε όμορφα γραφικά και animations χωρίς να γράψουμε καθόλου κώδικα. 4.2 C# Η C# είναι η πιο δυναμική και εξελίξιμη αντικειμενοστραφής γλώσσα προγραμματισμού που αναπτύχθηκε από την Microsoft. Τα τελευταία χρόνια η C# έρχεται πρώτη στις προτιμήσεις των προγραμματιστών ενώ ταυτόχρονα πολλές μεγάλες εταιρίες πληροφορικής και οργανισμοί την επιλέγουν για να δημιουργήσουν τα δικά τους πληροφοριακά συστήματα αλλά και να βελτιώσουν τα είδη υπάρχοντα. Προσφέρει πρόσβαση σε τεράστιες βιβλιοθήκες κλάσεων για την δημιουργία εφαρμογών που είναι εύχρηστες και παρέχουν μεγάλη ασφάλεια. Τέλος με την C# μπορούμε να δημιουργήσουμε ένα μεγάλο πλήθος από εφαρμογές όπως: Windows store (Εφαρμογές για tablet), Windows Phone (Εφαρμογές για κινητά), WPF (Desktop Εφαρμογές), asp.net (Εφαρμογές για το διαδίκτυο), WPF BrowserApplication (Εφαρμογές για το διαδίκτυο) και Web services. 27

4.3 C+ + Η C++ είναι μια γενικού σκοπού γλώσσα προγραμματισμού Η/Υ. Θεωρείται μέσου επιπέδου γλώσσα, καθώς περιλαμβάνει έναν συνδυασμό χαρακτηριστικών από γλώσσες υψηλού και χαμηλού επιπέδου. Είναι μια μεταγλωττιζόμενη γλώσσα πολλαπλών παραδειγμάτων, με τύπους. Υποστηρίζει δομημένο, αντικειμενοστρεφή και γενικό προγραμματισμό. Η γλώσσα αναπτύχθηκε απo τον ΜπιάρνεΣτρούστρουπ το 1979 στα εργαστήρια Bell της AT&T, ως βελτίωση της ήδη υπάρχουσας γλώσσας προγραμματισμού C, και αρχικά ονομάστηκε "C with Classes", δηλαδή C με Κλάσεις. Μετονομάστηκε σε C++ το 1983. Οι βελτιώσεις ξεκίνησαν με την προσθήκη κλάσεων, και ακολούθησαν, μεταξύ άλλων, εικονικές συναρτήσεις, υπερφόρτωση τελεστών, πολλαπλή κληρονομικότητα, πρότυπα κ.α. Η γλώσσα ορίστηκε παγκοσμίως, το 1998, με το πρότυπο ISO/IEC 14882:1998. Η τρέχουσα έκδοση αυτού του προτύπου είναι αυτή του 2003, η ISO/IEC 14882:2003. Μια καινούρια έκδοση είναι υπό ανάπτυξη, γνωστή ανεπίσημα με την ονομασία C++0x. Οι κανόνες που χρησιμοποιήθηκαν για τον σχεδιασμό της C++ ειναι οι εξης : η C++ είναι σχεδιασμένη ως μια γενικής χρήσης γλώσσα με στατικούς τύπους, που είναι όσο αποτελεσματική και φορητή, όσο η C η C++ είναι σχεδιασμένη να υποστηρίζει άμεσα και σφαιρικά πολλά είδη προγραμματισμού (δομημένος προγραμματισμός, αντικειμενοστρεφής προγραμματισμός,γενικός προγραμματισμός) η C++ είναι σχεδιασμένη να δίνει επιλογές στον προγραμματιστή, ακόμα κι αν του επιτρέπει να επιλέξει λανθασμένα η C++ είναι σχεδιασμένη να είναι όσο το δυνατόν συμβατή με τη C, ώστε να διευκολύνει τη μετάβαση από τη C η C++ αποφεύγει χαρακτηριστικά που αναφέρονται σε συγκεκριμένες πλατφόρμες ή δεν είναι γενικής χρήσης η C++ δεν έχει κόστος για χαρακτηριστικά της γλώσσας που δεν χρησιμοποιούνται η C++ είναι σχεδιασμένη να λειτουργεί χωρίς κάποιο εξελιγμένο προγραμματιστικό περιβάλλον. 28

4.4 Visual Basic Η Visual Basic (VB) είναι γλώσσα προγραμματισμού τρίτης γενιάς, οδηγούμενη από συμβάντα (event driven) και έχει ολοκληρωμένo περιβάλλον ανάπτυξης (IDE) από τη Microsoft για το μοντέλο προγραμματισμού COM. Όπως και η γλώσσα προγραμματισμού BASIC, η Visual Basic έχει σχεδιαστεί για να είναι εύκολη στην εκμάθηση και το χειρισμό. Η γλώσσα δεν επιτρέπει στους προγραμματιστές να δημιουργήσουν μόνο απλές εφαρμογές GUI, αλλά μπορούν, επίσης, να αναπτύξουν πολύπλοκες εφαρμογές. Ο προγραμματισμός σε VB συνίσταται από τον οπτικό συνδυασμό στοιχείων ή ελέγχων σε μια φόρμα, τον προσδιορισμό χαρακτηριστικών και ενεργειών αυτών των στοιχείων και την σύνταξη επιπλέον γραμμών κώδικα για αυξημένη λειτουργικότητα. Καθώς υπάρχουν προεπιλεγμένα χαρακτηριστικά και ενέργειες για τα επιμέρους στοιχεία, μπορεί να δημιουργηθεί ένα απλό πρόγραμμα χωρίς ο προγραμματιστής να γράψει πολλές γραμμές κώδικα. Με τη Visual Basic είναι δυνατή η δημιουργία εκτελέσιμων (EXE) αρχείων, στοιχείων ελέγχου ActiveX ή αρχείων DLL, αλλά χρησιμοποιείται κυρίως για την ανάπτυξη εφαρμογών για τα Windows και τη διασύνδεση συστημάτων βάσεων δεδομένων. Πλαίσια διαλόγου με λιγότερες λειτουργίες μπορούν να χρησιμοποιηθούν για pop-up δυνατότητες. Τα στοιχεία ελέγχου παρέχουν τις βασικές λειτουργίες της εφαρμογής, ενώ οι προγραμματιστές μπορούν να εισαγάγουν επιπλέον λογική μέσα στο κατάλληλο χειριστή γεγονότων. Για παράδειγμα, ένα πτυσσόμενο πλαίσιο θα εμφανίζει αυτόματα μια λίστα που θα επιτρέπει στο χρήστη να επιλέξει οποιοδήποτε στοιχείο. Ένας χειριστής γεγονότων καλείται όταν ένα αντικείμενο είναι επιλεγμένο, και στη συνέχεια μπορεί να εκτελεστεί πρόσθετος κώδικας που δημιουργείται από τον προγραμματιστή για να εκτελεστεί κάποια ενέργεια που βασίζεται στο στοιχείο που έχει επιλεχθεί. Η γλώσσα έχει αυτόματη διαχείριση μνήμης με την τεχνική της συλλογής απορριμμάτων χρησιμοποιώντας υπολογισμό αναφορών και έχει μια μεγάλη βιβλιοθήκη με βοηθητικά αντικείμενα καθώς και βασική αντικειμενοστραφή υποστήριξη. Από τα πιο κοινά στοιχεία που περιλαμβάνονται στο προεπιλεγμένο πρότυπο έργου, ο προγραμματιστής σπάνια χρειάζεται να καθορίσει πρόσθετες βιβλιοθήκες. Αντίθετα με πολλές άλλες γλώσσες προγραμματισμού η Visual Basic γενικά δεν διαχωρίζει τους πεζούς από τους κεφαλαίους χαρακτήρες, αν και θα μετατρέψει τις λέξεις-κλειδιά σε μία τυπική διαμόρφωση. Οι συγκρίσεις συμβολοσειρών διαχωρίζουν τα πεζά από τα 29

κεφαλαία από προεπιλογή, αλλά μπορεί να αλλάξει αυτό, εφόσον το επιθυμείτε. Ο μεταγλωττιστής της Visual Basic είναι κοινός με τις άλλες γλώσσες του Visual Studio (C#, C++), αλλά οι περιορισμοί στον IDE δεν επιτρέπουν τη δημιουργία ορισμένων στόχων (μοντέλα Windows DLL) και σε μοντέλα νημάτων. Η τελική έκδοση 6 βγήκε το 1998. Η εκτεταμένη υποστήριξη της Microsoft έληξε το Μάρτιο του 2008 και ορίστηκε διάδοχος της η Visual Basic.NET (γνωστή απλά ως Visual Basic). 4.5 HTML H HTML είναι το ακρωνύμιο των λέξεων HyperText Markup Language (γλώσσα μορφοποίηση υπερκειμένου) και είναι η βασική γλώσσα δόμησης σελίδων του World Wide Web(ή απλά ιστού: Web). Χρησιμοποιείται για να σημαίνει ένα τμήμα κειμένου και να το κάνει να εμφανίζεται καλύτερα. Η HTML γράφεται υπό μορφή στοιχείων HTML τα οποία αποτελούνται από ετικέτες (tags), οι οποίες περικλείονται μέσα σε σύμβολα «μεγαλύτερο από» και «μικρότερο από» (για παράδειγμα <html>), μέσα στο περιεχόμενο της ιστοσελίδας. Οι ετικέτες HTML συνήθως λειτουργούν ανά ζεύγη (για παράδειγμα <h1> και </h1>), με την πρώτη να ονομάζεται ετικέτα έναρξης και τη δεύτερη ετικέτα λήξης (ή σε άλλες περιπτώσεις ετικέτα ανοίγματος και ετικέτα κλεισίματος αντίστοιχα). Η HTML επιτρέπει την ενσωμάτωση εικόνων και άλλων αντικειμένων μέσα στη σελίδα, και μπορεί να χρησιμοποιηθεί για να εμφανίσει διαδραστικές φόρμες. Παρέχει τις μεθόδους δημιουργίας δομημένων εγγράφων (δηλαδή εγγράφων που αποτελούνται από το περιεχόμενο που μεταφέρουν και από τον κώδικα μορφοποίησης του περιεχομένου) καθορίζοντας δομικά σημαντικά στοιχεία για το κείμενο, όπως κεφαλίδες, παραγράφους, λίστες, συνδέσμους, παραθέσεις και άλλα. Μπορούν επίσης να ενσωματώνονται σενάρια εντολών σε γλώσσες όπως η JavaScript, τα οποία επηρεάζουν τη συμπεριφορά των ιστοσελίδων HTML. 30

4.6 Java Script Η JavaScript (JS) είναι διερμηνευμένη γλώσσα προγραμματισμού για ηλεκτρονικούς υπολογιστές. Δημιουργήθηκε αρχικά από τον Brendan Eich της εταιρείας Netscape με την επωνυμία Mocha. Αργότερα, μετονομάστηκε σε LiveScript, και τελικά σε JavaScript, κυρίως επειδή η ανάπτυξή της επηρεάστηκε περισσότερο από τη γλώσσα προγραμματισμού Java. Η JavaScript είναι μια γλώσσα σεναρίων που βασίζεται στα πρωτότυπα (prototype-based), είναι δυναμική, με ασθενείς τύπους και έχει συναρτήσεις ως αντικείμενα πρώτης τάξης. Είναι γλώσσα βασισμένη σε διαφορετικά προγραμματιστικα παραδείγματα (multi-paradigm), υποστηρίζοντας αντικειμενοστρεφές, προστακτικό και συναρτησιακό στυλ προγραμματισμού. Η αρχική έκδοση της Javascript βασίστηκε στη σύνταξη στη γλώσσα προγραμματισμού C, αν και έχει εξελιχθεί, ενσωματώνοντας πια χαρακτηριστικά από νεότερες γλώσσες. Αρχικά χρησιμοποιήθηκε για προγραμματισμό από την πλευρά του πελάτη (client), που ήταν ο φυλλομετρητής (browser) του χρήστη, και χαρακτηρίστηκε σαν client-side γλώσσα προγραμματισμού. Αυτό σημαίνει ότι η επεξεργασία του κώδικα Javascript και η παραγωγή του τελικού περιεχομένου HTML δεν πραγματοποιείται στο διακομιστή, αλλά στο πρόγραμμα περιήγησης των επισκεπτών, ενώ μπορεί να ενσωματωθεί σε στατικές σελίδες HTML. Αντίθετα, άλλες γλώσσες όπως η PHPεκτελούνται στο διακομιστή (server-side γλώσσες προγραμματισμού). Η JavaScript χρησιμοποιείται και σε εφαρμογές εκτός ιστοσελίδων.τέτοια παραδείγματα είναι τα έγγραφα PDF, οι εξειδικευμένοι φυλλομετρητές (site-specific browsers) και οι μικρές εφαρμογές της επιφάνειας εργασίας (desktop widgets). Οι νεότερες εικονικές μηχανές και πλαίσια ανάπτυξης για JavaScript (όπως το Node.js) έχουν επίσης κάνει τη JavaScript πιο δημοφιλή για την ανάπτυξη εφαρμογών Ιστού στην πλευρά του διακομιστή (server-side). Η JavaScript έχει γίνει μία από τις πιο δημοφιλείς γλώσσες προγραμματισμού ηλεκτρονικών υπολογιστών στον Παγκόσμιο Ιστό (Web). Αρχικά, όμως, πολλοί επαγγελματίες προγραμματιστές υποτίμησαν τη γλώσσα διότι το κοινό της ήταν ερασιτέχνες συγγραφείς ιστοσελίδων και όχι επαγγελματίες προγραμματιστές. Με με τη χρήση της τεχνολογίας Ajax, η JavaScript επέστρεψε στο προσκήνιο και έφερε πιο επαγγελματική προσοχή προγραμματισμού. Το αποτέλεσμα ήταν ένα καινοτόμο αντίκτυπο στην εξάπλωση των πλαισίων και των βιβλιοθηκών, τη βελτίωση προγραμματισμού με JavaScript, καθώς και 31

αυξημένη χρήση της JavaScript έξω από τα προγράμματα περιήγησης στο Web.. ΚΕΦΑΛΑΙΟ 5 Yλοποίηση εφαρμογής «Μηχανή του Χρόνου» 5.1 Σύντομη περιγραφή εφαρμογής Το πρακτικό μέρος της παρούσας πτυχιακής αφορά την ανάπτυξη μιας εφαρμογής για ηλεκτρονικούς υπολογιστές που χρησιμοποιούν τη πλατφόρμα της Microsoft, με λειτουργικό σύστημα Windows 8. H εφαρμογή «Μηχανή του Χρόνου», είναι μία ψηφιακή, διαδραστική εγκυκλοπέδια σημαντικών γεγονότων της παγκόσμιας ιστορίας, που έχει σαν στόχο την ενημέρωση του εκάστοτε χρήστη, για τα σημαντικότερα ιστορικά γεγονότα, με κριτήριο την τρέχουσα ημερομηνία, ή οποιαδήποτε ημερομηνία επιθυμεί ο χρήστης. Η συγκεκριμένη εφαρμογή περιλαμβάνει πάνω απο 14000 σημαντικά ιστορικά γεγονότα της παγκόσμιας ιστορίας, εύχρηστο interface για την επιλογή της εκάστοτε ημερομηνίας που αφορά τον χρήστη, καθώς και γρήγορη μετάβαση στα γεγονότα που συνέβησαν την τρέχουσα ημερομηνία. Η εφαρμογή υλοποιείται με την χρήση των εργαλείων ανάπτυξης εφαρμογής Visual Studio 2013 και Microsoft Blend, με C# και XAML. 32

5.2 Περιγραφή UI και κώδικας XAML. Περιβάλλον χρήστη ή αλλιώς Interface καλείται στην πληροφορική ένα σύνολο γραφικώνστοιχείων, τα οποία εμφανίζονται στην οθόνη κάποιας ψηφιακής συσκευής (π.χ. Η/Υ) και χρησιμοποιούνται για την αλληλεπίδραση του χρήστη με τη συσκευή αυτή. Παρέχουν στον χρήστη, μέσω γραφικών, ενδείξεις και εργαλεία προκειμένου αυτός να φέρει εις πέρας κάποιες επιθυμητές λειτουργίες. Η οπτική σύνθεση και η χρονική συμπεριφορά του UI είναι το πιο σημαντικό μέρος του προγραμματισμού των εφαρμογών όταν πρόκειται για τον τομέα επικοινωνίας ανθρώπου υπολογιστή. Ο στόχος είναι η ενίσχυση της αποτελεσματικότητας και της ευκολίας της χρήσης τέτοιων εφαρμογών, θέτοντας τον ως βασικό σχεδιασμό του προγράμματος, γνωστό με την αγγλική ορολογία usability (χρηστικότητα). To UI της εφαρμογής «Μηχανή του Χρόνου» ειναι γρήγορο, σαφές και συνοπτικό ταυτόχρονα, επιτρέποντας και στον πιο άπειρο χρήστη να αλληλεπιδρά με το σύστημα εύκολα (σχεδόν ενστικτοδώς), απο την πρώτη κιολας επαφή του με την εφαρμογή.ετσι τα παραπάνω χαρακτηριστικά του UI καθιστούν την εφαρμογή ελκυστική για τον χρήστη. Στο δεξί μέρος της οθόνης της εφαρμογής παρατηρείται το πληκτρολόγιο μέσω του οποίου ο χρήστης μπορεί να εισάγει την ημερομηνία που τον αφορα. Ακριβώς απο πανω υπάρχει το κουμπί «Σάν Σήμερα», το οποίο δίνει την δυνατότητα στον χρήστη πατώντας το, να εισάγει την τρέχουσα ημερομηνία αυτόματα. Στη συνέχεια συναντούμε το πλαίσιο όπου τυπωνεται η ημερομηνία που έχει επιλέξει ο χρήστης (σε μορφή ηη/μμ). Και ακριβώς απο δίπλα το κουμπι μέσω του οποίου γίνεται η μετάβαση στα γεγονότα βάση της ημερομηνίας που έχει επιλέξει ο χρήστης. Τα γεγονότα εμφανίζονται στο δεξί μερος της οθόνης στο πλαίσιο που έχει την μορφή παπύρου. 33

Παρακάτω ακολουθεί η περιγραφή του interface σε XAML κώδικα: <Grid Background="#FF000000"> <Button Content="1" HorizontalAlignment="Left" Height="73" Margin="25,397,0,0" Style="{StaticResource ButtonStyle1}" VerticalAlignment="Top" Width="80" FontSize="24" FontFamily="Bauhaus 93" Click="date_click"> <Button.Foreground> <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> <GradientStop Color="Black" Offset="0"/> <GradientStop Color="#FFF0E041" Offset="1"/> </LinearGradientBrush> </Button.Foreground> </Button> <Button Content="2" HorizontalAlignment="Left" Height="73" Margin="110,397,0,0" Style="{StaticResource ButtonStyle1}" VerticalAlignment="Top" Width="80" FontSize="24" FontFamily="Bauhaus 93" Click="date_click" > <Button.Foreground> <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> <GradientStop Color="Black" Offset="0"/> <GradientStop Color="#FFF0E041" Offset="1"/> </LinearGradientBrush> </Button.Foreground> </Button> 34

<Button Content="3" HorizontalAlignment="Left" Height="73" Margin="195,397,0,0" Style="{StaticResource ButtonStyle1}" VerticalAlignment="Top" Width="80" FontSize="24" FontFamily="Bauhaus 93" Click="date_click"> <Button.Foreground> <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> <GradientStop Color="Black" Offset="0"/> <GradientStop Color="#FFF0E041" Offset="1"/> </LinearGradientBrush> </Button.Foreground> </Button> <Button Content="4" HorizontalAlignment="Left" Height="73" Margin="25,474,0,0" Style="{StaticResource ButtonStyle1}" VerticalAlignment="Top" Width="80" FontSize="24" FontFamily="Bauhaus 93" Click="date_click"> <Button.Foreground> <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> <GradientStop Color="Black" Offset="0"/> <GradientStop Color="#FFF0E041" Offset="1"/> </LinearGradientBrush> </Button.Foreground> </Button> <Button Content="5" HorizontalAlignment="Left" Height="73" Margin="110,474,0,0" Style="{StaticResource ButtonStyle1}" VerticalAlignment="Top" Width="80" FontSize="24" FontFamily="Bauhaus 93" Click="date_click"> <Button.Foreground> <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> <GradientStop Color="Black" Offset="0"/> <GradientStop Color="#FFF0E041" Offset="1"/> </LinearGradientBrush> </Button.Foreground> </Button> <Button Content="6" HorizontalAlignment="Left" Height="73" Margin="195,474,0,0" Style="{StaticResource ButtonStyle1}" VerticalAlignment="Top" Width="80" FontSize="24" FontFamily="Bauhaus 93" Click="date_click"> <Button.Foreground> <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> <GradientStop Color="Black" Offset="0"/> <GradientStop Color="#FFF0E041" Offset="1"/> </LinearGradientBrush> </Button.Foreground> </Button> <Button Content="7" HorizontalAlignment="Left" Height="74" Margin="25,551,0,0" Style="{StaticResource ButtonStyle1}" VerticalAlignment="Top" Width="80" FontSize="24" FontFamily="Bauhaus 93" Click="date_click"> <Button.Foreground> <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> <GradientStop Color="Black" Offset="0"/> <GradientStop Color="#FFF0E041" Offset="1"/> </LinearGradientBrush> </Button.Foreground> </Button> <Button Content="8" HorizontalAlignment="Left" Height="74" Margin="110,551,0,0" Style="{StaticResource ButtonStyle1}" VerticalAlignment="Top" Width="80" FontSize="24" FontFamily="Bauhaus 93" Click="date_click"> <Button.Foreground> <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> <GradientStop Color="Black" Offset="0"/> 35

<GradientStop Color="#FFF0E041" Offset="1"/> </LinearGradientBrush> </Button.Foreground> </Button> <Button Content="9" HorizontalAlignment="Left" Height="74" Margin="195,551,0,0" Style="{StaticResource ButtonStyle1}" VerticalAlignment="Top" Width="80" FontSize="24" FontFamily="Bauhaus 93" Click="date_click"> <Button.Foreground> <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> <GradientStop Color="Black" Offset="0"/> <GradientStop Color="#FFF0E041" Offset="1"/> </LinearGradientBrush> </Button.Foreground> </Button> <Button Content="CL" HorizontalAlignment="Left" Height="73" Margin="25,629,0,0" Style="{StaticResource ButtonStyle1}" VerticalAlignment="Top" Width="80" FontSize="24" FontFamily="Bauhaus 93" Click="clear_click"> <Button.Foreground> <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> <GradientStop Color="Black" Offset="0"/> <GradientStop Color="#FFF0E041" Offset="1"/> </LinearGradientBrush> </Button.Foreground> </Button> <Button Content="0" HorizontalAlignment="Left" Height="73" Margin="110,629,0,0" Style="{StaticResource ButtonStyle1}" VerticalAlignment="Top" Width="80" FontSize="24" FontFamily="Bauhaus 93" Click="date_click"> <Button.Foreground> <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> <GradientStop Color="Black" Offset="0"/> <GradientStop Color="#FFF0E041" Offset="1"/> </LinearGradientBrush> </Button.Foreground> </Button> <Button Content="/" HorizontalAlignment="Left" Height="73" Margin="195,629,0,0" Style="{StaticResource ButtonStyle1}" VerticalAlignment="Top" Width="80" FontSize="24" FontFamily="Bauhaus 93" Click="date_click"> <Button.Foreground> <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> <GradientStop Color="Black" Offset="0"/> <GradientStop Color="#FFF0E041" Offset="1"/> </LinearGradientBrush> </Button.Foreground> </Button> <Button Content="Σαν Σήμερα" HorizontalAlignment="Left" Height="82" Margin="25,298,0,0" Style="{StaticResource ButtonStyle1}" VerticalAlignment="Top" Width="250" FontSize="24" FontFamily="Bauhaus 93" Click="today_Click"> <Button.Foreground> <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> <GradientStop Color="Black" Offset="0"/> <GradientStop Color="#FFF0E041" Offset="1"/> </LinearGradientBrush> </Button.Foreground> </Button> 36

Στον παραπάνω κώδικα έχουμε την περιγραφή των κουμπιών της εφαρμογής. Ειδικοτερα η ετικέτα <Button δημιουργεί ένα κουμπί στο Main page.xaml η λειτουργία του οποίου καθορίζετε απο το Click.Στον συγκεκριμένο κώδικα XAML έχουμε τις εξεις λειτουργίες κουμπιών: date_click για τα κουμπιά 1,2,3,4,5,6,7,8,9,0 και /. Clear_click για το κουμπι εκκαθάρισης, today_click για το κουμπί σαν σήμερα που δίνει την σημερινή ημερομηνία και το gegonota_click που μας δίνει τα αποτελέσματα. Το περιεχόμενο των κουμπιών ορίζεται στο σημείο Content, η γραμματοσειρα ορίζεται στο FontFamily, και τα υπόλοιπα έχουν να κάνουν με την γεωγραφική θέση των κουμπιών στην εφαρμογή το χρώμα τους και το μέγεθός τους. <TextBox x:name="datearea" HorizontalAlignment="Left" Height="126" Margin="24,132,0,0" TextWrapping="Wrap" Text=" " VerticalAlignment="Top" Width="251" FontSize="80" FontFamily="Bauhaus 93" Foreground="#FFBFA52C" BorderThickness="10" MaxLength="6"> <TextBox.Background> <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> <GradientStop Color="#FF191919" Offset="0.267"/> <GradientStop Color="White"/> </LinearGradientBrush> </TextBox.Background> <TextBox.BorderBrush> <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> <GradientStop Color="Black" Offset="0"/> <GradientStop Color="#FF898132" Offset="1"/> </LinearGradientBrush> </TextBox.BorderBrush> </TextBox> Στο παραπάνω κομματι XAML κώδικα έχουμε την περιγραφή του datearea (πεδίο ημερομηνιών). Επειδή ο μόνος ρόλος του πεδίου είναι να βλέπει ο χρήστης τι ημερομηνία έχει τυπωθεί, όλος ο παραπάνω κώδικας έχει να κάνει με την εμφανιση του πεδίου αλλα και του κειμένου μέσα του. 37

<DatePicker x:name="curr_date" HorizontalAlignment="Left" Margin="299,699,0,0" VerticalAlignment="Top" DayFormat="{}{day.integer(2)}" MonthFormat="{}{month.integer(2)}" YearVisible="False" MonthVisible="False" IsHitTestVisible="False" DayVisible="False"/> <Grid HorizontalAlignment="Left" Height="768" Margin="512,0,0,0" VerticalAlignment="Top" Width="705" RenderTransformOrigin="0.5,0.5"> <Grid.Background> <ImageBrush Stretch="UniformToFill" ImageSource="Assets/papyrus personal_use_only_by_moonlight4ngeld2xjn6k.png"/> </Grid.Background> <ScrollViewer HorizontalAlignment="Left" Height="609" Margin="42,71,0,0" VerticalAlignment="Top" Width="623" Foreground="#FFB23022" FontSize="22" FontWeight="Bold"> <TextBlock x:name="textarea" HorizontalAlignment="Left" TextWrapping="Wrap" VerticalAlignment="Top" Width="590" ScrollViewer.HorizontalScrollBarVisibility="Auto" ScrollViewer.VerticalScrollBarVisibility="Auto" /> </ScrollViewer> <ItemsControl HorizontalAlignment="Left" Height="100" Margin="255,43,0,0" VerticalAlignment="Top" Width="100"/> </Grid> <TextBlock HorizontalAlignment="Left" Height="35" Margin="35,263,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="71" FontSize="16" Foreground="#FF595858"> <Run Text="ηη/ΜΜ"/> <LineBreak/> <Run/> </TextBlock> Στο παραπάνω κομματι της XAML περιγράφεται το DatePicker με το όνομα curr_date, το οποίο χρησιμεύει στο να μπορέσει ο χρήστης να εισάγει αυτόματα την τρέχουσα ημερομηνία. Είναι αόρατο και έχει ρυθμιστεί ώστε να δίνει την ημερομηνία στην μορφή ηη/μμ. Στη συνέχεια έχουμε την περιγραφή του grid όπου έχει εισαχθεί η εικόνα του παπύρου. Και τέλος έχουμε την περιγραφή του textblock και του scrollviewer. Στο textblock με όνομα textarea έχουμε την παρουσίαση των γεγονότων, ενώ το scrollviewer βοηθά τον χρήστη ωστε να δεί όλα τα γεγονότα που δέν χωρoύν αρχικα στο textarea. 38

5.2 Περιγραφή εφαρμογής (C#) Εκτός απο το αρχείο.xaml στο project υπάρχει και ένα αρχείο.xaml.cs όπου βρίσκεται ο κώδικας c#. Ο κώδικας αυτός καθορίζει τις ενέργειες κάθε στοιχείου της εφαρμογής. Πριν προχωρήσουμε σε αναλυτική περιγραφή του κώδικα c# θα πρέπει να αναφερθεί οτι προστέθηκαν στα references τα SQLite for Windows 8.1 runtime και sqlite-net. To πρώτο επιτρέπει την σύνδεση της βασης δεδομένων με την εφαρμογή και το δεύτερο μας προσφέρει μεγαλύτερη γκάμα εντολών για την SQLite. Στη συνέχεια γίνεται η φόρτωση της βάσης δεδομένων στο solution items.παρακάτω ακολουθεί η αναλυτική επεξήγηση του κώδικα c#. using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Runtime.InteropServices.WindowsRuntime; using Windows.Foundation; using Windows.Foundation.Collections; using Windows.UI.Xaml; using Windows.UI.Xaml.Controls; using Windows.UI.Xaml.Controls.Primitives; using Windows.UI.Xaml.Data; using Windows.UI.Xaml.Input; using Windows.UI.Xaml.Media; using Windows.UI.Xaml.Navigation; using SQLite; using Windows.Storage; namespace App15 { public sealed partial class MainPage : Page { public MainPage() { this.initializecomponent(); datearea.text = ""; } public async void ProjectFile() { try { var uri = new Uri("ms-appx:///gegonota.sqlite"); var file = await StorageFile.GetFileFromApplicationUriAsync(uri); var destinationfolder = Windows.Storage.ApplicationData.Current.LocalFolder; 39

await file.copyasync(destinationfolder); } catch { } } private async void gegonota_click(object sender, RoutedEventArgs e) { if (this.datearea.text.length == 5) { string search = this.datearea.text; string result2 = ""; SQLiteAsyncConnection conn = new SQLiteAsyncConnection("gegonota.sqlite"); var query = conn.table<gegonota>().where(x => x.date.contains(search)); var result = await query.tolistasync(); foreach (var item in result) { } result2 = result2 + item.gegonos + Environment.NewLine; } if (result2 == String.Empty) { textarea.text = "Δεν βρεθηκε γεγονός"; } else textarea.text = result2; } else textarea.text = "Δώστε την ημερομηνία στην μορφή ηη/μμ"; private void clear_click(object sender, RoutedEventArgs e) { datearea.text = string.empty; } private void today_click(object sender, RoutedEventArgs e) { datearea.text = curr_date.date.tostring("dd/mm"); } private void date_click(object sender, RoutedEventArgs e) { } datearea.text += (string)((button)sender).content; } } 40

public async void ProjectFile() { try { var uri = new Uri("ms-appx:///gegonota.sqlite"); var file = await StorageFile.GetFileFromApplicationUriAsync(uri); var destinationfolder = Windows.Storage.ApplicationData.Current.LocalFolder; await file.copyasync(destinationfolder); } catch { } } Στην void συνάρτηση Project file έχουμε την δήλωση τριών μεταβλητών, uri, file και destinationfolder. Ο ρόλος της uri είναι να αποθηκεύει την διαδρομή του αρχείου μέσα στον φάκελο εφαρμογής, ενώ ο ρόλος της file είναι να επιλέγει το αρχέιο αυτό απο τον φάκελο εφαρμογής. Τέλος η μεταβλητή destinationfolder αντιπροσωπεύει τον φάκελο εφαρμογής. Στην συνέχεια η μεταβλητή file αντιγράφεται στο destinationfolder (φάκελος ApplicationData.). Αυτο γίνεται γιατι το ApplicationData είναι διαφορετικό σε κάθε υπολογιστή. Έτσι με την πρώτη εκτέλεση της εφαρμογής το αρχείο gegonota.sqlite αποθηκεύεται στο ApplicationData ωστε να μπορεί ο χρήστης να πάρει αποτελέσματα. 41

private async void gegonota_click(object sender, RoutedEventArgs e) { if (this.datearea.text.length == 5) { string search = this.datearea.text; string result2 = ""; SQLiteAsyncConnection conn = new SQLiteAsyncConnection("gegonota.sqlite"); var query = conn.table<gegonota>().where(x => x.date.contains(search)); var result = await query.tolistasync(); foreach (var item in result) { } result2 = result2 + item.gegonos + Environment.NewLine; } if (result2 == String.Empty) { textarea.text = "Δεν βρεθηκε γεγονός"; } else textarea.text = result2; } else textarea.text = "Δώστε την ημερομηνία στην μορφή ηη/μμ"; Ο ρόλος της παραπάνω void συνάρτησης είναι η εμφάνιση αποτελεσμάτων. Αρχικά γίνεται έλεγχος άν η ημερομηνία δόθηκε απο τον χρήστη στην απαιτούμενη μορφή. Η string μεταβλητή search αποθηκεύει την ημερομηνία που έδωσε ο χρήστης. ενώ η result2 αποθηκεύει τα αποτελέσματα. Στη συνέχεια έχουμε την σύνδεση της βάσης δεδομένων gegonota.sqlite με την εφαρμογή και η μεταβλητή query περιέχει τις παραμέτρους αναζήτησης βάση της ημερομηνίας που έχει δώσει ο χρήστης (Where(x => x.date.contains(search));).στη συνέχεια κάθε γεγονός που πληρεί τις προυποθέσεις της μεταβλητής query φορτώνεται στην μεταβλητή result και προστίθεται στην result2 η οποία κρατάει και τα προηγούμενα αποτελέσματα.( result2 = result2 + item.gegonos + Environment.NewLine; ). Σε περίπτωση που η αναζήτηση δεν δώσει αποτελέσματα ο χρήστης λαμβάνει το μύνημα «δεν βρέθηκε γεγονός.» ενώ σε περίπτωση που δέν δώσει την ημερομηνία στην σωστή μορφή λαμβάνει το μύνημα «Δώστε την ημερομηνία στην μορφή ηη/μμ). 42