Powerup은 .NET Core의 확장 메소드 라이브러리이며 Framework에 유용한 기능을 추가합니다.
Powerupcore Nuget
Powerupcore Azure Nuget
⏩ Lightweight : 목표는 5K 방법이 아니라 일상적인 유용한 방법 만 포함하는 것입니다 (내 의견으로는)
.NET 코어 호환
단위 테스트
100% 문서화
모든 확장 방법이 설명되고 raison d 'être가 다음 문서에 제공됩니다.
wehather를 확인하는 데 필요한 구문을 단순화하십시오. 문자열 내용은 인터 트리션인지 여부입니다.
왜?
반복적 인 코드를 제거합니다
if ( "42" . IsInteger ( ) )
Foo ( ) ; 문자열에서 매개 변수 문자열의 내용을 제거합니다.
왜?
반복적 인 코드를 제거합니다
"My text" . Remove ( "My" ) // result: " text"
// instead of
"My text" . Replace ( "My" , string . Empty ) ; // result: " text"
Foo ( ) ; 문자열의 메소드 형식 에 대해 짧은 구문을 제공합니다.
왜?
코드를 짧게 만들기 위해
// .net syntax
string . Format ( "Debug Level: {0} " {1} " {3}" , DebugLevel . Info , "Everything is awesome!" , DateTime . Now ) ;
// PowerUp syntax
"Debug Level: {0} " {1} " {3}" . Format ( DebugLevel . Info , "Everything is awesome!" , DateTime . Now ) ; 트링을 열거로 쉽게 변환 할 수 있습니다.
왜?
반복적 인 코드를 제거합니다
private enum TestEnum
{
Val1 ,
Val2 ,
Val3
}
var enumVar = "Val1" . ToEnum < TestEnum > ( ) ; 열거 값에 대한 읽기 쉬운 설명을 얻을 수 있습니다.
private enum TestEnum
{
[ Description ( "Value with description" ) ]
ValWithDesc = 1 ,
ValNoDesc = 2 ,
AnotherNoDesc = 3
}
var testObject = TestEnum . ValWithDesc ;
string description = testObject . GetDescription ( ) ; 컬렉션에서 한 번에 더 많은 요소를 제거하는 데 도움이됩니다.
왜?
유용한 ADDIDIONAL 기능을 컬렉션에 제공합니다
sourceList . RemoveRange ( deleteList ) ;딥 카피 를 수행합니다.
var testList = _fixture . Create < List < clonableObj > > ( ) ;
var clone = testList . Clone ( ) ;
clone . First ( ) != testList . First ( ) 컬렉션의 마지막 인덱스를 가져옵니다.
왜?
반복적 인 코드를 제거합니다
sourceList . GetLastIndex ( ) == ( sourceList . Count - 1 ) 주어진 인수가 무인이라면 ArgumentNullexception을 던진다.
왜?
.NET Core의 argumentNotnull을 교체합니다
objectShouldNotBeNUll . ThrowIfNull ( nameof ( objectShouldNotBeNUll ) ) ;
// Inspired on Microsoft.Practices.EnterpriseLibrary.Common.Utility
Guard . ArgumentNotNull ( objectShouldNotBeNUll , nameof ( objectShouldNotBeNUll ) ) ; 객체가 null인지 확인하지 않는지 확인하십시오.
왜?
구문을 만들기 위해 널 청소기와 인간을 읽기 쉬운
var someObject = new object ( ) ;
//Before
if ( someObject != null )
Foo ( ) ;
//PowerUp
if ( someObject . isNull ( ) )
Foo ( ) ; 객체 값이 하부와 상한 사이에 있는지 확인하십시오.
왜?
구문을 단순화하여 Onbject 값이 특정 범위 사이인지 확인합니다.
if ( 5 . Between ( 2 , 8 ) )
Foo ( ) ;
if ( 7 . Between ( 7 , 12 , BetweenOptions . Inclusive ) )
Foo ( ) ; 호출 방법에 대한 정보를 간단히 기록 할 수 있습니다.
왜?
지루한 코드를 피하고 페이스트 페이스트 문제를 복사하려면 팁 시나리오는 다음과 같은 컨트롤러 방법의 시작 부분에 있습니다.
[ HttpPut ]
[ Route ( "[action]" ) ]
[ Produces ( "application/json" ) ]
[ ProducesResponseType ( typeof ( Product ) , StatusCodes . Status201Created ) ]
[ ProducesResponseType ( typeof ( string ) , StatusCodes . Status400BadRequest ) ]
public async Task < IActionResult > AddProduct ( [ FromBody ] NewProduct newProduct )
{
_logger . LogDebug ( $ " { DateTime . UtcNow : dd/MMM/yyyy } | 32: CatalogController.AddProduct()}" ) ;
if ( ! ModelState . IsValid )
return BadRequest ( ModelState ) ;
....로깅 방법은 이제 간단하게 될 수 있습니다.
.. .
public async Task < IActionResult > AddProduct ( [ FromBody ] NewProduct newProduct )
{
_logger . LogThisMethod ( ) ;
.. .코드의 탄약을 줄일 수있는 양과 오류 가능성을 확인하는 것은 예제에서 쉽습니다.
Azure의 스토리지 액세스 키는 스토리지 계정에 액세스하기 위해 인증에 사용됩니다.
스토리지 계정을 만들 때 두 가지 스토리지 액세스 키, 즉 기본 및 보조 액세스 키가 제공됩니다.
자세한 내용은 https://blogs.msdn.microsoft.com/mast/2013/11/06/why-does-an-azure-storage-account-count-access-keys/를 참조하십시오.
왜?
RedundantParse를 사용하면 기본 키를 사용하여 중복 연결하거나 Seconday로 자동으로 전환 할 수 있습니다.
< add key = " QueueConnectionString1 " value = " DefaultEndpointsProtocol=https;AccountName=weu########## " />
< add key = " QueueConnectionString2 " value = " DefaultEndpointsProtocol=https;AccountName=weu########## " />
< add key = " QueueReference " value = " myQueueReference " /> var storageAccount = CloudStorageAccountHelper . RedundantParse (
CloudConfigurationManager . GetSetting ( "QueueConnectionString1" ) ,
CloudConfigurationManager . GetSetting ( "QueueConnectionString2" ) ) ;
var queueClient = storageAccount . CreateCloudQueueClient ( ) ;
var myQueue = queueClient . GetQueueReference ( ConfigurationManager . AppSettings [ "QueueReference" ] ) ;