نمایش توکار سند باید حس یک بخش از برنامه را بدهد، نه اینکه کاربر را به یک افزونهٔ قدیمی مرورگر یا برنامهٔ دسکتاپ نصبشده محلی منتقل کند. برای پروژههای ASP.NET و .NET مبتنی بر ویندوز، Doconut یک SDK نمایش سند فراهم میکند که میتواند اسناد تجاری را داخل برنامهٔ وب شما رندر کند.
این راهنما معماری یک تجربهٔ نمایش بدون افزونه را توضیح میدهد بدون اینکه کد منبع Doconut مستند نشده را نشان دهد.

معنای «بدون افزونه» چیست؟
یک نمایشگر بدون افزونه از کاربر نمیخواهد فناوریهایی مانند ActiveX، Flash، Silverlight یا یک افزونهٔ سفارشی مرورگر را پیش از باز کردن سند نصب کند.
این کار چند منبع اصطکاک را کاهش میدهد:
- کاربران نیازی به مجوزهای نصب محلی ندارند.
- تیمهای IT نیازی به توزیع و بهروزرسانی یک افزونهٔ سمت کاربر ندارند.
- برنامه جریان کار نمایش را در داخل رابط خود نگه میدارد.
- وابستگیهای افزونهٔ قدیمی دیگر شرط باز کردن فایل نیستند.
بدون افزونه به این معنا نیست که بدون وابستگی باشد. سرور هنوز به SDK صحیح، زمان اجرا، فونتها، دسترسی به ذخیرهسازی، پیکربندی و لایسنس نیاز دارد. برنامه همچنین مسئول احراز هویت، مجوزدهی، نگهداری و نظارت میماند.
چرا رندرینگ سند در سمت سرور مفید است
اسناد تجاری پیچیدهتر از محتوای وب معمولی هستند. فایلهای Office، نقشههای CAD، پیامهای ایمیل و تصاویر با وضوح بالا هر کدام نیاز به پردازش آگاهانه از فرمت دارند.
یک مؤلفهٔ .NET در سمت سرور میتواند این پردازش را انجام دهد در حالی که برنامهٔ وب تجربهٔ نمایش نهایی را ارائه میدهد. این کار از درخواست نصب نرمافزارهای نویسندهٔ اصلی برای هر کاربر جلوگیری میکند.
Doconut برای این نقش طراحی شده است. اطلاعات محصول فعلی آن پشتیبانی از انواع سند شامل PDF، اسناد Office، نقشههای CAD، فایلهای ایمیل و تصاویر را توصیف میکند. فرمتها و ویژگیهای دقیق مورد نیاز برنامهٔ خود را در صفحه نمایشگر Doconut تأیید کنید.
برنامهریزی جریان کار نمایش
یک درخواست سند ایمن معمولاً مراحل زیر را دنبال میکند:
- کاربر سندی را با استفاده از شناسهٔ برنامه انتخاب میکند.
- ASP.NET درخواست را احراز هویت میکند.
- سرور دسترسی به آن سند خاص را تأیید میکند.
- برنامه مکان ذخیرهسازی محافظتشده را حل میکند.
- سند به لایهٔ نمایش با استفاده از روش یکپارچهسازی پشتیبانیشده منتقل میشود.
- برنامه نتیجه را ثبت کرده و منابع موقت را آزاد میکند.
کلاینت هرگز نباید اعتبارنامههای ذخیرهسازی، مسیرهای سرور بدون محدودیت یا اطلاعات بیشتری از سند نسبت به جلسهٔ مجاز دریافت کند.
استفاده از مرزهای امنیتی استاندارد ASP.NET
صفحهٔ نمایش باید همانند هر منبع حساس دیگری محافظت شود.
مکانیزمهای استاندارد .NET میتوانند شامل موارد زیر باشند:
- میدلویر احراز هویت
- ویژگی
[Authorize] - سیاستها و ادعاهای مجوزدهی
- مجوزدهی مبتنی بر منبع
- تزریق وابستگی برای سرویسهای ذخیرهسازی و نمایش
- لاگگیری ساختاری با فیلتر کردن دادههای حساس
مجوزدهی باید در سرور ارزیابی شود. پنهان کردن یک عمل نوار ابزار یا مسیر در رابط کاربری، مانع یک کلاینت مصمم از درخواست مستقیم آن نمیشود.
نگه داشتن دسترسی به SDK پشت یک سرویس برنامهای
از پخش فراخوانیهای مخصوص نمایشگر در سراسر کنترلرها و صفحات خودداری کنید. یک سرویس برنامهای اختصاصی میتواند:
- شناسههای سند مجاز را حل کند
- یک
Streamکنترلشده باز کند - پیکربندی نسخهٔ نصبشدهٔ SDK را اعمال کند
- منابع فایل و استریم را آزاد کند
- خطاهای فنی را به خطاهای ایمن برنامه تبدیل کند
- زمانبندیها و تشخیصهای پاکسازیشده را ثبت کند
این مرز برنامه را برای تست آسانتر میکند و تأثیر ارتقاءهای آیندهٔ SDK را کاهش میدهد.
از منابع دانلود و مستندات رسمی Doconut برای نصب بسته و راهنماییهای API مخصوص نسخه استفاده کنید.
ساخت یک میزبان نمایشگر مفید
محفظهٔ نمایشگر متعلق به برنامه باید فضای کافی برای اسناد واقعی داشته باشد. از کارتهای باریک و عرضهای ثابت دسکتاپ خودداری کنید.
.viewer-workspace {
display: grid;
grid-template-rows: auto minmax(0, 1fr);
width: 100%;
min-height: 36rem;
height: calc(100dvh - 4rem);
}
.viewer-host {
min-width: 0;
min-height: 0;
overflow: hidden;
}
این CSS استاندارد برای صفحهٔ اطراف است، نه پیکربندی Doconut. سِلکتورهای داخلی مستند نشده را هدف قرار ندهید و گزینههای SDK را اختراع نکنید.
صفحه باید همچنین شامل موارد زیر باشد:
- وضعیت بارگذاری واضح
- پیام خطای ایمن
- عنوان سند قابل مشاهده
- راهی برای بازگشت به جریان کار والد
- کنترلهای دسترسیپذیر برنامه
- فضای کافی برای صفحات گستردهٔ عریض و نقشههای دقیق
اعتبارسنجی اسناد پیش از رندرینگ
اگر کاربران فایلها را بارگذاری میکنند، بررسی کنید:
- حجم فایل
- پسوند و امضای فایل
- فرمت پشتیبانیشده
- نیازهای رمز عبور یا رمزگذاری
- محدودیتهای خاص کسبوکار
- نام ذخیرهسازی تولید شده توسط سرور
مسیرهای سرور را مستقیماً از نام فایل اصلی ساخته نکنید. یک شناسهٔ ایمن برنامهای ذخیره کنید و آن را از طریق سرویس سمت سرور مجاز حل کنید.
آمادهسازی سرور ویندوزی
رفتار رندرینگ میتواند به محیط سرور وابسته باشد. تأیید کنید:
- نسخههای پشتیبانیشدهٔ ویندوز و .NET
- فونتهای مورد نیاز
- مکان و مجوزهای ذخیرهسازی موقت
- ظرفیت CPU، حافظه و دیسک موجود
- حداکثر حجم سند و تعداد نشستهای همزمان
- پیکربندی لایسنس
- رویههای پاکسازی
اسناد نمایندهٔ مشتریان را در محیطی که با تولید مطابقت دارد، آزمایش کنید.
فهرست بررسی امنیت و حریم خصوصی
قبل از انتشار:
- درخواستهای نمایش را در صورت نیاز احراز هویت کنید.
- کاربر را برای سند خاص مجوزدهی کنید.
- مسیرها و اعتبارنامههای ذخیرهسازی را روی سرور نگه دارید.
- مجوزهای فایلهای موقت را محدود کنید.
- نگهداری برای اصلیها، دادههای موقت و خروجیها را تعریف کنید.
- خطاهای نمایش دادهشده به کاربران را پاکسازی کنید.
- محتویات سند و اسرار را از لاگها حذف کنید.
- محدودیتهای بارگذاری و همزمانی را اعمال کنید.
- SDK و وابستگیهای برنامه را بهروز نگه دارید.
ادعاهای مربوط به انطباق باید کل سیستم مستقر و فرایندهای سازمانی شما را منعکس کند، نه فقط یک مؤلفهٔ UI.
تست بیش از مسیر خوشایند
کتابخانهٔ تست شما باید شامل موارد زیر باشد:
- PDFهای چندصفحهای
- صفحات گستردهٔ بزرگ
- نقشههای CAD دقیق
- ارائهها با فونتهای غیرمعمول
- فایلهای ایمیل با پیوست
- تصاویر بزرگ
- فایلهای خراب و پشتیبانینشده
- درخواستهای غیرمجاز
- نشستهای نمایش همزمان
- درخواستهای قطعشده و راهاندازی مجدد برنامه
تأیید کنید که شکستها مسیرهای سرور، ردگیری استک یا URLهای ذخیرهسازی را فاش نکنند.
جایگاه Doconut
Doconut قابلیت نمایش سند توکار را داخل یک برنامهٔ وب .NET فراهم میکند. برنامهٔ شما امنیت، ذخیرهسازی، جریان کار، طرحبندی واکنشگرا و کنترلهای عملیاتی را فراهم میکند.
این جداسازی به تیمها اجازه میدهد تا جریانهای کاری وابسته به افزونههای قدیمی را بدون اینکه بهظاهر مدیریت سند بیدردسر یا بدون مسئولیت باشد، جایگزین کنند.
SDK Doconut .NET document viewer را در این لینک بررسی کنید، سپس برای دستورالعملهای متناسب با نسخهٔ انتخابی خود از صفحهٔ دانلود رسمی استفاده کنید.
نتیجهگیری
یک تجربهٔ نمایش سند بدون افزونه اصطکاک نصب را کاهش میدهد و کاربران را در داخل برنامهٔ شما نگه میدارد. آن را بر پایهٔ جریان سند مجاز توسط سرور بسازید، دسترسی به SDK را ایزوله کنید، میزبان نمایشگر فضای کافی داشته باشد و فایلهای واقعی را تحت بار مشابه تولید تست کنید.
برای برنامههای ASP.NET و .NET مبتنی بر ویندوز، Doconut میتواند لایهٔ نمایش سند را فراهم کند در حالی که تیم شما کنترل برنامه و چرخهٔ حیات سند را حفظ میکند.