atsukanrockのブログ

Microsoft系技術を中心にぼちぼち更新します

Azure Functions で Domain-Driven Design (DDD) の Domain Event を実装する

この記事は Sansan Advent Calendar 2017 の 25 日目、すなわち最終日の記事です *1。ネタもないので参加する気はなかったのですが、とある社内バー的なもので酔っ払っていたところ会社の新卒君である id:kanjirz50 が目を輝かせて「最終日を飾ってください…

AWS Dev Day Tokyo 2017で登壇しました

ブログがあまりにも休止状態で自分にドン引きしていますが、先日開催されたAWS Summit Tokyo 2017に併設の開発者向けイベントAWS Dev Day Tokyo 2017で登壇しました。スライドがこちら。 Sansanがメッセージング (SQS) でスケーラビリティを手に入れた話 fro…

『C#エンジニア養成読本』の一部を執筆しました

ありがたいことに機会をいただき、『C#エンジニア要請読本』という書籍の一部を執筆しました。今回が初めての執筆です。 Amazon.co.jp: C#エンジニア養成読本 (Software Design plus): 岩永 信之, 山田 祥寛, 井上 章, 伊藤 伸裕, 熊家 賢治, 神原 淳史: 本…

Amazon SES および SendGrid によるメール送信のスループットを調べるツールを C# で書いた

仕事で使うためにやっつけで書いていたのですが、やってるうちに勢い余って割と作り込むあるあるを踏み抜き、せっかくなので公開することにしました。 atsukanrock/EmailThroughputCheckergithub.com 何ができるかっていうと 大したことはできません。片手間…

今だから学びたい!DDD (Domain-Driven Design) - Sansan .NET勉強会 #10 に登壇しました

勤務先で開催された今だから学びたい!DDD (Domain-Driven Design) - Sansan .NET勉強会 #10 という勉強会に登壇しました。私が好きな設計手法である DDD についての発表ということで、けっこう気合いが入っていました。時間の都合上、内容が浅くなってしま…

(第八回) 「ネクストスケープ×Sansan 」 .NET勉強会で発表しました!!

2月27日の金曜日、(第八回) 「ネクストスケープ×Sansan 」 .NET勉強会に登壇しました。その際の発表資料を公開します。 自分はそもそも生粋の開発者気質でして、ID連携というテーマ自体にはそれほど興味を持てなかったというのが正直あります。きっと自分だ…

Visual Studioでお手軽にメモリリーク調査♪

Visual Studio 2013 (VS) の "Performance and Diagnostics Hub" が超いいです。とうわけでこの記事は自分向けのリンク集です。 .NETアプリのメモリリーク調査には従来からWinDbgという方法がありましたが、WinDbgはとても手軽とは言えません。Performance a…

めとべや東京 #5で発表してきました

Reconsidering Multithreading Design Patterns from Atsushi Kambara タイトルは「マルチスレッドデザインパターン再考」です。我ながら仰々しいタイトルですが、結局Producer-Consumerパターン最高!みたいな内容になりました*1。でも実際Producer-Consume…

Windows 8.1でのasync voidメソッドに対する例外処理の改善

※この記事はException handling improvements for async void methods in Windows 8.1のざっくり和訳です。 ざっくり言うと async voidなメソッド内で例外が起こると: Windows 8では‥例外は補足不能。アプリは死ぬ Windows 8.1だと‥Application.UnhandledEx…

Windowsストアアプリで同梱のPDFファイルを開く

WindowsストアアプリにPDFファイルを同梱して、それを当該アプリから開くやり方です。気合の入ったREADMEをPDF化してアプリに同梱して、開くボタンを付けるなんて良いですね!それでWindowsストアの審査に通るかどうか知らんけど。 PDFファイルを同梱するに…

勉強会「『プログラミング .NET Framework 第4版 』座談会」で発表しました

「はてなダイアリーが許されるのは小学生までだよねー」」「キャハハハハ」という声に押されてはてなブログに移住してみようと思います。せっかくだからMarkdownの練習もしたい。「『プログラミング .NET Framework 第4版 』座談会」で発表してきました。と…

勉強会「めとべや」で発表してきました

284スライド30分は無理ですたorz Application Architecture for Enterprise Win Store Apps with DDD Pattern from Atsushi Kambara

「Silverlightを囲む会in東京#6」に登壇します

Silverlightを囲む会in東京#6に登壇します。カスタムコントロールの作り方でも紹介しようかなぁ、などと思ってます。テーマが「Silverlight5新機能とSilverlightの基礎」なのにSilverlight 5のお話を入れられそうになく、そのうえ周りの講師がみんなマイク…

Windowsフォームアプリケーションでリソースリークしないために(2)

連載記事にするつもりが、第1回のみ公開して第2回は下書きに放置していた。第2回が書きかけだからだが、当時のことをほぼ完全に忘れているので書き切れそうにない。なのでエイヤッと公開しておく。このあとControl.InvokeやBeginInvokeに関する話(この辺と…

Nullableと3値論理

.NETのNullableの比較について記憶できないのでメモ。 nullと非nullの比較 int? value1 = null; int? value2 = 10; だと 式 結果 value1 false value1 false value1 == value2 false value1 != value2 true value1 > value2 false value1 >= value2 false nu…

Windowsフォームアプリケーションでリソースリークしないために(1)

最近になって初めて*1、本格的なWindowsフォームアプリケーションを開発した。その中でいくつかリソースリークしやすいポイントを見つけたので記録する。書いてみるとかなりの分量になったので、分割することにした。本エントリはその第1回。 Windowsフォー…

IronPythonでプログラミング可能なCONFIGファイルを実装する

はじめに IronPythonを使えば、CONFIGファイルで自由にプログラミング可能なアプリケーションを、実装できる。本エントリでは、その方法を簡単に紹介する。

ASP.NETで忘れずにやっておくべきこと(2) セッションハイジャック対策

はじめに 本エントリは『ASP.NETで忘れずにやっておくべきこと』シリーズの第2回。「セッションハイジャック対策」について記す。

書評『Patterns of Enterprise Application Architecture』

Patterns of Enterprise Application Architecture (Addison-Wesley Signature Series (Fowler))作者: Martin Fowler出版社/メーカー: Addison-Wesley Professional発売日: 2002/11/05メディア: ハードカバー購入: 4人 クリック: 36回この商品を含むブログ (…

ASP.NETで忘れずにやっておくべきこと(1) ViewStateUserKeyを使う

はじめに 本エントリから何回かに分けて、ASP.NETアプリケーションを作成する際に、忘れずにやっておくべき(だと私が考える)ことを挙げる*1。第1回は「ViewStateUserKeyを使う」だ。 *1:網羅的なリストではなく、私にとって当たり前でないものに限ることに…

DataTableの一部の列でのDistinct

DataTableの一部の列でDistinctするコードを書いたので、記録しておく。

問題だらけのshowModalDialog

はじめに ブラウザ上でのJavaScriptに、showModalDialogというメソッドがある。MDCのリファレンス(MDC)の説明*1を引用すると、 指定された HTML 文書を含む モーダルダイアログボックスを生成し、表示します。 という機能を持つメソッドだ。しかしながらこ…

.NETの正規表現は国際化対応(?)している

はじめに .NETの正規表現[MSDN]の正規表現が、国際化対応か何か良く分からないが、私にとっては少し意外な動作をすることを発見した。その動作を記録し、私なりのルールを示す。なお、以降の記述では、正規表現のパターンを示す場合、//のように記述する。

テキストボックスのonchangeイベントを信用するべからず

はじめに JavaScriptで、テキストボックスのonchangeイベントを信用してはならない。本エントリでは、今回私が経験した、期待とは異なる動作を紹介し、対処方法を提案する。

LinqのWhereでの列挙中に、列挙を中断できる

IEnumerableを返すためにyield returnを使うコードを、最近になって初めて実践的に使った。するとあることに気付いた。次のコード、yieldに慣れていないとどう動くか予想しづらいのではないか。 int count = 0; var array = new object[100]; foreach (var o…

ASP.NETで「ログイン成功後に新しいセッションを開始」は可能なんだろうか?

はじめに IPAが、『安全なウェブサイトの作り方』という、Webサイトのセキュリティに関するガイドブックを出している。このPDFの21ページに、「ログイン成功後に、新しくセッションを開始するようにする」という対策がある。この解説の内容は納得できるもの…

Nullableはまあまあ賢い

はじめに System.Nullable<T>は、まあまあ賢い。まあまあ賢いとはどういうことかというと、予想したとおり動作してくれる。具体的には、 nullとの比較 ボックス化 が、予想したとおり動作する。</t>

0.00001.ToString()は"1E-05"

標記のとおり、 System.Single(C#ではfloat) System.Double(C#ではdouble) の、ToString()メソッドの戻り値は、値によっては指数表記となる。ドキュメントにも明記されているのだが、その説明は非常にわかりづらい。おそらく、固定小数点表記と指数表記…

SYSとSYSTEMのデフォルトのパスワード

Oracleデータベースを作成する際に、SYSやSYSTEMのパスワードを明示的に指定しないと、 SYS:CHANGE_ON_INSTALL SYSTEM:MANAGER という、デフォルトのパスワードが設定されるらしい。11gでもこの仕様は変わっていないようだ。ちなみに、パスワードが大文字…

.NETで、桁数と精度を指定してランダムな数値を生成する

はじめに 桁数と精度を指定してランダムな数値を生成するメソッドの、.NET(C#)での実装例を示す。