give IT a try

プログラミング、リモートワーク、田舎暮らし、音楽、etc.

C#

Excel列名変換問題をRubyとPerlとC#とF#で書いてみた

はじめに こちらは第2回社内プログラミングコンテストの番外編です。 Excel列名変換問題で第2回社内プログラミングコンテストを開催してみた(後編) - give IT a try 実はこの問題、コンテストの前にF#とC#で解いていました。また、コンテストが終わった後…

Spring.NETのSdkRegularExpressionMethodPointcutの使い方でハマったところ

C#

Spring.NETのSdkRegularExpressionMethodPointcutの使い方でハマったところをメモしておきます。 Spring.NETのマニュアルで <object id="serviceOperation" type="Spring.Aop.Support.SdkRegularExpressionMethodPointcut, Spring.Aop"> <property name="pattern" value="Spring.TxQuickStart.Services.*"/> </object> と書いてあったので、これを真似して"pattern"のところに自分の…

割り算の結果に要注意・・・!!

不思議な現象? さて、いきなり問題です。 「6÷5」はいくつでしょうか?? ・・・ほとんどの人は「1.2」と答えるのではないでしょうか? では以下のSQLの実行結果はいくつになるでしょうか? select 6 / 5 ・・・実は「1」になります。 プログラミング言語に…

デリゲート(delegate)ってなんだろう?

C#

C#のデリゲートがよくわからんという同僚さんのために、なんかいいサンプルコードを書きたいと思ったんですが、なかなか難しいですねえ。 分かりやすくて、なおかつ実用的なサンプルが思いつかないです。 おいらの中では「デリゲート = メソッド(処理)をあた…

C#のコード品質を上げるフリーツール8本

C#

はじめに 読みにくいコードや複雑なコードをメンテナンスするのってイヤですよね。 コードの品質を上げる方法の一つにコードレビューがありますが、すべてのソースコードを人力でチェックしていくのは大変ですし、レビュアーのスキルや好みにも大きく依存し…

レガシープログラマさんと一緒にリファクタリングをする、の巻

前回のエントリではレガシープログラマの判断項目について、書きました。 その日、仕事でレガシープログラマさんの一人が書いたプログラムを一緒にリファクタリングしました。 レガシープログラマさんと言っても、おいらより年下の女性エンジニアです。 今回…

レガシープログラマかどうかを判断する10項目

※2011.3.30追記 11個目の判断項目を追加しました。 また、「昔はね...」の補足説明を各項目に追加しました。 レガシープログラマ = モダンな言語のおいしい機能をうまく使いこなせていないプログラマ おいらは時々社内システムのコードレビューなんかをやっ…

C#プログラマのための理解度チェックリスト

C#

前回のエントリでは「新しい言語を勉強したって、前に使ってた言語と同じような書き方をしてたら意味がない」という話をしました。 そこでC#を題材にして、C#を本質からマスターできているかどうかを確認するためのチェックリストを作ってみました。 これら…

モデルを中心としたソフトウェアアーキテクチャを採用する意義

今とある新規社内システムの設計と開発を担当しています。 ソフトウェアアーキテクチャはおいらが考えました。 簡単に言うとこんな感じです。 UI層/サービス層/データアクセス層の3レイヤーに分ける 開発言語はC#、UIはASP.NET、データアクセスはADO.NETを採…

ASP.NET開発時の注意点

C#

色々とASP.NETを研究していて感じた点をメモしておきます。 グリッド内編集は極力避ける 画面は極力小分けにする まず一点目について。 GridViewを使った更新は、更新衝突などを考慮しない簡単な更新シナリオを実現するのには便利です。 しかし、色々と凝っ…

Settingsファイルの内容をASP.NETで動的に変更する方法

C#

問題: Web Project => ClassLibraryという依存関係があったとします。 ClassLibraryにはSettingsファイル内に各種の設定値が書き込まれています。 Webページの運用が始まると、その設定値は変更される可能性があります。 しかし、サイトの再コンパイルなしに…

Lucene.NetをC#で使ってみた

とある案件でデータベースのLIKE検索よりも全文検索を使ってみたほうが良いのではないか思うものがあったので、全文検索について調べてみました。 .NET環境ではLucene.Netというツールがあるみたいです。 全文検索エンジン「Lucene.Net」を使う http://www.a…

なんちゃってデザインパターンで条件分岐をなくす

昨日会社のメンバーからコーディングについて相談を受けました。 話を聞いていると、オブジェクト指向設計を利用してコードをリファクタリングしたい様子でした。 彼は頑張ってインターフェースやクラスを自分で定義していたんですが、ちょっとぎこちない設…

Effective C#とMore Effective C#を読破

C#

ようやくEffective C#とMore Effective C#を読み終わりました。 主な感想はAmazonに載せています。 Effective C#作者: ビルワグナー,Bill Wagner,鈴木幸敏出版社/メーカー: 翔泳社発売日: 2009/12/17メディア: 大型本購入: 5人 クリック: 210回この商品を含…

「.NETのクラスライブラリ設計」を読破

大量に残っている未読本のうちの一冊をやっと読み終えました。 主な感想はAmazonのレビューに載せています。 .NETのクラスライブラリ設計 (Microsoft.net Development Series)作者: Krzysztof Cwalina,Bard Abrams,藤原雄介出版社/メーカー: 日経BP社発売日:…

VB6 => VB.NETコンバート

C#

ちょっと仕事でVB6のコードを解析しなきゃいけなくなったのですが、Visual Basicの開発環境はさすがに手元にない。 しかしテキストエディタだけで追いかけるのも大変すぎる。 そこで「よし、.NETにコンバートしてVisual Studioで見よう!」と思いました。 ネ…

Webサービスの認証方法

C#

社内でWebサービスに関する技術検証をやってるメンバーがいたのでちょっと首を突っ込んでみました。 どうもレスポンスの遅さによるタイムアウトの発生と処理開始時の認証方法で困っているようでした。 レスポンスについてはボトルネックを特定するために試行…

IISでホームディレクトリを変更した場合はaspnet_clientフォルダのコピーも必要

C#

IISでホームディレクトリを「C:\InetPub\WWWROOT」から別のフォルダへ変更した場合は、新しいフォルダに対して「C:\InetPub\WWWROOT」以下にあるaspnet_clientフォルダのコピーも必要になります。 これがないとASP.NETの検証コントロール用のJava Scriptが読…

ASP.NET 1.xでデバッグ実行できない場合

C#

Visual Studio 2003でASP.NETアプリケーションを実行しようとすると以下のエラーに遭遇しました。 「プロジェクトを実行しようとしているときにエラーが発生しました : Web サーバーでデバッグを開始できません。ASP.NET または ATL Server のデバッグを開始…

Visual Studio 2003から2005への移行

今日はASP.NETアプリケーションをVisual Studio 2003から2005へ移行するための技術調査をやっていました。 ところどころでハマってしまったので、メモを残しておきます。 基本的には2003のslnファイルを2005で開き、ウイザードに従ってコンバートします。 た…

C#からAccess MDBのパススルークエリ情報を取得するサンプルコード

続いてAccess用のサンプルコードを紹介します。 事前にCOMの「Microsoft Access 11.0 Object Library」みたいなのを参照設定しておきます。 MS AccessがローカルPCにインストールされてある必要があります。 で、こんな感じのコードで情報が取得できます。 u…

C#からDTSの情報を取得するサンプルコード

事前にCOMの「Microsoft DTSPackage Object Library」みたいなのを参照設定しておきます。 たぶんEnterprise Managerかなんかがローカルにインストールされてある必要があるんじゃないかと思います。 で、こんな感じのコードで情報が取得できます。 using Sy…

型付DatasetのConnectionStringを実行時に変更する方法 - C# 2.0版

型付DatasetのConnectionStringを実行時に変更する方法 ↑のページのサンプルコードを利用させてもらおうと思ったら、C# 3.0用だったのでこちらの環境では使えませんでした。 なので、C# 2.0用に書き直してみたのがこれ↓ System.Reflection.PropertyInfo prop…

Data TableをCSVファイルに変換する

C#

自作するのも面倒だと思ってGoogleで検索していたら、色々とありました。 とりあえず、おいらはこれを使ってみた↓http://www.dotnetspark.com/kb/436-convert-datatable-to-csv-file-using-c-sharp.aspx

C#のSettingsファイルをコンパイル時に外部ファイルとして出力する

C#

Settingsファイルは便利だけど、コンパイルしたらどこかへ消えてしまうので、柔軟性がないな〜と思っていたら、外部ファイルとして出力するオプションがあることに気づきました。 Settingsファイルのプロパティを開く。 Copy to Output Directoryの設定値をC…