2009-09-01から1ヶ月間の記事一覧
Ruby を使うようになってから、C# でもコードブロックを受け取るメソッドを多様するようになった。 public static class DatabaseHelper { public static bool Transaction(this Database db, Action<Database> block, int retryCount) { bool success = false; for (i</database>…
internal を利用すれば、DI コンテナを使わなくても、呼び出すクラスをモックに差し替えられるんじゃないだろうか。例えば次のクラス。 public class FooService { public Foo FindFoo(int id) { FooDataAccsss dac = new FooDataAccess(); return dac.Find(…
今回は夕食を食べるために、福岡市中央区今泉にある、スペイン料理店「バル難破船」に行きました。平日なら2500円のコースが食べられるんですが、行ったのは週末。仕方ないので、「エビの土鍋焼き」「ムール貝の白ワイン蒸し」「魚介の炊き込み」の3品を注文…
「チャネル生成→サービス呼び出し→チャネルを閉じる」という処理を、サービスを呼び出すたびに記述するのは面倒です。できれば、これらの処理を一度のメソッド呼び出しで完結させたい。何か上手い方法がないか考えたところ、RealProxy を使う方法を思いつき…
Windows に Ruby 環境を構築する場合、Ruby Installer を利用すると簡単です。 RubyForge: Ruby Installer for Windows: Project Info 『One-Click Installer』の後継で、インストーラーを実行するだけで、Ruby の Windows 用バイナリやツールを一括インスト…
Windows XP で、日本語で名付けたアカウントにログインし、下記のコマンドを実行。 appcfg.rb.bat gem install インストールするgem名すると、「Document and Settings 下にフォルダがない」といった内容のエラーが発生する。肝心のフォルダ名は文字化けして…
LINQ to SQL の DataContext を使えば、簡単にデータベースを作成できます。しかも、同時にテーブルまで作成してくれます。これはウレシイ。 using System; using System.Data.Linq; using System.Data.Linq.Mapping; using System.Data.SqlClient; namespac…
WCF には NetTcpContextBinding や WsHttpContextBinding といった、コンテキスト付バインディグが提供されています。コンテキスト付バインディングを使えば、クライアントからサービスに、任意のメタ情報を送信できます。 クライアントからコンテキストを送…
WCF ではサービスを呼び出す際、DataContractSerializer を使って、渡すデータをシリアル化しています。DataContractSerializer はインスタンス化可能なので、自分でシリアル化・逆シリアル化をすることも、まあ可能です。DataContractSerializer を使ったサ…
IronPython では、C# で定義したクラスを継承したり、インタフェースを実装することができます。 C# 側 namespace PythonSampleLib { public abstract class Greeting { public abstract string Greet(string name); } } using System; using System.IO; usi…
データアクセス層の単体テストで、個人的に大変だと思っているのは次の2つです。 データベースにテストデータを挿入 使ったテストデータをデータベースから削除 今までは、テストデータを挿入・削除する SQL 文を、ADO.NET のクラスを使って実行していまし…
データアクセスロジックコンポーネント(以下 Dalc)の単体テストが嫌い 特に更新系のメソッド。更新されたか確認するのが面倒くさいです。いつも、データベースから値を取得するために、テスト用の Dalc を作っていました。クラス作って、取得用 SQL 書いて……
IronPython を試した事が無かったので、超簡単なサンプルを作ってみました。IronPython だけ使っては芸がないので、C# からスクリプトを呼び出すようにしています。その代わり Python スクリプトは手抜き。 Python 側 print('Sample.py Called') message = '…
アプリケーション構成ファイルに system.runtime.serialization セクションを記述することで、WCF サービスに派生クラスを渡せるようになります。 <configuration> <system.runtime.serialization> <dataContractSerializer> <declaredTypes> </declaredtypes></datacontractserializer></system.runtime.serialization></configuration>
Tech Ed 2009 で、「Moq」というライブラリの存在を知りました。Moq はモックを使った単体テストを記述するためのライブラリです。 moq - The simplest mocking library for .NET and Silverlight - Google Project Hosting Moq の特徴は、モックの振る舞い…
先日 au ケータイのメールを PC にバックアップする方法を紹介しました LISMO を使えば、メールを PC にバックアップできます。でも、手順がちょっと面倒ですよね。定期的にやらないと意味がありません。できれば、自動でメールをバックアップしたい。 受信…
今回言ったのは天神にある「アントン」。この店はグラタンとドリアが有名です。私が注文したのは「ドリアランチ」。ドリアとサラダとコーヒー(またはオレンジジュース)のセットです。ドリアのホワイトソースには栗が使ってあるため、ほんのり甘いです。栗が…
ケータイのメールをバックアップしたい! 私のコミュニケーション手段は、ケータイのメールが多くを占めています。友人、同僚、家族など。電話と違って、内容が手元に残るので重宝しますよね。緊急でもない限りは、メールで連絡を取るようにしています。なの…
WCF サービス内部で発生した例外は、1ヶ所でまとめてハンドルして、ログ出力などのエラー処理を行いたいですよね。WCF では catch されなかった例外をハンドルするために、IErrorHandler インタフェースが提供されています。このインタフェースを実装したク…
私の会社は自席でネットを見ることができません! 会社でネットを見るには、共用のネットマシンを使う必要があります。この共用のネットマシンはフロアに3台設置。共用なので、長い時間占領することができません。 面白い記事を見つけても読めない! 後ろが…
前回、WCF の例外処理に関するエントリを書きました。 WCF の例外処理 - present このエントリで紹介した方法よりも簡単に、例外情報をクライアントに返す方法があります。 ServiceBehavior の IncludeExceptionDetailInFaults プロパティを true にする た…
WCF は例外を握りつぶしてしまう WCF サービス内で発生した例外は、何もしなければ握り潰されます。そして、代わりに FaultException がクライアントに返されます。例外の内容も、「例外がハンドルされなかった」という旨に変更されてしまいます。これじゃ何…