.NET

SourceTree for Windows で使われているWPFライブラリ

Free Mercurial and Git Client for Windows and Mac | Atlassian SourceTreeをダウンロードしてみたら、全然知らないWPFライブラリが使われてるので、備忘録を兼ねてメモ。 WPF Converters - Home コンバーター ScrollableTabPanel スクロール、クローズ可…

64bit Windows が本格的に普及する前にネイティブ DLL を P/Invoke する .NET アプリがやっておくべきこと

以前からいろいろ調べたり質問したりしてた、ネイティブ DLL を P/Invoke する .NET アプリを 64bit Windows でも動作させる方法がようやく納得できる形で見つかったので、備忘録を兼ねてメモしておく。P/Invoke したいネイティブDLL x86用DLLとx64用DLLが用…

GUIテストフレームワークwhiteがすごい

http://white.codeplex.com/たとえばこんなWindowsアプリがあったとして、 namespace WindowsFormsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e)…

System.Windows.Forms.Button.PerformClickのWPF版

(new ButtonAutomationPeer(button).GetPattern(PatternInterface.Invoke) as IInvokeProvider).Invoke();

EnumをComboBoxに表示する。

アセンブリHogeAsmに含まれるEnum、HogeEnumをComboBoxに表示。

Windowsサービスでlog4netを使うための覚え書き

最近作っていたWindowsアプリをWindowsサービスに作り替えてみたら、log4netで出力していたイベントログが出力されなくなってしまった。最初は権限関係だろうと思っていろいろ試してみたがさっぱり解決できなくて、1週間くらい無駄にしてしまった。 原因は…

WPFでコントロールをアニメーションさせてみる

Expression Blend を使えばアニメーションは簡単にできるんだけど、アニメーション中は Width プロパティとかに Auto を指定できないので微妙にめんどくさい(ちなみにコードだと Auto は Double.NaN で指定できる)。 なので、細かい操作は Visual Studio …

IronPython を中継して、C#からPythonライブラリを使ってみる

IronPython 1.0.1Python の.NET実装 pyExcelerator 0.6.3aEXCEL ファイルを Python から読み書きするライブラリ IronPython から Python ライブラリを使うことは難しくないということなのでやってみた。 それだけじゃ面白くないので、さらにC#を連携させてみ…

NAnt でアセンブリのバージョンアップデート

via CodeZine:NAntでアセンブリのバージョンアップデートを自動化する 複数アセンブリのバージョン番号管理を自動化する、いい方法はないかと考えている時に上記の記事を見つけた。 アイデア自体はいいんだけど、ビルド番号を決定するスクリプトがどうも気持…

log4net でログレベル毎に出力先を指定する

現在のプロジェクトでは、log4net を使用してログを出力することになっていた。 ログファイル名は日付によって変わるが、その日のすべてのログが1つのファイルに出力される。 ある時、ログレベル毎に出力先のファイルを変更できれば便利じゃないか?と指摘…

S2Dao.NET を使ってみる(3)

S2Dao.NET を使ってみる(1) S2Dao.NET を使ってみる(2) の続き。以下のような機能を試してみる。 バインド変数コメント 単純な置き換え LIKE を使った場合 IN 句を使った場合 BEGIN コメントを使ったSQLファイル ソース一式をここに置いておく。 DB の変更 E…

S2Dao.NET を使ってみる(2)

これの続き。 昨日の状態だと全データが見れるだけなので、もう少しアプリケーションらしくしてみる。 追加機能は以下の3つ。 データの追加(社員番号の最大値+1のデータを追加) データの修正(テーブル上で選択しているレコードを修正) データの削除(テーブ…

S2Dao.NET を使ってみる

開発環境はこんな感じ VS2005 Team Edition for Software Developers(C#) SqlServer 2005 Developer S2Container.NET 1.2.2 S2Dao.NET 0.4.5 ソース一式をここに置いておく。 DB作成 使用するDBはこんな感じ CREATE DATABASE [s2daotest] GO use [s2daotest]…

DllImportを使わずにアンマネージドDLL関数を呼び出してみる

まったく使わないわけではないけど。参考にしたのはこのあたり。 http://dobon.net/vb/dotnet/links/extractarchive.html http://momotchi.net/forums/711/ShowPost.aspx http://msdn2.microsoft.com/ja-jp/library/system.runtime.interopservices.marshal.…

MSBuild で ClickOnce アプリケーションを発行する

せっかく CruiseControl.NET で自動ビルドを構築しているんだから、ClickOnce アプリケーションの発行も自動化できないか試してみたのでメモ。 とりあえず発行してみる 発行自体は MSBuild を使うと簡単にできた。 MSBuild.exe hoge.csproj /t:publishところ…

NAnt から MSBuild にプロパティを渡す方法

.NETを使っているとほとんどのことは NAnt でできるけど、「発行」とかは MSBuild じゃないとできない。じゃあ MSBuild に乗り換えよう、と思ってもできる事が少なすぎて乗り換えられない。なので多機能な NAnt から必要な機能だけを MSBuild に提供してもら…

CruiseControl.NET でビルドログ作成エラー回避

CruiseControl.NET 1.0 でソース管理に Subversion を使っているとビルド自体は成功するが、ビルドログ作成時に例外が発生することがある。 Build Status には Failure でなくて Exception と表示されるので見分けはつくが、あまり気分のいいものではない。…

ASP.NET 2.0 Web サービスでグローバル例外ハンドラ

ASP.NET Web サービス でも ASP.NET Web アプリケーションと同じように、Global.asax の Application_Error イベントで例外をハンドルできると思っていたらできなかったので回避策をメモ 何故ハンドル出来ないか? ここによると、 Web サービスの HttpHandle…

SqlBulkCopy のベンチマーク

.NET 2.0 で、大量のデータをインポートするクラス SqlBulkCopy が導入された。その性能を試してみたのでメモ。 テスト結果 試行したPCの性能は以下のとおり。 CPU : Pen4 2.4GHz , RAM : 512MB , OS : WinXPSP2 , DB : SQLServer 2005 Express 各データ数に…

ADO.NET で IN演算子

ADO.NET 1.x でいい解決方法が見つからなかった問題が、ADO.NET 2.0 でも解決できなかったのでメモ。テーブル Table1 のデータがこんな感じの場合、 ID NAME 1 name1 2 name2 12 name1,name2NAME が name1 または name2 のデータをSELECTしようとして、以下…

TransactionScope (2)

これ の続き。TransactionScope の動作についてのメモ。 使用するテーブル CREATE TABLE Table1 ( ID INT PRIMARY KEY, NAME NVARCHAR(10) ) ネストしない場合 メソッド Insert は、DBへの接続をオープンして Table1 にデータを追加後接続をクローズする。 u…

CruiseControl.NET + MSBuild

MSBuild タスクの使い方メモ 参考URL タスクの説明はこのあたりを参考に。 http://confluence.public.thoughtworks.org/display/CCNET/MsBuild+Task タスクを使うのに必要なDLLはここからダウンロード。 ThoughtWorks.CruiseControl.MSBuild.dll CruiseContr…

CruiseControl.NET + Subversion

CruiseControl.NET を使ったサンプルは VSS を使ったものが多いのでとりあえずメモ。 参考URL CruiseControl.NET の基本的な使い方はこのあたりを参考に。 Archway NWiki CruiseControl.NET のダウンロードはここから。現時点で最新は 1.0 Final http://sour…

MSBuild

.NET 2.0 から標準添付される MSBuild でソリューションをビルドするためのメモ。 わざわざNAntのビルドファイルをごりごり書かなくても、VS2005のソリューションファイルがそのまま使えるので楽ですな。 使い方 コマンドラインからはこんな感じで使える。詳…

DbProviderFactory

アプリケーション構成ファイルから DbProviderFactory を生成するためのメモ コード string key = "WindowsApplication1.Settings1.Setting"; System.Configuration.ConnectionStringSettings settings = System.Configuration.ConfigurationManager.Connect…

BackgroundWorker

C# 2.0 から導入された BackgroundWorker で発生した例外をキャッチするためのメモ以下のようなコードの場合、bw_DoWork で発生した例外は完全に無視されて「completed」と表示されたメッセージボックスが表示される。 namespace WindowsApplication4 { publ…

TransactionScope

C# 2.0 から導入された TransactionScope を使うためのメモ 普通の使い方はこんな感じ // A using (TransactionScope scope = new TransactionScope()) { // B scope.Complete(); }接続をオープンする場合 A で行うとトランザクションの影響は受けないので注…

NHibernateと接続文字列の共有

NHibernate で使う接続文字列をアプリケーション側から共有するためのメモ NHibernate.Cfg.Configuration cfg = new NHibernate.Cfg.Configuration(); string connectionString = (string)cfg.Properties[NHibernate.Cfg.Environment.ConnectionString];

NHibernateで複合主キー

NHibernate で複合主キーを持つエンティティを扱うためのメモ 単独主キーのマッピングファイル 主キーが単独ならマッピングファイルはこんな感じ <hibernate-mapping xmlns="urn:nhibernate-mapping-2.0"> <class name="Hoge.HogeTable,Hoge" table="HOGE_TABLE"> <id name="NUMBER"> <generator class="assigned" /> </id> </class></hibernate-mapping>

NHibernateでマッピングの自動生成

NHibernate のマッピングファイルとマッピング対象クラスを自動生成するためのメモ MyGeneration 1.1.4.1 NHibernate Object Mapping 1.1 使い方はこんな感じ 1.Default Settings の指定 MyGeneration 初回起動時にオープンされるダイアログで接続文字列とか…