.net

dotTRACE 3.1

VS2008環境でも動かしたかったので、最新版にアップグレードした。 dotTRACE The Simple And Super Fast Profiler For .NET - JetBrains The dotTrace licenses purchased after April 15, 2007, qualify for a free upgrade to v. 3.1 Simply download, ins…

HttpWebRequest#GetRequestStreamで初回必ず例外

.NET 2.0環境、Windows Vista上でデバッグしていて気がついたのだが、イントラネット上のWebサーバに、表題のクラス#メソッドで接続しにいくと、必ず初回に例外が発生する。 "対象のコンピュータによって拒否されたため、接続できませんでした。 XXXX::XXXX:…

C#の場合

先日のエントリでは、Javaのアノテーションは属性のデフォルト値を省略することで、結果としてビルド時に必須制約を付けられると書いた。 Javaのアノテーションに纏わる小ネタ C#には同様の機能は無いと思っていたのだが、実際にはなちゃさんにコメントを頂…

Map.Entry

辞書(ハッシュ、マップ)のキーとエントリの両方の値を使って並べ替えを行いたいケース、.net C#の場合ならKeyValuePair構造体を使うのだが、Javaでこれに相当するものは無いのだろうなと思い込んでいた。ちゃんとあるし。 Map map = this.getAttributeMap();…

砂上の楼閣?

infoq オープンソースの違反により、MicrosoftがSandcastleを削除 infoq Microsoft has Pulled Project Sandcastle for Open Source ViolationsOSSか否かの定義は正直どうでもいいから、デベロッパからドキュメント生成ツールを奪わないで欲しい。 だって、…

移行促進

infoQ/ New version of .NET Disguised as a Service Pack infoQ/「Service Pack」を装った新バージョンの.NET このサービスパックでは、LocalIntranetゾーンに一覧されたコンピュータに格納されているアプリケーションを、デフォルトで全面的に信頼して実行…

起動時URLのQueryパラメタを取得する

.NET ClickOnceだと、起動時のAppDomainからアプリケーションの情報を取得、判定できるので、 //for C# if ( AppDomain.CurrentDomain.SetupInformation != null && AppDomain.CurrentDomain.SetupInformation.ActivationArguments != null && AppDomain.Cur…

ReSharper 4.0 beta for Visual Studio

ReSharper 4.0 Beta availableVisual Studio 2005用は華麗にスルーかと思ったが、なんと。 .NET2.0がターゲットであれば、より軽い2005(2008はちょっと重いと思う)をまだ常用しているデベロッパも多いが、費用対効果を考えると両方サポートするのは大変だろ…

ClickOnce vs Java Web Start総括

互いにGUIアプリケーションの配布方法としてほぼ確立している技術であるが、両方使っている側から評価させて貰うと、WindowsというO/Sをクライアント側に使う限りにおいて(企業クライアントの8割はWindowsだろう)、現時点ではClickOnceの方が使い勝手が良い…

VBと三項演算子条件演算子

Orcas introduces the IF operator - a new and improved IIF - The Visual Basic Team いわゆるショートサーキットな三項演算子条件演算子(C#やJavaでは ?: )って、Orcas以前のVBでは使えなかったのか。知らなかったよ。この演算子の覚えたての頃は、ifブロ…

BeansBindingの完成度

まだJSRの段階だということを割り引いても、それでも.NETデータバインドに比べると使いづらい。 バインド元と先でNullを転送しようとした場合やバインド先のオブジェクト.プロパティに到達できない場合の振る舞いを決定するためのメソッドも用意されているが…

遠のいたVista導入

先日のエントリでは、Windows VistaでClickOnceアプリケーションをシェル起動する際、IE7のウインドウを非表示にできないと書いた。これに関してはpotekuriさんからコメントで「保護モードを解除すればできるのでは」というアドバイスを頂いた。試してみると…

Log4netのConversionPatternでミリ秒まで記録する

書式"fff"(フラクタル秒か?)を使う。ConversionPatternはこんな感じ %d{yyyy/MM/dd HH:mm:ss.fff} 表示例 少なくともLog4net-1.2.10ではLogjで使えていたはずの書式"SSS"は使えないようだ。

シェル起動のウインドウ隠蔽はVistaで使えない

以前にClickOnceアプリケーションをシェル起動する際にIEのウインドウを表示しないようにする方法を紹介したが //IEからシェル起動 Process process = new Process(); ProcessStartInfo startInfo = new ProcessStartInfo(ターゲットパス(URL)); startInfo.F…

イベントドリブンの落とし穴

WPFは知らんが、WindowsFormで一番やっかいなバグの原因の一つがこれだ。 主にコントロールが持つ振舞いとWindows Messageの仕様によって、プログラマの意図しない順序でイベントが発生してアプリケーションが予想しない動作をしたり、再現困難な異常動作を…

DAOで使うカスタム属性(その2)

[HasMany] - 1:Nのリレーションを宣言やはりこれは止めようかな。一回のクエリで取得する結果セットの構造を変える(マージ)必要があるしな。

DAOで使うカスタム属性(アノテーション)

途中、何度も「S2.DAOを使えばいいじゃない」という誘惑が入るがめげずに実装中。今まで独自で書いてきただけに、一箇所だけS2ファミリを使う訳にはいかないのだ。(ちょっとだけ後悔している)[Entity] - エンティティを宣言 [Column] - DBの列(カラム)を宣言…

プロパティの適所

アクセサ以外のプロパティは必要か少し考えてみたが、私が最近あまり必要と感じていなかったのはコンポーネント、特にデザイナでポトペタするGUIコンポーネントを書くことが無かったからだろう。コンポーネントを簡単に書けるのはプロパティに因るところが大…

アクセサ以外のプロパティは必要か

Delphiでその便利さに驚き、Javaで提供されていないことを嘆き、C#で使えることに感激したプロパティ(Property)だが、C#でプログラミングする場合、最近ではフィールドをカプセル化するためのアクセサにしかプロパティを使おうとしない自分がいる。プロパテ…

誤解は恐れて欲しい

Q3:どうしていま、.NETなのか? - @IT .NET本音相談室.NET FrameworkをオペレーティングシステムのAPIセットと捕らえて書くのであれば、せめて現状の.NETが実際の開発現場ではどのような使われ方をされているのか、そのO/S自身が.NETというAPIセットをどれ…

Nullable

先日DAOを実装するのが昔より楽になったのはアノテーションのお陰だと書いたが、.NETの場合、もう一つの立役者はこのNullable Generics Typeだろう。 一般的に値型は空とそうでない値との区別が付かないので、SQL等の問合せ言語を構成する際に扱いが面倒だっ…

クエリビルダ

データ層をリモートに持つことを前提としている3層のシステムを担当していたこともあり、今まで一度も起動したことが無かった。 DAOのクエリの確認のために、と思い始めて起動してみたのだが、Accessのクエリビルダに非常に似ているもののAccessとは違い各ペ…

キーの大文字小文字比較を無視するジェネリクス辞書

IDictionaryを実装するが、キーとなるstringに関しては大文字小文字の区別をしない辞書をを作りたい。(大体、何に使うか想像が付くだろう) 幸いにも以下のようにそれ用のコンストラクタがGenerics Dictionaryにあったのだが、 public Dictionary (IEqualityC…

シンプルなDAO

必要に迫られて実装開始。アノテーション(.NETで言うところのカスタム属性とメタデータ)のお陰でDAOの実装はかなり楽になった。外部から取り込みが必要だったパラメタやカスタマイズに必要だったコードの大部分を省くことができるようになったからだ。前回書…

Genericsとstatic fields

ふと思ったのだが、ジェネリクスの型パラメタだけが違うクローズ型のスタティックフィールドは共有されるのか、独立しているのか。当然のことながら独立していないと困ったことになるので、多分独立しているのだろうと思ったのだが物は試し。 public class F…

DAO

今更だが、シンプルなDAOを考え中。1.アノテーションで全ての指示を行う(当然設定ファイルレス) 2.SQL至上主義であり、外部SQLを積極的に使う(ファイル又はリソース) 3.基本はO-Rマッピングではなく「オブジェクト-結果セットマッピング」。 4.リレーショナ…

この未熟者(可変個引数って便利?)

こんなカスタム属性クラスがあって public FooAttribute : Attribute { string arrayParams; public FooAttribute(string arrayParam) { this.arrayParams = arrayParams; } } 配列のパラメタをフィールドに渡さなくてはならないので、今までは以下のように…

XML Documentation Comments Guide

XML Documentation Comments Guide - Dynicity, LLC Dynicityが公開している、NDocやSoundCastleに準拠したXMLコメントの記述を集約したガイド。素晴らしい。 感謝しつつ参考にさせて頂こう。

SetProcessWorkingSetSizeとWindowsForms

NyaRuRuさんも自身の日記で何度か採り上げていたSetProcessWorkingSetSize(hProcess, -1, -1)によるワーキングセットの縮小指示だが、WindowsFormsアプリケーションにてこのAPIを呼ぶにはどのタイミングで呼ぶのが効果的なのだろう。(ベストの性能を期待する…

KB906678のホットフィクスを試してみた

先日言及したVisual Studio 2005の初回起動がストールする件でXmlSerializer クラスから起動された csc.exe が一定時間応答を停止する場合がある - Microsoft サポートオンラインという既知の問題があることが判ったが、その後コメントでこの件に関連するホ…