Anda dapat menyematkan penampil dokumen tanpa plugin ke dalam aplikasi ASP.NET Core, MVC, atau WebForms tanpa meminta satu pun pengguna untuk menginstal apa pun.
Perusahaan yang menyediakan kontrak, gambar, atau aset desain memerlukan penampil yang menghormati kebijakan keamanan perusahaan dan tidak pernah memaksa pengguna menginstal plugin browser lama. Doconut menyediakan SDK penampil dokumen .NET untuk alur kerja PDF, Office, CAD, email, dan gambar berbasis browser. Ini bukan layanan yang dihosting yang Anda panggil: Anda menginstalnya ke dalam aplikasi Anda sendiri, dan penampil tersebut merender di sana. Posting ini menjelaskan keputusan integrasi tanpa bergantung pada kode contoh spesifik versi.
Satu klarifikasi terlebih dahulu, karena kedua produk mudah bingung. Doconut.app adalah penampil web gratis — satu file, dibuka di tab browser, dihapus setelahnya. Itu bukan sesuatu yang Anda sematkan. Apa yang Anda sematkan adalah Doconut Viewer, SDK-nya, dan semua yang berikut ini membahas hal tersebut.

1. Mengapa keamanan dan render tanpa plugin penting untuk aplikasi web .NET
Perusahaan modern memperlakukan setiap dokumen sebagai potensi kebocoran data. Ketika Anda menyematkan penampil yang bergantung pada ActiveX, Flash, atau klien native, Anda mewarisi tiga risiko:
| Risiko | Dampak pada aplikasi .NET Anda | Bagaimana Doconut App menghilangkannya |
|---|---|---|
| Ketergantungan plugin | Pengguna harus menginstal atau mengaktifkan plugin browser, yang menyebabkan tiket dukungan dan masalah kepatuhan. | Doconut berjalan sepenuhnya di HTML5/Canvas, tidak memerlukan plugin sama sekali. |
| Transmisi tidak terenkripsi | File bergerak melalui HTTP atau disimpan dalam teks biasa, melanggar GDPR, HIPAA, atau kebijakan internal. | SDK berjalan di dalam aplikasi Anda, sehingga transportasi dan penyimpanan tetap berada di bawah kebijakan TLS dan enkripsi yang sudah Anda terapkan. Doconut tidak menambah hop baru. |
| Siklus hidup tidak terkendali | File dapat tetap berada di server, meningkatkan permukaan pelanggaran. | Retensi adalah hak Anda untuk mengatur, karena dokumen tidak pernah meninggalkan lingkungan Anda. Output render sementara ditulis di lokasi yang Anda konfigurasi, dan dibersihkan sesuai jadwal Anda. |
Fakta arsitektural yang penting adalah bahwa SDK diinstal di lingkungan Anda sendiri dan tidak melakukan panggilan ke server Doconut. Tidak ada yang diunggah ke kami, sehingga tidak ada pemroses pihak ketiga yang harus ditambahkan ke peta data dan tidak ada kebijakan retensi vendor yang harus disesuaikan dengan kebijakan Anda.
2. Siapkan proyek .NET
Gunakan paket, dokumentasi, dan contoh yang sesuai dengan versi Doconut yang dipilih untuk proyek. Halaman unduhan Doconut resmi adalah titik awal yang dapat diandalkan.
Sebelum integrasi, pastikan runtime .NET target, catat versi paket, simpan konfigurasi lisensi di luar kontrol sumber, dan mulailah dengan dokumen representatif. ASP.NET Core, MVC, dan WebForms memiliki siklus hidup aplikasi yang berbeda, sehingga pengaturannya tidak boleh dianggap identik.
3. Membuat endpoint unggah yang aman – AES‑256, SSL, dan hapus otomatis
SDK dapat membaca dokumen dari jalur fisik, aliran, array byte, basis data, URL, lokasi intranet, atau penyedia cloud seperti S3, Azure Storage, Google Cloud, atau Dropbox. Apa yang tidak boleh dibacanya adalah jalur yang dipilih oleh browser. Letakkan pemeriksaan otorisasi di antara permintaan dan dokumen, apa pun sumbernya. Di bawah ini adalah salah satu bentuk umum untuk endpoint tersebut dalam ASP.NET Core; ide yang sama berlaku untuk MVC dan WebForms.
// Contoh kode endpoint (jangan diterjemahkan)
[HttpPost("upload")]
public async Task<IActionResult> Upload(IFormFile file)
{
// Validasi, enkripsi, penyimpanan sementara, dll.
}
Alur kerja sisi‑server
- Terima file yang diunggah – Gunakan
IFormFilestandar (atauHttpPostedFiledi WebForms) untuk menerima dokumen dari klien. - Enkripsi file dengan AES‑256 – Sebelum menyimpan stream, enkripsikan menggunakan pustaka terbukti seperti
System.Security.Cryptography.Aes. Simpan blob terenkripsi di lokasi yang aman (misalnya Azure Blob Storage dengan enkripsi sisi‑server diaktifkan, atau bucket S3 dengan SSE‑AES256). - Hasilkan URL bertanda tangan dengan masa hidup pendek – Buat URL yang berlaku selama beberapa menit (misalnya 5 menit). URL harus HTTPS dan menyertakan token kriptografis yang dapat divalidasi oleh Doconut. Sebagian besar penyedia penyimpanan cloud menawarkan fitur “pre‑signed URL” yang memenuhi kebutuhan ini.
- Kembalikan URL bertanda tangan ke klien – Kirim respons JSON yang berisi URL. Klien akan memberikan URL ini ke penampil Doconut.
- Jadwalkan penghapusan otomatis – Setelah URL bertanda tangan kedaluwarsa, pekerjaan latar belakang (Hangfire, Azure Functions, dll.) menghapus blob terenkripsi, memastikan file tidak tetap berada di server.
Setara MVC / WebForms
- MVC – Tempatkan logika yang sama di dalam aksi controller biasa dan kembalikan
JsonResult. - WebForms – Implementasikan handler
.ashxatau metode halaman yang mengikuti langkah yang sama: terimaRequest.Files[0], enkripsi, hasilkan pre‑signed URL, dan tulis respons JSON.
Satu‑satunya perbedaan adalah sintaks routing; alur kerja keamanan tetap identik.
4. Render dokumen melalui SDK yang terpasang
Pertahankan akses dokumen di server dan tegakkan otorisasi sebelum memproses file atau stream. Urutan rendering dan inisialisasi UI yang tepat bersifat spesifik versi; ikuti dokumentasi resmi yang disertakan dengan build yang terpasang daripada menyalin API JavaScript global yang belum diverifikasi.
Mengapa ini bekerja untuk setiap varian .NET
- ASP.NET Core Razor – Inisialisasi berada di view yang sama yang menampung formulir unggah, sehingga hanya ada satu halaman untuk dipertimbangkan.
- MVC – Gunakan
@section Scriptsuntuk menyuntikkan potongan kode yang sama; controller mengembalikan JSON yang dapat dikonsumsi oleh$.ajaxMVC. - WebForms – Daftarkan skrip dengan
ClientScript.RegisterStartupScriptsetelah unggahan selesai, lalu panggillaunchViewerdengan cara yang sama.
Rendering terjadi di server Anda, dan itulah tujuannya: browser menerima halaman yang sudah dirender bukan dokumen sumber, itulah mengapa DWG atau PSD dapat dibuka di mesin yang tidak memiliki AutoCAD maupun Photoshop. Sesuaikan ukuran server — PDF 300 halaman yang dipindai memerlukan pekerjaan nyata, dan kini tier Anda yang melakukannya.
5. Menyesuaikan penampil agar cocok dengan portal Anda
Perusahaan biasanya membutuhkan penampil yang terlihat seperti bagian dari produk tempatnya berada, bukan jendela ke produk orang lain. Penampilan penampil dan kumpulan kontrol yang ditampilkannya dapat dikonfigurasi, dan opsi yang tersedia tergantung pada build yang Anda pasang.
Ambil nama opsi tersebut dari dokumentasi yang disertakan dengan versi Anda, bukan dari posting blog. Permukaan konfigurasi penampil adalah contoh hal yang sering diubah nama antar rilis, dan potongan kode yang disalin dari artikel dua versi lama akan gagal dengan cara yang tampak seperti masalah lisensi.
Keputusan yang penting sebelum membuka dokumentasi itu adalah kontrol apa yang harus dilihat oleh setiap peran. Apakah pengguna dapat mencetak, mengunduh, atau hanya menelusuri dokumen adalah pertanyaan izin yang sudah diketahui jawabannya oleh aplikasi Anda. Konfigurasikan penampil berdasarkan jawaban itu, alih‑alih menampilkan semua kontrol dan berharap tidak ada yang mengklik.
6. Kinerja dan skalabilitas – pertahankan pengalaman yang responsif
Menyematkan penampil dalam portal dengan lalu lintas tinggi menimbulkan dua kekhawatiran praktis: waktu muat dan rendering bersamaan. Doconut App menangani keduanya secara langsung, namun Anda dapat memperkuat performa dengan beberapa trik khusus .NET.
| Masalah | Apa yang harus dilakukan |
|---|---|
| Latensi halaman pertama | Pemuat otomatis halaman memungkinkan pembaca melihat halaman pertama sementara sisanya masih dipersiapkan. Aktifkan kompresi file statis (app.UseResponseCompression()) dan cache aset klien. |
| Tampilan berulang satu file | Dokumen yang sering dibuka dapat dirender sekali dan disajikan dari output yang di‑cache alih‑alih dirender ulang per permintaan. FAQ mencakup opsi .DCN untuk hal ini. |
| Biaya rendering | Rendering adalah pekerjaan server. Menurunkan resolusi gambar di mana ketelitian tidak kritis adalah tuas terbesar, dan itu merupakan perubahan konfigurasi bukan perubahan kode. |
| Konkruensi | Tinjau pengaturan timeout dan AutoClose di bawah beban, serta baca contoh web farm sebelum mengasumsikan satu node cukup. Batasi laju (rate‑limit) endpoint unggah. |
Ukur dengan dokumen Anda sendiri. PDF berbasis teks 5 MB dan pemindaian 5 MB dari laporan yang sama tidak berperilaku sama, dan hanya satu di antaranya muncul dalam benchmark sintetis.
Poin Penting
- Doconut Viewer adalah SDK .NET tanpa plugin yang bekerja dengan ASP.NET Core, MVC, dan WebForms. Pengguna Anda tidak perlu menginstal apa pun.
- SDK ini diinstal di lingkungan Anda sendiri dan tidak melakukan panggilan ke server Doconut, sehingga dokumen tetap berada dalam batas yang sudah Anda kontrol.
- Keamanan transport, enkripsi saat disimpan, dan retensi dapat Anda atur, karena file tidak pernah meninggalkan infrastruktur Anda. Doconut tidak menjadi pemroses dalam peta data Anda.
- Katalog SDK mencakup 75 ekstensi file dalam 18 keluarga — PDF, Office, CAD, Visio, Project, email, eBook, dan gambar, dengan DICOM melalui pluginnya sendiri.
- Rendering terjadi di server. Itulah yang memungkinkan browser membuka file DWG, dan juga menjadi faktor yang harus dipertimbangkan ukurannya.
- Kontrol yang terlihat oleh pengguna — cetak, unduh, atau hanya paging — harus mengikuti izin yang sudah dimiliki aplikasi Anda.
- Ambil nama opsi konfigurasi dari dokumentasi versi yang Anda instal, bukan dari artikel.
Pertanyaan Umum
Q1: Apakah saya menginstal sesuatu di server?
A: Ya. Doconut Viewer adalah SDK .NET yang Anda instal ke dalam aplikasi Anda — mulai dari halaman unduhan dan gunakan paket serta dokumentasi untuk versi yang Anda pilih. Tidak ada endpoint yang dihosting untuk dipanggil, dan tidak ada yang disajikan dari CDN Doconut.
Q2: Siapa yang menghapus file setelah dilihat?
A: Anda sendiri. Karena dokumen dan output render sementara berada di lingkungan Anda, retensi adalah pengaturan dalam aplikasi Anda bukan janji dari vendor. Tentukan di mana file sementara ditulis, dan apa yang menghapusnya, sebelum Anda masuk ke produksi.
Q3: Bisakah pengguna mencetak dokumen?
A: Pencetakan adalah kemampuan penampil, dan dapat diberikan atau ditahan per pengguna. Perhatikan bahwa pencetakan terkontrol merupakan bagian dari penampil itu sendiri — bukan salah satu dari empat plugin berlisensi, yaitu Annotation, Converter, DICOM, dan Search.
Q4: Bisakah itu mengonversi dokumen ke format lain?
A: Itu adalah plugin Converter, berlisensi terpisah. Melihat dan mengonversi adalah produk yang berbeda di sini, dan penting untuk jelas mengenai mana yang sebenarnya dibutuhkan alur kerja.
Siap menyematkan penampil dokumen tanpa plugin dalam aplikasi .NET Anda? Mulailah dari halaman unduhan Doconut — lisensi percobaan gratis. Dan jika yang Anda butuhkan sebenarnya hanya membuka satu file hari ini, Doconut.app melakukannya di tab browser, dan menghapusnya setelahnya.