Αν και η απάντηση του Μάνου είναι ακριβής, εντούτοις πιστεύω οτι το νέο φίλο μας θα τον μπερδέψει με την απλότητά της. Ας την κάνουμε λοιπόν λίγο πιό ...περίπλοκη:
Εν αρχή ήταν η HTML.
Τι ήταν η HTML; Η γλώσσα με την οποία γράφαμε (και γράφουμε) ιστοσελίδες. Ηταν γλώσσα προγραμματισμού; Οχι, ήταν γλώσσα σήμανσης ή markup όπως λεει και το όνομά της (Hyper Text Markup Language). Που "έτρεχε" η HTML (εννοούμε έτρεχε στον υπολογιστή που "σέρβιρε" τις σελίδες στο internet ή αλλιώς server, ή στο δικό μας υπολογιστή που τις ζητούσε και τις εμφάνιζε (client); ) Ετρεχε στον client και μόνο εκεί. Και μάλιστα αναλόγως το browser που είχαμε είχαμε και ελαφρές διαφοροποιήσεις στο τι βλέπαμε.
"Ωραία μας τα είπες μεγάλε, αλλα ακόμα δεν είπες τίποτα για προγ/σμό", θα πει κάποιος. Να σας πω λοιπον. Μαζί με την HTML "κόλλησε" μετά απο λίγο και η ένθετη γλώσσα scripting. Τι ήταν αυτή; Μια γλώσσα "scripting" είναι μια γλώσσα προγραμματισμού αλλα χωρίς τα εργαλεία και / ή τη δομή ενός περιβάλλοντος ανάπτυξης εφαρμογών. Συνήθως χρησιμοποιείται ένθετη σε περιβάλλοντα για άλλες, βοηθητικές δουλειές. Και ιδού η javascript, και η vbscript.
Που "ετρεχαν" αυτές; Στις σελίδες HTML μας περιτριγυρισμένες από ειδικά tags (script tags) ωστε να καταλαβαίνει ο browser οτι δεν επρόκειτο για html. Ναι, αλλα ΠΟΥ "ετρεχαν" αυτές; Στον client! Δηλαδή στον browser μας! Μαλιστα και εκεί υπήρχαν ιδιαιτερότητες (π.χ. μόνο ο Internet Explorer μπορούσε να καταλάβει vbscript, το Netscape καταλάβαινε διαφορετικά τη javascript κλπ).
Ωραία. Τι έχουμε μεχρι τώρα; Ενα σύνολο markup και script πραγμάτων τα οποια εκτελούνται τοπικά στον υπολογιστή μας. Τι μας λείπει; Αααα, πολλά! Διασύνδεση με database, χρήση της επεξεργαστικής ισχύος του server για την παροχή αποτελεσμάτων, rendering μιας σελίδας αποκλειστικά στο server σύμφωνα με κάποιες συνθήκες κλπ κλπ...δηλαδή μας λείπει.....
...το Server-Side Scripting! Η αλλιώς, μια γλώσσα προγραμματισμού / τεχνολογία η οποια να επιτρέπει πραγματα να ΕΚΤΕΛΟΥΝΤΑΙ στο server και όχι απλά να υπάρχουν.
Εδώ μπαίνει η παλιά μας καλή ASP (2.0, 3.0 και δεν συμμαζεύεται) (και διάφορες άλλες server-side scripting technologies όπως PHP, JSP και δεν συμμαζεύεται). Ας δούμε λίγο τι ήταν η παλιά ASP:
- Ηταν μια τεχνολογία με την οποια μπορούσες να τρέξεις κώδικα στο server.
- Μπορούσες να χρησιμοποιήσεις javascript η vbscript.
- Ειχες ειδικές επεκτάσεις για να χειρίζεσαι πράγματα του server όπως τα session variables, τα http responses και δεν συμμαζεύεται.
- Μπορούσες επιτέλους να κάνεις οτι γουστάρεις στο server και να σερβίρεις πίσω απλη, αγνή HTML χωρίς προβλήματα συμβατοτήτων (ααααν ήθελες βέβαια).
Και ερχόμαστε επιτέλους στο ερώτημά μας: Τι είναι η ASP.NET; Ειναι σχεδόν τα παραπάνω, και όπως αναλύεται παρακάτω:
- Ειναι μια τεχνολογία με την οποια μπορείς να τρέξεις κώδικα στον web server.
- Μπορείς να χρησιμοποιήσεις vb.net, c# ή οποιαδήποτε άλλη γλώσσα του .net framework.
- Μπορείς να χειριστείς ο,τι επιδέχεται χειρισμού από το Web Server.
- Εκτος από το να κάνεις οτι γουστάρεις στο server και να σερβίρεις πίσω απλη, αγνή HTML μπορείς ακόμα να σερβίρεις περίπλοκη, dynamic HTML συμβατή με όλους τους browsers, να φτιάχνεις εύκολα διαδικασίες που στο ASP 3.0 έπαιρναν έναν αιώνα (συνδεση με database, login/logout χρηστών, κλπ κλπ), να συνδέσεις την εφαρμογή που φτιάχνεις με άλλες εφαρμογές, να, να, να....
Ας πούμε λοιπόν οτι δεν είναι άπλά μια γλώσσα προγραμματισμού (εμπεριέχει όμως μια - της επιλογής σας - ) ούτε μια μόνο τεχνολογία (ειναι πολλές, μικρές, που συνθέτουν ένα "πακέτο"). Ας πουμε, χαριν απλότητας οτι είναι μια "πλατφόρμα". Κατι δηλαδή που σου επιτρέπει να φτιάξεις εύκολα και γρήγορα από ιστοσελίδες μέχρι πλήρεις εφαρμογές internet και intranet. Και, φυσικά, ακόμα πληρέστερη γίνεται μαζί με το περιβάλλον ανάπτυξης (το οποίο δεν ειναι όμως απαραίτητο να το έχει κανείς), δηλ. το visual studio.
Σωτήρης Φιλιππίδης
DotSee Web Services