C#

LIKE演算子のエスケープと正規表現

.NETのプログラムからSQLを発行する場合、LIKE演算子のエスケープ処理をしてやる必要がありますが。 これを正規表現でやろうとするんですが、LIKE演算子内の特殊文字のエスケープと、正規表現のエスケープとでややこしいことに。 ググっても、そのものズバリ…

SDI Form/ActionList

C#

テストデータの確認用に、C#でちょっとしたツールを作っていたんですが。 SDIっぽく作っていたんですが、ツールバーやメニューのEnable状態、ステータスバーのプロンプト更新なんかを真面目にやろうとするとチト面倒なんですよね(´Д`) メニューに関してはま…

ソースをレビューして… (5)

ついでにスケジュール管理についてもちょっと(・∀・) 今回のうちのプロジェクトに関して言えば、顧客*1がちょっと特殊だったりして、実質的なスケジュール調整の余地がありません。 担当者が誰も納得していない政治的に決まったスケジュールに対して、後ろから…

ソースをレビューして… (4)

最初にお断りしておくと、自分は「プロパーと外注」とか「人月」っていう言葉が好きではありません。 そして「チーム」という言葉は好きです(`・ω・´) で、この前書いたことにコメントを貰ったのでちょっと補足しておきます(・∀・) この業界、確かにいろんなレ…

ソースをレビューして… (3)

続きです(・∀・) 今度は要員調達の話になりますが。 どうも.NET系技術者ってあんまり集まらないみたいですね。 #発注単価が安いからかもしれないですけどネ(´Д`;) 前に某外資系の企業がBI系なんかのシステム構築用に人を集めていましたけれど。 優秀な人なん…

ソースをレビューして… (2)

昨日の話と微妙に関連して(・∀・) 色々ソースを見ていて気がついたこと。 .NET初心者(っというかプログラミング経験自体の浅い人)が作るソースの共通した問題点についてです(´・ω・`) だいたい以下のようなところが共通して分かっていないというか、勘所が無い…

ソースをレビューして…

あるプロジェクトのSCMにソースが入り始めたんですが、色々と問題があるなぁ…(´・ω・`) 特にレイヤ構成が意識されていない部分があるのがヤヴァイかも。 あちこちの人をかき集めて逐次投入というデスマまっしぐらなやりかたなので、まあ、ありがちな状況です…

.NET Expert #03

C#

あ、発売してるんだ。.NET Expert #03作者: .NET Expert編集部出版社/メーカー: 技術評論社発売日: 2006/08/29メディア: 大型本 クリック: 1回この商品を含むブログ (8件) を見る買ってこようっと。 雑誌繋がりだけど、最新のWEB+DB PRESSのDHHへのインタビ…

ServiceLocatorやDIコンテナみたいな

C#

簡易ETLツールだとか、バッチ処理みたいなプログラムを組む事も多いんですが。 こういうのを作るときには、ServiceLocatorというかAbstract FactoryとDependency Injection機能を持ったコンテナが欲しくなりますね(・∀・) で、これもORマッパーとかと同じく、…

最近のネタより

最近みつけたものについていくつかデス(・∀・) TextFieldParserクラス Microsoft.VisualBasic.FileIO.TextFieldParserですか。 こんなのがあったんですね。 http://www.atmarkit.co.jp/fdotnet/dotnettips/487csvparser/csvparser.html 自前のCsvParserクラス…

デバッグ情報 プリプロセッサの代わり

C#

FAQっぽい話になりますが。 .NETでも__FILE__や__LINE__みたいなものを使いたいという人達が居ますね(´ω`) やる気があるならSystem.Diagnostics.StackTraceから情報も取れるわけで。 例えばlog4netなんかのコードから抜粋してみると、こんなカンジになってい…

.NET 1.1で名前付きイベント

C#

今更気がついたんですが、.NET Framework 1.1では名前付きイベントがサポートされていないですね(´・ω・`) ちょっとしたプロセス間通知が必要になったので名前付きイベントを使おうと思ったら、対応する処理が無いことに気がついた今日この頃。 2.0だとEvent…

SharpZlibを使って圧縮/解凍 tar編

C#

以前にSharpZlibを使ったZIPファイルの圧縮・解凍をテストしましたけど。 今度はtarアーカイブ(.tar.gz)を圧縮・解凍したいという話があったので、同じくSharpZlibを使っての実験です(・∀・) SharpZipLibの中にはそのものズバリTarArchiveクラスがあるので、こ…

ORMモドキ作成 (5)

前に作っていたORMモドキなんですが、ちょっと問題を見つけてしまいました(´・ω・`) 何が問題かというと、DTOのクラス/プロパティ名と、DB上のテーブル/フィールド名のマッチングについてです。 今回は.NETとDBの銘々対応ルールとして、AaaBbbCcc(.NET)←変換…

SCM環境

昨日、会社の先輩(山梨大学の先輩でもある)が某プロジェクト管理ツールの研修を受けに行っていたんですが、そのツールはCVSには対応しているけどSubversionには対応していないとか言っていました(´・ω・`) #ついでに「研修つまんない」とかニコカレに書かれ…

プリンタ情報の取得

C#

今日は市川大門の花火大会。 自宅から見物もできたりしますが(・∀・) で、今日は、Windowsのコントロールパネルにある[プリンタとFAX]みたいな画面をプログラムで作りたいのだけれど、System.Drawing.Printing.PrinterSettings.InstalledPrintersだと名前しか…

SharpZlibを使って圧縮/解凍

C#

ファイルの圧縮/解凍をしたいという要求があったので、SharpZlibを使って実験してみました(・∀・) ZIP圧縮についてはJ#のランタイムにjava.util.zipとかもあるんですが、これは色々と問題もあるらしいということで(´・ω・`) で、.NETで圧縮/解凍といえばSharpZ…

PstgreSQL用Npgsqlヘルパークラス

ちょっと空いた時間に、Npgsqlを利用するPstgreSQL用のデータベースヘルパークラスも作ってみたり(・∀・) メソッド一覧はおなじみのもので、こんな感じです。 using System; using System.Collections.Generic; using System.Data; using Npgsql; using Npgsql…

ORMモドキ作成 (4.6)

ORMモドキのお話がなかなか終わらないですが(・∀・) 自分のORMモドキで使用するDTOクラスを簡単に作成できるように、DBのスキーマを覗いてDTOクラスを生成するツールなんかを作ったりしてました。 後、DAO処理の基本RCUDメソッドの生成ツールも一緒に。 なんか…

ORMモドキ作成 (4.5)

ORMモドキのお話は昨日で終わろうかと思っていたんですが、今日、機能追加を要望されたのでその辺の話についてです(・∀・) 前にもちょっと書いたことがありますが、ODP.NETの場合、OracleCommandにArrayBindCountというプロパティがあって、配列バインドがサポ…

ORMモドキ作成 (4)

ORMモドキのお話は今日で一段落ということで、最後は、DTOクラスからのSQL文自動生成あたりについて(・∀・) DTOクラスからのSQL文生成は、メタ情報Builderクラスで行っています。 メタ情報Builderクラスは何をするかというと、まず、DTOクラスの型情報から対象…

ORMモドキ作成 (3)

OracleHelperについてもう少し(・∀・)OracleHelperに渡すOracleParameterをDTOのインスタンスから作成する処理も用意しています。 リフレクションでPropertyInfoを取得して、OracleParameterの作成&値の設定を行うメソッドです。 各プロパティの型からOracleD…

ORMモドキ作成 (2)

で、昨日からの続きです(・∀・) ORMモドキの中身について、ちょっと触れてみたいと思います。 GenericDaoの内部処理としては、DTOの型情報からSQL文を取得、DTOのインスタンスからOracleParameter[]を作成、SQLとOracleParameterから処理を実行みたいなことを…

ORMモドキ作成 (1)

本日は仕事からのネタです(・∀・) 今日はなぜか仕事でO/Rマッパーもどきを作っていました。 処理としては単純なもので、DTOクラスからSQL文を自動生成して、テーブル単位のRCUD基本パターンを行うというもの。 ちなみに対象とするデータベースはOracle 10gでOD…

アイコンカレンダー(9.5) 番外辺

JUDE開発部さんのニコカレが公開されていますね(・∀・) http://blogs.itmedia.co.jp/hiranabe/2006/07/jude_10__2d64.html http://trichord.change-vision.com/status/jude/ajax/view_niko2.html やっぱりこういうのはWebで見れると良いですよね(・∀・) ツールと…

アイコンカレンダー(9)

連休中に、ニコニコカレンダーのマイナーバージョンアップもしていました(・∀・) 追加した機能は、リンクを入力できるようにしたことです。 リンクを入力した所は、アイコンの左下にマークを表示して、リンクへのアンカーを設定するようにしました(`・ω・´) …

アイコンカレンダー(8)/共有メモリクラス

シェンドラ姫ってツンデレ?(・∀・) っというわけで、アイコンカレンダーについては社内にオープンにしてみました。 まあ、フィードバックについてはこれからということで、アイコンカレンダーの制作ネタについては一段落。 で、今日はちょっと必要になってC#…

キーフック Compact Framework編

今日はカレンダーではないネタです(・∀・) CE機でキーフックする方法について、[id:lains_you:20060627]にトラックバックを貰っていたので、その補足です。 [id:machi_pon:20060617]に書いたのはC++での定義ですが、Compact Framework 2.0でキーフックを行う方…

NVelocity

C#

NVelocity.dllはCastleプロジェクトのアーカイブの中のものを使用しています。 まず、NVelocity.propertiesとしては以下の様なものを用意しました。 エンコードの指定だけですが。 input.encoding=Shift-JIS output.encoding=Shift-JISそしてテンプレートフ…

Excelで印刷

C#

Excelを使って印刷する方法を聞かれたので、そのサンプルを作ってました。 C#からCOMオブジェクトを操作する場合、ちゃんと終了処理を書こうとするとtry-finallyとMarshal.ReleaseComObject()の嵐になるから面倒なんですよね(´ω`) とりあえずやりかたとして…