Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.

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

3.559 visualizaciones

Publicado el

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

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

Publicado en: Tecnología
  • Sé el primero en comentar

Γνωριμία με την 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>

×