WPF(.NET4.x, .NET Core) GUIプログラミング Part24

■ このスレッドは過去ログ倉庫に格納されています
2019/12/09(月) 12:36:14.49ID:9LsUsH++p
Windows Presentation Frameworkについて語るスレ。

前スレ
WPF(.NET4.x, .NET Core) GUIプログラミング Part23
https://mevius.5ch.net/test/read.cgi/tech/1557960752/

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

コードを貼る場合は以下のサイトの利用をお勧め。
run codeのチェックは外しておきましょう。
http://ideone.com/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
24デフォルトの名無しさん (ワッチョイ 0663-bAjL)
垢版 |
2019/12/15(日) 18:49:53.72ID:ksBtberH0
そうなんだすごいね
25デフォルトの名無しさん (ワッチョイ e26a-xO71)
垢版 |
2019/12/15(日) 21:21:15.09ID:omABc3v90
>>17
楽したいならWebでやりなはれ
工数いくらでもかけられるならWPFでもUWPでも、できないことはほぼない
2019/12/15(日) 21:37:00.35ID:jUr/RnRQ0
>>23
Javascriptそのものが嫌いなんだよ
MVVMであろうがなかろうがJavascript死んでも触りたくない
2019/12/15(日) 21:55:45.59ID:o5hhJvrb0
今だとUWPもWin32もWindows UI Libraryにまとめてく方針なのかねえ
まああれもチガウソウジャナイ感凄いけど
2019/12/15(日) 22:15:01.76ID:Il4PZDbx0
同位
2019/12/15(日) 23:11:14.59ID:zGAF3rZP0
コントロールをWinUIにまとめてくれることはいいことじゃね?OSSにしてOSのアップデートと切り離して、更新とか頻繁にしてくれてるし。
少なくとも前よりマシじゃないかな。
 
2019/12/15(日) 23:34:06.18ID:fpSJINfx0
>>17
Windows だけなら、.NET じゃないの?

web 系なら、HTML, CSS, JavaScript で、

VSCode は、Electron 製
Redmine は、Ruby on Rails
2019/12/16(月) 00:11:15.63ID:eauHXZD8a
>>29
いかにプロダクトの思想が正しかろうが、思いつきでUIフレームワークを量産して次々に見捨てていくことこそが最低最悪の害悪
32デフォルトの名無しさん (ワッチョイ e2ad-rZsS)
垢版 |
2019/12/16(月) 00:11:16.01ID:Yb2j3jIx0
Blazor流行ったらいいけどセキュリティ的にActiveXの二の舞になりそう
2019/12/16(月) 00:52:30.46ID:G4rs8r9s0
>>32
昔、ネスケとMSが法廷で争ったとき、MSの懸念の1つはブラウザがOSの支配的地位を奪ってしまうことだったらしい。
ブラウザが有れば、どのOSでも同じ結果が得られてしまうため、どのOSを使っても差がなくなってしまう。
それはちょうど、WindowsOSをインストールしてしまえば、アプリ環境としては、PC-9801とPC/AT機の差がなくなってしまうので、オープン化で安くなったPC/AT
機が売れてしまったことと似ている。つまり:
・Win/Mac/Linux/iOS/Android と ブラウザの関係
・PC・AT/PC-9801 と Windows の関係
に対応関係がある。
何が言いたいかというと、Blazorが普及してしまえば、Windowsが必要なくなってしまうため、MSの安定収益が1つ無くなってしまう。
そうなれば、Googleは検索エンジンが安定収益になっているのと対照的だから、Googleに負けてしまうことになる。
2019/12/16(月) 00:56:16.26ID:G4rs8r9s0
>>33
一つ考え忘れていることがあった。それは:
Blazorアプリを動かすにはWindowsは必要ないが、Blazorアプリを開発するにはWindows(またはMac?)が必要だということ。
これがあるのでBlazorの発展はMSには問題にならないかもしれない。
2019/12/16(月) 01:10:04.54ID:G4rs8r9s0
>>34
ただ、Blazorアプリの開発がWindowsでしかできなくても一般人には全く関係ないが、プログラマの数と一般人の数は、1:50 位なので、Blazorアプリの普及はWindows離れを起こす可能性はある。
2019/12/16(月) 01:11:12.58ID:G4rs8r9s0
>>35
1:50 ではなく、1:300 くらいかもしれない。
2019/12/16(月) 08:07:06.72ID:2+K75qCnd
>>32
なぜ?
2019/12/16(月) 08:08:30.99ID:2+K75qCnd
>>34
WindowsとMacでほぼカバーできてるだろ
別にLinuxでも開発できるし
2019/12/16(月) 10:04:54.54ID:kzeVa20dM
BlazorをWebに乗りそこねたドットネッター達の救世主みたいに持ち上げてる人多いけど、
BlazorってReact系のプログラミングモデルでHTMLもCSSもバリバリ書くんやで
これ使える人なら普通にReactやVue使えるだろうし、単にそこに選択肢が一つ増えただけのことでしかないよ
2019/12/16(月) 12:38:30.30ID:2+K75qCnd
>>39
javaScript書かなきゃいけない量は格段に減るっしょ。それが何より。
2019/12/16(月) 12:48:32.60ID:kzeVa20dM
>>40
君にとってはJSを書かないことが重要なんだろうね、それを否定する気はない
・HTMLやCSSはバリバリ書ける
・しかも出来合いのJS製のコンポーネントに頼らなくても余裕なハイスキルフロントエンダー
・しかしJSやTSは絶対書きたくない
・だがC#は得意
こんな君みたいな奴がどれだけいるだろうねw
2019/12/16(月) 13:14:21.17ID:kzeVa20dM
あとBlazorでJS書く量が減るのって、クライアントコードをC#に置き換えたからというよりは仮想DOM技術の恩恵が大きいと思うよ
Blazorが多くのドットネッターにとって革新的に感じるのは、
彼らが仮想DOM系フレームワークに始めて触れたのがBlazorだったからじゃないかな
SPAだから全部JSで書かなければならないとでも思ってるなら別だが
2019/12/16(月) 19:39:57.10ID:J5g2Edewd
>>41
javaScript絶対書きたくないとか誰も言ってないやろ
2019/12/16(月) 20:28:50.09ID:3ha1TSe5M
Blazor に親でも殺されたんだろ
すでに拗れてるみたいだしスルーしといた方がいいよ
2019/12/16(月) 21:22:56.92ID:79yFDnLG0
今のBlazorのプレゼンテーション層はRazorのままだから仕方がないが、Blazorに期待してる人は
WPFまで移植してくれることを夢見てるんだろう。
ClickOnceが使えなくなる前になんとかしてほしい、と俺も思う。
2019/12/16(月) 21:26:19.20ID:PfD8zkHG0
>>45
msix
47デフォルトの名無しさん (ワッチョイ e26a-xO71)
垢版 |
2019/12/16(月) 21:49:37.96ID:IC9yBAsd0
JavaScriptは絶対悪だからな
それを根絶できるという理由でBlazorに限らずWebAsm由来言語は期待されてる
2019/12/16(月) 21:51:23.70ID:PfD8zkHG0
>>47
現状だと根絶はできないけどマシにはなるよねって感じ
49デフォルトの名無しさん (ワッチョイ e26a-xO71)
垢版 |
2019/12/16(月) 21:53:25.47ID:IC9yBAsd0
うん根絶は言い過ぎね
2019/12/16(月) 22:58:22.69ID:1VnPjzNAa
jsに触れた途端いろんなものが腐りだす
それを正そうとしたtsですらすでに腐れがとまらない
2019/12/16(月) 23:05:42.40ID:v/vzDWBs0
WPFもjsも死にプロパティ多くない?

あ、これもあのクラスと同じプロパティあるじゃん
よし、じゃこうやってセットして・・・アレ?効かないよ?
???:ブブー、このクラスはそれじゃできませーん

↑作った奴、腹、切れ
2019/12/16(月) 23:55:59.55ID:1VnPjzNAa
そう思うのはお前だけかも
2019/12/17(火) 01:14:45.87ID:HZ3CGT22a
WPFのオリジナルの開発チームはとっくに全員クビにされてそう
WPFのCore移植でも作業してたのほとんど外注だったから、実際には外に丸投げしてたのかもしれないけど
2019/12/17(火) 01:25:01.50ID:ntUXPBrS0
>>52
なんでだよ
htmlもそうだけど
存在するにも関わらず死にプロパティ多すぎだろ
せめて効かないやつ削除しろや
2019/12/17(火) 01:36:41.97ID:L0ReHu/va
いまさら効くように修正しろは無理なんだろうな。
2019/12/17(火) 06:09:29.39ID:VYKNZVwp0
>>54
継承で存在してるから消すのは無理だ
2019/12/17(火) 07:10:51.99ID:ntUXPBrS0
>>56
ダッセ
2019/12/17(火) 08:33:37.96ID:T826ITw1M
>>57
親の因果が子に報いって知ってるか
2019/12/17(火) 08:59:07.59ID:NLPcqMtj0
言語にそういう機能があればいいんじゃね?
って思うけどね
2019/12/21(土) 13:44:35.77ID:bc48PbHC0
https://prismlibrary.com/docs/index.html の +WPF の下がほとんど空っぽなのは工事中ってことか?
2019/12/21(土) 21:17:25.11ID:67MibJ5r0
この前まで6のドキュメント置いてあっただけだから
見出し書くていどのやる気は出たってことかなw
62デフォルトの名無しさん (ラクッペ MMdb-uJpR)
垢版 |
2019/12/21(土) 21:23:58.75ID:J2IUNyvUM
バカにはみえないってネタじゃないの?
2019/12/22(日) 11:49:33.83ID:vUv+Fno80
メルヘンだね〜

WPF, Prismの情報が少ないのに本家までこれじゃぁハードル高いわ
2019/12/23(月) 12:38:17.86ID:vJLS+V080
複数のVisualBrushで重ね塗りする方法を教えてください
2019/12/23(月) 12:44:38.80ID:+KUE/8IiM
同じ図形を重ねろ
2019/12/23(月) 12:47:40.54ID:vJLS+V080
VisualBrushの足し算みたいなことはできないということですかorz
2020/01/05(日) 11:21:43.18ID:unJHxkBD0
google playにあるUno platform製の電卓アプリUIが重すぎ。xamarinと同じで絶対流行らん
2020/01/05(日) 14:51:30.39ID:4RTPdLScd
そういう流行らんもんがいっぱい出てきて淘汰されて良いもんが出てくる
良いもんだけを出すことは不可能
だから糞が出てくること自体を否定する意味はない
業務でその糞を使えと言われないことを祈るのみ
2020/01/08(水) 06:25:42.21ID:ktKrCPIn0
ためそうかとしてたがUno重いのか……
まぁいらってみるか
70デフォルトの名無しさん (ワッチョイ 5fda-lB9F)
垢版 |
2020/01/12(日) 21:53:57.39ID:JYZ9/GC+0
みんないつかは、Brazorに行ってしまうん? WPF捨てて
2020/01/12(日) 22:41:13.37ID:jal4Y14d0
WPFよりBlazorのほうが未来あるしそうなったほうがいい
2020/01/12(日) 22:52:27.55ID:EKUpo6h10
WPFとBlazorは排他的なものじゃないと思うが。Razorのことか?
2020/01/12(日) 23:57:44.80ID:F6k+/xNLM
Blazorは結局Webのスキルセットが必須だからWPFの比較対象にはならんだろう
この期に及んでクライアントアプリに固執してるような奴がBlazorのためにCSSの勉強とかすると思うか?
百歩譲って勉強するとしても、だったら普通にWebへ行くだろ
2020/01/13(月) 02:18:01.65ID:l+3zRFhM0
>>73
Blazor for Native次第だね
2020/01/13(月) 16:12:25.49ID:tvePguESa
Blazorっていうかデスクトップアプリは捨ててWebアプリに移行するよ。
2020/01/13(月) 16:31:47.39ID:Co2mHaqk0
10年くらい前からそんなこと言われていてずっと環境が揃うのを待っているんだが、あと何年かかるのかね。
77デフォルトの名無しさん (ワッチョイ ff63-Pb5J)
垢版 |
2020/01/13(月) 17:07:59.03ID:+xCO6TbN0
WPFは15年経っても流行らなかったがまだこれから来るとか抜かしてる奴がいるし
言い続けている限りは負けじゃないのさ(彼らの中では)
78デフォルトの名無しさん (ワッチョイ 5fda-lB9F)
垢版 |
2020/01/13(月) 19:44:22.74ID:fe6mKVWO0
Browser+RazorなのにBlazorっておかしくね? Brazorと呼ぶべきなんじゃ?
2020/01/13(月) 20:46:56.54ID:ZI4c9CuWd
>>78
Lの方がかっこいいやろーとか言ってなかったっけ?
80デフォルトの名無しさん (ワッチョイ 7f6a-lB9F)
垢版 |
2020/01/13(月) 21:40:22.16ID:KZpg2BWV0
>>73
C#案件が広がりを見せるという結果が期待されてるんでしょう
2020/01/13(月) 22:34:27.16ID:uqOg57lh0
C#で全部やりたいとかのニッチ向けに感じる
Webに移行するならコミュニティ、情報などの面からもクライアント側は素直にJS/TSでやった方がいいし
デスクトップGUIに価値を見出すならブラウザ上ってだけで欠点になる
2020/01/13(月) 22:36:00.19ID:5a7SXLUb0
ブラウザーでCAD作れる?
2020/01/13(月) 22:45:25.48ID:/BeY0uog0
>>82
作れる。世界最大(?)のCADメーカー AutoCadがWasmを使ってWebアプリとして移植したとされている。
Wasmの例:
https://yutakaaoki.github.io/
2020/01/13(月) 22:59:14.64ID:nlvLw0Pz0
>>82
バックエンドは要るけど
https://www.autodesk.co.jp/products/autocad-web-app/overview
2020/01/13(月) 23:01:22.84ID:tDVAmEYh0
>>83
毎度思うがもうちょいマシな見た目のサンプル紹介したれ
2020/01/13(月) 23:23:09.14ID:lNXH+eFP0
photshopもあるし3Dもブラウザでできる
逆にブラウザでできない分野ってある?
2020/01/13(月) 23:31:28.82ID:/BeY0uog0
>>84
どんなバックエンド?
2020/01/13(月) 23:37:19.84ID:/BeY0uog0
>>86
実は、ローカルPCのファイルシステムに上手くアクセスすることがデフォルトでは出来ない。
ローカルPCにファイルを保存することは出来るのだが、ブラウザ(Chrome)の特殊な
データ領域に保存されてしまい、c:\ のディレクトリ内容を取得したりすることはブラウザを特殊なオプションで起動しない限りできないようになっている。
>>83 でdemo1などを起動してファイルメニューのOpenやSave As は少しトリッキーな特殊な方法でやっているが、自由自在にファイルを読み書きできるわけではない。
2020/01/13(月) 23:39:32.88ID:nlvLw0Pz0
>>87
それはさすがに
2020/01/13(月) 23:40:24.07ID:nlvLw0Pz0
>>87
すまん、途中で書き込んでしまった

それは流石にautodeskに聞いてくれ
2020/01/13(月) 23:49:04.68ID:/BeY0uog0
>>90
「バックエンドが必要である」ことは正しい情報??
2020/01/13(月) 23:57:41.45ID:nlvLw0Pz0
>>91
すまんがそれもautodeskに聞いてくれ
とりあえず単体では動かないみたいなので何ら名のバックエンドはあるはず
ライセンス認証だけかも知れんが
2020/01/14(火) 00:03:44.99ID:FVhMPKFe0
>>92
もしかしたら、それとは意味がずれるかもしれないけど、少なくとも、データ保存のためには、クラウドというか、リモートのサーバーにデータを渡す必要があるかもしれない。それはWebアプリはローカルPCのファイルシステムには容易にデータを保存できないから。
2020/01/14(火) 01:46:16.97ID:XH4E/8vV0
>>88
DTMのようなリアルタイムかつ低レイテンシーが重要な分野は厳しいんじゃないかな
2020/01/14(火) 03:38:34.54ID:3sd16sWN0
ローカルPC に、Node.js, Ruby などのサーバーを立てれば、保存できる

VSCode は、Electron 製 = Node.js + Chrome。
Redmine は、Ruby on Rails 製
96デフォルトの名無しさん (ワッチョイ 7fad-UU8b)
垢版 |
2020/01/14(火) 04:56:00.11ID:ZjsGanM00
クラサバ→シンクラときて結局ダム端末に戻るのか
2020/01/14(火) 08:09:41.30ID:Dwwl7O4Ta
>>95
ElectronはNode.jsのモジュールとしてChromiumエンジンを組み込んでおり、決してHTTPサーバーを立てている訳ではない
あとRedmineみたいなゴミとVSCodeを一緒にするな
2020/01/14(火) 18:24:44.38ID:FVhMPKFe0
cgiが使えるLocalServerを起動していれば、cgiの仕組みを使ってローカルファイルシステムに自由にアクセスできるようにはなる。
また、この仕組みを使えば、WebアプリからローカルOSのあらゆる機能が使えるようになる。
2020/01/14(火) 18:26:25.39ID:X7PL8nyZr
それはセキュリティーホールと言う奴だねw
2020/01/14(火) 18:31:55.23ID:FVhMPKFe0
RubyやPython, node.jsなどはどれも cgi server として起動することも出来て、
さらに、cgiを書くスクリプト言語としても使える。
そしてほぼあらゆるプラットフォームで動作する。
だからそれらを利用すれば、理論上は1つのcgiスクリプトであらゆるプラットフォームでOS固有のファイルシステムにアクセスすることが出来る。

>>99
まあ、悪用すればそうなんだけども。
2020/01/14(火) 18:54:53.44ID:X7PL8nyZr
linuxなどではルートフォルダを自由に指定してある階層から出られなく出来るけど
winはそれがないからちゃんとフォルダ指定内容をチェックしてないと単なるセキュリティーホールになる
2020/01/14(火) 18:56:14.18ID:FVhMPKFe0
cgi serverとWebアプリを組み合わせたツールキットを作れば、それだけでnativeアプリと同様の機能を持ったマルチプラットフォームツールキットになるかも。
2020/01/14(火) 18:57:57.56ID:FVhMPKFe0
>>101
native アプリではそもそもどんなフォルダにもアクセスできますので、それを持ってセキュリティーホールとは言えないと思います。
2020/01/14(火) 21:07:10.83ID:1W0s33Ee0
>>92
悪いが、個人でAutodesk規模の開発
をする気は無い。っうか無理だ

ライブラリーも含めてそういうものを
開発出来るベースが無いという事で納得した。
2020/01/14(火) 22:14:43.86ID:iQtyfXTR0
ブラウザで動作するCADソフト開発する上でのベースが無い
という納得?
ブラウザアプリもデスクトップアプリも変わらんと思うけど
2020/01/15(水) 14:23:45.70ID:VmaxE9Gg0
>>94
MIDIやSynthesizerのWemAppli、Wasmに関する話らしい:
https://twitter.com/DasSurma/status/1217129248038670337

遅延に関しては、Webゲームを試してみる限り気が付かない程度だった。
https://twitter.com/5chan_nel (5ch newer account)
2020/01/15(水) 14:52:56.83ID:VmaxE9Gg0
>>106
他にも色々あるけど、例えばこんなものがある。
スライダーを動かすと音が変わる。
これで遅延のほどは分からないが、遅くて使い物にならないようなものではないことは分かる:
https://csound.com/wasm/Sliders.html
2020/01/15(水) 16:19:59.37ID:cciB5/G30
アクション性の高いfpsゲームなんかもブラウザでゴリゴリ動く時代にそんな遅延なんて気にならんと思うけど…
マイクロ秒単位まで求められるならしんどいが
2020/01/15(水) 16:30:44.61ID:VmaxE9Gg0
告白しますと、以下の簡易テニスゲームはモバイル機器では音ずれが起きるのですが、それは、HTMLのaudio要素を使っているからで、HTML5のWebAudio技術を使えば直ると思っています。
実際、ちゃんとしたWebゲームでは音ずれは起きていません。
https://yutakaaoki.github.io/demo_tennis/
2020/01/15(水) 16:37:25.36ID:VmaxE9Gg0
>>109
なお、そのサイトとはWebGLを使っており、WebGL 1.0はOpenGL 4.1から正式対応したので、OpenGL 4.1以上に対応したGPUでないとがたがたすることがあります。
Intel CPU内臓の Intel HD Graphics というGPUは、初期バージョンのものは OpenGL 4.0
までの対応なので、WebGLを使う場合に Chrome79 ではハードウェアアクセラレータが使えません。
2020/01/15(水) 17:45:15.98ID:ga1RRQJH0
>>108
> マイクロ秒単位まで求められるならしんどいが
まあそこまで求められたらデスクトップアプリでも厳しいと言うか汎用OS上だと無理じゃね?
2020/01/15(水) 17:51:40.07ID:5+cs/n4Td
>>111
うん、そう思う
なんでブラウザアプリでできないことってローカルファイルへのアクセス以外はあんまなさそうな感じする
まぁ細かな面倒くささとかはもちろんあるけど不可能ってわけではないしね
2020/01/15(水) 18:01:39.62ID:R0PftabM0
画像上でラバーバンド描画しようとすると
最低でも10fpsぐらいで画像送信する事に
なるけど、Webで出来る?
2020/01/15(水) 18:07:44.51ID:VmaxE9Gg0
>>112
Chrome限定になるけど、Native File Systemなるものでローカルファイルシステムが自由に使えるようになる。
ただし、デフォルトでは無効化されているので、
chrome://flags/#native-file-system-api
でEnableにする必要がある。
また、これは、HTML5 の File API とは別。
そっちの API では、ブラウザの特殊な記録領域にファイルが格納されてしまう:
https://qiita.com/pentamania/items/ada07c45d4e5cc139c03
2020/01/15(水) 18:43:42.42ID:VmaxE9Gg0
>>113
ローカルPCでJavaScriptやWasmを使ってグラフィックを描けば、ネット回線を使った画像の転送は要らない。
2020/01/15(水) 18:50:18.59ID:VmaxE9Gg0
>>99
ローカルにcgiサーバーを起動してローカルFSを使えるようにする場合、そのままだとあらゆるHTMLアプリがローカルFSを使えてしまうようになってしまうためセキュリティーホールになる。
それを防ぐには、ポリシーファイルというものを作ってその中に親となれるHTMLアプリのローカルディレクトリ名を列挙しておいて、それ以外の場所からのHTTPリクエストは禁止するようにすれば良いと思う。
CGIのHTTPリクエストのヘッダの中にOrigin: URLアドレスという項目があるので、それを利用して判定することが出来る。
2020/01/16(木) 11:53:28.01ID:+OFg0GPw0
blazorだかよう知らんがHTML/CSS嫌いの俺には
究極の選択になりそうだ。

C#+BlazorでHTMLさわるか
クソ言語のDart+Flutter

究極の選択
Flutterで一本アプリ作ってるが..
2020/01/16(木) 12:12:49.68ID:+OFg0GPw0
まぁ、去年はFlutter三昧だったけど、Dartのクソにもなれたし。Flutterの豊富なWidgetは最高。
2020/01/16(木) 18:25:40.85ID:k/5sr9Gm0
>>116
撤回。
HTTPリクエストのOriginもRefererも偽装が可能なのでその方法だとやはりセキュリティーホールになると思う。
対策は、公開鍵、秘密鍵の様な方法を使えば可能だと思われる。
2020/01/16(木) 19:58:45.06ID:+yHPpuH8M
>>119
クライアントの偽造を心配するならLocalServer側で変な所を読み書きしようとしてないかをちゃんとチェックして必要に応じてエラーを返すように作るべし
2020/01/16(木) 21:14:41.23ID:Z4nuhBaF0
>>100
UWPだとそういう抜け道をつぶすためにローカルホストへのソケット通信が出来なくなってる
2020/01/16(木) 21:34:01.69ID:F1bGXBdo0
AF_UNIXまで潰されている事に気がついた
時には殺意が湧いた。
どんなメリットがあるんだろう?
2020/01/17(金) 07:00:24.10ID:C1DTJTUYM
>>121
なんか泥縄な対処にしか思えない
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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