Βιβλίο asp

Πληροφορίες σχετικές με την ASP, ASP.NET και με τις εφαρμογές που είναι γραμμένες με αυτήν.

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
Kanonieris
Δημοσιεύσεις: 61
Εγγραφή: 01 Απρ 2005 11:30
Τοποθεσία: Θεσσαλονικη
Επικοινωνία:

Βιβλίο asp

Δημοσίευση από Kanonieris » 21 Οκτ 2005 20:18

Επειδή δεν γνωρίζω καθόλου asp, θέλω να μου προτείνετε ένα σοβαρό βιβλίο το οποίο να έχει και τίποτα για βάσεις κτλ.Επειδή γνωρίζω πολύ καλά την vb μου είπαν ότι έχουν πολλές ομοιότητες.Ισχύει αυτό?
Ευχαριστώ προκαταβολικά,

Άβαταρ μέλους
gcapnias
Δημοσιεύσεις: 14
Εγγραφή: 22 Οκτ 2005 13:53
Τοποθεσία: Σεπόλια, Αθήνα
Επικοινωνία:

Βιβλίο asp

Δημοσίευση από gcapnias » 22 Οκτ 2005 14:38

Ένα ωραίο βιβλίο που μπορείς να δεις είναι αυτό: Beginning Active Server Pages 3.0 της Wrox

Είναι αλήθεια ότι η VBScript που μπορεί να χρησιμοποιηθεί μέσα απο το .asp έχει πολλές ομοιότητες με την VB6, μιας και αποτελεί υποσύνολό της. Η δομές ελέγχου, ροής είναι ίδιες, έχουν κάποιες μικρές διαφορές στον τρόπο χρήσης της onerror αλλά σίγουρα θα μπορέσεις να κάνεις κάποια βήματα πολύ γρήγορα.

Η προσπέλαση των δεδομένω είναι ίδια με την VB6 με την χρήση ADO ή DAO.


George J.

Άβαταρ μέλους
skeftomilos
Script Master
Δημοσιεύσεις: 2888
Εγγραφή: 07 Ιαν 2005 07:22
Τοποθεσία: Αθήνα

Βιβλίο asp

Δημοσίευση από skeftomilos » 24 Οκτ 2005 02:37

Ναι, είναι αλήθεια. Κατ' αρχήν η ASP δεν είναι γλώσσα από μόνη της όπως η VB και η PHP, αλλά τεχνολογία. Μπορείς να επιλέξεις τη scripting γλώσσα που θα προγραμματίσεις. Είναι ήδη προεγκατεστημένες η VBScript και η JScript, και μπορείς να κατεβάσεις και άλλες όπως η PerlScript. Παράδειγμα:

Κώδικας: Επιλογή όλων

<%
'VBScript
If Request.Form&#40;"Password"&#41; = "foo666" Then
  Response.Redirect "secretpage.asp"
End If

//JScript
if &#40;Request.Form.Items&#40;'Password'&#41;.Item&#40;&#41; == 'foo666'&#41; &#123;
  Response.Redirect&#40;'secretpage.asp'&#41;
&#125;

#PerlScript
if &#40;$Request->Form->Items&#40;"Password"&#41;->Item&#40;&#41; == "foo666"&#41; &#123;
  $Response->Redirect&#40;"secretpage.asp"&#41;;
&#125;
%>
Τα αντικείμενα Request, Response και μερικά ακόμα είναι η υποδομή που παρέχει η ASP για την αλληλεπίδραση με τη σελίδα, ενώ οι γλώσσες με το δικό της τρόπο η κάθε μία χειρίζονται αυτά τα αντικείμενα. Καμία από τις γλώσσες δε μπορεί από μόνη της να έρθει σε επαφή με τον έξω κόσμο - αυτό σημαίνει scripting - γιατί απουσιάζουν όλες οι IO δυνατότητες (Open File κ.λπ.). Όπου αυτό χρειάζεται πρέπει να χρησιμοποιηθούν ActiveX objects όπως το Scripting.FileSystemObject, ADODB.Connection και Microsoft.XMLHTTP. Η VBScript συγκεκριμένα είναι πετσοκομμένη VBA, αλλά έχει και λίγα νέα στοιχεία, βασικά Regular Expressions και SetLocale.

Προσωπικά μετά από κάμποσες δουλειές σε ASP/VBScript κατέληξα να προτιμώ την ASP/JScript για τη συντομία των εκφράσεων (λιγότερη πληκτρολόγηση), το δυναμικό της χαρακτήρα, και την ομοιότητα με το client-side scripting. Μετά σε ASP.NET είδα ότι υπάρχει ένα μικρό άλμα από VBScript σε VB.NET, ενώ αντίθετα η υποστήριξη JScript συνεχίζεται αναλλοίωτη. Τώρα μαθαίνω PHP και βλέπω ότι αν και κάπως πρωτόγονη γλώσσα/πλατφόρμα, είναι φτιαγμένη περισσότερο για προγραμματιστές. Έχει πάρα πολλές ευκολίες σε σχέση με την ASP όπου θα χρειαστεί να φτιάχνεις εκ του μηδενός ρουτίνες για τα πιο απλά πράγματα, τις οποίες μετά θα πρέπει να κάνεις copy-paste σε κάθε νέο project.

Για σύγκριση ο παραπάνω κώδικας σε PHP:

Κώδικας: Επιλογή όλων

<?php
//PHP
if &#40;$_FORM&#91;'Password'&#93; == 'foo666'&#41; &#123;
  header&#40;"Location&#58; http&#58;//www.example.com/secretpage.asp"&#41;; exit;
&#125;
?>
To redirect είναι το μοναδικό σημείο που έχω δει μέχρι στιγμής να υπερέχει σε υποστήριξη η ASP! :)
The pure and simple truth is rarely pure and never simple. Ο μη νους δε σκέπτεται μη σκέψεις για το τίποτα.

Kanonieris
Δημοσιεύσεις: 61
Εγγραφή: 01 Απρ 2005 11:30
Τοποθεσία: Θεσσαλονικη
Επικοινωνία:

Βιβλίο asp

Δημοσίευση από Kanonieris » 25 Οκτ 2005 18:28

Και μιά απορία, τα connections με μια βάση Sql server γίνονται με τον ίδιο ακριβώς τρόπο με την vb?

Άβαταρ μέλους
gcapnias
Δημοσιεύσεις: 14
Εγγραφή: 22 Οκτ 2005 13:53
Τοποθεσία: Σεπόλια, Αθήνα
Επικοινωνία:

Βιβλίο asp

Δημοσίευση από gcapnias » 25 Οκτ 2005 20:58

Kanonieris έγραψε:Και μιά απορία, τα connections με μια βάση Sql server γίνονται με τον ίδιο ακριβώς τρόπο με την vb?
Ναι... Χωρίς καμιά αλλαγή. Ο παρακάτω κώδικας δουλεύει και για VB6, VBA, VBScript χωρίς καμιά αλλαγή...

Κώδικας: Επιλογή όλων

Dim cn, sSQL, rs

  set cn=CreateObject&#40;"ADODB.Connection"&#41;
  cn.ConnectionString="Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=northwind;Data Source=localhost"
  cn.Open
  sSQL="SELECT * FROM customers"
  set rs=cn.Execute&#40;sSQL&#41;
  cn.Close
  set cn=Nothing
  do while not rs.EOF

    &#123;...&#125;    

    rs.MoveNext
  loop
  set rs=Nothing



George J.

Άβαταρ μέλους
skeftomilos
Script Master
Δημοσιεύσεις: 2888
Εγγραφή: 07 Ιαν 2005 07:22
Τοποθεσία: Αθήνα

Βιβλίο asp

Δημοσίευση από skeftomilos » 26 Οκτ 2005 08:41

Πολύ σωστά. Αλλά για κάποιο λόγο που δεν τον έχω καταλάβει για να πω την αλήθεια, είναι προτιμότερο το Server.CreateObject από το απλό CreateObject.
The pure and simple truth is rarely pure and never simple. Ο μη νους δε σκέπτεται μη σκέψεις για το τίποτα.

Kanonieris
Δημοσιεύσεις: 61
Εγγραφή: 01 Απρ 2005 11:30
Τοποθεσία: Θεσσαλονικη
Επικοινωνία:

Βιβλίο asp

Δημοσίευση από Kanonieris » 26 Οκτ 2005 13:59

gcapnias έγραψε:
Ναι... Χωρίς καμιά αλλαγή. Ο παρακάτω κώδικας δουλεύει και για VB6, VBA, VBScript χωρίς καμιά αλλαγή...

:P καλή μαγκιά, και τόσο καιρό δεν το ξερα

Άβαταρ μέλους
gcapnias
Δημοσιεύσεις: 14
Εγγραφή: 22 Οκτ 2005 13:53
Τοποθεσία: Σεπόλια, Αθήνα
Επικοινωνία:

Βιβλίο asp

Δημοσίευση από gcapnias » 26 Οκτ 2005 16:29

skeftomilos έγραψε:Πολύ σωστά. Αλλά για κάποιο λόγο που δεν τον έχω καταλάβει για να πω την αλήθεια, είναι προτιμότερο το Server.CreateObject από το απλό CreateObject.
Αυτό είναι αλήθεια, για να γίνονται όλα τα objects in proccess με το applications του IIS που τρέχει το Web site και να υπάρχει καλύτερη διαχείριση της μνήμης για αύξηση της ταχύτητας του server.

Κατά βάση το λέγανε για τον IIS 4. Από και και πέρα το CreateObject είναι ομότιμο του Server.CreateObject και δεν υπάρχει κάποια διαφορά. Πιθανώς λόγω των αλλαγών στο COM που φέρουν οι εκδόσεις των Windows που φέρουν τον IIS 5.x (Windows 2000, Windows XP) και IIS6 (Windows 2003)


George J.

Άβαταρ μέλους
skeftomilos
Script Master
Δημοσιεύσεις: 2888
Εγγραφή: 07 Ιαν 2005 07:22
Τοποθεσία: Αθήνα

Βιβλίο asp

Δημοσίευση από skeftomilos » 26 Οκτ 2005 20:41

Νομίζω ότι τα COM αντικείμενα δε μπορούν να δημιουργηθούν out-of-process έτσι κι αλλιώς. Κάποια άλλη πιο ενδόμυχη αιτία πρέπει να υπάρχει...
The pure and simple truth is rarely pure and never simple. Ο μη νους δε σκέπτεται μη σκέψεις για το τίποτα.

Άβαταρ μέλους
gcapnias
Δημοσιεύσεις: 14
Εγγραφή: 22 Οκτ 2005 13:53
Τοποθεσία: Σεπόλια, Αθήνα
Επικοινωνία:

Βιβλίο asp

Δημοσίευση από gcapnias » 26 Οκτ 2005 21:28

skeftomilos έγραψε:Νομίζω ότι τα COM αντικείμενα δε μπορούν να δημιουργηθούν out-of-process έτσι κι αλλιώς. Κάποια άλλη πιο ενδόμυχη αιτία πρέπει να υπάρχει...
Μπορούν... Τι ρόλο νομίζεις ότι παίζουν τα ActiveX EXE projects της VB6;


George J.

Άβαταρ μέλους
skeftomilos
Script Master
Δημοσιεύσεις: 2888
Εγγραφή: 07 Ιαν 2005 07:22
Τοποθεσία: Αθήνα

Βιβλίο asp

Δημοσίευση από skeftomilos » 26 Οκτ 2005 22:08

Αν και έχω ασχοληθεί λίγο με ActiveX EXE projects δεν κατάλαβα τι ακριβώς είναι. Το σίγουρο είναι ότι δεν έχουν αντίστοιχο στον κόσμο του .NET. Επιπλέον είναι .exe και όχι .dll. Υποθέτω ότι επικοινωνούν με τον server μέσω DCOM, και δεν ξέρω κατά πόσο μπορούν να δημιουργηθούν με CreateObject. Πάντως έχουν κακή απόδοση και θα πρέπει να αποφεύγονται αν δεν υπάρχει πολύ συγκεκριμένος λόγος.
The pure and simple truth is rarely pure and never simple. Ο μη νους δε σκέπτεται μη σκέψεις για το τίποτα.

Άβαταρ μέλους
gcapnias
Δημοσιεύσεις: 14
Εγγραφή: 22 Οκτ 2005 13:53
Τοποθεσία: Σεπόλια, Αθήνα
Επικοινωνία:

Βιβλίο asp

Δημοσίευση από gcapnias » 26 Οκτ 2005 23:59

skeftomilos έγραψε:Αν και έχω ασχοληθεί λίγο με ActiveX EXE projects δεν κατάλαβα τι ακριβώς είναι. Το σίγουρο είναι ότι δεν έχουν αντίστοιχο στον κόσμο του .NET. Επιπλέον είναι .exe και όχι .dll. Υποθέτω ότι επικοινωνούν με τον server μέσω DCOM, και δεν ξέρω κατά πόσο μπορούν να δημιουργηθούν με CreateObject. Πάντως έχουν κακή απόδοση και θα πρέπει να αποφεύγονται αν δεν υπάρχει πολύ συγκεκριμένος λόγος.
Αυτή είναι η μισή ιστορία... Η άλλη μισή είναι ότι μπορούν να σηκωθούν σε δικό τους process, μπορείς να έχεις pool από αυτά, λειτουργούν σαν dll αφού μπορούν να δημιουργηθούν με CreateObject και αν τρέχεις το filename.exe /RegServer είναι σαν να κάνεις regsvr32 filename.dll...

Δεν θέλεις να τα καλέσεις μέσα απο IIS. Αλλά μπορείς να το κάνεις αν είναι ανάγκη...


George J.

Άβαταρ μέλους
skeftomilos
Script Master
Δημοσιεύσεις: 2888
Εγγραφή: 07 Ιαν 2005 07:22
Τοποθεσία: Αθήνα

Βιβλίο asp

Δημοσίευση από skeftomilos » 27 Οκτ 2005 10:16

Βρήκα τα εξής στο MSDN. Όχι ότι καταλαβαίνω και πολλά για να είμαι ειλικρινής. :)
Server.CreateObject vs. CreateObject

Recommendations
Use Server.CreateObject. If you're using MTS/COM+ library packages, use Server.CreateObject to avoid blocking of threads.

Why
CreateObject equates to calling CoCreateInstance by the scripting engine. If you use CreateObject instead of Server.CreateObject, the following things occur:

- ASP is not aware of the object.
- OnStartPage/OnEndPage page methods are not called.
- ASP does not know the threading model of the object.

Server.CreateObject equates to GetObjectContext.CreateInstance. This means ASP is aware of the object and knows its threading model. In addition, by calling Server.CreateObject, your component will be in the same transaction as your ASP page if your ASP page is transactional. (Just note that a transactional page may imply an avoidable coupling of business rules and the presentation layer.)
The pure and simple truth is rarely pure and never simple. Ο μη νους δε σκέπτεται μη σκέψεις για το τίποτα.

Απάντηση

Επιστροφή στο “ASP, ASP.NET”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες