C#
こんなカスタム属性クラスがあって public FooAttribute : Attribute { string arrayParams; public FooAttribute(string arrayParam) { this.arrayParams = arrayParams; } } 配列のパラメタをフィールドに渡さなくてはならないので、今までは以下のように…
XML Documentation Comments Guide - Dynicity, LLC Dynicityが公開している、NDocやSoundCastleに準拠したXMLコメントの記述を集約したガイド。素晴らしい。 感謝しつつ参考にさせて頂こう。
NyaRuRuさんも自身の日記で何度か採り上げていたSetProcessWorkingSetSize(hProcess, -1, -1)によるワーキングセットの縮小指示だが、WindowsFormsアプリケーションにてこのAPIを呼ぶにはどのタイミングで呼ぶのが効果的なのだろう。(ベストの性能を期待する…
ReSharperに指摘されて気づいたのだが.NET2.0以降における配列T[]はIEnumerableで置き換えることが出来るんだった。 object array = new object{"foo", "bar", "baz"}; IEnumerable enumerable = array; 代入互換性があるとは知っていても意識して使うことは…
DataSourceプロパティに前もってオブジェクトかその型を与えることで、その後Addメソッドを呼ぶ際には内部にBindingListが生成されるのは既知だが、BindingList以外のIBindingList実装を使いたい場合はどうすればよいのだろう。内部リストを付け替えるプロパ…
先日のエントリの代替案(というかこちらの方がより良い)について、NyaRuRuさんに非常に詳しく解説頂いた。パフォーマンスのための Delegate, LCG, LINQ, DLR (を後で書く) - NyaRuRuの日記すぐにでも試したくてうずうずしているのだが今日は時間が無い。取り…
以前に何度か紹介したが、拙作のフレームワークではS2Container.NETと同様のRealProxyを用いたAOP機能により、DTOのプロパティ変更通知を自動化している。カスタム属性を用いたデータバインディングの省力化(INotifyPropertyChanged実装編)この機能のおかげ…
拙作のDxO. for NETの一部が、S2Dxo.NETのベースとして使われていることをコメントで報告頂いた。大変光栄で嬉しく思う。DxO. for NETは自分の仕事でも使っているが、DTOと組み合わせることでGUIとデータ、ビジネスロジックの分離とコーディングの省力化に絶…
このように最小限のメニュー項目とテキストボックスコントロールを載せたフォームを作り、メニュー項目が選択された場合のコードを以下のように書いたとしよう。(面倒ならDoubleClickイベントを使っても良い) private void ToolStripMenuItem_Click(object s…
以前のエントリでプロキシサーバの設定を行った状態でClickOnceの配布に失敗する件に関して言及した。プロキシサーバの認証が必要な環境でClickOnceでの配布が失敗するこの問題だが、先日ついに自分が担当している顧客での環境でも発生した。調べてみるとaki…
自分の経験とドキュメントを読んだ感覚で判断したことが実は単なる思い込みだったことはままあるが、今回もそんな一件。WindowsFormにおいて、FormのLoadイベントの解説は日本語ドキュメントでは以下のように明記されている。 Form.Load イベント フォームが…
カスタム属性が定義されているかを検査するメソッド。Attribute.GetCustomAttribute又はAttribute.GetCustomAttributesメソッドでも検査はできるが、属性の実体化が伴わないのは標題のメソッドだけということだ。
とはデータを持たない、標識としてのアノテーション。結構使う機会が多い。 例えば、GUIではなくGUIとデータバインドしているDTOの変更管理をしたい場合。通常は全てのプロパティの変更をチェックしてダーティ(変更が発生したか)を検査するのだが、検査の対…
.NETクライアントからXMLをサーバ上のTomcatに送信するためには、Javaと互換性を保つためUTF8で出力する場合はいつもBOM無しにしなくちゃならない。例えば、引数にストリームと対象のエンコーディングを指定することでXMLをストリームに書き出すメソッドがあ…
以下のコードを実行する。(Windowsから得られたカルチャは"ja-JP"とする) CultureInfo cInfo = CultureInfo.CreateSpecificCulture("en-US"); Thread.CurrentThread.CurrentCulture = cInfo; Thread.CurrentThread.CurrentUICulture = cInfo; Thread newThre…
.NETはカルチャを取得、設定することでアプリケーションの国際化、地域化を簡単に実装できる。 O/Sのカルチャをそのまま使うのであればコードを書く必要は無い。例えば、WindowsFormやWebFormでは、Localizableプロパティをtrueにしておく等、適切にプロパテ…
同名のタイトルでは、今までC#2.0で書いてきた拙作のフレームワークをC#3.0(.NET Framework 3.5)でビルド又は実行した際の、主に互換性に関する話題を書き溜めて行こうと思う。(思いの外少なくて頓挫するかもしれないがやむなし)No.1はHashSet。Javaでは同名…
先日のVisual Studio 2005のデバイスエミュレータに接続できない件だが、MSDN Forumで解決策を見つけることができた。Unable to deploy to emulator VS 2005 and Smart Device installation problem両方とも2005年とかなり古いポストだが、原因もそこにある…
ちょっとした調べものがあったのでVisual Studio 2005のデバイスエミュレータマネジャを起動してPocket PC 2003 SEエミュレータを起動した所、以下のように接続できないとエラーが出る。 自宅のWindows VistaをインストールしたPCだと上手く行くんだがなぁ。…
ReSharper3にアップグレードしたのは良いのだが、お気に入りの機能のうちの一つであるOptimize using※が効いてないようで、マウスカーソルを解決できていないネームスペース上に置いてもusing句のガイダンスが出ない。と思ったら、単にCode Analysisのオプシ…
Visual Studio 2005 C#のソリューションをチェックアウトするとO/Sごと砂時計でハングアップ。 今のところ原因全く判らず。追記:原因が判明以下のように頭一文字のキャメライズの有無だけが違う同一のディレクトリがリポジトリに存在しており、そこがチェッ…
WindowsFormsアプリケーションのデザインでForm(Form1)を生成し、コントロールを配置した状態でFormのLocalizableプロパティをtrueに設定するとForm1.Designer.csの初期化コードは以下のように変化する。例) Labelコントロールが一つだけ配置されているForm1…
Visual Studio 2005で使うプロジェクトテンプレート中のAssemblyInfo.cs中においても標題のパラメタによる置換は有効だ。 AssemblyInfo.csの例(冒頭) // プロジェクト作成時、プロジェクト名で同プロパティを置き換える [assembly: AssemblyTitle("$safeproj…
コンポーネント作ろうよ - 菊池 Blogコンポーネントにしてツールボックスに乗せるか否かの議論は別にして、カスタムコントロールにすることが必要なケースが昔に比べて減っているのは確か。 過去の日記でも触れているが、WindowsFormsに限れば匿名デリゲート…
WindowsXP以降、MicrosoftのO/Sにはタスクバー上のプログラムボタンをグループ化する機能がついている。例えば同じアプリケーションから起動されたウィンドウが一定数に達した場合、プログラム名が付いた1つのタスクバーボタンにまとめられる。そしてまとめ…
コーディングとテスト中はとてもお世話になっているのだし、今後も.NETの仕事は暫く続きそうなのでアップデートすることにした。私の場合、C# Editionで事足りるんで高々$149だし。おっと、インストール後はVisual Studio 2005の設定のリセットは忘れずに。 …
What's New in ReSharper 3.0XML及びXAMLサポートとOrcas対応が大きなトピックか。 あとはVB.NETとC#のバージョンを別々に使えるのはリソース節約の観点から有り難い。って、4月以前に2.xを購入したユーザは有償アップグレードなのか。
例えばADO.NETデータプロバイダ上で使える、oracleで使用するのと殆ど同じだが少しだけ違うカスタムなSQLパラメタとそのコレクションを用意したいと思う。使うインタフェースはVisual Studioのデザイナサポートを無視した単純なプロバイダの実装ならば Syste…
先日の日記ではADO.NETにおけるOracle用プロバイダの傾向について書いたが、これらは全てSQL*NET環境が前提で動作するプロバイダだった。 Javaのデータベース接続規格であるJDBCはそのドライバのタイプに"ネイティブ・プロトコル・ドライバ"もしくは"Type 4 …
昨日のエントリでは、System.DateTime#TicksとSystem.Diagnostics.Stopwatchクラスでは精度が出ないので使い物にならないというエントリを書いたが、少なくともStopwatchクラスに関しては私の計測方法、又はコードが悪かったために0msが戻っていただけであり…