ページ

2004年8月31日火曜日

Microsoft .NET Framework 1.1 Service Pack 1

Microsoft .NET Framework 1.1 Service Pack 1 のダウンロードが始まったみたいです。


Microsoft .NET Framework 1.1 Service Pack 1 (日本語)
http://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=A8F5654F-088E-40B2-BBDB-A83353618B38


Microsoft .NET Framework 1.1 Service Pack 1 for Windows Server 2003 (日本語)
http://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=AE7EDEF7-2CB7-4864-8623-A1038563DF23


あと、Microsoft .NET Framework 1.0 Service Pack 3 もありました。ただ、こちらは今の時点ではリストに Japanese がありません(そのうち追加されると思いますけど)。
http://www.microsoft.com/downloads/details.aspx?FamilyId=6978D761-4A92-4106-A9BC-83E78D4ABC5B&displaylang=en

2004年8月30日月曜日

またまた Community Technology Preview が出る模様

Rick LaPlante's WebLog によると、VSLive Orlando (September 11-15) にあわせて次の VS 2005 Community Technology Preview が出る模様。んで、これには Team Fundation Server もついてて Team System が試せるようになる模様(けど、「クオリティはまだまだ」 とかわざわざ書いてあるので、そのつもりでさわる必要はあるんでしょうね)。


# Tech Ed 2004 Yokohama でも配ってくれたらいいのに。。。

2004年8月25日水曜日

mixi に参加。そして .Text の RSS を。。。

最近 mixi という日本語のソーシャル・ネットワークに参加しました。
(AILightの石野さんに誘っていただきました)


mixi の日記として外部の RSS を指定することができますが、なぜか .Text だとうまくいきません。どうやら RSS がまったく取り込まれていないように見えます。で、FAQ を見てみたらこんなことが書いてありました。



日時に関する表記が以下の形式になっている必要があります...
<dc:date>2004-01-01T12:34:56+09:00</dc:date>

反映されないケース
・<dc:date>以外のdateタグ
・日時、時間表記の形式が違う


って、ええ?!
.Text の日時の表記は "Wed, 25 Aug 2004 01:55:00 GMT" っていう形式です。
というか、そもそも .Text の RSS は 2.0 なので <pubDate> タグです。<dc:date> タグっていったら RSS 1.0 じゃないですか。うーむ、どうやら RSS 1.0 のみサポートですか。


そこで、とりあえず RSS 2.0 から 1.0 に変換する XSL を書いてみました。これで変換した RSS を mixi に指定してみたらそれなりに読み込んでくれるようです。それならということで、ASP.NET で RSS 2.0 →1.0 変換をするものを作ってみました。といっても、中身は XSL を使って transform してるだけなんですが。
あと、日時が "Wed, 25 Aug 2004 01:55:00 GMT" 形式だと mixi 上ではすべて "0月0日" になってしまいます。なので、これも "2004-08-25T01:55:00Z" 形式に変換するようにしました(といっても、これまた SelectNodes して DateTime.ToString("s") するだけですが。あと、面倒なのでとりあえず GMT にしちゃってます)。


ダウンロード: rss20to10.zip
中身は rss20to10.aspx と rss20to10.xsl の 2ファイルのみです。
これらを ASP.NET が動くフォルダに置いてください。
rss20to10.xsl は ASP.NET が読み取れる必要があります。
あとは、引数に "url=[2.0→1.0したいRSSのURL]" を与えて rss20to10.aspx にアクセスすれば OK です。
たとえば rss20to10.aspx を example.com に置いたとすると、



http://example.com/rss20to10.aspx?url=http://www.divakk.co.jp/blog/aoyagi/Rss.aspx


というような感じです。これを、mixi の 「RSSのURL」 に指定してやれば .Text の RSS でもちゃんと取り込んでくれるようになります。


ただ、ちょっと注意。
rss20to10.aspx は横着な実装なのでリクエストがあると毎回バカ正直に RSS を取得し、2.0→1.0 して返します。たとえば、If-Modified-Since なんかが役に立たなくなると思います。それと RSS には If-None-Match と ETag を使って変更がないときのサイズを減らすっていう仕組みがありますが、これもまったく処理してません。
けど、まぁ、mixi 相手のときくらいしか使い道はないだろうから、特に問題はないでしょ。


そもそも、mixi が RSS 2.0 をサポートしてくれればそれでいいんだし。
(実装すんのはそんなに難しい話とは思えないんだけどなぁ。なんでサポートしないんだろ?)

Xamlon v0.9 Beta 5 リリース

Xamlon の v0.9 Beta 5 がリリースされたそうです。
http://www.xamlon.com/


Xamlon っていうのは VS.NET 2003、.NET Framework 1.1 で XAML と同じことができちゃうというもの(らしい)です。


# まだダウンロードすらしてないんですけどね。自分への覚え書きとして書いときます。

2004年8月24日火曜日

.Text の RSS の時刻を修正しました

.Text も RSS の pubDate がバグってました。


たとえば日本時間の 15:00 にポストした記事の RSS の pubDate が

    <pubDate>Tue, 24 Aug 2004 15:00:00 GMT</pubDate>

なんてなっちゃってます。
時刻は日本時間なのに GMT で書いちゃってますね。


とりあえず、Dottext.Framework\Syndication\BaseRssWriter.cs の pubDate を書き込んでいるところを




// 元は entry.DateCreated.ToString("r") ですが、

// これを ToUniversalTime() で変換してから文字列化

// するようにします。

this.WriteElementString("pubDate",entry.DateCreated.ToUniversalTime().ToString("r"));


という感じにしました。
.Text では web.config にもタイムゾーンの設定がありますし、各ユーザ毎の設定にもタイムゾーンの項目があります。なので、ほんとうならそれらを参照すべきなんでしょうが、とりあえず横着して ToUniversalTime() とだけしています。私の環境だとサーバも日本時間なので問題ないですが、サーバのタイムゾーンが違う場合はもう一工夫必要ですね。
ちなみに、上記の 1ヶ所を修正すれば RSS と CommentRss の両方が直ります。

2004年8月9日月曜日

Power Collections.NET

.NET Framework 2.0 の Generics を使ってコレクション・アルゴリズムを Open Source で実装しようというプロジェクトです。


Power Collections.NET
http://www.wintellect.com/powercollections/


主に Peter Golde 氏が開発しているようですが、この方、元々は Microsoft の C# コンパイラチームの方のようです。


今までは、「作ってるよ」 というアナウンスと Peter Golde 氏の blog くらいしかなかったんですが、8/5 に届いた news letter に 「preview 版をリリースした」 とありました。(この news letter も上記のページから申し込めます)

2004年8月5日木曜日

MSN Web Messenger Beta

なんと、ブラウザ上で MSN Messenger ができるののベータが出てます。
http://webmessenger.msn.com/


ちょっと試してみましたが、とてもよくできています。日本語もとくに問題ありません。
まだどういう仕組みで動いているのかは調べてませんが、かなり興味あります。Applet や ActiveX コントロールは使わずに完全に HTML/HTTP だけで実現してるんでしょうか?

マイクロソフトが提供する blog - MSN Spaces

マイクロソフトが MSN ブランドで提供する無料の blog だそうです。
http://pcweb.mycom.co.jp/news/2004/08/04/001.html


# MSN Spaces よりも Object Spaces のほうが欲しかったりw

2004年8月3日火曜日

Visual Studio 2005 日本語ベータ 1

どこまで日本語化されてるのか、まだまったく確認してませんが、もう Visual Studio 2005 日本語ベータ1 の提供が開始されました。
http://www.microsoft.com/japan/msdn/vstudio/2005/beta/

2004年7月27日火曜日

SQL Server 2005 Beta 2 が MSDN Subscriber Downloads に

MSDN Subscriber Downloads で SQL Server 2005 Beta 2 がダウンロードできるようになってました。("Servers" の下です)
今の時点では、



  • Microsoft SQL Server Migration Test Toolkit version 1.5 (English)

  • SQL Server 2005 Developer Edition - 64 Bit Extended - Beta 2 (English)

  • SQL Server 2005 Developer Edition - 64 Bit Itanium - Beta 2 (English)

  • SQL Server 2005 Developer Edition Beta 2 (English)

  • SQL Server 2005 Express Beta 2 (English)

がダウンロードできるようです。

2004年7月16日金曜日

Cω

Microsoft Research から Cω (シー・オメガと読むらしい)の preview 版コンパイラがリリースされました。
ま、このこと自体はすでにいろいろなところで取り上げられてますね。
http://blogs.users.gr.jp/naka/archive/2004/07/15/3760.aspx
http://blogs.sqlpassj.org/yoneda/archive/2004/07/16/3380.aspx
とか。


Cω のまとめページはこちらみたいです。
http://research.microsoft.com/Comega/
これによると、どうやら Polyphonic C# と Xen(もとは X#)の両方を実装したコンパイラのようです。 


ダウンロードは http://research.microsoft.com/research/downloads/default.aspx の "Comega compiler preview" から行うことができます。


で、さっそくこの preview をダウンロードしてセットアップしてみました。
セットアップ後の様子を見てみると、



  • VS.NET 2003 に "Comega Projects" が追加される。(この PC には VS.NET 2002 も入ってますが、そちらには Cω プロジェクトは追加されませんでした。VS 2005 は入ってないのでわかりません)

  • Cω プロジェクトの拡張子は .cwproj。

  • Cω のソースの拡張子は .cw。

  • Cω のコマンドライン版のコンパイラは cwc.exe。

  • GAC に Cω のランタイムがいくつか追加される。

  • とりあえず、現時点では Cω の再配布用ランタイムは見当たらない。(なので、Cω なコードを実行するにはこの preview を入れておく必要があります)

  • この Cω は C# 2.0 コンパイラをベースにしているみたい。

こんな感じでした。
個人的には最後の項目が気になりました。Cω は C# にいくつかの機能を追加したものという位置付けのようです(今のところは)。となると、C# 1.x をベースにしているのか C# 2.0(Beta)をベースにしているのかで C# 自体の機能が違います。そこで、VS.NET 2003 の Cω プロジェクトで Generics や Anonymous Method を使ったコードがコンパイルできるのかどうか試してみました。試してみたのは以下のような単純なコードです。



using System;
 
public delegate void D<T>(T t);
 
public class A<T>
{
    private T val;
    
    public A(T t)
    {
        this.val = t;
    }
    
    public void Func(D<T> d)
    {
        d(this.val);
    }
}
 
public class Test {
    static void Main() {
        A<int> a = new A<int>(999);
        a.Func(delegate(int n) { Console.WriteLine(n.ToString()); });
    }
}


その結果、きちんとコンパイル・実行できました。なので、この Cω compiler preview は C# 2.0 をベースにしているようだ、と言えると思います。


で、よくよく考えてみたらこれってかなりうれしいかも。
この PC には、VS.NET 2002、2003 しか入ってませんし、当然 .NET Framework 自体も 1.0 と 1.1 しか入っていません。VS 2005 も .NET Framework 2.0 も入ってないんですよね。なのに Cω を使えば Generics や Anonymous Method が使えるようになっちゃいました。

TechED Yokohama 2004

9月 7日(火)~9月 10日(金)に開催される TechED Yokohama 2004 のリンクを追加してみました。


# 私も参加する予定

2004年7月7日水曜日

.NET Framework 2.0 の Stopwatch

plog-blog さんの小ネタに反応(^^;
http://s03.2log.net/home/nsharp/archives/blog44.html


.NET Framework 2.0 に追加されている System.Diagnostics.Stopwatch クラス ですが、ドキュメントにも書かれているように内部ではパフォーマンスカウンタ API を使っているようで、分解能が非常に高いです。
お試しあれ。

2004年7月2日金曜日

Visual Studio 2005 Beta 1 がほんとに来たー! (笑)

MSDN Subscriber Downloads に、



  • Amberpoint Express for Visual Studio 2005 Beta 1 (English)

  • MSDN Library for Visual Studio 2005 Beta 1 - CD1 (English)

  • MSDN Library for Visual Studio 2005 Beta 1 - CD2 (English)

  • MSDN Library for Visual Studio 2005 Beta 1 - CD3 (English)

  • Remote Debugger for Visual Studio 2005 Beta 1 (English)

  • Visio Tools for Visual Studio 2005 Beta 1 (English)

  • Visual Studio 2005 Enterprise Architect Beta 1 - CD1 (English)

  • Visual Studio 2005 Enterprise Architect Beta 1 - CD2 (English)

が上がってます。
(今回は DVD じゃなくて CD-ROM の ISO イメージなんですね)


ところで、Amberpoint Express for Visual Studio 2005 って何?


あと、各 Visual Studio 2005 Express も ISO イメージがダウンロードできるようになってます。

Visual Studio 2005 Beta 1 がもう来てたー!

http://lab.msdn.microsoft.com/vs2005/
こちらで Visual Studio 2005 Beta 1 がもうダウンロードできるようになっているようです。


MSDN Lab( http://lab.msdn.microsoft.com/ )も要チェックですね。
VS2005 Beta 1 のドキュメントも見れるようになってますし。







と思ったけど、来てなかったー!(笑)
よく見たら、MSDN Subscribers download から数日内にダウンロードできるようになるって書いてあります。
それと、数週間内に MSDN Subscribers には送るし、MSDN じゃない人もわずかな料金で Beta 1 を入手できるようにするって書いてありました。






(07/02 追記)
MSDN Subscriber downloads からダウンロードできるようになってました。

2004年6月29日火曜日

Visual Studio 2005 Express Beta も来てたー!

下で書いた URL からもリンクされてますが、Visual Studio 2005 Express Beta もアナウンスされてますね。
http://lab.msdn.microsoft.com/express/


「結局、Express Edition って何よ?」 というのは FAQ( http://lab.msdn.microsoft.com/express/faq/default.aspx )を見てみるとちょっとはわかるかも。
っていうか、わかったら教えてください(笑)


ホビーストとか学生とかが気軽に使えるようにした Edition、というのはわかるんですが、それで普通の VS 2005 とは何が違うの?というのがよくわかんない。
ただ、FAQ に "Are the Express Edition products free?" (Express Edition は無料なの?)なんて設問がありますね。それに対する答えは、「値段はまだ決まってないし、来年度まで発表する予定もない。とりあえず、Express Edition はローコストで、容易に入手できるようにするとは言うことはできる」 という感じですね。もし、WebMatrix のように無料ということになったらすごいと思うんですが、どうなるんでしょうね。

2004年6月28日月曜日

VS2005 Beta と Express

今週、開催される TechEd Europe で Visual Studio 2005 Beta がリリースされるっていうのが、ちょこちょこと記事になってきてますね。
http://www.eweek.com/article2/0,1759,1617344,00.asp


ただ、Express Edition というのもちょこちょこと見かけるんですが、いったいなんでしょう?上の eWeek.com の記事には



  • Visual Web Developer 2005 Express Edition (Web サイトや Web サービスを作るため)
  • Visual Basic 2005 Express Edition (プログラムを学ぶビギナー向け)
  • Visual C# 2005 Express Edition (学生やホビーデベロッパー向け)
  • Visual C++ 2005 Express Edition (  〃  )
  • Visual J# 2005 Express Edition (  〃  )
  • SQL Server 2005 Express Edition (学生やホビーデベロッパー向けの SQL Server 軽量バージョン)

なんてのがあがってます。
さて、いったい Express Edition ってなんなんでしょう?

2004年6月1日火曜日

VS 2005 CTP May 2004 に VSS 2005 (らしきもの) を発見。しかし、、、

VS 2005 CTP May 2004 をセットアップしたら "Program Files" に "Microsoft Visual SourceSafe" なんていうフォルダができてました。
中には、ssadmin.exe や ssexp.exe なんかが入ってます。これらのバージョン情報を見ると 8.0 になってます。しかも、このフォルダに "VSSWebService" なんていうフォルダまであります。


これってやっぱり VSS 2005 なんでしょうねぇ。
しかし、ssadmin.exe とかって起動もしないんですよ。ss.exe(VSS のコマンドライン版ツール)なんてアプリケーションエラーで落ちちゃうし。
そもそも、VSS のデータベース(CVS でいうリポジトリ)がどこにも見つかんないし。


皆さんのとこでは動きます?それとも、やっぱりまだ作ってる最中なんだろうか?

Visual Studio Team Foundation のサーバはまだない(泣)

Visual Studio 2005 Team System for Team Development にソースのバージョン管理、トラッキング、レポートなどをしてくれる Visual Studio Team Foundation というのが紹介されています。


VS 2005 CTP May 2004 を見ると 「Tools」-「Connect to Team Foundation Server...」 メニューなんていうのがあります。
「おぉ、で、その Team Foundation Server ってどこよ?」 となるんですが、ないんですね。


上記のページの下のほうに Newsgroup: microsoft.private.whidbey.teamsystem.teamfoundation へのリンクがありますが、ここを見てみたら 「Team Foundation のサーバコンポーネントは CTP には含まれてないし、ベータ1にも含まれない。今年の後半くらいになる」 なんてありました。残念。

VS 2005 CTP May 2004 の FxCop と Performance Tools

Visual Studio 2005 Team System for Developers からリンクされている Visual Studio 2005 Team System: Building Robust and Reliable Software の FxCop についてです。


もともと FxCop は、http://www.gotdotnet.com/team/fxcop/ にあったものなんですが、VS 2005 では統合されるということだそうです。
FxCop って何?という方のために一応書いておくと、「文法的にはあってるけど、直しといたほうがいいよ」 というところを指摘してくれるツールです。わかりやすいとこで言えば 「メソッド名は大文字で始まるべき」 とかそういうことです。


CTP May 2004 にもちゃんとプロジェクトのプロパティの 「Build」 に 「Run FxCop」 がありました。これをオンにしておけばビルド後に FxCop でチェックしてくれます。
また、同じくプロジェクトのプロパティに 「Rules」 があって FxCop でどのルールをチェックするかを設定できます。


といっても私自身くわしく FxCop を知ってるわけじゃないですし、「CTP May 2004」 でも動くよ、というだけです(^^;






上記と同じ  Visual Studio 2005 Team System: Building Robust and Reliable Software の後半にある Performance Tools についてです。


Performance Tools は 「どのメソッドか何回呼ばれたか。どれぐらいの時間が消費されたか」 を測定するツールです。


「Tools」-「Performance Tools」 メニューの 「Performance Wizard...」 あたりで適当に Performance Session を作ってやって、Performance Explorer の実行ボタンやコンテキストメニューで Lunch してやれば実行されてパフォーマンス情報が収集されます(単に F5 で実行したりしてもダメなようです)。
で、Lunch したあとに Performance Explorer で Reports を表示するといろいろな情報を見ることができます。


ただ、ちょっとよくわからないところもあります。
どうも、Performance Explorer のところで 「Instrumentation」 にしとくと Managed なレベルで情報が収集されるような感じです。「Sampling」 にしたままだと _memset やら 16進のアドレスやらで表示されます。一度 Sampling でレポートを表示すると Instrumentation に戻せなくなっちゃうような。ほんとは Instrumentation と Sampling を自由に切り替えて見方を変えられるってことなんじゃないのかなぁ?
まっ、CTP だし、「ベータを待て」 ってところでしょうか。

VS 2005 CTP May 2004 の Class Designer

Visual Studio 2005 Team System for Developers からリンクされている Visual Studio 2005 Class Designer です。


これ、いちおう CTP May 2004 でも動きます(みたいです)。
適当なプロジェクトを作って、Solution Explorer のところの Class View を開いて、適当なクラスを右クリック、「View in Diagram」 すると開くのが Class Designer みたいです。


Toolbox からクラスなんかを追加することはできますね。ただ、Class Details でメソッドとかを追加しようとしても文句を言われて追加できません。これって私のとこだけかなぁ?皆さんできます?既存のメソッドやフィールドの変更は問題なくできるんですが。


Class Designer 側で変更を行うとソースも同時に更新されます。
「Window」 メニューの 「New Vertical Tab Group」 すると縦分割複数のファイルを同時に見ることができます。この状態で片方にソース、片方に Class Designer を表示して、ソースを変更したり Class Designer で変更したりすると両方がちゃんと更新されます。よくできて増すねぇ。


コンテキストメニューにある 「Create Instance」 なんてのもかなりおもしろいです。
これを選ぶと変数名を聞かれて、その変数名のインスタンスが生成されます(さすがにこのときは後ろでコンパイルしているようですが)。このインスタンスに対してメソッドの実行とかができるんですよね。ソースにブレークポイントを仕掛けておけば、ちゃんとブレークします。
ということは、全体をビルドして実行しなくても、メソッド単位でデバッグできちゃったりするわけです。


もちろん、static なメソッドを実行する 「Invoke Static Method」 もあります。


注意
上記のようなことを試していたら何回か貼り付いたり、落ちちゃったりしました。試してみるときはそのおつもりで。

WebMatrixHosting Japan スタート

WebMatrixHosting の日本語版がスタートしました。
http://japan.webmatrixhosting.net/



  • サーバは Windows Server 2003、IIS 6.0、.NET Framework 1.0、1.1

  • ディスクスペースが 20M

  • SQL Server 2000 が 10M

  • SMTP もあり

こんな環境が無料で使用できるそうです。


また、WebMatrix 日本語版 もバージョン 0.6 ビルド 985 がリリースされています。






ちと、ググってみたらすでに WebMatrixHosting Japan のサインアップの手順をまとめてる方もいらっしゃいます。はやっ
http://www.geocities.jp/clay_do2000/ 


さらに、WebMatrixHosting Japan 上に .Text や BlogX を使った blog も発見。
http://ryon2.japan.webmatrixhosting.net/blogs/
(ここに列挙するのもなんなので、他の方のところは Ryon さんとこのリンクをご覧下さい)
ところで、.Text を動かすには IIS の拡張子マッピングを追加する必要があるんだけど(しない方法もあるみたいだけど)、その辺はどうやってるのかな?

2004年5月26日水曜日

よかった。Visual SourceSafe 2005 は提供されるんだ

Visual Studio 2005 Team System for Team Development のところなんかに 「Visual Studio Team Foundation ではソースコントロールやトラッキング、レポーティング、カスタムポリシーといった開発プロジェクトでの変更を効率的に管理するものが統合されて提供される」 なんてことが書かれていて、ここから Visual Studio 2005 Team System: Enterprise-Class Source Control and Work Item Tracking にリンクされています。


で、「Visual SourceSafe はどうなるの?」 というのが気になってました。
もちろん、Visual SourceSafe (以下 VSS と略) にこだわっているわけではないので Team Foundation でもいいっちゃいいんです。けど、わざわざ "Enterprise-Class" なんて銘打ってますし、ちらっと見てみたところ 「バックエンドに SQL Server を使う」 「500人くらいまでのプロジェクトをサポート」 なんてことが書かれています。確かに、これはこれですばらしいんだけど、小規模プロジェクトとか趣味プログラミングとか 「VSS みたいにセットアップすればすぐに使える、お気楽なバージョン管理システムはなくなっちゃうの?」 と。それが気になってたんです。
VS 2005 CTP March 2004 とかにも VSS 2004 とかの謎なバージョンが入ってたとは思いますが、VSS が今後どうなるのかというアナウンスは見たことがなかったので 「Team Foundation に取って代わられちゃって、VSS はなくなるっていうことだったら嫌だなぁ」 と。


けど、見つけました(今まで気付いてなかっただけかも知れませんが)。
Microsoft Visual SourceSafe Roadmap
ちゃんと VSS 2005 のことが書いてあります。
しかも、



  • Remote Web Access over HTTP : HTTP か HTTPS で Web Access できる世界中のどこからでも Visual Studio を使って VSS のデータベースに接続できる(VS 2005、IIS、ASP.NET が必要)。

なんて書いてあります(願わくば、VS 2005 を使わなくても VSS のクライアントで HTTP/HTTPS 経由の接続ができるといいんだけど)。
他にも



  • viewer、marge tool、editor などがプラグイン可能になる(サードパーティ製のツールを使うこともできるようになる)。

  • C#、VB.NET といった Managed Code で機能拡張をすることができるようになる。

  • OnBeforeCheckout、OnAfterCheckIn なんかのイベントが使えるようになる。たとえば、チェックインされたら自動ビルドを実行するなど。

  • Unicode、XML をサポート(今さらではあるけど)。

など。
うーん、こいつぁ、かなりうれしい。


もちろん、VSS 2005 は一人きりとか小規模なチーム向けで、それ以外か小規模でもきっちり管理したいときは Team Foundation ということだそうです(まっ、そりゃそうですね)。

2004年5月25日火曜日

C# 2.0 Specification が更新されているそうです

Eric Gunnerson 氏の blog で発見(Eric Gunnerson's C# Compendium)


http://msdn.microsoft.com/vcsharp/team/language/default.aspx にある "C# 2.0 Specification" が更新されているそうです。


24. Nullable type
int? という構文です。int? は Nullable<int> の省略表現です。...なんですが、どうやら (値型、参照型、enum型と同じように) Nullable型というのが増えると思ったほうがいいような感じです。
おぉ、24.3.6 に ?? 演算子なんてものを発見。a ?? b としたとき、a は参照型か Nullable型のみが許され、a が null の場合は b が返り、非 null の場合は a が返る、ということのようです。なるほど、これは結構便利かも。


以下は 25. Other Features の覚え書き。


25.1 Property accessor accessibility
プロパティの set、get それぞれ別々に protected とかが付けれるようになる。


25.2 Static classes
new できないクラス。当然、object 以外からは継承できず、すべてのメンバは static でなくてはいけない。


25.3 Namespace alias qualifiers
新しい namespace の指定方法。
  using A = System.IO;
だと A.Stream とやっても自動的に親も捜してしまうので曖昧になってしまうときがある。しかし、A::Stream とすると 「そこだけ」 の参照になる、ということ?


25.4 Extern aliases
これは 25.3 と似てるけど、さらにアセンブリを指定する方法。そのために extern alias なんて構文が増えてる。extern alias しておいて A::Hoge.Page のように指定。


25.5 Pragma directives
#pragma で warning が制御できるようになったって。


25.6 Conditional attribute classes
今までも ConditionalAttribute はあったけど、これを Attribute に適用できるようになるって。Conditional をつけてある Attribute は、その Attribute をつけている class をコンパイルするときに define されていれば Attribute が付加されるし、されていなければ付加されない。