.NET
ObjectDataSourceはデフォルトではTypeNameプロパティに設定されたクラスを自分でインスタンス化しようとします。そうすると、MEFでImportしたコンポーネントを使えないのでObjectCreatingイベントでインスタンスを適切に設定する必要があります。 GridViewP…
I/Oバウンドな処理でASP.NETでプールされるスレッドをつかみっぱなしにしないで他のリクエストをさばけるようにI/O待ちのときはスレッドをいったん解放しましょうという話。 Asynchronous Pages in ASP.NET 2.0 ASP.NET の非同期プログラミングを使ったスケ…
以下の記事を参考にしました。 Policy Injection Application Block と WCF サービスを統合する この記事はMEFではなくPIABを使っていますが、好きなDIコンテナに置き換えて読めると思います。 簡単なサンプル 簡単なサンプルを作って実際に動かしてみました…
Using jQuery to directly call ASP.NET AJAX page methodsで紹介されているようにPageMethodを使うのがとてもシンプルでいいと思うのですが、PageMethodはstaticメソッドじゃないといけないのでMEFで管理されたインスタンスを取得するの自分でルックアップ…
MEFの CompositionContainer って public T GetExportedValue<T>();というAPIはあるんですが、 public object GetExportedValue(Type type);というAPIがないんですよね。実行時にしか型が決められない場合に困ります。一応、そういった場合を考慮したようなAPI</t>…
MEFを使おうと思っているんですが、MEFにはWeb Form(Page)に依存注入するような機能はないので(サンプルはありますが)、自分で考える必要があります。例えばこんなことです。 コンテナの生成をフレームワーク側で行うのか、アプリにまかせるか 生成した…
下のエントリを踏まえて、MEFを使う場合の連携方法について自分なりの考えを書いておきます。 コンテナの保持 CompositionContainerはシングルトンとして管理します。Webに依存しないようにしておきます。CompositionContainerは、アプリごとに任意のCatalog…
2週間ほど前にフォーラムで、Silverlight4の単体テストについてというタイトルのディスカッションを投稿しました。このスレッドで出た意見をまとめて、今度は、Microsoft Connectにフィードバックを投稿しました。簡単にでまとめると、Visual StudioでSilver…
機能のリクエストなどのフィードバックを受け付けているそうです。 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のDomainContextをモックする方法を見て。自分はちょっと汎用的なDomainClientを作ってみました。DomainClientに期待値を返すFuncを登録して使う方式です。 DomainClientのサブクラス(モック) public class MockDomainClient : DomainClie…
下の例の2行目のようにプロパティ名で任意のオブジェクトのプロパティに「簡単に」アクセスしたいと思いました。 var value1 = hoge.Aaa; var value2 = hoge["Aaa"]; Assert.AreEqual(value1, value2); 最初、dynamicを使えばすぐできるのかと思ったら無理で…
ディスカッションという種別でフォーラムに投稿してみました。 http://social.msdn.microsoft.com/Forums/ja-JP/silvelightdotnetja/thread/a6b9e272-6945-49e0-b7c0-04b0774cd694 Silverlight、テストがもう少ししやすければ楽なのになーとよく思います。興…
Entity Framework 4でコード・ファースト開発が注目を集めているとかいないとか。 S2JDBC-Genでも「コードファースト」実現できます、.NETじゃなくてJavaですが。
いま持っているアイデア。 SQLの実行前後をEventでフックできるようにする パフォーマンスを向上させる(リフレクションやSQLの解析結果のキャッシュとか) 例外的な状況の精査 Tips集
Entity Frameworkを使いやすくするO/Rマッパー Soma 0.0.3.0をリリースしました。 http://soma.codeplex.com/releases/view/50678今回のポイントは、セットアップがとても簡単になったことです。これまで、edmxファイルをビルドイベントで書き換えたり、専用…
バージョン番号の自動インクリメント 楽観的排他制御のためにWHERE句に特定のカラムを条件として入れる機能はありますが、「バージョン番号」という考え方がないんですね。したがって、バージョン番号を自動でインクリメントする機能もありません。 これは不…
Soma 0.0.2.0では、Repositoryのメソッドを呼び出した場合に複数のSQLが自動で実行される場合があります。たとえば、DepartmentにEmployeeを関連付けてDepartmentをINSERTする場合が当てはまります。 var departmentRepository = new DepartmentRepository()…
ADO.NET Entity Frameworkを使いやすくするO/RマッパーSoma 0.0.2.0をリリースしました。 http://soma.codeplex.com/releases/view/50010 今回の目玉はドキュメントです。スクリーンショットをできるだけ使ってわかりやすくしてみました。 http://soma.codep…
ドキュメント書いたり、機能改善したりしています。ドキュメントはまだ道半ばですが、「クイックスタート」と「SQLファイル」の項目はほぼほぼ終わり。 http://soma.codeplex.com/documentation 機能改善は細かいものをいくつかやりました。 Entity Framewor…
Expression Blend 4ってMVVMをサポートしていると謳っているんですね。 New ProjectでSilverlight Databound Applicationというテンプレートを選ぶと、ViewとViewModelを使った簡単なサンプルが含まれるプロジェクトが生成されました。そして、ViewからViewM…
Prismの魅力的な機能として、EventAggregator(http://msdn.microsoft.com/en-us/library/ff647984.aspx)というものがあるのですが、コードを見てみたらスレッドセーフじゃなかったです。実装は簡単に差し替えられるので自分でスレッドセーフ版をつくるのが…
Silverlight4に対応したというPrism2.2をちょっとみていたのですが、よくよく見ると次のバージョンのベータ版のようなものがPrism 4.0 Drop 3としてリリースされていました(Dropって感覚的にアルファとかベータみたいなものだと思うんですけど、バージョン…
Management Studioが入っているからなのかわからないですが、Visual Studio 2010で拡張子が.sqlのファイルを開くとエディタでSQLを補完したり、エディタからSQLを実行できますね(Management Studioの機能をつかっているみたい)。前のバージョンからそうな…
SQLのログって自由にハンドリングしたいですよね。 Somaではこんなインタフェースを用意しました。 public interface ILogger { void LogBeforeExecution(LogContext logContext); void LogAfterExecution(LogContext logContext); } LogBeforeExecutionはSQ…
SomaではRepositoryパターンは必須というわけではないですが、推奨しています。 次のような抽象クラスを提供しています(メソッドとコンストラクタはシグネチャだけを表示)。 public abstract class RepositoryBase<TObjectContext, TEntity> where TObjectContext: ObjectContext wh</tobjectcontext,>…
.NET Framework用O/Rマッパー? Soma 0.0.1.0 をリリースしました。 マッピングするところはADO.NET Entity FrameworkにおまかせなのでO/Rマッパーというと語弊があるかなぁ。どんなものかはプロジェクトの概要(http://soma.codeplex.com/)に書きましたが、…
Soma(http://soma.codeplex.com/)でSQLのログ出力を実装できました。 たとえばこんなコードを記述すると using (var context = new SampleEntities()) { context.Employee.Where(e => e.Id > 1).ToList(); Console.WriteLine("------------"); context.Exe…
Entity FrameworkのサンプルだとDaoじゃなくてRepositoryのほうが多い気がするのでDBアクセスを行うクラスをRepositoryと呼ぶことにします。自分の中ではどっちもおんなじですけど。アプリでつくるRepositoryはこんな感じになります。 public class Employee…
SQLの管理ですが、リソースファイル(resxファイル)を使うのがいいんじゃないかと考えています。いままで試したことがなかったのですが、リソースファイルでは文字列や画像だけでなくテキストファイルを管理できるのでこれが使えるんじゃないかと。 リソース…
Somaは、Entity Frameworkをベースにしたフレームワークにすることにしました。PostSharpを使うのは見送り。O/Rマッパーには必須と思われるSQLのログを出力する機能がEntity Frameworkにはないので、プロバイダーをラップしてSQLが実行される直前でログ出力…