Sugi@ぱぱんぶぃびぃ Blog

VBとかVB.NETとかVB2005とか・・・

AILight Banner
AILight Blog

プロフィール

Sugi@ぱぱんぶぃびぃ Blog

目次

Blog 利用状況

記事分類

過去の記事

タグ

2008年9月14日 #

My blog has been moved.

誠に勝手ながら(笑)、ブログを移転しました。
移転先は以下になります。

http://blogs.dandunite.com/sugishita

以前移行したフリーのサーバーより、社内のサーバーに移しました。

posted @ 14:20 | Comment (0)

2008年4月8日 #

VB9サンプル: LINQを使用したRSSの生成

サンプルというか、メモ書きに近いです。
VB9のXMLリテラルを使用して書くとどうなるのかなと思って作ってみました。
(日付に関しては、RFC822形式になっていません。)
データの最新10件を出力しています。
Using db As New TestDataContext()
    Dim topics As Table(Of Topics) = db.GetTable(Of Topics)()
    Dim rss = <?xml version="1.0"?>
              <rss version="2.0">
                  <channel>
                      <title>LINQでRSS</title>
                      <link>http://www.hoge.com/</link>
                      <description>LINQでテーブルのデータよりRSSを生成するサンプル</description>
                      <language>ja-JP</language>
                      <pubDate><%= topics.Max(Function(topic As Topics) topic.CreatedDate).ToUniversalTime() %></pubDate>
                  </channel>
                  <items>
                      <%= (From topic In topics _
                          Order By topic.CreatedDate Descending _
                          Select <item>
                                     <title><%= topic.Title %></title>
                                     <link>http://www.hoge.com/topic.aspx?id=<%= topic.Id %></link>
                                     <description><%= topic.Summary %></description>
                                     <pubDate><%= topic.CreatedDate.ToUniversalTime() %></pubDate>
                                     <guid>http://www.hoge.com/topic.aspx?id=<%= topic.Id %></guid>
                                 </item>).Take(10) %>
                  </items>
              </rss>
End Using
一応中でラムダ式なんかも使ってます。
「これぞVB9!」というコードですね。^^

posted @ 5:47 | Comment (0)

2008年3月28日 #

VB10?: プロパティの自動インプリメント

ひさしぶりの書き込みです。

巷では、ようやくVS2008の発売が開始されたようですが、
既に次期バージョンの情報がちらほらと出てきてるようです。

Paul Vick氏のブログによると、C#3.0で実装されたプロパティの自動インプリメント機能と同等の機能を
次期VBの言語機能として追加予定だとか。

たとえば、C#3.0だと、

 public int Hoge() { get; set; }

なんて記述を行うと、自動的にコンパイラがプロパティとしてインプリメントしてくれるってものですが、

これをVB10で、

 Public Property Hoge() As Integer

なんて記述できるようにしちゃうようです。

これで、ソースコードがかなりすっきりしそうですね。

また、C#3.0の機能とは違う点として、このプロパティの初期化を行うことも検討しているんだとか。

 Public Property Hoge() As Integer = 0

だとか、プロパティの型がクラスだったりしたら、

 Public Property Hoge As New HogeInfo()

なんて、書けるそうです。

これからもぼちぼちとVB10の情報が出てきそうで楽しみですね。

posted @ 12:37 | Comment (2)

2007年8月27日 #

VB9: 型推測

Visual Studio 2008 もベータ2が公開されたということで、次期 Visual Basic 9.0 の新機能をぼちぼちいじっていきたいと思います。

ただし、このエントリは Beta 2 時点のものですので、将来の製品版では仕様が変更される可能性が十分にありますので、あくまでもネタとして・・・。

ということで、初回は、型推測について。

VB9(VS2008)Beta2 では、型の推測機能が備わっています。

従来のコード

Dim testObject As New TestClass()

上記のコードは

Dim testObject As TestClass = New TestClass()

の省略形で、右辺の TestClass 型に定義されたオブジェクト変数に対して、
右辺に記述された TestClass の新規インスタンスが代入されています。
このコードをVB9では以下のように記述することが可能となっています。

Dim testObject = New TestClass()

上記コードでは、従来であれば、Object 型のオブジェクト変数に対して
右辺に記述された TestClass の新規インスタンスが代入されますが、
VB9では振る舞いが違い、コンパイラ(VB のコードパーサー?)が、
右辺の型を推測し、左辺の変数をしかるべき型に定義します。
この例の場合、左辺が返す TestClass 型のインスタンスより、
testObject を TestClass 型で定義します。

では、以下のコードではどうでしょう?

Dim testObject
testObject = New TestClass()

一見すると、初期化式が分割され、2行に渡るように記述し直したように
思えますが、このコードでは最初のステップで Object 型の変数 testObject を
定義し、TestClass の新規インスタンスを代入しており、最初のものとは
まったく振る舞いが違います。


この動作については、値型の変数にも同様に行われるようで、

Dim maybeInteger = 1I --- Integer 型

Dim maybeInteger = 1 \ 2 --- Integer 型

Dim maybeDouble = 1 / 2 --- Double 型

Dim integerValue As Integer = 1
Dim maybeInteger = integerValue --- Integer 型

Dim maybeInteger = ReturnInteger() --- Integer 型
Function ReturnInteger() As Integer
    Return 1I
End Function

のように、計算式、メソッド等も戻り値のデータ型を判断し、型を決定づけています。

もちろん、コード記述時のバックエンドコンパイラも同様の型推測を行いますので、
型が推測された変数に対しては、プロパティ等の参照も可能となるため、インテリセンスも
正常に動作します。

タイプ数を減らす点ではこの記述は有効ではあるのだけど、可視性/視認性のあるコードを
書くという点では、コードが複雑化すると間違いなく自分を見失う要因ではあるので、
あまりお勧めはできません。

この型推測について、C# 3.0 では、var キーワードを用いていますが、
VB では通常の変数定義と型推測を行う変数定義に同じ Dim キーワードを用いている点が
混乱の要因となるのかなという気がします。

しかしながら、自分は根っからの VB ユーザーであるということで、個人的には Dim キーワードを
用いた方が VB の言語仕様としてはなぜだかしっくりきてしまうのは私だけ・・・?

 

posted @ 19:37 | Comment (0)

Visual Basic 2005 Power Packs 2.0

VB Team Blog のリンクから辿った先よりダウンロードしたものでインストールしてみたけど、
なぜだか何度やってみてもエラーになる・・・。

以下URLよりダウンロードしたものなら正常にインストールできたので、とりあえずこちらから。
http://msdn2.microsoft.com/en-us/vbasic/bb735936.aspx

同じものだと思うんだけど・・・???。

で、今回はVB6のときにあった、Line, Shapeコントロールが追加になっているみたいです。

VS2008のBeta2では、PrintFormのみインストールされていたけど、RTMでは最新のPower Packsが
提供されるんでしょうかね。

posted @ 14:18 | Comment (1)

2007年7月2日 #

MSMVP再受賞

再受賞しました。

昨年はDNN関連のアクティビティの方が高くて、傍から見るとどちらかというとASP/ASP.NETでは?
といった感じ(自分自身もそう思ってたり)でしたが、まー、DNNはVB製のCMSってことでひとつ・・・。

今後1年は、DLR等VB環境もいろいろ動きが出てきそうなので、言語系のアクティビティを大幅に復活させていきたいなと。

ということで、関係者の皆様、また1年よろしくお願いします。

posted @ 11:46 | Comment (2)

2007年5月14日 #

DNN: Wikiモジュールのリリース

本家DotNetNuke.com より、ようやくWikiモジュールが正式版としてリリースされたようです。

とはいえ、KtomicsWWWiki に ASP.NET2.0対応を行ったもののようですから、大半の日本語リソースは、
私のWebサイトで公開しているものでいけるはずです。

また、日本語ページ名の問題も解消していませんので、使用する場合は、ソース版を入手し、
DNN: Ktomics WWWikiモジュールの日本語対応 をご参考に、ソースコードを修正後、
再ビルドしたものをご使用ください。

posted @ 15:58 | Comment (1)

2007年4月17日 #

DNN: DNNNite(OFF会)@Tokyo開催します。

久し振りの開催です。

日時:2007年4月25日(水) 19:00~(18:30会場)
場所:マイクロソフト新宿オフィス
http://www.microsoft.com/japan/presspass/MAP/shinjuku.aspx
参加費:無料

参加いただける方は以下URLより参加表明をください。
http://dotnetnuke.jp/tabid/263/forumid/24/threadid/1664/scope/posts/Default.aspx

今回は、Global SummitでShaun Walkerにお会いした話や、
最新版のDotNetNuke 4.5.1などのお話ができればと思っています。

posted @ 15:42 | Comment (0)

DNN: Ktomics WWWikiモジュールの日本語対応

覚え書きみたいなものですが、
DNNで使用できるオープンソースのWikiモジュール、Ktomics WWWikiですが、
日本語のページを使用する場合に、一部エンコードの問題点がありますので、
ソースコードを入手し、WWWikiDB.vb 内の以下の赤字部分を修正し、
ビルドしたアセンブリを再度インストールパッケージに含めてインストールをするとよいでしょう。

Public Shared Function EncodeTitle(ByVal val As String) As String
    Dim encoding As New System.Text.ASCIIEncoding
    Dim character As Char
    Dim returnval As String
    Dim encoded As Boolean
    For Each character In val.ToCharArray()
        Select Case character
            Case "+", "=", "~", "#", "%", "&", "*", "\", ":", """", "", ".", "?", "/", "-"
                returnval = returnval + "--" + Convert.ToByte(character).ToString() + "-"
            Case Else
                returnval = returnval + System.Web.HttpUtility.UrlEncode(character)
        End Select
    Next
    Return returnval
End Function

上記コード、Regexを使用すればもう少しスマートに書けるのに・・・。

ついでに、履歴等の表示で、姓と名の順序が逆なのが気になる方は、
インストールパッケージ内の01.00.04.SqlDataProvider中の各ストアドプロシージャを
編集しましょう。

なお、既に作成済みのWikiコンテンツに関しては、URLエンコーディングされていない状態で
データが格納されてしまっているので、データを修正する必要があります。

posted @ 11:09 | Comment (2)

2007年3月20日 #

DotNetNuke本家サイトに私の書籍紹介が!

Global Summitにて、Shaunさんにお会いし、書籍をプレゼントしたことは、
以前のブログで書きましたが、本家サイトでニュースとして取り上げていただきました。
http://www.dotnetnuke.com/About/NewsRoom/tabid/703/Default.aspx

その後、Shaunさんよりいただいたメール(内容についてはDNN Nite!あたりで報告します)や、
Leighさんのブログにも書かれているように、
今年12月には世界各国向けのコミュニティツアーを計画しているらしく、
今後コミュニティ向けのプログラムを強化していく模様。
http://www.dotnetnuke.com/Community/BlogsDotNetNuke/tabid/825/EntryID/1367/Default.aspx

 

posted @ 14:49 | Comment (1)

2007年3月19日 #

MVP Global Summit 2007 - Day 4 (Final)

えと・・・。最終日です。
最終日は、VBのアーキテクトである、Paul Vick氏のセッションがあり、
あんな話とか、こんな話とかがありました。(謎)

夜はシアトル某所にて、パーティが行われ、日本のMVPプログラムの方々と
大いに盛り上がりました。

ダウンタウンの夜景もサイコーでした。



しかし、毎回思うけど、アメリカのカニは味付けが濃い…。
やはり、越前ガニがサイコーです。(^^;

そんなこんなで、今回もあっという間に終了したGlobal Summitでしたが、
2度目の参加ということで前回以上に楽しめたと思います。
次回も参加できるのなら、今度は自力でアメリカ上陸を果たしたいと思っています。

お世話になった他のMVPのみなさん、MSJapanの方々、本社の方々、本当にありがとうございました。

まー内容はヒミツということで、変な参加レポートですが、そこはひとつご了承を。

posted @ 18:02 | Comment (0)

MVP Global Summit - Day 3

さて、すでに帰国してしまっているのですが、Day 3の模様を。
昨日のパーティでShaunに会って、自分の書籍をプレゼントしたわけですが、
本日、たまたまセッションの合間にまた会って、DNN4の書籍(もちろんサイン入り)をプレゼントしていただきました。

posted @ 17:47 | Comment (1)

2007年3月14日 #

MVP Global Summit 2007 - Day 2


さて、本日サミット初日(実はDay2だけど)。

今日は基調講演にビル・ゲイツが出演するということで、
会場入り口付近は多数のMVPが会場前からドアが開くのを待って集まっていた。

ようやくドアが開き、群衆の流れに身をまかせ、会場内へ入りました。
毎度のことながら、こっちのこの手のイベントの基調講演会場は派手です。
まるでライブ会場のように照明設備や音響設備が設置されています。

30分後(だったと思う)、ビルの基調講演がはじまったわけですが、
生ビルG、思ってた以上にでかいです。(背がね)

いつも同様、講演内容についてはNGなのでここでは語れません。あしからず。

その他、サミット会場内でお会いしたMVPの方々

1枚目は前回サミットで仲良くしてもらった、香港MVPのKen Linさん、
2枚目は同じく香港MVPのNori Chanさん。
今日は香港MVPの方々の輪に一人だけ混ぜてもらい昼食をとりました。
さてさて、3枚目。
DotNetNuke CorporationのCEO、Shaun Walker氏です。(河端さんといっしょにお話してきました。)
パーティ会場だったというのと、昨年よりははるかに上がったとはいえ、
まだまだ乏しい自分の英語力のため、あまり話せませんでしたが、
とりあえず自分の本をプレゼントしたところ、
他のDNN Teamの方も何人かいて、みんなに見ていただいて、喜んでいただきました。
これで顔つなぎもできたので、またこれからいろいろ楽しいことが起きると期待します。

そんなこんなで、初日はなんとか終了です。
明日からは早朝よりさらにDEEPな世界が待ってますのでこれにて。
(現在の現地時間:3月14日 午前2時58分)

posted @ 18:36 | Comment (2)

MVP Global Summit 2007 - Day 0-1


すでに日付が過ぎてますが、
やっと落ち着いて書ける状態になったので。

昨日よりシアトルにて
Microsoft MVP Global Summit 2007に参加しています。

この日は移動日だったので、特にセッションは無く、
レジストレーションと市内観光でした。

左の写真は初のSafeco Fieldです。
いろいろ中まで見て回れて、グラウンドにも行けたので、このアングルとってみました。
(個人的にとっても満足だったり)

ちょっとこっちは肌寒い感じです。
福井と同じような気候かも。

posted @ 18:19 | Comment (0)

2006年12月7日 #

DNN:DotNetNuke 3.xの終局

Shaun Walker氏のブログによると、今後リリースが予定されているDotNetNuke4.4.0では、パフォーマンス向上のためにコード面などざまざまな構造が見直される予定らしいが、これらの改善点については、3.xのバージョンへのフィードバックはされないらしい。

現在DotNetNukeのダウンロード数の85%が4.xとなっており、ユーザーの環境もほぼ4.xへと移行している状況であるということと、プロジェクトの生産性を考えると当然の決断だと言えると思う。

ただし、3.xが今後一切メンテナンスされないというわけではないらしく、現在のコードベースで大きな問題点が発生した場合はメンテナンスリリースは行うということらしい。

それよりも何よりも、今後登場する4.4.0のコードは現在リリースされている最新の4.3.7とは明らかにコードベースが異なるということなので、ローカライズ作業も相当難航すると思われ。
そろそろDotNetNuke.jpで本格的なローカライズプロジェクトを立ち上げて、体制を整えておかないといけないなと痛切に思ってみたり・・・。
(参加希望者いる?)

posted @ 20:50 | Comment (1)

DNN:DotNetNukeの日本語によるサイト内検索

昨日行った、DNNNite!Tokyoで満場一致(?)で日本語によるサイト内検索を日本語版独自の拡張として、
次回の日本語化モジュール(3.3.7、4.3.7)に追加することになりました。
(前回のDNNNite!Osakaで大阪の皆さんの意見も聞いとけばよかったと後悔しました・・・。ごめんなさい。)

まーまだとりあえずな方法でアレなんですが、詳細はDotNetNuke.jpでアナウンスします。

とりあえずご報告。

posted @ 16:01 | Comment (1)

2006年11月23日 #

DNN: Windows Vista (IIS 7.0)でDotNetNuke 4.xを使用する場合の注意点

Windows VistaがMSDNサイトで公開され、さっそくインストールしてみました。
とりあえず、DotNetNuke.jpの会長を務めている自分としては、
新バージョンのIIS 7.0でのDotNetNukeの動作には非常に興味がありました。

なんとか、一通りの開発環境を揃え終え、ようやくDotNetNukeのインストールに
こぎつけました。

インストールに関しては特に問題ありません。
最新のDotNetNuke 4.3.6も日本語化モジュール含め、問題無くインストールが
完了します。
1点だけ、IISマネージャで、Webサイトまたはアプリケーションの追加を行う際の
アプリケーションプールの選択で、既定のアプリケーションプールを使用する場合は、
「Classic .NET AppPool」を選択してください。

で、無事にインストールは完了するわけですが、あともう1点。(ここ重要
そのままでは、FreeTextBoxが動作しません。(というかテキストエディタ)
DotNetNuke.Services.Exceptions.ModuleLoadException:
Runat 属性には Server 値を指定しなければなりません。
とものすごい勢いで叱られるようです。

見た瞬間思い出しましたとも。「あーRemixのデモの時と同じ現象だ!」と・・・。
悔しいので調べましたとも。そして見つけましたとも。
HtmlEditorProviderにより提供されるテキストエディタコントロールをホストしている
ユーザーコントロール、\Controls\TextEditor.ascxのエンコードがビミョーなのね・・・。

以下、対処方法です。
メモ帳などのエディタでこのファイルを開き、9行目の以下の赤字の部分をきちんと
記述し直して、UTF-8で保存します。
  <td id="celTextEditor" Runat="Server">
簡単ですが、これだけです。
今のところその他の部分では、問題は出ていませんが、見つけ次第また報告します。

このファイルに関しては、4.3.6の日本語化モジュールのベータ2版より、
修正版を含めることにします。

2006/11/24追記:
Windows認証を使用している場合、新規データベースの作成時はコマンドラインツールや
SQL Server Mangement Studioを管理者モードで起動することをお忘れなく。

posted @ 2:31 | Comment (1)

2006年11月14日 #

DNN: DotNetNuke 3.3.6, 4.3.6 リリース間近!

ということで、現在ローカライズ作業中です。
次のDNNJPオフ会(東京・大阪)で見せられるかも。

DotNetNuke.jp での公開はもう少し先かな。

posted @ 18:39 | Comment (1)

2006年10月20日 #

本日発売!DotNetNuke Webサイト構築

ついに本日発売です。

よかったらお買い求めください。

【ドットネットヌーク Webサイト構築】

posted @ 20:17 | Comment (0)

イベント:REMIX Tokyo、OSC 2006 Tokyo/Fall に出展します。

REMIX Tokyo
日時:10月26日(木)10:30-20:00
会場:東京国際フォーラム

オープンソースカンファレンス 2006 Tokyo/Fall
日時:10月28日(土)10:00-17:00
会場:日本電子専門学校 7号館

よかったら、ご参加ください。

posted @ 20:15 | Comment (0)