یک نمایشگر سند را به برنامه ASP.NET خود اضافه کنید
۱۴۰۲/۵/۱۰

یک نمایشگر سند را به برنامه ASP.NET خود اضافه کنید

شما فایل‌ها را اینجا باز می‌کردید. قرار دادن همان رندرر داخل برنامه ASP.NET خودتان یک چیز مهم را تغییر می‌دهد: جایی که سند می‌رود.

شما فایل‌ها را روی این سایت رها می‌کردید تا آن‌ها را بخوانید. در مقطعی کسی می‌پرسد آیا می‌توان همان کار را داخل برنامه‌ای که روی آن کار می‌کنید انجام داد — یک پرونده، یک ادعا، یک نقشه، که در صفحهٔ خودتان باز شود به جای اینکه دانلود شود. بله، می‌توان، و تصمیم‌گیری کمتر از آنچه به نظر می‌رسد است، چون فقط یک چیز واقعاً تغییر می‌کند.

نمایشگر سند ASP.NET
نمایشگر سند ASP.NET

یک چیز که تغییر می‌کند: جایی که فایل می‌رود

در اینجا، شما یک سند را به ما آپلود می‌کنید، رندر می‌شود و وقتی آن را می‌بندید حذف می‌شود. این معاملهٔ درستی برای فایلی است که یک‌بار برای شما ارسال شده و می‌خواهید الآن بخوانید.

این معاملهٔ نادرستی برای سندی است که مال شما نیست تا جابه‌جا شود. یک رکورد پزشکی، یک قرارداد امضا شده، یک نقشه تحت توافق‌نامهٔ عدم افشا — این‌ها نمی‌توانند از زیرساخت شما خارج شوند و هیچ وعده‌ای دربارهٔ حذف آن‌ها این مشکل را حل نمی‌کند، چون فایل هنوز مسیری را طی کرده است. جاسازی رندرر این وضعیت را معکوس می‌کند: سند توسط سرور شما، داخل شبکهٔ شما باز می‌شود و آنچه به مرورگر می‌رسد یک رندر است. فایل هرگز جابه‌جا نمی‌شود.

به همین دلیل است که باید جاسازی شود. بقیه جزئیات هستند.

این یک کامپوننت است، نه یک ویجت

نقطه‌ای که مردم ابتدا اشتباه می‌گیرند این است: این یک جاوااسکریپت نیست که فایل را در مرورگر باز کند. این یک کامپوننت بومی .NET است که از پروژهٔ خود ارجاع می‌دهید و رندرینگ به‌صورت سرور‑ساید انجام می‌شود. صفحهٔ شما نتیجه را دریافت می‌کند.

دو پیامد پی‌روی می‌کند. پیام خوب: مرورگر هیچ‌چیزی نصب نمی‌کند — بدون پلاگین، بدون ActiveX، بدون ریدر — بنابراین همانند یک دسکتاپ قفل‌شده همان‌طور که روی تلفن کار می‌کند. پیام برنامه‌ریزی‌شده: سرور شما کار را انجام می‌دهد، بنابراین یک PDF ۲۰۰‑صفحه‌ای و یک نقشهٔ ۴۰ مگابایتی همان درخواست نیستند. ماشین را برای بزرگ‌ترین فایلی که می‌پذیرید مقیاس‌بندی کنید و هر چیزی بزرگ‌تر را در آپلود رد کنید.

آنچه قبل از شروع باید تصمیم بگیرید

سه سؤال، و هیچ‌کدام دربارهٔ ویور نیست:

  • سندها از کجا می‌آیند — از یک پایگاه داده، یک اشتراک فایل، ذخیره‌سازی Blob؟
  • چه کسی اجازهٔ مشاهدهٔ این سند را دارد، و آیا URL ویور این را اعمال می‌کند یا فقط فرض می‌کند؟ یک نقطهٔ انتهایی رندر که به هر کسی با شناسهٔ سند پاسخ می‌دهد، یک حفرهٔ کلاسیک است.
  • چه اتفاقی برای فایل‌های موقت که رندر تولید می‌کند می‌افتد و چه زمانی.

به این سؤالات پاسخ دهید و یکپارچه‌سازی کوتاه خواهد شد. اگر بعداً این موارد را نادیده بگیرید، مجبور خواهید شد مجوزدهی را روی ویوری که قبلاً کار می‌کند اضافه کنید که بدتر است.

جایی که اجرا می‌شود

.NET Framework 4.0 به بالا و .NET Standard 2.0 به بالا — بنابراین WebForms، MVC، ASP.NET Core، Blazor Server و کانتینرهای لینوکس. نیازی به نصب Office روی سرور نیست؛ رندرر فرمت‌ها را مستقیماً می‌خواند.

اگر امروز فقط می‌خواهید یک فایل را بخوانید، همان‌طور که برای نمایشگر PDF و سایر ویورها در اینجا وجود دارد، استفاده کنید. اگر برنامه‌ای است که در ذهن دارید، کامپوننت، بسته‌ها و مستندات API آن در Doconut.com موجود است.