C#で開発できるかどうか教えてください

このQ&Aのポイント
  • C#を使用してGUIを作成することは可能ですが、'linux'との連動については注意が必要です。
  • C#は主にWindows向けの開発言語ですが、一部の開発環境やツールを使用することで'linux'上で動作させることもできます。
  • 'linux'との連携を行う場合は、C#の実行環境を'linux'に移植する必要があります。
回答を見る
  • ベストアンサー

C#で開発できるかどうか教えてください part1

開発言語として、C#を選択し、GUIを作成しようと考えています。 ネットで検索しているとC#は'windows'向けというキーワードがたくさん みうけられるため、これからお話しする条件を満たすことが出来るのか 知りたくてご質問させていただきたく。 まず画面のレイアウト的な部分は抜きにして、ボタンを押した後の 処理について。 'linux'上であるスクリプトを作成しておき、そのスクリプトが一連の処理を 'linux'上でするとしてます。実行方法として、 スクリプトファイル名 引数1 引数2 である処理が流れるとします。 C#のGUIで、引数1 引数2を入力し、ボタンを押した瞬間に 'linux'のスクリプト処理が始まることを実現したいのですが できるのでしょうか? C#はwindows系ということからlinuxに連動させることができるのか どうも引っかかるのです。 よろしくおねがいいたします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.9

私は、以前C#の練習にGUIで動かすチャットをつくったことがあります。 その時はサーバー側にphpでwebapiをつくってそれを C#側でHTTPリクエストでたたいてサーバー側のスクリプトを実行させてました。 私はPHPでつくりましたが、php側にLINUX上で操作させたいナーバスな処理を書く感じでしょうか。 このやり方が一番シンプルな気がします。

その他の回答 (8)

回答No.8

Windows用GUIアプリから、 rsh経由で実行するか、 PuTTYでも入れて、sshで実行したら? PuTTYでリモートコマンドを実行するには、 予めコマンドを記述したファイルを用意して、 -mオプションで実行

  • wormhole
  • ベストアンサー率28% (1619/5653)
回答No.7

>linuxのスクリプトは別PCではなく、正確に言うとあるサーバ上にあります。 いや、だからWindowsとは別のマシンのlinuxにあるスクリプトってことでしょ。 >「windows(gui)からサーバ上linuxのスクリプトを走らせる方法」 ←これを一番知りたいです。 方法として以下の2種類に大別できるかと思います。 1. あなたがリモートのlinuxでプログラム(スクリプト含む)を動かすときにはどうやってますか?それをWindowsアプリでやらせればいいです。 2. 任意のスクリプトを実行するRPCをlinuxに実装し、Windowsアプリでそれを呼び出す。(webアプリケーションもこの一種) 具体的な実装はがんばって調べてみてください。

回答No.6

C#は必要ありません。 ブラウザで表示させ、実行させたいとの事なので、そのLinuxにApache等のWEBサーバを入れましょう。 そして、ユーザID,パスワードを表示・入力させる為のHTMLをLinux上に作成します。 そのHTMLから、Perl、Ruby等のスクリプト言語を使用してパスワードを変更する為のスクリプトをLinux上に作成します。 そうすれば、各々のPCからアクセスでき、Linuxのパスワードを変更することができます。 ・・と書いてきましたが、理解できますでしょうか? まずは、1つずつ基礎から勉強したほうが良いと思います。 上に書いただけで、 1.Linux 2.Apache 3.HTML 4.PerlもしくはRuby これらの基礎を覚えなければなりません。 大変ですが、これらの基礎を覚えてしまえば後が楽になりますので、頑張ってみてください。

torajiro123
質問者

補足

ご回答ありがとうございます。 apacheを除くそれらの言語を組み合わせて使うことで今回の課題をクリアできることは、 実は知っています。(業務で他の人が作っているのを知っているため) 今回は無理やりC#でGUIを作り、ボタンイベント処理としてperlスクリプトが走らせたいのです。 別の方の補足でも述べましたが、linuxのperlスクリプトはあるサーバ上にあります。 「windows(gui)からサーバ上linuxのスクリプトを走らせる方法」 ←これを一番知りたいです。 ご教授願います。

  • wormhole
  • ベストアンサー率28% (1619/5653)
回答No.5

>" C#で作成GUIボタンクリック ⇒ linuxのスクリプト起動 " を実現したいのです。 > >ここまで読んでくださり、「あーそれはC#じゃ無理だよ」と言うのでしたら、逆にどの言語でしたらうまくできますか? JAVAとかですか? 「Windowsで動くアプリケーションからlinuxのスクリプト起動をしたい」ということであればC#でも可能ですけど、それは可能というだけの話です。 肝心のWindowsから別PCのlinuxのスクリプトをどうやって起動するかは考えていますか?

torajiro123
質問者

補足

>肝心のWindowsから別PCのlinuxのスクリプトをどうやって起動するかは考えていますか? linuxのスクリプトは別PCではなく、正確に言うとあるサーバ上にあります。 「windows(gui)からサーバ上linuxのスクリプトを走らせる方法」 ←これを一番知りたいです。 ご教授願います。

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.4

「言語」より前に「仕組み」を考えましょう。 Linuxのパスワードを変更する際、そのパスワードを管理しているのがどこか。によっても変わってきます。 ・ローカルで管理→ passwdコマンド相当の処理が必要 ・NISで管理→yppasswdコマンド相当の処理が必要 等 GUIをWIndowsで起動するのか、Linuxにログインしてから起動するのか? 処理をWindowsからすべて行うのか、rsh,ssh,telnet等で接続してLinuxで処理するのか。 パスワード変更をAPI等で処理するのか、上記のようなコマンドに任せるのか?任せるならそのやりかたは? 誰が使うのか?自分だけでいいのか、他の人も使うのか。他人が使うなら、その人の技術力は「使うには○○をインストールして」で通じる相手なのか? 等々。 これらから可不可や難易度、優先順位等を決めて、それに合った手法を選びます。 例えば、この程度の処理で、自分だけで使うことを考えたら、 perl,ruby等の言語+TkによるGUIをLinux上で動作、というのが簡単でしょう。

回答No.3

勘違いしている回答があるので,書いておきますが, Windows向けに特化した記述をしていない限りは, Linuxにmonoをインストールしておけば, Windows側で作成した実行ファイルを Linux側に持って行って,そのまま実行できます. フォームアプリの場合,デザインとかが, 多少変わって見えたりもしますが. .NET Framework内で書いたものであれば,だいたい動くでしょうが 厳密に互換性があるわけではないので, 最低限必要な部分だけを作って, Linux側に移して問題ないか,確認してみればいいと思います. 自分でやった時は, 動かない部分とかもあったので,随時代替処理に置き換えて 検証しながら作りました.

torajiro123
質問者

補足

言い忘れたのですが、私はまだまだSEとして初心者です。 " C#で作成GUIボタンクリック ⇒ linuxのスクリプト起動 " ↑これを実現したい 例をとって説明します。 例:linuxのログインパスワード変更する 1.社内限定(イントラネットと呼ぶのでしょうか?)ブラウザ上でURLに指定のアドレスを入力する  ⇒入力インターフェース(いわゆるgui)が現れる 2.引数1(ログインID)と引数2(新パスワード)を入力する欄があって、入力後ボタンクリックする  ⇒linuxのアカウントのパスワード変更完了   ものすごい簡単な例です。ユーザは上記のたった"2手順"だけでパスワード変更ができるようにします。 " C#で作成GUIボタンクリック ⇒ linuxのスクリプト起動 " を実現したいのです。 ここまで読んでくださり、「あーそれはC#じゃ無理だよ」と言うのでしたら、逆にどの言語でしたら うまくできますか? JAVAとかですか? よろしくおねがいいたします。

回答No.2

できると思います。 C#をLinuxで書くにはmonoという互換OSSプロジェクトのプロダクトを使いますが、これでGUIの開発もできるようです。 http://bitwalk.blogspot.jp/2010/07/mono-gui-1.html ちなみに、そこからスクリプトの処理を走らせる場合は普通、fork, exec*系のシステムコールでやります。 個人的にはユーザインタフェースをブラウザにしてしまえばスクリプトを改造するだけで済むのにと思ったりしますが... 多くのスクリプト言語にはCGI開発のライブラリーや単独でウェブサーバーになるためのライブラリーなどがすでにあると思いますので。

torajiro123
質問者

補足

> C#をLinuxで書くにはmonoという互換OSSプロジェクトのプロダクトを使いますが、これでGUIの開発 もできるようです。 すみません。いい忘れたのですが、自分自身まだまだSEとして初心者の部類ですのでよくわからないのですが。。 "C#をlinuxで書く" ←いまいち意味がわかりませんが。 私ではないのですが、同じ会社で仕事している他の人の様子を見ていると、C#を使っている人は visual C#を使ってアプリを作っています。その人達はlinuxは全然使いません。 私はguiを作るための手段でC#を使おうと思っています。 " C#で作成GUIボタンクリック ⇒ linuxのスクリプト起動 " ↑これを実現したい 例をとって説明します。 例:linuxのログインパスワード変更する 1.社内限定(イントラネットと呼ぶのでしょうか?)ブラウザ上でURLに指定のアドレスを入力する  ⇒入力インターフェース(いわゆるgui)が現れる 2.引数1(ログインID)と引数2(新パスワード)を入力する欄があって、入力後ボタンクリックする  ⇒linuxのアカウントのパスワード変更完了   ものすごい簡単な例です。ユーザは上記のたった"2手順"だけでパスワード変更ができるようにします。 " C#で作成GUIボタンクリック ⇒ linuxのスクリプト起動 " を実現したいのです。 ここまで読んでくださり、「あーそれはC#じゃ無理だよ」と言うのでしたら、逆にどの言語でしたら うまくできますか? JAVAとかですか? よろしくおねがいいたします。

  • notnot
  • ベストアンサー率47% (4845/10256)
回答No.1

何をしたいのですか? C# は、WindowsPCの上で動くプログラムを作成するための言語です。 Linux上で無理矢理動かすような環境もありますが、あなたには無理でしょう。 Linux上で動くプログラムを作るのであれば、ほかの言語(C# に近いものは Java )を使ってください。

関連するQ&A

  • Visual C++ の使い方がわかりません。

    今プログラムをWindows上でVisual Cを使って書きました。 そして、 linux 上だと、引数を渡して実行する際、 testというプログラムをddddというchar文字を引数として実行したい場合、 >test dddd と、実行すればよかったと思うのですが、Visual Cでは、私は、上のメニューバーにある”実行”ボタンでしか実行の仕方をしりません。引数を渡して実行したい場合は、どうすればいいのでしょうか? 教えてください。

  • C++とC#を使ったアプリケーション作成

    アプリケーションと言って良いのかは微妙なのですが、アプリケーションを作ることになりました。 既存のいくつかのプログラムを1つにまとめて、GUIで操作できるようにするのが最終目的です。 もとのプログラムはC++で書かれています。 今回は、GUIの部分を 「Microsoft Expression Blend 2」でデザインしようと考えているのですが、 GUIの部分をC#で作成し、メインの処理をC++で書くことは可能なのでしょうか? それとも、メインの処理をC#で書き直すことが必要でしょうか? 知恵を貸してください。 よろしくお願いします!!

  • C#でのPerlプログラムの実行

    C#初心者です。環境はVisualC#を使っています。 C#でGUIを作成中なのですが、GUIのあるボタンを押すと、 Perlのプログラムが実行されて、動くようにしたいのです。 どのようにすればよいでしょうか?

  • フリーでC++用NCLOCカウントツールありますか?

    Visual C++で開発中なのですが、NCLOC(コメント抜き行数)を計測したいです。 できれば定期的に自動計測したり、他のソフトと連係して レポート作成させたりしたいので、コマンドラインで動かせると ありがたいです。 フリーソフトだと、C言語用やGUIで操作するアプリは見つけましたが、 上記の条件に合いそうなのが見つけられませんでした。 Windows上でもLinux上でもよろしいので、 ご存じの方、教えてください。よろしくお願いします。

  • C#での自作DLL(C言語)の並列化

    C言語で自作したDLLをC#で使いたいと考えております。 このDLLの計算量は多くて、値を返すまでに時間がかかります。 そのためにC#のフォームが応答なしになってしまうので並列化したいと思ったのですがうまくいきませんでした。 このDLLは ・int型の戻り値 ・6個の引数 ・上の引数のうち、1つはoutキーワード(ポインタ渡し) です。 どのようにすれば、うまく並列化できるでしょうか。 ご教授お願いいたします。

  • C++でGUIアプリケーションを作成するには?

    C++でGUIアプリケーションを開発しようとしていますが、どのように作成すればよいのかわからなかったため、質問させて頂きました。 アプリケーションのイメージとしては、ボタン・背景などはすべてこちらの用意した画像で表示し、Windowsっぽいテイストは一切出さないアプリケーションです。ボタンを押すと画面全体が切り替わるイメージです(例えばプリクラみたいな) 現在JavaのSwingでアプリを作成しており、全体が切り替わる機能としてはJPanelのCardLayoutを使用しています。 ボタンはJButton等で完全に画像onlyのアプリを実現しています。 ただ、JavaはWEBカメラからの画像取得が640*480が限界であり、カメラの限界性能(1600*1200等)が使用できるopencv(c++)で画像キャプチャのところだけ作成しました。 このままアプリ全体はJavaで作成し、画像キャプチャ時はc++のexeを裏で実行させるという方法もあるのですが、言語を統一したほうがいいのではないか?と思ったので現在c++でGUIアプリの作成方法を調べています。 参考になるページもご紹介いただけるとありがたいです。

  • ファイルメーカー

    ファイルメーカーpro6.0を使用してます。 とあるレコードを検索して、Aというレイアウトで見たあと、Bというレイアウトを開き、また前に見たAというレイアウトに戻したいとき、左脇のメニューを使わず、Bレイアウト上に置いたボタンで前に見ていたレイアウトに移れるスクリプトってできないでしょうか? Aレイアウトへのリンクボタンではなく、前に見ていたレイアウトへ移るスクリプトを作成したいのです。 前に見ていたのが、Aのみではないので。 お知恵をお貸しください。

  • 実行速度重視&GUIの開発環境

    現在学んだ言語はCとjavaです. linux上でGTKを少しかじって,現在はcygwinでjavaのGUIアプリケーションを勉強しています. 今回3次元データを解析するプログラムを作成することになったのですが,その際にGUIで表示・操作をしなくてはいけなくなりました. 出来ればwindows上で動作するものがいいのですが,linuxでも構わないと思っています. 最終的にはデータベースとの接続(とXOOPSとの連携?)を考えているので,その辺りも考慮していただければありがたいです. 開発環境の費用は特に問題ではないです.

  • C++でGUIカレンダー

    C++でGUIカレンダー プログラミング初心者で、現在独学で学んでいる者です! 「Visual C++ 2010 Express」を使って永年カレンダーを作成し、コマンドプロンプト上に表示するプログラムを作成しました。(添付した画像参照) 次はGUI版のカレンダーを作りたいのですが、どのような手順で作れば良いのでしょうか? イメージとしては、 http://hiros-dot.net/PowerShell/myfunction/myfunction17.htm の上の方に載っているカレンダーをもっとシンプルにしたもの(右上の×ボタンを押せば閉じる機能を持っただけのもの)が作りたいです。 調べてみたところJavaで作ったものはあるみたいなんですが、ここまでC++で作ったので。 ヒントや、おススメの本だけでも良いのでお願いします! 永年カレンダーのソースや、他にもっと必要な事項があればおっしゃってください。

  • C++開発アプリとDLLとで同じ領域のデータを共有するには

    お世話になっています。 ただいまC++でアプリ開発をしていますが、C++で作成したアプリと、DLLとで同じ領域のデータを共有して使いたいと思っています。 C++で外部で宣言した変数(構造体)のデータをDLLで参照して、内容を変更、C++アプリで変更した内容を参照して処理すると言う具合です。 DLLの方は既に作成済みで、引数としてC++アプリのデータを渡すことが出来ないので、どうにかしてC++で宣言した変数を参照したいのですが。 よろしくお願いします。

専門家に質問してみよう