Visual Basic(.netも)と共に生きてきた約25年の振り返り その3
その3となります。年代が徐々に新しくなるかと思いきや、書き出してみると古いこともごっちゃになりますね。
VB と データアクセス
アプリケーション開発にデータベースは欠かせない存在です。そこでデータアクセスを行う必要ができてきます。インターネットも普及していない時代は、
クライアントサーバースタイル主体で、環境としてはデータベースとアプリケーションはほぼ直接対話しながら実行されていくアプリケーションと共に生活してきました。
VB5を触り始めた時は、当時の会社内で触れたデータアクセス方式は RDO という技術でデータアクセスを行なっていました。
ネットに資料があるのかな?とまたもや彷徨ってみると、
さすが翔泳社!2022年現在も情報が載っています。この記事を参照すると
・DAO(Data Access Object)
・RDO(Remote Data Object)
・ADO(ActiveX Data Objects)
とあり、RDOはODBCドライバがないと接続できないとありますね(知らなかった・・)。そもそも.NetFramework前のWindows環境では、利用するDBはSQLServer、またはOracle前提(同時利用しなければAccessMDBでも良いくらい・・そんな時代)で考えていると思われるので、ODBC専用でも全然問題ないのですね。
VB6でADOが主流となり、その後のADO.NET(Webを意識した、接続型、非接続型データベース)へと移り変わってきたと思います。
書いていて思い出しましたが、ADO.NETの非接続型データアクセスが実用に耐えられるようになったのは、WindowsXPなどのOSが、旧来のOSと比較して、コネクションプーリングに優れているため、いちいちデータベースとの接続や切断を繰り返さなくてよかった、という記憶もあります。今では考えられないですが、RDO,ADO当時のアプリとしては、DBへの接続、切断にものすごく処理時間がかかっていたと思います。
Windows 10 と UWP(ユニバーサルWindowsプラットフォーム)
さて、時代は Windows 10 が出現する頃まで飛びます。個人的には色んな意味で自身の中で外界から文化が飛び込んできた「きっかけ」となる出来事となります。
モバイルとPCの良いとこどりをしようとした結果、非常に扱いにくくなってしまった Windows 8 をうまいこと本来の姿に戻した?と勝手に思っている Windows 10 ですが、当時としては、モバイルアプリ開発としては、Andorid や iOs デバイスも使われ始めていました。
マイクロソフトとしては UWP というアプリケーション開発手法が提示され、Windows Formsからの脱却ができるのか?と期待したものでした。
UWPも@itに紹介記事が載っていますね。
携わった案件上、どうしてもUWPを利用しなければならない、という局面になり、実際に開発を行いましたが
・PCに保存されている ファイルアクセス することすら難しい
・ネット上にも情報量が少なく、提供されている機能が正常に動作しないことも
Bluetooth関連の機能制御を行うために、用意されたイベントやメソッドを利用したのですが、期待するイベントが発生しなかったり、意図しない動作をしたりと、ものすごく苦労した記憶があります。
結局、UWPアプリとして、過去のWindowsFormsとのアプリケーションとの連携が難しいという側面があり、結果、WinRTの機能を Windows Formsを経由して制御するといった形でしか決着をつけられなかったです。
Windows Phone や UWP のような思想は、コンセプトは良かったと思いますが、従来のアプリケーション開発者が追随できないような形になってしまった部分から、むしろWindows はデスクトップアプリケーションとよばれるPCベースのアプリケーションを利用するためのものとして住み分けされたと思います。また、ブラウザさえあればWebアプリケーションも利用できる存在として、今でもWindowsは企業では重宝されている存在なのだと思います。
そして、この辺りから、VB.net を使うことに抵抗感を感じるようになってきます。インターネット上でもサンプルコードに C# が利用されることが多くなり、明らかに VB.net の利用者が減ってきていることを感じました。そして、マイクロソフト自体が Visual Basic という言語に対して、発展よりも互換 という形(C# に注力する)にシフトしたんだなあと勝手に思っています。
そして・・
そして、Windows(.Net)の世界にもオープンソースの波がやってきます。.Net Frameworkから .Net Core へ。
VB.netについても・・
その4へ続きます。
Discussion