VB研公開ゼミ議事録

第2回 私はコレで、VB 6を卒業しました

デジタルアドバンテージ 遠藤 孝信
2006/12/09
Page1 Page2 Page3

コンビニ的に便利なMy機能

【尾崎】 ファイルを読むクラスといえば、実際には「System.IO名前空間」の配下にあるのですが、この「System.IO」というのはいまひとつだなと思います。ファイルにアクセスしようとしているのに、「IO」の下を探さなければならないのは、いつも何か違和感があります。一般的な「I/O」というのは、もっと適用範囲が広いじゃないですか。

【八巻】 そんなときはやはり「My機能」でしょうか。

【小川】 My機能はVisual Basic 2005の新機能ですが、簡単にいうとどういうものですか?

【山崎】 よく使う機能に「My.」ですぐにアクセスできます。例えばユーザー情報なら「My.User」でアクセスできたり、「My.Computer」を使えば、そのコンピュータに備わっているオーディオやネットワークをすぐに操作できたりと、とても分かりやすく、使いたいものがすぐに手に入る便利な機能です。

【小川】 ということは、.NET Frameworkのクラス・ライブラリの構成を度外視したような世界が用意されているということですね。

【鈴木】 クラス・ライブラリ全体をデパートに、その商品をクラスに例えると、My機能は各フロアの人気商品だけを1カ所に集めてきたという感じですね。

【山崎】 うちのマンションの下にはジャスコがあり、食品売り場がすごく広いのですが、入り口のすぐ脇には、よく売れる品物だけを集めたコンビニのようなスペースがあり、急いでいるときにはそこだけで済ませることができます。そういうイメージですね。

【尾崎】 先ほどの「System.IO名前空間の配下のクラス」がMy機能では分かりやすく再構成されていますよね。例えばファイルを読み込むという処理であれば、

My.Computer.FileSystem.ReadAllText("ファイル名")

と書くことができます。これは、この(私の)コンピュータのファイルシステムの機能だとすぐに分かります。

【小川】 OOPの概念からは少し外れているような感じも受けますが、この機能はどんどん使ってしまってもよいのでしょうか?

【山崎】 私は大好きです!

【鈴木】 ぜひ使ってください(笑)。実はマイクロソフト社内にも、C#で書いているのに「My機能を使いたいよねぇ」という人はよく見掛けます。それをベースにクラス・ライブラリなどを作るとなると話は変わってくるかもしれませんが、完結しているアプリケーションで使うなら、どんどん使ってもよいと思います。

【小川】 そうすると、VB 6から.NETにステップアップするのにOOPが大変だと感じている人にとっては、その間にある中2階のような状態として、My機能をどんどん使うという手はありますね。

【鈴木】 そのとおりです。ちょっと乱暴ないい方ですが、VB 2005では取りあえず「My」と「Me」だけを理解していればよいという話もあります(笑)。

アプリケーション・モデルの違い

【小川】 言語やクラス・ライブラリ、オブジェクト指向といったこと以外にハードルとなるようなことはほかにもありますか?

【八巻】 私が思うに、言語やOOPの問題は比較的低いハードルだと思います。それよりも、もっと高いハードルが.NET Frameworkにあると思います。実際の開発では言語をマスターしていればそれでOKというわけではありません。「.NETがどのように動いているか」「作ったものを実際に動作させるにはどのように配置するのか」「そのときに何が必要になって、どういう仕組みで動作するのか」などを理解しているかどうかで、プログラム開発の容易さが変わってきます。開発作業の一連の流れの中には、覚えなくてはいけないものはたくさんあります。

 例えば、業務アプリケーションの開発者にとって一番重要なポイントとしてデータ・アクセスがあります。.NETになって、ADOがADO.NETに変わり、まるっきり仕組みが変わっています。でも、それは言語の仕様が変わったからなどではなく、データ・アクセスの概念自体が大きく変更されたためです。そういったことを知らなくては、.NETでアプリケーションは作れませんね。

【鈴木】 データ・アクセスについては「なぜこんなに変えてしまったんだ?」とよくいわれるので、ちょっとだけいい訳させてください。これは簡単にいうと、その時代時代に合ったデータ・アクセス方法を常に模索しているということです。

 例えば、ADOを使っていたころは、イントラネット内でデータベースに直接アクセスしてリアルタイムに更新するようなアプリケーションを皆さん作られていたと思います。しかしその後インターネットが爆発的に普及して、サーバあるいはクライアントの応答がいつ返ってくるか分からないといった環境に対応したWebベースのデータベース・アプリケーションなども必要になってきました。

 そういったネットワーク環境の違いによらず、同じモデルでアプリケーションを作っていけるデータ・アクセス方法があれば便利ですが、それがまさにADO.NETです。

 逆にいうと、インターネットだからこう作る、イントラネットだからこう作る、回線が細いからこんなやり方をしなければならない、太いから直接アクセスしても大丈夫だろう、といった状況をなくすためにはADOではダメだったということです。

 これはADO.NETに限らず、.NET Frameworkを最初にデザインしたときに、XMLにネイティブに対応したということも同様です。その時代のテクノロジ、そして近い将来に使われるであろうテクノロジを見据えて、マイクロソフトは設計を行っているわけです。

【小川】 .NET時代のアプリケーション開発では、コードの移行が大変だという問題もあるが、そもそもモデルが大幅に違っている部分が少なくないので、それらを勉強しなくてはいけないということですね。

【鈴木】 同じことをするのに、どうしてまた勉強しなくてはいけないんだろうと思われるかもしれませんが、やはりアプリケーションのスタイルや、それを取り巻く環境は変化し続けています。少なくとも10年のスパンで見ると絶対に変わるものです。それに対しては新しい手法で対応していくべきでしょう。とすると、やはり勉強し続けなければならないのかなと思います。

【小川】 では勉強していくとして、効率のよい勉強方法というものはありますか。

【山崎】 マイクロソフトさんのパートナー企業向けですが、マイクロソフトさんはmstep(エムステップ)という無償のトレーニングを毎日のように日本全国で開催しています。可能であれば、こうしたサービスを活用するのがよいと思います。

【小川】 mstepはパートナーさん向けですが、登録すると誰でも受講できるみたいですね。これは1日で終了するトレーニングですか?

【山崎】 基本的には、無償のコースは、実機での実習は伴わないセミナー形式のみの1日コースになっています。さらに実習付きで学習したいということであれば、有料のコース・トレーニングを受講できます。弊社(NECラーニング)でもさまざまなコースを提供していますので、ぜひ利用していただければと思います。

【小川】 例えばどういったコースがあるのですか?

【山崎】 mstepの無償のコースでは、.NETプログラミングだけで何十種類もあります。もちろん移行についてのコースもあります。mstepでは1日ですが、弊社のコースでは2日間コースや5日間コースがあり、移行に特化してみっちりとトレーニングを受けることもできます。長い間1人でもんもんと移行について考えるくらいなら、いっそこうしたトレーニングを受けて、数日間で集中的に勉強してしまうのは手っ取り早くて無駄がないと思います。

最後にひと言

【小川】 それでは最後に何かひと言ずつお願いできますか。私の印象では、やはりいままで作ってきたものをどうにか流用したいと思うのが人情だと思いますが、現実的には難しそうだということが分かりました。移行ツールはあるものの、諸事情から現実の活用は困難で、へたをするとかえって手間取ってしまうようです。

 いまあるものはそれはそれとして、どうやらリセットボタンを1度押す必要があるのかもしれないと思いました。まずは一番身近なMy機能からスタートし、徐々にクラスやOOP的なことに触れていくというのがいいようです。OOPについてもあまり過大評価せず、なるべく意識せずに、まずは触ってみようということですね。

【八巻】 そうですね。どうも多くの方がVB 6からVB.NETへの変化を過大評価しており、実際よりも難しいと考えているようです。しかしそんなことはありません。ぜひ一度触ってみてください。そうするとその考え方の8割は誤解であったと分かると思います。

【尾崎】 Visual Studio 2005を立ち上げて、Windowsフォーム・アプリケーションを作成してみると、VB 6とまったく同じように触ることができると思います。繰り返しになりますが、まずやってみること、まずVisual Studio 2005を起動してみることですね。

【鈴木】 Visual Studio 2005からはExpress Editionという無償バージョンを提供しています。この中には、VBでWindowsアプリケーションを作成できる「Visual Basic 2005」と、Webアプリケーションを開発できる「Visual Web Developer 2005」があります。ぜひそちらをダウンロードして使っていただきたいです。始めるに当たってお金は1円もかかりません。

【山崎】 恐らく、やったことがない人ほどVB 6とVB.NETの違いを大きいものだと思っているのではないでしょうか。私たちが口々に「違わない、違わない」といっていたのは、別に皆さんに無理な暗示をかけようとしているのではなく、本当に違わないからです。

 しかし統合環境やエディタの支援機能は大きく違っています。VB 6のころとは比べものにならないくらいVisual Studio 2005はとにかく便利になっています。実際に使っていただき、そのよさが分かれば、VB 6とVB.NETの違いなど大したことではないと実感してもらえると思います。

【小川】 皆さん、ありがとうございました。End of Article


 INDEX
  VB研公開ゼミ議事録
  第2回 私はコレで、VB 6を卒業しました
    1.アップグレード・ウィザードはやはり使えない?! 移行せずに新規作成すべきか?
    2.オブジェクト指向プログラミング/膨大な.NETのクラス・ライブラリ
  3.コンビニ的に便利なMy機能/アプリケーション・モデルの違い
 
インデックス・ページヘ  「VB研公開ゼミ議事録」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)
- PR -

注目のテーマ

業務アプリInsider 記事ランキング

本日 月間
ソリューションFLASH