Ви можете вбудувати переглядач документів без плагінів у застосунок ASP.NET Core, MVC або WebForms, не змушуючи жодного користувача щось встановлювати.
Підприємства, які працюють з контрактами, кресленнями чи дизайнерськими матеріалами, потребують переглядача, який дотримується корпоративних політик безпеки і ніколи не змушує користувачів встановлювати застарілі плагіни браузера. Doconut надає .NET SDK переглядача документів для браузерних робочих процесів з 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 є надійною відправною точкою.
Перед інтеграцією підтвердіть цільову .NET runtime, зафіксуйте версію пакету, тримайте конфігурацію ліцензії поза системою контролю версій і починайте з представницьких документів. 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 bucket з 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 залежить від версії; дотримуйтесь офіційної документації, що постачається з встановленою збіркою, а не копіюйте неперевірений глобальний JavaScript API.
Чому це працює для будь‑якого .NET варіанту
- ASP.NET Core Razor – Ініціалізація знаходиться в тому ж поданні, яке містить форму завантаження, тому є лише одна сторінка для розуміння.
- MVC – Використовуйте
@section Scripts, щоб вставити той самий фрагмент; контролер повертає JSON, який може обробити$.ajaxMVC. - WebForms – Зареєструйте скрипт за допомогою
ClientScript.RegisterStartupScriptпісля завершення завантаження, потім викличтеlaunchViewerтак само.
Рендеринг відбувається на вашому сервері, і в цьому його сенс: браузер отримує відрендерені сторінки, а не вихідний документ, тому DWG або PSD відкриваються на машині, яка не має ні AutoCAD, ні Photoshop. Підберіть розмір сервера відповідно — сканований PDF у 300 сторінок — це реальна робота, і тепер її виконує ваш рівень.
5. Налаштування переглядача під ваш портал
Компанії зазвичай потребують, щоб переглядач виглядав як частина продукту, у який він вбудований, а не як вікно в чужий продукт. Зовнішній вигляд переглядача та набір доступних елементів керування налаштовуються, а доступні параметри залежать від встановленої збірки.
Беріть назви параметрів з документації, що постачається з вашою версією, а не з блогу. Конфігураційні елементи переглядача саме ті, що часто перейменовуються між випусками, і фрагмент, скопійований зі статті, старішої на два випуски, не працює і виглядає як проблема з ліцензуванням.
Рішення, яке варто прийняти перед відкриттям документації, — які елементи керування має бачити кожна роль. Чи може користувач друкувати, завантажувати або лише перегортати документ — це питання дозволів, на яке ваша програма вже має відповідь. Налаштуйте переглядач згідно з цією відповіддю, замість того, щоб відкривати всі елементи і сподіватися, що ніхто не натисне.
6. Продуктивність і масштабованість – зберігайте швидкість роботи
Вбудовування переглядача у портал з високим трафіком піднімає два практичні питання: час завантаження та одночасний рендеринг. Doconut App вирішує обидва одразу, але ви можете підвищити продуктивність за допомогою кількох .NET‑специфічних трюків.
| Проблема | Що робити |
|---|---|
| Затримка першої сторінки | Автозавантаження сторінки дозволяє читачу бачити першу сторінку, поки інші ще готуються. Увімкніть стискання статичних файлів (app.UseResponseCompression()) та кешуйте клієнтські ресурси. |
| Повторні перегляди одного файлу | Часто відкритий документ можна відрендерити один раз і подавати з кешованого результату, замість повторного рендерингу на кожен запит. У FAQ розглядається параметр .DCN саме для цього. |
| Вартість рендерингу | Рендеринг — це робота сервера. Зниження роздільної здатності зображень, де точність не критична, є найефективнішим важелем, і це зміна конфігурації, а не коду. |
| Конкурентність | Перевірте налаштування timeout та AutoClose під навантаженням, і ознайомтеся з прикладами веб‑ферми, перш ніж вважати, що одного вузла достатньо. Обмежте швидкість запитів до кінцевої точки завантаження. |
Вимірюйте на власних документах. 5 МБ PDF, створений з тексту, і 5 МБ скан того ж звіту працюють зовсім по‑різному, і лише один з них з’являється у синтетичному бенчмарку.
Основні висновки
- Doconut Viewer — це SDK .NET без плагінів, який працює з ASP.NET Core, MVC та WebForms. Ваші користувачі нічого не встановлюють.
- Він встановлюється у вашому середовищі і не робить запитів до серверів Doconut, тому документи залишаються в межах, які ви вже контролюєте.
- Транспортна безпека, шифрування даних у спокої та політика зберігання — це ваші налаштування, оскільки файл ніколи не покидає вашу інфраструктуру. Doconut не стає процесором у вашій карті даних.
- Каталог SDK містить 75 розширень файлів у 18 сімействах — PDF, Office, CAD, Visio, Project, електронну пошту, eBook та зображення, а також DICOM через власний плагін.
- Відображення відбувається на сервері. Це дозволяє браузеру відкривати DWG, і це також пункт, за яким треба планувати ресурси.
- Які елементи керування бачить користувач — друк, завантаження або лише посторінковий перегляд — мають відповідати дозволам, які вже має ваш застосунок.
- Беріть назви параметрів конфігурації з документації для вашої встановленої версії, а не зі статті.
Поширені питання
Q1: Чи потрібно щось встановлювати на сервері?
A: Так. Doconut Viewer — це SDK .NET, який ви встановлюєте у ваш застосунок — почніть зі сторінки завантаження і використайте пакет та документацію для обраної вами версії. Немає жодного хостованого кінцевого пункту для виклику, і нічого не подається з CDN Doconut.
Q2: Хто видаляє файл після перегляду?
A: Ви. Оскільки документ і будь‑який тимчасовий результат рендерингу знаходяться у вашому середовищі, політика зберігання — це налаштування вашого застосунку, а не обіцянка від постачальника. Визначте, куди записуються тимчасові файли і що їх видаляє, перед тим як перейти в продакшн.
Q3: Чи можуть користувачі друкувати документ?
A: Друк — це можливість переглядача, і її можна надати або відмовити окремим користувачам. Зауважте, що контрольований друк є частиною самого переглядача — це не один із чотирьох ліцензованих плагінів, а саме Annotation, Converter, DICOM та Search.
Q4: Чи може він конвертувати документ в інший формат?
A: Це плагін Converter, який ліцензується окремо. Перегляд і конвертація — це різні продукти, і варто чітко розуміти, який саме потрібен вашому робочому процесу.
Готові вбудувати переглядач документів без плагінів у ваш .NET‑застосунок? Почніть зі сторінки завантаження Doconut — пробна ліцензія безкоштовна. А якщо вам просто потрібно було сьогодні відкрити один файл, Doconut.app робить це у вкладці браузера і потім видаляє його.