質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.35%

  • Linux

    4680questions

    Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

  • VB.NET

    1124questions

    Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

Windows OSでのLinuxアプリの開発について

解決済

回答 2

投稿

  • 評価
  • クリップ 3
  • VIEW 4,354

yoshi_yoshi

score 16

半導体装置を作っている会社でプログラミングの仕事に携わっている者です。これまで、Windows OSをターゲットとしてVB.Net 2013にてアプリケーション開発を行なってきました。

(1) Linuxを使う利点について
最近、装置のパソコンをWindows OSにするよりもLinuxに変えた方がよいというアドバイスをよく耳にします。(開発環境ではなく実行環境の方です。)
まだ勉強中であまりよく分かっておらず、大変恐縮ですが、Linuxを使う利点について教えていただけないでしょうか。

Windowsの場合は、アプリケーションが.Net Frameworkのバージョンに依存する為、WindowsのOSが新しくなって今まで使っていた.Net FrameworkのバージョンにOSが対応できなくなった場合などに、アプリケーションの作り替えを余儀なくされるということがあると聞いています。
また時代と共に古いOSのパソコンは買えなくなってきますので、古い装置のパソコンが壊れた場合などに、対応に苦慮するという事が挙げられるのではないかと思います。

Linuxの場合は、常に同じ環境のOSがどんなパソコンにも(例えば、2000年に購入したパソコンにも2020年に購入したパソコンにも)用意でき、時代と共にパソコンが変わっていってもアプリケージョンの変更を余儀なくされる様なことはないという理解で合っておりますでしょうか。

(2) WindowsアプリからLinuxアプリへの移行について
Visual Studio 2015のVisual C++ for Linux拡張機能を使うことにより、Linux環境でのアプリ開発ができるとこれまでは理解しておりました。しかし、残念ながら私はVB.netでの開発経験しかなく、Visual C++を今から勉強しようかと考えていた所です。
しかし最近Micorosoftから、LinuxでWindowsコードが動く「.Net Core」が正式版リリースされたという情報を目にしました。これを使えば、VB.NetでのLinuxアプリの開発が可能になるという理解で合っておりますでしょうか。

ネット上で情報収集を行なっておりますが、私の理解が追い付いておりません。素人質問ばかりで大変恐縮ですが、どなたかご教授いただければ幸いです。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • 退会済みユーザー

    退会済みユーザー

    2016/11/13 12:41

    CentOS 6 系のApplicationが CentOS 7では標準では動きません。ので20年後のOSで動くかというのは否です。 Windows の場合もしかり 95専用Applicationは現在の 10では基本動きません。

    キャンセル

  • Tak1wa

    2016/11/13 13:21

    作成するアプリケーションの特性によると思います。アプリケーションの概要を提示されては如何でしょう。「半導体の会社」からの推測しかできません。

    キャンセル

回答 2

+1

(1) Linuxを使う利点について 

目的によって利点と欠点が大きく変わるので、一概には言えません。
互換性を気にしているようですが、旧バージョンとの互換性については、むしろWindowsの方が上のように思います。Linuxはあまり互換性を重視していないような印象があります。異なるLinux間のバイナリ互換はほぼ期待できませんし、バージョンが変わると互換性がなくなったりもしますから。カーネルが2.4から2.6に上がったときはかなりの混乱があったように思います。

ちなみに、以前Windows10(8.1だったかも)にWindows95のゲームソフトを試しに入れてみたところ、動きました。画面がちらついたりすることがあったので完璧とは言えませんが、プレイできるだけでも驚きです。

Linuxの場合は、常に同じ環境のOSがどんなパソコンにも(例えば、2000年に購入したパソコンにも2020年に購入したパソコンにも)用意でき、時代と共にパソコンが変わっていってもアプリケージョンの変更を余儀なくされる様なことはないという理解で合っておりますでしょうか。 

どういうことなのかよく判りません。Linuxでもバージョンが変わればそれは異なる環境ですし、同じバージョンのLinuxを20年の隔たりがあるマシンに入れられるかどうかは微妙です。たぶん無理だと思います。

(2) WindowsアプリからLinuxアプリへの移行について 

.NET Framework環境はLinuxへも移植されていて、開発環境であるMonoDevelopはVB.NETも対応しているようです。私はVB.NETは使ったことがないのですが。以前、試しにWindowsで作ったフォームアプリ(C#使用)のプロジェクトをLinuxに移してMonoDevelopでビルドしたら、そのままビルドできてちゃんと動いたので、LinuxでもGUIはC#でいいかなと思ったものです。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/11/13 16:53 編集

    (済みません、削除しました。)

    キャンセル

  • 2016/11/13 16:57

    失礼いたしました。MasahikoHirata様へのコメントをこちらに書き込んでしまいました。
    以下改めて投稿させていただきます。

    (1) 説明が悪く申し訳ありません。もしLinuxの同じバージョンのOSが長い間使えるのだとしたら、アプリをそんなに頻繁に作り変えなくて済むのかなと思い、質問させていただきました。Windowsの場合は、OSのサポートが比較的短期間で変わってしまい、前のOSのライセンスもすぐに買えなくなってきますので、古い装置のパソコンが壊れた場合などに困る事がありました。しかし、Linuxもライセンスの問題はないにしても、ハードウェア上ずっと同じバージョンのLinuxで対応できるかどうかは疑問ということですね。
    ありがとうございます。大変参考になります。

    (2) MonoDevelopというソフトウェアを使えば、Linuxパソコン上でVB.Netを使ったLinuxアプリの開発が可能という理解で合っておりますでしょうか。
    いろいろと教えていただきありがとうございます。

    キャンセル

  • 2016/11/14 00:08

    > もしLinuxの同じバージョンのOSが長い間使えるのだとしたら、アプリをそんなに頻繁に作り変えなくて済むのかなと思い、質問させていただきました。

    LinuxでもOSのバージョンが上がればアプリも「作り替える」ことはしないまでも、新しい環境での再ビルドや互換性のテストは必要ですし、それはWindowsでもまったく同じです。フリーウェアのサイトを見ると、対応OSが書かれていると思いますが、そのOS毎に作り替えているわけではなく、動作確認をして互換性のテストをしているのです。

    また、勘違いしていらっしゃるようですが、サポート期間はWindowsの方が遙かに長いです(有料ですから)。Linuxはサーバー向けはともかく、デスクトップ向けだとサポート期間はリリース後せいぜい1年程度です。Ubuntuだとデスクトップ向けでもサポート期間5年のものが定期的にリリースされていますが、それでもWidnows(10年)より短いです。

    > MonoDevelopというソフトウェアを使えば、Linuxパソコン上でVB.Netを使ったLinuxアプリの開発が可能という理解で合っておりますでしょうか。

    合っています。

    キャンセル

checkベストアンサー

0

’(1) Linuxを使う利点について ’
Windows及びLinuxにはそれぞれ一長一短があります。また’半導体装置を作っている会社’であるという事を考慮しますと、恐らく今までの開発ではWindows Embeddedが多かったのだろうと勝手に解釈して考えてみますと、単純にWindowsが良い、Linuxが良いという回答にはならないだろうなぁ。と思います。
また制御系として観た場合に、周辺機器との接続で必要なドライバー及び制御ソフトの有無もあるでしょうし。機器取付のPCのOS選択の範囲も制限があるでしょうし。

機器変更の際の対応についても、基本的に元ソースが有ってリビルトが出来る状態が良いのでしょうけど。

’(2) WindowsアプリからLinuxアプリへの移行について’
全て試している訳ではないので、予想される心配について記載します。
Windows固有の部分の一部は動作しないと思います。アプリからOSへのアクセスをエミュレートして?動作させているでしょうし。

製品としての開発と考えるとC++などを学んで、ターゲットに適した環境を構築するのが理想ではないでしょうか?Windowsで出来ていたことがLinuxではどのように実現できるか?を考えるだけ。しかしエミュレート環境ではLinuxの普通では動くが、エミュレーターでは動かない。という事が1つも無いとは断言できませんし、それに時間を割くのは無駄が多くなるような気がします。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/11/13 16:56

    御回答ありがとうございます。情報が不足しており失礼致しました。
    (1) Windows Embeddedは使っておらず、装置側の制御はPLC(プログラマブルロジックコントローラ)にて行なっております。パソコンのアプリはPLCとやり取りしているだけの構成となります。(ログの表示やユーザインターフェースをアプリ側で持っています。)
    WindowsかLinuxかはそんなに単純ではないのですね…。Linuxにするにしてもシステムを構築するまでがかなり大変といった感じでしょうか。
    それはある程度は覚悟しているのですが、一旦システムが出来上がった後では、OSとアプリの使い回しという意味ではLinuxの方が有利なのでしょうか。
    実は、装置のパソコンOSとして、以前はWindowsXPを使っており、アプリはVB6で作られていました。しかし、客先のWindowsXPが壊れてしまうと、WindowsXPのパソコンやOSは現在はもはや入手できない為、Windows7やWindows8のパソコンを入手し、さらにVB.Net 2005で作り直したアプリをインストールして対応することとなりました。
    Linuxでは、この様な事は起きにくいと考えてよろしいでしょうか。
    例えば、CentOS 6のLinux OSはWindowsの様にサポートが終了したり、ライセンスが入手できなくなったり、といった問題はないと考えておりますが、その認識で合っておりますでしょうか。Windowsと違って、CentOS 6などのOSを長く使い回しできる、Windows OSよりも寿命が長いと考えてもよろしいのでしょうか。
    それとも時代と共にパソコンのハードウェアが新しくなっていくと、Windows OSと同様、近い内にCentOS 6などのOSも使えなくなってくるのでしょうか。
    (Windowsの場合は、例えば最近買ったパソコンにWindowsXPを入れようとしてもハードウェアがXPに対応していない為か、入りませんでした。)
    質問ばかりで済みません。

    (2)そうですか…やはりC++なのですね。懸念点まで教えて頂きありがとうございます。大変参考になります。

    キャンセル

  • 2016/11/13 17:09

    'Linuxでは、この様な事は起きにくいと考えてよろしいでしょうか。'いいえ。起きると覚悟した方が良いかと。何か起きた場合の時はどうします?’CentOS 6のLinux OSは’商用のものでも過度の期待はだめです。
    当方もPLCにラダ図ーなど客先の要望で使います。(本業ではないけど。当方も半導体に近い仕事なので。PLCでもファームに於いては使えなくなります。重要なのは’どんな処理’という事で)また対象となるのが専用機で汎用機でない。またその機械の製造は’機械屋’さんで、電装関係は’電気屋’さんなので。現場では機械が止まるのが最悪で、’知らない’ではすまされない事も。

    キャンセル

  • 2016/11/13 17:42

    そうなんですね。リスクの方はあまり深く考えていませんでしたので、大変勉強になりました。ありがとうございました。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.35%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る

  • Linux

    4680questions

    Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

  • VB.NET

    1124questions

    Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。