التثبيت
أضف Doconut إلى مشروع .NET 8 الخاص بك
العارض الأساسي Doconut لـ .NET 8 يُوزع كحزمة NuGet واحدة يمكن توصيلها بأي تطبيق ASP.NET Core. الإضافات الاختيارية تستخدم حزمًا منفصلة. تُثبت هذه الصفحة الحزمة الأساسية وتُسجّل middleware — الحد الأدنى المطلوب قبل أول عملية عرض لك.
تثبيت الحزمة
dotnet add package Doconut.NET8الأمر غير المحدد للإصدار يثبت أحدث إصدار ثابت. لإعادة إنتاج الإصدار الحالي 26.7.0 بدقة، مرّر الإصدار كخيار منفصل:
dotnet add package Doconut.NET8 --version 26.7.0Doconut.NET8 هو معرف الحزمة. اللاحقة .26.7.0 تنتمي إلى اسم الملف Doconut.NET8.26.7.0.nupkg الذي تم تنزيله وليست جزءًا من المعرف.
تسجيل Doconut
AddDoconut() هو نقطة التسجيل الوحيدة — هناك نسخة تحميل واحدة، وهو يربط خدمة Viewer، خدمة الترخيص، وبنية العرض داخل حاوية DI.
هناك استدعاءان للـ middleware يكملان الإعداد، وترتيبهما مهم: UseDoconutResources() يجب أن يُنفّذ قبل UseDoconut(). UseDoconut() هو middleware نهائي، لذا استدعاؤه أولًا يعني أن كل طلب إلى أصل /doconut-res لا يصل إلى معالج الموارد ويُعيد 404. ربط الجلسة مطلوب أيضًا — أمان مستندات Doconut الافتراضي يتحقق من كل طلب صفحة مقابل حالة جلسة ASP.NET.
builder.Services.AddDoconut(options =>
{
options.LicensePath = "Doconut.Viewer.lic";
});
builder.Services.AddDistributedMemoryCache(); // حالة الجلسة تحتاج إلى ذاكرة تخزين مؤقت (MVC/Razor Pages يضيفون واحدة بالفعل)
builder.Services.AddSession(); // أمان مستندات Doconut يعتمد على حالة جلسة ASP.NET
app.UseSession(); // استدعِ UseSession() قبل UseDoconut()
app.UseDoconutResources(); // يجب تسجيله قبل UseDoconut()
app.UseDoconut();جميع الخيارات
DoconutOptions تقبل الخصائص القابلة للتعيين التالية. كل واحدة اختيارية — القيم الافتراضية أدناه تُطبق عندما تُترك الخاصية غير مُحددة.
| الخاصية | الافتراضي | الوصف |
|---|---|---|
ShowDoconutInfo | false | عند true، يُعيد الطلب بدون token شريط نسخة بدلاً من 404. مفيد كفحص سريع؛ يُفضل إيقافه في بيئة الإنتاج. |
UnsafeMode | false | عند true، يتجاوز فحص أمان جلسة ASP.NET على طلبات الصفحات. يُفضل إيقافه في بيئة الإنتاج. |
MiddlewarePath | "/doconut" | قيمة التنسيق لنقطة النهاية page-image. يتم التحقق منها، لكنها لا تُنشئ فرعًا بحد ذاتها؛ حافظ على توافقها مع تعيين UseDoconut() الفعلي وBasePath الخاص بالعميل. |
ResourcesPath | "/doconut-res" | المكان الذي تُقدم منه موارد JS/CSS/الصور المدمجة. |
LicensePath | "" (empty string) | مسار ملف الترخيص. إذا كان فارغًا يعني الانتقال إلى المصدر التالي، ثم البحث التلقائي. |
LicenseContent | "" (empty string) | محتوى الترخيص الخام — من متغير بيئي، أو مدير أسرار، أو قاعدة بيانات. |
LicenseStream | null | الترخيص كتيار، يُقرأ مرة واحدة عند بدء التشغيل. |
ResetLicense | false | علامة توافقية محجوزة. خدمات .NET 8 الحالية تقرأ الترخيص أثناء AddDoconut()؛ أعد تشغيل التطبيق بعد استبدال الترخيص. |
أولوية الترخيص عندما يتم تعيين أكثر من مصدر: LicenseStream يتفوق على LicenseContent يتفوق على LicensePath يتفوق على البحث التلقائي — راجع إعداد الترخيص.
builder.Services.AddDoconut(options =>
{
options.LicensePath = "Doconut.Viewer.lic";
options.MiddlewarePath = "/doconut"; // التنسيق مع تعيين التطبيق وBasePath الخاص بالعميل
options.ResourcesPath = "/doconut-res"; // المكان الذي تُقدم منه ملفات JS/CSS/الصور للعارض
options.UnsafeMode = false; // حافظ على أمان الجلسة مفعلاً
options.ShowDoconutInfo = false;
});الخطوات التالية
- البدء السريع — افتح أول مستند لك وعرضه في المتصفح.
- إعداد الترخيص — حيث يبحث Doconut عن ملف الترخيص الخاص بك.
هل كانت هذه الصفحة مفيدة؟