ユーザコントロールとカスタムコントロールの違い?

前にも書きましたが、インフラジスティックスさんのNetAdvantageのライセンスを頂いたので、WPFとかSilverlightとかも勉強してみようかと。
VS2010を起動してプロジェクトテンプレートの一覧に
「WPF カスタム コントロール ライブラリ」と「WPF ユーザー コントロール ライブラリ」
ってありますが、使い分けがよくわかりません。
ネットを探してもあまり見つからなかったですし、たまたま購入していた「Silverlight リファレンスブック
」には
 ユーザコントロールもコントロールの一種なので、依存関係プロパティを作成して外部からプロパティを指定することができます。
 しかし、多くの場合、ユーザコントロールには非常に多くのUI要素が配置されるので、配置されているすべてのコントロールの
 プロパティを指定できるように、依存関係プロパティを用意して表示や動作を変更するような使い方には適していません。
 カスタムコントロールは、ユーザインターフェイスを作成する際の部品として機能と表示をカプセル化したコントロールです。
 カスタムコントロールでは、依存関係プロパティを用意して表示や動作を変更できるようにします。
と記載されていますが、いまいち明確な機能差がよくわかりません。
なので、大雑把に
 ・「WPF カスタムコントロール ライブラリ」は、画面上に配置する部品(子コントロール)を作成する際に使用する
 ・「WPF ユーザコントロール ライブラリ」は、業務システム構築時に画面構成を共通化するような場面(レベル)で使用する
と思ってみます。

こみゅぷらす Community Launch 2010

先週の土曜日に開催された「こみゅぷらす Community Launch 2010」に参加させてもらいました。
(そういえば、去年も参加していました)
東京方面の勉強会は半年ぶりぐらいでしたが、豪勢なスピーカーの方のありがたいお話が聞けたり、いろんな方と久しぶりにお会いでき、とっても有意義な一日でした。
有意義すぎて、やりたいことが増えて困ってしまいますが。(~_~;)
しかも、抽選会でインフラジスティックス・ジャパンさんの「NetAdvantage for Web Client」のライセンスが頂けるというとんでもないおみやげも頂きました。
終了時刻が18時ということもあり、懇親会にも参加したかったのですが・・・・・
会場に入った時に腰を捻ってしまい
、座り続けるのが難しかったので参加しませんでした。
(高校のときに腰を痛めてからたまにやってしまうのですが、久々にやっちゃいました。ほとんどご挨拶もできずじまいで申し訳ありません。)
ホテルに戻るときに薬局に立ち寄って、湿布購入→貼り付け。
移動手段が新幹線ではなく飛行機でよかったと。
しかし、最大の問題は、
「Web開発したことないのに、NetAdvantageもらっちゃった」
ことですね。せっかくもらえたのでいろいろ使ってみたいんですけど、ちゃんと使えるかな(-_-;)

TechEd2010参加申し込み開始

ついにTechEd2010の参加申し込みが開始されました。
今年はAttendePartyが復活するそうですが、3日間に短縮されたスケジュールですのでセッション数が減ってしますのでは??と思ってしまってます。
なんせ、今年は新製品ラッシュですから、ネタはたくさんありますし。
でも、おいしい料理と楽しいイベントがあるのはうれしいですね。
なんとしても、今年も参加せねば。
あ、今年のtwitterのハッシュタグは#techedjpだそうで。
すでにTechEd NA(北米)の情報が流れてます。
というか、去年はアンオフィシャルでしたっけ??

Visual Studio Team Explorer Everywhere 2010のライセンス

TFS2010環境を作ろうとしていたのですが、悲しい事実が・・・。
 
eclipseからTFS2010のサーバにアクセスする場合、「Visual Studio Team Explorer Everywhere 2010」が必要なのですが、
なんと、MSDNサブスクリプションで使用可能なのは、「Visual Studio Ultimate with MSDNサブスクリプション」のみ!

[追記 2012/04/04]
2011年8月にライセンス変更があり、TFS CALを持っていれば、Team Explorer Everywhereは無償で使用できるようになりました。さすがMSさん!

 
とりあえずは、英語版の90日評価版(
http://www.microsoft.com/downloads/details.aspx?FamilyID=af1f5168-c0f7-47c6-be7a-2a83a6c02e57&displaylang=en
)でがんばってみますけど・・・
 
 
マイクロソフトさん、MSDN with Professionalからでも使わせてください。(>_<)

りばてぃさんのTFS2010連載

@ITで、りばてぃさんのTFS2010入門連載の「第1回 Team Foundation Server 2010を導入しよう」が掲載されました。
すごくわかりやすいので、はじめて環境作成される方にはおすすめです。

VisualStudioソリューションファイルのコンテキストメニュー

会社のPCにVisualStudio2008とVisualStudio2010を入れていますが、今のところ問題なさそうです。
以前にVisualStudio2008で作成したプログラムを開こうとしたときに、普通はダブルクリックしてしまうのですが、何の気なしにソリューションファイルを右クリックしたところ、こんなメニューが表示されました。
「Microsoft Visual Studio Version Selector」って初めて見ました。
ちょっと選択してみましたが、、、、
何も表示されません。
と思ったら、
いきなりVisualStudio2008でソリューションファイルが開かれました。
これってすごく便利ですよ!!

仮想化関連イベント

5/21に開催された「事例で納得!Microsoft Solution Forum& Virtualization Summit 2010
」と、5/22に開催された.NET勉強会/ヒーロー島に参加させてもらいました。
マイクロソフトエバンジェリストの高添さんのセミナーを2日も聞けるというありがたい週末でした。
Hyper-Vはちょくちょく使っていましたが、App-V/VDI(Virtual Desktop Infrastructure
)をトータルで聞くことができ、今後外せないテクノロジーという感じを受けました。
仮想化だけでなく、ひそかにPowerPivotも「すごい!!」という感じでした。
また勉強しないといけないことが増えてしまった(~_~;)

VSからの印刷

ほかの人のソースをたまに見る(解析する)ことがあるのですが、わかりにくい(全体像が掴みにくい)ソースの時には迷わず印刷してしまいます。
(ecoしないといけないですよね。アナログ人間なもんで(~_~;))
VSから横に長い行があるソースを印刷すると、改行マークみたいな矢印を印刷してくれるんですね。
(右上の矢印がそうです)
見覚えがないので、VS2010で追加されたのかなと思いきや、VS2008でも矢印印刷されました。

VS2010の自動生成ソース

PowerShellの拡張コマンドレットを作成してみようとしているのですが、自動生成ソースが表示されたときになんとなく「なんか違う?」と思ってVS2008と比較してみたところ、やっぱり違ってました。
気がついたのは「Implements IDisposable」とした場合です。
ちょっと長いですが、ソースは以下の通り。
○VS2008 ——————————————————————————————-
Imports System.Management.Automation
Imports System.Diagnostics

<Cmdlet(VerbsLifecycle.Stop, "Hoge")> _
Public Class Hoge
    Inherits Cmdlet
    Implements IDisposable

    Protected Overrides Sub ProcessRecord()
        MyBase.ProcessRecord()
    End Sub
    Private disposedValue As Boolean = False        ‘ 重複する呼び出しを検出するには
    ‘ IDisposable
    Protected Overridable Sub Dispose(ByVal disposing As Boolean)
        If Not Me.disposedValue Then
            If disposing Then
                ‘ TODO: 他の状態を解放します (マネージ オブジェクト)。
            End If
            ‘ TODO: ユーザー独自の状態を解放します (アンマネージ オブジェクト)。
            ‘ TODO: 大きなフィールドを null に設定します。
        End If
        Me.disposedValue = True
    End Sub
#Region " IDisposable Support "
    ‘ このコードは、破棄可能なパターンを正しく実装できるように Visual Basic によって追加されました。
    Public Sub Dispose() Implements IDisposable.Dispose
        ‘ このコードを変更しないでください。クリーンアップ コードを上の Dispose(ByVal disposing As Boolean) に記述します。
        Dispose(True)
        GC.SuppressFinalize(Me)
    End Sub
#End Region
End Class
○VS2010 ——————————————————————————————-

Imports System.Management.Automation
Imports System.Diagnostics

<Cmdlet(VerbsLifecycle.Stop, "Hoge")>
Public Class Hoge
    Inherits Cmdlet
    Implements IDisposable
    Protected Overrides Sub ProcessRecord()
        MyBase.ProcessRecord()
    End Sub
#Region "IDisposable Support"
    Private disposedValue As Boolean ‘ 重複する呼び出しを検出するには
    ‘ IDisposable
    Protected Overridable Sub Dispose(ByVal disposing As Boolean)
        If Not Me.disposedValue Then
            If disposing Then
                ‘ TODO: マネージ状態を破棄します (マネージ オブジェクト)。
            End If
            ‘ TODO: アンマネージ リソース (アンマネージ オブジェクト) を解放し、下の Finalize() をオーバーライドします。
            ‘ TODO: 大きなフィールドを null に設定します。
        End If
        Me.disposedValue = True
    End Sub
    ‘ TODO: 上の Dispose(ByVal disposing As Boolean) にアンマネージ リソースを解放するコードがある場合にのみ、Finalize() をオーバーライドします。
    ‘Protected Overrides Sub Finalize()
    ‘    ‘ このコードを変更しないでください。クリーンアップ コードを上の Dispose(ByVal disposing As Boolean) に記述します。
    ‘    Dispose(False)
    ‘    MyBase.Finalize()
    ‘End Sub
    ‘ このコードは、破棄可能なパターンを正しく実装できるように Visual Basic によって追加されました。
    Public Sub Dispose() Implements IDisposable.Dispose
        ‘ このコードを変更しないでください。クリーンアップ コードを上の Dispose(ByVal disposing As Boolean) に記述します。
        Dispose(True)
        GC.SuppressFinalize(Me)
    End Sub
#End Region
End Class
Regionの範囲とかも変更されているのですが、大きな違いはアンマネージリソースを解放するためのロジック[Finalize()部分]がコメント状態で生成されること。
マネージリソースのみを使用する場合はこのままでよいですし、アンマネージリソースを使用するときにはコメント解除してリソース解放処理を追加するだけになるようです。
仕事でたまにWin32API関連の処理を書きます(.netではなくnative C++です(T_T))が、こんな処理を書こうとすると、前はMSDNのサンプルソースをコピーして使っていましたので、ちょっと嬉しい発見です。

VS2010 Download

今日からMSDNでVisual Studio 2010とかがDownloadできますね。
今日は早く帰る人多いのかな?
爆笑
え~、Vusla Studio 2008のアンインストールがとっても大変なんですけど。
あ、SideBySide OKだからアンインストールしなくてもいいんでしたっけ。
会社のPCを人柱にしてしまえ<`~´>