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

け日記

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にデシリアラ…

Go+Gin+DynamoDBでWeb APIサーバを作る

仕事でGoを使うこととなりましたので、年明けから勉強しておりました。 一つの区切りとしてナンチャッテToDo Web APIサーバを作りましたので、GitHubで公開しておきます。 github.com 参考文献 Goは↓の本を読んでました。 他の言語と比較しながらGoの考え方…

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

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

Visual StudioのAWS Serverlessテンプレートを使ってLambdaの環境を作る

12月にAWS LambdaがC#でも使えるようになって、Serverlessでも1.4.0からC#用のテンプレートが提供されましたが、プロジェクトファイルは別で準備しないといけなかったり、ちょっと不便でした。 ところが、AWS SDKでServerless用のプロジェクトテンプレートが…

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をフックしてレスポンスを返す、ということをやってみます…

ASP.NET Core MVCでCache-Controlを設定する

ASP.NET Advent Calendar 2016 - Qiitaの21日目の投稿となります。 テーマをガラッと変えました。 ASP.NET Core MVCのコントローラから返されるHTTPレスポンスヘッダのCache-Controlを設定してみます。 Cache-Control Cache-Controlは、ブラウザ(やキャッシ…

有給消化期間の過ごし方

転職 Advent Calendar 2016 - Qiitaの14日目となります。 少しポエムも含みます。 今年11月にSIerからWebサービスの会社へ転職しました。 早くから退職することを報告していたこともあって、幸いにも有給消化として1ヶ月のお休みをいただくことができました…

Visual Studio Team ServicesでGitHub Flow

Visual Studio Advent Calendar 2016 - Qiitaの 13日目のエントリです。 (飛び入り参加で失礼します。) 個人のプロジェクト管理にVisual Studio Team Services(VSTS、かつてのVisual Studio Online)を利用しています。 今回はVSTSでGitHub Flow開発する…

DataSetの使い方を学ぶ

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

Visual Studio Team Servicesでチームプロジェクトをスタートする

Visual Studio Advent Calendar 2016 - Qiitaの2日目のエントリです。 個人のプロジェクト管理にVisual Studio Team Services(VSTS、かつてのVisual Studio Online)を利用しています。 これから何回かに分けて、VSTSの使い方を紹介していきたいと思います…

Visual Basicを1日で学ぶ

仕事でVisual Basicがメインのアプリケーションの開発・保守を行うことになりました。 全く未経験のVisual Basicを短期間で習得するために、Soft Skillsで紹介されている独学のための10ステップに則って学んでみました。 SOFT SKILLS ソフトウェア開発者の…

社内のQ&A対応で気をつけていること

インフラ担当者としての業務の一つに、社内のアプリケーション開発者からのQ&A対応があります。 私の場合は、自社製のライブラリやフレームワーク、導入しているソフトウェア製品などについてのQ&Aを担当しています。 サポートデスクやサポートエンジニアの…

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

C#

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

このブログの趣旨

はじめまして。 このブログを始めた経緯と目的を忘れないようにするために、初投稿としてメモしておきます。 経緯 私自身はいわゆるシステムインテグレータ(SIer)に勤めており、主にシステム開発、部内の開発標準・開発環境の整備を担当しています。 古き良…