読者です 読者をやめる 読者になる 読者になる

け日記

SIerから転職したWebアプリエンジニアが最近のIT技術キャッチアップに四苦八苦するブログ

C# Regexクラスのインスタンスメソッドと静的メソッドの性能比較

C#

大量のURL文字列を正規表現パターンとマッチングして分類するバッチ処理をC#で開発していたところ、実装が進んで分類を増やすと、唐突に割に合わない処理時間となってしまったことがありました。 原因としては正規表現のマッチング方法が非効率的だったため…

Dictionaryのキーに複数の値を使う

C#

Dictionaryのキーに複数の値を使う方法について、考察してみます。 Dictionaryのキーに複数の値を使う方法 Dictionaryのキーに複数の変数値を使いたい場合(例えば、クラス名と出席番号をキーとして氏名を値とする、など)にいくつかの方法が考えられますが…

C#でDynamoDBをバルクで取得・更新する

DynamoDBをバッチなどでアクセスすることを想定して、今回はDynamoDBのデータをバルクで取得・更新させてみます。 BatGetとBatchWrite DynamoDBをバルクで取得・更新する場合、C#の永続性モデルではDynamoDBContextクラスで提供されるBatchGetおよびBatchWri…

NpgsqlとEntityFramework Coreを使ってPostgreSQLをCRUDする

C#で書かれた.NET CoreアプリケーションからPostgreSQLのデータを操作する機会があり、NpgsqlとEntity Framework Core(EF Core)の使い方を調べました。 Npgsql NpgsqlはPostgreSQL用のADO.NETデータプロバイダで、C#やVB.NETからPostgreSQLに接続してSQLを実…

.NET CoreアプリケーションでNLogを使う

.NET Coreアプリケーションでログ出力にはNLogが良いみたいですね。 NLog NLogは導入が容易で拡張性が高いログ出力ライブラリで、最近ではlog4netよりも人気があるようです。 github.com .NET Coreの場合は、NLog.Extensions.Loggingを使います。 github.com…

Lambda(C#)でDynamoDB Streamsを使う

DynamoDB StreamsをLambda(C#)で使ってみました。 DynamoDB Streams DynamoDBにはテーブルへの更新(作成、変更、削除)をキャプチャし、その情報(レコード)をバッファリングするストリームを作成することができる「DynamoDB Streams」という機能が提供され…

Json.NETを使って任意のクラスやDictionary・Listにデシリアライズする

C#

Json.NETを使って、JSONを任意のクラスとDictionary・Listにそれぞれデシリアライズしてみます。 www.nuget.org 任意のクラス(POCO)にデシリアライズする 例えばアプリケーションの設定ファイルのように静的な構造のJSONであれば、専用のPOCOにデシリアラ…

Lambda(C#)の環境変数にアクセスする

今回はLambdaの環境変数にC#からアクセスしてみます。 接続するDBを環境毎に切り替える場合などに役立ちます。 AWS Lambda の新機能 – 環境変数とサーバーレスアプリケーションモデル (SAM) | Amazon Web Services ブログ (結構最近追加された機能だったの…

AWS Lambda(C#)の初回実行が遅いようなので調べました

最近の投稿でC#で書いたプログラムをLambdaで実行させていますが、初回実行が2回目以降と比較して明らかに遅いようなので簡単に調査しました。 構成 PCからJMeterでAPI Gatewayへリクエストし、API GatewayがLambdaをキックさせます。 Lambda自体は定数文字…

AWS DynamoDBをC#でCRUDする

今回はDynamoDBへのCRUD操作を、C#で書いて、Lambdaで動かしてみたいと思います。 テーブルの作成 まずはAWS ConsoleからDynamoDBへテーブルを予め作成します。 テーブル名を"Todos"とします。 パーティションキーを"Id"、ソートキーを"Due"とします。 エン…

AWS Kinesis StreamへPut/GetするLambdaをC#で書いてみる

今回はKinesis StreamへPut/GetするLambdaをC#で書いてみます。 データフローとしてはLambda→Kinesis Stream→Lambdaとなります。 Kinesis Streamの作成 Kinesis Streamは、デバイス情報やログなどの継続して生成され続けるデータを効率的に処理するためのマ…

AWS API GatewayでフックされるLambdaをC#で書いてみる

最近仕事でAWSに触っています。 また、12/1にAWSのLambdaがC#に対応したこともあり、Lambdaで色々遊んでます。 AWS Lambda Supports C# 今回の投稿では、HTTPリクエストを受けたAPI GatewayがLambdaをフックしてレスポンスを返す、ということをやってみます…

DataSetの使い方を学ぶ

最近、少し前に開発されたASP.NET Web Formsのアプリケーションを仕事でメンテナンスしてます。 そこでDataSet(System.Data.DataSet)を初めて扱ったのですが、わからないことが多くて時間を費やしてしまったので、少し勉強することにしました。 DataSet=…

Entity Frameworkをチーム開発で使ってみました

C#

ASP.NET Advent Calendar 2015 - Qiitaの7日目のエントリです。 最近、初めてEntity Frameworkを使ったチーム開発を行いましたので、得られた気づきを備忘録として整理しています。 Entity Frameworkの導入を考えておられる方々の一助になれば幸いです。 ど…