نصب

Doconut را به پروژه .NET 6 خود اضافه کنید

ویور پایه Doconut برای .NET 6 به عنوان یک پکیج NuGet عرضه می‌شود که به هر برنامه ASP.NET Core متصل می‌شود. افزونه‌های اختیاری از پکیج‌های جداگانه استفاده می‌کنند. این صفحه پکیج پایه را نصب می‌کند و میدلور را ثبت می‌نماید — حداقل مورد نیاز قبل از اولین رندر شما.

نصب پکیج

bash
dotnet add package Doconut.NET6

دستور بدون نسخه، آخرین نسخه پایدار را نصب می‌کند. برای بازتولید دقیق نسخهٔ فعلی ۲۶.۷.۰، نسخه را به‌عنوان گزینه‌ای جداگانه پاس دهید:

bash
dotnet add package Doconut.NET6 --version 26.7.0

Doconut.NET6 شناسهٔ پکیج است. پسوند .26.7.0 متعلق به نام فایل دانلود شدهٔ Doconut.NET6.26.7.0.nupkg است و بخشی از شناسه نیست.

شناسایی یکپارچه‌سازی قبل از به‌روزرسانی

شناسهٔ پکیج Doconut.NET6 هم در یکپارچه‌سازی کلاسیک و هم در یکپارچه‌سازی فعلی .NET 6 استفاده شده است. از نام پکیج به‌تنهایی برای انتخاب مستندات استفاده نکنید:

  • DocImage.axd، new Viewer(_cache, _accessor, ...)، OpenDocument(...) به‌صورت همزمان، و اسکریپت‌های ویور که به‌صورت دستی کپی شده‌اند، یکپارچه‌سازی کلاسیک را شناسایی می‌کنند؛
  • AddDoconut()، UseDoconutResources()، یک Viewer تزریق‌شده، و OpenDocumentAsync(...) یکپارچه‌سازی فعلی مستند شده در اینجا را شناسایی می‌کنند.

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

ثبت Doconut

AddDoconut() تنها نقطهٔ ورودی ثبت است — یک overload واحد دارد و سرویس Viewer، سرویس لایسنس و زیرساخت رندر را به کانتینر DI متصل می‌کند.

دو فراخوانی میدلور تنظیم را کامل می‌کنند و ترتیب آن‌ها مهم است: UseDoconutResources() باید قبل از UseDoconut() اجرا شود. UseDoconut() میدلور نهایی است، بنابراین فراخوانی آن ابتدا به این معنی است که هر درخواست به یک منبع /doconut-res هرگز به هندلر منابع نمی‌رسد و ۴۰۴ می‌شود. اتصال سشن نیز لازم است — امنیت پیش‌فرض سند Doconut هر درخواست صفحه را نسبت به وضعیت سشن ASP.NET اعتبارسنجی می‌کند.

csharp
builder.Services.AddDoconut(options =>
{
    options.LicensePath = "Doconut.Viewer.lic";
});
builder.Services.AddSession(); // Doconut document security rides on ASP.NET session state

app.UseSession();          // call UseSession() before UseDoconut()
app.UseDoconutResources(); // must be registered before UseDoconut()
app.UseDoconut();

تمام گزینه‌ها

DoconutOptions ویژگی‌های قابل تنظیم زیر را می‌پذیرد. هر یک اختیاری است — مقادیر پیش‌فرض زیر زمانی اعمال می‌شوند که ویژگی‌ای تنظیم نشده باشد.

ویژگیپیش‌فرضتوضیح
ShowDoconutInfofalseزمانی که true باشد، درخواست بدون token بنر نسخه را به‌جای ۴۰۴ برمی‌گرداند. برای بررسی سریع مفید است؛ در محیط تولید غیرفعال کنید.
UnsafeModefalseزمانی که true باشد، بررسی امنیت سشن ASP.NET را در درخواست‌های صفحه نادیده می‌گیرد. در محیط تولید غیرفعال کنید.
MiddlewarePath"/doconut"مقدار هماهنگی برای نقطهٔ انتهایی صفحه‑تصویر. اعتبارسنجی می‌شود، اما به‌تنهایی شاخه‌ای را سوار نمی‌کند؛ آن را با نگاشت واقعی UseDoconut() و BasePath کلاینت هم‌راستا نگه دارید.
ResourcesPath"/doconut-res"محلی که منابع جاسازی‌شدهٔ JS/CSS/تصویر از آن سرو می‌شوند.
LicensePath"" (empty string)مسیر فایل لایسنس. خالی بودن به معنای عبور به منبع بعدی و سپس جستجوی خودکار است.
LicenseContent"" (empty string)محتوای خام لایسنس — از یک متغیر محیطی، مدیر رازها یا پایگاه داده.
LicenseStreamnullلایسنس به‌صورت استریم، یک‌بار در استارتاپ خوانده می‌شود.
ResetLicensefalseپرچم سازگاری رزرو شده. سرویس‌های فعلی .NET 6 لایسنس را در زمان AddDoconut() می‌خوانند؛ پس از تعویض لایسنس برنامه را مجدداً راه‌اندازی کنید.

اولویت لایسنس وقتی بیش از یک منبع تنظیم شده باشد: LicenseStream بر LicenseContent، LicenseContent بر LicensePath، LicensePath بر جستجوی خودکار ارجحیت دارد — ببینید راه‌اندازی لایسنس.

csharp
builder.Services.AddDoconut(options =>
{
    options.LicensePath     = "Doconut.Viewer.lic";
    options.MiddlewarePath  = "/doconut";     // coordinate with app mapping and client BasePath
    options.ResourcesPath   = "/doconut-res"; // where the viewer's JS/CSS/images are served from
    options.UnsafeMode      = false;          // keep session security on
    options.ShowDoconutInfo = false;
});

گام‌های بعدی

آیا این صفحه مفید بود؟