- 1 名前:デフォルトの名無しさん mailto:sage [2017/01/28(土) 16:46:53.58 ID:op86qfG/.net]
- ■Visual Studio 2015 Community & Express (無償の統合開発環境)等はこちら
www.visualstudio.com/downloads/ ■コードを貼る場合はこちら ideone.com/ ■前スレ C#, C♯, C#相談室 Part91 echo.2ch.net/test/read.cgi/tech/1467211515/ ■次スレは>>970が建てる事。 建てられない場合は他を指定する事。
- 893 名前:デフォルトの名無しさん mailto:sage [2017/04/15(土) 13:18:16.99 ID:GC6K0tB8.net]
- >>823
これ、まともに回答しようと思うとひどく大変なんだが…… 823がGCの内部実装を把握しているうえでの指摘にも見えるし、 初心者の思いつきの質問にも見えるし…… 初心者向け: ヒープ確保したら0にクリアされてる メモリを回収後、再利用されるまでに0クリアする必要があるってこと 把握してる人向け: メモリコンパクション時にページングの機構使って0クリアしてるのかってことなら、 .NET Core のソースで確認しようと思ったけど gc.cpp だけでも1.2MBあって挫折した >>850 初心者のうちは気にしなくていいよ
- 894 名前:デフォルトの名無しさん mailto:sage [2017/04/15(土) 13:43:04.38 ID:5VFPMUgC.net]
- >>846
C#は式指向のシンタックスを目指してるから、あくまでステートメントに拘るPythonとはだいぶ方向性が違うよ 可能な限り全てのメソッドを式形式で定義する縛りでコーディングしてみたらいい そうすればC#7の仕様の意図するところは簡単に理解できる
- 895 名前:デフォルトの名無しさん mailto:sage [2017/04/15(土) 14:29:19.96 ID:56TRC7nM.net]
- みんな詳しすぎ
頭いいんだな
- 896 名前:デフォルトの名無しさん mailto:sage [2017/04/15(土) 14:40:07.25 ID:3WGNKYp+.net]
- >>842
>>843 思ったけど、あのVTuneってそんな機能あるんかな?
- 897 名前:デフォルトの名無しさん [2017/04/15(土) 15:19:31.88 ID:A0YDVHHt.net]
- 昔Excelを弄ってた時、Excelのオブジェクト解放したはずなのに
単体テストし終わってからタスクマネージャー見るとExcelが一杯残ってた(通称ゾンビ)。 シートやらブックやら解放してから最後にExcel本体解放してってやってたけど 今は一発で解放できるんだよね? メモリ管理とか気にしないけど、こういうのは気になる。
- 898 名前:デフォルトの名無しさん mailto:sage [2017/04/15(土) 15:29:43.17 ID:8JN0d/j3.net]
- 所謂アンマネージリソースを閉じてないとC#であってもゾンビ化することはたまにある
- 899 名前:デフォルトの名無しさん mailto:sage [2017/04/15(土) 15:39:12.33 ID:eeh5f4V4.net]
- >>859
Excelは無理だよ、細かくReleaseComObjectしなきゃ駄目だし、しても残る時は残る。 残ってしまう事を前提に組むしかない
- 900 名前:デフォルトの名無しさん mailto:sage [2017/04/15(土) 15:41:12.30 ID:aGMB9daN.net]
- >>861
しても残る時は残る、はし足りないだけでは。
- 901 名前:デフォルトの名無しさん mailto:sage [2017/04/15(土) 15:43:39.01 ID:eeh5f4V4.net]
- >>857
自分の書いた内容が正しいという流れになるまでしつこく続ける自演キチガイが一匹いるだけ。 もう相当昔から粘着しているからいい年だと思うんだが、よく生活できてるなって感じだな。 それ以外の人は普通だよ。
- 902 名前:デフォルトの名無しさん mailto:sage [2017/04/15(土) 15:58:16.95 ID:3WGNKYp+.net]
- ちなみに俺は違うからな
- 903 名前:デフォルトの名無しさん mailto:sage [2017/04/15(土) 16:02:07.82 ID:eeh5f4V4.net]
- 自分が得意じゃないと思う領域は黙っておけ、そして誰か
- 904 名前:詳しい人がレスするまで
その質問を流すなキチガイ あと、自分の得意な領域に引き込もうと変な流れに作り替えるな。 掲示板が機能しなくなる どうせなら死ね とまあそんな所ですな [] - [ここ壊れてます]
- 905 名前:デフォルトの名無しさん mailto:sage [2017/04/15(土) 16:06:10.39 ID:OxStzCoo.net]
- >>863
気づいてないみたいだけど、悪いけど君の態度も相当エキセントリックに見えるよww 少なくとも>>832は文脈的に妥当な反論をしているようにしか見えんけど、 「俺にたてつく奴はいつものキチガイ(って誰だよw)だ!!」って感じでかなり普通じゃない。 余計なお世話だろうけど、いい歳こいてるんだろうからもうちょっと自分を客観的かつ批判的に 見ることを覚えた方がいいんじゃないんだろうか。
- 906 名前:デフォルトの名無しさん mailto:sage [2017/04/15(土) 16:07:40.04 ID:lvAT8XK9.net]
- >>859
> 昔Excelを弄ってた時、Excelのオブジェクト解放したはずなのに > 単体テストし終わってからタスクマネージャー見るとExcelが一杯残ってた(通称ゾンビ)。 ちゃんと ReleaseComObject(comObject) 呼んでないだけだろ なんで IDisposable にして Dispose で解放するようにしなかったのか謎
- 907 名前:デフォルトの名無しさん mailto:sage [2017/04/15(土) 16:09:12.98 ID:eeh5f4V4.net]
- 駄目だな、このキチガイ・・・
はよ死ね
- 908 名前:デフォルトの名無しさん mailto:sage [2017/04/15(土) 16:13:19.25 ID:C33P0hB8.net]
- デストラクタの動作タイミングが制御できない時点で逆にいろいろ管理できなくなってトラブルの元になってる。
結局のところ欠陥言語なのだ。
- 909 名前:デフォルトの名無しさん mailto:sage [2017/04/15(土) 16:16:13.49 ID:OxStzCoo.net]
- >>867
根拠があるのかと言われれば正直ないけど、ぶっちゃけ全部のオブジェクトを いちいちReleaseComObject呼ぶなんてやってられないし、やらなくてもそれで 「ゾンビ」が残ることはないようだから、必要ないんじゃないのかな。 そんなことよりプロパティが返すオブジェクトをメソッドチェーン的に使わない(面倒でもいちいち変数に 入れてから使う)とか、その手の基本が大事だね
- 910 名前:デフォルトの名無しさん mailto:sage [2017/04/15(土) 16:18:04.02 ID:eeh5f4V4.net]
- Excelのケースは多分デストラクタというより、Excelのスレッドモデルに問題があるんだと思う。
lock方式でもInvoke方式でもない、少々行き当たりばったりな排他制御をしてるようだ。 古いアプリなので今更改められないのだろうね。
- 911 名前:デフォルトの名無しさん mailto:sage [2017/04/15(土) 16:31:33.32 ID:OxStzCoo.net]
- エンゼルハートって映画あったな
探偵がロバートデニーロに殺人鬼を探すように依頼されるが、探していた 殺人鬼は探偵自身だったってオチ 「いつものキチガイ」も実は言ってる本人自(w
- 912 名前:デフォルトの名無しさん mailto:sage [2017/04/15(土) 16:33:19.87 ID:3WGNKYp+.net]
- はいはい、俺が悪かったってことで仲直り。
今後はこのスレ貢献に頑張ろう…でいいやん。 な
- 913 名前:デフォルトの名無しさん mailto:sage [2017/04/15(土) 16:33:31.45 ID:nXYdKgHp.net]
- ExcelCreatorが楽すぎて戻れない
- 914 名前:デフォルトの名無しさん mailto:sage [2017/04/15(土) 16:36:28.32 ID:eeh5f4V4.net]
- >>873
普通なら、それでOKなんだけどね この人2000年頃にやってきて、際限なく荒らしまくって誰もいない状態にしやがったから。 たまーに戻って死んだかなとか見ているんだが、ご健在のようです。(はよ死ね
- 915 名前:デフォルトの名無しさん mailto:sage [2017/04/15(土) 16:57:08.88 ID:aGMB9daN.net]
- >>870
そんな基本は聞いたことが無いのだけど、 プロパティが返すオブジェクトをメソッドチェーン的に使うと、どういう問題があるの。
- 916 名前:デフォルトの名無しさん mailto:sage [2017/04/15(土) 17:07:01.27 ID:mW9XRjOW.net]
- Disposeされないオブジェクトが量産されてリソースリークするに決まってんだろ
一つプロパティにアクセスしたら結果を変数に入れて礼儀正しくDisposeする これをすべてのメソッド呼び出しとプロパティ・インデクサーアクセスについて行う
- 917 名前:デフォルトの名無しさん mailto:sage [2017/04/15(土) 17:09:24.07 ID:nXYdKgHp.net]
- >>877
おもしろい冗談だな
- 918 名前:デフォルトの名無しさん mailto:sage [2017/04/15(土) 17:16:22.23 ID:UPL5S+RA.net]
- return a,b;で返したのを
こんな感じで受け取れれば楽なんだけどな a,b=method(c);
- 919 名前:デフォルトの名無しさん mailto:sage [2017/04/15(土) 17:31:49.05 ID:OxStzCoo.net]
- >>876
ゾンビ なんだかVBerチックなおまじないのように聞こえるけど
- 920 名前:そうじゃない。
もっとも、どうしてそうする必要があるのか、詳しい理屈は忘れちゃったけどw 明示的に変数で参照されてないCOMオブジェクトは相互運用アセンブリが適切に破棄できないとかなんとか まあ、変数に入れなきゃReleaseComObjectを呼ぶこともできないよね [] - [ここ壊れてます]
- 921 名前:デフォルトの名無しさん mailto:sage [2017/04/15(土) 17:33:16.72 ID:7hkWD0i5.net]
- excelはC++から使ってもゾンビるよ
- 922 名前:デフォルトの名無しさん [2017/04/15(土) 17:38:17.93 ID:A0YDVHHt.net]
- >>867
昔の話だよ。
- 923 名前:デフォルトの名無しさん mailto:sage [2017/04/15(土) 17:41:04.42 ID:aGMB9daN.net]
- >>880
結局ReleaseComObjectは必要なのね。
- 924 名前:デフォルトの名無しさん mailto:sage [2017/04/15(土) 17:47:17.96 ID:jssTx07C.net]
- >>859
昔のプログラムメンテする必要が有って、丁度それに出くわして同じ方法で対応したわ 結局そのロジック切り捨ててOpenXMLで読み書きしちゃったけど
- 925 名前:デフォルトの名無しさん mailto:sage [2017/04/15(土) 17:54:59.95 ID:OxStzCoo.net]
- >>883
いやいらんと思うよ https://web-beta.archive.org/web/20080306103320/jeanne.wankuma.com/tips/programing/releasecom.html ↑によるとReleaseComObjectは「保険」らしい オブジェクトをちゃんと変数につっこんでから使えは一応ソースあった。 「仕様」の一言で、どうしてそうしなきゃらなんのかの理屈は書いてないが https://support.microsoft.com/ja-jp/help/317109/office-application-does-not-quit-after-automation-from-visual-studio-.net-client
- 926 名前:デフォルトの名無しさん mailto:sage [2017/04/15(土) 18:00:32.55 ID:OxStzCoo.net]
- まあVB6みたいに参照カウント見てラッパーオブジェクトの破棄をやってるからってことなのかな
こま切れのレスで申し訳ない
- 927 名前:デフォルトの名無しさん mailto:sage [2017/04/15(土) 18:14:19.64 ID:eeh5f4V4.net]
- >>885
>ガベージ コレクションを実行して解放することができますが、こちらはあくまでも保険です 読んでみた限り、GCが保険でReleaseComObjectでやれという事に読めますね。 マイクロソフト公式も保証されるわけではないという感じですね。 実際、これはやってみたが上手くいかないケースはちょくちょく発生します。 次善策以上の対策は取れないと思われます。以前サポートに質問した時もそんな感じの回答でした。
- 928 名前:デフォルトの名無しさん mailto:sage [2017/04/15(土) 18:33:54.48 ID:OxStzCoo.net]
- >>887
あー確かにその通りだねw 適当なこと言ってごめん
- 929 名前:デフォルトの名無しさん mailto:sage [2017/04/15(土) 22:36:26.65 ID:tyUWSBTM.net]
- >>879
タプルに括弧が必要なのはやむを得ないかな。変数宣言の文法変えるわけにもいかないし。
- 930 名前:デフォルトの名無しさん mailto:sage [2017/04/15(土) 22:56:40.40 ID:lvAT8XK9.net]
- >>881
ちゃんと作ればゾンビったりしないよ デストラクタで確実に解放できるからその点だけで言えば C# よりむしろ楽 >>885 > ↑によるとReleaseComObjectは「保険」らしい それ、それページ書いた人がちゃんと理解してないだけ そもそもGCはCOMなんて意識してないからCOMの解放なんてしないし 詳しくはここら辺を見て https://blogs.msdn.microsoft.com/office_client_development_support_blog/2012/02/09/office-5/
- 931 名前:デフォルトの名無しさん mailto:sage [2017/04/15(土) 23:54:44.22 ID:X3IC3wwW.net]
- ググってもよくわからんのだけど
GetType()+typeof()で型判定と isでやるのはどっちが速い?
- 932 名前:デフォルトの名無しさん mailto:sage [2017/04/16(日) 00:20:09.43 ID:SqhlDt4o.net]
- >>891
一時変数に入れたりしないで単純な GetType == typeof の形に限り前者 JITレベルで最適化がかかるみたい
- 933 名前:デフォルトの名無しさん mailto:sage [2017/04/16(日) 01:16:43.35 ID:dwmihMuF.net]
- >>855
GCのソースを見る気はしないけど0クリアはやってないと思う。 どう考えても時間の無駄。 変数を使用するタイミングで初期化が行われて、ものによってゼロクリアが行われるってだけじゃないんかね。 だから大量な領域をゼロクリアすることはそうそうないと思ってるんだけど。 例えばintの長い配列を確保したときとかくらい。
- 934 名前:デフォルトの名無しさん mailto:sage [2017/04/16(日) 02:15:50.20 ID:UDjczAnn.net]
- >>893
ヒープのオブジェクトは new した時点で内容が0クリアされてることは仕様
- 935 名前:デフォルトの名無しさん mailto:sage [2017/04/16(日) 06:55:53.07 ID:dwmihMuF.net]
- >>894
それはメモリ確保後に初期値で初期化されたってことででしょ。どっちにしろGCで大量にゼロクリアが必要にはならないよね。
- 936 名前:デフォルトの名無しさん mailto:sage [2017/04/16(日) 08:00:22.29 ID:uS8rD07o.net]
- どーせ、一番下でVirtualAlloc走ってんでしょ。そこで0クリアなんじゃね?
- 937 名前:デフォルトの名無しさん mailto:sage [2017/04/16(日) 08:43:50.68 ID:dr2cdwts.net]
- 0クリアをどのタイミングでしているかは知らないが
早めの0クリアがセキュリティーに貢献するであろう事は予想できる。 今そうでなくても、そのうちに使用しなくなったタイミングで可能なら0クリアという形になったとしても驚かない。
- 938 名前:デフォルトの名無しさん mailto:sage [2017/04/16(日) 08:49:20.74 ID:dr2cdwts.net]
- ちなみに自分はガベコレが効率よく機能してくれるよう、使用しなくなったら0クリアはしている。
巨大なツリー構造を作って大量のヒープを使い始めると、参照を移動するだけでも結構なCPU時間を取られるようなので。
- 939 名前:デフォルトの名無しさん mailto:sage [2017/04/16(日) 09:00:30.49 ID:nOhMz2bP.net]
- 破棄されるメモリへの(読まれない)書き込みを省略する最適化を行うコンパイラもあるし、
一律0クリアって方向にはならないだろうねぇ。 セキュリティ確保のためにわざわざ省略されない0クリアなんて機能を用意するくらいだし。
- 940 名前:デフォルトの名無しさん mailto:sage [2017/04/16(日) 09:02:08.11 ID:H6tmXYoH.net]
- 0クリアとnull代入は別物だぞ
- 941 名前:デフォルトの名無しさん mailto:sage [2017/04/16(日) 10:39:40.78 ID:yhNZe4vR.net]
- >>897
> 0クリアをどのタイミングでしているかは知らないが 何のためにデバッガがついてると思ってんだ。
- 942 名前:デフォルトの名無しさん mailto:sage [2017/04/16(日) 11:27:43.64 ID:UDjczAnn.net]
- >>896
あー、それそれ .NET Core の gc フォルダ内のコードに VirtualAlloc の RESET_MEM で ゼロクリアしてる箇所がいくつかあった たぶん、コンパクションした後に残ったゴミ領域を VirtualAlloc で ゼロクリアしてると思うんだが、そこは探しきれなかった >>895 初期値(0)で初期化されたってのはゼロクリアなんだが…… ttp://ufcpp.net/study/csharp/rm_default.html お前の言う初期値は別のことを指してるのか? > どっちにしろGCで大量にゼロクリアが必要にはならないよね。 メモリ確保時のゼロクリアってのはヒープ管理の行うこと ヒープ管理はGCとは切り離せないの だから .NET Core のゼロクリアのコードだって gc フォルダ内に配置されてるんだし
- 943 名前:デフォルトの名無しさん mailto:sage [2017/04/16(日) 11:44:56.24 ID:EJt90aDw.net]
- >>902
横からごめん。無知なので教えて。 ・GC って概要として不要になったメモリを解放する機能って理解はあってる? ・メモリ確保時に初期化が実行されるとの理解はあってる? ・一般的な挙動として、メモリ確保と GC は別物との理解に誤りはある? ※実装が GC 時に初期化しているかどうかではなく、GC と言う言葉の定義に初期化が含まれるかと言うこと 自分は上記が正しいと思ってるから、 >>895 の内容に違和感を感じなかったんだ。
- 944 名前:デフォルトの名無しさん mailto:sage [2017/04/16(日) 12:08:09.86 ID:uS8rD07o.net]
- >>903
君は正しい
- 945 名前:デフォルトの名無しさん mailto:sage [2017/04/16(日) 12:11:25.63 ID:SqhlDt4o.net]
- >>903
CLRの構造としては、GCはメモリ管理一般を担うコンポーネントである だからメモリ確保も初期化するのもGC GCってメモリの使用状況に応じてオブジェクトを動的に再配置したりとか色々裏で頑張ってるから、 単純に 確保/解放 と割り切れるもんじゃないんだよ
- 946 名前:デフォルトの名無しさん mailto:sage [2017/04/16(日) 12:21:18.23 ID:qeC+G70E.net]
- >>891
前者でもいいけどtypeof(シールクラス)にしないとダメだよ
- 947 名前:デフォルトの名無しさん mailto:sage [2017/04/16(日) 13:21:57.61 ID:UDjczAnn.net]
- >>903
>・GC って概要として不要になったメモリを解放する機能って理解はあってる? はい >・メモリ確保時に初期化が実行されるとの理解はあってる? 正確ではない ヒープからオブジェクトを確保したら初期化されていることが決まっているだけで、 初期化
- 948 名前:フタイミングは決まってない
既に初期化済みの領域から割り当ててるはず >・一般的な挙動として、メモリ確保と GC は別物との理解に誤りはある? > ※実装が GC 時に初期化しているかどうかではなく、GC と言う言葉の定義に初期化が含まれるかと言うこと 誤りはない ただし片方だけではメモリのシステムとして機能しない >自分は上記が正しいと思ってるから、 >>895 の内容に違和感を感じなかったんだ。 .NET の実装によるので 「GCで大量にゼロクリアが必要にはならない」 は誤り .NET Core の実装ではページングの機構を使って大量にゼロクリアしてる(と思う) オレオレCLR実装でGC時ではなく、オブジェクト確保時にゼロクリアする実装というのはあり得る [] - [ここ壊れてます]
- 949 名前:デフォルトの名無しさん mailto:sage [2017/04/16(日) 14:12:52.31 ID:0ImhO/qF.net]
- >>903
> GC と言う言葉の定義に初期化が含まれるかと言うこと 含まれていないけど、実質同じ。 GCってプログラマの負担を減らす為の物なのに、 いちいちゼロ初期化必要だとコンセプトとしておかしいでしょ。 まともなGCならゼロクリアされている。CLRもそう。 仕様としては、 △ > ・メモリ確保時に初期化が実行されるとの理解はあってる? ○ ・メモリ確保時には初期化済み であって、どのタイミングで初期化するかはGCの実装による。 同じ事はOSでも行われていて、以下ページのZeroed参照。 nyaruru.hatenablog.com/entry/20080430/p2
- 950 名前:デフォルトの名無しさん mailto:sage [2017/04/16(日) 15:02:23.81 ID:79m5iU1q.net]
- なんかすごい重箱モードの議論だねw
いや批判はしてないですよ別に
- 951 名前:デフォルトの名無しさん mailto:sage [2017/04/16(日) 18:44:26.20 ID:dr2cdwts.net]
- 粘着質な人が居ると困りますねw
- 952 名前:デフォルトの名無しさん mailto:sage [2017/04/16(日) 18:59:23.11 ID:I10lJTDS.net]
- >>892,906
そうかTHX. isの方がなんとなく速そうだと思ってたが案外そうでもないんだな
- 953 名前:903 mailto:sage [2017/04/16(日) 20:38:49.89 ID:EJt90aDw.net]
- >>904,905,907,908
教えてくれて、ありがとう。 自分も MSDN の文章を読んだりしてみました。 斜め読みだから読み落としてる可能性も高くそうしたらごめんなさい。 [一般的定義] ・GC は概要として不要になったメモリを解放する機能のこと ・一般的な挙動として、メモリ確保と GC は別物 [CLRの仕様] ・メモリの確保も解放も GC の機能の内 ・確保されたメモリは初期化されている [CLRの実装] ・GC 時にメモリを初期化してるっぽい ふつう、挙動を考える際には仕様を元にすると思うから 「GC時(正確にはメモリの解放時)にはメモリの 0 クリアは期待しない/できない」と理解してよさそうな気がする。 >>895 の「GCで大量にゼロクリアが必要にはならない」が「GC時に 0 クリアしている訳ではない」との意味であれば 仕様としては正しいことから一般論としても正しい。 ただ、実際にはやってくれているけど、それは仕様に基づいているわけではないからいつ改変されるか分からないアテには出来ないもの、と理解しました。 自分もよくやるんですけどね。仕様にはないけど自分が考える安全のための後始末とか。
- 954 名前:デフォルトの名無しさん mailto:sage [2017/04/16(日) 20:52:22.64 ID:3ec5aaGF.net]
- 勝手に0クリアしてもいいけどGCはそれがわからないから
またGCが0クリアするよ つまり二度手間 高速化なんてのたまてってるけど馬鹿ばっか
- 955 名前:デフォルトの名無しさん mailto:sage [2017/04/16(日) 20:53:23.50 ID:3ec5aaGF.net]
- 無能の馬鹿の議論は飽きたわ
どこか別でやってくれよ 個人のブログとか
- 956 名前:デフォルトの名無しさん mailto:sage [2017/04/16(日) 20:55:58.52 ID:dr2cdwts.net]
- 正直議論に見えない、自演に見えてきた。
- 957 名前:デフォルトの名無しさん mailto:sage [2017/04/16(日) 21:04:46.71 ID:wSkKKBMW.net]
- >>912
もともとのガベコレの意味はざっくり言えば「確保/解放によって断片化したメモリのデフラグ」 だったはず 知らんけど
- 958 名前:デフォルトの名無しさん mailto:sage [2017/04/16(日) 21:22:51.36 ID:0ImhO/qF.net]
- >>912
GCは「アイドル時にやれ」というのは分かるよな? 実際はとりあえずこれを目指しているはず。 メモリ確保時にゼロ初期化するのはユーザ時間に直接影響する。 (メモリ確保のレイテンシが著しく増大する) GC時に初期化するのはGC時間が長くなる。 CLRの場合は確かGC時にはユーザスレッドを凍結していたはずだから、 これもユーザに見えることになる。 だから、普通に考えて、 一旦GCした後、(ユーザスレッドと並行可能な)別スレッドでゼロ初期化だよ。
- 959 名前:デフォルトの名無しさん mailto:sage [2017/04/16(日) 23:10:52.0
]
- [ここ壊れてます]
- 960 名前:0 ID:rt4ZW9V3.net mailto: 基本型の配列は0クリアされるのは仕様で決まっとる
どこのどいつが実際にやろうが関係ないだろ [] - [ここ壊れてます]
- 961 名前:デフォルトの名無しさん mailto:sage [2017/04/17(月) 21:40:45.89 ID:3B2OvgTj.net]
- でも初期化するクセは付けた方がいいぞ
プログラマとして そういう意味でゼロクリアされている事がわかっていても 明示的にやっておくのも間違いじゃない
- 962 名前:デフォルトの名無しさん mailto:sage [2017/04/17(月) 21:53:33.58 ID:DRWzf9HM.net]
- いいぞ
誰に向かって威張ってるのかね そんな威張っていうような話か?w
- 963 名前:デフォルトの名無しさん mailto:sage [2017/04/17(月) 21:59:35.59 ID:FPOa41qy.net]
- 一週間も馬鹿な話続けてる奴にそんな嫌み通じるかよ
お前も馬鹿か
- 964 名前:デフォルトの名無しさん mailto:sage [2017/04/17(月) 22:28:28.26 ID:0+0M+jw7.net]
- じゃぁ配列は、こう初期化すんの?
byte[] buff = (byte[])Enumerable.Empty<byte>();
- 965 名前:デフォルトの名無しさん mailto:sage [2017/04/17(月) 22:37:56.61 ID:sNToWnIL.net]
- 自分のブログでヤレ
- 966 名前:デフォルトの名無しさん mailto:sage [2017/04/17(月) 22:40:07.22 ID:sNToWnIL.net]
- わかってないようだから書くけど
こいつがまず重度の馬鹿 >>919
- 967 名前:デフォルトの名無しさん mailto:sage [2017/04/17(月) 23:18:50.28 ID:pEHnUlca.net]
- 924 はキチガイの類
- 968 名前:デフォルトの名無しさん mailto:sage [2017/04/17(月) 23:22:01.64 ID:pEHnUlca.net]
- これがキチガイの末路w
これこそが本物だ www.int2.info/news1.htm
- 969 名前:デフォルトの名無しさん mailto:sage [2017/04/17(月) 23:38:40.81 ID:YebzKHR/.net]
- ここまで基地外だけ
- 970 名前:デフォルトの名無しさん mailto:sage [2017/04/18(火) 00:27:01.11 ID:0Yq9p2Hl.net]
- >>926
Microsoft相手に訴訟すると こういう目に会うのか
- 971 名前:デフォルトの名無しさん mailto:sage [2017/04/18(火) 00:36:27.92 ID:gic2i7xr.net]
- んな訳ねぇだろ、てかお前本人だなw
そんな予感はしてたんだ、文体似てるし60代臭していたし Delphi板荒らしていたヤツとよく似てたし、お前Delphiやってたし もうじき親の財産次るんだろ?もう終わりだろ、はよ死ね
- 972 名前:デフォルトの名無しさん mailto:sage [2017/04/18(火) 01:34:33.30 ID:4m6dsFPX.net]
- client sideのvalidationがめんどくさすぎるのだけどVMからvalidator.jsを生成するサービスないのか?
- 973 名前:デフォルトの名無しさん mailto:sage [2017/04/18(火) 06:15:21.44 ID:dwhcaFAX.net]
- それは頭悪いだろ
サーバーサイドでやってるバリデーションと同じことがしたいならAPI作ってajaxが筋
- 974 名前:デフォルトの名無しさん mailto:sage [2017/04/18(火) 06:39:33.82 ID:RUjuZHo6.net]
- そのAPIとそれを使ったクライアントコードの生成サービスないかってことでしょ
- 975 名前:デフォルトの名無しさん mailto:sage [2017/04/18(火) 07:40:17.90 ID:4m6dsFPX.net]
- >>931
不要な通信を避けるためにclient side validationするわけでしょ そのために通信をしてたら意味ないじゃん
- 976 名前:デフォルトの名無しさん mailto:sage [2017/04/18(火) 07:51:25.03 ID:Su4pCCia.net]
- あるわけねえだろ夢見んな
- 977 名前:デフォルトの名無しさん mailto:sage [2017/04/18(火) 18:30:31.09 ID:dwhcaFAX.net]
- >>933
client side validationの目的は一般的には通信を避けることではなくフィードバックの即時化によるUXの改善でしょ よほどレイテンシの大きい糞NWを想定してるとか、サーバーに頻繁にリクエストが来るのがキャパシティ的に許容できないとかでない限りは ajaxによるバリデーションは十分有効
- 978 名前:デフォルトの名無しさん mailto:sage [2017/04/18(火) 18:34:28.24 ID:b4tf0yLR.net]
- クライアントにidとパスハッシュのリスト送信しておけばおk
- 979 名前:デフォルトの名無しさん mailto:sage [2017/04/18(火) 19:24:13.68 ID:T0vdTXyx.net]
- >>935
なるほど でもその説明じゃうちのロートル達が納得しないよ もっと素人が喜びそうな説明はできないの?
- 980 名前:デフォルトの名無しさん mailto:sage [2017/04/18(火) 19:34:36.94 ID:qpdySibv.net]
- 死ね
- 981 名前:デフォルトの名無しさん mailto:sage [2017/04/20(木) 14:46:51.02 ID:ofUg/eB0.net]
- EntityFramework で System.Data.SQLite 使ってるんだけど、
SaveChanges() が遅すぎるので、 CQRS( ttps://msdn.microsoft.com/magazine/
- 982 名前:mt788619 )をやってみようと思った
クエリ用にデータベースファースト、コマンド用にコードファーストで DbContext を作ってみたんだけど、モデルファーストの DbContext を new すると コマンド用の POCO と競合して曖昧と言われる まだ試してないけど解決方法がなんか汚い ttp://entityframework.codeplex.com/workitem/483 クエリ用、コマンド用ともにコードファーストにするのが普通なんだろうか? SQLite はマイグレーションサポートしてないようなのでコードファーストはメジャーじゃない? [] - [ここ壊れてます]
- 983 名前:デフォルトの名無しさん mailto:sage [2017/04/20(木) 18:34:56.61 ID:9NLTwIyk.net]
- >>939
DBからコードファーストじゃだめなん?
- 984 名前:デフォルトの名無しさん mailto:sage [2017/04/20(木) 19:09:00.01 ID:ofUg/eB0.net]
- >>940
そうね データベース(モデル)ファーストにしてるのは、 ER図を見るために使ってるだけだからそれでもいいかぁ クエリ用(Read)とコマンド用(Write)双方ともDBからコードファーストで作って DB変更時には再度作り直す方法でやってみるかなー (どこらへんがコードファースト? って使い方になっちゃうなw)
- 985 名前:デフォルトの名無しさん mailto:sage [2017/04/21(金) 00:34:55.91 ID:IVDQeFzJ.net]
- 毎回迷うんだけど
VS2017ではどのデータベースを使うべき? そしてEFはどのバージョンを使うことになって参考になるサイトはどこにあるんだ? それそろ安定してほしいんだけど
- 986 名前:デフォルトの名無しさん mailto:sage [2017/04/21(金) 01:26:41.50 ID:72Ff37pO.net]
- >>942
MSDN: Introduction to Entity Framework ttps://msdn.microsoft.com/en-us/library/aa937723(v=vs.113).aspx 上記ページは、なんか日本語表示にはできるけどインデックスやら、 ページのリンクが英語になってたりして、チグハグ 和書では、EFについて書かれた本がほとんどない 書いてあっても一章分でさらっと流す程度だし、 ネット上の情報だと EF を使うための VisualStudio の操作方法とか、 いくつかの落とし穴の回避方法がパラパラ載ってる程度なので、 英語の MSDN をブラウザの翻訳機能で読んだほうがいいと思う EF Core (EF7として開発されてたらしい) ではクロスプラットフォームの ための軽量化で一部の機能を削いでるらしい(モデルファーストとかはできなくなる) EF6 は EF Core が出てからもしばらくはサポートされるので、 今入門するなら EF6 を使うのがいいと思う (というか、必要でない限り移行はお勧めされていない)
- 987 名前:デフォルトの名無しさん mailto:sage [2017/04/21(金) 06:35:38.36 ID:h0UgT1Ml.net]
- EFはWeb系のノリで作られてるから安定することはないよ
- 988 名前:デフォルトの名無しさん mailto:sage [2017/04/21(金) 07:48:39.88 ID:XjCRa8hg.net]
- 業務とデータベースに精通していて
全てを自由に弄れる立場にいて 時間をかけて生成されるデータ構造まで意識した精緻なモデル設計ができて その案件の寿命までずっと面倒をみれるか同レベルの後継者を育てられる そんな人がチームにいればモデルファーストは有りじゃないかな そうでなければ使い捨てアプリぐらいにしか使えないよ
- 989 名前:デフォルトの名無しさん mailto:sage [2017/04/21(金) 08:13:05.97 ID:dQDWETdW.net]
- >Web系のノリ
どういうこと?
- 990 名前:デフォルトの名無しさん mailto:sage [2017/04/21(金) 08:17:36.55 ID:lbMf26rv.net]
- >>942
安定って具体的に何のことを言ってんの?とっくに枯れた技術だけど
- 991 名前:デフォルトの名無しさん mailto:sage [2017/04/21(金) 09:12:06.55 ID:LWRI+6r2.net]
- >>946
ヤマトのりかと
- 992 名前:デフォルトの名無しさん mailto:sage [2017/04/21(金) 11:08:44.37 ID:U4JkC8YI.net]
- EFとLinqのせいで生のSQL文が書けなくなっている。
- 993 名前:デフォルトの名無しさん mailto:sage [2017/04/21(金) 11:45:09.91 ID:72Ff37pO.net]
- まだサポートが十分でないDBとかあるし、ガンガン開発されてるのに枯れた
|

|