- PR -

[C#]VBのモジュールと同じ事をC#で行うには?

投稿者投稿内容
Sala
会議室デビュー日: 2006/06/08
投稿数: 14
投稿日時: 2006-06-08 21:18
初めまして。
現在、VB6で作成していたアプリを
Microsoft Visual C# 2005に移行する作業を行っています。
(一本ずつ、手でC#に書き換えるといった形です)
長年VBでの開発に慣れており、C#は始めたばかりで、その概念がまだ把握出来てません。

ここでVBでの「モジュール」の扱いで頭を悩ませております。

業務用のシステムで、一つの入力画面(例えば売上入力)でも
ユーザーの業務形態に合わせて複数の画面(プログラム)を作っております。
画面の見た目は違っても、ファイル更新部分等の処理は一緒(共通)ですので
VBでは共通処理は「標準モジュール(.bas)」に記述し、各プログラム(フォーム)
は標準モジュールを参照する様にしてました。
※目的は、「共通変数・処理は一つにして管理・修正を簡潔にしたい」です。

管理の仕方は一プログラム一フォルダ、その中にプロジェクトを作成し、
標準モジュールはまとめて別フォルダに入れていました。
 「\売上1\uri1.vbp / \売上1\uri1.Form」
 「\売上2\uri2.vbp / \売上2\uri2.Form」
 「\標準\uricom.bas」 ← uri1.vbp/uri2.vbp にて参照
 
C#でも同じ事を実現したいと思い、標準モジュールの変わりにクラスで代用しようと
考え、別フォルダにクラスを置いて「追加→既存の項目」で選択すると…
 「\売上1c\uri1.sln / \売上1c\uri1Form.cs」
 「\標準\uricom.cs」 ← uri1.sln にて参照

自分のソリューションフォルダ(\売上1c)にコピーされてしまい、
「\標準\uricom.cs」の内容を変更しても、それが反映されません。
一旦削除して再度取り直すともちろん反映されるのですが、多数のプログラムで
参照している場合、その数だけ削除→再参照を毎回行うのは管理が煩雑になって
しまいます。 VBのように、変更後にvbpファイルを開く、もしくはリコンパイル
すると最新の内容を反映する様にしたいのですが。。

Visual C# 2005の開発環境の設定等で出来る様になるものなのでしょうか?

根本的な質問になるのかもしれませんが、通常はC#にて複数のプログラムで共通
した変数や処理を行う場合、共通のクラスを作成し、それをソリューションに
追加して使うのでしょうか?それともDLL化して使うものなのでしょうか?
DLLにしてしまえば、参照設定でつけておけば最新のものをリンク?してくれるのは
分かったのですが… わざわざDLLにしないで、モジュール的な使い方は出来ない
ものかと思いまして。

色々と本やネット上で調べて、やっとクラスの概念は少し分かって来たのですが
それを具体的にどう使いこなして良いのかが分からなくて困っています。

一般的、もしくはC#を使いこなされてる方はどうされているのかを
ご教授下されば、大変助かります。 どうかよろしくお願いします。

 


 



なちゃ
ぬし
会議室デビュー日: 2003/06/11
投稿数: 872
投稿日時: 2006-06-08 21:31
引用:

Salaさんの書き込み (2006-06-08 21:18) より:
Visual C# 2005の開発環境の設定等で出来る様になるものなのでしょうか?

根本的な質問になるのかもしれませんが、通常はC#にて複数のプログラムで共通
した変数や処理を行う場合、共通のクラスを作成し、それをソリューションに
追加して使うのでしょうか?それともDLL化して使うものなのでしょうか?
DLLにしてしまえば、参照設定でつけておけば最新のものをリンク?してくれるのは
分かったのですが… わざわざDLLにしないで、モジュール的な使い方は出来ない
ものかと思いまして。


既存のファイルを追加する際に、リンクとして追加すれば多分お望みのことは
できると思いますが、普通はDLLにすると思います。
※DLLにするのはわざわざというほどのことではないと思いますが。
Sala
会議室デビュー日: 2006/06/08
投稿数: 14
投稿日時: 2006-06-08 21:41
早速のご返答ありがとうございます。

大変申し訳ないのですが、「リンクとして追加」というのは
どう行ったら良いのでしょうか? 「追加→既存の項目」で
その様な設定?があるのか見てみたのですが、どうも分かりません。
具体的な方法をご教授願えないでしょうか?お願いします。

普通はDLLにするものですか。。
VBで開発していた時の「あまりDLLを増やすとDLL地獄になって苦労する」
というイメージがあったもので、なんとなく抵抗がありまして。

共通する処理はクラスで用意し、DLLにして使用する…という考えで
良いのでしょうか? クラスの使い方の概念がまだきちんと理解できて
いないもので、変な言い回しになっていたら申し訳ありません。

その辺のお考えというかご意見を聞かせて頂けると助かります。
きくちゃん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 854
お住まい・勤務地: 都内某所
投稿日時: 2006-06-08 21:50
Salaさん、こんばんは。

参考までに。
割と最近、「共通ライブラリクラスについて」という、似たような話題がありました。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-06-08 21:58
引用:

Salaさんの書き込み (2006-06-08 21:41) より:

大変申し訳ないのですが、「リンクとして追加」というのは
どう行ったら良いのでしょうか? 「追加→既存の項目」で
その様な設定?があるのか見てみたのですが、どうも分かりません。
具体的な方法をご教授願えないでしょうか?お願いします。


[開く] ボタンの右端の「▼」をクリックしてドロップダウンさせてください。

引用:

普通はDLLにするものですか。
VBで開発していた時の「あまりDLLを増やすとDLL地獄になって苦労する」
というイメージがあったもので、なんとなく抵抗がありまして。


アセンブリが肥大化する方が抵抗があります。

# それと、VB6 の「モジュール」にあたるのは、
# StandardModuleAttribute という属性を持つクラスですから、微妙に違和感があります。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
Sala
会議室デビュー日: 2006/06/08
投稿数: 14
投稿日時: 2006-06-09 10:52
>きくちゃん様
 ありがとうございます。
 過去ログもかなり探したのですが…「モジュール」という単語に
 捕らわれていたので見つけられなかった様です。
 こちらを一通り読みまして、大変勉強&参考になりました。
>じゃんぬねっと様
 そんな所にあったのですね!
 丸一日苦労してたのがちょっと悲しくなりました…。
 ありがとうございます。

 色々考えた結果、まだテスト開発段階の部分が大きいですので
 一旦リンクで開発・テスト・検証を行って、機能が安定してDLLの
 メリット等がきちんと把握出来てから、最終的にはDLL化しようと
 いう方向になりました。

 本当に助かりました。ご回答下さったみなさまありがとうございます。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-06-09 11:30
引用:

Salaさんの書き込み (2006-06-09 10:52) より:

色々考えた結果、まだテスト開発段階の部分が大きいですので
一旦リンクで開発・テスト・検証を行って、機能が安定してDLLの
メリット等がきちんと把握出来てから、最終的にはDLL化しようという方向になりました。


開発段階の場合は、「プロジェクト参照」 という強力な機能を使うべきだと思います。
リンクで追加する場合に比べて、アップデート / 復元 などもしやすいです。
もちろん、VSS からも管理しやすいというのもウリです。

「プロジェクト参照」 については、何度かこちらの会議室にも出てきておりますので、
一度、検索などして調べられると良いと思います。(*_ _)

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
Sala
会議室デビュー日: 2006/06/08
投稿数: 14
投稿日時: 2006-06-09 11:59
「プロジェクト参照」は目にはしていましたが、
あまりその機能や意味を理解出来ておりませんでした。

早速調べてみましたが、きっちりと把握するには
関連記事などをじっくり調べて理解したいと思いました。
多々気になるものがあったので、帰宅してからでも
勉強します。

おかげで、色々調べる為のキーワードやポイントが
少し見えて来た気がします。

とり急ぎ、お礼まで…

ありがとうございました。

スキルアップ/キャリアアップ(JOB@IT)