Πολλοί προγραμματιστές ξεκινούν ψάχνοντας βιβλιοθήκες UI στοιχείων όταν χρειάζεται να εμφανίσουν έγγραφα σε μια διαδικτυακή εφαρμογή. Προβολέας Doconut είναι ένα .NET SDK για την προσθήκη προβολής χωρίς πρόσθετα στον περιηγητή σε έργα ASP.NET Core, MVC ή κλασικά WebForms. Η ασφάλεια εξακολουθεί να εξαρτάται από τη συνολική αρχιτεκτονική της εφαρμογής: έλεγχος ταυτότητας, εξουσιοδότηση, μεταφορά, αποθήκευση, επικύρωση, καθαρισμό, ενημερώσεις και παρακολούθηση.

1. Εγκατάσταση του Doconut App SDK και Προετοιμασία του .NET Project σας για Πολλαπλές Μορφές Αρχείων
1.1 Προσθήκη του υποστηριζόμενου πακέτου
Χρησιμοποιήστε το τρέχον πακέτο και τις οδηγίες εγκατάστασης από την επίσημη σελίδα λήψης Doconut. Καταγράψτε την επιλεγμένη έκδοση και επαληθεύστε ότι υποστηρίζει το στοχευόμενο .NET runtime.
1.2 Επαλήθευση της αναφοράς του πακέτου
Μετά την εγκατάσταση, επιβεβαιώστε την αναφορά του πακέτου και την επιλυμένη έκδοση στο αρχείο του έργου. Η σαφής διαχείριση των εκδόσεων βοηθά στη δημιουργία επαναλήψιμων builds και deployments.
1.3 Ενεργοποίηση HTTPS
Σερβίρετε την εφαρμογή μέσω HTTPS ώστε τα ανεβασμένα έγγραφα να μην ταξιδεύουν σε απλό κείμενο στο δίκτυό σας. Για μια εφαρμογή που φιλοξενείται από Kestrel, προσθέστε μια διαμόρφωση endpoint στο appsettings.json:
{
"Kestrel": {
"Endpoints": {
"Https": {
"Url": "
}
}
}
}
Αν φιλοξενείτε σε IIS, συνδέστε ένα πιστοποιητικό HTTPS στον ιστότοπο. Με το HTTPS ενεργοποιημένο, το αρχείο μεταδίδεται μέσω ασφαλούς καναλιού προς τον δικό σας διακομιστή, όπου το SDK το αποδίδει.
Από πού προέρχεται η ασφάλεια. Το SDK εκτελείται μέσα στην εφαρμογή σας, στην υποδομή σας: δεν κάνει κλήσεις σε διακομιστές Doconut, έτσι τα έγγραφα ποτέ δεν αφήνουν το δίκτυό σας. Αυτό είναι το χαρακτηριστικό γύρω από το οποίο αξίζει να σχεδιάζετε. Δεν είναι ένα πιστοποιητικό συμμόρφωσης — το SDK δεν παρέχει ISO 27001, SOC 2 ή HIPAA βεβαίωση δική του, και δεν μπορεί να προσφέρει μία στην εφαρμογή σας. Αυτό που κάνει είναι να κρατά το αρχείο εντός ενός ορίου που ήδη ελέγχετε και ελέγχετε.
2. Διαμόρφωση Ασφαλών Μεταφορτώσεων Αρχείων και Αποθήκευσης για Διαχείριση Εγγράφων
Αυτό είναι το κομμάτι που ανήκει σε εσάς και όχι στο SDK, και αξίζει να το πούμε ξεκάθαρα: η ασφάλεια μεταφοράς, η κρυπτογράφηση κατά την αποθήκευση, η διατήρηση και ο καθαρισμός είναι αποφάσεις που λαμβάνει η εφαρμογή σας. Το SDK αποδίδει έγγραφα· δεν είναι στρώμα αποθήκευσης και δεν κρυπτογραφεί τον δίσκο σας για εσάς.
2.1 Καταχώριση των υπηρεσιών
Στο Startup.cs (ή Program.cs σε σύγχρονα .NET), καταχωρίστε τις υπηρεσίες Doconut στο container εξάρτησης ακολουθώντας την τεκμηρίωση για την έκδοση που εγκαταστήσατε. Όπου το SDK χρειάζεται έναν φάκελο εργασίας για προσωρινή έξοδο απόδοσης, ορίστε τον σε θέση που ελέγχετε, και κάντε τον καθαρισμό του φακέλου δική σας ευθύνη — μια προγραμματισμένη εργασία ή διάρκεια διαχείρισης από την εφαρμογή, όχι μια υπόθεση.
2.2 Δημιουργία του endpoint μεταφόρτωσης
Υλοποιήστε μια ενέργεια ελεγκτή που λαμβάνει ένα ανεβασμένο αρχείο, το γράφει σε οποιοδήποτε αποθηκευτικό χώρο χρησιμοποιεί ήδη η εφαρμογή σας, και επιστρέφει ένα σύντομο token μίας χρήσης. Το token είναι αυτό που ο προβολέας στην πλευρά του πελάτη θα χρησιμοποιήσει για να ανακτήσει και να αποδώσει το έγγραφο. Σημειώστε ότι η αποθήκευση είναι δική σας: παραδίδετε στο SDK τα bytes ή τη διαδρομή όταν ήρθε η ώρα να αποδοθεί, και αυτό σας επιστρέφει τις σελίδες.
2.3 Προστασία του endpoint
Επειδή το endpoint μεταφόρτωσης χειρίζεται ευαίσθητα δεδομένα, προστατέψτε το με έλεγχο ταυτότητας και εξουσιοδότηση βάσει ρόλων (π.χ., μόνο χρήστες με ρόλο DocumentViewer μπορούν να ανεβάσουν). Επικυρώστε την επέκταση και το μέγεθος στον διακομιστή καθώς και στο πρόγραμμα περιήγησης, και αντιμετωπίστε τα ανεβασμένα bytes ως μη αξιόπιστη είσοδο.
Μην το παραλείψετε υποθέτοντας ότι το SDK το καλύπτει. Η κρυπτογράφηση κατά την αποθήκευση, η διαχείριση κλειδιών και ο καθαρισμός ορφανών αρχείων είναι δουλειά της εφαρμογής σας. Αν χρειάζεστε έγγραφα κρυπτογραφημένα στον δίσκο, χρησιμοποιήστε τις δυνατότητες της πλατφόρμας που ήδη εμπιστεύεστε — ο προβολέας δεν είναι το κατάλληλο μέρος για αυτό.
3. Ενσωμάτωση του Στοιχείου Προβολής σε ASP.NET Core, MVC ή WebForms
Με το back‑end έτοιμο, αρχικοποιήστε τον προβολέα χρησιμοποιώντας τα assets και το API που τεκμηριώνονται για την εγκατεστημένη έκδοση του Doconut.
3.1 Προσθήκη του JavaScript bundle
Στο κοινό layout, συμπεριλάβετε μόνο τους πόρους του προβολέα που περιγράφονται στην τεκμηρίωση που ταιριάζει με το εγκατεστημένο SDK. Μην υποθέτετε σταθερά ονόματα ή θέσεις bundle μεταξύ εκδόσεων.
3.2 Δημιουργία Razor view για Core/MVC
Προσθέστε μια view (π.χ. Views/Document/View.cshtml) που περιέχει ένα πεδίο αρχείου, ένα στοιχείο container για τον προβολέα και ένα μικρό script που ανεβάζει το επιλεγμένο αρχείο, λαμβάνει το ασφαλές token και αρχικοποιεί το widget Doconut Viewer.
Το script πρέπει:
- Να συλλάβει το επιλεγμένο αρχείο από το στοιχείο
<input type="file">. - Να στείλει το αρχείο στο endpoint ανεβάσματος χρησιμοποιώντας
fetchήXMLHttpRequest. - Όταν φτάσει η εξουσιοδοτημένη απόκριση, να αρχικοποιήσει τον προβολέα χρησιμοποιώντας το υποστηριζόμενο API για την εγκατεστημένη έκδοση.
3.3 Ισοδύναμο για WebForms
Σε μια σελίδα WebForms (π.χ. DocumentViewer.aspx), τοποθετήστε έναν έλεγχο asp:FileUpload, ένα κουμπί για την ενεργοποίηση του ανεβάσματος και ένα <div> που θα φιλοξενήσει τον προβολέα. Στον κώδικα‑behind, καλέστε την υπηρεσία Doconut για να αποθηκεύσετε το ανεβασμένο αρχείο, να αποκτήσετε το token και να καταχωρίσετε ένα startup script που καλεί τη JavaScript συνάρτηση (initViewer(token)) για τη δημιουργία του παραδείγματος προβολέα.
Ο λόγος για αυτήν την προσέγγιση: ένας δρόμος απόδοσης που εξυπηρετεί τρία μοντέλα UI του .NET, χωρίς τίποτα να εγκαθίσταται στο μηχάνημα του τελικού χρήστη.
4. Προσαρμογή του Προβολέα για Διαχείριση Εγγράφων
Ο προβολέας αποδίδεται μέσα σε ένα container στη δική σας σελίδα, οπότε η περιβάλλουσα εφαρμογή είναι ήδη δική σας. Πέρα από αυτό, πάρτε τα ονόματα επιλογών και τις προεπιλογές από την τεκμηρίωση για την έκδοση που εγκαταστήσατε αντί από οποιοδήποτε tutorial, αυτό το συμπεριλαμβανομένου — η επιφάνεια διαμόρφωσης αλλάζει μεταξύ εκδόσεων και ένα σκληρά κωδικοποιημένο όνομα επιλογής είναι το πιο πιθανό να σπάσει σε αναβάθμιση.
Τα πράγματα που αξίζει να αποφασίσετε εκ των προτέρων:
4.1 Ποιοι έλεγχοι δίνονται στον χρήστη
Αποφασίστε αν οι χρήστες σας θα μπορούν να κατεβάσουν το αρχικό αρχείο ή μόνο να διαβάσουν τις αποδομένες σελίδες. Ο ελεγχόμενος εκτύπωση είναι μέρος του προβολέα και όχι ξεχωριστή αγορά, επομένως οι κανόνες εκτύπωσης είναι ερώτημα διαμόρφωσης, όχι άδεια χρήσης.
4.2 Ποια plugins χρειάζεστε πραγματικά
Τέσσερα αδειοδοτούνται ξεχωριστά, και η λίστα είναι αρκετά μικρή για να την θυμάστε: Annotation, Converter, DICOM και Search. Η μετατροπή — DOC σε PDF και τα υπόλοιπα — είναι το plugin Converter. Η αναζήτηση κειμένου είναι το plugin Search. Αν δεν χρειάζεστε κανένα από τα δύο, δεν αγοράζετε κανένα.
4.3 Τοπικοποίηση
Αν η εφαρμογή σας είναι πολυγλωσσική, ελέγξτε τι προσφέρει η εγκατεστημένη έκδοση για τις συμβολοσειρές UI του προβολέα πριν σχεδιάσετε γύρω από αυτές.
Γιατί είναι σημαντικό: ο προβολέας πρέπει να φαίνεται σαν μέρος του προϊόντος σας. Αυτό που δεν πρέπει να κάνει είναι να υπόσχεται σιωπηλά στους χρήστες δυνατότητες που η άδεια που αγοράσατε δεν περιλαμβάνει.
5. Δοκιμή της Ενσωμάτωσης σε Όλες τις Υποστηριζόμενες Μορφές
Πριν το λανσάρετε, εκτελέστε έναν γρήγορο έλεγχο λογικής για κάθε τύπο αρχείου που αναμένετε οι χρήστες σας να προβάλλουν. Χρησιμοποιώντας τον προβολέα της Doconut App, ανοίξτε ένα δείγμα αρχείου κάθε μορφής και επαληθεύστε ότι η απόδοση, η πλοήγηση και τυχόν εξειδικευμένα εργαλεία λειτουργούν όπως περιγράφεται.
| Μορφή | Σενάριο Δοκιμής | Αναμενόμενο Αποτέλεσμα |
|---|---|---|
| Μεγάλη, πολυ‑σελιδική αναφορά με ενσωματωμένες εικόνες | Ομαλή κύλιση, ζουμ και ακριβής απόδοση χρωμάτων | |
| DOCX | Έγγραφο Word με πίνακες και υποσημειώσεις | Όλο το κείμενο, οι πίνακες και οι υποσημειώσεις ορατά· χωρίς μετατόπιση διάταξης |
| XLSX | Φύλλο εργασίας με γραφήματα | Τα γραφήματα αποδίδονται ως διανυσματικά· το ζουμ διατηρεί την ευκρίνεια |
| PPTX | Παρουσίαση με animated builds | Κάθε build σε μια διαφάνεια αποδίδεται στοίβαγμα σε ένα πλαίσιο — αυτό είναι αναμενόμενο, όχι σφάλμα |
| DWG | Τεχνικό σχέδιο με στρώσεις και εξωτερικές αναφορές | Εναλλαγή στρώσεων, λειτουργία μέτρησης απόστασης και εμβαδού· οι xrefs και οι γραμματοσειρές SHX λείπουν επειδή δεν υπήρχαν ποτέ στο αρχείο |
| PSD | Πολυστρωμένο αρχείο Photoshop | Το αποθηκευμένο σύνθετο αποδίδεται, με τα κρυμμένα στρώματα να παραμένουν κρυμμένα· τα χρώματα διατηρούνται στο ζουμ |
| SVG | Διανυσματικό γραφικό με διαβαθμίσεις | Οι διαβαθμίσεις αποδίδονται ομαλά· το ζουμ παραμένει ευκρινές |
| TIFF | Σάρωση υψηλής ανάλυσης | Η εικόνα φορτώνεται γρήγορα· το ζουμ αποκαλύπτει λεπτομέρειες |
Δοκιμάστε με τα πραγματικά αρχεία των χρηστών σας, όχι με καθαρά δείγματα. Οι μορφές που εκπλήσσουν τους ανθρώπους είναι εκείνες που έχουν ιδιαιτερότητες ενσωματωμένες στη μορφή — ένα DWG που αναφέρει τέσσερα άλλα σχέδια, ένα φύλλο εργασίας του οποίου οι αποθηκευμένες τιμές δεν είχαν ποτέ επανυπολογιστεί, μια παρουσίαση των γραμματοσειρών που δεν ενσωματώθηκαν. Ο δωρεάν προβολέας στο Doconut.app τρέχει την ίδια μηχανή, οπότε είναι ένας γρήγορος τρόπος να δείτε πώς εμφανίζεται ένα συγκεκριμένο δύσκολο αρχείο πριν γράψετε κώδικα.
Συμπέρασμα
Η ενσωμάτωση ενός προβολέα εγγράφων χωρίς πρόσθετα περιορίζεται σε τέσσερα πράγματα: εγκατάσταση του SDK, ασφαλισμός του δικού σας μονοπατιού μεταφόρτωσης, απόδοση σε ένα container στη σελίδα σας και διαμόρφωση μόνο ό,τι τεκμηριώνει η εγκατεστημένη έκδοση. Η συνεισφορά του προβολέα στην ασφάλεια είναι περιορισμένη και πραγματική — λειτουργεί στους διακομιστές σας και δεν στέλνει τίποτα έξω. Ό,τι άλλο σε αυτή τη λίστα ανήκει στην εφαρμογή σας, και κανένα SDK δεν μπορεί να το αναλάβει για εσάς.
Έτοιμοι να το αξιολογήσετε; Ξεκινήστε με την επίσημη σελίδα λήψης και τεκμηρίωσης Doconut, έπειτα δοκιμάστε το SDK μέσα στην ίδια αξιολόγηση ασφαλείας που εφαρμόζεται στα υπόλοιπα της Windows‑based ASP.NET εφαρμογής σας.