アプリ版:「スタンプのみでお礼する」機能のリリースについて

開発言語として、C#を選択し、GUIを作成しようと考えています。

ネットで検索しているとC#は'windows'向けというキーワードがたくさん

みうけられるため、これからお話しする条件を満たすことが出来るのか

知りたくてご質問させていただきたく。


まず画面のレイアウト的な部分は抜きにして、ボタンを押した後の

処理について。


'linux'上であるスクリプトを作成しておき、そのスクリプトが一連の処理を

'linux'上でするとしてます。実行方法として、

スクリプトファイル名 引数1 引数2

である処理が流れるとします。


C#のGUIで、引数1 引数2を入力し、ボタンを押した瞬間に

'linux'のスクリプト処理が始まることを実現したいのですが

できるのでしょうか?

C#はwindows系ということからlinuxに連動させることができるのか

どうも引っかかるのです。

よろしくおねがいいたします。

A 回答 (9件)

私は、以前C#の練習にGUIで動かすチャットをつくったことがあります。


その時はサーバー側にphpでwebapiをつくってそれを
C#側でHTTPリクエストでたたいてサーバー側のスクリプトを実行させてました。

私はPHPでつくりましたが、php側にLINUX上で操作させたいナーバスな処理を書く感じでしょうか。
このやり方が一番シンプルな気がします。
    • good
    • 0

Windows用GUIアプリから、


rsh経由で実行するか、
PuTTYでも入れて、sshで実行したら?

PuTTYでリモートコマンドを実行するには、
予めコマンドを記述したファイルを用意して、
-mオプションで実行
    • good
    • 0

>linuxのスクリプトは別PCではなく、正確に言うとあるサーバ上にあります。



いや、だからWindowsとは別のマシンのlinuxにあるスクリプトってことでしょ。

>「windows(gui)からサーバ上linuxのスクリプトを走らせる方法」 ←これを一番知りたいです。

方法として以下の2種類に大別できるかと思います。
1. あなたがリモートのlinuxでプログラム(スクリプト含む)を動かすときにはどうやってますか?それをWindowsアプリでやらせればいいです。
2. 任意のスクリプトを実行するRPCをlinuxに実装し、Windowsアプリでそれを呼び出す。(webアプリケーションもこの一種)

具体的な実装はがんばって調べてみてください。
    • good
    • 0

C#は必要ありません。


ブラウザで表示させ、実行させたいとの事なので、そのLinuxにApache等のWEBサーバを入れましょう。
そして、ユーザID,パスワードを表示・入力させる為のHTMLをLinux上に作成します。
そのHTMLから、Perl、Ruby等のスクリプト言語を使用してパスワードを変更する為のスクリプトをLinux上に作成します。
そうすれば、各々のPCからアクセスでき、Linuxのパスワードを変更することができます。

・・と書いてきましたが、理解できますでしょうか?
まずは、1つずつ基礎から勉強したほうが良いと思います。
上に書いただけで、
1.Linux
2.Apache
3.HTML
4.PerlもしくはRuby
これらの基礎を覚えなければなりません。

大変ですが、これらの基礎を覚えてしまえば後が楽になりますので、頑張ってみてください。

この回答への補足

ご回答ありがとうございます。

apacheを除くそれらの言語を組み合わせて使うことで今回の課題をクリアできることは、
実は知っています。(業務で他の人が作っているのを知っているため)

今回は無理やりC#でGUIを作り、ボタンイベント処理としてperlスクリプトが走らせたいのです。

別の方の補足でも述べましたが、linuxのperlスクリプトはあるサーバ上にあります。

「windows(gui)からサーバ上linuxのスクリプトを走らせる方法」 ←これを一番知りたいです。

ご教授願います。

補足日時:2012/10/29 09:40
    • good
    • 0

>" C#で作成GUIボタンクリック ⇒ linuxのスクリプト起動 " を実現したいのです。



>ここまで読んでくださり、「あーそれはC#じゃ無理だよ」と言うのでしたら、逆にどの言語でしたらうまくできますか? JAVAとかですか?

「Windowsで動くアプリケーションからlinuxのスクリプト起動をしたい」ということであればC#でも可能ですけど、それは可能というだけの話です。
肝心のWindowsから別PCのlinuxのスクリプトをどうやって起動するかは考えていますか?

この回答への補足

>肝心のWindowsから別PCのlinuxのスクリプトをどうやって起動するかは考えていますか?

linuxのスクリプトは別PCではなく、正確に言うとあるサーバ上にあります。

「windows(gui)からサーバ上linuxのスクリプトを走らせる方法」 ←これを一番知りたいです。

ご教授願います。

補足日時:2012/10/29 09:24
    • good
    • 0

「言語」より前に「仕組み」を考えましょう。



Linuxのパスワードを変更する際、そのパスワードを管理しているのがどこか。によっても変わってきます。
・ローカルで管理→ passwdコマンド相当の処理が必要
・NISで管理→yppasswdコマンド相当の処理が必要


GUIをWIndowsで起動するのか、Linuxにログインしてから起動するのか?
処理をWindowsからすべて行うのか、rsh,ssh,telnet等で接続してLinuxで処理するのか。
パスワード変更をAPI等で処理するのか、上記のようなコマンドに任せるのか?任せるならそのやりかたは?
誰が使うのか?自分だけでいいのか、他の人も使うのか。他人が使うなら、その人の技術力は「使うには○○をインストールして」で通じる相手なのか?

等々。

これらから可不可や難易度、優先順位等を決めて、それに合った手法を選びます。


例えば、この程度の処理で、自分だけで使うことを考えたら、 perl,ruby等の言語+TkによるGUIをLinux上で動作、というのが簡単でしょう。
    • good
    • 0

勘違いしている回答があるので,書いておきますが,



Windows向けに特化した記述をしていない限りは,
Linuxにmonoをインストールしておけば,

Windows側で作成した実行ファイルを
Linux側に持って行って,そのまま実行できます.

フォームアプリの場合,デザインとかが,
多少変わって見えたりもしますが.

.NET Framework内で書いたものであれば,だいたい動くでしょうが
厳密に互換性があるわけではないので,
最低限必要な部分だけを作って,
Linux側に移して問題ないか,確認してみればいいと思います.

自分でやった時は,
動かない部分とかもあったので,随時代替処理に置き換えて
検証しながら作りました.

この回答への補足

言い忘れたのですが、私はまだまだSEとして初心者です。


" C#で作成GUIボタンクリック ⇒ linuxのスクリプト起動 "

↑これを実現したい


例をとって説明します。

例:linuxのログインパスワード変更する

1.社内限定(イントラネットと呼ぶのでしょうか?)ブラウザ上でURLに指定のアドレスを入力する
 ⇒入力インターフェース(いわゆるgui)が現れる

2.引数1(ログインID)と引数2(新パスワード)を入力する欄があって、入力後ボタンクリックする
 ⇒linuxのアカウントのパスワード変更完了
 

ものすごい簡単な例です。ユーザは上記のたった"2手順"だけでパスワード変更ができるようにします。

" C#で作成GUIボタンクリック ⇒ linuxのスクリプト起動 " を実現したいのです。

ここまで読んでくださり、「あーそれはC#じゃ無理だよ」と言うのでしたら、逆にどの言語でしたら
うまくできますか? JAVAとかですか?

よろしくおねがいいたします。

補足日時:2012/10/28 16:26
    • good
    • 0

できると思います。



C#をLinuxで書くにはmonoという互換OSSプロジェクトのプロダクトを使いますが、これでGUIの開発もできるようです。
http://bitwalk.blogspot.jp/2010/07/mono-gui-1.html
ちなみに、そこからスクリプトの処理を走らせる場合は普通、fork, exec*系のシステムコールでやります。

個人的にはユーザインタフェースをブラウザにしてしまえばスクリプトを改造するだけで済むのにと思ったりしますが...
多くのスクリプト言語にはCGI開発のライブラリーや単独でウェブサーバーになるためのライブラリーなどがすでにあると思いますので。

この回答への補足

> 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とかですか?

よろしくおねがいいたします。

補足日時:2012/10/28 16:23
    • good
    • 0

何をしたいのですか?


C# は、WindowsPCの上で動くプログラムを作成するための言語です。

Linux上で無理矢理動かすような環境もありますが、あなたには無理でしょう。

Linux上で動くプログラムを作るのであれば、ほかの言語(C# に近いものは Java )を使ってください。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!