dotEnhancer - .NET Standard API Spec만으로 만드는 도우미 라이브러리

흔히 볼 수 있는 닷넷용 클래스 라이브러리들과는 달리, .NET Standard 1.0 ~ 2.1까지 별도의 외부 라이브러리를 사용하지 않고 기본 API 세트만으로 만들 수 있는 최소한의 API 셋만 이용해서 익스텐션 메서드 라이브러리를 만들어볼 생각으로 새로운 NuGet 패키지를 출시했습니다.

일단은 식탁보에서 당장 사용할 필요가 있는 난수 생성 라이브러리와 몇 가지 기본적인 입출력 도우미 함수들만 담아보았는데, 많은 분들의 아이디어를 더 담아보고 싶습니다.

아직 테스트해보진 못했지만, 특별한 이슈가 없다면 Blazor나 NativeAOT에서도 큰 무리없이 적용할 수 있을만한 도우미 라이브러리로 유지하면서 발전시켜나가보고 싶습니다!

다음은 현재 만들어놓은 도우미 함수들의 사용 예시입니다.

RandomNumberGenerator로 난수 생성하기

using dotEnhancer;

using var rng = RandomNumberGenerator.Create();
int min = -1000, max = 1000;

Console.Out.WriteLine($"Single Try: {rng.NextInt64()}");

foreach (var result in rng.EnumerateInt32s(_testCycle, min, max))
{
    // assert
    Console.Out.WriteLine("Number: {result}");
}

스트림에 인코딩된 바이트 배열 쓰기

using dotEnhancer;

var value = "Hello, World!";
var targetEncoding = new UTF8Encoding(false);
using var writableStream = new MemoryStream();
writableStream.WriteStringWithEncoding(value, targetEncoding);

StringBuilder 인스턴스 발화하기

using dotEnhancer;

var sb = new char[] { 'H', 'e', 'l', 'l', 'o', }.AsStringBuilder();
sb.AppendLine(", World!");
Console.Out.WriteLine(sb.ToString());
6개의 좋아요

저도 제가 개인적으로 쓸 목적으로 이런 거 하나 만들기는 했습니다. 그냥 아이디어를 담아보고 싶으시다길래…