Windows Programming Web Forms.

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
RAD Studio XE Περιβάλλον Ανάπτυξης. Ανάπτυξη σε περιβάλλον Windows Ανάπτυξη σε περιβάλλον.net Ανάπτυξη σε περιβάλλον PHP Συνδεσιμότητα με Βάσεις Δεδομένων.
Advertisements

Επικοινωνία Ανθρώπου Μηχανής Εαρινό Εξάμηνο 2007 Web Interfaces Εργαλεία παραγωγής κώδικα συμβατού με ASP Γαλούσης Θεόδωρος Α.Μ 630 Δρομπίλας Δημήτριος.
Κώστας Διαμαντάρας Τμήμα Πληροφορικής ΤΕΙ Θεσσαλονίκης 2011 Υπηρεσίες Web και Συστάδες υπολογιστών.
5η Συνάντηση Εκπαιδευτικών Πληροφορικής στη Δυτική Μακεδονία Πτολεμαΐδα, 29 Σεπτ 2005 Δημιουργία Δυναμικών Ιστοσελίδων με PHP και Dreamweaver MX Στυλιάδης.
Πανεπιστήμιο Αιγαίου Σχολή Επιστημών της Διοίκησης Τμήμα Μηχανικών Οικονομίας & Διοίκησης Computer applications in the modern enterprise Γ. Κούζας, PhD.
Χρησιμοποιώντας το Visual Studio 2010 για την Ανάπτυξη Εφαρμογών Office Αντώνης Κορδατζάκης Software Developer - ALM Specialist 12/5/2011.
Windows Programming Web controls. •Τα web forms είναι container αντικείμενα σχεδιασμένα για να κάνουνε host άλλα controls, όπως α) Web server controls,
Web Services Υπηρεσίες διαδικτύου
Uniform Resource Locators (URLs) Ορισμός : URL (Uniform Resource Locator): Δείκτης σε μία πηγή πληροφοριών του Παγκοσμίου Ιστού (World Wide Web) Στη Java,
Μέλη ομάδας: Χρυσή Σέα Νικόλας Κλεάνθους Στέφανος Γεωργίου.
Microsoft ASP.NET Browser Web 2.0 CSS JavaScript Server Client Clients Κατσιώτης Ιωάννης Οικονομικό Πανεπιστήμιο Αθηνών
Visual Studio 2010 Load Testing Γιώργος Καρκαλής Testing Specialist 12/5/2011.
Ολοκληρωμένο, Σταθερό, Γρήγορο, Επεκτάσιμο. Περιβάλλον ανάπτυξης Τεχνολογία ROADS Ενσωματωμένες τεχνολογίες αιχμής Ανάπτυξη λύσεων από εταιρίες ISV Προηγμένο.
Σύγχρονοι Εξυπηρετητές του Ιστού Παραδείγματα και Συγκρίσεις Πληροφοριακά Συστήματα για Μάρκετινγκ & Δημοσκοπήσεις.
Εισαγωγή στην Επιστήμη των Υπολογιστών και Επικοινωνιών Σχεδιασμός ιστοχώρων Σπύρος Κοκολάκης* ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΑΚΩΝ.
Εισαγωγή σε Android Δομή αρχείων σε Android Projects
Google's Google App Engine and Google's Datastore API Andreas Manoli.
Επικοινωνία Ανθρώπου Μηχανής Καρακίτσος Ηλίας ΑΜ 614 Ιωάννου Ελένη ΑΜ 647.
ΗΛΕΚΤΡΟΝΙΚΟ ΕΜΠΟΡΙΟ Web Programming MARY GRAMMATIKOU 2/06/2009.
Κεφάλαιο 11.1 Uniform Resource Locators (URLs). Ορισμός : URL (Uniform Resource Locator): Δείκτης σε μία πηγή πληροφοριών του Παγκοσμίου Ιστού (World.
HTML-PHP Καμπέρης Άρης Α.Μ. 763 Zaher Owda Α.Μ. 849.
1 Παγκόσμιος Ιστός. 2 World Wide Web- Ο Παγκόσμιος Ιστός  Ανακαλύφτηκε από τον Tim-Berners Lee, ερευνητή του CERN (Ευρωπαϊκό εργαστήριο Φυσικής Υψηλής.
Διασύνδεση με ΒΔ Client (Firefox) PHP engine Apache.php Html content Http response MySQL MSSQL Oracle PostgreSQL Web ServerDatabase Για να συνδεθεί η PHP.
Web APIs Θερινό Σχολείο, 14 – 20 Ιουλίου 2014 Δημοσθένης Νικούδης Μονάδα Αριστείας ΕΛ/ΛΑΚ ΤΕΙ Αθήνας.
Βάσεις Δεδομένων και Παγκόσμιος Ιστός Προγραμματιστική εργασία: «WebNews»
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java.
LOGO Προγραμματισμός Η/Υ β’ εξάμηνο – εργαστήριο ΚΑΛΟΓΙΑΝΝΗΣ ΓΡΗΓΟΡΙΟΣ Ηλεκτρολόγος Μηχανικός και Μηχανικός Υπολογιστών Α.Π.Θ. Msc Τηλεπικοινωνίες Πολυτεχνική.
Χάρης Κονδυλάκης Σχεδιασμός Ιστοχώρων 1. Παραδείγματα ιστοχώρων del.icio.us europa.eu lufthansa.aero cnn.tv.
Ενότητα 2: HTML – Hypertext Markup Language. Φώτης Κόκκορας, Καθηγητής Εφαρμογών, Τμήμα Μηχανικών Πληροφορικής Τ.Ε., T.E.I. Θεσσαλίας Προγραμματισμός Εφαρμογών.
ΗΜΥ 100: Εισαγωγή στην Τεχνολογία Διάλεξη 5 Η εξέλιξη του Διαδικτύου TΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΠΑΝΕΠΙΣΤΗΜΙΟ.
Βάσεις Δεδομένων και Παγκόσμιος Ιστός Βασικές έννοιες του Ιστού.
Μάθημα 8 Session και Cookies. Session Το HTTP πρωτόκολλο είναι stateless. Άρα το HTTP δεν έχει μνήμη. Αυτό σημαίνει ότι εάν έχω μια μεταβλητή που την.
Μηχανογράφηση χρηματιστηριακού γραφείου για διαχείριση ομολόγων Πτυχιακή εργασία του Παρχαρίδη Παύλου Επιβλέπων καθηγητής : Κωνσταντίνος Γιακουστίδης.
Εκπαίδευση Microsoft® Office Access 2007
ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ ΚΑΙ ΔΙΑΣΥΝΔΕΣΗΣ ΔΙΚΤΥΩΝ
Εισαγωγή στον Προγ/μό Η/Υ
Ερώτηση 2.6 Υποθέστε ότι θέλετε να κάνετε μια συναλλαγή από έναν απομακρυσμένο πελάτη προς έναν εξυπηρέτη, όσο το δυνατόν ταχύτερα. Θα χρησιμοποιούσατε.
Web Services στη C# Εργαστήριο 5
Βασικά Web εργαλεία και τεχνολογίες
Διευθύνσεις και Πρωτόκολλα στο διαδίκτυο
Ιωάννης Πρίγγουρης Java Server Pages Ιωάννης Πρίγγουρης
Αντικειμενοστραφής Προγραμματισμός ΙΙ
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Εισαγωγή στις φόρμες Html forms.
Ενότητα 11 : Η χρήση της MySQL στο Ηλεκτρονικό εμπόριο (ΙΙ)
Πανεπιστήμιο Πελοποννήσου
ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΣΕΡΡΩΝ
Κατανεμημένα Συστήματα
Αρχεσ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ Β΄ ΠΛΗΡΟΦΟΡΙΚΗΣ
Ιωάννης Πρίγγουρης Εργαστήριο Διάχυτου Υπολογισμού Παν. Αθηνών
Κινητά και Διάχυτα Συστήματα
Μάθημα 6 Φόρμες I.
Ενότητα 9 : Χρήση Πινάκων στο Ηλεκτρονικό εμπόριο (ΙΙΙ)
HTML.
Web Services στη C# Εργαστήριο 2
Γυμνάσιο Νέας Κυδωνίας
Ενότητα 6 : Συναρτήσεις της γλώσσας PHP Ιωάννης Τσούλος
Ενότητα 8 : Χρήση Πινάκων στο Ηλεκτρονικό εμπόριο (ΙΙ) Ιωάννης Τσούλος
Web Services στη C# Εργαστήριο 7
Βάσεις Δεδομένων II Ενότητα 6: Στατικές και δυναμικές σελίδες (JSP)
ΣΧΕΔΙΑΣΜΟΣ ΚΑΙ ΑΝΑΠΤΥΞΗ ΔΙΑΔΙΚΤΥΑΚΩΝ ΕΦΑΡΜΟΓΩΝ
Enter the world of Silverlight
Διασύνδεση με ΒΔ Web Server Database MySQL MSSQL Oracle PostgreSQL
Γλώσσα Προγραμματισμού V PHP
Ειδικά Θέματα στον Προγραμματισμό Υπολογιστών
Databases Θ. Βαρβαρίγου Καθηγήτρια ΕΜΠ Τηλ
Εισαγωγή στη Java (Μέρος Α’)
ΕΝΟΤΗΤΑ 4 – Κεφάλαιο 12: Ο Παγκόσμιος Ιστός – Εισαγωγή στην έννοια του Υπερκειμένου Λέξεις Κλειδιά: Διαδίκτυο, Παγκόσμιος Ιστός (World Wide Web), ιστοσελίδα.
Κεφάλαιο 6o. Επίπεδο εφαρμογής
Εφαρμογές ιστού και δημιουργία ιστοσελίδων
Μεταγράφημα παρουσίασης:

Windows Programming Web Forms

Web Forms Μια νέα μόδα στην πληροφορική είναι «Κάνε αυτό το λογισμικό να είναι προσβάσιμο μέσω του Διαδικτύου» Παραδείγματα: ebay.com, amazon.com κ.α. Οι κύριες πλατφόρμες για την επίτευξη αυτού του στόχου είναι JSP, PHP, .ASP .NET, Coldfusion

J2EE VS. .NET .NET J2EE Χαρακτηριστικό C# Java Η C# και η Java προέρχονται από την C++ συντακτικά, και από την Lisp σε σκέψη. Αρκετές σημαντικές λειτουργίες (garbage collection, ιεραρχικά namespaces, exceptions, classes, structs) προήλθαν από την Lisp. Η C# δανείστηκε κάποια από τα component στοιχεία των JavaBeans (properties, attributes, events κ.λ.π.), προσθέτει μερικά δικά της (μεταδεδομένα), αλλά μας επιτρέπει να τα χρησιμοποιήσουμε με διαφορετική σύνταξη. Η Java τρέχει σε οποιαδήποτε πλατφόρμα με JVM. Η C# τρέχει σε οποιαδήποτε πλατφόρμα έχει λογισμικό που να υποστηρίζει τα ECMA πρότυπα της C# και του .NET. Η C# μεταγλωττίζεται σε IL. Κατόπιν, μεταγλωτίζεται περαιτέρω σε native code της εκάστοτε πλατφόρμας. Η Java τρέχει σαν JVM bytecodes, το οποίο είτε ερμηνέυεται στη Virtual Machine είτε γίνεται JIT compiled, ή επίσης μπορεί να μεταγλωττιστεί εξόλοκλήρου σε native code. .NET SDK Java API Τα high level .NET components περιλαμβάνουν υποστήριξη για κατανεμημένη πρόσβαση μέσω XML, SOAP και ADO+ ASP .NET JSP Ο ASP.Net κώδικας μπορεί να γραφεί σε VB,C# και σε άλλες γλώσσες που υποστηρίζουνε μεταγλώττιση σε IL. Το JSP χρησιμοποιεί Java Κώδικα, μεταγλωττισμένο σε bytecodes (είτε κατ’απαίτηση, είτε κατά ομάδες αρχείων)

J2EE VS .NET .NET J2EE Χαρακτηριστικό IL CLR JVM Το .NET CLR επιτρέπει συγγραφή κώδικα σε διάφορες γλώσσες. Το JVM επιτρέπει σε Java bytecodes να τρέξουνε σε οποιαδήποτε πλατφόρμα που έχει εγκατεστημένο το JVM. COM, SOAP CORBA Το .ΝΕΤ προάγει τη χρήση του SOAP ενώ η JAVA τη χρήση του CORBA για υποδομή επικοινωνίας μεταξύ απομακρυσμένων υπηρεσιών. Το SOAP είναι ένα standard πρωτόκολλο, ενώ το CORBA, όπως και η JAVA είναι ιδιόκτητος μηχανισμός. WEB Forms Java Swing Στο J2EE, τα web components που είναι βασισμένα σε JSP είναι διαθέσιμα σε standard πλατφόρμα, μόνο μέσω Java IDE. Τα Win Forms και τα Web Forms υποστηρίζονται μέσω Visual Studio και εν μέρει μέσω άλλων εργαλείων. Υποστήριξη για το Java Swing υπάρχει σε πολλά Java IDE και εργαλεία. ADO .NET JDBC, EJB Τα EJB και JDBC αφήνουν το πρωτόκολλο μεταφοράς δεδομένων στη διακριτική ευχέρεια του προγραμματιστή. WEB Services Τα .NET Web Services χρησιμοποιούν το SOAP σαν το μοντέλο επικοινωνίας

Γενικά Οι browsers και οι web servers επικοινωνούνε με ένα πρωτόκολλο που ονομάζεται HTTP, που σχεδιάστηκε στην Ελβετία. http://www.w3.org/Protocols/rfc2068/rfc2068 Όταν ένας χρήστης ζητάει να πλοηγηθεί σε μια σελίδα, π.χ. στην http://www.studentguru.gr, τότεο η DNS υπηρεσία επιστρέφει την IP διεύθυνση του δικτυακού τόπου, και στέλνεται στο web server το ακόλουθο HTTP αίτημα: GET / HTTP/1.1 Accept: */* Accept-Language: el-GR Accept-Encoding: gzip, deflate If-Modified-Since: Wed, 24 Oct 2001 14:12:36 GMT If-None-Match: "50b0d3ee955cc11:a78" User-Agent: Mozilla/4.0.(compatible; MSIE.6.0; Windows NT 5.1) Host: www.studentguru.gr Connection: Keep-Alive Κενή γραμμή

Γενικά, 2 Ο Web Server δέχεται το αίτημα, προσπαθεί να βρει τη ζητούμενη σελίδα και, αν τη βρει τότε δημιουργεί μια απάντηση που στέλνεται πίσω στον browser. HTTP/1.1 200 OK Server: Microsoft-IIS/6.0 Date: Wed, 24 Oct 2001 14:12:37 GMT Content-Type: text/html Accept-Ranges: bytes Last-Modified: Wed, 24 Oct 2001 14:00:53 GMT ETag: "d02acf81975cc11:a78" Content-Length: 46 [blank line] <html> <body> Hello, world </body> </html>

Γενικά, 3

Επεξεργασία στο server

Λύση με ASP Η ASP είναι ένα προγραμματιστικό μοντέλο που περιλαμβάνει διάφορα αντικείμενα, όπως το Application, Request, Server, Session, ObjectContext και ASPError. Όταν γίνεται μια αίτηση για μια σελίδα, τότε μια διεργασία στο server (asp.dll) επεξεργάζεται τη σελίδα και εκτελεί όλα τα script που υπάρχουνε σε αυτή. Τα scripts δέχονται είσοδο από το αντικείμενο Request, επεξεργάζονται το αίτημα, και ‘γράφουνε’ στην έξοδο μια απάντηση σε HTML μέσω του αντικειμένου Response. <%@ Language="VBScript" %> <html> <body> <form> <input type="text" name="op1" value="<%= Request ("op1") %>"/> + <input type="text" name="op2" value="<%= Request ("op2") %>" /> <input type="submit" value=" = " /> <% If Request ("op1") <> "" And Request ("op2") <> "" Then a = CInt (Request ("op1")) b = CInt (Request ("op2")) Response.Write (CStr (a + b)) End If %> </form> </body> </html>

Προβλήματα με την ASP Η ASP είναι αργή επειδή τα scripts ερμηνεύονται, δεν μεταγλωττίζονται. Σε κάθε σελίδα, υπάρχει ένα μείγμα από γλώσσες. Η ASP δεν είναι αντικειμενοστραφής Για να δημιουργηθούνε σελίδες με εξειδικευμένες λειτουργίες, κάποιος χρειάζεται να γράψει COM αντικείμενα, η συγγραφή των οποίων είναι αρκετά δύσκολη.

ASP .NET Ας δούμε κώδικα για ένα online υπολογιστή. <html> <body> <form runat="server"> <asp:TextBox ID="op1" RunAt="server" /> + <asp:TextBox ID="op2" RunAt="server" /> <asp:Button Text=" = " OnClick="OnAdd" RunAt="server" /> <asp:Label ID="Sum" RunAt="server" /> </form> </body> </html> <script language="C#" runat="server"> void OnAdd (Object sender, EventArgs e) { int a = Convert.ToInt32 (op1.Text); int b = Convert.ToInt32 (op2.Text); Sum.Text = (a + b).ToString (); } </script>

Όταν εκτελείται ο κώδικας, παίρνουμε <html> <body> <form name="_ctl0" method="post" action="Calc.aspx" id="_ctl0"> <input type="hidden" name="__VIEWSTATE" value= very large number /> <input name="op1" type="text" value="33" id="op1" /> + <input name="op2" type="text" value="33" id="op2" /> <input type="submit" name="_ctl1" value=" = " /> <span id="Sum">66</span> </form> </body> </html> Σημειώστε ότι η απάντηση είναι HTML. Στο .ΝΕΤ, τα server controls μπορούν να δημιουργήσουν HTML, αλλά μπορούν να έχουν συναρτήσεις, ιδιότητες και events και μεταγλωττίζονται.

Μοντέλο προγραμματισμού στα Web Forms Οι σελίδες γράφονται με ένα συνδυασμό από HTML και ASP controls, στα οποία είναι πολύ εύκολη η αλλαγή ιδιοτήτων τους. Τα server controls έχουν κάποια events τα οποία μπορούν να τα ‘ακούνε’ κάποια script που εκτελούνται στο server (server-side scripts). Τα server side scripts μεταγλωττίζονται σε IL και εκτελούνται από το CLR, με άμεσο αποτέλεσμα οι ASP .Net σελίδες να τρέχουνε πιο γρήγορα από τις αντίστοιχες σε ASP.

Μοντέλο προγραμματισμού στα Web Forms, 2 Τα server και τα HTML controls έχουνε κάποια events τα οποία επεξεργάζονται κάποιες ειδικές μέθοδοι. Οι σελίδες είναι αντικείμενα, τα οποία δημιουργούνται και περιέχουνε ιδιότητες και συναρτήσεις. Όταν φορτώνει μια σελίδα, γίνονται τα παρακάτω βήματα: Ένα προσωρινό αρχείο δημιουργείται που περιέχει ένα αντικείμενο της σελίδας (η οποία κληρονομεί το System.Web.UI.Page) Η ASP .NET αντιγράφει τον κώδικα στο αρχείο στο αντικείμενο. Μέθοδοι στο <script> τμήμα σε ένα αρχείο γίνονται μέθοδοι της σελίδας. Με την προσθήκη των μεθόδων, η ASP .NET μεταγλωττίζει την κλαση και τοποθετεί το παραγόμενο DLL σε ένα φάκελο συστήματος. Το DLL παραμένει εκεί έτσι ώστε τα βήματα 1 και 2 δεν θα χρειαστεί να επαναληφθούν εκτός κι αν αλλάξουνε τα περιεχόμενα του ASPX αρχείου.

Μοντέλο προγραμματισμού στα Web Forms, 3 Τα περιεχόμενα της κλάσης - σελίδας

Μοντέλο προγραμματισμού στα Web Forms, 4 Το αντικείμενο της σελίδας που έχει δημιουργηθεί ξεκινάει την εκτέλεσή του με το να κάνει fire μια σειρά από events, όπως το Init και το Load. Αυτά τα events μπορούν να επεξεργαστούν από server side scripts. Events όπως το Page.Load μπορούν να συσχετιστούν με συγκεκριμένες συναρτήσεις που θα τα επεξεργαστούν. Η Page.Init χρησιμοποιείται για να δημιουργηθούν controls και να προστεθούν δυναμικά στη σελίδα void Page_Init (Object sender, EventArgs e) { EqualsButton.Click += new EventHandler (OnAdd); }

Directives της σελίδας Υπάρχουνε εντολές που προσδιορίζουνε ιδιότητες της σελίδας, καθώς και οδηγίες προς τον μεταγλωττιστή. Αυτές οι οδηγίες (directives) είναι αναγκαίες επειδή κάποιες διαδικασίες δεν μπορούν να προσδιοριστούν ούτε σε HTML ούτε και σε κάποιο script. Κάθε εντολή μπορεί να προσδιορίζει ιδιότητες, π.χ. Η οδηγία @Page μπορεί να δώσει τιμή σε 27 ιδιότητες όπως Buffer, ClassName, ClientTarget, κ.λ.π. Κάποιες άλλες εντολές είναι πιο απλές, όπως <% @Imports namespace = “aNameSpace%> <% @Implements interface = “anInterface %> <% @Assembly name | Src = String %> <% @Reference page | control = pathToFile %>

Directives της σελίδας, 2 Είναι σημαντική η κατανόηση αυτών των οδηγιών. Η σωστή χρήση τους μπορεί να δώσει μεγάλη ώθηση στην απόδοση του δικτυακού τόπου. Για παράδειγμα <%@ Page Language="C#" %> <%@ OutputCache Duration="60" VaryByParam="None" %> <html> <body> Today is <%= DateTime.Now.ToLongDateString () %> </body> </html> Εφόσον η μέρα αλλάζει κάθε 24 ώρες, επανεκτέλεση της σελίδας κάθε φορά που γίνεται αίτημα για αυτή θα ήτανε μεγάλη σπατάλη. Η οδηγία OutputCache κρατάει τη σελίδα στη μνήμη για την διάρκεια που προσδιορίζεται στην οδηγία. Επίσης, η cache μνήμη μπορεί να κρατάει πολλές εκδόσεις, με την κάθε μία να διαχωρίζεται από τις άλλες με βάση την είσοδο. Μια web form με είσοδο πόλη και νομό, που επιστρέφει μια εικόνα από βάση δεδομένων, μπορεί να στείλει διαφορετικές φωτογραφίες αν τα πεδία πόλη και περιοχή είναι μεταβλητές, με τον ακόλουθο τρόπο <%@ OutputCache Duration="3600" VaryByParam="city;state" %>