VB6のWEB化 -さまざまなマイグレーションを提案するモダナイズサービス-

VB6/PowerBuilder/Delphi で開発されたアプリケーションをWebアプリケーション化

Web化によるメリットを最大限に!

Webアプリケーションは一般的にクライアント・サーバー型のアプリケーションに比べて下記の点で有利と言われています。

  • クライアント端末を選ばない
  • いつでもどこでも利用できる
  • 開発コストを抑えられる
  • 運用、メンテナンスが容易
  • エンジニアの確保が容易

ASP.NET Core Blazor Server アーキテクチャを採用したWebアプリケーション化

Microsoft 社が開発している ASP.NET Core Blazor Server アーキテクチャを採用することで .NET との親和性、Visual Studio をはじめとした Microsoft 社のツール群を利用した開発の効率化を実現します。

クライアントサーバー型のプログラムのロジックや画面情報を変換してWebアプリ化するのでスクラッチでWebアプリを開発するよりも開発工数を大幅に抑えることが可能です。

Web化に使用する主要テクノロジー

ASP.NET core Blazor アーキテクチャー

Blazor

  • JavaScriptの代わりに C# を使用して Web UI を構築するためのフレームワーク
  • .NET で実装されたサーバー側とクライアント側のロジックを共有可能

Blazor Server

  • ASP.NET Core アプリでサーバー上の Razor Components をホストするためのサポートを提供
  • UI の更新は SignalR 接続を介して処理 (WebSockets 等による常時接続を要する)

Razer Component

  • Razor マークアップ構文で記述されたコンポーネント (C# と HTML を混在させて記述が可能)
  • Visual Studio の Razor サポートを利用し効率的な開発が可能
  • 柔軟な UI ロジック、イベントの実装、また再利用が可能

変換イメージ

Blazorを使用したWEB化の変換イメージ

ASP.NET Core Blazor Serverを採用する理由

  • .NET との親和性、また Visual Studio をはじめとした Microsoft 社のツール群を利用した開発の効率化を実現できる。
  • 開発ツールが Visual Studio に統一されるため、デバッグ等の開発効率が高い
  • 比較対象となる Blazor WebAssembly と比べ、ロジックを抽出、API 化する作業が不要なため、Windows アプリケーションからの移行に対してアドバンテージがある
  • ロジックのコードベースが C# にほぼ統一されるため、メンテナンス性に優れる
  • ブラウザ側に C# コードは配布されないため、セキュリティ面での優位性がある

デメリット

  • SignalR によって常時ブラウザとサーバーが接続されるため、サーバーリソースを決める際に接続数について慎重に考慮する必要がある
  • あくまでマイグレーションであり、ベースのコードを機械的な変換後に調整という手法になるため、コードの可読性や構成という点ではスクラッチに劣る
  • Windows アプリから Web アプリになることで、見た目、操作性の点で必ずしも一致しない可能性がある

SignalR とは
ASP.NET SignalR は、リアルタイム Web 機能をアプリケーションに追加するプロセスを簡略化する ASP.NET 開発者向けのライブラリです。 リアルタイム Web 機能は、クライアントが新しいデータを要求するのをサーバーが待機するのではなく、接続されているクライアントが使用可能になったときにすぐにサーバー コードでコンテンツをプッシュする機能です。

Blazor WebAssemblyとは
Blazor WebAssembly は、.NET を使って対話型のクライアント側 Web アプリを構築するための仕組みです。 Blazor WebAssembly は、プラグインを使用せずに、または他の言語へのコードの再コンパイルなしに、オープンな Web 標準を使用します。 Blazor WebAssembly はモバイル ブラウザーも含めて、すべての最新の Web ブラウザーで動作します。