WPF(.NET, WinUI) GUIプログラミング Part33

1デフォルトの名無しさん (ワッチョイ 835a-A2Rd)
垢版 |
2024/08/20(火) 21:16:46.38ID:mRLJAUv40
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512

WPF(Windows Presentation Foundation)について語るスレ。

前スレ
WPF(.NET, WinUI) GUIプログラミング Part32
https://mevius.5ch.net/test/read.cgi/tech/1694210576/

関連スレ
Windows 10 UWPアプリ開発Part 3
https://mevius.5ch.net/test/read.cgi/tech/1627556967/

コードを貼る場合は以下のサイトの利用をお勧め。
https://ideone.com/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
2025/02/06(木) 15:03:52.62ID:VdVQghET0
埋め込みドキュメントって、Web版やスマホ版officeだとどうなるんだ?
2025/02/06(木) 15:27:14.03ID:2/5eY6oj0
新しくアプリをインストールすると登録されるcomコンポーネントをハックするのがたのしみだったって事がある。

実際にLotus NotesにExcelコンポーネント埋め込んで納品した事あるな
2025/02/08(土) 14:25:36.44ID:1vi9xXrm0
>>555
COM連携はWindows以外の環境では実現不可能なんだ
何十年も前からあるこの程度のことが今はできない
今の技術者はアホしかおらんのよ
2025/02/08(土) 14:30:01.68ID:1vi9xXrm0
こんだけゴミクソのWindowsが生き残ってるのはCOMのおかげと言っていいから
もしWindowsを潰したいならマルチプラットフォームでCOMの車輪の再発明をすればいい
2025/02/08(土) 16:56:05.44ID:apo1n2eB0
WPFおじさんも現実を見れてなかったがCOMおじさんはさらにその上をいってるな
ここまで来るともうどうしようもない
560デフォルトの名無しさん (ワッチョイ 4f01-rY0L)
垢版 |
2025/02/08(土) 20:27:11.99ID:WytOYVUs0
2D はSkiaSharpだろ。
561デフォルトの名無しさん (ワッチョイ d301-X+WN)
垢版 |
2025/02/09(日) 09:24:14.74ID:cS/Ji0GP0
comは何でもできるけどアレは難しいしバグあるとヤバい。
2025/02/09(日) 11:04:11.31ID:pgX8P+m90
.net前は昔VBでcom大量生産しとったな
j++なついわ
2025/02/09(日) 16:03:00.59ID:nVH+xYHa0
COMにもいくつかレイヤーはあって、統一的なABI、実行時型情報、プロセス間通信、OLEオートメーション、コンポーネント埋め込み…とあるうち
大体のOSでもプロセス間通信まではどうとでもなる。LinuxのdBusやMacのAppleScriptではOLEオートメーションのようなこともできる
無いのはコンポーネント埋め込み(OLEドキュメント/ActiveXコントロール)ぐらいでこれはほんと惜しい
2025/02/09(日) 16:34:55.70ID:V2Ler+rt0
あれ?
いまのパワポはエクセル埋め込めんの?
2025/02/09(日) 16:39:55.05ID:eRu8ukU+0
Frescoとかあったやろ
2025/02/11(火) 11:21:04.97ID:xvrepIy10
色をTomatoとかSalmonとか配色に応じて修正してるけどさ、面倒くさいよね
WPFらしさというなら、やはり、Foreground="Red"なのだろうか、青のグラデーション、中央に表示されるMessageBox、そして警告音
古き良き00年代を懐しむデザイン
2025/02/12(水) 23:37:37.53ID:BRhQn8Rr0
>>565
昔調べたわ。結局あれ実現したのか?
2025/02/17(月) 13:32:38.13ID:Xd6W91C/0
observableCollectionもっと使いやすくならないの?何で範囲指定できないのか。
2025/02/17(月) 18:51:26.75ID:rqJoDalTM
拡張メソッドをお使いください
2025/02/17(月) 18:52:59.12ID:9JWN7J4Va
observableみたいな変な仕組み一掃してもらいたい
UIのせいでデータ側に変更強いるのは思想に反してるだろ
2025/02/17(月) 18:57:00.96ID:rqJoDalTM
IListをお使いください
2025/02/22(土) 08:14:35.24ID:WrgPAAGU0
変更があるたびにイミュータブルなVMを毎回作り直すようにしてone-way bindingのみにするだけで遥かにシンプルになるのにね
さすがにDataContextを根本から差し替えるのは非効率すぎるからReactのVirtualDOMのような最適化は必要
VMの差分比較だけでいいんだから技術的にはVirtualDOMなんかよりよほど簡単なはずだけど、そういうフレームワーク無いのかな
2025/02/22(土) 08:20:13.44ID:DUbJV40j0
名前の無いPropertyChanged放てば全部更新されるだろ
2025/02/22(土) 08:28:59.94ID:WrgPAAGU0
>>573
それだと変更のない箇所まで更新対象になるから非効率でしょ
あと、DataContextにイミュータブルなVMを直接設定しちゃうと結局丸ごと差し替えるしかないから、
DataContextのオブジェクトを入れ替えなくていいようにプロキシ的なものを間に挟むケアが必要だね
2025/02/24(月) 10:34:35.00ID:bJj6zTFJ0
observablecollectionにもう少し文句あるけど、項目ごとにいちいちpropertychangeで監視するコードを書かなきゃいけないのなんでよ。項目内の変更は無視してリスト数の変更だけ取りたいことなんてあるか?
2025/02/24(月) 10:51:27.43ID:gnxataoUM
???
2025/02/24(月) 10:54:44.98ID:I+emSd+oa
含まれてる要素ぜんぶ追っかけたら、追っかける必要ない要素まで処理することになるし
その辺効率よくするの難しいから・・・プログラマに丸投げ
2025/02/24(月) 11:09:23.48ID:6Uht1bH5M
それいうたら
どうしてPropertyChangedいるんだまでいかない?
579デフォルトの名無しさん (ワッチョイ 7d22-eWcp)
垢版 |
2025/02/24(月) 12:32:14.90ID:Oa9EYt1R0
>>575
何言ってんだこいつ
リスト自体に変更ないならListでいいよ
2025/02/24(月) 17:07:29.06ID:hohbHZqs0
日本語読めないやつが来た
2025/02/24(月) 23:32:10.57ID:WgCsy9/y0
BindableCollectionならRefresh()で解決
ObservableListでも多分できる知らんけど
2025/03/12(水) 00:20:56.93ID:LNbDBSJi0
TypeScriptをネイティブ実装化するらしいな
https://x.com/ahejlsberg/status/1899468706218160591?s=46

いよいよC#もお役御免かな
2025/03/12(水) 01:02:45.01ID:3dswsZRp0
まじか!
2025/03/12(水) 01:09:23.52ID:opZX9dvW0
あくまでもVSCode上での動作やコンパイラが速くなるだけだぞ
2025/03/12(水) 05:30:43.74ID:3dswsZRp0
TypeScript 6 (JS) で TypeScript 7 (ネイティブ)って言ってるからガチじゃね?
2025/03/12(水) 06:26:26.10ID:YhmDaNsv0
TypeScript「コンパイラ」をgoで書き直したってだけじゃなくて?
2025/03/12(水) 10:18:48.57ID:3dswsZRp0
TypeScript 5系 <-- いまここ
TypeScript 6系 まだJS ・コンパイラは早くなる・ネイティブ化への布石
TypeScript 7系 完全ネイティブ化する

だろ
2025/03/12(水) 10:25:48.02ID:TsbDxVWYa
typescriptをコンパイルしたらexeができるようになるんじゃないのか
2025/03/12(水) 10:26:44.35ID:C1Q/wGhY0
Why go?
https://github.com/microsoft/typescript-go/discussions/411

MicrosoftがGoを選んだというのが興味深いけど、案の定
なぜC#ではないのか?→C# AOTはゴミ
とかコメがいろいろ荒れとる
2025/03/12(水) 10:38:58.55ID:C1Q/wGhY0
>>588
成果物はあくまでjs
2025/03/12(水) 10:41:14.98ID:3dswsZRp0
それはts 6系では?
2025/03/12(水) 11:11:35.51ID:K962K+0d0
>>585
流石に文盲が過ぎる

一連のワークフローにおける省メモリ化と高速化を主な目標として、コンパイラを含む各種ツール群をGoで書き直すプロジェクト「TypeScript 7(native)」が進行中ってニュース
重大な(破壊的な)変更が含まれる前提であり、前身の「TypeScript 6」にて対象となるAPIや機能を非推奨としてマークする計画であるとも
2025/03/12(水) 12:02:47.70ID:3dswsZRp0
>>592
仕事中だし全部読んでねーーからな 笑
2025/03/12(水) 13:19:14.28ID:4px3o80KH
どうでも良いけどアンダース・ヘルスバーグって64才でまだ現場やるんか、超人かよ
2025/03/12(水) 14:32:08.50ID:uoPxhT/UM
TypeScriptはWeb系に受け入れられやすいようにMS色を抑えてるからC#は論外だわな
いくらヘルスバーグがいるといってもtscの開発チームなんて基本的にUnix系でMSスタックには馴染みがない連中だろうから、あえて.NETを選ぶ必要性もない
Rustにしなかったのは移植が面倒だからだろうね
2025/03/12(水) 15:28:11.96ID:YhmDaNsv0
そらvscode動かすのに.NET必須ですってなったら、折角エディタ業界を制覇したのにWindows以外でのシェア全滅するだろ
2025/03/12(水) 18:21:40.34ID:wQgKlRYw0
goがいいのか
2025/03/12(水) 19:28:25.17ID:Pt/zfEko0
tscなんてファイルIOと基本的なテキスト処理と最低限のHTTPサーバーの実装ができりゃいいだけだから、Goだと変な依存関係なしにほぼ標準ライブラリだけで作れるはず
tscみたいにシンプルな要件の中で継続的にロジックだけ手を入れていくような性質のものには適してそう
2025/03/12(水) 19:43:05.00ID:LNbDBSJi0
WhyGo?、ヘルスバーグも書き込んでるじゃん
全然関係無さそうなC#おじがここぞとばかりに集合してて面白い

ヘルスバーグの、他の動画引用の発言含めて興味深かったのは
・我々は関数型スタイルで書いている、TSCコアはクラスがまったく使われていない
→このコードベースを移植するのに最も適したGC対応の言語がGoだったという事らしい
・C#AOTは10年以上更新されておらず、最初からそう設計されたものではない
・でもC#は大事だよ!
→といいつつ、OSSとコミュニティのコラボレーションが最優先、とも。いかにも苦しいな
2025/03/12(水) 19:50:26.71ID:byVikOTs0
>>596
ネイティブコンパイル出来るようになったんじゃなかったの?
2025/03/12(水) 23:20:15.54ID:YhmDaNsv0
>>600
nodejsで書かれてたTypeScriptコンパイラ…トランスパイラと言った方がいいのか?をネイティブ実装するという話で
最終生成物はjsのままっしょ?
2025/03/12(水) 23:28:49.02ID:mUia8/7sa
このスレAIしかいないのかってぐらい会話になってなくて笑える
2025/03/13(木) 00:02:31.27ID:v10299140
>>601
そういうことなのにわかってない連中ばっか
さすがC#さん
604デフォルトの名無しさん (ワッチョイ c110-k3jN)
垢版 |
2025/03/13(木) 17:58:36.45ID:dupCEBZg0
セルフコンパイルを諦めてまでやるってことだからJavaScriptって本当に遅いんだな
2025/03/13(木) 19:23:31.60ID:C8a9jwOgM
残念ながらUIまで含めればWPFよりは遥かに速いんだよなあ
2025/03/14(金) 01:10:14.19ID:Ch3nFO3N0
なんか不毛な戦いが見える気がする
2025/03/15(土) 04:33:53.81ID:NDk9Iq9/0
いやもう時代は下々のプログラマーの実装言語はTS(JS)でそれをトランスパイルするコンパイラがC++ or Rust or Goに集約されたっちゅーことや
もうJavaもC#も死にゆく言語やねんJavaもAndroidの中間言語としてかろうじて生きながらえてるだけで実際の実装はDartとFlutterで記述してるからな
ヘルスバーグが既存TSの移植に一番適してたっちゅー理由でGoを選択してまたGoが脚光を浴びたことでGoogleがAndroidにtsgoを採用するかもしれんのが楽しみやな
608デフォルトの名無しさん (ワッチョイ 557d-k3jN)
垢版 |
2025/03/15(土) 09:46:45.19ID:YDaTK7Qf0
FlutterがJava/Swiftより使われてる笑
エアプ乙
609デフォルトの名無しさん (ワッチョイ 9936-W959)
垢版 |
2025/03/18(火) 10:51:15.76ID:Oox7NUOb0
googleがFlutterを見放したって話ですよ奥さん
2025/03/18(火) 19:54:43.16ID:2WOtdWVD0
Flutterはめちゃめちゃ負債化の香りがプンプンする
2025/03/18(火) 20:26:46.00ID:b9DhRgN60
dartが好きになれない
612デフォルトの名無しさん (ワッチョイ 5320-pKjK)
垢版 |
2025/03/19(水) 03:45:45.70ID:ic5m4wLY0
>>611
ほんそれ
JSじゃなくてDartである必然性がない
結局IT後進国の日本ではJavaドカタを有効再利用するためだけの理由でKotlinがトップシェアだから尚更Dartの存在価値がない
日本て未だにネイティブ信仰が強くて合理化や効率化を無視してんのもマルチプラットフォームには向かい風なんよな
613デフォルトの名無しさん (ワッチョイ 9b49-avMV)
垢版 |
2025/03/21(金) 21:49:45.35ID:XSFJ2b5u0
ちょっとUno触ってみようかなーって思ったらIME非対応で草
614デフォルトの名無しさん (ワッチョイ 5378-pKjK)
垢版 |
2025/03/21(金) 23:19:07.00ID:klu7Q3/A0
HTML+CSSの柔軟さと楽さに慣れたらXAMLとか苦行でしかない
2025/03/21(金) 23:31:38.45ID:MU5vwMSW0
人は苦行に喜びを感じて受け入れることで悟りを開くと聞いた
2025/03/21(金) 23:40:37.21ID:AYIWzGzyM
苦行なのにこのスレに書き込みに来る辛いお仕事
2025/03/24(月) 20:52:39.84ID:IMt/bJ0n0
winUIとかいうWPF劣化版の再生産やめてほしい。スマホに浮気する暇ないだろ。
2025/03/24(月) 22:23:40.26ID:f5uVV0zC0
ネイティブコードから使えて現代的な見た目の標準GUIツールキットが存在しないのはさすがにOSとしてまずいからね
従来.NETでWinFormsやWPFで作ってたような重いGUIアプリの分野はいまやWeb一択
その反面、相対的にちょっとしたユーティリティ(極端に言えば標準の電卓とか)みたいなシンプルな要件で速さ軽さが求められるネイティブ開発の重要性が相対的に高まっている
というわけでWinUI3はその状況に素直に対応しようとしているわけだけど、現状WinUI3はパフォーマンスが劣悪なので本末転倒な状況だね
2025/03/25(火) 08:51:04.31ID:yUsTTTcU0
Redditの海外ニキですら.NETサブレでこんな議論しとんのやで

「C# は死に絶え、プログラマーは強制されてのみそれを使用している」 ( self.dotnet )
(クリックベイト的なタイトルで申し訳ありません)
私はスタートアップ企業(管理/バックオフィス向けオープンソース AI コード生成)で働いており、主要言語として C# を選択しました。
投資家からは、「友人に聞いたところ、C# は廃れており、レガシー製品に取り組まなければならない開発者だけが使用しているとのことでした」といったフィードバックも寄せられています。
これは間違っていると思いますが、スタートアップがすべて Typescript または Python を使用している場合、説得するのはまだ困難です。
私が考え出したいくつかの議論は次のとおりです。
- C#/dotnet はオープンソースであり、Microsoft から多額の投資を受けています。おそらくどの言語よりも多くの投資が行われています。
- C# は、購買力のある大企業でよく使用されます。
- Stackoverflow の調査によると、依然として非常に人気のある言語です。
- もう 1 つのポイントは、LLM を使用してコードを生成するときに良い結果を得るには、静的に型付けされた言語が必要であるということです。静的に型付けされた言語では、コンパイラを使用してほぼすべての LLM エラーを見つけることができますが、Lovable anv v0 などのサービスでは、実行時エラーを待機する必要があり、その修正ループでユーザーを困らせます。
あなたの意見を聞きたいですか?
2025/03/25(火) 14:01:36.68ID:2YMjV54Z0
フロントエンドやUIはもう全部TypeScriptでいいよとは思う
まあそのスレ流し読みしてても思うけどC#はバックエンドで生き残りそう
2025/03/25(火) 15:46:55.74ID:CE9VTyQHd
勿論フロントはWeb一択だが、海外だとパッケージソフトやSaaSのサーバーサイド言語としてはC#はまあまあ使われてるらしいね
国内だと技術的な良し悪し以前の問題としてまともにWeb開発できるC#エンジニアを確保するのが困難なので、スタートアップでの採用は論外
2025/03/25(火) 15:56:55.05ID:yUsTTTcU0
問題はGoでの移植により10倍高速になったTSで開発したマルチプラットフォームアプリが仮にC#のMAUIよりも速かった場合
XAMLとASPが完全に\(^o^)/オワタなんやがMAUIとかゆー産廃なんにかに多額の投資しててどーすんの?って感じでクソワロタ
2025/03/25(火) 16:26:33.00ID:7Bt9UbUi0
>>622
自身の文盲を呪うといい
2025/03/25(火) 17:53:59.58ID:wd43f0w5M
Goのはjsが速くなるわけでないんで
2025/03/25(火) 20:04:22.72ID:BNsR0jH8M
文盲は文章の意味が取れない人じゃなくて
教育を受けてなくて文字自体が読めない人

日本にはいない
2025/03/25(火) 20:13:18.63ID:mAGNflh40
ここにきてるwebちゃん…
2025/03/25(火) 21:16:01.42ID:gK0aKFPF0
SEO的な問題もあるがそのWeb系UIはwasmまでいくのか?
Blazor wasmかflutter wasm
ちょっとWeb個人アプリ作ろうと思ってflutter wasm調べてる
2025/03/25(火) 21:55:19.29ID:aB3aixGU0
なにその無駄な周回
2025/03/25(火) 21:58:03.31ID:6deS3uMO0
flutter webって技術デモみたいなもんじゃないの?
実用になるの?
2025/03/25(火) 22:03:39.59ID:aBwucHzh0
QtとC++でやったほうがマシじゃね感
ネイティブアプリにもなるしスマホアプリにもなるらしいしwasm化してWebでも動かせるらしいし
2025/03/25(火) 22:13:34.97ID:gK0aKFPF0
>>629
実用になるかどうかわからんから調べてる
QtとC++じゃUIがショボくなるんじゃね

まぁ、Flutterでモバイルアプリは作ってきたから新しく覚えることはほぼないが
Blazor wasmはC#は大丈夫だけどblazorは触ったことねぇ
2025/03/25(火) 22:23:08.96ID:gK0aKFPF0
計画ではVPS借りるからなるべく軽いやつで
ということで
バックエンドはgo+フロントは?
.netでフルスタックするとメモリ食うよね?vpsメモリ少ないからな
633デフォルトの名無しさん (ワッチョイ b249-WcQO)
垢版 |
2025/03/25(火) 22:36:49.06ID:KzQ0r7mo0
最近のQtはCSSライクなQMLでUIを記述する
ショボくないUIになるかはがんばり次第
個人的には悪くないと思うけど商用ライセンスの値上がりが凄いのがね
オープンソース版はやる気ないし
2025/03/25(火) 22:37:25.19ID:2dWnvP+A0
Google EarthはアプリもWebもFlutter製
Web対応の体裁だけ整えて放置する会社は見習えと言いたい
2025/03/25(火) 23:49:41.19ID:2YMjV54Z0
令和になってもffmpegをアセンブラで書き直したら爆速になったみたいな事やってるし、機械学習もllama.cppが流行ってるし
AI時代はエコシステムの勝ち馬に乗るか、
低レイヤーをしこしこ頑張るか、
技術選定はどんどん二極化すると思う
そういう意味では今から愚直にcppでwasmという選択は筋としては悪くない気がする
まあuiまではやらなくてもと思うが。
flutterも.netも中途半端、使い道はどんどん限られるだろう
2025/03/25(火) 23:55:06.87ID:aB3aixGU0
どうしてもhtmlとcssをやりたくない連中ばっかだな
637デフォルトの名無しさん (ワッチョイ 2e81-VQqt)
垢版 |
2025/03/26(水) 00:24:50.20ID:MJuuuAff0
>>636
馬鹿は>>635を理解できない
638デフォルトの名無しさん (ワッチョイ b1ac-eftE)
垢版 |
2025/03/26(水) 00:33:09.00ID:eMFhL/lH0
あれでもないこれでもないって言いながら一生手を動かさないまま終わればいいんじゃね?w
2025/03/26(水) 01:35:13.67ID:GPu5GtYna
c#はガチで遅いもんな。たまにc++使うとまじで驚く
2025/03/26(水) 08:49:16.51ID:wBIhDxbR0
今時はサーバーサイドでReact動かしてレンダリングしちゃうのが主流になりつつあって、wasmは逆に存在感を失いつつあるね
2025/03/26(水) 09:29:48.53ID:p1L24+Ha0
サーバーサイドでやるんだったらASP.net Coreでいいんじゃ?
2025/03/26(水) 10:08:48.04ID:DSz4ZjhMM
同じ言語だから、サーバーサイド
2025/03/26(水) 10:13:55.64ID:U/bUUBa+0
>>640
それブログとか商品カタログとか商サイトの場合
gmailとかカレンダーとかアプリ系はCSRでないと使い物にならない
644デフォルトの名無しさん (ワッチョイ 8210-aYiY)
垢版 |
2025/03/26(水) 17:14:48.12ID:h/ZgE+7d0
>>639
起動時間だけだろ明確に違うのは

AOTで改善しつつあるしほぼ差はないよ、それより高速な実装にするプログラマーの技量の問題
2025/03/26(水) 18:41:32.72ID:GPu5GtYna
>>644
WPFはAOT対応してないしオーバーヘッド大きい
2025/03/26(水) 19:18:48.01ID:geyBcbiI0
.NET9でもWinUI3でAOT機能せんで
っちゅーかリフレクション使うとAOT使えないって時点でC#の仕様上かなり終わっとるやろwww
2025/03/27(木) 10:15:40.36ID:7tA0ll5aM
そんなにリフレクション使うことある?
2025/03/27(木) 11:00:52.49ID:P4pBfsgVa
自分に使う気がなくても内部で使われてる
649デフォルトの名無しさん (ワッチョイ 626c-29WZ)
垢版 |
2025/03/27(木) 11:09:31.88ID:KqNGxMGr0
>>647
これ>>648
2025/03/28(金) 11:16:36.00ID:f7MvkClJ0
.NETのアプデペース凄いな
.NET Frameworkはもう不具合対応しかしないなら、いっそ非推奨にしてくれ
2025/03/28(金) 11:24:37.00ID:9yLVdxrVM
.NETT5,6,7はもう不具合修正すらされないんだよね
2025/03/28(金) 12:57:51.28ID:qhcxfAm9M
LTSの.NET6はもう少し長く(具体的には次々のLTSの.NET10のリリースまで)サポートして欲しい
2025/03/28(金) 21:35:49.63ID:8eNM17rzM
>>650
自分は.NETは馬鹿だなって思うけど
自分で価値を下げている
654デフォルトの名無しさん (ワッチョイ 6d36-yse5)
垢版 |
2025/03/28(金) 21:45:31.20ID:NeeSelCN0
LTSはせめて5年はほしいよな
現代だとセキュリティが重視されるし、ライブラリも言語も継続的に更新し続けるのが求められるんだけど、体力ないところにはキツい
2025/03/28(金) 21:46:47.52ID:8eNM17rzM
企業でもともと安定運用してるアプリがあってそれが.NETのサポート終了したとしてそれをどうするんだろうか?
金を払ってコンパイルしなおしてもらうのか?

不具合対策がされているなら.NET Frameworkで十分だろう
使う側にとって.NETは罠でしかないと感じる
レスを投稿する

5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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