Συνοπτικός οδηγός για την πρόσβαση σε δεδομένα

Όπως παρουσιάστηκε από τον Shyam Pather στην TechEd 2010: Data Development GPS: Guidance for Choosing with Right Data Access Technology for Your Application Today

Γενικός Οδηγός

Πρώτα από όλα, δεν υπάρχει «σωστός τρόπος» για να υλοποιήσει κάποιος την πρόσβαση στα δεδομένα στις εφαρμογές του: οι πολλαπλές τεχνολογίες έχουν δημιουργηθεί με το χρόνο, έχουν σκοπό να ικανοποιήσουν διαφορετικές απαιτήσεις. Η επιλογή της σωστής τεχνολογίας είναι θέμα κατανόησης, του πως οι ανάγκες των εφαρμογών σας, έρχονται σε αντιστοίχηση με αυτές τις απαιτήσεις.

Κατά δεύτερον, οι τεχνολογίες πρόσβασης δεδομένων θα συνεχίσουν να εξελίσσονται, έτσι συστήνεται να σχεδιάζετε τις εφαρμογές σας με τέτοιο τρόπο, ώστε να είναι δυνατό να εξυπηρετηθούν από αυτή την εξέλιξη. Έτσι, θα μπορείτε επωφεληθείτε των νέων τεχνολογιών, όταν αυτές θα γίνονται διαθέσιμες – όταν είναι σκόπιμο να γίνει μια τέτοια αλλαγή – με τις ελάχιστες δυνατόν επιπτώσεις στο υπόλοιπο της εφαρμογής.

Αυτό που είναι σημαντικότερο, στη συνέχεια, δεν είναι η ίδια η τεχνολογία πρόσβασης δεδομένων που χρησιμοποιείται, αλλά τα patterns που υλοποιούνται στην εφαρμογή, ώστε να είστε σε θέση για τη συνεχιζόμενη υιοθέτηση πιο προηγμένων τεχνολογιών, όπως αυτές θα γίνονται διαθέσιμες.

Με τα παραπάνω στο μυαλό σας, αν αυτό που έχετε τώρα δουλεύει, μην το ξαναγράψετε μόνο και μόνο για να το κάνετε. Η Microsoft έχει δεσμευθεί και στην υποστήριξη των υπαρχόντων τεχνολογιών, αλλά και στην παροχή ενός τρόπου μετάβασης στις νέες τεχνολογίες πρόσβασης δεδομένων, όταν πιστεύετε ότι υπάρχει λόγος για μια τέτοια αναβάθμιση.

Οδηγός για την φυσική πρόσβαση

  • Για τις καινούργιες native εφαρμογές που χρειάζονται ένα γενικό abstraction layer με υποστήριξη για πολλαπλά data sources, κάντε χρήση του ODBC. Αυτό είναι το πιο αποτελεσματικό, με πολλαπλές δυνατότητες API, στο οποίο η Microsoft θα συνεχίσει να επενδύει.
  • Για ειδικές περιπτώσεις, που απαιτούν πρόσβαση στα δεδομένα με υψηλές επιδόσεις για τον SQL Server, χρησιμοποιήστε το SQL Server Native Client (C/C++), τον JDBC driver (Java/JavaScript), ή τον PHP driver σε συνδυασμό με την γλώσσα ανάπτυξης που έχετε επιλέξει.
  • Αν έχετε επενδύσει σε εφαρμογές που χρησιμοποιούν VBA και ASP classic, συνεχίστε να κάνετε χρήση του ADO. Το ADO θα συνεχίσει να υποστηρίζεται (περιλαμβανομένων και security fixes) αλλά δεν θα υπάρξουν καινούργια χαρακτηριστικά.
  • Αν στην πραγματικότητα θέλετε πρόσβαση δεδομένων που να βασίζεται σε τεχνολογία COM, κάντε χρήση του OLEDB. Κι αυτό θα συνεχίσει να υποστηρίζεται, αλλά και σε αυτό δεν θα υλοποιηθούν καινούργια χαρακτηριστικά.

Οδηγός για την πρόσβαση μέσω .NET

  • Οι νέες εφαρμογές θα πρέπει να ξεκινούν να αναπτύσσονται με στραμμένη την προσοχή τους στο ADO.NET Entity Framework για το.NET 4, για χρήση σαν τεχνολογία πρόσβασης δεδομένων. Η χρήση του Entity Framework (συμπεριλαμβανομένου του LINQ to Entities)είναι η καταλληλότερη για το 80-90% των εφαρμογών που πρόκειται να δημιουργηθούν.
    • Το Entity Framework παρουσιάστηκε για πρώτη φορά με το.NET 3.5 SP1. Υπάρχουν πολλές βελτιώσεις στην έκδοσή του που έρχεται με το .NET 4 και οι περισσότερες εξελίξεις που θα γίνουν στις τεχνολογίες πρόσβασης δεδομένων στο μέλλον, θα έχουν σχέση με το Entity Framework.
    • Τα σενάρια που χρησιμοποιούνται τα ADO.NET DataSets, γενικά μπορούν θα χειριστούν το ίδιο καλά και από το Entity Framework.
    • Το Entity Framework μπορεί να υιοθετηθεί σταδιακά από της εφαρμογές που χρησιμοποιούν το ADO.NET Core. Για παράδειγμα, ο περισσότερος κώδικας για τις διαδικασίες σύνδεσης/ αναζήτησης/ ενημέρωσης του ADO.NET Core, μπορεί πολύ εύκολα να αντικατασταθεί με την απλή, εισαγωγικού επιπέδου, χρήση του Entity Framework. (Ένα τέτοιο παράδειγμα υπάρχει στο βίντεο της πρότυπης παρουσίασης “Data Development GPS” για τη χρονική διάρκεια 30:05 to 35:12).
    • Για μια επισκόπηση των δυνατοτήτων του Entity Framework, δείτε την παρουσίαση “Evolving the Entity Framework in .NET 4 and Beyond” από την PDC 2009, και την παρουσίαση “Overview of the Microsoft ADO.NET Entity Framework” από την TechEd 2010.
    • Για περισσότερες λεπτομέρειες, μπορείτε να δείτε την παρουσίαση “Deep Dive into the ADO.NET Entity Framework” από την TechEd 2010.
  • Κάντε χρήση του ADO.NET Core όταν απαιτείται μεγαλύτερο επίπεδο ελέγχου:
    • Το ADO.NET Core παραμένει η βάση για την πρόσβαση δεδομένων για το .NET.
    • Παρέχει τον πιο κοινή και γνωστή μέθοδο ανάπτυξης για πρόσβαση δεδομένων (σύνδεση, αναζήτηση, ενημέρωση).
    • Τα DataSets και το LINQ to DataSet θα συνεχίσουν να υποστηρίζονται.
    • Για απλές εφαρμογές, που δεν απαιτείται κάτι περισσότερο από μια απλή σύνδεση στη βάση δεδομένων που θα μεταφέρονται απλώς αποτελέσματα, το ADO.NET είναι μια καλή επιλογή για να κάνετε την δουλειά γρήγορα.
    • Αν έχετε απαιτήσεις για απόλυτο έλεγχο, το ADO.NET μπορεί να σας δώσει περισσότερες δυνατότητες από το Entity Framework.
  • Το LINQ to SQL υποστηρίζεται και θα συνεχίσει να υποστηρίζεται, αλλά δεν θα έχει την ίδια εξέλιξη σαν όπως άλλες τεχνολογίες.
Σημείωση: Που θα πρέπει να βάλω τον data access κώδικά μου;

Είναι συχνό φαινόμενο να υπάρχει data access κώδικας διάχυτος παντού σε μία εφαρμογή και καθώς η εφαρμογή εξελίσσεται, αυτός να είναι ο λόγος που γίνεται όλο και πιο δύσκολη η συντήρησή της. Η καλύτερη οδηγία σε αυτή την περίπτωση είναι, να υιοθετηθεί ένα από τα structural patterns για να γίνει διαχωρισμός της λειτουργικότητας:

  • Τα patterns Model-View-Controller (MVC), Model-View-Presenter (MVP), και το νεότερο Model-View-ViewModel (MVVM) είναι μια καλή προσέγγιση
  • Στο Model layer, μπορείτε να κρύψετε την πρόσβαση στα δεδομένα πίσω από ένα repository και να χρησιμοποιήσετε POCOs (plain old CLR objects) για να αναπαραστήσετε τα δεδομένα σας.
    • Το Repository pattern κρύβει τον data access κώδικα πίσω από ένα interface. Αυτό είναι που το Entity Framework δημιουργεί για εσάς αυτόματα.
    • Κάντε χρήση των POCOs για την αναπαράσταση των δεδομένων σας: κάθε ένα από τα αντικείμενα κρατάει δεδομένα, που όμως δεν είναι άμεσα συνδεμένα με το data access layer (το οποίο έχει γίνει abstracted από το repository interface).

Οδηγός για την πρόσβαση μέσω WCF Data Services και OData

Τα WCF Data Services δημιουργήθηκαν επειδή τα περισσότερα web services προσφέρουν περισσότερες δυνατότητες, από το να έχουν σαν μοναδικό σκοπό να δώσουν πρόσβαση σε ένα μοντέλο δεδομένων. Η τεχνολογία αποτελείται από τα εξής:

  • Ένα server framework για την δημιουργία REST-based data-centric web services επάνω από ένα μοντέλο δεδομένων με την απαιτούμενη ασφάλεια.
  • Client libraries για την προσπέλαση αυτών των services (.NET, AJAX, PHP, Silverlight, Excel, WinPhone 7, Java, JavaScript, Objective-C, κτλ.).
  • Ένα πρωτόκολλο βασισμένο στο REST που ονομάζεται OData (ή αλλιώς Open Data Protocol). Δείτε περισσότερα στο www.odata.org.

Εξειδικευμένη οδηγία:

  • Κάντε χρήση του WCF Data Services/OData για services που κυρίως παρέχουν πρόσβαση σε δεδομένα με μερικές (αν υπάρχουν κάποιες) μεθόδους στο service – αυτό σημαίνει ότι ενδιαφέρεστε να προσφέρεται πρόσβαση σε ένα μοντέλο δεδομένων.
    • Το μοντέλο δεδομένων μπορεί να προέρχεται από πολλαπλές πηγές: να είναι ένα Entity Data Model βασισμένο στο Entity Framework (το ευκολότερο), μέσω ενός Reflection Provider επάνω σε CLR objects, διαμέσου των interfaces του Data Service Provider, ή μέσω ενός customer implementation του OData specification.
  • Χρησιμοποιήστε μόνο του το WCF για services που πρωταρχικά παρέχουν λειτουργίες μέσω του service με τα δεδομένα να έχουν δεύτερο ρόλο.
  • Τα δύο κύρια σενάρια για WCF Data Services είναι:
    • Σχεδιασμός εφαρμογών client-server, που έχουν γίνει deployed και τα δύο layers μαζί, σε συνδυασμό με την χρήση ενός web service που παρέχει πρόσβαση σε δεδομένα. Η λειτουργικότητα εμφανίζεται στο τελικό interface του χρήστη.
    • Online services που παρέχουν πρόσβαση σε δεδομένα στο web με loosely-coupled clients και servers; η κατάσταση και η λειτουργικότητα παρέχονται μέσα από το service interface.

Δείτε σχετικά βίντεο στη διεύθυνση: http://msdn.microsoft.com/en-us/data/videos.aspx#dataservices.

Αφήστε μια απάντηση

Η ηλ. διεύθυνση σας δεν δημοσιεύεται. Τα υποχρεωτικά πεδία σημειώνονται με *

*