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 フォームアプリケーションを作成します。
08_001_20100531001117.png


プロジェクト名を右クリックして[参照の追加]を選択します。
08_002.png


参照タブを表示し、C#でビルドした「Thrift.dll」と「cassandra.dll」を追加します。
08_003.png




サンプルソース



こんな感じです。


'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#のコードを参考に書いてます。
簡単に移植できました。



実行してみると・・・

08_004.png



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、かなり開発に使えるのでは?







関連記事

コメント

非公開コメント

プロフィール

Author:symfo
blog形式だと探しにくいので、まとめサイト作成中です。
Symfoware まとめ

PR




検索フォーム

月別アーカイブ