Visual Basic 2010 ExpressでCassandraを操作する 登録編
Visual C# 2010 ExpressからDebianで動いているCassandraに接続してみました。Visual C# 2010 ExpressでCassandraを操作する 登録編
Visual C# 2010 ExpressでCassandraを操作する 検索編
そういば、.Net Frameworkで動作するDLLに変換しているのだから
Visual Basic 2010でもプログラムが書けるのでは?
ということで、試してみました。
ライブラリの準備
提供されているライブラリはC#版なので、とりあえず
「Thrift.dll」と「cassandra.dll」をVisual C# 2010でビルドします。
Visual C# 2010 ExpressでThriftのライブラリをビルドする
Visual C# 2010 ExpressでCassandraのライブラリをビルドする
Visual Basicのプロジェクト作成
「CassandraSample」という名前でWindows フォームアプリケーションを作成します。
プロジェクト名を右クリックして[参照の追加]を選択します。
参照タブを表示し、C#でビルドした「Thrift.dll」と「cassandra.dll」を追加します。
サンプルソース
こんな感じです。
'Thrift
Imports Thrift
Imports Thrift.Transport
Imports Thrift.Protocol
Imports Thrift.Server
'Cassandra
Imports Apache.Cassandra
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim transport As TTransport = New TSocket("192.168.1.242", 9160)
Dim protocol As TProtocol = New TBinaryProtocol(transport)
Dim client As Cassandra.Client = New Cassandra.Client(protocol)
Try
transport.Open()
Dim utf8Encoding As System.Text.Encoding = New System.Text.UTF8Encoding
Dim timeStamp As Long = DateTime.Now.Millisecond
Dim nameColumnPath As New ColumnPath
nameColumnPath.Column_family = "Standard1"
nameColumnPath.Column = utf8Encoding.GetBytes(TextColumn.Text)
'キースペース名を指定
'画面上に入力されたキー名称
'上で作成したカラムパス
'画面上に入力された値
client.insert("Keyspace1",
TextKey.Text,
nameColumnPath,
utf8Encoding.GetBytes(TextValue.Text),
timeStamp,
ConsistencyLevel.ONE)
transport.Close()
MessageBox.Show("登録完了")
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub
End Class
C#のコードを参考に書いてます。
簡単に移植できました。
実行してみると・・・
cassandra-cliで確認するとちゃんと登録されています。
# bin/cassandra-cli --host localhost --port 9160
cassandra> get Keyspace1.Standard1['vb']['test']
=> (column=74657374, value=value, timestamp=63)
こんなに簡単にC#でビルドしたdllがVBから呼び出せるとは・・・
Visual Basic、かなり開発に使えるのでは?