VS2005覚え書き
β2も手に入ったことだし、ここらでちょっと手持ちの情報を整理。
しばらくは検証と概念の把握に追われるかも。
VisualStudio2005製品ライン
http://www.microsoft.com/japan/msdn/vstudio/2005/productinfo/productline/default.aspx
本流としてはStandard/Professional/TeamSystem(Team System Suiteが正式呼称?)の3本立て。傍流として言語単位のExpressEdition(SQLServerもあるけど)とToolsForOffice。
今回はスペックが縦(上位Editionは下位Editionの機能を含む)ではなく横展開(あのEditionにはあるがあのEditionにはない)なので選択を間違えると自分の欲しいツールが足りなくなったりするので注意。
機能委細はまだ把握していないが、だいたいのトピックから推察。
ExpressEditionはほんとにお遊び用。言語はどれかひとつ、msdnLibはないが派手目の見てくれを作れるテンプレやウィザードが一杯っぽい。旧来のStd.Ed相当の扱いのように見える。ちょろっと遊ぶには最適、真剣に勉強する気なら早晩限界を感じそう。逆に、どれだけとっつきがよくなっているか興味のあるところではある。\5,200くらいか。
StandardEditionは、個人/ローカル開発をするのであればほぼPro.Ed同等か。ユーザーエクスペリエンス(?)に難がある、配布ツールに制限がある、リモートデバッグ不可、程度か。実際には現在公表されていない機能制限があちこちにあるだろうから、これを選択するのはちょっと冒険かも。趣味グラマにはベストチョイスになりえるが…慌てて買って、あとでブーたれる人らの話を聞いてからの方がいいかも。\32,000くらいか。
ProfessionalEditionはとりあえず安心か。ただし今回Office連携の機能は「ない」ということになっていて、そのへんはVSTOって傍流製品のテリトリーに。
一方でVS ToolsForOfficeはVB・C#のみ(VJ#・VC++がない)なので、個人的にはVC++とOffice連携のどちらを取るか悩ましいところ。ToolsForOfficeを別に提供してPro.Edに組み込めるなら特にVSTOにしなくてもいいか?とも思うが、どぅもVSTOってこれでもかってばかりにOffice連携用のソフトを作りやすくなっているっぽい。正直迷う。Pro.Ed・VSTOとも\85,000くらいか。
よくわからないTeamSystemEdition。チーム開発に便利らしいが、VSSだって使っている/いない企業が入り乱れて下請けのこちらとしては大苦戦だったし。UMLとかそのへんの連携まで取れるんならあるいはイキか?とも思うが、まだなんともわからない代物なので期待していいかどうかの判断もついていない。使うにせよ使わないにせよ、一度きちんと理解しておく必要はあろうかと思う。\340,000以上(ボリュームライセンスなので)。
VisualStudio2005 Team Foundation
TS.Edに含まれる、VSSのようにチーム開発を補助してくれる機能の総称。Team Foundation Serverを立ててチームの面倒を見させるらしい。
Team Test Load Agent
Team Test Load Controller Edition
何者だ?
ユーザーエクスペリエンス
一般的な用語としてUIとかユーザビリティの拡張発展形としての概念、ってのはわかるが、なぜVS2005で具体的な機能として項目に挙がっているのか。Exp.EdとStd.Edで「簡略」とされているのは、要は「使い勝手にやや難あり」と言いたいのか。VS2005でいうところのユーザーエクスペリエンスとは何か、という説明を未だ見つけられないでいるので、引き続き納得のいく説明を探してみるor実際にβ2で使い比べて実感してみる作業が必要か。
コードスニペット
コードスニペットについては、ビンゴな資料あり。
http://www.microsoft.com/japan/msdn/vs05/vcsharp/codesnippets.asp
要は、xmlで用意された/した雛形などを、IntelliSense経由で任意に貼り込める機能らしい。当然意味情報を持っているので、貼付前後にあれしろとかここらへんに影響されろとか、かなり広範に使用できるっぽい。
Go-Liveライセンス
VisualStudio2005β2で作成したプログラムを配布できる契約。
配布するプログラムを作成するために使用していい製品は下記参照。
http://www.microsoft.com/japan/msdn/vstudio/2005/golive/products/
プログラム(ソース/バイナリ)を配布することはできるが、実行させるための.NET Framework2.0β2を配布してはいけない。配布された側がこちらとは別にGo-Liveライセンス契約を結んだ上で別途入手する必要がある。配布された側がo-Liveライセンス契約を結んでも配布側から.NET Framework2.0β2を配布できるわけではない。
確かMicrosoftの最近のプレリリース版には時限が仕込まれていて、製品版がリリースされてからしばらく経った頃だよなー的なタイミングで使用できなくなるはず。
ので無償の開発環境だと勘違いしてほいほい開発/客先配布なんかすると、時限発動後に信用を失いつつばたばたすること必至。
あらかじめ製品版提供開始後に差し替えを予定し、肯定に滞りがないようにする(エンドユーザサイドでの運用テストとか)あたりの目的での使用が妥当か。
それにしても今回はTeam System Suite Editionしか提供されていないわけだし、使える機能をほいほい使って、いざ製品版はProfessional Editionあたりで済まそうったってそうは問屋が卸さない可能性もあり。
製品版に比べリスクはかなりデカい。別途「使わないリスクがデカい」状況を持つ案件でなければ、後半年~1年をあせって業務上で無理に使う必要はない。
それより、あらかじめ勉強しておきたいエンジニア間でソース/バイナリを相互流通させられるメリットの方がでかい。ので、「情報をやり取りしながら今のうちに勉強しておきたい」エンジニアであればこの契約はアリだろう。
日本語版ライセンスは2005/05中に開始予定。
VB2005の特徴
これはわりとわかりやすい位置に列挙されている。
Visual Basic 2005 の言語拡張
Visual Basic 2005 での My.Settings の使用
Visual Basic 2005 の My 機能の検証
Visual Basic 2005 の予告プレビュー
Visual Basic 2005 でのジェネリックの定義と使用
Visual Basic 2005 での演算子のオーバーロード
β1の時の資料なので、β2とはちょっと食い違うかもしれないが。
My
.Net Frameworkのクラスを使いやすいように集めたラッパクラス、またはラッパクラスを作るための機能。ラッパクラスそのものより、いかに意識させないでMyを編み上げていくかの操作性のほうに眼目あり。うまく使えばかなりコーディングが楽になるし、実体としてどのクラスを使用しているかのマップにもなるので勉強にもいいかもしれない。
上の説明ページでは「.NET Frameworkのサイズそのものと~が大きな障害となります。」との前振りでMyを説明しているが、まさか使っているクラスだけからCLRのサブセットを用意してくれるわけではないだろうなぁ…「必要なクラスを探す手間が省けます」的に読むべきだろう。
XMLコメント
2003まではVB Commenterでおなじみの機能が標準搭載に。'''のコメント行にXMLの文法で説明を書いておくとツールチップに表示されたりNDocなどでドキュメント化できたりする。
あと、
- ジェネリック:カスタムコレクションの進化形。パフォーマンスも向上。
- Using:オブジェクトの生成~破棄の新しい記述方法。感覚的にはWithに似ていたり。
- Continue:キター!
- Global:自作と既定の名前空間の区別に。VB6まではGlobal=Publicだったからなぁ…
混乱しないように注意。 - IsNot:=Not ~ Is。記述法のみの問題。
可視性の向上を謳っているけど、私は従来「If Not (myObj Is Nothing) Then」って書いていたのであまり見にくいとは思っていなかったよ。 - TryCast:CastとTry~Catchの合わせ技。
- 演算子のオーバーロード:Cの頃から気に食わなかった機能だからなぁ…使いません。たぶん。
- プロパティのGetアクセサとSetアクセサに異なるアクセシビリティを設定できる。
ただしSet<Get。 - カスタムイベントアクセサ(Customキーワード):オリジナルイベントの生成
- パーシャルタイプ(Partialキーワード):クラス定義を複数のファイルにまたげる。
- アプリケーションレベルのイベント。
- 符号なしの型:UInt。
- 既定インスタンス:FormがVB6と同様に、インスタンス作成なしでの直呼び可能に。
- より高度なコンパイラ警告:ってことは、常にコンパイラからのチェックが入り続けて重くなるってことか。
- My.Settings:INI→レジストリ→app.config→My.Settings。
- エディット コンティニュの復活:キター!
- デバッガ データヒント:今まで参照できなかった変数の中身も見られるようになる。編集も可能。
- オートコレクト:エラーに対する修正候補の表示。
- イミディエイト ウィンドウの復活:キター!
- ハンドルされていない実行時例外へのサポート機能
- Windows フォームの拡張:スナップライン、埋め込み先プロパティ編集等。
- 新コントロール:ToolStrip、FlowLayoutPanel、TableLayoutPanel、ActiveDocumentHost、DataGridView等。
- データ操作関連機能の追加:またSQLServer/ADOメインなのかなぁ…私は、Oracle/ODPメインの業務が多いんですけど。
- Just My Code:ステップイン実行時に自動埋め込みコードはスキップ。
- ClickOnce:いまいちイメージが結べない。うまくすればかなりツカえるはずなので、きちんと評価しておきたい。
- BackgroundWorkerコンポーネント:非同期処理を簡単に実装。