1 名前:● [2008/01/20(日) 11:29:38 ] C#やVisual Basic.NETで作られたソフトウェアはソースコード丸見え www.aisto.com/roeder/dotnet/ ネイティブアプリケーションならパッカーが使えてもドトネトは中間言語なので難読化でしか対策できない C#厨残念だったね 常にオープンソースで開発したいの?変わった人達(笑)
296 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 12:41:39 ] >>295 C#の言語仕様を一通り覚えて、IDEも使い慣れてくると感想は変わるんじゃないかな。 私はそうだったよ。
297 名前:295 [2008/08/03(日) 19:32:14 ] >>296 なるほど その日がくるまで「打つべし」の生活つづけてみよーーー C#の言語仕様+.Net Framework の使い方をもう少し押さえないといかんかなと #今後者がメイン
298 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 02:15:43 ] .Net Framework の使い方って何?w
299 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 02:21:37 ] 295 じゃないがまず BCL も膨大だし、CLR 自体複雑だし VS も絡んできたり くるとするとその辺含めた全体的なものを言葉にするなら .NET Framework の 使い方でいいだろたぶん
300 名前:295 [2008/08/04(月) 10:44:47 ] いま ちらちら見てるのが「プログラミングMicrosoft .NET Framework 第2版」 だからねぇ・・・ #クラスライブラリ の方が自分的にはしっくりくるかな
301 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 21:26:12 ] 実際に仕事で使った方が早いよ。 割と身近でも使われてるっぽい。 webでいうとgyaoがC#+asp.net
302 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 21:51:26 ] 勉強することなんてほとんどないと思うんだが・・・。
303 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 23:10:22 ] いや一杯あるだろ
304 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 17:09:49 ] >>301 たしかSilverlightも使ってるんだっけ ほかに日本の大手で使ってるところを知りたいな
305 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 20:08:28 ] >>303 ゼロとは言わないがクラスライブラリの使い方なんて コード補完と勘だけでいける。わからないときはちょっと ヘルプを引けばいいだけ。これを勉強とは言わない。
306 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 20:36:03 ] その程度でわかるライブラリばかりじゃないだろ。 その程度でわかるライブラリも多いけどさ。 まあその程度でわかるものしか使わなくて済むことしかやってないなら 勉強というほどのものはいらんが。
307 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 23:07:28 ] そういや最近だと Enumerable.Aggregate の説明は激しく 意味わからん日本語だと思うのだがあれ何とかならんのか。
308 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 19:51:27 ] >>306 その程度でわかるライブラリばかりなのが.NET。 MFCに比べたら天国のようなもの。
309 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 20:12:07 ] MFCと比べなきゃならない時点でオワってる。
310 名前:デフォルトの名無しさん [2008/08/06(水) 21:04:35 ] 今まではC++信者だったが、C#がwinndowsプログラミングでは最強だと いうことがわかってショックだった。 ま、ミーハーなレベルのWindowsプログラミングの部分(Viewに相当 するところ)ではね。 でも、核の部分はやはりC++のネイティブコードが必要だと思う。 C++/CLIはunmanaged C++とC#やVBとの橋渡しをするというけど、 VS2008では、まだ中途半端だと思う。 ネイティブC++をmanaged C++でラップ(DLL化)してC#から呼び出す というけど、これって定型的な手続きだから、VC++はもうNative 路線に徹底して(MFCの仕様をできるだけNetFrameworkと一致させ る、あるいはNetFramworkをNative化する)、これらをC#やVBから 透過的に呼び出す(COMじゃなくて、できるだけそ最小限変更ですむ コードで対応できる)メカニズムを開発してほしい。 型推論なんて要らん
311 名前:デフォルトの名無しさん [2008/08/06(水) 21:13:36 ] MFCはやっぱり消える運命なのか。せっかく勉強したのに
312 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 21:14:55 ] いまいちだったからね
313 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 23:32:47 ] いまいちっつーか出来たのが古いので基本設計が古すぎる 「今」やさらに「将来」の C++ から完全に置いてけぼり食らってて API に対するカバー範囲が広い(つまり便利)っつー利点ぐらい しかない。 ATL/WTL で新規はもう正直いいだろうっていうか。 >>310 一例に過ぎんがアローケータみたいな基本的なことさえ C++ は難しい問題山積みなので現実時間だとその方向たぶん 無理。 相互運用性考えて作ってないから仕方ないんだろうけど。 C レベルなら何とかなるんだが(というか unsafe とか Marshaler で 何とかしとるよな…MSDN マガジンあたりで C ヘッダ解析して C# 化 とかしてたし)。
314 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 01:08:11 ] となるといま現在,どれに重きを置いて学習したらいいんだろうか
315 名前:デフォルトの名無しさん [2008/08/07(木) 01:42:06 ] MidoriでWinAPI厨も涙目だしな
316 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 07:47:12 ] どうでもいいけどOffice2007とかで使われてるリボンをサポートしてるのってMFCだけだよね。
317 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 08:44:42 ] ヒント: M$社内でMFCは使われてない
318 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 08:54:02 ] どうでもよくねーよTT
319 名前:デフォルトの名無しさん [2008/08/08(金) 11:05:26 ] >>305 イテレータの実装とか、appdomain,refrection,非接続型でのversion number パターンとか、helpだけでわかる奴は尊敬するよ
320 名前:デフォルトの名無しさん [2008/08/08(金) 11:07:32 ] あと ネットーワーク+マルチスレッドを使ったPGもね
321 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 11:22:20 ] Cα再開のお知らせ
322 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 21:27:07 ] 小難しいことを言おうとしてスペルミスしちゃうやつは尊敬できない
323 名前:デフォルトの名無しさん [2008/08/09(土) 12:25:01 ] スペルミスはともかくw 自分が押さえないといけないと思ってることなので 何とでも思ってくれ
324 名前:デフォルトの名無しさん [2008/08/09(土) 12:56:03 ] Javaも駄目だったし、C#も駄目だろ。まだまだC++全盛w
325 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 13:31:29 ] まあ全部使うんですけどね
326 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 17:26:54 ] UMLで組んでいる俺は勝ち組
327 名前:デフォルトの名無しさん mailto:sage [2008/08/09(土) 21:40:00 ] UMLとかワロス
328 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 09:19:37 ] UMLってグローバルスタンダートとか言うワリに カナダの会社で使ったらUML知らんヤツばっかりでビビった
329 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 12:50:18 ] 日本人には「海外で使われてる」とか「世界で○○」とか言われると思考が停止しちゃって簡単に信じ込んじゃうやつが多いからな。
330 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 14:41:16 ] iPhoneみたいだね
331 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 16:47:11 ] >>328 よくわからんがJavaの世界では普及してるのでわ?
332 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 07:45:10 ] 全然
333 名前:デフォルトの名無しさん [2008/08/16(土) 00:27:41 ] C#3.0から見ると、今クラスと呼ばれているもののほとんどが必要ないことがわかる。 基本クラスだけ作り、継承の変わりにデリゲートにラムダ式を差し込んでやればいい。 継承によって発生する全ての名前、これを覚えている必要がなくなる。 コード量が驚くほど減り、見通しがよくなる上に、さらなる拡張をしたければその場でラムダ式をちょいと書けばいい。 いちいち深呼吸してクラス名から考え始める必要はない。実に直観的で全てがスムーズに運ぶ。 相手に何かするところはデリゲートに、自分に何かするところはメソッドにする。 自分と相手のメソッドとデリゲートを繋いでやれば、それで全部事足りる。 参照する必要はない。参照はラムダ式が裏で勝手に作っている。
334 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 01:28:51 ] ものすごい愚かな発想だねw いや「馬鹿の一つ覚え」とはよく言ったものだ。
335 名前:デフォルトの名無しさん [2008/08/16(土) 01:32:13 ] もうinterfaceもいらないだろう。 interface IHoge{ string Name{ get; } int ID{ get; } } class Class1{ IHoge hoge; public Class1(IHoge hoge) { this.hoge = hoge; } public void Method() { Console.WriteLine("Name = {0}, ID = {1}", hoge.Name, hoge.ID); } } これはC#1.0の考え方だ。C#3.0だと class Class1<T>{ Func<T, string> Name{ get; set; } Func<T, int> ID{ get; set; } T Obj{ get; set; } public Class1(T obj, Func<T, string> name, Func<T, int> id) { this.obj = obj; Name = name; ID = id; } public void Method() { Console.WriteLine("Name = {0}, ID = {1}", Name(Obj), ID(Obj)); } } コッチの方がずいぶん手軽で自由に出来る。
336 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 04:21:05 ] ゴメン、ボク頭悪いから、大差無いように見える
337 名前:デフォルトの名無しさん [2008/08/16(土) 04:23:26 ] Class1<T> ってなに?
338 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 07:45:41 ] ジェネリックスだろ
339 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 07:46:44 ] >>333 はRubyやれ
340 名前:デフォルトの名無しさん [2008/08/16(土) 09:03:26 ] IDEが重すぎるわけだが
341 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 09:05:11 ] >>335 俺も最近その思想になってる。 最初は interface で作るけど、複数の実装クラスを作り進めるうちにだんだんと実装の内容がどれも似てくるのな。 それで、バグに気づいたりI/Fの定義を拡張したりすると、全ての実装クラスを修正しなければならなくなったり。 理論的には実装コードには依存してはいけないはずだけど、個人でコーディングする分には、コードごと共有できる かたちのほうがメンテが楽だなあ。
342 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 09:08:32 ] 実装コードというより、大枠のフローまで interface の定義に含められたほうがいいという解釈かなあ。
343 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 09:14:26 ] >>341 はRubyやれ
344 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 10:17:18 ] わぁ・・・C#簡単すぎ糞ワロタ
345 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 10:40:31 ] 外部に対して要求を明示するという意味では強い型付けは意味があると思うが その都度インタフェースを作るのは面倒 これを解決するにはメソッドの宣言の文法に鍵がありそうな気がするが
346 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 11:22:16 ] >>345 もうリフレクションでいいんじゃね?
347 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 11:27:31 ] >>346 問題をどう解決するのかkwsk
348 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 11:53:26 ] >>347 ttp://itpro.nikkeibp.co.jp/free/ITPro/OPINION/20050426/160128/
349 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 11:58:11 ] >>348 リフレクション関係ないじゃねーか
350 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 12:20:33 ] >>335 ってネタでいってるの? それとも大真面目? 大真面目でいってるのならちょっと考え方おかしいと思うなあ。 >>335 の考えは>>333 の >いちいち深呼吸してクラス名から考え始める必要はない。 に凝縮されていると思うんだが、名前を付けられることは本来「福音」なはずなのに これを面倒を強いる「呪い」と考えているところが面白いというかなんというか。
351 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 12:23:08 ] >>335 ん?型パラとObjいらなくね? class Class1 { readonly Func<string> getName; readonly Func<int> getID; public Class1(Func<string> getName, Func<int> getID) { this.getName = getName; this.getID = getID; } public void Method() { Console.WriteLine("Name = {0}, ID = {1}", getName(), getID()); } } で、Class1のインスタンスを作るときに new Class1(() => obj.Name, () => obj.ID); みたいな感じで。
352 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 12:24:11 ] >>349 リフレクションを使った動的型付けとしてDLRが開発されて、 Silverlight 2.0で実戦投入されるんだよ。
353 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 13:46:56 ] 関数型言語やれってこった
354 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 15:31:31 ] もうお前ら F# 使えよ。
355 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 18:19:51 ] G#おすすめ
356 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 18:48:58 ] IronHaskellマダァ-? (・∀・ )っ/凵⌒☆チンチン
357 名前:デフォルトの名無しさん [2008/08/17(日) 20:28:25 ] >>354 7th付けたほうが かっこいいかも
358 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 21:27:47 ] ドミナントモーションですな。 そしてまたC#に戻ると・・
359 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 07:30:11 ] >>355 Obj-Cのほうがおすすめ
360 名前:デフォルトの名無しさん [2008/08/30(土) 15:32:16 ] C++に国際標準がある以上、似たような言語でJavaのように独自のクラスライブラリを 作ろうとすると、C#しか選択枝がないんじゃない? J#で懲りた感があるが。
361 名前:デフォルトの名無しさん mailto:sage [2008/08/30(土) 21:02:41 ] Windowsだけで飯食える人がうらやましい
362 名前:デフォルトの名無しさん [2008/08/31(日) 07:58:30 ] Visual Studio 2005 のインストール作業が失敗した。 「エラー 1935 です。」とかいうダイアログが出て、何度やっても失敗する。 あまりにも頭に来たので、もう .NET を使った開発はしないことにした。 少なくとも、選択の余地がない仕事以外では一切使ってやらない。 言語はどれでも良いってことになったら、ネイティブか Java でやってやる。 .NET なんざ糞喰らえだ!
363 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 11:33:51 ] 君がそう決めたんならそれでいい。たぶん間違ってないだろう。 .NET開発の仕事が他人に行くだけだから。
364 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 15:07:28 ] ぐぐれば解決策がわかるものをすぐにぶちきれるようでは M$との相性どころか開発の仕事そのものに向いていないのでわ?
365 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 16:07:02 ] >>362 support.microsoft.com/kb/872904/ja
366 名前:デフォルトの名無しさん [2008/08/31(日) 20:02:47 ] >>361 *nix系だけで飯食える人の方がうらやましいけど
367 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 20:58:02 ] C#が終わった理由があるとすれば、それはバリアント型を組み込んだ事だな また変態ソースを読む仕事が始まるお( ^ω^)
368 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 21:02:07 ] varは型推論。コンパイル時に変数の型が決まっていることに変わりはない。 バリアント型とは似ても似つかない。
369 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 21:33:21 ] というか var はオーバーロードとか型パラメータの省略とかと 同レベルの機能だよ、実際 慣れてきたら「ここ」に推論が働かないのはある意味不自然と わかってくる。「そこ」は読んでくれるのに統一性ないってな
370 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 21:40:50 ] >>369 誰に何を主張したいんだ? 要点が全くまとまっていないぞ
371 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 21:48:43 ] 何がいいたいかわからんが、俺も前から Button b = new Button() てな書き方は悠長だなと思ってました。
372 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 22:05:08 ] 冗長と言いたいのか
373 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 22:08:36 ] 悠長ってワロタ
374 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 22:16:49 ] >>370 「型から推論する」なんてのが入ったのは var よりもっと前からで var も同レベルだよ って話だよ。いまさら取り立てて騒ぐような機能じゃない。 オーバーロードも型パラメータの省略も型から推論してるだろう、「それ」が宣言部分 でも使える機能が var だよぶっちゃけ。 今まででも式内に型は明示しなくてもいいし、型によって呼ぶメソッドがころころ変えら れたりもしてた、型パラメータも省略されまくりなわけだ。そこまでやっといて逆になんで 宣言だけ、左辺だけできない。そう考えると不自然だろって話だ。 もちろんステートメントを超えてとか匿名型がねって別の話もあるんだがな。
375 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 23:40:59 ] queryの型を書くのは嫌だお
376 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 00:26:36 ] C#の型推論はショボすぎる こんなんありがたがってる奴はOcamlとかやってみろ
377 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 02:15:24 ] なんで関数型と比べたくなるのか理解できない。
378 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 04:38:32 ] >>374 色々勘違いしている。>>376 みたいな。 >>376 C#の型推論はlinqのためのものであって、関数型言語のような型推論は最初から目指してないんだって
379 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 11:11:10 ] ドトネトでWin32APIを刷新しようとした。 しかしできなかった。 ドトネト、C丼がVMのデファクトを取りえた。 しかし現実はそうならなかった。 国際標準で挽回しようとした。 しかし見込みなし。 Liveで刷新して認知度を高めようとした。 しかし無理だった。 それだけw
380 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 12:11:57 ] まったくの門外漢だが、標準化されたC#処理系の要求を 満足するVM実装ってWindowsのほかにあるのけ?
381 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 12:16:26 ] MONOの事を聞いている?
382 名前:デフォルトの名無しさん [2008/09/01(月) 13:44:02 ] >>379 独り言なら他でどうぞ
383 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 14:02:56 ] >>310 > 今まではC++信者だったが、C#がwinndowsプログラミングでは最強だと > いうことがわかってショックだった。 当たり前だろ、WindowsもC#もM$が作ったものなんだから。 わざと最強にしてやらんとM$のしめしがつかないだろ
384 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 14:04:45 ] じゃあなんで、C丼@ドトネトアプリも見かけなくて、 C++/MFC・MDIアプリが姿を消したんだろ。 上下ともM$社内では使われてないwww
385 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 14:32:23 ] >M$のしめしがつかないだろ なんでブビ厨は死滅したの?
386 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 15:13:04 ] >>384 使われてるだろ。 C#の開発者がインタビューで言ってた。
387 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 15:18:49 ] ヒント: オフィス
388 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 16:31:06 ] 全角厨うぜえ
389 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 01:58:22 ] ドトネトが最強・・?
390 名前:デフォルトの名無しさん [2008/09/02(火) 08:19:43 ] C++の標準クラスライブラリが、時代遅れ...。 web-basedのプログラミング隆盛の時代に、COBOLみたいになっちゃうよ。
391 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 08:22:16 ] あ?そんな事を言うのであればJavaも同じ穴の狢なんだが。
392 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 08:23:04 ] と思ったらC#ではなくてC++か。 C++はCと基本的に同じ思想で「足りない物はライブラリで」だから。
393 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 08:43:51 ] ドトネトは全てが中途半端 ・足りない機能 ・VMに必要な軽さが無い(というか、重い) ・C/C++系を素直に使えない かといってオブジェクトベース言語の決定打でもない
394 名前:デフォルトの名無しさん [2008/09/02(火) 09:44:49 ] Webプログラミングはさ、数あるコンピュータ技術の中ではピラミッドの最下層なわけで、 仕事も労働者も量が多いだけで単純作業なんだよね。 フレームワーク使ったり、テキストいじって、DBの内容を表示するだけだからね。 だからそんなのにわざわざC++なんて持ち出す必要ないんだよ。 大企業でコンパイラとか組み込みとかシミュレーション系とか画像・動画解析とかやってる 高度技術者が使うものなんだよね。 Webは趣味とか片手間でやるなら楽しいけど、主業務にしてる人は今後大変だろうな。 餃子の早包み作業を中国人と争ってるようなもんだからな。
395 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 10:24:59 ] >Webプログラミングはさ、数あるコンピュータ技術の中ではピラミッドの最下層なわけで、 ↑ グーグルはどうなんだよ? それを必死でおいかけてるM$はどうなんだよ?
396 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 11:24:05 ] グーグルのコアはバックエンドのクローラや分散システムやランキングアルゴリズムであって、 Web部分はそれらをユーザに提供するためのただのシステムの一部のインターフェースだよ。 ピラミッドの最上位の技術も扱ってる上で簡単な技術もやるのと、最下層技術だけやるのとでは 天地の差だよ。 フカヒレの添え物として一個千円の餃子売ってるのと、冷凍餃子じゃ同じもの扱ってる感じしないでしょ。