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
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
なんか泥縄な対処にしか思えない
2020/01/17(金) 08:13:04.05ID:rhst4WoKd
>>102
そしてアプリの数だけlocalサーバーを起動しておくんですね
2020/01/17(金) 09:09:50.92ID:0sb73h15M
ローカルのTCPサーバーなんてIPCなどで普通に使う
お前が思っているほどダサい発想ではない
2020/01/17(金) 11:28:48.32ID:H3mEbxL10
Socket を使えば、簡単に local server が作れることがわかった。
cgi や html を扱う HTTP (プロトコル)も、基礎はTCP/IPで、
それが socket を使って行われる。
socketは元はUnixのもので、WindowsでもWinSockが、ほぼ互換性があるとされる。
Javaでもsocketは使えるのでAndroidでも使えると思われる。
2020/01/17(金) 11:29:55.06ID:H3mEbxL10
>>124
理論上は、local serverは一つ起動しておけばよい。
native file systemへのアクセスは、そこから呼び出されたcgiが担う構造となる。
2020/01/17(金) 12:21:49.36ID:jY/iqPsQ0
>>126
元はBSDの AF_UNIXで同一マシン内の通信用
それをネットワーク対応にした。
その名残がinetd
2020/01/17(金) 12:33:38.01ID:H3mEbxL10
cgi側が作り出した10桁くらいの乱数を、cgiを使いたいWebアプリ側に入力する
事で認証にする方法を思いついた。
JavaScriptでもnativeのクリップボードの内容をペーストできるので、ボタンを
押しただけでこの動作を自動化することも出来る。
ただし、それをするとフィッシングされてしまうことがあるので、cgi側がメッセージボックス
を出してユーザーに確認することが必要だと思われる。

または、cgiとWebアプリを組にして配布し、両方に公開鍵と秘密鍵を埋め込んでおき、
乱数に対して正しく応答できるかで相手確認をする方法も思いついた。
130デフォルトの名無しさん (ラクッペ MM41-iig7)
垢版 |
2020/01/17(金) 14:36:01.09ID:VsLYB/xRM
(笑)
2020/01/17(金) 15:05:57.50ID:H3mEbxL10
socketのaccept()関数には、通信相手のIPアドレスが分かる機能がある。
ブラウザにはhtmlをlocalにコピーする機能がある。
localに保存したhtmlである場合のみ、native file systemへのアクセスを許可する
ようにlocal serverを作ることも出来るかもしれない。
悪意サイトをlocalに保存する人は少ないだろうから。
2020/01/17(金) 15:11:37.90ID:cvIKbp4L0
>>131
で、長々と書いてるそれWPFと何の関係があるの?
2020/01/18(土) 11:52:24.23ID:6/b4ybIYM
Blazor Server、Webasm、PWA、Hybird、Nativeと開発の選択肢が充実してきた
FormsもWPFももうおしまいだ
俺が言ってた通りBlazorだけでおkになる日も近い
2020/01/18(土) 12:12:23.57ID:IiMusaQC0
まともな書籍とプロジェクトテンプレート
が出来たら考える
135デフォルトの名無しさん (ワッチョイ 6e63-iig7)
垢版 |
2020/01/18(土) 15:10:52.79ID:Y/6fKVhZ0
頭がおkなんだな可哀相に
2020/01/21(火) 17:59:28.63ID:F+78+GL10
UWPで非sandbox環境がくるらしいけどいらね
2020/02/07(金) 08:57:48.75ID:WtTaalc4M
xamlからいいhtml吐き出してほしい
2020/02/07(金) 18:15:31.38ID:FaDRN6V/d
BlazerはSilverlightと同じ道を辿らないの?
(´・ω・`)
2020/02/07(金) 20:08:52.67ID:qWP9NwZGM
>>138
業界標準とされているWebAssembly吐くから大丈夫だとは思うけど諸行無常の世界だからな
セキュリティインシデントでブラウザがサポート終了する未来しか見えない
2020/02/20(木) 20:07:03.06ID:2lspeRt80
Windows7のサポートも終わったし、WPFは爆発的に普及する予感。
2020/02/20(木) 20:54:07.13ID:TOp7IeKo0
風が吹いても桶屋は儲かるからね
2020/02/20(木) 23:11:42.00ID:2lspeRt80
しかしwinformを15年以上使い続けてる奴が一番の勝ち組だな。Windows界のコボラーだね。
2020/02/21(金) 01:02:53.18ID:y0O9XxV30
業務アプリ界隈だと結構いそう
2020/02/21(金) 06:03:42.16ID:R2e8qzsK0
winformでも高dpi対応ではあるけど注意事項が多すぎてオワコンだよねえ
2020/02/21(金) 14:16:49.70ID:VCdp581Ia
サックッと作る時はWinFormのほうが手早い
2020/02/21(金) 20:50:40.81ID:ZPaNFwsF0
>>145
それは慣れてるだけでは?
2020/02/21(金) 21:15:39.28ID:JeYRrjOG0
嫌ぁWPFってWindowsAPIから遠いでしょぅ
例えば、WORD/EXCELの保存ダイアログの
上部のディレクトリ指定ツールバーに
SendMessage送ってディレクトリ変更出来る?
2020/02/21(金) 23:01:26.74ID:gYJx2Nw80
ポトペタでGUIをでっち上げるスピードはForms最強だよね。
2020/02/21(金) 23:05:30.03ID:JeYRrjOG0
>>148
100%固定ならそう思う
2020/02/22(土) 10:42:55.04ID:NV/PY/Op0
>>147
それWinFormの方が楽とかあるっけ?
2020/02/22(土) 10:43:37.08ID:NV/PY/Op0
>>148
ポトペタならたいして変わらなくね?
2020/02/22(土) 12:53:10.87ID:JN6kvW3hM
xamlのポトペタは無理
2020/02/22(土) 16:41:28.87ID:0idtaAPr0
>>150
formのコントロールならSendMessage
で大概okでしょ
2020/02/22(土) 17:12:09.74ID:NV/PY/Op0
>>153
> 例えば、WORD/EXCELの保存ダイアログの
> 上部のディレクトリ指定ツールバー
の話だよ?
2020/02/22(土) 18:23:48.33ID:zXnzI4owM
>>154
winapiはwinformとは関係ないだろ
2020/02/22(土) 18:33:34.58ID:Yl8XFkwD0
winapiって呼出規約のことかw
2020/02/22(土) 19:03:25.64ID:NV/PY/Op0
>>155
>>147に言ってやれ
2020/02/23(日) 22:10:03.38ID:Ib9jhEaG0
誰もmvvmを言わなくなったな
2020/02/24(月) 15:00:22.17ID:uOgko4BBd
ムヴヴム?
2020/02/24(月) 20:17:43.76ID:wFmJh66Ed
それだけ当たり前になったってことなのか
2020/02/25(火) 07:58:46.37ID:Y2rSQyp7a
WPFよりもWinFormのテキストが圧倒的に多いから取っ付きやすい
2020/02/25(火) 09:01:34.02ID:9ZnkAFSDM
dobonにwpf関連は無いからな
2020/02/25(火) 19:24:40.01ID:R4Aqu9Lj0
MSDNにWPF関連のドキュメントたくさんあるやん
2020/02/25(火) 21:16:04.36ID:DINBU8UK0
MSDNがゴミになって何年経っただろうか
2020/02/25(火) 21:20:49.37ID:DPkPOqav0
まぁ良く言って汚物溜め。
探しても探しても、ろくな情報が出てこない
2020/02/26(水) 15:09:07.36ID:6Gmih54SM
>>165
じゃあまとめて
2020/02/26(水) 15:25:47.56ID:Sy5iffYbd
>>165
何の情報探したの?
2020/02/26(水) 15:36:20.52ID:6wufcnv4M
msdnは嘘は書いてないのだろうけどかなり分かり辛い
2020/02/26(水) 16:03:28.79ID:tRXCtCnh0
MSDNは日本語がクソなだけで英語は普通じゃん
2020/02/26(水) 16:16:17.15ID:4RHSA7Wy0
MSDNブログ日本語版行方不明事件とか
2020/02/26(水) 16:16:17.02ID:eJgtcN890
間違いを指摘しても修正されなくなったし、スナップショットも出なくなったし、
ドキュメント保守部門が丸ごと消えたんじやねーの。
担当の開発チームが自分勝手に編集してるだけのように見える。
OSSの悪いところをマネ
2020/02/26(水) 16:37:33.74ID:J/Z+GoCJM
もうMSにとってITドカタは客じゃないんだよ
いい加減気付け
173デフォルトの名無しさん (ラクッペペ MM86-ZWRU)
垢版 |
2020/02/26(水) 20:02:53.90ID:rTIdtBEAM
そういう意味ではAzureとOffice使ってくれるのが今のMSの「顧客」だろうな
2020/02/27(木) 03:53:58.13ID:dXMdECOr0
ライブタイル廃止か
175デフォルトの名無しさん (ワイーワ2 FF82-WaSC)
垢版 |
2020/02/27(木) 09:09:52.38ID:c/azzpGnF
ライブタイル使ってないもん
スタートメニューに張り付けられるのは便利だけどアイコンあれば充分だしな…
2020/02/27(木) 14:46:15.67ID:CxyJejD60
>>171
OSSを推奨した人が多かったので、OSSが台頭。
それまでプロプライエタリソフトは、買った人の利便性を考え、
必ずしも営利にとらわれず親切心からマニュアル類を整備してきたが、競争上
OSSに勝たなくてはならなくなったので、親切心だけでは
どうしようもなくなって、利益を生まないなら放置されるようになった。
2020/02/27(木) 14:49:35.08ID:CxyJejD60
>>176
もう一つは、OSSの台頭によって、MS以外のプロプライエタリの開発環境が死滅または弱体化してしまったため、MSの競争相手がプロプライエタリの開発環境ではなくOSSの開発環境となったため、マニュアル整備もOSSと同レベルにまで水準を落とされた。
2020/02/28(金) 15:38:15.48ID:uB1B7NHg0
MSでOSSを推奨した人って誰?
2020/02/28(金) 16:12:51.89ID:DkMBLb2P0
今のCEOのナデラやろ
その前のバルマーまではOSSを敵対視してた
180デフォルトの名無しさん (ワッチョイ caad-+OLB)
垢版 |
2020/02/28(金) 16:23:48.09ID:SkbRzeQX0
OSS側が調子こいてきた件
https://mag.osdn.jp/20/01/27/160000
2020/02/28(金) 17:13:17.79ID:GfVfgYuK0
昔と時代が違う

Ruby による今世紀最大の起業家、Vagrant の作者・Mitchell Hashimoto(HashiCorp)だろ

その後、Docker, Kubernetes。
RedHat が、CoreOS を買収、MS が、GitHub を買収

今は、OSS からしか、富を産まない
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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