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

Όπως παρουσιάστηκε από τον 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.

Tagged with: ,
Posted in Ιστολόγιο

Μια καινούργια αρχή…

Όλα άρχισαν όταν κατά λάθος πάτησα την διαγραφή του site του domain μου, κατά την διάρκεια μιας λογομαχίας που είχα με το μικρότερο γιο μου…

Posted in Ιστολόγιο

IT Pro | Dev Connections 2010

Όταν ξεκίνησε, στα μέσα του καλοκαιριού, η διαδικασία για την σχεδίαση και τον συντονισμό του IT Pro | Dev Connections 2010, στόχος ήταν μια διήμερη εκδήλωση που θα είχε δύο παράλληλα tracks, ένα για επαγγελματίες του IT και ένα για προγραμματιστές, και επτά παρουσιάσεις για κάθε track.

Σήμερα ανακοινώθηκε το τελικό πρόγραμμα των παρουσιάσεων του IT Pro | Dev Connections 2010:

  • Συνολικά είκοσι εννιά (29) παρουσιάσεις σε τέσσερα (4) παράλληλα tracks – αναλυτικά οι παρουσιάσεις:
  • Η εναρκτήρια παρουσίαση που απευθύνεται και στα δύο tracks,
  • δεκαπέντε (15) παρουσιάσεις για επαγγελματίες του ΙΤ, και
  • δεκατρείς (13) παρουσιάσεις για προγραμματιστές!

Ήδη έχει δημοσιευτεί η αναλυτική θεματολογία των παρουσιάσεων που αφορούν τους προγραμματιστές και σύντομα για γίνει το ίδιο και για τους επαγγελματίες του IT.

Θα θέλαμε να ευχαριστήσουμε όλους όσους προσφέρθηκαν, ώστε να γίνει η θεματολογία πιο πλούσια – τους έλληνες MVPs, το AthCon, καθώς και το ελληνικό Chapter του OWASA.

Η διαδικασία εγγραφής στην εκδήλωση έχει ήδη αρχίσει – μέχρι το τέλος Σεπτεμβρίου υπάρχει η προσφορά του Super Early Bird, που το κόστος συμμετοχής στην εκδήλωση είναι €135. Υπόψη ότι όσοι κάνουν εγγραφή μέχρι το τέλος Σεπτεμβρίου, μπαίνουν αυτόματα σε κλήρωση για δύο συνδρομές Visual Studio Ultimate with MSDN, αξίας €12.500 η κάθε έκαστη (επιλέξτε Ελλάδα -> Go).

Σας περιμένουμε να τα πούμε από κοντά!

Tagged with:
Posted in Ιστολόγιο

Data.Common.DbSchema, Alpha

Υποθέτω ότι δεν υπάρχει προγραμματιστής που έχει γράψει κώδικα για βάση δεδομένων μετά από λίγο θα έχει βαρεθεί να γράφει τα ίδια και τα ίδια. Το επόμενο βήμα, στην φυσική εξέλιξη των πραγμάτων, είναι να αρχίσει να ψάχνει ένα τρόπο, που να μπορεί να “διαβάσει” το σχήμα της βάσης δεδομένων και να το χρησιμοποιήσει ώστε να δημιουργήσει μια “μηχανή” (source code generation) που θα παράγει τον “βαρετό κώδικα”, γρήγορα, εύκολα και σωστά.

Ένας τρόπος για να αντιμετωπίσει κάποιος το πρόβλημα, είναι να χρησιμοποιήσει τα έτοιμα ORM/DAL frameworks και μηχανισμούς που ήδη υπάρχουν, ή, εναλλακτικά να φτιάξει ένα δικό του. Το σίγουρο είναι, ότι το δεύτερο πάντα φαντάζει πιο “εύκολο” με την πρώτη ματιά. Αλλά, αν κάποιος δοκιμάσει να το υλοποιήσει, το πρώτο πράγμα που θα σκοντάψει είναι, στο πως θα ανακαλύψει το σχήμα της βάσης που θα θελήσει κάθε φορά, χρησιμοποιώντας μια σταθερή μεθοδολογία. Το πρόβλημα είναι ακόμα πιο έντονο, όταν δεν κάποιος δεν χρησιμοποιεί μόνο μια μηχανή βάσης δεδομένων, ή, η βάση που θα χρησιμοποιήσει είναι για αυτόν σαν το λαχείο – εξαρτάται από το ποιος θα είναι ο αποδέκτης του project που έχει αναλάβει.

Η ανακάλυψη του schema μιας βάσης δεδομένων, σε άλλες βάσεις είναι πιο εύκολο, σε άλλες πιο δύσκολο, και σε άλλες μοιάζει απόκρυφη τέχνη. Δεν υπάρχει ένας δεδομένος/ σταθερός τρόπος που να ταιριάζει σε όλες, καθώς όλες οι βάσεις δεν υποστηρίζουν στον ίδιο βαθμό τα προκαθορισμένα standards, και γνωρίζοντας από προσωπική εμπειρία, οι καταστάσεις που βρίσκεται ο προγραμματιστής κατά την διάρκεια του εγχειρήματος είναι παρόμοιες με αυτές του μοντέλου Kübler-Ross – άρνηση, θυμός, παζάρι, κατάθλιψη, αποδοχή – μέχρι που θα εγκαταλείψει, ξέροντας ότι δεν μπορεί από μόνος του να το υλοποιήσει.

Στην περίπτωσή μου, πριν από λίγο καιρό, “παίζοντας” με το T4 engine του Visual Studio 2008, ανακάλυψα ότι μπορούσα να συνθέσω εύκολα templates που να παράγουν κώδικα για μένα. Χρησιμοποιώντας το T4Toolbox, έφτιαξα Τ4 templates για το επερχόμενο SubSonic3. Τα templates αυτά τράβηξαν την προσοχή του δημιουργού του SubSonic3, Rob Conery που μου ζήτησε να τα ξαναφτιάξω, με ένα τρόπο που να μην υπήρχαν hard references στα assemblies των database providers – για μια ακόμη η “ανάγκη” φορά χτύπησε την πόρτα μου. Η βιβλιοθήκη Data.Common.DbSchema, είναι η 3η ή 4η ξαναγραμένη (refactored) έκδοση της βιβλιοθήκης τους τελευταίους 3 μήνες – το ότι υπάρχει και δουλεύει και μάλλον οφείλεται στο ότι απλά η ν-οστή φορά είναι η “τυχερή”!

Το Data.Common.DbSchema είναι μια managed βιβλιοθήκη που έγινε διαθέσιμη μέσω του CodePlex με σκοπό να βοηθήσει όσους έχουν να αντιμετωπίσουν το πρόβλημα της εύκολης και γρήγορης εύρεσης του σχήματος μιας βάσης για την παραπέρα αυτοματοποίηση δημιουργίας κώδικα, που τους δίνει πρόσβαση στην βάση δεδομένων.

Σκοπός τη βιβλιοθήκης είναι να βρίσκει το schema μιας βάσης: Λέγοντας schema, εννοώ ότι μπορεί να ανακαλύψει τα Tables, Views της βάσης, και τα Columns που τα αποτελούν, τα Store Procedures και τα Parameters τους, και τέλος τις σχέσεις που έχουν μεταξύ τους, One-to-Many, Many-to-One, Many-to-Many.

Η βιβλιοθήκη της από μόνη της δεν αποτελεί ένα επίτευγμα – ο συνδυασμός της με άλλα frameworks, πχ ORM Mappers, μπορεί να αυτοματοποιήσει την δημιουργία κώδικα DAL. Μέσα στον πηγαίο κώδικα της βιβλιοθήκης περιέχεται και ένα παράδειγμα στην δημιουργία ενός Data Layer με την χρήση του NHibernate.

Η βιβλιοθήκη, αυτή τη στιγμή υποστηρίζει τις βάσεις, SQL Server, SQL Server Compact, MySQL, PostgreSQL και είναι πολύ εύκολο να επεκταθεί ώστε να υποστηρίξει και άλλες βάσεις. Δεν έχει hard references στα managed assemblies των data providers, για να μπορεί να γίνει εύκολο compile σε οποιοδήποτε περιβάλλον – χρησιμοποιεί τα αντικείμενα του DbProviderFactory για την πρόσβασή της στις βάσεις.

Tagged with: , ,
Posted in Ιστολόγιο

SharpAIS, Alpha

Η αλήθεια είναι ότι ποτέ στο παρελθόν δεν είχα ένα δικό μου open source project. Από πάντα ήθελα να φτιάξω ένα.

Ο προγραμματισμός δεν αποτελεί μόνο την καθημερινή μου εργασία, αλλά πολλές φορές αποτελεί και το hobbie μου. Υπάρχουν πολλά είδη εφαρμογών που θα ήθελα να δημιουργήσω, αλλά δεν μου έχει δοθεί ακόμα η ευκαιρία. Πρόσφατα ασχολήθηκα, εν μέσω πίεσης κάποιου φίλου, να φτιάξω ένα parser για μια συσκευή AIS (Automatic Identification System). Με λίγα λόγια, πρόκειται για μια συσκευή που φέρεται από πλοία, και σκοπό έχει να εκπέμπει σε μια VHF συχνότητα, την θέση και την πορεία του πλοίου, αλλά και άλλα στοιχεία όπως το όνομά του, τον προορισμό του, το φορτίο του, κ.ο.κ.

Ο σκοπός μου ήταν να μετατρέψω τα raw data που είχαν συλλεχτεί από μια τέτοια συσκευή, σε .csv format ώστε να μπορούν να εισαχθούν σε ένα πρόγραμμα και να γίνουν στατιστικά επάνω σε αυτά. Το project αυτό το ανέλαβα πιστεύοντας ότι κάπου υπήρχε κάποιος open source parser για τα NMEA AIS sentences, όπως ήδη υπάρχουν για τα NMEA GPS sentences. Η απογοήτευση ήταν μεγάλη, όταν ανακάλυψα ότι δεν υπήρχε κάτι σχετικό που να βασίζεται σε .NET Framework, και αν ήθελα να χρησιμοποιήσω κάτι έτοιμο, θα έπρεπε να πληρώσω για αυτό.

Το αποτέλεσμα του εγχειρήματος έχει γίνει πλέον διαθέσιμο σαν project SharpAIS στο CodePlex. Το project περιλαμβάνει τον AIS parser, καθώς και μια μικρή εφαρμογή που έφτιαξα για να παράγω τα .csv αρχεία που ήθελα. Επίσης υπάρχουν και μερικά raw data από συσκευές AIS για να δοκιμάσετε την εφαρμογή.

Tagged with: ,
Posted in Ιστολόγιο

Visual Studio 2008: Σφάλμα κατά την εγκατάσταση – “Error 1330: cabinet file has invalid digital signature”

Μια από τις συνήθειες που έχω αποκτήσει με τον καιρό – από την μία λόγω του εύκολου και φτηνού Virtualization που υπάρχει για τα Windows, και από την άλλη η χαρά να μην καταστρέφω τον προσωπικό μου υπολογιστή κάθε φορά που θέλω να ξεκινήσω ένα καινούργιο project ή να κάνω ένα «πείραμα» χρήσης ή/και εγκατάστασης κάποιας Beta ή CTP έκδοσης λογισμικού – είναι να έχω πολλά virtual machines, όπου έχω χωρισμένη τη δουλειά μου.

H αλήθεια είναι ότι δημιουργώντας μια καινούργια εικονική μηχανή, που κάποιος επιθυμεί να κρατήσει και σαν template για μελλοντική χρήση, είναι ιδιαίτερα προσεκτικός με το τι θα εγκαταστήσει μέσα σε αυτή από την αρχή. Απαραίτητο στην δική μου περίπτωση είναι η εγκατάσταση του Visual Studio 2008, που πλέον είναι μια τυπική διαδικασία που δεν κρύβει κάποιο μυστικό, και πάντα ολοκληρώνεται επιτυχημένα. Ή όχι;

Η απόλυτη αλήθεια είναι ότι πάντα υπάρχει, και πάντα θα υπάρχει η πιθανότητα, η εγκατάσταση κάποιου λογισμικού να μην τελειώσει επιτυχημένα – το θέμα κάθε φορά είναι να βρεθεί το αίτιο που προκάλεσε το πρόβλημα και να διορθωθεί. Στην δική μου περίπτωση, ενώ ήμουν σίγουρος για την επιτυχία της διαδικασίας και βρισκόμουν στην μέση της εγκατάστασης του Visual Studio 2008, η εγκατάσταση σταμάτησε με το σφάλμα:

Error 1330.A file that is required cannot be installed because the cabinet file D:msdncab2.cab has an invalid digital signature. This may indicate that the cabinet file is corrupt.

Δεν μπορώ να πω ότι διασκέδασα που είδα το παράθυρο με το σφάλμα. Πριν πατήσω το “Ok” για να κλείσει το παράθυρο του σφάλματος και να ξεκινήσει το rollback της εγκατάστασης, είχα αντιγράψει το σφάλμα για να κάνω μια αναζήτηση στο Internet για αναφορές σε αυτό. Βλέποντας από τα αποτελέσματα ότι υπήρχαν πολλές αναφορές σε αυτό, ανακουφίστηκα πιστεύοντας ότι θα μπορούσα να αντιμετωπίσω το σφάλμα και να ολοκληρώσω την εγκατάσταση.

Η εξήγηση του σφάλματος που δίνεται μέσα στο Microsoft Connect, όπου και έχει αναφερθεί το σφάλμα, είναι ότι το πρόβλημα είναι τυχαίο, και δεν μπορεί να αναπαραχθεί κατά εξακολούθηση ώστε να εντοπιστεί το αίτιο που το προκαλεί. Η συμβουλή που δίνεται είναι να ξαναγίνει η εγκατάσταση και ο χρήστης να εύχεται να είναι τυχερός ώστε να μην ξανασυμβεί το σφάλμα και να ολοκληρωθεί η εγκατάσταση. Άλλη αντιμετώπιση που προτείνεται, είναι να αντιγραφούν τα περιεχόμενα του CD/DVD που παρουσιάζει το πρόβλημα στο σκληρό δίσκο και να γίνει η εγκατάσταση από εκεί. Επίσης υπάρχει και μια λεπτομερή αναφορά στο τι συμβαίνει στον Microsoft Installer και βγάζει αυτό το σφάλμα, τυχαία, στο weblog του Heath Stewart. Επίσης υπάρχουν αναφορές στο Internet ότι αν κάποιος εγκαταστήσει το certificate του αρχείου που προκάλεσε το σφάλμα μέσα από το tab details στα properties του, τότε η εγκατάσταση τελειώνει επιτυχημένα.

Tagged with:
Posted in Ιστολόγιο
%d bloggers like this: