データベースプログラムをMFCで組みたい

解決


ロック  2008-05-15 15:13:34  No: 68339  IP: [192.*.*.*]

.Netを使わずにMFCを使ってSQL Server2005を使用した
データベースプログラムを作成しようと思っています。
そこで質問ですが、ADOとADO.NETの違いはどの位あるのでしょうか
単に.NETを使うのがADO.NETで、性能的にはほぼ同じと考えて
よろしいのでしょうか?
MFCを使ってやろうとした場合、ADO.NETは使えず、無印のADOを
使うということで間違っていないでしょうか?

また、ADOでサーバーにあるデータベースをネットワーク(LAN)ごし
に参照することは可能なのでしょうか?
(.NETが付いてないとネットワークが使えないイメージが...)

よろしくお願いします。

開発環境
VS2005(MFC)

編集 削除
シャノン  2008-05-16 14:37:33  No: 68340  IP: [192.*.*.*]

.NET Framework と MFC は併用できますが、それでも .NET Framework は使わないということでいいですか?

編集 削除
シャノン  2008-05-16 14:38:21  No: 68341  IP: [192.*.*.*]

> また、ADOでサーバーにあるデータベースをネットワーク(LAN)ごし
> に参照することは可能なのでしょうか?
> (.NETが付いてないとネットワークが使えないイメージが...)

もちろん ADO でも使えます。

編集 削除
ロック  2008-05-17 09:14:55  No: 68342  IP: [192.*.*.*]

ありがとうございます。

> .NET Framework と MFC は併用できますが、それでも .NET Framework は使わないということでいいですか?

あれ?
.NETを使うにはC#で、VC++で.NETを使うためにはVS2005では駄目で
Managed C++というソフトを使わなければならず、MFCと共存できないと
思っていましたが違うのですか?

そもそも、MFCは使わず.NETを使うのがこれからの流れなんですかね・・・

編集 削除
シャノン  2008-05-17 15:44:50  No: 68343  IP: [192.*.*.*]

> 違うのですか?

Managed C++ というソフトはありません。
Managed C++ というのは Visual C++.NET 2003 までで使用できた言語の名前です。
2005 以降でも使えないことはありませんが、2005 以降で C++ から .NET Framework を使うには C++/CLI という新しい言語を使うことが推奨されます。
Managed C++ はどうだったか記憶していませんが、C++/CLI は間違いなく MFC と併用することが可能です。
言語とソフトは区別してくださいね。

> そもそも、MFCは使わず.NETを使うのがこれからの流れなんですかね・・・

それを言ったら、そもそも、C++ を使い続けるのが主流かどうかという疑問もあります。
.NET Framework を使いたいなら、C++/CLI という選択肢は、間違いなく主流ではありません。
.NET Framework を使うなら C# でしょう。
ただし、C# よりも C++ の方がうまく処理できる分野というのもあります(そういう所は大抵、.NET Framework の適用が適さなかったりするのですが)。
あるいは、過去に MFC で作った大量の資産があり、それを C# に移植するにはコストがかかりすぎるという場合もあるかもしれません。
そういった、双方の得意分野をつなぐ部分とか、過去の資産の活用の集団として、C++/CLI を使うのが良いのではないでしょうか。

編集 削除
シャノン  2008-05-17 15:45:52  No: 68344  IP: [192.*.*.*]

> 過去の資産の活用の集団
過去の資産の活用の手段

編集 削除
ロック  2008-05-17 17:20:41  No: 68345  IP: [192.*.*.*]

シャノンさん、ありがとうございます。

ここにきて(今更ながら)、C#とC++/CLIの関係が理解でき
Wikiに載っているC++/CLIの内容がわかった気がします。

> Managed C++ はどうだったか記憶していませんが、C++/CLI は間違いなく MFC と併用することが可能です。
という事は、MFCのCStringとC#のStringを同時に使えるということですか
CStringに限らず、こういった同じ結果を返すけど処理の方法が違うといった事が
沢山出てきそうなので、MFCを使うかC#を使うかの2択でC++/CLIは除外したいと思います。
(後から見る人が嫌いそうなソースになりそうですし)

> 言語とソフトは区別してくださいね。
すみません、勘違いしてました。

・C#は痒いところに手が届かない(と聞いていた)
・MFCでの開発経験しかない
・でも、よく見るサンプルは.NET
という理由の中でMFCで開発と思いましたが、これを期にC#に手を出してみたいと
思います。
ADO.NETからASP.NETという、Webアプリケーションへの道も開けるみたいですし

編集 削除
どら  2008-05-17 17:33:19  No: 68346  IP: [192.*.*.*]

Webアプリケーションへ発展させるなら、C#の方を選択するのは良いかもしれないですね。

僕は昔からC、VC++でMFCを使わずに開発しています(個人的にあまりMFC好き
じゃないので)。
無謀にもデータベースへの接続はADO、ADO.NETを使わずにODBC SDKを使ってい
ます(いまさら古すぎますよね、きっと使っている人殆どいないんだろうなぁ)。
情報は少ないですが、やってやれないことは無いです(^^;

頑張ってください!!

編集 削除
シャノン  2008-05-18 15:22:31  No: 68347  IP: [192.*.*.*]

> という事は、MFCのCStringとC#のStringを同時に使えるということですか

使えます。が、

> CStringに限らず、こういった同じ結果を返すけど処理の方法が違うといった事が
> 沢山出てきそうなので、MFCを使うかC#を使うかの2択でC++/CLIは除外したいと思います。
> (後から見る人が嫌いそうなソースになりそうですし)

という可能性は確かにあり、どちらかにするのは賢明な選択肢だと思います。
MFC と .NET Framework を併用することはできますが、それを推奨するものではありません。
最初の書き込みでは、併用できないという誤解があったようなので、それを解かせて頂きました。

> ・C#は痒いところに手が届かない(と聞いていた)

それは確かにあります。

いまさらですが、C# で Windows アプリを作るのには、2つの流儀があります。
一方は Windows Forms アプリ、もう一方は WPF アプリと言います。
Windows Forms アプリの方は、同等のものを MFC でも作ることができますが、WPF アプリを VC++ で作ることはできません。
C# でしか(VB.NET でも可能ですが)手が届かない領域もあります、ということで。

で、そういえば一番最初の疑問に答えていなかったのでこれもいまさらですが、ADO.NET は .NET Framework の一部ですので、C++/CLI でない MFC から使うことはできません。

> これを期にC#に手を出してみたいと思います。

頑張ってください。

編集 削除
ロック  2008-05-19 10:51:51  No: 68348  IP: [192.*.*.*]

みなさん、解決チェック後もありがとうございます。
(ちょっとうれしいです。)

現在、C#等の前にSQL Server(SQL文)の勉強をしています。
プログラムについては、まだまだ先になるかと思いますが
何かありましたら、その際はよろしくお願いします。

編集 削除