Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

Visual Basic 2019年の振り返り

More than 1 year has passed since last update.

はじめに

これは、Visual Basic Advent Calendar 2019の1日目の記事となります。

2019年の出来事

今年は 2019年4月2日 に「Visual Studio 2019」の正式版がリリースしました。これにより、「Visual Basic 2019」も同時リリースされたことになります。
これまでVisual Basicでは2003年からバージョンに年番号を付けていたのですが、リリースサイクルを短期化したのでC#同様に内部バージョンの「Visual Basic 16.0」というようになっていくことになります。
ただ、書籍などは以前とのからみで「Visual Basic 2019」というタイトルにしていくでしょう。

Microsoftの「The Visual Basic Team」のブログは残念ながら12/1時点で何も更新されていません。
https://devblogs.microsoft.com/vbteam/

Visual Basic 16.0 の新機能

Visual Basic 16.0 は、Visual Basic ランタイム (microsoft.visualbasic.dll) より多くの機能を .NET Core に多く提供することに重点を置いており、.NET Core に重点を置いた Visual Basic の最初のバージョンです。
https://docs.microsoft.com/ja-jp/dotnet/visual-basic/getting-started/whats-new#visual-basic-160

Visual Basic 16.0 以降では、コメントは、明示的な行継続の後と、スペースとその後にアンダースコアで始まる行のステートメント内でも使用できます。

VB16.0以降
Public Sub Main()
    cmd.CommandText = ' Comment is allowed here without _
    "SELECT * FROM Titles JOIN Publishers " _ ' This is a comment
    & "ON Publishers.PubId = Titles.PubID " _
 _ ' This is a comment on a line without code
    & "WHERE Publishers.State = 'CA'"
End Sub

VB言語の将来に関するMicrosoftのGitHubは以下のページとなります。

Visual Basic 16.1 と 16.2 では C# との相互運用性の改善と新機能の追加がされる予定でしたが、12/1時点で何もリリースされていません。

.NET Core 3.0

NET Core 3.0 が 9月23日 にリリースされ、Windows Forms や WPF アプリケーションがサポートされました。

.NET Core 4 は Framework 4.X と紛らわしいから欠番にして、次は「5」
徐々に .NET Core に一本化して、名前も「.NET」に
.NET Framework は 4.8 を最後のバージョンにすると明言
2020年11月に .NET 5 、以降毎年6, 7, 8, ...
https://ufcpp.net/blog/2019/5/build2019/

BlazorとXamarin Formsはサポート対象外

Blazorとは

Blazor フレームワークは Microsoft が主導で開発しているオープンソースの SPA(Single Page Webアプリケーションフレームワーク)です。SPA として有名なものに、Electron があります。Electron はJavascript がベースですが、Blazor は ASP.NET Core(C#)を用いてブラウザ上(WebAssembly)で動作させています。
Blazor とは「Rust で WebAssembly」、「C/C++ で WebAssembly」のように直接 WebAssembly という技術ではなく、WebAssembly で書かれた.NETのインタプリタ(CLI)がブラウザで動作する技術となります。そのため処理性能は少し期待できませんが、開発の利便性のメリットは享受できます。

Blazorは、通常の.NETアセンブリを実行するWebAssemblyベースの.NETランタイムで実行されます。したがって、VBを.NET標準ライブラリにコンパイルできる場合、Blazorアプリで動作するはずです。コンポーネントレンダリングロジックの作成に使用されるRazor構文(.cshtml)はC#ベースであり、これを変更する予定はありませんが、アプリロジックの残りのすべてはVBで記述できます。
VBをサポートする予定はありますか?

ちなみに Electron として「Electron.NET」があり、これは Electron を.NETに移植したものではなく、ASP.NET Core と Electron を組み合わせたものです。これなら、ASP.NET Core としてVB.NET が使用できそうです。

Xamarin Forms

Xamarin Forms とは、iOS, Android などのモバイル、タブレット、およびデスクトップ アプリを構築する .NET 開発者に、完全にクロスプラットフォームな UI ツールキットです。Android の API を C# から呼び出せるようにした「Xamarin.Android」、同じく iOS の API を C# から呼び出せるようにした「Xamarin.iOS」があります。

Xamarin.Forms での Visual Basic の使用にはもちろん制限事項がありますが使用はできます。

最後に

ITエンジニア側では正直 Visual Basic.NET の将来性はまったくもって期待できませんが、非ITエンジニアなら Excel の VBA や WSH(VBScrip) としては、まだまだ活躍はするでしょう。

社会人でプログラムを学ぼうとしている人が増えてきています。その人達が学んだプログラムを活用できるとしたら、Excel の VBA ですね。
ここ数年は働き方改革という政府のワードで、RPA導入がもてはやされてきています。RPAツールを使わなくても、既存の Excel の VBA を使用して効率化って何年も前からやってきているはずですが、属人的から解放されつつ、人材の環境が整い始めているということですかね。

yaju
静岡県島田市在住ののシニアSE(元Microsoft MVP 2010-2012)がコンピューター、機械学習、Unity、数学について考える。
http://yaju3d.hatenablog.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away