Όσοι ασχοληθήκαμε με τον σχεδιασμό και την υλοποίηση web applications/sites με το .Net framework , ξεκινήσαμε με τα ASP.Net web forms.Βασικά ήταν ο μόνος τρόπος να το κάνεις όταν το .Net framework μπήκε στην ζωή μας πριν 10 χρόνια.
Ο σκοπός των ASP.Net web forms ήταν να μας προσφέρει ένα RAD (rapid application development) τρόπο/paradigm για να υλοποιήσουμε web applications με ένα τρόπο που ήταν πολύ οικείος σε developers που έκαναν "forms over data" applications χρησιμοποιώντας το "παλιό" Visual Studio. Αντικατέστησε το Classic ASP(scripting) με ένα strongly typed μοντέλο.Είχαμε πλέον compiled languages και στην ουσία ένιωθες ότι προγραμμάτιζες "φόρμες" όπως έκανες π.χ με VB 6.0 για το desktop....
Ο βασικός σκοπός ήταν να γίνει στην ουσία αυτό το οποίο λέμε "Abstract the web".Η αλήθεια είνα ότι σαν developer δεν μπορούσες να επηρεάσεις το "παραγόμενο" HTML. Τα τελευταία χρόνια (και πολύ σωστά κατά την γνώμη μου) έχουμε μια πολύ μεγάλη στροφή προς τα web standards και γλώσσες όπως η Javascript είναι αυτό που λέμε first-class citizen.
Το ASP.Net MVC δεν ήρθε να αντικαταστήσει το ASP.Net web forms model.Απλά είναι ένα διαφορετικό project type αν θέλεις. Φυσικά δεν έχουν καμία σχέση με την πραγματικότητα οι φήμες που υποστηρίζουν ότι τα web forms θα εγκαταλειφθούν από την Microsoft. Το ASP.Net MVC "πατάει" πάνω στο ASP.Net framework.Υποστηρίζει caching,sessions,master pages.Δεν υπάρχει όμως viewstate & page lifecycle.
Το ASP.Net MVC "αγκαλιάζει"/embraces the web. Έχεις πολύ μεγαλύτερη παρέμβαση/control στο παραγόμενο HTML.
Υποστηρίζει αυτό το οποίο λέμε seperation of concerns (μέσα από τα Controllers,Views,Models) και είναι αυτό που λέμε πιο software pattern friendly.
To μοντέλο αυτό σου επιτρέπει να κάνεις τον κώδικα του extend/maintain πολύ πιο εύκολα. Σαφώς μπορείς να κάνεις καλύτερο testing(test driven development).
Αν θέλεις να δεις ποια features του ASP.Net είναι διαθέσιμα/compatible και στα δύο μοντέλα δες
εδώΠολλά ενδιαφέροντα και δημοφιλή ASP.Net free & commercial projects,ξαναγράφονται σε ASP.Net MVC (βλέπε NopCommerce).
Εγώ πλέον δουλεύω τις εφαρμογές μου μόνο με ASP.Net MVC. Στην έκδοση 4.0 έχει υποστήριξη για διάφορα devices (mobile features)
Φυσικά υπάρχει το Learning curve.Σου προτείνω ανεπιφύλακτα να ξεκινήσεις από
εδώ και να δεις οπωσδήποτε τα εκπλητικά videos από την Pluralsight για το ASP.Net MVC που είναι στην ίδια σελίδα με το προηγούμενο link.
Αν θες να δεις ένα απλό παράδειγμα (Step-by step) για ASP.Net MVC δες αυτό
εδώ το post από το blog μου.
Νικόλαος Καντζέλης
BSc, MSc, MCAS, MCPD, MCITP, MCTS,MCP, MCT