เฟรมเวิร์กน้ำหนักเบาสำหรับการสลับคุณสมบัติเพื่อเปิดใช้งานการพัฒนาตาม Trunk
Switcheroo มุ่งเป้าไปที่ความเรียบง่าย ด้วยไวยากรณ์ที่สะอาดตาและชุดฟีเจอร์ขั้นต่ำ โดยไม่กระทบต่อความสามารถในการขยายและความสามารถในการทดสอบ
Switcheroo สามารถติดตั้งผ่าน Nuget
> ติดตั้งแพ็คเกจ Switcheroo
Switcheroo ได้รับอนุญาตภายใต้ใบอนุญาต MIT
การติดตั้ง
สามารถดูแพ็คเกจ Nuget ได้ที่นี่
เพิ่มการกำหนดค่า
<การกำหนดค่า> <configSections> <ชื่อส่วน = "คุณสมบัติ" ประเภท = "Switcheroo.Configuration.FeatureToggleConfiguration, Switcheroo"/> </configSections> <คุณสมบัติ> <สลับ> <เพิ่มชื่อ = "Log.InColor" เปิดใช้งาน = "true"/> </สลับ> </คุณสมบัติ> </การกำหนดค่า>
กำลังเริ่มต้นไลบรารี
คุณสมบัติเริ่มต้น (x => x.FromApplicationConfig ());
กำลังตรวจสอบสถานะฟีเจอร์
if (Features.IsEnabled("Log.InColor")){// ใช้งานคุณลักษณะ}
บูลีน (จริง/เท็จ)
คุณสมบัติสลับตามค่าไบนารีคงที่ - ไม่ว่าจะเปิดหรือปิด
features.Add(ใหม่ BooleanToggle("Feature1", จริง));
<คุณสมบัติ> <สลับ> <เพิ่มชื่อ = "BooleanToggle.Enabled" เปิดใช้งาน = "true"/> <เพิ่มชื่อ = "BooleanToggle.Disabled" เปิดใช้งาน = "false"/> </สลับ> </คุณสมบัติ>
ช่วงวันที่ (จริง/เท็จ ภายในช่วงวันที่)
การสลับคุณลักษณะช่วงวันที่ได้รับการประเมินทั้งค่าที่เปิดใช้งานไบนารีและวันที่ปัจจุบัน
features.Add(new DateRangeToggle("Feature2", true, DateTime.Now.AddDays(5), null));
<คุณสมบัติ> <สลับ> <add name="Date.Enabled.InRange" Enabled="true" from="1 มกราคม 2010" จนถึง="31 ธันวาคม 2050"/> <add name="Date.Enabled.Expired" Enabled="true" จนถึง="31 ธันวาคม 2010"/> <เพิ่มชื่อ = "Date.Enabled.Future" เปิดใช้งาน = "true" จาก = "1 มกราคม 2593"/> <เพิ่มชื่อ = "Date.Disabled" เปิดใช้งาน = "false"/> </สลับ> </คุณสมบัติ>
วันที่เริ่มต้น และ จนถึง วันที่สามารถเป็นรูปแบบวันที่ที่ถูกต้องใดๆ ที่สามารถแยกวิเคราะห์โดย DateTime.Parse
คุณสมบัติที่จัดตั้งขึ้น
การทำเครื่องหมายการสลับคุณลักษณะตามที่จัดตั้งขึ้นทำให้การสลับคุณลักษณะส่งข้อยกเว้น FeatureEstablishedException เพื่อให้แน่ใจว่าไม่มีการสอบถามอีกต่อไป
features.Add(สร้างใหม่FeatureToggle("establishedFeature"));
<คุณสมบัติ> <สลับ> <เพิ่มชื่อ = "EstablishedFeature" สร้างแล้ว = "true"/> </สลับ> </คุณสมบัติ>
การพึ่งพาอาศัยกัน
คุณสมบัติอาจขึ้นอยู่กับคุณสมบัติอื่นๆ ตัวอย่างเช่น บางครั้งการมีฟีเจอร์ "หลัก" แล้วจึงสะดวกต่อการมีฟีเจอร์ย่อยที่ขึ้นอยู่กับฟีเจอร์นั้น การขึ้นต่อกันสามารถระบุได้ในการกำหนดค่าเป็นรายการที่คั่นด้วยเครื่องหมายจุลภาค
var mainFeature = new BooleanToggle("mainFeature", true);var subFeature1 = new BooleanToggle("subFeature1", true);var subFeature2 = BooleanToggle ใหม่("subFeature2", true);var dependency1 = new DependencyToggle(subFeature1, mainFeature); var dependency2 = การพึ่งพาใหม่ (subFeature2, mainFeature);features.Add(dependency1);features.Add(dependency2);
<คุณสมบัติ> <สลับ> <เพิ่มชื่อ = "SubFeature1" เปิดใช้งาน = "true" การอ้างอิง = "MainFeature"/> <เพิ่มชื่อ = "SubFeature2" เปิดใช้งาน = "true" การอ้างอิง = "MainFeature"/> <เพิ่มชื่อ = "MainFeature" เปิดใช้งาน = "true" /> </สลับ> </คุณสมบัติ>
การเริ่มต้นที่เป็นมิตรกับรหัส
คุณลักษณะ IFeatureConfiguration = คุณลักษณะใหม่ Configuration{new BooleanToggle("Feature1", true),DateRangeToggle ใหม่("Feature2",true,DateTime.Now.AddDays(-2),DateTime.Now.AddDays(3))};
IOC เป็นมิตรผ่านอินสแตนซ์ IFeatureConfiguration หรืออินสแตนซ์สำรอง Feature.Instance แบบคงที่
สำหรับ < IFeatureConfiguration > (). ใช้ (Features.Instance);
การวินิจฉัยการสลับคุณลักษณะ: IFeatureConfiguration.WhatDoIHave
Console.WriteLine (คุณสมบัติ WhatDoIHave ());
Name Feature1
IsEnabled True
Name Feature2
IsEnabled True
From 11/16/2012 3:32:23 PM
Until 11/21/2012 3:32:23 PM
กำลังโหลดจากทรัพยากรการกำหนดค่าที่กำหนดเอง : สร้างบน IConfigurationReader
0.3.4753.37554
ลบ MutableToggle แล้ว
เพิ่มความสามารถในการ "หยุด" การกำหนดค่าการสลับ
ขณะนี้การตรวจสอบความถูกต้องของสถานะสลับ (รวมถึงรอบในการอ้างอิง) เกิดขึ้นนอกเหนือจากคอนเทนเนอร์การกำหนดค่าคุณลักษณะ
0.3.4749.36197
กลไกในการตรวจจับวงจรการขึ้นต่อกัน คุณลักษณะนี้จะใช้งานได้เมื่อกำหนดค่าการขึ้นต่อกันผ่านการกำหนดค่าแอปพลิเคชันเท่านั้น
แก้ไขข้อผิดพลาดที่ DependencyToggle ขึ้นอยู่กับ DependencyToggle อื่นอาจทำให้การสลับซ้ำกันถูกเพิ่มลงในชุดคุณลักษณะ
v0.3.4748.37146
กลไกการกำหนดค่าสำหรับ DependencyToggle
v0.2.4730.37739
เพิ่ม DependencyToggle แล้ว
เปลี่ยนจากพจนานุกรมเป็น ConcurrentDictionary
v0.2.4705.37094
เพิ่มคุณสมบัติที่จัดตั้งขึ้น
v0.1.4705.28808
เพิ่มการสลับช่วงวันที่
การปรับโครงสร้างภายในค่อนข้างน้อย
v0.1.4704.41742
เวอร์ชันเริ่มต้น : สลับง่าย