Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Σχεδιάζοντας Εφαρμογές DNA A Crash Course Άρης Οικονομόπουλος.

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "Σχεδιάζοντας Εφαρμογές DNA A Crash Course Άρης Οικονομόπουλος."— Μεταγράφημα παρουσίασης:

1 Σχεδιάζοντας Εφαρμογές DNA A Crash Course Άρης Οικονομόπουλος

2 Τι ζητάει η εφαρμογή; Ανάγκες της εφαρμογής (sample app) Ταχύτητα Αντοχή σε πολλούς ταυτόχρονους χρήστες Internet front-end Χρήση βάσης δεδομένων Modular σχεδίαση

3 Τι θα κάνει η εφαρμογή; Μηχανισμοί log in/log out Παρακολούθηση αριθμού επισκέψεων Χρήση πινάκων μηνυμάτων (forums) Δυναμική δημιουργία πινάκων Έλεγχος πρόσβασης Έλεγχος πίνακα από δημιουργό Posting Χρήση threads

4 Γρήγορες αποφάσεις Ταχύτητα – MTS και components Κλιμάκωση – MTS και σωστές τεχνικές (ADO) Internet front-end – IIS και ASP BΔ – SQL Server / Oracle (ADO) Modular σχεδίαση – components (COM+)

5 Από που ξεκινάμε; Από το Data Tier Γιατί; Επειδή μας δίνει μια ολική εικόνα της εφαρμογής Με βάση πίνακες και δεδομένα μπορούμε να σχεδιάσουμε data και business components Τελευτάιο σχεδιάζουμε το Presentation Tier – αλλά το έχουμε συνεχώς στο μυαλό μας σε προηγούμενα στάδια σχεδίασης

6 Data Tier Τι tables έχουμε; Πως συνδέονται μεταξύ τους; Τι primary keys θα χρησιμοποιήσουμε; (‘άχρηστα primary keys’) Tι τύπους δεδομένων χρειαζόμαστε; Μέγεθος; Θα χρησιμοποιήσουμε error handling (required fields κλπ) του server ή μέσω κώδικα;

7 Data Tier Continued Θα χρησιμοποιήσουμε stored procedures? Θα χρησιμοποιήσουμε data components που θα τρέχουν στον MTS? Τι θα κάνουν αυτά τα components? Πόσα χρειαζόμαστε; Δημιουργία διαγραμμάτων για: Σχέσεις Tables στην ΒΔ. Αν υπάρχουν Σχέσεις μεταξύ components, αν υπάρχουν

8 Business Tier Σχεδίαση components Πόσα χρειαζόμαστε; Με βάση ποια λογική ‘χωρίζουμε’ την λειτουργικότητά μας σε components; Τι θα κάνει το καθένα; Ανάλυση σε επίπεδο function Υπάρχει κάποιο σημείο που ΠΡΕΠΕΙ να κρατάμε κατάσταση (state); Αν ναι, χρήση του SPM Πόσο δυνατούς ελέγχους χρειαζόμαστε σε κάθε component; Τι θα κάνει το error handling μας; Τι συμφέρει να περνάμε; Strings; Recordsets;

9 Business Tier Continued Δημιουργία διαγράμματος Σχέσεις μεταξύ business components Σχέσεις μεταξύ business components και data components Τι transaction settings θα χρησιμοποιήσουμε; Τι ασφάλεια θα χρησιμοποιήσουμε; Θα έχουμε ρόλους; Θα χρησιμοποιήσουμε access control που προκύπτει από την βάση και τον κώδικα;

10 Business Tier Continued Όχι caching Χρήστες δεν πρέπει να έχουν κάποιο ρόλο σε transactions Oι πόροι πρέπει να δεσμεύονται αργά και να απελευθερώνονται νωρίς Αποφύγετε περίπλοκες, ‘βαθειές’ ιεραρχίες από components Μην κάνετε τίποτα που έχει σχέση με την ΒΔ στο business tier. Κάντε το στο Data Tier ΠΑΝΤΑ να τεστάρετε τις εφαρομογές σας

11 Presentation Tier IIS – In-process και out-of-process Out-of-process κατά την ανάπτυξη In-process μετά από το testing Debugging σε ASP scripts Πρέπει να ένεργοποιηθεί από τον IIS Χρήση breakpoints (άφθονα) Δημιουργία objects με server.createobject και όχι με απλό createobject Πρόβλημα ASP με συγκεκριμένα objects

12 Presentation Tier Cont’d Μπορούμε να κρατάμε state στο presentation tier; Και ναι και όχι Χρήση του Session Object Χρήση cookies Προσοχή στην κατάχρηση Μπορούμε να ελέγξουμε το πως ο χρήστης περνάει μέσα από την εφαρμογή μας; Χρήση session object Χρήση includes Χρήση ASP σελίδας loginAccess

13 Presentation Tier Cont’d Σχεδίαση του site διαγραμματικά Μην φοβάστε να χωρίσετε τα databases σας ΠΟΤΕ μην καλείτε data components, ακόμα κι αν ο προγραμματιστής τους το επιτρέπει Απεικόνιση σχέσεων μεταξύ pages και μεταξύ pages και components Δείξτε πως μπορεί να κινηθεί ο χρήστης μέσα στην εφαρμογή σας Γραφιστική σχεδίαση (πως να κάνετε το site σας όμορφο)...μην ρωτάτε εμένα. Τα δικά μου είναι χάλια, αλλά δουλέυουν!

14 Presentation Tier Cont’d Τι να κάνετε και τι να μην κάνετε Τι να κάνετε Να καλείτε components Να τα καταστρέφετε ΑΜΕΣΩΣ μόλις δεν τα χρειάζεστε Να γράφετε Subs και Functions μέσα στο ASP Να κρατάτε πληροφορίες στο Session Object Να έχετε καλό error handling Τι να μην κάνετε Να μην αφήνετε objects να καταστρέφονται μόνα τους Να μην γράφετε πολύ χύμα κώδικα (άπειρα bugs) Να μην υπερφορτώνετε το Session Object Να μην περιμένετε ότι ο χρήστης θα κάνει ότι εσείς θέλετε Να μην αφήνετε ανοιχτό το site σας σε επιθέσεις (π.χ. POST parameters)

15 Άσκηση Ακολουθείστε την παραπάνω διαδικασία για να σχεδιάσετε μια εφαρμογή με παρόμοιες απαιτήσεις: Ταχύτητα, Αντοχή σε πολλούς ταυτόχρονους χρήστες, Internet front-end, Χρήση βάσης δεδομένων, Modular σχεδίαση Μηχανισμοί login/logout Να προσφέρει forums συζητήσεων Να προσφέρει profile χρηστών (και editing) Να προσφέρει email σε κάθε χρήστη μέσω του web (e.g. HotMail)

16 Άσκηση Continued Ζητούμενα: Τεχνολογίες που θα χρησιμοποιήσετε. Που και γιατί; Tables ΒΔ, τύποι μεταβλητών, διάγραμμα σχέσεων Data components – περιγραφή, ανάλυση functions, διάγραμματα (components και components με ΒΔ) Business Components – περιγραφή, ανάλυση functions, διαγράμματα (business και business με data) Presentation Tier pages – περιγραφή, εικονικός σχεδιασμός φορμών, διαγράμματα (site, και page με components), περιγραφή functions ανά page, περιγραφή του τι πληροφορίες θα κρατήσετε στο session object Overall – Ασφάλεια και άλλα θέματα που σκέφτεστε ότι είναι σημαντικά

17 Παράδοση Άσκησης Με email στο pathway@di.uoa.gr σε ηλεκτρονική μορφήpathway@di.uoa.gr Τυπωμένη στο γραφείο μου (Y22)


Κατέβασμα ppt "Σχεδιάζοντας Εφαρμογές DNA A Crash Course Άρης Οικονομόπουλος."

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google