X



WPF(.NET4.x, .NET Core) GUIプログラミング Part23
レス数が900を超えています。1000を超えると表示できなくなるよ。
0001デフォルトの名無しさん
垢版 |
2019/05/16(木) 07:52:32.39ID:8fOYIMEO
Windows Presentation Frameworkについて語るスレ。

前スレ
WPF(XAML, XBAP, .NET4.0)GUIプログラミング Part22
https://mevius.5ch.net/test/read.cgi/tech/1513175747/

関連スレ
Windows 10 UWPアプリ開発 Part 2
http://mevius.2ch.net/test/read.cgi/tech/1499658092/

コードを貼る場合は以下のサイトの利用をお勧め。
run codeのチェックは外しておきましょう。
http://ideone.com/
0820デフォルトの名無しさん
垢版 |
2019/11/22(金) 22:18:50.38ID:uXKfGYPK
主にコア部分の性能面での問題を抱えたまま
一級開発環境としてねじ込もうとしてたのが原因なので
WinformsだのWPFだのは関係ないのだ
0823デフォルトの名無しさん
垢版 |
2019/11/23(土) 20:40:22.92ID:gK3OO6AB
昔はjavaは遅いからダメだ!って主張多かったよねー
じゃあ今のjavaは良いのか?って言われると困るけど結果的には広がりは見せたわけで
速度なんてあとからどうにでもなるんじゃね?って思う
20年前のハード性能の向上比率と今のそれは違うので比較するようなものでは無いかもしれんが
0824デフォルトの名無しさん
垢版 |
2019/11/23(土) 20:53:06.15ID:OWOiuO7H
JavaのGUIコンポーネントはクソ遅いしダメダメだろ
結果的に広がってませんが。
0825デフォルトの名無しさん
垢版 |
2019/11/23(土) 20:53:25.02ID:ddVAIVMv
javaの代わりにspanだの今後はutf8string?とか高速化を頑張ってるc#で書けば、クラウド代金3割くらい減らせたりしないものなのか?
0827デフォルトの名無しさん
垢版 |
2019/11/23(土) 21:34:37.51ID:fN1eu2LC
バックエンドはクラウド時代になって多少遅くてもとか言えなくなっちゃったからしんどい
まあでもWPFはデスクトップだから多少遅くてもいいけど
0828デフォルトの名無しさん
垢版 |
2019/11/23(土) 22:02:36.52ID:jA/F562D
>>825
さすがにJavaとC#なら有意な差は出ない
少なくとも、書き直してる暇があったらその手間をボトルネックの最適化に注ぎ込んだほうが間違いなく速くなる
MS製のものを除けばC#はJavaに比べてOSSライブラリの品質が低い傾向があるしな
0831デフォルトの名無しさん
垢版 |
2019/11/23(土) 22:13:12.75ID:gK3OO6AB
javaが昔遅くてダメだって言われてたのはJVMを経由するからという部分
世界的には微妙かもしれんが国内では間違いなく相当普及してる
20年前のエンジニアに言えば卒倒するレベルには普及してる
これを普及してないと言うなら普及してる言語ってなんだよw
0832デフォルトの名無しさん
垢版 |
2019/11/23(土) 22:36:08.94ID:UrfR+MrU
Java開発してておせーしねって思ったことは数え切れないほどあるけどC#では滅多にない
ビルドも実行も速い
0833デフォルトの名無しさん
垢版 |
2019/11/23(土) 22:44:40.45ID:jA/F562D
Javaは100%完全にサーバー向けにチューニングされてるし、
MSスタックほど開発環境とランタイムが統合されてるわけじゃないから、
開発中に手元では遅く感じやすいよね
0834デフォルトの名無しさん
垢版 |
2019/11/23(土) 22:53:50.65ID:2slcREB7
>>831
昔は、ローカル変数をスタックではなくヒープで確保するアホ実装してたからだよ。
一度書けばどこでも動くなんていうJavaの理想はコードを碌に書いたことのないアホどもの夢だったのさ。
JVMの最適化が始まれば途端に処理系によって動きが違うようになって速度は速くなったが理想は捨てられ、
世界的なJavaブームは終わった。なのになぜか日本だけがずっと使い続けて今に至る。

Javaは日本ではCOBOLの代替の地位は得たが、C#は何も得てない。
0837デフォルトの名無しさん
垢版 |
2019/11/24(日) 11:03:43.31ID:0nk530rx
速さは究極的にはプログラマの能力次第
C#erってVBの存在のお陰でJavaに比べると平均的な能力は高いけど、
上位層同士で比べるとクラウドや分散処理には強くないイメージだな
0838デフォルトの名無しさん
垢版 |
2019/11/24(日) 13:05:13.65ID:JC4z1XvE
Javaで優秀だった人はみんな他の言語に行っちゃって今は残りカスしかいない
C#は今も昔も高スキル人材が安定してる
0839デフォルトの名無しさん
垢版 |
2019/11/24(日) 13:21:43.73ID:7cfX+7dD
親方のMSにも言えることだけど、C#の高スキル層って何でもC#のコード書いて解決しようとして
結果的に事業や開発のスケーラビリティを制約するような方法を選んでしまう傾向がある気がする
その辺、CLIツールやクラウドサービスなど出来合いの小道具をうまく使ってチョチョイとやっちゃうのはUNIX系の人のほうが遥かに上手い
0841デフォルトの名無しさん
垢版 |
2019/11/24(日) 13:33:12.26ID:7cfX+7dD
>>840
良いか悪いかは別にして、少なくとも「何でもC#書いて解決しようとする」は自分で心当たりあるだろ?
俺が今まで会った「C#が得意」
0843デフォルトの名無しさん
垢版 |
2019/11/24(日) 13:41:21.56ID:s1tpy+px
>>842
C#が得意と言った奴がたまたまC#だけが得意だったんじゃないか?色々できる人はわざわざC#が得意だなんて言わないだけで。
そもそも自分が会っただけの狭い範囲で語られても...
0844デフォルトの名無しさん
垢版 |
2019/11/24(日) 13:48:16.04ID:kdnOmkRS
なんでもC#で書いて解決
CLIツールやクラウドサービスなどの小道具
これ並列に語るもんなの?
C#erだってクラウドサービスは使うやろ
0845デフォルトの名無しさん
垢版 |
2019/11/24(日) 13:51:44.18ID:yrLXmC4S
今時はなんでもコンテナにして疎結合しちゃうから様々な言語やツールをそれなりに使えたほうがいい
既存資産ファーストで言語を選んでコンテナを実装することがやたら増えた
逆に言うと既存資産が無い新規開発のときは何を選んでもいいわけで
なんでもいいならC#やGoなど強力な言語が出揃ってる今、あえてJavaを選ぶ意味は殆どない
レガシーとコンテナの橋渡しが今のJavaが担ってる仕事
0846デフォルトの名無しさん
垢版 |
2019/11/25(月) 00:02:02.10ID:YM9ppnlN
javaとC#比べて速さ問題を比べてもあまり意味がない
ある程度しか変わらないから
10倍速いとかじゃないからな
速さを競うならC++
ネットゲームとか激しくパフォーマンスが要求される分野はC++が強い
俺は死んでもC++はもう触りたくない
0853デフォルトの名無しさん
垢版 |
2019/11/25(月) 11:55:35.63ID:d5oOI6iD
でも、C#は遅いプログラムが多い。
M/Bに付属のドライバや基本アプリなどのインストーラーも遅かったし、
MSのC# 製のExpression Web 4も同等のC++製のFrontPageよりだいぶ遅い。
PIXELAのテレビキャプチャーカードに付属のテレビ視聴/録画再生アプリも
極端に遅い。途中でGCが入って30秒間くらい全く何も出来なくなる事が
あるし、テレビ番組表を表示するのも数十秒掛かるし。
一番技術が分かってるはずのVisual Studioも遅い。
0855デフォルトの名無しさん
垢版 |
2019/11/25(月) 16:02:04.90ID:YrlIRd3B
他のC#スレ見ても、C#信者は配列が遅い、LINQが遅い、WPFが遅いと言っても受け付けない低スキルの馬鹿が多い。
CPUに関する知識が皆無。まるで20年前のJava信者、MIPS信者のようだ。
0856デフォルトの名無しさん
垢版 |
2019/11/25(月) 16:55:11.95ID:xlCLCIdV
配列遅いって言って受け付けないって人は何使うの?
linqは言ってる人居るけど配列遅いなんて人居る?
0858デフォルトの名無しさん
垢版 |
2019/11/25(月) 17:06:26.86ID:Opy8eUnC
>>856
おそらく、
僕(>>855)が遅い遅いって言っているのに誰も取り合ってくれなかった!僕の話を聞かないアイツらがバカなんだ!
っ言いたいんだと思う。
0859デフォルトの名無しさん
垢版 |
2019/11/25(月) 19:01:49.04ID:OmUgJu93
C++使ってる人はあらゆることにパフォーマンス求める人がが多いからなあ
C#使ってるとそこまで気にしない
例え10倍処理が速くても自分の糞アプリにはなんのメリットがないので速さはいらない
0860デフォルトの名無しさん
垢版 |
2019/11/25(月) 20:46:21.36ID:P3fBUw06
>>841
まっっっっっったくありません
で、説得力は?
0862デフォルトの名無しさん
垢版 |
2019/11/25(月) 21:57:22.45ID:2eomwteL
ポインタ使ったら早くなる?
配列使ったほうが最適化しやすくて早そうだけど
ケースバイケースかな?
0863デフォルトの名無しさん
垢版 |
2019/11/25(月) 22:30:54.03ID:qlvZ05cB
>>862
ケースバイケース
配列のインデックスを計算で求めてるような場合は最適化が効かず境界チェックが毎回実行されて遅い
そういう場合はポインタにするとめちゃくちゃ早くなる
0865デフォルトの名無しさん
垢版 |
2019/11/26(火) 18:13:42.70ID:GH1P3tUM
逆に言えばC++なら糞みたいなロジックでもよく検討されたロジックのC#より余裕で早い可能性もある
でも大体はC++プログラマの方が一段上
0867◆QZaw55cn4c
垢版 |
2019/11/26(火) 19:56:36.01ID:eitz3RWA
>>866
でも free()/delete が難しい環境では GC はありがたいですね
0868デフォルトの名無しさん
垢版 |
2019/11/26(火) 20:26:45.31ID:sE/nea3J
>>867
組み込みなどの事を言ってるなら、GCの中でfree()/deleteが呼び出されるので同じ
どころか、もっと複雑になってしまう。
0873デフォルトの名無しさん
垢版 |
2019/11/27(水) 03:03:20.91ID:kpkt6EZT
テンプレートはc++よりc#の方が早かったり
するので使い方次第だと思うのですけどね
0874◆QZaw55cn4c
垢版 |
2019/11/27(水) 06:33:20.48ID:N9ggbkQ1
>>873
それはコンパイル時間なのではないですか?
0876デフォルトの名無しさん
垢版 |
2019/11/27(水) 07:45:58.68ID:f5LIEDBI
定期的に湧く、C++より速いとか、C#は遅くないと言ってる低スキル君が、Java信者と言ってることがいつも同じでむかつく。
0877デフォルトの名無しさん
垢版 |
2019/11/27(水) 08:14:47.64ID:1pl90ndi
>>874
同じ内容の処理でC#がC++より速くなるケースが想像できないのだが、具体的なケースを教えてくれないか?
0878デフォルトの名無しさん
垢版 |
2019/11/27(水) 09:37:28.69ID:gi64Bf5v
>>877
coreclr見てみ。ネイティブからマネージドコードに置き換えてパフォーマンスとメンテナンス性向上させてるPRいっぱいあるから。
0879デフォルトの名無しさん
垢版 |
2019/11/27(水) 09:48:42.73ID:frXAtoYv
バカの自作C++コードよりC#libraryの方が当然早いだろう。
libraryの中身はC++だったりするが
C++の演算libraryも中身はアセンブラだから同じこと。
0880デフォルトの名無しさん
垢版 |
2019/11/27(水) 09:51:27.67ID:vYtjQlD0
それはC++が遅いんじゃなくて呼び出しのオーバーヘッドが大きかったりOSやネイティブライブラリの機能が不必要に豪華で遅かったりするのを回避してるだけ
0886デフォルトの名無しさん
垢版 |
2019/11/28(木) 01:38:13.56ID:xy0IaHJE
もう10年以上C#使って、自前ツールはほぼC#オンリーだけど、C#が速いと思ったことないよ。
ストールしまくる配列の遅さとか致命的だからライブラリとか作るには向かないが、
むしろ使い捨て、やっつけツールを作るにはちょうどよい。ポジション的は昔のPerlの立ち位置だな。
そういう立ち位置と理解すればWPFが普及しない理由も分かる。
0887デフォルトの名無しさん
垢版 |
2019/11/28(木) 01:42:58.33ID:TWMCNQEW
>>886
>ストールしまくる配列の遅さ
詳しくお願いします。

>そういう立ち位置と理解すればWPFが普及しない理由も分かる。
C#のポジションが昔のPerlの立ち位置であることが、WPFが普及しないこと
にどのように結びつくのか解説をお聞かせくだされば幸いです。
0888デフォルトの名無しさん
垢版 |
2019/11/28(木) 01:44:22.06ID:/6aNzyAQ
今はマシンパワーでゴリ押し出来るからねぇ
苦労してC++で組むメリットは少ない
0889デフォルトの名無しさん
垢版 |
2019/11/28(木) 01:48:59.29ID:TWMCNQEW
>>888
実は、C++を苦労と思わない人なら、C#で組む必要性も低いのです。つまり、
 「C++が出来るなら、C#を使う必要はない」
のです。
0890デフォルトの名無しさん
垢版 |
2019/11/28(木) 01:56:13.23ID:xy0IaHJE
>>887
> >ストールしまくる配列の遅さ
> 詳しくお願いします。

マジかw こんなとんでもない低スキルの馬鹿がWPFスレにいるのか。
こんな基本的なことはパソコン少年でも知ってると思うが、条件分岐はストールする。
君のようなパソコンはじめて素人君はあと5年くらいROMってろなw
0892デフォルトの名無しさん
垢版 |
2019/11/28(木) 01:59:55.35ID:TWMCNQEW
それもMSの経営戦略なのですが、Visual Studio は、C++ と C# で分かれて無い
ので、使われ方の比率は誰にも分からない状態になっていますね。
果たしてどっちがすかれているのかも、本当ははっきりしません。
「層」によって好みが明確に分かれている可能性も有り得ます。
また、新しいものは、時代に乗り遅れまいと試しに使う人も多いので、
その影響もあります。
0893デフォルトの名無しさん
垢版 |
2019/11/28(木) 02:18:04.46ID:TWMCNQEW
「新し物好き層」なるものがあり、その人達は新しいものが素晴らしいと思います。
ネットにはそのタイプの人による新しいものを褒める記事が多く見受けられます。
逆に新しいもの、古いものに限らず、ネットでは物事の欠点や負の側面
を書く人は少数派です。何故かは分かりませんが、炎上を恐れる人が多い
からかも知れません。
0897デフォルトの名無しさん
垢版 |
2019/11/28(木) 12:43:42.46ID:VOkh5kHm
C#界隈はWebやスマホへ移行できずに時代に取り残された人達が老害化してる印象だなあ
趣味でフリーウェアやシェアウェアを作って公開してた人も一昔前には沢山いたけど、みんな今どうしてるんだろうね
俺もその一人だけど、もうクラウド開発しかやってないわ
0900デフォルトの名無しさん
垢版 |
2019/11/28(木) 13:44:44.09ID:uRMHPae9
スマホゲーでは最大手ではあるだろうけどcocosも未だに強いしunrealも頑張ってる、どっちもC++
サーバー側までC#はあんま居ないはず
0902デフォルトの名無しさん
垢版 |
2019/11/28(木) 19:15:57.08ID:VOkh5kHm
クライアントがUnityだからサーバーにもC#を使ってるゲームはわりとあるらしい
ドカタITではASP.NET Coreは全く使われてないね
0903デフォルトの名無しさん
垢版 |
2019/11/28(木) 19:24:48.50ID:tdSAYOq3
分野ちがうがxamarinとasp.net coreどっちがまだ使われてるかっていったらasp.netの方?
0905デフォルトの名無しさん
垢版 |
2019/11/28(木) 19:55:19.37ID:uRMHPae9
彼はすごい人だから良いけど
大体はまだPHPかよくてruby
webソシャゲの頃の鯖エンジニア結構残ってるからね
0907デフォルトの名無しさん
垢版 |
2019/11/28(木) 21:26:06.24ID:qnF6NUyh
時代とかトレンドとか言っても、スタンドアロンで十分なものをわざわざWebにしたりしないしなぁ。
0909デフォルトの名無しさん
垢版 |
2019/11/29(金) 12:41:29.10ID:orOKhWyS
いまトレンド来てるだろ

752 デフォルトの名無しさん 2019/11/04(月) 01:41:28.60 ID:uqYdx4m2
どうも、Microsoftのこれからの方向性
この1年で大きく変化しているのを理解できていない投稿が
多いように見受けられんだけど。
来週のIgniteを楽しみにしよう。
0910デフォルトの名無しさん
垢版 |
2019/11/29(金) 12:49:47.89ID:gt8PUFBF
UWPのゴリ押しがうまくいかなかったからWPFもそれなりにサポートするみたいなのは見た気がする
0911デフォルトの名無しさん
垢版 |
2019/11/29(金) 19:40:31.05ID:5LiccEug
デスクトップアプリとスマホアプリに互換持たせても根本的に違うし、泥に展開出来ない時点で何の意味もない
0912デフォルトの名無しさん
垢版 |
2019/11/29(金) 22:45:11.37ID:LMfDTWZ+
そうか?モダンアプリ使いやすいだろ
UWPがどうというより、デスクトップアプリ自体がWebのフロントエンドの一つに成り下がってしまい、
簡易なUIで十分になっちゃったんだよなあ
0913デフォルトの名無しさん
垢版 |
2019/11/29(金) 23:09:59.57ID:ekCVDXy+
相談させてください。C# で

static class MyBindingHelper
{
  public static bool GetModeIsTwoWay(Binding binding)
    => binding.Mode == BindingMode.TwoWay;
  public static void SetModeIsTwoWay(Binding binding, bool value)
    => binding.Mode = value ? BindingMode.TwoWay : BindingMode.Default;
}

のようなクラスを作成すると XAML で

@
<TextBox>
  <TextBox.Text>
    <Binding Path="Hoge" local:MyBindingHelper.ModeIsTwoWay="True" />
  </TextBox.Text>
</TextBox>

のような書き方ができるようになりますが、

A
<TextBox Text="{Binding Hoge, local:MyBindingHelper.ModeIsTwoWay=True}"/>

と書いても期待に反して

Markup Extension の解析時に、型 'System.Windows.Data.Binding' に対する不明なプロパティ 'BindingHelper.ModeIsTwoWay' が見つかりました。

というエラーになってしまいました。
@のような書き方は冗長に感じるのでできればAに近い書き方をしたいのですが、
何か良い方法をご存じの方がいらっしゃればお知恵を拝借できないでしょうか。
どうぞよろしくお願いいたします。
0914デフォルトの名無しさん
垢版 |
2019/11/30(土) 10:13:13.46ID:0mH728ks
Blazorのデスクトップアプリ流用がすごすぎて既存のデスクトップフレームワークの存在意義が完全に消滅しちゃった
何も考えなくても自動的にクロスプラットフォームになるし既存のWeb系エコシステムも使い放題だ
FormsやWPFはメンテナンスすることはあっても新規で作ることはもう無いだろう
0915デフォルトの名無しさん
垢版 |
2019/11/30(土) 10:22:41.07ID:BcIjEIKq
さすがにWPFはもう絶滅したと言ってもいいが、現代においても未だにWinFormsが採用されることがあるのは
どっちかというと開発者のスキルの問題だからなあ
Blazorを採用できるだけのまともなWebのスキルがあるチームならとっくの昔にWeb MVC系へ行ってる
0916デフォルトの名無しさん
垢版 |
2019/11/30(土) 10:40:39.93ID:xhEM6aVw
スキルの問題じゃなく慣れてるからというだけ。未だにvi使い続けてる人がいるのと同じ。
同じことするのに言語やフレームワーク、ライブラリをコロコロ変える馬鹿はいないよ。
そんなに脳みそにキャパが余ってるなら医者に職業変えたほうがいいw
0918デフォルトの名無しさん
垢版 |
2019/11/30(土) 10:48:00.44ID:5l2Zf0lZ
Blazorでデスクトップアプリって、今だとどれくらいのことができるようになってる?
WPFやMFCを置き換えられるくらいになってたら検討したいが。
レス数が900を超えています。1000を超えると表示できなくなるよ。

ニューススポーツなんでも実況