![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
開発言語について、現在vb6にて開発された基幹業務が
VISTA等のクライアントで一部動作検証がとれなくなってきております。
今後のクライアントOSを考慮し、基幹業務の再構築を検討しております。
そこで開発言語を.NETでいくかJAVAで開発するか迷っております。
それぞれの利点と弱点があるかと思いますが私には双方の知識が乏しく
皆様からの意見を伺いたく投稿いたしました。
開発工数・アプリ起動時間・動作スピード等の比較がわかりますと助かります。
また、開発ツールのお勧め情報がありますたらご助言をお願いします。
運用環境は専用線(20MB)で結ばれたデータセンターのサーバーと
データベースがあり、アプリケーションは社内にて運用してます。
EDIにて特定取引先に対してVPNにてデータ配信をしております。
No.2ベストアンサー
- 回答日時:
VBのプログラムを組めるなら、VB.netでも組めるでしょう。
もちろんオブジェクト指向をよく知らなくても、普通に組めます。
ただ、.どうせならオブジェクト志向的な(あるいは別の最新の)パラダイムも理解して組んだほうが、最新言語の性能や拡張性のマージンを生かすことが出来ます。
開発規模にもよりますが、1人または2人程度でいいのでアーキテクトに任じ、他のプログラマはオブジェクト指向など考えなくても指示通りに組めばよいが、指示通りに組むと実は.NETやJavaのパフォーマンス/拡張性/生産性を活かすようになっている、というようなアーキテクチャをアーキテクトが構築するのがいいとは思いますが…。
サーバも組みなおすのでしょうか?
プログラミングモデルの統一という意味では.NETは比較的有利です。
Javaもサーバとクライアントで同一の言語が走らせられますので、ロジックの共通化は可能だと思います。
(.NETだとロジックだけでなく組み方(構造)まで統一できる場合があります)
帳票に関しては、VBでのツール経験を活かしたいならVB.netが楽でしょう。
クリスタルレポートなどはほぼそのままのノリで使えると思います。
javaですとSVFなどが企業使用では定番ですが、やや使い方にクセがあります。
回答をありがとうございます。
今回の構築は、過去の不便と申しますか全てを見直す覚悟で望みます。
そういう意味ではサーバー環境も見直しを検討しております。
当社で1名特化すればそれなりのシステム構築が可能であるというアドバイスを検討させていただきます。
.netでいけば過去の貴重なロジックを流用できるということも今検討しているのですが、そこが一緒に負の資産を引きずらないか考慮しているところです。
アドバイスありがとうございます。
No.1
- 回答日時:
クライアントアプリケーションに関しては、VBのエンジニアを擁しているなら.NETのほうが現実的な選択と思います。
アプリ起動時間や動作速度に関しては、経験上はWindowsとの組み合わせでは.NETに分があります。
が、クライアントで動作する対話式アプリケーションにおいて、Javaだから遅くて我慢できない、というようなことは普通はありません。
その場合は、アプリケーションの構造に問題があります。
なお、中国などにオフショア開発を依頼するなら、javaのほうが人材が豊富だと思います。
モバイル(携帯電話)などでも動作させたいとか言い始めると、Javaでもともと作ってあったほうが多少は移植が楽かもしれません。
開発生産性はJavaも.NETも現代的な言語であるのでかなり高いです。
開発生産性についてはMicrosoftが最も得意とするところで、.NET環境+VisualStudioを凌ぐ生産性を実現するJava開発環境は簡単には構築できません。
しかし、.NETの環境だと、それ以外にあまり選択肢がありません。
ほぼVisualStudioイッタクとなります。
Javaは開発環境やツールの選択が幅広く無料のものも多いですし、Eclipseなどは非常に強力な開発統合環境です。
逆に、いろいろあるなかから、貴社のシステム規模・運用体系・開発者のレベルに合わせたものを上手に選んで組み合わせないといけません。
そういう意味では玄人向けです。
上手に選定された開発環境(統合ツールということだけではなく、どんなライブラリを使うかなどといったこと)は、プログラマに対して
「余計なことはできないけどやるべきことはとても効率よくできる」というような環境を構築できます。
開発・実行環境の維持管理としては、ほぼMicrosoftからしかコア部分がリリースされない.NETのほうが楽です。
Javaは上記のとおり、ツールやライブラリ、フレームワークといった基幹的なコンポーネントの供給元が非常に豊富ですが、それぞれのプロジェクトグループが独立してバージョンアップをしたりするため、何年も使う企業アプリケーションだと、それぞれのコンポーネントのどのバージョンの組み合わせがよいのかなどをトレースし続ける必要もあります。
導入後にセキュリティ対策などで個々のコンポーネントのバージョンアップを強いられる場合もあり、そのときに各プロジェクトの進捗次第ではうまく整合性がとれたシステムが構築できない場合もあります…。
ただし、.NET環境の場合は楽ではありますが、Microsoft一社が「サポートを打ち切る」とか言い始めると辛いことになります。
その点、Javaはオープンソースグループが多数ありますので、そういう面でのリスク(いきなりサポート打ち切りなど)は低いと思います。
ご参考になれば。
早々のアドバイスありがとうございます。
プログラマのスキルですが、VBの知識が多少ですが 少なくても.netで問題ないでしょうか?
プロラムのロジックの理解はありますが、複数人での開発を考慮してオブジェクト指向をあまり意識せずに構築できるツールを検討しています。
今回は、サーバーとクライアントでのプログラムロジックを別途で検討しないと構築が難しいのでと心配している次第です。
あと、印刷での書式が任意のフォームで印刷できるかと この辺りも不安を抱いております。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- IT・エンジニアリング 外部業者と工程管理。どう管理してますか? 2 2022/07/07 16:53
- Java 助けでください!!!!!!!!!!!! 4月から働き始めた新人SEです。 皆さんの体験談等を教えてい 7 2022/07/28 23:50
- 労働相談 合意済み仕様の商品納入後における仕様変更要求への対応について 5 2023/04/19 09:41
- 政治 三菱のMRJ開発中止で思う事。 13 2023/02/19 13:43
- サーバー Webサイト構築フリーランスの案件受注について 1 2022/03/27 18:16
- 就職 就活に関して 2 2023/02/13 21:46
- IT・エンジニアリング SEとWebエンジニアの業務内容の違いについて 3 2023/06/22 23:23
- システム システムを開発するにあたって 3 2022/08/06 21:30
- ソフトウェア ノーコードツールで開発を依頼した場合の費用 1 2023/02/03 11:16
- アプリ swiftでスマホアプリを開発した時の動作確認 1 2023/02/14 11:37
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
GPIB制御
-
アプリのプログラムを見るには...
-
機械語とバイオスの関係と歴史
-
InstallShield ってプログラム...
-
「フラグをたてる」とは?
-
バッチファイルでUSB挿入時に実行
-
再配布できないファイルの作製
-
「Diffをとる」とは?
-
オブジェクト指向って何ですか?
-
brotherのマシニングセンタとP...
-
自分の声が遅れて聞こえてくる...
-
シンクライアントとクラウドコ...
-
Windows7の画像処理ソフトにつ...
-
Photoshopで、できますか?
-
例外アプリケーションエラーを...
-
マルチコアCPUをシングル化
-
インテル マネジメント エンジ...
-
autoCAD macの日本語版について
-
0除算して、落ちるプログラムと...
-
65536は2の何乗なのでしょうか?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Photoshopで、できますか?
-
バッチファイルでUSB挿入時に実行
-
アプリのプログラムを見るには...
-
Bluestacks内でダウンロードし...
-
GPIB制御
-
iTunesがノートンにブロックさ...
-
例外アプリケーションエラーを...
-
インテル マネジメント エンジ...
-
brotherのマシニングセンタとP...
-
BIOS.binをバイナリエディタで...
-
マルチTIFを一枚のTIFに...
-
再配布できないファイルの作製
-
C言語学習用のフリーソフト
-
「Diffをとる」とは?
-
あるフリーゲームをプレイ中に...
-
Visual Basic.netで英単語学習...
-
JPGで立ち上がるプログラムを元...
-
PCでスマホやiPhoneのアプリ...
-
MpcStarのアンインストール
-
InstallShield ってプログラム...
おすすめ情報