Γνωριμία με την ASP.NET 2.0

3,467 views

Published on

Παρουσίαση που πραγματοποιήθηκε στις 8 Ιουνίου 2007 στο τμήμα Πληροφορικής και Τηλεπικοινωνιών ΕΚΠΑ.

Πηγαίος κώδικας, πληροφορίες και προτάσεις για περαιτέρω μελέτη: http://www.forums.gr/showpost.php?p=462712

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,467
On SlideShare
0
From Embeds
0
Number of Embeds
13
Actions
Shares
0
Downloads
35
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide
  • Τρείς είναι οι κυριότερες πλατφόρμες
  • Τμήμα του .NET Framework, δηλαδή - μπορούμε να προγραμματίσουμε σε οποιαδήποτε γλώσσα που υποστηρίζει το .NET, - κερδίζουμε όλα τα πλεονεκτήματα του .NET, όπως τον managed κώδικα - έχουμε στη διάθεση μας ολόκληρη την class library του .NET Διάδοχος της ASP Classic, και διατηρεί προς τα πίσω συμβατότητα με αυτήν Component Based, δηλαδή ολόκληρο το framework είναι οικοδομημένο γύρω από την ιδέα της επαναχρησιμοποίησης και επέκτασης components
  • Τρείς είναι οι κυριότερες πλατφόρμες
  • Γνωριμία με την ASP.NET 2.0

    1. 1. Γνωριμία με την ASP.NET 2.0 DI.UOA • 8 Ιουνίου 2007 Στέλιος Καραμπασάκης • Δημήτρης-Ηλίας Γκανάτσιος
    2. 2. Το συμπαν των Web Development Platforms <ul><li>open source </li></ul><ul><li>έτος: 1994 | εκδοση: 5.2 </li></ul><ul><li>Σύνταξη εμπνευσμένη από την C </li></ul><ul><li>Υποστηρίζει αντικειμενοστραφές μοντέλο </li></ul><ul><li>Διερμηνευόμενη server-side scripting γλώσσα </li></ul><ul><li>Sun Microsystems </li></ul><ul><li>έτος: 1999 | εκδοση: 2.1 </li></ul><ul><li>Αντικειμενοστραφής σύνταξη, βασισμένη στη Java </li></ul><ul><li>Μεταγλωττιζόμενος κώδικας </li></ul><ul><li>Microsoft </li></ul><ul><li>έτος: 2002 | εκδοση: 2.0 </li></ul><ul><li>Προγραμματισμός σε οποιαδήποτε γλώσσα του .NET </li></ul><ul><li>Αντικειμενοστραφές framework </li></ul><ul><li>Μεταγλωττιζόμενος κώδικας </li></ul>
    3. 3. Οι πιο συνηθισμένες Web Development Platforms Operating System DBMS Platform Acronym Διείσδυση (NetCraft, Μάϊος 2007) LAMP/WAMP WISA MySQL MS SQL Server any Linux, Windows Windows any Apache IIS Apache Tomcat PHP ASP.NET JSP Web Server 56% 31% 2%
    4. 4. Τι είναι η ASP.NET; <ul><li>Τμήμα του .NET Framework </li></ul><ul><li>Διάδοχος της ASP </li></ul><ul><li>Αντικειμενοστραφές περιβάλλον </li></ul><ul><li>Component-based </li></ul><ul><li>Έμφαση στην ταχεία ανάπτυξη εφαρμογών (RAD) </li></ul><ul><li>Δημιουργία web services </li></ul><ul><li>Αφηρημένο προγραμματιστικό μοντέλο </li></ul>
    5. 5. Το μοντέλο των Web Forms Κλασικό μοντέλο (PHP, ASP Classic κτλ.) Mοντέλο Web Forms (ASP.NET) 'stateful' programming over a stateless protocol Browser Server Request Response Browser Server State
    6. 6. Περιεχόμενα <ul><li>Δομή του κώδικα ASP.NET </li></ul><ul><li>Δημιουργία νέου website </li></ul><ul><li>Το περιβάλλον εργασίας του VS.NET 2005 </li></ul><ul><li>Κατασκευή μιας Web Form </li></ul><ul><li>Events και Postback </li></ul><ul><li>Διατηρώντας το state </li></ul><ul><li>Δημιουργία μιας βάσης δεδομένων </li></ul><ul><li>Databinding </li></ul>
    7. 7. Περιεχόμενα <ul><li>Ρυθμίζοντας το website </li></ul><ul><li>Debugging & Monitoring </li></ul><ul><li>Master Pages </li></ul><ul><li>Sitemaps </li></ul><ul><li>Προχωρημένες λειτουργίες </li></ul>
    8. 8. Περιεχόμενα <ul><li>Δομή του κώδικα ASP.NET </li></ul><ul><li>Δημιουργία νέου website </li></ul><ul><li>Το περιβάλλον εργασίας του VS.NET 2005 </li></ul><ul><li>Κατασκευή μιας Web Form </li></ul><ul><li>Events και Postback </li></ul><ul><li>Διατηρώντας το state </li></ul><ul><li>Δημιουργία μιας βάσης δεδομένων </li></ul><ul><li>Databinding </li></ul>
    9. 9. Δομή του κώδικα ASP.NET <ul><li>Παράδειγμα μιας σελίδας ASP.NET (αρχείο .aspx) </li></ul>
    10. 10. Δομή του κώδικα ASP.NET <ul><li>Παράδειγμα μιας σελίδας ASP.NET (αρχείο .aspx) </li></ul><!-- Page Directives --> <% @ Page Language =&quot;C#&quot; %> <!-- Code Section --> < script runat =&quot;server&quot;> protected void MakeUpper ( object sender, EventArgs e) { ResultLabel . Text = (InputTextBox . Text) . ToUpper(); } </ script > <!-- Layout --> < html > < head >< title > Sample ASP.NET Page </ title ></ head > < body > < h1 > Convert to Uppercase </ h1 > < form id =&quot;form1&quot; runat =&quot;server&quot;> < asp : TextBox ID =&quot;InputTextBox&quot; runat =&quot;server&quot;></ asp : TextBox > < asp : Button ID =&quot;Button&quot; runat =&quot;server&quot; Text =&quot;Go&quot; OnClick =&quot;MakeUpper&quot;/> < hr /> Results: < br /> < asp : Label ID =&quot;ResultLabel&quot; runat =&quot;server&quot; Text =&quot;&quot;></ asp : Label > </ form > </ body > </ html >
    11. 11. Διαχωρίζοντας τη λογική από την παρουσίαση page_inline.aspx Χωρίς διαχωρισμό (inline code) <!--Page Directives--> <% @ Page Language =”C#” %> <!--Code Section--> < script runat =”server”> ... </ script > <!--Layout--> < html > ... </ html > page_codebehind.aspx Με διαχωρισμό (code-behind) page_codebehind.aspx.cs public class page_codebehind { // Code } <!--Page Directives--> <% @ Page Language =”C#” CodeFile =”page_codebehind.aspx.cs” Inherits =&quot;page_codebehind&quot; %> <!--Layout--> < html > ... </ html >
    12. 12. Περιεχόμενα <ul><li>Δομή του κώδικα ASP.NET </li></ul><ul><li>Δημιουργία νέου website </li></ul><ul><li>Το περιβάλλον εργασίας του VS.NET 2005 </li></ul><ul><li>Κατασκευή μιας Web Form </li></ul><ul><li>Events και Postback </li></ul><ul><li>Διατηρώντας το state </li></ul><ul><li>Δημιουργία μιας βάσης δεδομένων </li></ul><ul><li>Databinding </li></ul>
    13. 13. Δημιουργία ενός νέου web site
    14. 14. Περιεχόμενα <ul><li>Δομή του κώδικα ASP.NET </li></ul><ul><li>Δημιουργία νέου website </li></ul><ul><li>Το περιβάλλον εργασίας του VS.NET 2005 </li></ul><ul><li>Κατασκευή μιας Web Form </li></ul><ul><li>Events και Postback </li></ul><ul><li>Διατηρώντας το state </li></ul><ul><li>Δημιουργία μιας βάσης δεδομένων </li></ul><ul><li>Databinding </li></ul>
    15. 15. Το Περιβάλλον εργασίας του VS.NET 2005
    16. 16. Περιεχόμενα <ul><li>Δομή του κώδικα ASP.NET </li></ul><ul><li>Δημιουργία νέου website </li></ul><ul><li>Το περιβάλλον εργασίας του VS.NET 2005 </li></ul><ul><li>Κατασκευή μιας Web Form </li></ul><ul><li>Events και Postback </li></ul><ul><li>Διατηρώντας το state </li></ul><ul><li>Δημιουργία μιας βάσης δεδομένων </li></ul><ul><li>Databinding </li></ul>
    17. 17. Κατασκευή μιας web form
    18. 18. Κατασκευή μιας web form <ul><li>Βήμα 1: Σχεδιάστε το layout και σύρετε στη φόρμα τα απαραίτητα controls από το Toolbox </li></ul>
    19. 19. Κατασκευή μιας web form <ul><li>Βήμα 2: Προσαρμόστε τα properties των χρησιμοποιούμενων controls </li></ul>
    20. 20. Κατασκευή μιας web form <ul><li>Βήμα 3: Εισάγετε και προσαρμόστε κατάλληλα Validation controls όπου χρειάζεται </li></ul>
    21. 21. Κατασκευή μιας web form <ul><li>Βήμα 4: Γράψτε τον κώδικα των event handlers και συνδέστε τους με τα events που τους πυροδοτούν </li></ul>
    22. 22. Περιεχόμενα <ul><li>Δομή του κώδικα ASP.NET </li></ul><ul><li>Δημιουργία νέου website </li></ul><ul><li>Το περιβάλλον εργασίας του VS.NET 2005 </li></ul><ul><li>Κατασκευή μιας Web Form </li></ul><ul><li>Events και Postback </li></ul><ul><li>Διατηρώντας το state </li></ul><ul><li>Δημιουργία μιας βάσης δεδομένων </li></ul><ul><li>Databinding </li></ul>
    23. 23. Postback <ul><li>Ο μηχανισμός του postback είναι η καρδιά του προγραμματισμού στην ASP.NET </li></ul><ul><li>Κατά τη διάρκεια του postback, το state όλων των controls μιας φόρμας στέλνεται πίσω στον server </li></ul><ul><li>Τα events της φόρμας πυροδοτούνται μόνο κατά τη διάρκεια ενός postback </li></ul><ul><li>Εξ'ορισμού το postback στέλνει το state στην ίδια φόρμα που το προκάλεσε (reentrant form), αυτό όμως μπορεί να αλλάξει τροποποιώντας το property PostBackUrl. </li></ul>
    24. 24. Συχνά χρησιμοποιούμενα events
    25. 25. Περιεχόμενα <ul><li>Δομή του κώδικα ASP.NET </li></ul><ul><li>Δημιουργία νέου website </li></ul><ul><li>Το περιβάλλον εργασίας του VS.NET 2005 </li></ul><ul><li>Κατασκευή μιας Web Form </li></ul><ul><li>Events και Postback </li></ul><ul><li>Διατηρώντας το state </li></ul><ul><li>Δημιουργία μιας βάσης δεδομένων </li></ul><ul><li>Databinding </li></ul>
    26. 26. Αντικείμενα που χρησιμεύουν για τη διατηρηση του state Application Χρόνος Ζωής Ορατότητα Session ViewState Χρήση από την εκκίνηση ως τον τερματισμό της εφαρμογής στον server Καθολική <ul><li>Application.Add(“name”, value); </li></ul><ul><li>Application.Set(“name”, value) </li></ul><ul><li>Application.Get(“name”) </li></ul><ul><li>Application[“name”] </li></ul>από την εκκίνηση ως τη λήξη του session Σε όλες τις σελίδες του session <ul><li>Session.Add(“name”, value); </li></ul><ul><li>Session[“name”] </li></ul>όσο διαρκεί ο κύκλος ζωής της σελίδας Σε όλα τα requests που ξεκινούν από την ίδια σελίδα <ul><li>ViewState.Add(“name”, value); </li></ul><ul><li>ViewState[“name”] </li></ul>
    27. 27. Περιεχόμενα <ul><li>Δομή του κώδικα ASP.NET </li></ul><ul><li>Δημιουργία νέου website </li></ul><ul><li>Το περιβάλλον εργασίας του VS.NET 2005 </li></ul><ul><li>Κατασκευή μιας Web Form </li></ul><ul><li>Events και Postback </li></ul><ul><li>Διατηρώντας το state </li></ul><ul><li>Δημιουργία μιας βάσης δεδομένων </li></ul><ul><li>Databinding </li></ul>
    28. 28. SQL Server Express 2005 <ul><li>To Visual Studio περιλαμβάνει στην βασική εγκατάσταση τον SQL Server Express, μια ειδική έκδοση περιορισμένων δυνατοτήτων του SQL Server. </li></ul><ul><li>Μπορούμε να χρησιμοποιήσουμε SQL databases χωρίς να χρειάζεται να εγκαταστήσουμε την πλήρη έκδοση του SQL Server. </li></ul>
    29. 29. Προσθήκη βάσης δεδομένων σε web site <ul><li>Η επιλογή Add New Item... > SQL Database θα δημιουργήσει ένα νέο database (αρχείο .mdf) κάτω από τον φάκελο App_Data και θα το προσαρτήσει δυναμικά σε κάποιο instance του SQL Server που εκτελείται στο παρασκήνιο </li></ul><ul><li>Το instance με το οποίο θα γίνει η σύνδεση, καθώς και οι παράμετροι αυτής καθορίζονται από ένα Connection String. </li></ul><ul><ul><li>π.χ. “ data source= .SQLEXPRESS ;Integrated Security= SSPI ; AttachDBFilename= |DataDirectory|aspnetdb.mdf ;User Instance= true ” </li></ul></ul><ul><li>Το περιβάλλον του VS.NET μας παρέχει εργαλεία για να εργαστούμε με τη βάση δεδομένων </li></ul><ul><ul><li>table designer </li></ul></ul><ul><ul><li>table viewer/editor </li></ul></ul><ul><ul><li>diagram editor </li></ul></ul><ul><ul><li>... </li></ul></ul>
    30. 30. Περιεχόμενα <ul><li>Δομή του κώδικα ASP.NET </li></ul><ul><li>Δημιουργία νέου website </li></ul><ul><li>Το περιβάλλον εργασίας του VS.NET 2005 </li></ul><ul><li>Κατασκευή μιας Web Form </li></ul><ul><li>Events και Postback </li></ul><ul><li>Διατηρώντας το state </li></ul><ul><li>Δημιουργία μιας βάσης δεδομένων </li></ul><ul><li>Databinding </li></ul>
    31. 31. Data Source Objects & Databound Controls
    32. 32. Περιεχόμενα <ul><li>Ρυθμίζοντας το website </li></ul><ul><li>Debugging & Monitoring </li></ul><ul><li>Master Pages </li></ul><ul><li>Sitemaps </li></ul><ul><li>Προχωρημένες λειτουργίες </li></ul>
    33. 33. Αρχεία .config <ul><li>machine.config </li></ul><ul><ul><li>Καθολικές και default ρυθμίσεις για όλα τα websites </li></ul></ul><ul><ul><li>Βρίσκεται στο path: %WINDIR%Microsoft.NETFramework<version>CONFIG </li></ul></ul><ul><li>web.config </li></ul><ul><ul><li>Μπορεί να κάνει override τις default ρυθμίσεις του machine.config για κάποιο συγκεκριμένο website </li></ul></ul><ul><ul><li>Τοποθετείται στον ριζικό κατάλογο του website </li></ul></ul><ul><ul><li>Δεν είναι απαραίτητο για την εκτέλεση της εφαρμογής </li></ul></ul><ul><ul><li>Είναι απαραίτητο για το debugging. </li></ul></ul>
    34. 34. ASP.NET Web Site Administration Tool <ul><li>Ένα interface για τις κυριότερες επιλογές του web.config </li></ul><ul><li>Προσβάσιμο από την επιλογή Website > ASP.NET Configuration </li></ul><ul><li>Επιτρέπει, μεταξύ άλλων: </li></ul><ul><ul><li>την ενεργοποίηση/απενεργοποίηση των δυνατοτήτων debugging και tracing </li></ul></ul><ul><ul><li>τον καθορισμό μιας καθολικής error page για το site </li></ul></ul><ul><ul><li>την αυτόματη δημιουργία μιας βάσης δεδομένων για λογαριασμούς χρηστών </li></ul></ul><ul><ul><li>την διαχείριση των λογαριασμών χρηστών καθώς και των δικαιωμάτων πρόσβασής τους στους πόρους του site </li></ul></ul>
    35. 35. ASP.NET Web Site Administration Tool
    36. 36. Περιεχόμενα <ul><li>Ρυθμίζοντας το website </li></ul><ul><li>Debugging & Monitoring </li></ul><ul><li>Master Pages </li></ul><ul><li>Sitemaps </li></ul><ul><li>Προχωρημένες λειτουργίες </li></ul>
    37. 37. O ενσωματωμένος web server του VS.NET 2005 <ul><li>Σε άλλες πλατφόρμες, για να δοκιμάσουμε την εφαρμογή μας είναι απαραίτητο να διαθέτουμε πρόσβαση σε έναν πλήρως ρυθμισμένο web server, εγκατεστημένο τοπικά ή απομακρυσμένο. </li></ul><ul><li>Το VS.NET διαθέτει έναν ενσωματωμένο web server περιορισμένων δυνατοτήτων (Cassini). Έτσι, κατά τη φάση της ανάπτυξης και του debugging, δεν είναι απαραίτητο να διαθέτουμε έναν εξωτερικό web server. </li></ul><ul><li>O Cassini ενεργοποιείται αυτόματα και εξυπηρετεί την εφαρμογή μας κάθε φορά που επιλέγουμε “Start Debugging” (ή πατάμε F5). </li></ul>
    38. 38. O ενσωματωμένος web server του VS.NET 2005 <ul><li>Εξυπηρετεί μόνο αιτήματα που προέρχονται από τον τοπικό υπολογιστή, για λόγους ασφαλείας. </li></ul><ul><li>Τρέχει σε κάποια non-default θύρα (όχι στην 80 ή στην 8080), για να μην συγκρούεται με τυχόν άλλους εγκατεστημένους web servers. </li></ul><ul><li>Επιτρέπει την ανάπτυξη web εφαρμογών ακόμα και κάτω από λειτουργικά συστήματα που δεν επιτρέπουν την εγκατάσταση του IIS, όπως Windows XP Home. </li></ul>
    39. 39. Tracing <ul><li>To tracing μας επιτρέπει να παρακολουθήσουμε την πορεία εκτέλεσης της εφαρμογής μας για τους χρήστες που την χρησιμοποιούν. </li></ul><ul><li>Μας εξυπηρετεί σε περιπτώσεις όπου οι χρήστες αντιμετωπίζουν προβλήματα που δεν μπορούμε να αναπαράγουμε στον υπολογιστή μας </li></ul><ul><li>Ενεργοποιείται στο web.config ή μέσα από το ASP.NET Configuration Tool </li></ul><ul><li>Η κληση Trace.Write() μας επιτρέπει να παρεμβάλουμε τα δικά μας μηνύματα στο trace </li></ul><ul><li>Ζητώντας μέσα από τον browser το αρχείο trace.axd στον ριζικό κατάλογο του site, αποκτούμε πρόσβαση στον Trace Viewer </li></ul>
    40. 40. Trace Viewer
    41. 41. Περιεχόμενα <ul><li>Ρυθμίζοντας το website </li></ul><ul><li>Debugging & Monitoring </li></ul><ul><li>Master Pages </li></ul><ul><li>Sitemaps </li></ul><ul><li>Προχωρημένες λειτουργίες </li></ul>
    42. 42. Master Pages <ul><li>Νέα λειτουργία της ASP .NET 2.0 </li></ul><ul><li>Ένα Master Page (αρχείο .master) ορίζει το στατικό layout της σελίδας </li></ul><ul><li>Πολλές σελίδες του ίδιου website μπορούν να μοιράζονται το ίδιο master page </li></ul><ul><li>Ένα website μπορεί να περιλαμβάνει πολλά master pages </li></ul><ul><li>Το χρησιμοποιούμενο master page καθορίζεται από το property Page.MasterPageFile </li></ul><ul><li>Μια σελίδα πρέπει να προετοιμαστεί κατάλληλα για να μπορεί να χρησιμοποιήσει master page </li></ul><ul><ul><li>όλο το περιεχόμενο μεσα σε <asp:Content> tag </li></ul></ul><ul><ul><li>όχι <form> tags μέσα στη σελίδα </li></ul></ul>
    43. 43. Περιεχόμενα <ul><li>Ρυθμίζοντας το website </li></ul><ul><li>Debugging & Monitoring </li></ul><ul><li>Master Pages </li></ul><ul><li>Sitemaps </li></ul><ul><li>Προχωρημένες λειτουργίες </li></ul>
    44. 44. Sitemaps <ul><li>Ένα sitemap (αρχείο .sitemap) είναι ένα αρχείο XML που ορίζει τη δομή και την ιεραρχική σχέση μεταξύ των σελίδων του website. </li></ul><ul><li>Ένα website μπορεί να περιλαμβάνει περισσότερα από ένα sitemaps </li></ul><ul><li>Τα controls Menu και TreeView μπορούν να γίνουν bind σε ένα sitemap. </li></ul><ul><ul><li>Εύκολος τρόπος να δημιουργήσουμε το navigation του δικτυακού μας τόπου. </li></ul></ul>
    45. 45. Sitemaps <ul><li>Παράδειγμα αρχείου .sitemap </li></ul><? xml version = &quot; 1.0 &quot; encoding = &quot; utf-8 &quot; ?> < siteMap xmlns = &quot; http://schemas.microsoft.com/AspNet/SiteMap-File-1.0 &quot; > < siteMapNode url = &quot;&quot; title = &quot; Menu &quot; description = &quot;&quot; > < siteMapNode url = &quot; ~/home.aspx &quot; title = &quot; Αρχική Σελίδα &quot; description = &quot;&quot; /> < siteMapNode url = &quot; ~/about.aspx &quot; title = &quot; Πληροφορίες &quot; description = &quot;&quot; /> < siteMapNode url = &quot; ~/contact.aspx &quot; title = &quot; Επικοινωνία &quot; description = &quot;&quot; > < siteMapNode url = &quot; ~/phones.aspx &quot; title = &quot; Τηλέφωνο &quot; description = &quot;&quot; /> < siteMapNode url = &quot; ~/mailform.aspx &quot; title = &quot; Email &quot; description = &quot;&quot; /> </ siteMapNode > </ siteMapNode > </ siteMap >
    46. 46. Περιεχόμενα <ul><li>Ρυθμίζοντας το website </li></ul><ul><li>Debugging & Monitoring </li></ul><ul><li>Master Pages </li></ul><ul><li>Sitemaps </li></ul><ul><li>Προχωρημένες λειτουργίες </li></ul>
    47. 47. Προχωρημένες Λειτουργίες της ASP.NET <ul><li>Login Controls </li></ul><ul><li>Stylesheets </li></ul><ul><li>Skins </li></ul><ul><li>Themes </li></ul><ul><li>Localization </li></ul><ul><li>Personalization & User Profiles </li></ul><ul><li>Adaptive Rendering </li></ul><ul><li>Custom Controls </li></ul><ul><li>Application Data Caching </li></ul>

    ×