Utilities Overview
MiCake provides a series of practical utility classes to help you develop applications more efficiently. This page is the navigation page for the utilities, click each tool link to view the detailed documentation.
Utility Categories
Section titled “Utility Categories”| Category | Tool | Description |
|---|---|---|
| Cache | BoundedLruCache | Thread-safe LRU cache with capacity limits and segment strategies |
| Type conversion | ValueConverter | Unified type conversion interface, supports custom converter registration |
| Query | DynamicQuery | Dynamic query builder, supports automatically generating filter conditions based on property attributes |
| Resilience | CircuitBreaker | Circuit breaker pattern implementation, protects the system from external service failures |
| Storage | DataDepositPool | Temporary data storage pool with capacity limits |
Quick Start
Section titled “Quick Start”Namespaces
Section titled “Namespaces”// Cacheusing MiCake.Util.Cache;
// Type conversionusing MiCake.Util.Convert;
// Dynamic query and pagingusing MiCake.Util.Query.Dynamic;using MiCake.Util.Query.Paging;
// Resilienceusing MiCake.Util.Resilience;
// Storageusing MiCake.Util.Store;
// Validation and randomusing MiCake.Util;
// Extension methodsusing MiCake.Util.Extensions;Common Examples
Section titled “Common Examples”// Parameter validationCheckValue.NotNullOrEmpty(name, nameof(name));
// Type conversionint value = ValueConverter.Convert<string, int>("123");
// String extensionsbool isEmpty = str.IsNullOrWhiteSpace();string camel = "HelloWorld".ToCamelCase();
// Collection extensionslist.AddIfNotContains(item);
// Random selectionvar item = RandomHelper.GetRandomOfList(items);Best Practices
Section titled “Best Practices”- Use caching wisely: cache data that doesn’t change frequently
- Use circuit breakers to protect external calls: and provide fallback strategies
- Use utility classes as singletons: register them as singletons in the DI container
- Validate parameters up front: perform parameter validation at the beginning of methods
- Use extension methods: to simplify common operations
Utility Usage Suggestions
Section titled “Utility Usage Suggestions”Cache Use Cases
Section titled “Cache Use Cases”// ✅ Suitable for caching- Configuration data- Dictionary data- Business data that doesn't change frequently
// ❌ Not suitable for caching- Sensitive user data- Frequently changing data- Large object dataCircuit Breaker Use Cases
Section titled “Circuit Breaker Use Cases”// ✅ Suitable for circuit breakers- External API calls- Database queries (non-core business)- Third-party service integration
// ⚠️ Fallback strategies should be provided- Return cached data- Return default values- Return friendly error messagesType Conversion Notes
Section titled “Type Conversion Notes”// ✅ Correct: handle conversion failuresint? value = ValueConverter.Convert<string, int?>("invalid");if (value == null){ // Handle the conversion failure}
// ⚠️ Note: Convert returns a default value on failure instead of throwing an exceptionvar result = ValueConverter.Convert<string, int>("abc"); // returns 0Next Steps
Section titled “Next Steps”- View the detailed documentation for each tool
- Learn about best practices and usage examples
- Explore custom extensions and integration options
