البداية السريعة: إضافة علامات ميزة إلى تطبيق ASP.NET Core

في هذا التشغيل السريع، ستقوم بإنشاء علامة ميزة في Azure App Configuration واستخدامها للتحكم ديناميكيا في توفر صفحة ويب جديدة في تطبيق ASP.NET Core دون إعادة تشغيله أو إعادة توزيعه.

يوسع دعم إدارة الميزات ميزة التكوين الديناميكي في تكوين التطبيق. يعتمد المثال في هذا التشغيل السريع على تطبيق ASP.NET Core المقدم في البرنامج التعليمي للتكوين الديناميكي. قبل المتابعة، قم بإنهاء التشغيل السريع، والبرنامج التعليمي لإنشاء تطبيق ASP.NET Core مع التكوين الديناميكي أولا.

المتطلبات الأساسية

اتبع المستندات لإنشاء تطبيق ASP.NET Core بتكوين ديناميكي.

إنشاء علامة ميزة

أضف علامة ميزة تسمى Beta إلى متجر App Configuration واترك Label and Description بقيمها الافتراضية. لمزيد من المعلومات حول كيفية إضافة علامات الميزات إلى متجر باستخدام مدخل Microsoft Azure أو CLI، انتقل إلى إنشاء علامة ميزة.

تفعيل علامة الميزة المسماة Beta

استخدام علامة ميزة

  1. انتقل إلى دليل المشروع، وقم بتشغيل الأمر التالي لإضافة مرجع إلى حزمة NuGet Microsoft.FeatureManagement.AspNetCore .

    dotnet add package Microsoft.FeatureManagement.AspNetCore
    
  2. افتح Program.cs، وأضف استدعاء إلى UseFeatureFlags الأسلوب داخل AddAzureAppConfiguration المكالمة.

    // Load configuration from Azure App Configuration
    builder.Configuration.AddAzureAppConfiguration(options =>
    {
        options.Connect(connectionString)
               // Load all keys that start with `TestApp:` and have no label
               .Select("TestApp:*", LabelFilter.Null)
               // Configure to reload configuration if the registered sentinel key is modified
               .ConfigureRefresh(refreshOptions =>
                    refreshOptions.Register("TestApp:Settings:Sentinel", refreshAll: true));
    
        // Load all feature flags with no label
        options.UseFeatureFlags();
    });
    

    تلميح

    عندما لا يتم تمرير أي معلمة UseFeatureFlags إلى الأسلوب، فإنه يقوم بتحميل جميع علامات الميزات بدون تسمية في متجر App Configuration. الفاصل الزمني الافتراضي للتحديث لعلامات الميزات هو 30 ثانية. يمكنك تخصيص هذا السلوك عبر المعلمة FeatureFlagOptions . على سبيل المثال، يقوم مقتطف التعليمات البرمجية التالي بتحميل علامات الميزات التي تبدأ ب TestApp فقط: في اسم المفتاح الخاص بها ولديك تسمية dev. تقوم التعليمات البرمجية أيضا بتغيير وقت الفاصل الزمني للتحديث إلى 5 دقائق. لاحظ أن وقت الفاصل الزمني للتحديث هذا منفصل عن ذلك لقيم المفاتيح العادية.

    options.UseFeatureFlags(featureFlagOptions =>
    {
        featureFlagOptions.Select("TestApp:*", "dev");
        featureFlagOptions.CacheExpirationInterval = TimeSpan.FromMinutes(5);
    });
    
  3. أضف إدارة الميزات إلى مجموعة الخدمات لتطبيقك عن طريق استدعاء AddFeatureManagement.

    تحديث Program.cs بالتعليمات البرمجية التالية.

    // Existing code in Program.cs
    // ... ...
    
    builder.Services.AddRazorPages();
    
    // Add Azure App Configuration middleware to the container of services.
    builder.Services.AddAzureAppConfiguration();
    
    // Add feature management to the container of services.
    builder.Services.AddFeatureManagement();
    
    // Bind configuration "TestApp:Settings" section to the Settings object
    builder.Services.Configure<Settings>(builder.Configuration.GetSection("TestApp:Settings"));
    
    var app = builder.Build();
    
    // The rest of existing code in program.cs
    // ... ...
    

    أضف using Microsoft.FeatureManagement; في أعلى الملف إذا لم يكن موجودا.

    إشعار

    بالنسبة لتطبيقات Blazor، راجع إرشادات تمكين إدارة الميزات كخدمات محددة النطاق.

  4. أضف صفحة Razor فارغة جديدة تسمى Beta ضمن دليل Pages . يتضمن ملفين Beta.cshtml و Beta.cshtml.cs.

    افتح Beta.cshtml، وقم بتحديثه بالعلامات التالية:

    @page
    @model TestAppConfig.Pages.BetaModel
    @{
        ViewData["Title"] = "Beta Page";
    }
    
    <h1>This is the beta website.</h1>
    

    افتح Beta.cshtml.cs، وأضف FeatureGate سمة BetaModel إلى الفئة . FeatureGate تضمن السمة إمكانية الوصول إلى صفحة Beta فقط عند تمكين علامة ميزة Beta. إذا لم يتم تمكين علامة ميزة بيتا، فسترجع الصفحة 404 غير موجود.

    using Microsoft.AspNetCore.Mvc.RazorPages;
    using Microsoft.FeatureManagement.Mvc;
    
    namespace TestAppConfig.Pages
    {
        [FeatureGate("Beta")]
        public class BetaModel : PageModel
        {
            public void OnGet()
            {
            }
        }
    }   
    
  5. افتح Pages/_ViewImports.cshtml، وسجل مدير الميزات Tag Helper باستخدام @addTagHelper توجيه.

    @addTagHelper *, Microsoft.FeatureManagement.AspNetCore
    

    تسمح الشفرة السابقة باستخدام <feature> Tag Helper في ملفات المشروع .cshtml.

  6. افتح _Layout.cshtml في الدليل Pages/Shared . أدخل علامة <feature> جديدة بين عنصري شريط التنقل Home وPrivacy، كما هو موضح في الأسطر المميزة أدناه.

    <nav class="navbar navbar-expand-sm navbar-toggleable-sm navbar-light bg-white border-bottom box-shadow mb-3">
        <div class="container">
            <a class="navbar-brand" asp-area="" asp-page="/Index">TestAppConfigNet3</a>
            <button class="navbar-toggler" type="button" data-toggle="collapse" data-target=".navbar-collapse" aria-controls="navbarSupportedContent"
                    aria-expanded="false" aria-label="Toggle navigation">
                <span class="navbar-toggler-icon"></span>
            </button>
            <div class="navbar-collapse collapse d-sm-inline-flex flex-sm-row-reverse">
                <ul class="navbar-nav flex-grow-1">
                    <li class="nav-item">
                        <a class="nav-link text-dark" asp-area="" asp-page="/Index">Home</a>
                    </li>
                    <feature name="Beta">
                        <li class="nav-item">
                            <a class="nav-link text-dark" asp-area="" asp-page="/Beta">Beta</a>
                        </li>
                    </feature>
                    <li class="nav-item">
                        <a class="nav-link text-dark" asp-area="" asp-page="/Privacy">Privacy</a>
                    </li>
                </ul>
            </div>
        </div>
    </nav>
    

    <feature> تضمن العلامة عرض عنصر القائمة Beta فقط عند تمكين علامة ميزة Beta.

يوصى بإنشاء التطبيق وتشغيله محليًا

  1. لإنشاء التطبيق باستخدام .NET Core CLI، قم بتشغيل الأمر التالي في خانة الأمر:

    dotnet build
    
  2. بعد اكتمال البناء بنجاح، قم بتشغيل الأمر التالي لتشغيل تطبيق الويب محلياً:

    dotnet run
    
  3. افتح نافذة مستعرض، ثم انتقل إلى عنوان URL الموضح في dotnet run الإخراج. يجب أن يعرض متصفحك صفحة مشابهة للصورة أدناه.

    علامة الميزة قبل التمكين

  4. قم بتسجيل الدخول إلى بوابة Azure. حدد All resources، وحدد App Configuration store الذي قمت بإنشائه مسبقا.

  5. حدد إدارة الميزات وحدد موقع علامة ميزة Beta . قم بتمكين العلامة عن طريق تحديد خانة الاختيار ضمن ممكن.

  6. قم بتحديث المتصفح عدة مرات. عند مرور نافذة وقت الفاصل الزمني للتحديث، ستظهر الصفحة مع محتوى محدث.

    علامة الميزة بعد التمكين

  7. حدد القائمة Beta. سيجلبك إلى موقع بيتا على الويب الذي قمت بتمكينه ديناميكيا.

    صفحة بيتا لعلامة الميزة

تنظيف الموارد

إذا كنت لا تريد مواصلة استخدام الموارد التي تم إنشاؤها في هذه المقالة، يوصى بحذف مجموعة الموارد التي أنشأتها هنا لتجنب الرسوم.

هام

حذف مجموعة الموارد لا يمكن التراجع عنه. يتم حذف مجموعة الموارد وجميع الموارد المضمنة فيها نهائيًا. تأكد من عدم حذفك للموارد أو مجموعة المورد الخاطئة عن غير قصد. في حالة إنشاء الموارد لهذه المقالة داخل مجموعة موارد تشتمل على موارد أخرى تريد الاحتفاظ بها، احذف كل مورد على حدة من الجزء الخاص به بدلًا من حذف مجموعة الموارد.

  1. سجل الدخول إلى مدخل Microsoft Azure، وحدد Resource groups.
  2. في المربع تصفية حسب الاسم ، أدخل اسم مجموعة الموارد الخاصة بك.
  3. في قائمة النتائج، حدد اسم مجموعة الموارد لاستعراض نظرة عامة.
  4. حدد Delete resource group.
  5. يُطلب منك تأكيد حذف مجموعة الموارد. أدخل اسم مجموعة الموارد للتأكيد وحدد "Delete".

بعد بضع لحظات، يتم حذف مجموعة الموارد وكافة مواردها.

الخطوات التالية

في هذا التشغيل السريع، أضفت إمكانية إدارة الميزات إلى تطبيق ASP.NET Core أعلى التكوين الديناميكي. توفر مكتبة Microsoft.FeatureManagement.AspNetCore تكاملا غنيا لتطبيقات ASP.NET Core، بما في ذلك إدارة الميزات في إجراءات وحدة تحكم MVC وصفحات razor وطرق العرض والمسارات والبرامج الوسيطة. لمزيد من المعلومات، تابع إلى البرنامج التعليمي التالي.

بينما تسمح لك علامة الميزة بتنشيط الوظائف أو إلغاء تنشيطها في تطبيقك، فقد تحتاج إلى تخصيص علامة ميزة استنادا إلى منطق التطبيق. تسمح لك عوامل تصفية الميزات بتمكين علامة ميزة بشكل مشروط. لمزيد من المعلومات، تابع إلى البرنامج التعليمي التالي.

يوفر Azure App Configuration عوامل تصفية ميزات مضمنة تمكنك من تنشيط علامة ميزة فقط خلال فترة معينة أو لجمهور مستهدف معين من تطبيقك. لمزيد من المعلومات، تابع إلى البرنامج التعليمي التالي.

لتمكين إمكانية إدارة الميزات للأنوع الأخرى من التطبيقات، تابع إلى البرامج التعليمية التالية.

لمعرفة المزيد حول إدارة علامات الميزات في Azure App Configuration، تابع إلى البرنامج التعليمي التالي.