کتابخانه های مدیریت ویژگی .net Core پشتیبانی ایدیومی را برای اجرای پرچم های ویژگی در یک برنامه کاربردی هسته ای .net یا ASP.net ارائه می دهند. این کتابخانه ها به شما امکان می دهند تا به طور اعلام کننده پرچم های ویژگی را به کد خود اضافه کنید تا نیازی به نوشتن کد به صورت دستی نباشید تا در صورت بیانیه ویژگی ها را فعال یا غیرفعال کنید.
کتابخانه های مدیریت ویژگی ها همچنین چرخه های عمر پرچم را در پشت صحنه مدیریت می کنند. به عنوان مثال ، کتابخانه ها حاوی پرچم های ذخیره و حافظه پنهان هستند ، یا تضمین می کنند که یک کشور پرچم در طی تماس درخواست تغییر ناپذیر باشد. علاوه بر این ، کتابخانه هسته ASP.net ادغام های خارج از جعبه را ارائه می دهد ، از جمله اقدامات کنترلر MVC ، نماها ، مسیرها و میان افزار.
پرچم های ویژگی Add به یک برنامه اصلی ASP.net Quickstart نمونه ای ساده از نحوه استفاده از پرچم های ویژگی در یک برنامه اصلی ASP.net را نشان می دهد. این آموزش گزینه ها و قابلیت های تنظیم اضافی کتابخانه های مدیریت ویژگی را نشان می دهد. می توانید از برنامه نمونه ایجاد شده در QuickStart استفاده کنید تا کد نمونه نشان داده شده در این آموزش را امتحان کنید.
برای مستندات مرجع API مدیریت ویژگی ASP.net ، به فضای نام Microsoft. FeatureManagement مراجعه کنید.
در این آموزش ، شما یاد می گیرید که چگونه:
- برای کنترل در دسترس بودن ویژگی ، پرچم های ویژگی را در قسمت های کلیدی برنامه خود اضافه کنید.
- هنگام استفاده از آن برای مدیریت پرچم های ویژگی ، با پیکربندی برنامه ادغام شوید.
مدیریت ویژگی را تنظیم کنید
برای دسترسی به مدیر ویژگی .net Core ، برنامه شما باید به بسته Microsoft. FeatureManagement.aspNetcore Nuget مراجعه کند.
مدیر ویژگی .net Core از سیستم پیکربندی بومی چارچوب پیکربندی شده است. در نتیجه ، می توانید تنظیمات پرچم ویژگی برنامه خود را با استفاده از هر منبع پیکربندی که از NET Core پشتیبانی می کند ، از جمله پرونده های محلی AppSettings. json یا متغیرهای محیط تعریف کنید.
به طور پیش فرض ، مدیر ویژگی پیکربندی پرچم را از بخش "FeatureManagement" داده های پیکربندی هسته .net بازیابی می کند. برای استفاده از مکان پیکربندی پیش فرض ، با روش AddFeatureManagement از IserviceCollection منتقل شده به روش ConfiguresRevice کلاس راه اندازی تماس بگیرید.
می توانید مشخص کنید که پیکربندی مدیریت ویژگی باید با فراخوانی Configuration. GetSection و عبور به نام بخش مورد نظر ، از یک بخش پیکربندی متفاوت بازیابی شود. مثال زیر به مدیر ویژگی می گوید که در عوض از بخش دیگری به نام "myFeatureFlags" بخواند:
اگر در پرچم های ویژگی خود از فیلترها استفاده می کنید ، باید Microsoft. FeatureManagement. FeatureFilters را درج کنید و یک تماس برای افزودن فیلترها را که نام نوع فیلتر مورد نظر خود را به عنوان نوع عمومی روش استفاده می کنید ، اضافه کنید. برای کسب اطلاعات بیشتر در مورد استفاده از فیلترهای ویژگی برای فعال کردن و غیرفعال کردن عملکرد ، به ویژگی های مرحله بندی شده برای مخاطبان هدفمند مراجعه کنید.
مثال زیر نحوه استفاده از فیلتر ویژگی داخلی به نام درصد Filter را نشان می دهد:
به جای اینکه پرچم های ویژگی خود را در برنامه خود سخت کدگذاری کنید ، توصیه می کنیم پرچم های ویژگی را در خارج از برنامه نگه دارید و آنها را به طور جداگانه مدیریت کنید. انجام این کار به شما امکان می دهد حالت های پرچم را در هر زمان اصلاح کنید و این تغییرات را بلافاصله در برنامه انجام دهید. سرویس پیکربندی برنامه Azure یک UI پورتال اختصاصی را برای مدیریت تمام پرچم های ویژگی شما فراهم می کند. سرویس پیکربندی برنامه Azure همچنین پرچم های ویژگی را مستقیماً از طریق کتابخانه های مشتری .net Core خود به برنامه شما ارائه می دهد.
ساده ترین راه برای اتصال برنامه اصلی ASP.net به پیکربندی برنامه از طریق ارائه دهنده پیکربندی موجود در بسته NUGET Microsoft. AppConfiguration.aspnetcore است. پس از مراجعه به بسته ، این مراحل را برای استفاده از این بسته NUGET دنبال کنید.
پرونده Program. cs را باز کنید و کد زیر را اضافه کنید.
CreateHostBuilder جایگزین CreateWebhostBuilder در .net Core 3. x است. نحو صحیح را بر اساس محیط خود انتخاب کنید.
Startup. cs را باز کنید و روش پیکربندی و پیکربندی را به روز کنید تا میانی داخلی به نام useazureappconfiguration اضافه کنید. این واسطه اجازه می دهد تا مقادیر پرچم ویژگی در یک بازه مکرر تازه شود در حالی که برنامه وب ASP.net Core همچنان به درخواست های خود ادامه می دهد.
در یک سناریوی معمولی ، مقادیر پرچم ویژگی خود را به صورت دوره ای به عنوان استقرار و فعال کردن و ویژگی های مختلف برنامه خود به روز خواهید کرد. به طور پیش فرض ، مقادیر پرچم ویژگی برای مدت 30 ثانیه ذخیره می شوند ، بنابراین هنگامی که واسطه دریافت کننده درخواست دریافت می شود ، یک عمل تازه شروع می شود تا زمانی که مقدار ذخیره شده به روز شود ، مقدار را به روز نمی کند. کد زیر نحوه تغییر زمان انقضا حافظه نهان یا فاصله رای گیری را به 5 دقیقه با تنظیم cacheexpirationinterval در تماس با استفاده از UseFeatureFlags نشان می دهد.
اعلامیه پرچم
هر اعلامیه پرچم ویژگی دارای دو بخش است: یک نام و لیستی از یک یا چند فیلتر که برای ارزیابی وضعیت یک ویژگی استفاده می شود (یعنی وقتی مقدار آن صحیح است). یک فیلتر معیار را برای روشن شدن یک ویژگی مشخص می کند.
هنگامی که یک پرچم ویژگی دارای چندین فیلتر است ، لیست فیلتر به ترتیب طی می شود تا زمانی که یکی از فیلترها مشخص شود ویژگی باید فعال شود. در آن مرحله ، پرچم ویژگی روشن است و هرگونه نتایج فیلتر باقیمانده از بین می رود. اگر هیچ فیلتر نشانگر این ویژگی باشد ، باید پرچم ویژگی خاموش باشد.
مدیر ویژگی از AppSettings. json به عنوان منبع پیکربندی برای پرچم های ویژگی پشتیبانی می کند. مثال زیر نحوه تنظیم پرچم های ویژگی را در یک فایل JSON نشان می دهد:
طبق کنوانسیون ، بخش ویژگی های این سند JSON برای تنظیمات پرچم ویژگی استفاده می شود. مثال قبلی سه پرچم ویژگی را با فیلترهای خود تعریف شده در ویژگی EnabledFor نشان می دهد:
- Featurea روشن است.
- FeatureB خاموش است.
- Featurec یک فیلتر به نام درصد با خاصیت پارامترها را مشخص می کند. درصد یک فیلتر قابل تنظیم است. در این مثال ، درصد احتمال 50 درصد برای پرچم Featurec را مشخص می کند. برای راهنمای نحوه استفاده از فیلترهای ویژگی ، به استفاده از فیلترهای ویژگی برای فعال کردن پرچم های ویژگی مشروط مراجعه کنید.
برای دسترسی به IfeatureManager از تزریق وابستگی استفاده کنید
برای برخی از عملیات ، مانند بررسی دستی مقادیر پرچم ویژگی ، باید نمونه ای از IfeatureManager را بدست آورید. در ASP.net Core MVC ، می توانید از طریق تزریق وابستگی به مدیر ویژگی IfeatureManager دسترسی پیدا کنید. در مثال زیر ، استدلالی از نوع IfeatureManager به امضای سازنده برای یک کنترلر اضافه می شود. زمان اجرا به طور خودکار مرجع را برطرف می کند و هنگام تماس با سازنده ، رابط کاربری را فراهم می کند. اگر از یک الگوی برنامه استفاده می کنید که در آن کنترلر قبلاً یک یا چند آرگومان تزریق وابستگی در سازنده مانند Ilogger دارد ، فقط می توانید IFEATUREMANAGER را به عنوان یک آرگومان اضافی اضافه کنید:
منابع پرچم
پرچم های ویژگی را به عنوان متغیرهای رشته ای تعریف کنید تا آنها را از کد ارجاع دهید:
چک های پرچم
یک الگوی مشترک از مدیریت ویژگی این است که بررسی کنید که آیا پرچم ویژگی روی آن تنظیم شده است یا خیر ، یک بخش از کد را اجرا کنید. مثلا:
اقدامات کنترل کننده
با کنترلرهای MVC، می توانید از ویژگی FeatureGate برای کنترل فعال بودن کل کلاس کنترلر یا یک عمل خاص استفاده کنید. کنترلر HomeController زیر نیاز دارد که FeatureA قبل از اجرای هر اقدامی که کلاس کنترلر شامل آن است روشن باشد:
برای عملکرد Index زیر باید FeatureA قبل از اجرا روشن باشد:
هنگامی که یک کنترلر یا عملکرد MVC مسدود می شود زیرا پرچم ویژگی کنترل کننده خاموش است، یک رابط IDisabledFeaturesHandler ثبت شده فراخوانی می شود. رابط پیش فرض IDisabledFeaturesHandler یک کد وضعیت 404 را بدون بدنه پاسخی به مشتری برمی گرداند.
نماهای MVC
_ViewImports. cshtml را در دایرکتوری Views باز کنید و راهنمای تگ مدیریت ویژگی را اضافه کنید:
در نماهای MVC، می توانید از یک برچسب برای ارائه محتوا بر اساس فعال بودن پرچم ویژگی استفاده کنید:
برای نمایش محتوای جایگزین در زمانی که الزامات برآورده نمی شوند، می توان از ویژگی نفی استفاده کرد.
در صورت فعال بودن یک یا همه ویژگی های موجود در فهرست، از تگ ویژگی نیز می توان برای نمایش محتوا استفاده کرد.
فیلترهای MVC
می توانید فیلترهای MVC را طوری تنظیم کنید که بر اساس وضعیت پرچم ویژگی فعال شوند. این قابلیت محدود به فیلترهایی است که IAsyncActionFilter را پیاده سازی می کنند. کد زیر یک فیلتر MVC به نام ThirdPartyActionFilter اضافه می کند. این فیلتر فقط در صورت فعال بودن FeatureA در خط لوله MVC فعال می شود.
میان افزار
همچنین می توانید از پرچم های ویژگی برای اضافه کردن مشروط شاخه های برنامه و میان افزار استفاده کنید. کد زیر تنها زمانی که FeatureA فعال باشد، یک جزء میان افزار را در خط لوله درخواست وارد می کند:
این کد قابلیت عمومی تر را برای انشعاب کل برنامه بر اساس یک پرچم ویژگی ایجاد می کند:
مراحل بعدی
در این آموزش یاد گرفتید که چگونه با استفاده از کتابخانه های Microsoft. FeatureManagement، پرچم های ویژگی را در برنامه ASP.net Core خود پیاده سازی کنید. برای اطلاعات بیشتر در مورد پشتیبانی مدیریت ویژگی در ASP.net Core و پیکربندی برنامه، به منابع زیر مراجعه کنید:
فارکس وکسب درامد...
ما را در سایت فارکس وکسب درامد دنبال می کنید
برچسب :
نویسنده : احمد قانع پور
بازدید : 44
تاريخ : يکشنبه
20 فروردين
1402 ساعت: :