会社のPCにVisualStudio2008とVisualStudio2010を入れていますが、今のところ問題なさそうです。
VSからの印刷
VS2010の自動生成ソース
PowerShellの拡張コマンドレットを作成してみようとしているのですが、自動生成ソースが表示されたときになんとなく「なんか違う?」と思ってVS2008と比較してみたところ、やっぱり違ってました。
気がついたのは「Implements IDisposable」とした場合です。
ちょっと長いですが、ソースは以下の通り。
○VS2008 ——————————————————————————————-
Imports System.Management.Automation
Imports System.Diagnostics
Imports System.Diagnostics
<Cmdlet(VerbsLifecycle.Stop, "Hoge")> _
Public Class Hoge
Inherits Cmdlet
Implements IDisposable
Protected Overrides Sub ProcessRecord()
MyBase.ProcessRecord()
End Sub
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
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
‘ 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
‘ このコードは、破棄可能なパターンを正しく実装できるように 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
Public Class Hoge
Inherits Cmdlet
Implements IDisposable
Protected Overrides Sub ProcessRecord()
MyBase.ProcessRecord()
End Sub
MyBase.ProcessRecord()
End Sub
#Region "IDisposable Support"
Private disposedValue As Boolean ‘ 重複する呼び出しを検出するには
Private disposedValue As Boolean ‘ 重複する呼び出しを検出するには
‘ IDisposable
Protected Overridable Sub Dispose(ByVal disposing As Boolean)
If Not Me.disposedValue Then
If disposing Then
‘ TODO: マネージ状態を破棄します (マネージ オブジェクト)。
End If
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: 大きなフィールドを 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
‘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
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を人柱にしてしまえ<`~´>
Visual Studio 2010 発売日&価格
4/12にローンチされたのでMSDNを探していたんですが、日本語版はまだのようです。[2010/04/13 16:30時点]
<追加 Date=2010/04/13 19:20>
MSDN提供は4/20でした。
</追加>
正式な発売日と参考価格が掲載されていたのでメモ。
えっと、個人的にはTFS2010の価格が気になっていたのですが、
TFS2010 新規パッケージ:68,000円
はいい感じなのですが、
CALが68,000円(@_@;)
え~、ちょっと考えさせて下さい。(-_-;)