คุณสามารถฝังตัวดูเอกสารแบบไม่มีปลั๊กอินลงในแอปพลิเคชัน ASP.NET Core, MVC หรือ WebForms ได้โดยไม่ต้องขอให้ผู้ใช้ติดตั้งอะไรเลย
องค์กรที่ให้บริการสัญญา, แบบแปลน หรือสินทรัพย์การออกแบบต้องการตัวดูเอกสารที่เคารพนโยบายความปลอดภัยขององค์กรและไม่บังคับให้ผู้ใช้ติดตั้งปลั๊กอินเบราว์เซอร์รุ่นเก่า Doconut ให้ SDK ตัวดูเอกสาร .NET สำหรับการทำงานในเบราว์เซอร์ เช่น PDF, Office, CAD, อีเมล และรูปภาพ ไม่ใช่บริการโฮสต์ที่คุณเรียกใช้: คุณติดตั้งมันลงในแอปของคุณเองและมันจะแสดงผลที่นั่น บทความนี้สรุปการตัดสินใจในการผสานรวมโดยไม่พึ่งพาโค้ดตัวอย่างที่เจาะจงเวอร์ชัน
ขอชี้แจงก่อน เนื่องจากผลิตภัณฑ์สองตัวนี้ง่ายต่อการสับสน Doconut.app เป็นตัวดูเว็บฟรี — ไฟล์เดียวที่เปิดในแท็บเบราว์เซอร์และจะถูกลบหลังจากนั้น ไม่ใช่สิ่งที่คุณฝัง สิ่งที่คุณฝังคือ Doconut Viewer, SDK, และเนื้อหาต่อไปนี้เกี่ยวกับมัน

1. ทำไมความปลอดภัยและการเรนเดอร์แบบไม่มีปลั๊กอินจึงสำคัญสำหรับเว็บแอป .NET
องค์กรสมัยใหม่มองว่าเอกสารทุกไฟล์เป็นแหล่งรั่วไหลของข้อมูล เมื่อคุณฝังตัวดูเอกสารที่พึ่งพา ActiveX, Flash หรือไคลเอนต์เนทีฟ คุณจะสืบทอดความเสี่ยงสามประการ:
| ความเสี่ยง | ผลกระทบต่อแอปพลิเคชัน .NET ของคุณ | วิธีที่ Doconut App ขจัด |
|---|---|---|
| การพึ่งพาปลั๊กอิน | ผู้ใช้ต้องติดตั้งหรือเปิดใช้งานปลั๊กอินเบราว์เซอร์ ทำให้เกิดตั๋วสนับสนุนและปัญหาการปฏิบัติตาม | Doconut ทำงานทั้งหมดใน HTML5/Canvas ไม่ต้องการ ปลั๊กอินใดๆ |
| การส่งข้อมูลที่ไม่เข้ารหัส | ไฟล์ถูกส่งผ่าน HTTP หรือเก็บเป็นข้อความธรรมดา ทำให้ละเมิด GDPR, HIPAA หรือแนวนโยบายภายใน | SDK ทำงานภายในแอปของคุณ ดังนั้นการส่งและการจัดเก็บจึงอยู่ภายใต้นโยบาย TLS และการเข้ารหัสที่คุณกำหนดไว้แล้ว Doconut ไม่เพิ่มขั้นตอนใหม่ |
| วงจรชีวิตที่ไม่ได้ควบคุม | ไฟล์อาจค้างอยู่บนเซิร์ฟเวอร์ ทำให้พื้นที่เสี่ยงต่อการละเมิดเพิ่มขึ้น | การเก็บรักษาเป็นของคุณที่กำหนดได้ เพราะเอกสารไม่ออกจากสภาพแวดล้อมของคุณ ผลลัพธ์การเรนเดอร์ชั่วคราวจะถูกบันทึกตามที่คุณตั้งค่าและทำความสะอาดตามกำหนดเวลาของคุณ |
ข้อเท็จจริงเชิงสถาปัตยกรรมที่สำคัญคือ SDK ถูกติดตั้งในสภาพแวดล้อมของคุณเองและไม่เรียกใช้เซิร์ฟเวอร์ของ Doconut ใดๆ ไม่มีการอัปโหลดข้อมูลไปยังเรา ดังนั้นจึงไม่มีผู้ประมวลผลบุคคลที่สามที่ต้องเพิ่มในแผนผังข้อมูลและไม่มีนโยบายการเก็บข้อมูลของผู้ขายที่ต้องสอดคล้องกับของคุณ
2. เตรียมโครงการ .NET
ใช้แพ็กเกจ, เอกสาร, และตัวอย่างที่ตรงกับเวอร์ชัน Doconut ที่เลือกสำหรับโครงการ หน้า หน้าโหลด Doconut อย่างเป็นทางการเป็นจุดเริ่มต้นที่เชื่อถือได้
ก่อนการผสานรวม ให้ยืนยัน runtime .NET ที่เป้าหมาย บันทึกเวอร์ชันแพ็กเกจ เก็บการกำหนดค่าใบอนุญาตให้อยู่ไกลจากระบบควบคุมเวอร์ชัน และเริ่มต้นด้วยเอกสารตัวอย่าง ASP.NET Core, MVC, และ WebForms มีวงจรชีวิตแอปพลิเคชันที่แตกต่างกัน ดังนั้นการตั้งค่าของพวกมันจึงไม่ควรถือว่าเหมือนกัน
3. สร้างจุดเชื่อมต่ออัปโหลดที่ปลอดภัย – AES‑256, SSL, และการลบอัตโนมัติ
SDK สามารถอ่านเอกสารจากเส้นทางจริง, สตรีม, อาร์เรย์ไบต์, ฐานข้อมูล, URL, ตำแหน่งอินทราเน็ต, หรือผู้ให้บริการคลาวด์เช่น S3, Azure Storage, Google Cloud หรือ Dropbox สิ่งที่ไม่ควรอ่านคือเส้นทางที่เลือกโดยเบราว์เซอร์ วางการตรวจสอบการอนุญาตระหว่างคำขอและเอกสาร ไม่ว่าที่มาจะเป็นอะไร ด้านล่างเป็นรูปแบบทั่วไปหนึ่งสำหรับจุดเชื่อมต่อดังกล่าวใน ASP.NET Core; แนวคิดเดียวกันนี้ใช้ได้กับ MVC และ WebForms
// ตัวอย่างโค้ดจะอยู่ที่นี่และไม่ถูกแปล
กระบวนการทำงานด้านเซิร์ฟเวอร์
- รับไฟล์ที่อัปโหลด – ใช้
IFormFileมาตรฐาน (หรือHttpPostedFileใน WebForms) เพื่อรับเอกสารจากไคลเอนต์. - เข้ารหัสไฟล์ด้วย AES‑256 – ก่อนบันทึกสตรีม, เข้ารหัสโดยใช้ไลบรารีที่เชื่อถือได้เช่น
System.Security.Cryptography.Aes. เก็บบล็อบที่เข้ารหัสในตำแหน่งที่ปลอดภัย (เช่น Azure Blob Storage ที่เปิดใช้งานการเข้ารหัสด้านเซิร์ฟเวอร์, หรือบัคเก็ต S3 ที่ใช้ SSE‑AES256). - สร้าง URL ที่ลงนามและมีอายุสั้น – สร้าง URL ที่ใช้ได้เพียงไม่กี่นาที (เช่น 5 นาที). URL ควรเป็น HTTPS และรวมโทเคนเชิงคริปโตที่ Doconut สามารถตรวจสอบได้. ผู้ให้บริการคลาวด์ส่วนใหญ่มีฟีเจอร์ “pre‑signed URL” ที่ตอบโจทย์นี้.
- ส่ง URL ที่ลงนามกลับไปยังไคลเอนต์ – ส่งการตอบกลับเป็น JSON ที่มี URL อยู่. ไคลเอนต์จะส่ง URL นี้ให้กับตัวดูของ Doconut.
- กำหนดการลบอัตโนมัติ – หลังจาก URL ที่ลงนามหมดอายุ, งานเบื้องหลัง (Hangfire, Azure Functions ฯลฯ) จะลบบล็อบที่เข้ารหัส, เพื่อรับประกันว่าไฟล์จะไม่ค้างอยู่บนเซิร์ฟเวอร์.
เทียบเท่าใน MVC / WebForms
- MVC – ใส่ตรรกะเดียวกันไว้ในแอคชันของคอนโทรลเลอร์ปกติและคืนค่า
JsonResult. - WebForms – สร้างตัวจัดการ
.ashxหรือเมธอดหน้าเพจที่ทำตามขั้นตอนเดียวกัน: รับRequest.Files[0], เข้ารหัส, สร้าง pre‑signed URL, และเขียนการตอบกลับเป็น JSON.
4. แสดงเอกสารผ่าน SDK ที่ติดตั้ง
เก็บการเข้าถึงเอกสารไว้บนเซิร์ฟเวอร์และบังคับการอนุญาตก่อนประมวลผลไฟล์หรือสตรีม. ลำดับการเรนเดอร์และการเริ่มต้น UI ที่แม่นยำขึ้นอยู่กับเวอร์ชัน; ให้ปฏิบัติตามเอกสารอย่างเป็นทางการที่มาพร้อมกับบิลด์ที่ติดตั้งแทนการคัดลอก API JavaScript สากลที่ไม่ได้ตรวจสอบ.
ทำไมวิธีนี้จึงใช้ได้กับทุกสภาพแวดล้อม .NET
- ASP.NET Core Razor – การเริ่มต้นอยู่ในวิวเดียวกับที่โฮสต์ฟอร์มอัปโหลด, ดังนั้นมีเพียงหน้าเดียวที่ต้องพิจารณา.
- MVC – ใช้
@section Scriptsเพื่อแทรกสคริปต์เดียวกัน; คอนโทรลเลอร์คืนค่า JSON ที่$.ajaxของ MVC สามารถใช้งานได้. - WebForms – ลงทะเบียนสคริปต์ด้วย
ClientScript.RegisterStartupScriptหลังจากการอัปโหลดเสร็จ, จากนั้นเรียกlaunchViewerแบบเดียวกัน.
การเรนเดอร์เกิดขึ้นบนเซิร์ฟเวอร์ของคุณ, และนี่คือจุดประสงค์: เบราว์เซอร์จะได้รับหน้าเว็บที่เรนเดอร์แล้วแทนเอกสารต้นฉบับ, ซึ่งเป็นเหตุผลที่ไฟล์ DWG หรือ PSD สามารถเปิดได้บนเครื่องที่ไม่มี AutoCAD หรือ Photoshop. ปรับขนาดเซิร์ฟเวอร์ตามความต้องการ — PDF สแกน 300 หน้าเป็นงานที่ต้องใช้ทรัพยากรจริง, และตอนนี้เป็นชั้นของคุณที่ทำหน้าที่นั้น.
5. ปรับแต่งตัวดูให้สอดคล้องกับพอร์ทัลของคุณ
องค์กรส่วนใหญ่ต้องการให้ตัวดูดูเหมือนเป็นส่วนหนึ่งของผลิตภัณฑ์ที่มันฝังอยู่, ไม่ใช่หน้าต่างที่มองเห็นจากผลิตภัณฑ์ของคนอื่น. รูปลักษณ์ของตัวดูและชุดควบคุมที่เปิดให้ใช้งานสามารถกำหนดค่าได้, และตัวเลือกที่มีขึ้นอยู่กับบิลด์ที่คุณติดตั้ง.
ให้ใช้ชื่อของตัวเลือกเหล่านั้นจากเอกสารที่มาพร้อมกับเวอร์ชันของคุณแทนการอ้างอิงจากบล็อกโพสต์. พื้นผิวการกำหนดค่าตัวดูเป็นสิ่งที่มักถูกเปลี่ยนชื่อระหว่างการปล่อยเวอร์ชัน, และสคริปต์ที่คัดลอกจากบทความที่เก่ากว่าสองเวอร์ชันจะล้มเหลวในลักษณะที่ดูเหมือนปัญหาการลิขสิทธิ์.
การตัดสินใจที่ควรทำก่อนเปิดเอกสารนั้นคือควบคุมใดบ้างที่แต่ละบทบาทควรเห็น. ผู้ใช้สามารถพิมพ์, ดาวน์โหลด, หรือเพียงแค่เลื่อนหน้าผ่านเอกสารเป็นคำถามเกี่ยวกับสิทธิ์ที่แอปของคุณรู้คำตอบแล้ว. กำหนดค่าตัวดูจากคำตอบนั้น, แทนการเปิดเผยทุกควบคุมและหวังว่าไม่มีใครคลิก.
6. ประสิทธิภาพและการขยายขนาด – รักษาประสบการณ์ให้ตอบสนองเร็ว
การฝังตัวดูในพอร์ทัลที่มีการเข้าชมสูงทำให้เกิดข้อกังวลสองประการ: เวลาโหลด และ การเรนเดอร์พร้อมกัน. Doconut App จัดการทั้งสองอย่างพร้อมใช้งาน, แต่คุณสามารถเสริมประสิทธิภาพด้วยเทคนิคเฉพาะ .NET บางอย่าง.
| ข้อกังวล | วิธีแก้ไข |
|---|---|
| ความหน่วงของหน้าแรก | การโหลดหน้าอัตโนมัติทำให้ผู้อ่านเห็นหน้าแรกขณะที่ส่วนที่เหลือยังกำลังเตรียมอยู่. เปิดการบีบอัดไฟล์สถิต (app.UseResponseCompression()) และแคชทรัพยากรของไคลเอนต์. |
| การดูไฟล์เดียวซ้ำหลายครั้ง | เอกสารที่เปิดบ่อยสามารถเรนเดอร์ครั้งเดียวและให้บริการจากผลลัพธ์ที่แคชไว้แทนการเรนเดอร์ใหม่ทุกคำขอ. คำถามที่พบบ่อยอธิบายตัวเลือก .DCN สำหรับกรณีนี้. |
| ค่าใช้จ่ายการเรนเดอร์ | การเรนเดอร์เป็นงานของเซิร์ฟเวอร์. ลดความละเอียดของภาพในกรณีที่ความแม่นยำไม่สำคัญเป็นวิธีที่มีผลมากที่สุด, และเป็นการเปลี่ยนแปลงการตั้งค่า ไม่ใช่การเปลี่ยนแปลงโค้ด. |
| ความพร้อมทำงานพร้อมกัน | ตรวจสอบการตั้งค่า timeout และ AutoClose ภายใต้การโหลด, และอ่านตัวอย่างเว็บฟาร์มก่อนสันนิษฐานว่าโหนดเดียวพอ. จำกัดอัตราการอัปโหลดที่ endpoint. |
วัดผลด้วยเอกสารของคุณเอง. PDF ข้อความขนาด 5 MB และสแกน 5 MB ของรายงานเดียวกันทำงานแตกต่างกันอย่างสิ้นเชิง, และมีเพียงหนึ่งไฟล์ที่ปรากฏในการทดสอบเชิงสังเคราะห์.
ประเด็นสำคัญ
- Doconut Viewer เป็น .NET SDK ที่ไม่ต้องใช้ปลั๊กอิน ซึ่งทำงานร่วมกับ ASP.NET Core, MVC, และ WebForms ผู้ใช้ของคุณไม่ต้องติดตั้งอะไรเลย.
- มันถูกติดตั้งในสภาพแวดล้อมของคุณเองและไม่เรียกไปยังเซิร์ฟเวอร์ของ Doconut ดังนั้นเอกสารจะอยู่ภายในขอบเขตที่คุณควบคุมอยู่แล้ว.
- ความปลอดภัยการส่งข้อมูล, การเข้ารหัสขณะพักและการเก็บรักษาเป็นสิ่งที่คุณกำหนดได้ เพราะไฟล์ไม่เคยออกจากโครงสร้างพื้นฐานของคุณ Doconut จะไม่กลายเป็นผู้ประมวลผลในแผนผังข้อมูลของคุณ.
- แคตาล็อก SDK มี 75 ส่วนขยายไฟล์ใน 18 กลุ่ม — PDF, Office, CAD, Visio, Project, อีเมล, eBook และรูปภาพ, พร้อม DICOM ผ่านปลั๊กอินของมันเอง.
- การเรนเดอร์เกิดขึ้นบนเซิร์ฟเวอร์ นั่นคือสิ่งที่ทำให้เบราว์เซอร์สามารถเปิดไฟล์ DWG ได้ และเป็นรายการที่ต้องคำนึงถึงขนาดด้วย.
- การควบคุมที่ผู้ใช้เห็น — พิมพ์, ดาวน์โหลด, หรือเพจเท่านั้น — ควรสอดคล้องกับสิทธิ์ที่แอปพลิเคชันของคุณมีอยู่แล้ว.
- ใช้ชื่อของตัวเลือกการกำหนดค่าจากเอกสารของเวอร์ชันที่คุณติดตั้ง ไม่ใช่จากบทความใดๆ
คำถามทั่วไป
Q1: ฉันต้องติดตั้งอะไรบนเซิร์ฟเวอร์หรือไม่?
A: ใช่ Doconut Viewer เป็น .NET SDK ที่คุณติดตั้งลงในแอปพลิเคชันของคุณ — เริ่มต้นจาก หน้าดาวน์โหลดของ Doconut และใช้แพคเกจและเอกสารสำหรับเวอร์ชันที่คุณเลือก ไม่มี endpoint ที่โฮสต์ให้เรียกใช้ และไม่มีอะไรให้บริการจาก CDN ของ Doconut.
Q2: ใครลบไฟล์หลังการดู?
A: คุณเอง เพราะเอกสารและผลลัพธ์การเรนเดอร์ชั่วคราวทั้งหมดอยู่ในสภาพแวดล้อมของคุณ การเก็บรักษาจึงเป็นการตั้งค่าในแอปพลิเคชันของคุณ ไม่ใช่คำสัญญาจากผู้ขาย ตัดสินใจว่าไฟล์ชั่วคราวจะถูกเขียนลงที่ไหนและอะไรจะลบไฟล์เหล่านั้น ก่อนที่คุณจะเข้าสู่การผลิต.
Q3: ผู้ใช้สามารถพิมพ์เอกสารได้หรือไม่?
A: การพิมพ์เป็นความสามารถของตัวดูและสามารถให้หรือไม่ให้ตามผู้ใช้ได้ โปรดทราบว่าการพิมพ์ที่ควบคุมได้เป็นส่วนหนึ่งของตัวดูเอง — ไม่ใช่หนึ่งในสี่ปลั๊กอินที่ได้รับอนุญาต ซึ่งได้แก่ Annotation, Converter, DICOM และ Search.
Q4: มันสามารถแปลงเอกสารเป็นรูปแบบอื่นได้หรือไม่?
A: นั่นคือปลั๊กอิน Converter ที่มีการให้สิทธิ์แยกต่างหาก การดูและการแปลงเป็นผลิตภัณฑ์ที่แตกต่างกันที่นี่ และควรชัดเจนว่ากระบวนการทำงานต้องการอันไหนจริงๆ.
พร้อมที่จะฝังตัวดูเอกสารแบบไม่มีปลั๊กอินในแอปพลิเคชัน .NET ของคุณหรือยัง? เริ่มต้นจาก หน้าดาวน์โหลดของ Doconut — ใบอนุญาตทดลองใช้งานฟรี. และหากสิ่งที่คุณต้องการจริงๆ คือการเปิดไฟล์หนึ่งไฟล์วันนี้, Doconut.app ทำได้ในแท็บเบราว์เซอร์และจะลบไฟล์นั้นหลังจากนั้น.