配列の宣言

VB.NETの場合

Dim ArrayObject() As Object = new Object(4){}

で、要素が5つ作られる。(index=0~4)

C#の場合

object ArrayObject[] = new object[4];

で、要素が4つ作られる。(index=0~3)

何年もやっているのにVB.NETに戻るとき、たまに間違える。

Share
カテゴリー: .NET

むやみにキャッチしないでね。ゴールキーパー以外はハンドで反則ですよ。

まぁ、そんなわけで、私が書いているコードはほとんどTry-Catch-Finallyではなく、Try-Finallyばかりだ。
正当な理由がある(Catchする事に意味がある。)時や、付加情報を付けて再Throwしたい時くらいしかcatchしない。
では何処でcatchしているかというと、global.asaxのApplication_Errorイベント内。
ここに例外が飛んできたら、イベントログに、その内容を書き出してDebugモード時は画面にも例外の内容を、Releaseモード時は「ご迷惑をお掛けしています。」ページに遷移するようにしている。

では、なぜむやみにcatchしては駄目かと言えば、

  • 正当な理由がないのにcatchして例外を消してしまうと、一見うまく行っているような動作をしてしまう
  • そのため傷口がどんどん広がる。
  • そのためバグが発覚しにくい。
  • 発覚した時には手遅れになっている可能性がある。
  • 事前条件に基づいてメソッドの先頭で例外をThrowするようにしているとより効果的。

逆に、正当な理由が無いものについては個別にcatchしないでAppication_Errorで一元管理すると何が良いかと言えば、

  • 起きてほしくない例外を漏らさす知る事ができる。
  • そのためバグがすぐ発覚する。
  • つまり、それを潰す機会が早期に与えられる。

また、

  • 想定外の例外に対して、そこら中にエラー処理を記述する実装だと、エラー処理を記述し忘れる不具合が発生する可能性があるが、それが無い。
  • 不必要で不可解なコードを作り込まない。
  • 結果的にシンプルかつ見通しが良くなる。

一応、上記の根拠に沿って、こういう実装をしているわけです。

もし、そこら中で意味も無くcatchしているとしたら、それはバグ許容宣言をしているようなものなので、やめた方が良いでしょう。

Share
カテゴリー: .NET

とりあえず、今月中に買わないと行けない

ProかEnterprise Developerか・・・

すべてはVSSと2005になった時の事を考えないと行けない。

6万の差は安い?

Visual Studio .NET 2003 Pro MSDN DX 優待パッケージ

Visual Studio .NET 2003 Pro MSDN DX 優待パッケージ

Visual Studio .NET 2003 Enterprise Developer MSDN DX 優待Package

Visual Studio .NET 2003 Enterprise Developer MSDN DX 優待Package

Share
カテゴリー: .NET

敷居が高いと思われがちですが・・・

なにげに、新人の方々にもおすすめな本です。

これをネタに5人くらいの新人チームを作り、

その日のリーダーを決め、

1章単位で、輪読し、

その後、リーダーが纏めた結果をプレゼンする。

周囲は、それに突っ込みをいれる。

とかもできるし、

一人で読んでも分かりやすく書いてあると思う。

これに書いてある内容についていけなくなったら、

そこを重点的に補強すると良い。

まぁ、とにかく難しい内容を難しくなく説明してくれる良書です。

Share
カテゴリー: .NET

DotNetNukeインストール完了

DotNetNukeをインストールした。

こちらは、インストールから日本語化、ブログモジュールの追加と結構ワンタッチで出来るようになっている。

このあたりは、CommunityServerより優れているかも。

あとは、Blogの編集で出来ることが多い。

Share
カテゴリー: .NET

Community Server1.1 とりあえず設定終了

とりあえず、ブログも自分用と妻用を作成して終了。

後は、細かい微調整。

本当に、移行するかどうかは、様子を見て決めよう。

ポイントは、ここはここで続ける必要があるって事。

なぜなら、ここのログを移行できる手段が無いから。

Share
カテゴリー: .NET

Community Server1.1 インストールその4

やっぱり、言語の設定は関係なくて、ただ単に英語に設定した時にログインした内容が残っていて、Login.aspxを経由しないで良かったから例外が発生しなかっただけで、どうもLogin.aspxだけ、日本語にすると駄目っぽい・・・orz

Share
カテゴリー: .NET