2010-01-01から1年間の記事一覧

App_Dataディレクトリ以下に配置されたファイルへのNLogを使ったログ出力

IIS7.5のアプリケーションプールのデフォルトのユーザーIDであるApplicationPoolIdentityでそのまま出力できました。最初、FileのtargetにfileName="~/App_Data/app.log"と指定していてうまくいかないなぁと思っていたのですが、fileName="${basedir}/App_Da…

ApplicationPoolIdentityについてメモ

リモートのSQL ServerへのWindows認証を稼動確認したい。 Thread: ApplicationPoolIdentity + SQL http://forums.iis.net/p/1162459/1924222.aspx Application Pool Identities http://learn.iis.net/page.aspx/624/application-pool-identities/ Ensure Sec…

ASP.NETでTeedaのリダイレクトスコープのようなものを実装する

ASP.NETでTeedaのリダイレクトスコープのようなものがあると便利かと思って考えてみました。要するに、リダイレクトする直前でセッションに情報を置いて、リダイレクト後のGETでその情報をセッションから取得するという機能です。そんなかんじの機能をつくっ…

ASP.NETでTeedaのリダイレクトスコープのようなもの その2

下のエントリですが、よく考えると属性を指定したPageのプロパティに自動で値をセットしたりプロパティから値を取得したりというのは、ASP.NETのプログラミングモデルにそぐわないですね。自分で明示的にGET/SETしたほうが一貫性があってわかりやすいかも。 …

いくつかのスコープ(状態)を検索対象にして値を得る

一番小さいスコープから一番大きいスコープまでを自動でたどっていくのって、誤って間違ったデータを取得してしまう可能性が高いと思うのです。だから、探すスコープ(状態)とその順番を指定できるといいのかもしれない。 たとえば次のようなクラスを用意し…

Server.TransferしたあとはASP.NETのトレース出力がされない

ASP.NETトレースの機能、便利なんですがServer.Transferしたあとは出力されないことに気づきました。 どういうことかというと、 Web.config <system.web> <trace enabled="true"/> ... </system.web> 最初にアクセスするページ public partial class Default : System.Web.UI.Page { protected void Page_Load…

ASP.NETの実行時のバージョン

ASP.NETのバージョンの取得方法、どれを参照するのがただしいんですかねぇ。 .NET 4.0がインストールされたWindows7の環境でIIS7.5のアプリケーションプールに「.NET Framework v2.0.50727」を指定して次のコードを動かしてみました。 protected void Page_L…

system.transactions/defaultSettingsのtimeout属性とTransactionManager.DefaultTimeout

http://stackoverflow.com/questions/1348191/default-transaction-timeout TransactionOptions.Timeout に0を設定してしまうと設定ファイルに記述したデフォルト値が使われないらしい。 設定ファイルを生かしたいならTransactionManager.DefaultTimeoutを使…

トランザクションの開始と終了をログ出力

トランザクションの開始と終了は基本的にフレームワーク側で自動化するのがいいと思います。フレームワークで処理する場合はログは好きに出せますが、アプリでどうしても制御したいという場合に直接TransactionScopeを実行されるとログに出力されないのが不…

ASP.NET Runtime Cheat Sheet: HttpRequest, HttpRuntime, AppDomain and friendsへのリンク

http://duartes.org/gustavo/articles/Asp.net-Runtime-Cheat-Sheet-HttpRequest-HttpRuntime.aspx どのAPIでどんな値がとれるかがわかりやすく記されています。リンク先のページ自体がそれらのAPIを使って生成されソースコードも公開しているので参考になり…

HttpModuleにパラメータを渡す方法

HttpModule好きなんですが、JavaのServlet Filterのように設定でパラメータを渡せないのが残念なところです。そこで、Web.configにパラメータを設定をすればHttpModuleのプロパティに自動で設定される仕組みを考えてみました。 例えば、Web.configに以下の感…

ジェネリックなEnum

Enums – Better syntax, improved performance and TryParse in NET 3.5 便利そうです。

サイトマップのセキュリティトリミング

ASP.NETのサイトマップのセキュリティトリミングという機能をはじめて知りました。 認可されないユーザーに対して特定のメニューを表示させないというもののようです。 ASP.NET のサイト マップ セキュリティ トリミング SiteMapProviderもRoleProviderも拡…

GridViewのページングでMEFでImportしたコンポーネントを使う

ObjectDataSourceはデフォルトではTypeNameプロパティに設定されたクラスを自分でインスタンス化しようとします。そうすると、MEFでImportしたコンポーネントを使えないのでObjectCreatingイベントでインスタンスを適切に設定する必要があります。 GridViewP…

ASP.NETの非同期ページについての情報

I/Oバウンドな処理でASP.NETでプールされるスレッドをつかみっぱなしにしないで他のリクエストをさばけるようにI/O待ちのときはスレッドをいったん解放しましょうという話。 Asynchronous Pages in ASP.NET 2.0 ASP.NET の非同期プログラミングを使ったスケ…

WCFのサービスにMEFを使って依存性注入

以下の記事を参考にしました。 Policy Injection Application Block と WCF サービスを統合する この記事はMEFではなくPIABを使っていますが、好きなDIコンテナに置き換えて読めると思います。 簡単なサンプル 簡単なサンプルを作って実際に動かしてみました…

jQueryを使ってWCFのサービスにアクセス

Using jQuery to directly call ASP.NET AJAX page methodsで紹介されているようにPageMethodを使うのがとてもシンプルでいいと思うのですが、PageMethodはstaticメソッドじゃないといけないのでMEFで管理されたインスタンスを取得するの自分でルックアップ…

実行時の型でExportされたオブジェクトをコンテナから取り出す

MEFの CompositionContainer って public T GetExportedValue<T>();というAPIはあるんですが、 public object GetExportedValue(Type type);というAPIがないんですよね。実行時にしか型が決められない場合に困ります。一応、そういった場合を考慮したようなAPI</t>…

Domaの利用状況と今後

8月のダウンロード数が60、9月のダウンロード数が50でした。(Mavenからの利用はカウントされてません) ぜんぜん多くはないですが使われてはいるという感じでしょうか。今後は特に追加したい機能がないのでメンテナンスモードでいきます。

Doma 1.10.0 リリース

Doma 1.10.0 をリリースしました。 ダウンロードはこちらからどうぞ(Eclipseをお使いの方はDoma Toolsも更新することをお奨めします)。 http://doma.seasar.org/downloads.html Mavenをご利用の方はこちらを参照ください。 http://www.seasar.org/wiki/ind…

各種DIコンテナとASP.NETのWeb Formとの連携

MEFを使おうと思っているんですが、MEFにはWeb Form(Page)に依存注入するような機能はないので(サンプルはありますが)、自分で考える必要があります。例えばこんなことです。 コンテナの生成をフレームワーク側で行うのか、アプリにまかせるか 生成した…

MEFでASP.NETのWeb Formとの連携

下のエントリを踏まえて、MEFを使う場合の連携方法について自分なりの考えを書いておきます。 コンテナの保持 CompositionContainerはシングルトンとして管理します。Webに依存しないようにしておきます。CompositionContainerは、アプリごとに任意のCatalog…

SilverlightのテストサポートについてMicrosoft Connectに要望を提出

2週間ほど前にフォーラムで、Silverlight4の単体テストについてというタイトルのディスカッションを投稿しました。このスレッドで出た意見をまとめて、今度は、Microsoft Connectにフィードバックを投稿しました。簡単にでまとめると、Visual StudioでSilver…

最近のSoma

ちょっとずつ作っているEntity Framework拡張のO/RマッパーSoma(http://soma.codeplex.com/)ですが、更新系SQLの生成をEntity Frameworkにまかせるのをやめました。マッピングの定義はedmxにあるのでパースして自前でSQLを組み立てることにしました。理由…

Entity Frameworkについて要望を出そう

機能のリクエストなどのフィードバックを受け付けているそうです。 http://data.uservoice.com/forums/72025-ado-net-entity-framework-ef-feature-suggestions さっそく3つ登録してみました。 Make it easier to change or wrap a data provider. Support f…

WCF RIA Servicesでモック

WCF RIA ServicesのDomainContextをモックする方法を見て。自分はちょっと汎用的なDomainClientを作ってみました。DomainClientに期待値を返すFuncを登録して使う方式です。 DomainClientのサブクラス(モック) public class MockDomainClient : DomainClie…

Doma Tools 更新

EclipseプラグインDoma Toolsのバージョン1.9.0.201008291132ですが、SQLファイルの変更を検知しないというバグが見つかりました。最新版(バージョン1.9.0.201009071233)をリリースしたので古いバージョンをお使いの方は更新サイトから最新版をインストー…

名前で動的にプロパティにアクセスする

下の例の2行目のようにプロパティ名で任意のオブジェクトのプロパティに「簡単に」アクセスしたいと思いました。 var value1 = hoge.Aaa; var value2 = hoge["Aaa"]; Assert.AreEqual(value1, value2); 最初、dynamicを使えばすぐできるのかと思ったら無理で…

Silverlightの単体テストの問題点について

ディスカッションという種別でフォーラムに投稿してみました。 http://social.msdn.microsoft.com/Forums/ja-JP/silvelightdotnetja/thread/a6b9e272-6945-49e0-b7c0-04b0774cd694 Silverlight、テストがもう少ししやすければ楽なのになーとよく思います。興…

SQLファイルを使ったバッチ更新で意図しないSQLが実行され得る場合に対応 その2

昨日紹介した機能は複数の警告メッセージに対応できていなかったので、ちょこっと直しました(@Suppressのmessageをmessagesにして配列を受け取れるようにしました)。 @Suppress(messages = {Message.DOMA4181, Message.DOMA4182 }) 需要は少ない気がします…