2008年9月23日
2008年9月1日
毎月実施することは難しいですが、次の勉強会は11月15日に実施しようかと思っています。
意見交換などは、
こちらでお願いします。
現在、内容は全く未定なので、要望セッションなどお気軽に・・・
2008年8月30日
某部屋で燃えてしまいました。
とてもよくできていて、これは買いかなと・・・
次は負けないように練習しとかなきゃと。。。
Live Meshをインストールしてみた。
なんかいいねぇ。
今後に期待です。
2008年8月27日
コミュニティ ライトニングトークに登壇しました。
技術的な話ではなく、コミュニティに関しての話でしたが、
このような場で話せて大変よかったです。
ちょっと真面目に話しすぎたのが悔やまれます。
関係者・登壇者・参加された方々、ありがとうございました。
企画された原水さんのブログでも紹介されています。
2008年7月22日
急遽、3つ目のセッション(Silverlight系?)の都合が付かなくなりました。
どなたか、セッションを担当していただける方、いませんか?
不安な方は、私がサポートしますので、二人で行うのもありです。
「やってみようかな」という方、ご一報頂ければと思います。
2008年7月9日
2008年7月3日
Okayama
IT Engineers
Community
というコミュニティを立ち上げました。
http://oitec.vbstation.net/
興味にある方は、ぜひ、ユーザ登録してください。岡山県以外の方ももちろんOKです。
2008年6月26日
岡山の開発者のコミュニティを立ち上げたいので、良いサイト名はないかなぁと、みなさんに聞いてみる。
一応CMS立ち上げテストは行っているので、サイト名が決まれば、サブドメインを取得して、立ち上げる予定。
サイトの目的は、
1.意見交換
2.イベント告知・管理
3.コミュニケーションの場
がメインの目的です。
Okayama Developer Community(Communications、Circle)-->略してODC
Okayama Information Technology Community(Communications、Circle)-->略してOITC
Okayama Developer Exchange-->略してODE
などなど・・・
いい名前はないですかね~
2008年6月23日
仮想プリンタとして利用できる、
PDFCreatorを利用して、VBよりPDF出力しようとしているけど、
AutosaveFilenameオプションの設定は無効になるようですね。
出力完了後に、cOutputFilenameプロパティの値を利用すれば問題ないですけど、次バージョンでは
このあたりが改善されていればいいかなぁ。
2008年6月19日
場所の確保がこんなに難しいとは・・・
場所さえ決まれば、即決で開催決定なんですけどね。
セッション内容はどうにかなると思うし。
なお、勉強会開催に向けて、協力していただける方も募集中!
2008年4月8日
今年も、
Microsoft MVP for Visual Developer - Visual Basic
を頂けました。受賞できたのが不思議。
関係各位の方々、今年もよろしくです。
2008年3月25日
リリースされていましたね。
一番実装してほしかった、DataRepeater Control が実装されてました。
Visual Basic Power Packs 3.0
http://www.microsoft.com/downloads/details.aspx?FamilyId=371368A8-7FDC-441F-8E7D-FE78D96D4063&displaylang=en
細かく機能を確認していませんが、VB6時代のDataRepeaterと、ほぼ同じ
ことができそうです。本家サイトでTips公開しなければ・・・
2008年3月23日
勉強会が無事終了しました。
講師、実行の関係者の方々、ありがとうございました。
また、休日に参加して頂いた方、ありがとうございました。
参加された方々と名刺交換などができなかったのが残念。
参加された方、よろしきれば、連絡を・・・
次回の勉強会のこともありますので・・・
よろしくです。
2008年2月28日
このたび、岡山にてコミュニティ支援団体であるNPO法人アイネタ ジャパンと
マイクロソフトが共催で勉強会を開催します。
・日時 2008 年 3 月 22 日 (土) 13:00~18:30 (受付開始 12:30)
・会場 第一セントラルビル 3F 中ホール (岡山県岡山市) [詳細MAP]
岡山でのイベントは初めてなのですが、今後、定期的に行えるように
してく予定です。
詳細は、http://msevents.microsoft.com/CUI/EventDetail.aspx?culture=en-US&EventID=1032370662
2007年5月20日
5月19日に広島でCLTイベントがあり、「Vistaの音声合成・認識」とい内容で、3セッションのうちのひとつを担当しました。
なんとか無事にこなせたという感じです。時間は、10分オーバー。。。
デモも削ってしまったので、blogなどで、別途公開していく予定です。
関係者の方々、ご苦労さまでした。
2007年3月5日
Vistaの音声合成は標準では、Microsoft Annaなので日本語を認識しない・・・
なので、Office2003で提供されているKenjiを利用してみるとうまく日本語を話す。
これでマイクロソフトナレータも利用できますね。
ナレータを利用したいんでなくて、System.Speech名前空間を利用したプログラムで
遊びたかっただけなのだが、SpeakProgressイベントなどが日本語だとダメみたい。
SAPI5.3の情報も少ないし、Microsoft Anna以外の音声はいものか・・・("Takashi","Keiko"?)
2007年3月1日
2007年2月13日
TableAdapterでTransactionを行うには、TransactionScopeを利用するのが一番簡単だと思いますけど、みなさんはTableAdapterでTransactionを行うのをどのようにされていますか?
複数のTableAdapterにトランザクションを実装したりするのも・・・
以下のようなクラスを作ってテスト中・・・
Imports System.Data.SqlClient
Imports System.Reflection
''' <summary>
''' TableAdapterにトランザクション機能を実装するクラス
''' </summary>
''' <remarks>
''' 利用方法の例
''' Dim tat As New TableAdapterTransactor
''' Dim taData1 As New Data1TableAdapter
''' Dim taData2 As New Data2TableAdapter
'''
''' tat.AddTableAdapter(taData1)
''' tat.AddTableAdapter(taData2)
''' tat.BeginTransaction()
''' Try
''' taData1.Insert......
''' taData2.Insert......
''' tat.Commit()
''' Catch ex As Exception
''' tat.Rollback()
''' End Try
''' </remarks>
Public Class TableAdapterTransactor
Private _conn As SqlConnection = Nothing
Private _trans As SqlTransaction = Nothing
Private _tableAdapters As New List(Of Object)
#Region "Pプロシージャ - GetConnection [TableAdapterのConnectionを取得する]"
''' <summary>
''' TableAdapterのConnectionを取得する
''' </summary>
''' <param name="tableAdapter">TableAdapter</param>
''' <returns>取得したConnection</returns>
''' <remarks></remarks>
Private Function GetConnection(ByVal tableAdapter As Object) As SqlConnection
Dim type As Type = tableAdapter.GetType()
Dim connectionProperty As PropertyInfo = _
type.GetProperty("Connection", BindingFlags.NonPublic Or BindingFlags.Instance)
Dim connection As SqlConnection = _
CType(connectionProperty.GetValue(tableAdapter, Nothing), SqlConnection)
Return connection
End Function
#End Region
#Region "Pプロシージャ - SetConnection [TableAdapterのConnectionを設定する]"
''' <summary>
''' TableAdapterのConnectionを設定する
''' </summary>
''' <param name="tableAdapter">TableAdapter</param>
''' <param name="connection">Connection</param>
''' <remarks></remarks>
Private Sub SetConnection(ByVal tableAdapter As Object, ByVal connection As SqlConnection)
Dim type As Type = tableAdapter.GetType()
Dim connectionProperty As PropertyInfo = _
type.GetProperty("Connection", BindingFlags.NonPublic Or BindingFlags.Instance)
connectionProperty.SetValue(tableAdapter, connection, Nothing)
End Sub
#End Region
#Region "Pプロシージャ - GetAdapter [TableAdapterのDataAdapterを取得する]"
''' <summary>
''' TableAdapterのDataAdapterを取得する
''' </summary>
''' <param name="tableAdapter">TableAdapter</param>
''' <returns>取得したDataAdapter</returns>
''' <remarks></remarks>
Private Function GetAdapter(ByVal tableAdapter As Object) As SqlDataAdapter
Dim type As Type = tableAdapter.GetType()
Dim adapterProperty As PropertyInfo = _
type.GetProperty("_adapter", BindingFlags.NonPublic Or BindingFlags.Instance)
Dim adapter As SqlDataAdapter = _
CType(adapterProperty.GetValue(tableAdapter, Nothing), SqlDataAdapter)
Return adapter
End Function
#End Region
#Region "Pプロシージャ - SetAdapter [TableAdapterのDataAdapterを設定する]"
''' <summary>
''' TableAdapterのDataAdapterを設定する
''' </summary>
''' <param name="tableAdapter">TableAdapter</param>
''' <param name="adapter">DataAdapter</param>
''' <remarks></remarks>
Private Sub SetAdapter(ByVal tableAdapter As Object, ByVal adapter As SqlDataAdapter)
Dim type As Type = tableAdapter.GetType()
Dim adapterProperty As PropertyInfo = _
type.GetProperty("_adapter", BindingFlags.NonPublic Or BindingFlags.Instance)
adapterProperty.SetValue(tableAdapter, adapter, Nothing)
End Sub
#End Region
#Region "Pプロシージャ - InitAdapter [TableAdapterのInitAdapterメソッドを呼び出す]"
''' <summary>
''' TableAdapterのInitAdapterメソッドを呼び出す
''' </summary>
''' <param name="tableAdapter">TableAdapter</param>
''' <remarks>利用しない</remarks>
Private Sub InitAdapter(ByVal tableAdapter As Object)
Dim type As Type = tableAdapter.GetType()
Dim mi As MethodInfo = _
type.GetMethod("InitAdapter", BindingFlags.NonPublic Or BindingFlags.Instance)
mi.Invoke(tableAdapter, Nothing)
End Sub
#End Region
#Region "Pプロシージャ - InitCommandCollection [TableAdapterのInitCommandCollectionメソッドを呼び出す]"
''' <summary>
''' TableAdapterのInitCommandCollectionメソッドを呼び出す
''' </summary>
''' <param name="tableAdapter">TableAdapter</param>
''' <remarks>利用しない</remarks>
Private Sub InitCommandCollection(ByVal tableAdapter As Object)
Dim type As Type = tableAdapter.GetType()
Dim mi As MethodInfo = _
type.GetMethod("InitCommandCollection", BindingFlags.NonPublic Or BindingFlags.Instance)
mi.Invoke(tableAdapter, Nothing)
End Sub
#End Region
#Region "Pプロシージャ - SetTransactionCommands [TableAdapterのCommandCollectionのTransactionを設定する]"
''' <summary>
''' TableAdapterのCommandCollectionのTransactionを設定する
''' </summary>
''' <param name="tableAdapter">TableAdapter</param>
''' <param name="transaction">Transaction</param>
''' <remarks></remarks>
Private Sub SetTransactionCommands(ByVal tableAdapter As Object, ByVal transaction As SqlTransaction)
Dim type As Type = tableAdapter.GetType()
Dim commandsProperty As PropertyInfo = _
type.GetProperty("CommandCollection", BindingFlags.NonPublic Or BindingFlags.Instance)
Dim commands As SqlCommand() = _
CType(commandsProperty.GetValue(tableAdapter, Nothing), SqlCommand())
For Each command As SqlCommand In commands
command.Transaction = transaction
Next
Me.SetConnection(tableAdapter, transaction.Connection)
End Sub
#End Region
#Region "Pプロシージャ - SetTransactionAdapter [TableAdapterのDataAdapterのTransactionを設定する]"
''' <summary>
''' TableAdapterのDataAdapterのTransactionを設定する
''' </summary>
''' <param name="tableAdapter">TableAdapter</param>
''' <param name="transaction">Transaction</param>
''' <remarks></remarks>
Private Sub SetTransactionAdapter(ByVal tableAdapter As Object, ByVal transaction As SqlTransaction)
Dim adp As SqlDataAdapter = Me.GetAdapter(tableAdapter)
If adp.InsertCommand IsNot Nothing Then
adp.InsertCommand.Transaction = transaction
End If
If adp.DeleteCommand IsNot Nothing Then
adp.DeleteCommand.Transaction = transaction
End If
If adp.UpdateCommand IsNot Nothing Then
adp.UpdateCommand.Transaction = transaction
End If
Me.SetAdapter(tableAdapter, adp)
'Me.InitCommandCollection(tableAdapter)
End Sub
#End Region
#Region "メソッド - AddTableAdapter [TableAdapterを追加する]"
''' <summary>
''' TableAdapterを追加する
''' </summary>
''' <param name="tableAdapter">TableAdapter</param>
''' <remarks></remarks>
Public Sub AddTableAdapter(ByVal tableAdapter As Object)
Me._tableAdapters.Add(tableAdapter)
End Sub
#End Region
#Region "メソッド - BeginTransaction [トランザクションを開始する]"
''' <summary>
''' トランザクションを開始する
''' </summary>
''' <remarks>開始する前に、AddTableAdapterメソッドで対象となるTableAdapterを追加すること</remarks>
Public Sub BeginTransaction()
Dim counter As Integer = 0
For Each adapter As Object In Me._tableAdapters
counter += 1
If counter = 1 Then
Me._conn = Me.GetConnection(adapter)
If Me._conn.State <> ConnectionState.Open Then
Me._conn.Open()
End If
Me._trans = Me._conn.BeginTransaction()
End If
Me.SetConnection(adapter, Me._conn)
Me.SetTransactionAdapter(adapter, Me._trans)
Me.SetTransactionCommands(adapter, Me._trans)
Next
End Sub
''' <summary>
''' トランザクションを開始する
''' </summary>
''' <param name="conn">コネクション</param>
''' <remarks></remarks>
Public Sub BeginTransaction(ByVal conn As SqlConnection)
Me._conn = conn
If Me._conn.State <> ConnectionState.Open Then
Me._conn.Open()
End If
Me._trans = Me._conn.BeginTransaction()
For Each adapter As Object In Me._tableAdapters
Me.SetConnection(adapter, Me._conn)
Me.SetTransactionAdapter(adapter, Me._trans)
Me.SetTransactionCommands(adapter, Me._trans)
Next
End Sub
''' <summary>
''' トランザクションを開始する
''' </summary>
''' <param name="trans">トランザクション</param>
''' <remarks></remarks>
Public Sub BeginTransaction(ByVal trans As SqlTransaction)
Me._conn = trans.Connection
Me._trans = trans
For Each adapter As Object In Me._tableAdapters
Me.SetConnection(adapter, Me._conn)
Me.SetTransactionAdapter(adapter, Me._trans)
Me.SetTransactionCommands(adapter, Me._trans)
Next
End Sub
#End Region
#Region "メソッド - Commit [トランザクションをコミットする]"
''' <summary>
''' トランザクションをコミットする
''' </summary>
''' <remarks></remarks>
Public Sub Commit()
Try
Me._trans.Commit()
Catch ex As Exception
Me._trans.Rollback()
Throw ex
Finally
If (Me._conn.State = ConnectionState.Open) Then
Me._conn.Close()
End If
End Try
End Sub
#End Region
#Region "メソッド - Rollback [トランザクションをロールバックする]"
''' <summary>
''' トランザクションをロールバックする
''' </summary>
''' <remarks></remarks>
Public Sub Rollback()
Me._trans.Rollback()
If (Me._conn.State = ConnectionState.Open) Then
Me._conn.Close()
End If
End Sub
#End Region
End Class
2007年1月19日
Visual Basic 2005 Power Packs便利なものがあったんですね。
・
Microsoft Printer Compatibility Library 1.0・Microsoft Interop Forms Toolkit 1.0
・Microsoft PrintForm Component 1.0
VB6時代の資産に
Printerオブジェクトでゴリゴリ書いて印刷していたものを、.NETへ移行するのは大変だけど、
Microsoft Printer Compatibility Library 1.0 を入れれば、幸せになれそうですね。
今後も便利なツールが提供されそうなので、要チェックですね。
2007年1月10日
2007年中には、岡山県内で勉強会を開催したいと思っています。
勉強会開催にこぎつけるため、まずは、
アンケートを取りたいと思います。
アンケートにご協力お願い致します。
勉強会へ参加していただくターゲットはVB開発者の方々と考えております。
他に講師など協力していただける方がいれば、ターゲット層も広まるんですが・・・
勉強会開催に協力していただける方がいれば、ご連絡頂ければと思います。
2006年10月24日
2006年10月12日
VSでXAMLにて記述する時に、インテリセンスに表示されない・・・
まぁ、表示時に下波線で警告されるけど、コンパイルできるんで問題ないんですけどね。
最新のCTPで改善されてると期待してたんですけどね。Ciderの起動が早くなったような。
コントロール配置後にコード内にイベントを記述する時に、配置されたコントロールが反映されていない。。。
一度コンパイルする必要があるのか?
2006年10月3日
2006年9月25日
色々調べてたら、フィルタがかかっている模様。。。
フレッツ&ぷららという組み合わせなので、知らない所にフィルタ機能があった。
たぶんこれらが原因なので、Live Meetingの仮アカウントで試してみようと思う。
これで駄目なら・・・どうしよう。
フィルタがかかっている事をすっかり忘れてた私。。。orz
PS:アドバイス頂いた方々、ありがとうございました。
メッセで途中落ちてしまい、申し訳ありませんでした。(設定を色々していたら落ちてしまい復旧してません)<中さん