C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[16]: 型付データセットを好きな名前空間の下にいれるには?


(過去ログ 15 を表示中)

[トピック内 21 記事 (1 - 20 表示)]  << 0 | 1 >>

■5010 / inTopicNo.1)  型付データセットを好きな名前空間の下にいれるには?
  
□投稿者/ naclan (2回)-(2007/07/02(Mon) 15:04:27)

分類:[.NET 全般] 

Visual Web Developer 2005 Express Edition で開発しています。

データセットデザイナで型付データセットを作ったのですが、
これが所属する名前空間を指定できる場所がありません。

VS.NET 2003 の頃は「カスタム ツールの名前空間」
っていう欄に指定できたのですが、2005 には無いようです。

xml 名前空間などではなく、クラスが所属する名前空間を
指定したいのです。DataSet の Namespace や Prefix
は違います。

HogeDataSet.FugaDataTable を
Foo.Bar.HogeDataSet.FugaDataTable とするには、
どうすればいいでしょうか。
引用返信 編集キー/
■5017 / inTopicNo.2)  Re[1]: 型付データセットを好きな名前空間の下にいれるには?
□投稿者/ 黒龍 (78回)-(2007/07/02(Mon) 18:13:48)
Fooってフォルダつくってその中にBarってフォルダつくってそこの中にDataSet作ってやればよかったと思います。Expressだと違うのかな??
引用返信 編集キー/
■5020 / inTopicNo.3)  Re[1]: 型付データセットを好きな名前空間の下にいれるには?
□投稿者/ 未記入 (103回)-(2007/07/02(Mon) 19:31:57)
No5010 (naclan さん) に返信
> Visual Web Developer 2005 Express Edition で開発しています。
>
> データセットデザイナで型付データセットを作ったのですが、
> これが所属する名前空間を指定できる場所がありません。
>
> VS.NET 2003 の頃は「カスタム ツールの名前空間」
> っていう欄に指定できたのですが、2005 には無いようです。
>
> xml 名前空間などではなく、クラスが所属する名前空間を
> 指定したいのです。DataSet の Namespace や Prefix
> は違います。
>
> HogeDataSet.FugaDataTable を
> Foo.Bar.HogeDataSet.FugaDataTable とするには、
> どうすればいいでしょうか。

まずは言語をはっきりさせておこうか。
VBであれば、

No5017 (黒龍 さん) に返信
> Fooってフォルダつくってその中にBarってフォルダつくってそこの中にDataSet作ってやればよかったと思います。Expressだと違うのかな??

こうはならないので違うということになる。
引用返信 編集キー/
■5022 / inTopicNo.4)  Re[2]: 型付データセットを好きな名前空間の下にいれるには?
□投稿者/ なちゃ (43回)-(2007/07/02(Mon) 20:19:43)
ていうか、Webは他のプロジェクトと違って、その辺自由には出来なかったと思いますよ。
コード生成も動的ですし。

引用返信 編集キー/
■5034 / inTopicNo.5)  Re[3]: 型付データセットを好きな名前空間の下にいれるには?
□投稿者/ naclan (3回)-(2007/07/03(Tue) 11:20:13)
回答ありがとうございます。

いろんなことをやってみた結果、
データセットのファイル名に
「Foo.Bar.HogeDataSet.xsd」
と付けると、名前空間になりました。
ただデータセット名などもこれになってしまい、
イマイチです (というか実用に耐えない)

さらにいろいろ試したところ、
1. HogeDataSet.xsd というファイル名で作成。
2. データセットの中身を作っていく。
3. ファイル名だけを「Foo.Bar.HoogeDataSet.xsd」に変更。

これで理想の形になりました。
ファイル名とクラス名が不一致なのは妥協しました。

しかし、これってとても正規の手順とは思えません。
スタンスとしては、データセットクラスを名前空間に
属させることはサポートしていない、ということだと思います。

それってどうなんでしょうか。
イマドキ名前空間すらロクに指定できないようなものが
MSオフィシャル開発ツールとして存在していいのですか。
程度の低いコードが量産されるだけで、ちゃんとコードを
書こうとしてる人が馬鹿を見るようなことには
なってほしくないです。

ところで、c#ならフォルダに入れるだけだったのですか?
程度の低いコードを書きたくない人はc#使えということなの
でしょうか。
引用返信 編集キー/
■5045 / inTopicNo.6)  Re[4]: 型付データセットを好きな名前空間の下にいれるには?
□投稿者/ 中博俊 (1110回)-(2007/07/03(Tue) 13:17:51)
中博俊 さんの Web サイト
程度が低いなんていうと、程度が疑われますよ?

通常Webアプリなのか、言語もわからないままですが普通はDataSetを別DLLにするので問題はありません。
引用返信 編集キー/
■5092 / inTopicNo.7)  Re[5]: 型付データセットを好きな名前空間の下にいれるには?
□投稿者/ naclan (4回)-(2007/07/04(Wed) 10:54:58)
確かに程度が低いってのは言葉が悪かったです。
すみません。

名前空間に属してない(グローバルな位置にいきなり置いてある)
ようなクラスのコードのことを簡潔に書きたかっただけです。

なので、やはり名前空間にちゃんと所属してるコードと
そうでないコードでは、後者の方が悪い書き方だと思うし、
初心者ほどそういうところに無頓着というか、
「動けばいい」の考え方で、
名前空間やアセンブリのバージョン等を全然気にしないで、
その結果、ちゃんとこだわってる人に比べて
悪いコードを書いてしまっています。

別なDLLにするからどうのってのも、
動けばいいじゃんの精神ではないのでしょうか?

たとえバッティングする心配がない場合でも、
名前空間は変数名やクラス名と同じで、
グローバルなものは避けつつちゃんと名付けるのが
あるべき姿だと思うのですが、それは違うのでしょうか?

逆に、名前空間などつけないのが正しいのであれば、
私の今書いてるやつも、上記の方法で無理矢理に
名前空間に所属させたのを、やめようと思います。
引用返信 編集キー/
■5093 / inTopicNo.8)  Re[6]: 型付データセットを好きな名前空間の下にいれるには?
□投稿者/ επιστημη (553回)-(2007/07/04(Wed) 11:40:21)
επιστημη さんの Web サイト
> たとえバッティングする心配がない場合でも、
> 名前空間は変数名やクラス名と同じで、
> グローバルなものは避けつつちゃんと名付けるのが
> あるべき姿だと思うのですが、それは違うのでしょうか?

わしもそーおもう。

ツールがそれを許さないなら致し方ないとはいいながら。

引用返信 編集キー/
■5100 / inTopicNo.9)  Re[7]: 型付データセットを好きな名前空間の下にいれるには?
□投稿者/ 渋木宏明(ひどり) (263回)-(2007/07/04(Wed) 13:56:00)
渋木宏明(ひどり) さんの Web サイト
>>たとえバッティングする心配がない場合でも、
>>名前空間は変数名やクラス名と同じで、
>>グローバルなものは避けつつちゃんと名付けるのが
>>あるべき姿だと思うのですが、それは違うのでしょうか?
>
> わしもそーおもう。

アプリケーションのプロジェクトに含める、アプリケーションに固有のものなら、全部同じ名前空間でもええやんと思うけど、駄目なん?

個人的には、小規模プロジェクトで、アプリケーションプロジェクトにデータセットが収まるなら同じ名前空間内に収めればいいと思うし、中大規模プロジェクトで、アプリケーション間でデータセットを共有するような場合はデータセットをクラスライブラリにしてしまえば名前空間は好きなヤツつけ放題、の2極で十分だと思うけどなぁ。

> ツールがそれを許さないなら致し方ないとはいいながら。

許さないつーかサポートしてないだけで禁じてまではいないわけで、既に

・手書きで直す
・データセットをクラスライブラリに追い出して好きな名前空間に収める

という回避案が示されています。

引用返信 編集キー/
■5101 / inTopicNo.10)  Re[8]: 型付データセットを好きな名前空間の下にいれるには?
□投稿者/ επιστημη (554回)-(2007/07/04(Wed) 14:14:30)
επιστημη さんの Web サイト
> アプリケーションのプロジェクトに含める、アプリケーションに固有のものなら、全部同じ名前空間でもええやんと思うけど、駄目なん?

アプリケーション内でユニークならそんなに厳密にやらんかて…ではありますね。

> 許さないつーかサポートしてないだけで禁じてまではいないわけで、既に
> ・手書きで直す
> ・データセットをクラスライブラリに追い出して好きな名前空間に収める
> という回避案が示されています。

スレ主さんはそれが気に入らんと仰ってはるんでしょう。

引用返信 編集キー/
■5102 / inTopicNo.11)  Re[6]: 型付データセットを好きな名前空間の下にいれるには?
□投稿者/ naclan (5回)-(2007/07/04(Wed) 14:21:46)
駄目なん?といわれると、
別にいいとはおもいます。
動けばいいじゃんの精神なら。

動かなくて困ってるわけではないです。


だんだんわかってきました。

Visual Web DeveloperでApp_Code内に
データセットを作るのは、あくまで簡易的な場合だけであると。

名前空間ふくめて本格的にちゃんとやりたい人は、
VWDでやるんじゃなく、クラスライブラリをつくるべきと。

ツールは簡易的なのに、中に書くコードは本格的ってのは
無茶な話であると。


わたしは、名前空間ってのは指定して当たり前だと思ってましたが、
世の中的にはそうでもないんですかね。

「名前空間なんて無しで、ルートにオブジェクトあってもいいじゃん。動けばいいじゃん、小規模なんだから。」
は、アリであると。
引用返信 編集キー/
■5103 / inTopicNo.12)  Re[7]: 型付データセットを好きな名前空間の下にいれるには?
□投稿者/ ぽぴ王子 (236回)-(2007/07/04(Wed) 14:45:49)
ぽぴ王子 さんの Web サイト
No5102 (naclan さん) に返信

No5020 (未記入 さん) の

> まずは言語をはっきりさせておこうか。
> VBであれば、
>
> ■No5017 (黒龍 さん) に返信
>>Fooってフォルダつくってその中にBarってフォルダつくってそこの中にDataSet作ってやればよかったと思います。Expressだと違うのかな??
>
> こうはならないので違うということになる。

これは読まれてますか?
(なんか放置プレイ気味だったのでちょっと気になりました)
引用返信 編集キー/
■5104 / inTopicNo.13)  Re[9]: 型付データセットを好きな名前空間の下にいれるには?
□投稿者/ なちゃ (44回)-(2007/07/04(Wed) 14:45:51)
まあ、Webに限って言えば、他から参照されることはまずあり得ないですからね。
実質問題はないあるいは少ないと言うことで、単純な方を取ったんでしょう。

動的コード生成関連で何か事情はあるのかもしれませんが…

この辺はツールやらの思想なのでまあってとこですね。
引用返信 編集キー/
■5105 / inTopicNo.14)  Re[10]: 型付データセットを好きな名前空間の下にいれるには?
□投稿者/ 囚人 (117回)-(2007/07/04(Wed) 14:46:29)
>「名前空間なんて無しで、ルートにオブジェクトあってもいいじゃん。動けばいいじゃん、小規模なんだから。」
>は、アリであると。

「動けばそれでよい」とは思っていませんが、私はアリだと思います。小規模とかにこだわらず大規模でも。

非常に複雑で超階層化された名前空間を作成されたら、それだけで苦痛になります。そももそも他に参照される心配のないアプリケーションのクラス郡に対して名前のバッティングなんて杞憂です。全部自分達で名前をコントロールできるのに。

名前空間があるせいで、クラス名の命名が安易になったりしたら逆効果です。

希望は、アプリケーションのクラスは全部ルートにぶっこんでほしい。DLL のクラスは名前空間をよく設計してほしい。それだけで非常に見通しがよくなります。
引用返信 編集キー/
■5106 / inTopicNo.15)  Re[11]: 型付データセットを好きな名前空間の下にいれるには?
□投稿者/ 渋木宏明(ひどり) (264回)-(2007/07/04(Wed) 14:55:12)
渋木宏明(ひどり) さんの Web サイト
No5105 (囚人 さん) に返信
> 希望は、アプリケーションのクラスは全部ルートにぶっこんでほしい。DLL のクラスは名前空間をよく設計してほしい。それだけで非常に見通しがよくなります。

コメント書いている間に書きたいことを全部書かれてしまった (^^;

引用返信 編集キー/
■5108 / inTopicNo.16)  Re[12]: 型付データセットを好きな名前空間の下にいれるには?
□投稿者/ naclan (6回)-(2007/07/04(Wed) 15:22:26)
動けばいいじゃん、ではなく
むしろそうした方が見やすい、ですか。
なるほどー。

確かにセンスがない人におかしな名前空間に
入れられるくらいなら、その方がいいですね。
ベストを目指してすべてを失うより、ベターなところを
手堅く取りに行くイメージでしょうか。
確かに開発チームの構成員によっては
その方式を選ぶのは強力だと思いますが、
MSのツールが最初からその方式しかサポートしない
というのがすごいです。

あと、ぽぴ王子さんの指摘されてる個所も
もちろん読んでます。その反応が
5034の最後の段落でした。


ツール上できないということと、無理すればできるということ、
そしてできない仕様でも納得できる理由
(納得できる理由であって、MSがそういう仕様にした本当の理由ではないけれど)
がわかったので、解決済みとします。
解決済み
引用返信 編集キー/
■5110 / inTopicNo.17)  Re[13]: 型付データセットを好きな名前空間の下にいれるには?
□投稿者/ ぽぴ王子 (237回)-(2007/07/04(Wed) 16:29:22)
ぽぴ王子 さんの Web サイト
No5108 (naclan さん) に返信

■No5108 (naclan さん) に返信

> あと、ぽぴ王子さんの指摘されてる個所も
> もちろん読んでます。その反応が
> 5034の最後の段落でした。

そうでしたか。見逃していました。どれどれ…

> ところで、c#ならフォルダに入れるだけだったのですか?
> 程度の低いコードを書きたくない人はc#使えということなの
> でしょうか。

わかんNEEEEEEEEeeeeee!!1!
全然気づきませんでした orz
C#「ではない」ということはわかりましたが、ということは
VB をお使いということでしょうか。

Windows フォームの話で恐縮ですが、VB だと基本的に名前空間
を意識せずにコーディングが可能だったと認識しています。
一応クラスに名前空間をつけたりすることはできるけれど、普通は
デフォルトの名前空間に全部押し込まれるような形で管理され
ていたと思います。

これはこれで「VB だから」で済んでしまいそうな気もするんですよね。
(それがいいのかどうかはおいとくとして)

解決されているので、そのあたりの話はまた別の機会に。

# とりこびとさんのBlogを読み直してみた俺ガイル。

解決済み
引用返信 編集キー/
■5113 / inTopicNo.18)  Re[14]: 型付データセットを好きな名前空間の下にいれるには?
□投稿者/ 片桐 (27回)-(2007/07/04(Wed) 17:21:16)
VBの名前空間って一番上に当たるのはアプリケーション名というか、
プロジェクトファイルのオプションにあるルート名前空間で指定する名前だったと思うのですけれど(^^;
だから、わざわざnamespaceつけなくても良いというか……
クラス作ると勝手にその配下になっちゃうというか……

グローバルな名前といいつつも、VBプロジェクトというディレクトリの中にある限り、
アプリケーションという大きなくくりの範囲内から出られないんじゃないかなぁ。
ファイル名=名前空間、というお話になるのもさもありなん……


解決済み
引用返信 編集キー/
■5119 / inTopicNo.19)  Re[15]: 型付データセットを好きな名前空間の下にいれるには?
□投稿者/ 囚人 (118回)-(2007/07/05(Thu) 00:06:44)
>コメント書いている間に書きたいことを全部書かれてしまった (^^;

わはは。やってしまいました。


>確かにセンスがない人におかしな名前空間に
>入れられるくらいなら、その方がいいですね。
>ベストを目指してすべてを失うより、ベターなところを
>手堅く取りに行くイメージでしょうか。
>確かに開発チームの構成員によっては
>その方式を選ぶのは強力だと思いますが、
>MSのツールが最初からその方式しかサポートしない
>というのがすごいです。

まぁそれを狙っての事かどうかは分かりませんが、好意的に受け取ってよいですね。
引用返信 編集キー/
■5123 / inTopicNo.20)  Re[15]: 型付データセットを好きな名前空間の下にいれるには?
 
□投稿者/ とりこびと (29回)-(2007/07/05(Thu) 09:29:25)
とりこびと さんの Web サイト
No5110 (ぽぴ王子 さん) に返信

> 一応クラスに名前空間をつけたりすることはできるけれど、普通は
> デフォルトの名前空間に全部押し込まれるような形で管理され
> ていたと思います。

片桐さんも書かれていますが、プロジェクトのプロパティのルート名前空間に設定したものが、

C♯の場合はIDE上でコード上に書かれる
Visual Basic の場合はコンパイルオプションとして機能する

っていう違いがあったと思います。

・・・C♯の場合はフォルダ構成も考慮されるんでしたっけ?

> # とりこびとさんのBlogを読み直してみた俺ガイル。

いつもありがとうございます。


No5113 (片桐 さん) に返信

> プロジェクトファイルのオプションにあるルート名前空間で指定する名前だったと思うのですけれど(^^;

>グローバルな名前といいつつも、VBプロジェクトというディレクトリの中にある限り、
>アプリケーションという大きなくくりの範囲内から出られないんじゃないかなぁ。

ルート名前空間は空白にできますね。
これで、外に出れるんじゃ?と思いましたが、読み方間違っていますか?



Visual Basic の名前空間は機能しないような感じに読めてしまったくだらない読み手のとりこびとでした。
解決済み
引用返信 編集キー/

次の20件>
トピック内ページ移動 / << 0 | 1 >>

管理者用

- Child Tree -