VB.NET質問スレ(Part44)
■ このスレッドは過去ログ倉庫に格納されています
>>366 何も違わないでしょ VBerだってWebアプリ自体は普通に必要とされて(WebFormsで)作っているのだから、 それが無くなったら客の要望に答えられませんというのは完全に「スキル不足」でしかないよ 業務系とwebやってたやつが組み込みに来たけどVCCとGNDの違いすらわからず基板壊してしばかれてた 組み込みに来るなら基本的な電気知識くらいは知っとかないとモノ壊しちゃうからねぇ ハードの分からない組み込みソフト屋は少なからず居る というか大半が回路図すら読めない 逆にハード屋はソフトも多少わかる人が多いというかソフトのことわかんないとメモリもバスもMPUも設計できないからね それは半導体屋だろ 組み込み基板を作ってるハード屋はソフトを知らなくても出来る .NET = .NET Coreではないし .NET Core = ASP.NET でもないんだけどな 元質問もWEB開発だとは書いてないし C#とVB.Netの最大の共通点は同じフレームワークとライブラリ群の上に成り立ってる ある程度複数の言語ができる人から見れば、C#とVB.Netの言語仕様の違いは大したことではない 膨大なライブラリの使い方がほぼすべて(ただし、特定言語のみできる機能等の一部例外はある) VB.NETがCoreで使えなても MONOで構築するから良いか C#は一見C++を進化させた言語のように見せかけただけで、実体はVBの類似言語だろ。 ネットで拾ったサンプルプログラムを変更して使ってます。 複数のタスクをiniファイルに保存して、そこから複数のタスクを読み込んで動くプログラムなのですが、 タスクを5個くらい保存して再度立ち上げるとプログラムが固まってしまうんです。 こういうのってどういう原因が考えられますか? 俺あまりプログラミングを理解してないのでよく分からなくて。 デッドロックじゃね 書いた人のレベルが低いんだろうから参考にしなくていいよ >>377 デッドロックっていうのがあるんですね。 何かの処理が同時進行していいてデータの読み込み書き込みが上手く行かないみたいな事みたいですね。 そういうのあるかもしれないなと思うので考えてみようと思います。 ありがとうございます。 >>376 デバッグ実行して固まったとこで一時停止 どこで止まったか、変数値、ステップ実行で流れ確認 などがまずやること >>379 ありがとうございます。 デバッグってやった事無いんですよねw やり方とか調べてやってみます。 単体テストちゃんと書いてればデバッグ実行なんて使わなくても十分作れるよ ブビ専には自動テストなんてファンタジーだろうけど アホみたいな複雑なシーケンス図書いてデッドロックと格闘してドヤってる馬鹿いるよね たかが業務アプリでそこまで複雑な制御が必要になるケースは本質的には稀なのだが、抽象的に物事を捉えられない奴は泥沼に嵌る 問題を無駄に複雑にしていると、傍からは仕事してるように見えるし本人にとっても気持ちがいいようだからたちが悪い 自動・単体テストなんか10年前に捨てたわ。ゴミ仕様。 デバックでバクを洗い出すほうが早いしな。 バグになりそうなコーディングだとわかってるなら、テストなんかしない。 バグを試すほうが早い。シーケンス図書いてる人のコーディングは バグを見破りやすいのは事実。シーケンス図にない操作を見つければバグる。 こういう奴らは、エラーメッセージに不可解なものを書き出す。 「アプリケーション内でエラーが発生しました。」 ゴミグラマ >デバックでバクを洗い出す デバッグとはバグを修正する行為で、バグを発見する行為じゃないんだが >バグになりそうなコーディングだとわかってるなら、テストなんかしない。 >バグを試すほうが早い。 バグを試すってなんだ?バグってないかどうか調べるのか? それを普通はテストっていうんだが バックグラウンドの処理のコードの書き方がわかりません。参考になるサイトなど教えてもらえないでしょうか? >>386 VBならビジーループ+DoEventsでいいよ どうせみんなそれしか理解できないんだし Taskとかスレッドとか使いたいんならVBじゃなくC#でググれ >>387 アドバイスありがとうございます! BackgroundWorkerクラス使って、なんとか動きました。合わせてデリゲートのことも勉強できました。 >>388 ビジーループというのはどういったものでしょうか?ググったのですが出てこず… どなたか教えてください! DataGridViewにデータベースから取得したデータを表示しているのですが少しお知恵をお願いしたいです。 コードは会社PCから書き込み出来ないのでのせれません。。 問題点 ・DataGridViewデータの表示形式を、ボタン押すと%↔数値(%の値×250とかの固定値)に変換出来るようにしたのですが 変換に時間がかかってしまいます。どうしたら表示を速くできるかアドバイス頂きたいです。 状況が ・DataGridViewには列12、行900〜のデータ、日々データ蓄積されるため今後も増えます。 ・変換時はDataGridViewのデータソースからデータテーブルへ取込み、セル毎に計算してデータテーブルへ値を入れ直し再度表示 原因はこの計算なのはわかるのですが、速くするための手段がわかりません。 現状はforでセル毎に回している感じです。。 仮想モードを使う 仮想モードとはDataGridViewにデータをセットするのではなく 表示に必要になった時に発生するイベントの中でデータを用意する方法 >>390 両方の列作っておいて、見せるのを切り替えるだけじゃね? >>391 仮想モードというの初めてききました。ちょっと調べてみます!わからなかったらまた聞きにきますので、教えてもらえたらありがたいです。 >>392 やっぱり専用のテーブル増やして表示だけするのが簡単ですかね。 >>393 〉やっぱり専用のテーブル増やして表示だけするのが簡単ですかね。 じゃなくて、%と値の列を同じテーブルに横並びで作っておいて、表示非表示で切り替え コントロールから値を取得して計算してるってこと? DatagridviewはDatatableを表示するだけで使った方がいい >>394 同じテーブルに%と数値の列をつくってあらがじめ計算 ボタンで表示を切り替えるというのは、どういう感じになるんでしょうか? >>395 DATAGRIDのソースからデータテーブルに取込み計算してますが、これではDATAGRID上で計算するのと同じってことでしょうか? いやいやいや… SQLで計算しろってことだろに… あとColumns(x).VisibleのTrue/False つーかこんなのも知らんでDataGridView使ってんの? >>397 すいません、初めて知りました。 独学では限界ありまして… いい参考書あったら教えてください。 >>398 俺だって独学だよ helpでどんなプロパティやメソッドあるか調べたり使い方ググったり sqlに関してはアクセスのデザイナで作った後sql表示にしてどういう風になるか調べたりしたけど >>398 本屋で、自分に合った書き方のや、欲しい情報が載ってるのを探した方がいい 逆引きも有効 一ヶ月くらい立ち読みして検討しよう つーか学生じゃあるまいしプログラムを体系立って教わることなんてそうそうないだろ みんな独学で試行錯誤してるよ 質問スレなのにみんな厳しいなw まあ新しいクラスを使うときは一通りプロパティとメソッドを確認することをお勧めするよ 慣れてくると「こういうことするためのメソッドとかプロパティあんじゃね?」って感じで予想がつくようになる >>405 .netの範疇で収まることならだいたい間に合う APIバリバリとかは仕方ない 大切なことはみんなvisual studioのインテリセンスが教えてくれた スレッドプールって、長時間かかるタスクを使うようにはできてないのでしょうか? タスクの登録が簡単で便利だと思ったんですけど。 例えば1タスク処理に2分弱とかは長すぎでしょうか? >>408 そんな制限あったら使いづらいやろ スリープ2分のタスクドバっと登録してみ 使えないわけではないけど使わない方がいい そういう処理でTaskを作る場合はTaskCreationOptions.LongRunningを指定するといい >>410 ありがとう 検索して試してみるね。 バックグラウンドは頻繁な再利用が激ムズで、途中で止まったりするし・・・ Taskの使い方がよくわからず未だにBackgroundWorkerから抜け出せない俺 C#用の並列処理プログラミングの解説本があったからVB.NETでも通じるかな?と思って買ってはみたけど async awitで同期処理ライクに書けばいいのに 平均的なVBerの大多数はasync/awaitを理解していないから覚えてもどうせ現場では使えないよ ステップアップしたいならまずはVBer卒業を目標にしよう 医療機関のシステムとかなら不具合で人殺せるでしょ 実際これまでに何人か殺されてても不思議はない VBer本人もしくはそのケツ拭って過労死した人間は万単位でいると思う 非同期って、確か「アプリが2秒以上フリーズしたみたいになったらバグ」 という概念があるユーザーが(確か80%以上占めてる)多いことから作った とも言われてる。つまりタスク待ちに2秒待てない人が多いというわけ。 まあ ウエイト表示もバグだと認識する人が数パーセントいるとかいないとか・・ ラジオは10秒前後で放送事故だからな、リアルタイムが求められる環境だと数秒でもだめじゃね c#ならunityでゲーム開発もできるしXamarinでアプリ開発もできる vbは色々と置き去りになってるな・・・ MS公式のコメント「VBにはVBが得意なことをやらせていく。それはGUIアプリだ」らしいよ つまりWinFormsと心中ってこと 今のアプリ開発の主流ってwinformじゃないとしたら何なのかな?uwpとか? Visual Basic support planned for .NET 5.0 https://devblogs.microsoft.com/vbteam/visual-basic-support-planned-for-net-5-0/ Going forward, we do not plan to evolve Visual Basic as a language. Future features of .NET Core that require language changes may not be supported in Visual Basic. Due to differences in the platform, there will be some differences between Visual Basic on .NET Framework and .NET Core. うーん VBで文字列うんたらに苦戦してた時 ハッシュ値で比較を行ってたな。こっちのほうが楽wwwてか? VBer vbER vBeR VbEr VBer >>425 .NET CoreからVBは捨てられたって事か >>425 逆か .NET Core5でサポートとして追加か >>429 違う 今後VB.NETの言語に新機能を追加することはないよ、 仮に今後.NETに言語へ手を入れないと利用できない新機能が入ったとしても、VB.NETは対応しないよ、という趣旨の記事 ちなみに .NET 5 (=Core vNext)でVB.NETはサポートされるが、Classic ASP.NETは廃止されるのでWeb開発は一切できない Razor使わないならOKじゃん 953 名前:デフォルトの名無しさん[sage] 投稿日:2020/04/22(水) 10:51:55.72 ID:NZfVsFFq >>952 それは正確じゃない。Razorが対応してないだけ。 954 名前:デフォルトの名無しさん[sage] 投稿日:2020/04/22(水) 12:49:27.63 ID:7hKP3waC Razor使わないならVB.NETでASP.NET構築出来るって事ね 955 名前:デフォルトの名無しさん[sage] 投稿日:2020/04/22(水) 12:55:16.39 ID:NZfVsFFq そう、.NET5でもそれは変わらない あえて.NET CoreにしなくてもmonoでVB.NET開発する方がシンプルだな Monoプロジェクトで実際LinuxでVB.NET使って開発してる様な所って有るのかね? あまり話聞かないし、案件探しても出て来ないよ Linux触れて且つVBしか分かりませんなんて人は逆にレアだろうし… monoって分からんけどapi使ってたらダメなんだよね? じゃあ意味ねーな >>438 Linux+C#もレアだよ Linux+JavaやCならそれなりにいる 最近見かけたんだけど Dim aaa As (String, String) こういうのって型は何になるの? 匿名クラスなの?配列? ValueTuple(Of String, String) あぁ、ありがと。item1とかitem2とかあるからクラスかと思ったが構造体なのね。 dictionaryかなと思ったが(of が無いしなあ…とも思ってた プロジェクトにフォームが2つあるのですが、その両方から参照する構造体の定義は どこに書くのが一般的なのですか?クラスだと「追加」→「新しい項目」でクラスを選択できて 独立したファイルでクラスの定義をかけるのですが、構造体はどういうやり方が一般的なのでしょうか? ちなみに現在は2つのフォームのファイルの先頭で構造体を定義しています。やり方がスマートじゃない気がします。 VB.NETでは構造体を使うこと自体が全く一般的ではない C#では性質を十分に理解した上でパフォーマンス目的で構造体を使うことも稀にあるけど、 VB.NETでそんな最速を目指すようなものを作ることは無いだろう クラスだけでいいよ api呼ぶのに構造体なんていくらでも使うしそうでなくても構造体の配列とか普通に使うし あと共用出来るメソッドはなるべくモジュールに書いてコントロールからはそれを呼び出すだけにしてる 皆さん、ありがとうございます。>>449 さんのおっしゃるとおり、スコープを広げれば良さそうですね。 >>451 さんの言うようにモジュールに書くのもいい感じですね。 >>450 さん、VBではあまり構造体は使わないのですね。私の読んでる基礎入門書だから一通りの説明ということで載ってるのでしょうか。 皆さん、ありがとうございました。とりあえず、モジュールを追加してその中でpublic宣言して構造体を書いておきます。 >>452 クラスと同じように1構造体に対して同じ名前のファイルを割り当てるのが基本だと思うよw もちろん雑用的な小さな構造体やクラスやEnumや例外をまとめて一つのファイルに 書くこともある。 後でその方が分かりやす思ったらその時そう直せばいいだけ。 とりあえず構造体と同じ名前の専用のファイルを作った方がいいでしょ。 Ruby では、普通の開発者は、Class を使う わざわざ、Struct(Class Generator)を使うのは、 Rails などのフレームワークを作っている人だけ ほぼ同じなのに、素人がわざわざ、Struct を使う理由もないし、 初心者用のテキストにも載っていない RubyのStructとは別物なのでこのRubyキチガイは無視していいが、それはともかくVB.NETでは構造体は特別に理由がない限り使うべきではないというのは確か APIくらいだね それ以外でVB.NETで構造体が使われるのは、大抵は生え抜きVBerの癖だったりクラスはなんか難しそうなイメージによるもの なんで宣言した上にNewしないといけないのかって感じで クラスに嫌悪感持ってる老人がいるよな 外部機器とのインターフェースとか他のDLLとか使ったことのない馬鹿が必死になって構造体を否定する 馬鹿が使わないからといって全員が使わないわけではない >>457 何で使うべきじゃないの? 全く分からないんだが ちょっと前C#スレの方で話題になった話だけど、プロパティーの型としては構造体の方が便利。 値型からわざわざイミュータブルにしなくても、ゲッター経由でメンバーを変更する 不適切な使い方を避けられるからね VB.NETで構造体を使うべきでないなら、C#でも使うべきではないし C#で構造体にすべき場面なら、VB.NETも構造体にすべき VB.NETならとかいう前提をつけて構造体を使うなとかいうのは意味不明 まあ、初心者が違いが分からず悩んだら、たいていの場合はクラスで良いけどな >>461 それはプロパティがイミュータブルであってほしいときに限らなくね? すべてのプロパティはイミュータブルであるべきだって主張ならしらん こういうレスみてると、絶対にプログラマになりたいとおもわないな。 構造体つかうな!とか ストレス以外の何物でもない。 まあVB.NETでやたら構造体を多用する奴はだいたい単に慣れてるからなのは事実 クラスがCOMだった時代で頭が止まってるんだよ >>463 何を言ってるのか意味がわからないよw プロパティーの型がミュータブルな参照型だと hoge.Piyo.X = 5 みたいに書けてしまう問題があると言ってるんだけどw Piyoの型が値型ならこういう書き方は許されない >>466 だから、それを許したくないときの話だろうと言っている すくなくとも文法上問題はないし、正常に動作する(それが狙った通りかどうかは知らんが) それをやるべきではない/許すべきではないという主張は別の話だと ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる