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

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

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

解決済

3回答

4758閲覧

C#でシェル拡張とアプリケーションのメリットデメリットを知りたい

cancat

総合スコア313

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

0グッド

0クリップ

投稿2016/11/30 03:08

こんにちは。
Windows10でC#/WPFのアプリケーションを開発しています。
Visual Studio 2015 Communityを使っています。

###前提・実現したいこと
漠然とした方針の質問です。

OneDriveのように、ファイルを同期するソフトを作る話の打診があります。

Explorerのシェル拡張で作るのと、通常のC#のアプリケーションとして作るの場合の、メリットとデメリットを知りたいです。

わたしが作るとして、先日シェル拡張を調査してはみたのですが手に負えず、通常のアプリケーションで、ファイルを監視すれば、まあできなくはないな、と考えています。

依頼元としては、シェル拡張を想定しているらしく、調整(説得)が必要です。
説得するのに、「シェル拡張はできないので」というのも当然「あり」ですが、もう少しアプリケーションで作るメリットをアピールしたいのです。
打診段階なので、説得できないと話もなくなっちゃう感じで。
お知恵拝借。
お願いします。

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

シェル拡張はリスクが大きいので、シェル拡張でなければ困る特別な事情がない限りは、通常のアプリで作った方がよろしいかと思います。

シェル拡張だと、当然のことながら追加機能の挙動がエクスプローラーに直接的に影響しますので、たとえば実装した部分の動作が重いとエクスプローラーもつられて重くなり、システムの操作性を損なうことになります。もし不具合があった場合は、エクスプローラーごとフリーズや強制終了といった事態になりかねません。下手すると他の作業にも支障が出てしまいます。デバッグには相当コストをかける必要があるでしょう。

アプリケーションのメリットというよりは、シェル拡張のデメリットになってしまいましたが、そういう方向での説得もありではないでしょうか。

投稿2016/11/30 08:14

catsforepaw

総合スコア5938

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

cancat

2016/11/30 08:33

おおお。それは有力で説得力あります。 大変有益です。 説得できそう。感謝します。
guest

0

シェル拡張はアプリケーションの種類というよりアプリケーションに付加される一機能です。
ユーザーがシェル拡張の機能を望んでいるなら、そのものか、それに置き換わる機能を提案して作るしかありません。
その対応がされていないアプリケーションの方がメリットがあると説得するのは少し厳しいです。

ちなみにプログラムを書かずとも、フリーで独自プログラムを呼び出せるようにするシェル拡張用のソフトもあります。
そういうのも検討してみてください。

ただ、もしもこれがお金を取るような受注の話なら「シェル拡張は作れません」なんて言われたら、
ファイル同期ソフトなんて本当に作れるのかと疑われると思います。

投稿2016/11/30 04:26

編集2016/11/30 04:27
ishi9

総合スコア1294

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

cancat

2016/11/30 04:43

ありがとうございます。 そうですねー。 まあ、疑うのはごもっともだとは思いますが…。 エクスプローラのシェル拡張を作るのと、ファイル同期するのとでは、だいぶ違う気がするのですが。つまり、エクスプローラのシェル拡張は作れないけど、ファイル同期は作ったことがあります。 フリーのシェル拡張って、http://sharpshell.codeplex.com/ですか?
ishi9

2016/11/30 05:11 編集

経験というより難易度の話ですかね。 私が社内アプリ用に作った時は一から調べる時間も含めて半日もかからなかった気がします。(一応、xp、vista、7の判別もやってた) 既にリリースされていた社内アプリはそのまま一切手を加えず、シェル拡張用のインストールプログラムを新たに作って配布したって感じです。 結局、下記のようなレジストリ編集を行うプログラムを作るだけですし https://www.wareko.jp/wordpress/?p=13556 ただ、業務用となると私の知らない別の対応の手間がかかるのかもしれませんので、単純な実装の話じゃないんだ、という場合は申し訳ありません。 そういう事情であればY.H.様の仰る通り、事情をちゃんと説明して納得してもらうのがよさそうです。 >>フリーのシェル拡張って、http://sharpshell.codeplex.com/ですか? そうですね。そんなのなのかな?一応、自分が想定していたのは下記のようなやつです http://www.gigafree.net/system/context/
cancat

2016/11/30 05:34

なるほど。 右メニューの拡張はつくったことがあります。たぶん。右メニューに独自のメニューがあるので。 レジストリ編集もつくったことがあります。 その程度でもシェルというのですか。 そもそも定義があやふやでしたね、わたし。 たぶん、 ・起動を見えなくしたい(サービスとか?)(まあかんたん) ・backgroundで動作したい(これはFormをhideすればよいから簡単) のほかに、 ・プロパティに独自タブを追加したい(調べたがわたしには無理だった) ・エクスプローラのアイコンのdouble clickで、特定のフォルダ配下(同期するフォルダ)の場合に限り、通常のアプリケーションでなく独自のアプリケーションを起動したい(アプリケーションでならできる)。たとえば.xlsを通常はExcel, 同期フォルダにある場合は独自アプリケーションでひらくみたいなイメージです。 なのだと思います。
ishi9

2016/11/30 06:14 編集

すいません、具体的な事が書かれてなかったので確かに右クリックメニュー程度だろうと思っていました。(後はせいぜいアイコン変更など) ただ、そうなると完全にシェル拡張どうこうというか、単に追加機能(オプション)の話だと思います。 >>・起動を見えなくしたい(サービスとか?)(まあかんたん) >>・backgroundで動作したい(これはFormをhideすればよいから簡単) これは常駐アプリケーションやサービス作るって話であってシェル拡張とは関係ない気がするのですが、私も自信なくなってきました。業界ではそうなのでしょうか 他の機能もフォルダ監視とかやらないとできないかもしれませんし、 確かに作るのは結構大変そうです。 とりあえずそういう話であればわかりました。 そりゃユーザーからしたらある方がいいに決まっているので素直に実装コストの話をするしかないですね。 もう完全にY.H.様の仰る通りです。
cancat

2016/11/30 07:02

なるほど。 「シェル拡張」と呼んでいる内容についての共通認識が必要そうですね。 ありがとうございます。とても役に立ちました。 感謝です。
guest

0

わたしが作るとして、先日シェル拡張を調査してはみたのですが手に負えず、通常のアプリケーションで、ファイルを監視すれば、まあできなくはないな、と考えています。

こういう状況であれば、作成時間(納期)およびそれに伴い費用をそれぞれ見積もって提示してみては?
これが発注・受注開発の関係であれば費用と納期は大きな判断材料になると思うのですが。

投稿2016/11/30 03:20

編集2016/11/30 03:22
Y.H.

総合スコア7914

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

cancat

2016/11/30 04:35

ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問