Visual Studio 2010 および .NET Framework 4.0 のCTP リリース

投稿者: Tomotoshi Sugishita 2008年11月4日 23:10

先日のPDCで配布された、Visual Studio 2010 の VPC イメージが一般公開されているみたいです。

http://www.microsoft.com/downloads/details.aspx?FamilyId=922B4655-93D0-4476-BDA4-94CF5F8D4814&displaylang=en

VHDフォーマットによる提供なので Hyper-V にもマウントできますが、Hyper-V で使用する場合は、
下記の手順にてHALを再度検出させることで、統合サービスを使用できるようになります。

日本語環境として利用したい場合は、以下より MUI パックを入手してインストールすると良いでしょう。
Windows Server 2008 Multilingual User Interface Language Pcks
http://www.microsoft.com/downloads/details.aspx?FamilyID=e9f6f200-cfaf-4516-8e96-e4d4750397ff&DisplayLang=ja

仮想環境(CTP)を日本語にするとこんな感じ

自宅では、Hyper-V Server 2008 上に仮想化していますが、家中どの PC からもいつでも好きな時に評価作業を続行できるので、すごく便利です。

タグ: ,

Visual Basic | Visual Studio

VB10 の配列初期化子と型推論

投稿者: Tomotoshi Sugishita 2008年10月30日 3:00
blank_page

海の向こうでは、PDC2008 が開催中で、いろいろな話題が連日飛び込んできます。

Visual Studio 2010 のプレビュー版 (CTP) も公開され、次期 VB の言語仕様の変更点もいくつか見えてきたので、ご紹介したいと思います。

まずは、VS2008 で個人的に気になっていた、配列、コレクションの初期化子と型推論について確認してみました。

VB9(2008) では、以下のような式を記述すると、コンパイラにより v1 は Integer 型として型推論されます。

 

Dim v1 = 1

次に配列の場合ですが、VB8(2005) 以前のバージョンでは特定の型の配列の初期化を行う場合、

 

Dim v1() As Integer = New Integer() {1, 2, 3, 4, 5}

 

と記述していました。
このコードを VB9(2008) の型推論を期待し、

Dim v1() = {1, 2, 3, 4, 5}

このように記述した場合の v1 は Object 型の配列として扱われてしまいます。
どうやら VB9(2008) では、リテラル値や変数からの型推論はできても、配列の型推論はできないらしく、これは、

Dim v1() = New Integer() {1, 2, 3, 4, 5}

または

Dim v1 = New Integer() {1, 2, 3, 4, 5}

と記述する必要があります。
後者の方を見ると、配列の型推論もできているように思えるのですが、これは v1 に対し明示的に Integer 型の配列を代入しているので、単純な型の代入時と同じ解釈だと思います。
とりあえずはこの例のように型が決まった配列を扱う場合は、この仕様でも十分なのですが、匿名型の配列を初期化する場合にはこれが弊害となります。
匿名型の場合、当然型名を持たないのであえて書くならば、

Dim persons = New () { _
              New With {.ID = 1, .Name = "Person1"}, _
              New With {.ID = 2, .Name = "Person2"} _
             }

みたいな感じになるのでしょうか。
VB の場合、C 系言語のように配列とメソッドで使用する括弧が区別されていないので、コードパーサー上も複雑でしょうし、実際のコードを見る側としても何のこっちゃという感じですので、私の意見としては以下のような記述ができる方がより自然な形ではないのかなと思っていました。

Dim persons = { _
              New With {.ID = 1, .Name = "Person1"}, _
              New With {.ID = 2, .Name = "Person2"} _
             }

さてそこで VB10(2010) ですが、今のところは、私が期待していた仕様となっているようです。

Dim v1 = {1, 2, 3, 4, 5}

これと等価の C# のコードが

var v1 = new [] {1, 2, 3, 4, 5};

となるので、この部分の型推論については VB の方が一歩踏み込んだようなかたちになりますが、BASIC 言語の特性上せざるをえなかったということでしょうか。

ちなみに、配列の要素を複数の型でミックスした場合のルールが現行は C# と若干違うのですが、このあたりはまだ CTP なので、今後は統一していくのかもしれません。 (まぁ、普通こんなことはしないのでどうでもいいんだけど・・・。)

Dim v1 = {1I, 2L, 3D, 4.0F, 5.0R}   '(有効)Double 型の配列として解釈される

var v1 = {1, 2L, 3m, 4.0f, 5.0d}; //(無効)十進型と浮動小数点型は混在できない

最後に、さきほどの匿名型の配列の初期化コードですが、VB10(2010) では正式には以下のように

Dim persons = {
              New With {.ID = 1, .Name = "Person1"},
              New With {.ID = 2, .Name = "Person2"}
             }

なんと!VBからついに "_"(アンダースコア)が消えています!!
VB にはステップの終端文字(セミコロン)がないので、これ(コードのパース)の開発には VBTeam は相当苦労したんじゃないかなと。
限定条件があるとはいえ、これはかなりうれしいです。コードがかなり美しく見えます。つか、なにかとコードが書きやすいぞ!

それでは、今日はこんなところで。
こんなことを調べていたら、また夜中になってしまいました・・・。

また気づいたことがあったら書きます。

タグ: ,

Visual Basic | Visual Studio

先日開催のセミナーのレポートが公開

投稿者: Tomotoshi Sugishita 2008年10月11日 15:58

先日福井でFITEAが開催したイベント「Microsoft 最新技術最強セミナーin福井」のレポートページがアップされました。
http://fitea.org/?p=85

レポートを読んでいただければ、当日の盛り上がりがかなり伝わると思います。
当日のセッション資料のダウンロードもできますので、ご確認ください。

今回参加できなかった方、次回はぜひご参加ください。

タグ: , ,

Events | Visual Studio | Windows Server

Visual Studio 2008

投稿者: Tomotoshi Sugishita 2007年12月15日 23:22
プログラミングに関しては他の場所でかける場所をもっているだけに、あまり書こうとは思わなかったのだけど、まーRTM祭りってことでひとつ。

やっとMSDNサブスクライバダウンロードよりダウンロードが完了し、X61にインストールしているところです。

さてと、そろそろ SilverLight もまじめに取り組みますか。

http://silverlight.net/
今見たら、ShowCaseにけっこういっぱい増えてる。

とは別に。
今回から、.NET Frameworkに関しては、それぞれのバージョンを選択できるようになった。
ということは、従来のVS2005のプロジェクト等もそのままVS2008から開けるし、ビルドもできるのだ。
肝心なプロジェクトファイルに関しては・・・。
一応、VS2008のものはVS2005ではそのままは開けないみたい。
ためしにVS2005、VS2008のSLNファイルとVBPROJファイルを比較すると、若干の違いを発見。
適当に2005にあわせてファイルを編集してみたところ、特に問題なく開けるようです。
ただし、テストでは単純な構成のプロジェクトしか評価してませんので、もう少し複雑なプロジェクトではうまくいかないかもしれません。

タグ:

Visual Studio

杉下 朋年

Tomotoshi Sugishita
Tomotoshi Sugishita
< D&UNITE Co., Ltd. >

Microsoft MVP
Microsoft MVP for Development Platforms
- ASP/ASP.NET Jul.2009 - Jun.2011
Microsoft MVP for Development Tools
- Visual Basic Jul. 2004 - Jun. 2009

 

カレンダー

<<  9月 2010  >>
2930311234
567891011
12131415161718
19202122232425
262728293012
3456789

投稿一覧をカレンダーで表示