ふらっと C#,C♯,C#(初心者用) Part145

レス数が950を超えています。1000を超えると書き込みができなくなります。
1デフォルトの名無しさん (ワッチョイ 1e7b-qjLW)
垢版 |
2019/10/07(月) 20:16:17.93ID:9eyAES450
!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為)

「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスや酔っぱらいレスはやめてください
>>980を踏んだ人は新スレを建てて下さい。>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。

■前スレ
ふらっと C#,C♯,C#(初心者用) Part144
https://mevius.5ch.net/test/read.cgi/tech/1563258983/
■関連スレ
C#, C♯, C#相談室 Part95
https://mevius.5ch.net/test/read.cgi/tech/1508168482/
■コードを貼る場合は↓を使いましょう。
http://ideone.com/
https://dotnetfiddle.net/

■情報源
https://docs.microsoft.com/ja-jp/dotnet/standard/class-libraries
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/index
https://docs.microsoft.com/en-us/dotnet/standard/class-libraries
http://referencesource.microsoft.com/
・Insider.NET > .NET TIPS - @IT
https://www.atmarkit.co.jp/ait/subtop/features/dotnet/dotnettips_index.html
・DOBON.NET .NET Tips
https://dobon.net/vb/dotnet/index.html
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
2019/11/23(土) 22:50:14.45ID:1OCMO4gt0
stringのreplaceとか別のインスタンスじゃん
こういうのと仕様が違うの作っちゃうの嫌だな

こういうのは多数派に合わせる感じで
2019/11/23(土) 22:50:15.57ID:IgdFxqh4a
>>862
「一つのクラスを複数ファイルに分けて記述できること」はpartial classを指していると思うんだけど、その場合はちょっと分からん
ただpartialでない普通のクラスの場合は、初期化は記述順(上から順)に行われることが保証されている
https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/classes#fields
> The static field variable initializers of a class correspond to a sequence of assignments that are executed in the textual order in which they appear in the class declaration
868デフォルトの名無しさん (アウアウウー Sa9d-927E)
垢版 |
2019/11/23(土) 23:07:33.85ID:TBCDcXkja
これはOKみたい。

static double x;
static double y =
(
  (Func<double>)
  (
    () =>
    {
      var v = HighCostMethod();
      x = Math.Sign(v);
      return Math.Abs(v);
    }
  )
)();

もちろん俺ならこんなことしないw
素直に警告無視or抑止するのが一番いい。
無駄なことして可読性落とすなんて愚の骨頂
2019/11/23(土) 23:15:13.03ID:6Id8VYs40
>>864
情報どうもありがとうございます。
Visual Studio のバージョンに依存する話だったのですね。
私は Visual Studio 2019 (Version 16.3.10) を使っています。
情報が後出しになってしまい失礼いたしました。

> 出るとしても警告を抑止して問題ないケースだと思うけど
ご意見ありがとうございます。 >>856 に貼り付けたリンクの先にも
「パフォーマンスが問題にならない場合は、このルールの警告を抑制しても安全です。」
と書いてありますし、やはり抑制が最善の方法であるような気もしてきました。

>>865
> プロパティ
アドバイスどうもありがとうございます。
string.Empty の様に、プロパティである必要がないものは
フィールドにしたほうがパフォーマンス的に有利かと思って
そのようにしていたのですが、確かにプロパティが一番真っ当ですね。

> Lazy<T>
ありがとうございます。ただ、私の考える限り以下のような方法しが思いつかず、
だったら >>861 に書いていただいたもので良いのではと思ってしまうのですが、
もし Lazy<T> を使った別の方法があれば詳しく教えていただけると嬉しく思います。
static Lazy<double> Cache = new Lazy<double>(HighCostMethod);
public static double X = Math.Sign(Cache.Value);
public static double Y = Math.Abs(Cache.Value);
2019/11/23(土) 23:15:35.51ID:6Id8VYs40
>>867
おお!情報どうもありがとうございます。大変勉強になります。
そうであるなら、Cache のフィールドが残ることが気にならないか、
もしくは Cache も後々使うなら >>861 に書いていただいた方法が
最善になりそうですね。

>>864
なるほどw 警告も万能ではないとういことですね。
説得力のある面白い例を示していただきどうもありがとうございます。
2019/11/23(土) 23:20:13.08ID:IgdFxqh4a
>>868
そのコードだとyにアクセスせずxにだけアクセスしたら初期値の0のままだぞ
2019/11/23(土) 23:24:58.85ID:8xX8HZu80
>>869

>>865の一つ目のリンク(.NET Fiddle)がLazy<T>使ったサンプルだよ
873デフォルトの名無しさん (アウアウウー Sa9d-927E)
垢版 |
2019/11/23(土) 23:25:48.76ID:TBCDcXkja
>>871
CA1810のページによると、staticフィールドの初期化はいずれかのstaticフィールドに
最初にアクセスされる前に行われるとなってるから、それはないのでは?

知らんけど
2019/11/23(土) 23:40:24.93ID:6Id8VYs40
>>872
サンプルを書いてくださっていたのですね。大変失礼いたしました。
ただ、やはり Lazy<T> を使うメリットが理解できずにいます。
MyStatic が初期化される時点で _highCost が初期化されて、
その後すぐに _highCost.Value が呼び出されるのであれば、
>>861 に書いていただいた方法で十分な気がするのです。

>>873
おっしゃるとおりだとおもいます。
ところで少し考えてみて、場合によっては冗談ではなく

public static double X, Y = InitializeYAndX();
static double InitializeYAndX()
{
  var v = HighCostMethod();
  X = Math.Sign(v);
  return Math.Abs(v);
}

みたいな書き方が選択肢になり得ることもあるような気がしてきました。
もしくは、実際にはフィールドは readonly にしたい場合が多いと思うので

public static readonly double X, Y = InitializeYAndX(out X);
static double InitializeYAndX(out double x)
{
  var v = HighCostMethod();
  x = Math.Sign(v);
  return Math.Abs(v);
}

のような感じとか。
2019/11/24(日) 00:02:41.75ID:kdnOmkRS0
>>874
個人的に警告を回避するために普段しない書き方をするのは違うと思う
警告の内容を理解し、それが今回のケースでは問題ないと判断できるなら遠慮なく警告を抑制していいと思う

プログラム起動時に自動的に初期化されるstaticとプログラマが初期化タイミングを制御できるsingleton
起動コストが問題なくてstaticが妥当なら警告抑制を選択するかな
2019/11/24(日) 00:02:47.40ID:ajYX9vGJ0
>>874
LowCostMethodも追加してみた
https://dotnetfiddle.net/Be6wMy

名前の通りLazy LoadingとかLazy Initializationとかいうのをするためのもので
必要になった時に初期化されてなければ初期化して、初期化済みなら初期化済みの値を使う
MyStaticクラスが初期化される時点で_highCostが初期化されるわけではない

getプロパティで
if ( cache == null ) { cache = HighCostMethod(); }
return cache;
するのと意味的には同じでdefaultでthread-safe
詳しくは>>862の2つ目のリンクに書いてある

あともし他人も使うコードなら潜在的に高コストな処理は
フィールドやプロパティじゃなくメソッドにしといたほうが無難
2019/11/24(日) 00:26:34.20ID:ilfNxwrd0
>>875
> 個人的に警告を回避するために普段しない書き方をするのは違うと思う
> 警告の内容を理解し、それが今回のケースでは問題ないと判断できるなら遠慮なく警告を抑制していいと思う
アドバイスどうもありがとうございます。確かにおっしゃるとおりですね。
この考え方で、警告を抑制する方向で行こうと思います。

> プログラム起動時に自動的に初期化されるstaticとプログラマが初期化タイミングを制御できるsingleton
static はプログラム起動時に初期化されるんでしたっけ?
ただいずれにしても、コストが非常に高い場合は
明示的に初期化のタイミングを指定できるように気をつけたいと思います。

>>876
詳しいご説明ありがとうございます。
「MyStatic が初期化される時点で _highCost が初期化されて」
という表現は正しくありませんでした。失礼いたしました。

ただ、お書きいただいたコードでは
private static readonly Lazy<double> _highCost = new Lazy<double>(HighCostMethod);
の直後に
public static double X = Math.Sin(_highCost.Value);
public static double Y = Math.Abs(_highCost.Value);
が実行されるので、例えば
private static readonly double _highCost = HighCostMethod();

public static double X = Math.Sin(_highCost);
public static double Y = Math.Abs(_highCost);
に書き換えても同じではないでしょうか?

> あともし他人も使うコードなら潜在的に高コストな処理は
> フィールドやプロパティじゃなくメソッドにしといたほうが無難
アドバイスどうもありがとうございます。言われてみて、確かにそのとおりだと思いました。
コストの高さに応じて適切な書き方が選択できるように勉強したいと思います。
2019/11/24(日) 00:53:53.43ID:/zc8WPZx0
ソースといっしょで中身がないのに文章なっげぇな
879デフォルトの名無しさん (アウアウウー Sa9d-927E)
垢版 |
2019/11/24(日) 02:24:11.12ID:8mt5PJRXa
もう誰かとっくに書いてるだろうけど、やっぱり本来は重くなる可能性があるなら
フィールドやプロパティーじゃなくてメソッドにすべきなんだろうね。知らんけど

static double _x, _y;
static Action InitializeXY = () =>
{
  var v = HighCostMethod();
  _x = Math.Sign(v);
  _y = Math.Abs(v); ;
  InitializeXY = null;
};

public static double GetX()
{
  InitializeXY?.Invoke();
  return _x;
}
2019/11/24(日) 04:59:22.37ID:QxCNqVes0
なんかこう、せっかくの言語仕様を活かしきれてないような
もったいなさがあるよね
2019/11/24(日) 10:11:24.43ID:L7p7ghIU0
原則としてはgetterでは値の取得と通知しかしてはならない
これはC#に限った話ではなくオブジェクト指向の大原則の一つ
2019/11/24(日) 10:18:03.91ID:eHhiG+n9M
>オブジェクト指向の大原則
w
2019/11/24(日) 10:25:13.16ID:0nk530rxa
大原則?
オブジェクト指向の原理主義的にはそもそもgetterを作るべきではないんだよ
getterを使うのは上司がタバコを吸いたいときに不器用な部下にしびれを切らして「お前、もういいからお前のライター寄越せ」
と言っているようなもので、オブジェクトから本来担うべき責務を剥ぎ取ってしまっている
火をつけろと命令を投げっぱなしにしておけば勝手に火をつけてくれるのが本来のオブジェクト指向の姿
2019/11/24(日) 10:27:30.29ID:eHhiG+n9M
昔の人は言いました「100人のプログラマーがいたら100通りのオブジェクト指向がある」
2019/11/24(日) 10:33:58.10ID:/zc8WPZx0
なるほど
博士が100人いる村につながる胸熱展開ですね
2019/11/24(日) 11:55:35.11ID:bu3J19Ko0
ところでみんな、警告って全部消してるのか?
2019/11/24(日) 12:11:25.46ID:TAL5a3TmM
消すの意味次第
抑制も含むなら消してる
抑制は含まないなら消してない
2019/11/24(日) 19:27:53.50ID:btk/7EiO0
vs2019になって警告増えたよね
2019/11/25(月) 12:55:19.06ID:xUq4VGI0p
警告を消してないと納品出来ないから渋々消してる。
2019/11/25(月) 14:11:59.51ID:qmWi7Xp+0
vs 2019でenumをuintで作ったらint32にしろって警告された
win32api用なんだけど使用時にキャストしろという事か
891デフォルトの名無しさん (ワイーワ2 FF63-KqLj)
垢版 |
2019/11/25(月) 14:22:13.25ID:pjJuONFZF
負の数混ぜてないか
2019/11/26(火) 16:49:39.39ID:/t5k7Bse0
フォルダファイルの情報集めてデータベース作りたいんですけど
データベースの種類って何がいいのかな?
3万件ぐらいのレコード、外部に持っていくこともしない
よろちしおねがいします
2019/11/26(火) 16:59:08.05ID:3+G7L2kq0
redisは早いぞ〜
2019/11/26(火) 17:04:50.13ID:tkOtmh9WM
DB作って何がしたいのかしら
2019/11/26(火) 17:44:33.63ID:0fuBmAsQa
sqliteでいんじゃね?
2019/11/26(火) 17:46:09.18ID:ffeAt8NAd
何がしたいのかによるよね
ぶっちゃけ外にださないんだったらcsvですらいいんじゃね?って気もするけど
2019/11/26(火) 17:53:20.38ID:GH1P3tUMr
linuxにはlocateコマンドと言うものがあってファイルを高速に検索できる
これはただあらかじめフルパスのファイル名を全部取っておいて一つのテキストファイルにまとめてあるだけ

用途次第で最適な方法は異なる
2019/11/26(火) 17:54:23.39ID:GH1P3tUMr
フルパスそのままじゃなくて差分のようなテキストファイルを作っていたような気もする
2019/11/26(火) 23:01:40.76ID:/t5k7Bse0
>>893
Redisなんてゆうデータベースあるんですね、一般的なのかな
さんくすしらべてみます
>>895
サンクスsqliteよく使われてますよね昔から
今でも普通に使われてるのかな?

>>894>>896-897
何がしたいのかとゆうと、外付けHDDの中身を書き出したい的な事がしたいのです
高性能なフリーウェアがあるとしても、自分でつくりたいのれす
2019/11/26(火) 23:55:29.19ID:Rjqqllka0
いや、知りたいのはその書き出したファイル情報をどうしたいのか?なんだけど…
自分で作りたいというのが勉強を兼ねてるならsqliteとかでひとまず慣れるのが良いんじゃない?
2019/11/27(水) 00:05:09.92ID:a5fnDquJ0
教会作るのか扉作ってるのか木を切ってるのかっつー話よな

それはさておき
お手軽に使えるのはSQLiteでライブラリやマッパーも豊富
redisは高速でwebクラウド周りでは結構ちやほやされた
けどRDBとNoSQLの区別付いてるかは心配やな

外付けHDDの中身…か…
2019/11/27(水) 00:28:53.08ID:0UC6xAmXr
テキストファイルにファイル名ずらっと並べて終わりだろう
2019/11/27(水) 11:14:29.53ID:TFRzaUoP0
>>900
さんくす、SQlite?そんなの古くて誰も使ってないよ?みたいな状態が怖い
>>901
さんくす、とりあえず椅子を作りたい、用途に多少合わなくても使えるから
簡単な検索、重複ファイルの処理とか?
速度は遅くていいので、簡単で扱いやすいのがいいでつね
RDBで作ろうとおもってます
>>902
そんな感じになりそう、さすがにテキストファイルは作らないけど

sqlite使ってみようと思いますが、Microsoft SQL Serverってどうなんでしょう?
定番なんでしょうか?それとも難しいとか使いにくいとか
2019/11/27(水) 11:29:33.07ID:IQPQs9eCa
>>903
sqliteはローカルで閉じたお手軽DBとしてはまだまだ現役よ。ローカルDBのデファクトスタンダードと言っていいぐらい。
クライアントサーバのようなシステム作りたいなら不向きだけど。
2019/11/27(水) 11:38:43.35ID:vYtjQlD0M
SQL ServerとかそれこそWinのクラサバでしか使われてない無価値な技術だぞ
2019/11/27(水) 12:04:05.91ID:DM2fL27g0
sqliteは組み込みDBではメジャーだろ。androidアプリの標準ローカルDBがsqliteだし。iosのcoredbだって内部はsqlite使ってるだろ?
モバイルアプリでsqlite使われまくりだろ。

まぁ、最近はrealmだのあるが
2019/11/27(水) 12:10:33.33ID:gi64Bf5vd
>>905
無知乙
2019/11/27(水) 12:20:11.74ID:g28fiJsQM
ボソッと Berkeley DB
2019/11/27(水) 15:21:18.43ID:ZeR4ARRa0
sqliteはChromeとかfirefoxでも使ってるはず
2019/11/27(水) 15:28:58.26ID:a5fnDquJ0
>>903
win環境ならSQL Serverは最有力選択肢だよ
C#前提ならVisualStudioとも統合されてるし、簡単に扱えるので取り回しもしやすくて情報も多い

気になるのはやろうとしてることに対して、若干大げさな構成かなという点かな
RDBの経験積みたいのが目的に含まれるなら全然アリよ
2019/11/27(水) 17:33:31.24ID:0UC6xAmXr
インストールとかもSQLServerのインストールと設定込みになるから大げさだよ
インストール先でSQLserverの管理も必要になる(セキュリティーホールに対するアップデートなど)

sqliteがいいと思うよ
2019/11/27(水) 17:35:21.60ID:a5fnDquJ0
プロダクト目的なSQLite
勉強目的ならSQLServerっつーことで
2019/11/27(水) 20:07:31.01ID:w7hpp5weM
SQLite3は当のMSが使ってたりするぐらいメジャー
https://qiita.com/h_matsumura/items/e1597a985de25e2ea9c8
2019/11/27(水) 22:24:42.73ID:TFRzaUoP0
>>904
さんくすです、現役なら今から勉強しても無駄にはならなそうですね
>>905
Microsoftはたまに、それ誰得よってのがあるから怖い
>>906
さんくす、androidに使われてたらしばらく安泰でつね
>>908
ちょと調べてみたけど、きびしい、頭の片隅に
>>910,912
さんくす、SQLServerも間違ってはいないのですね
DB使うまでもなくオーバスペックっぽいけど、練習になるから
>911
導入がメンドイのと保守もいると、さんくすね
>909
firefoxで使ってるのみました、でもFFは設計古いままきてるからどうなのかなって
>913
VisualStudioにsqliteいれといてくれたらいいのにね

みなさんさんくす、現在のDBの立ち位置がわかって、方向性がだいたい決まりました
まずはsqlite導入してみようかな
915デフォルトの名無しさん (エムゾネ FFb2-Qbqw)
垢版 |
2019/11/28(木) 15:03:25.97ID:1U78x1XWF
SQLiteって導入するほどのもんでもない
っていうか導入とかせんでも使えるし
2019/11/28(木) 15:06:08.02ID:A6hZkiU20
一緒んとこ置いて呼ぶだけやからなw
2019/11/28(木) 16:30:32.78ID:JOfZpAUcp
Nugetなりvcpkgでソッコで使えるしね
2019/11/28(木) 16:38:21.51ID:WQY8IlVbd
nugetで簡単にプロジェクト追加できるからVisual Studioに付属していないという批判はお門違い
2019/11/28(木) 17:59:07.38ID:lZQsc35zM
>>917
しね、とはなんだよゴルァ
2019/11/28(木) 18:06:17.42ID:A6hZkiU20
>>917
まあこういう文章だと語尾がしねに読めちゃうのはしょうがないしね
2019/11/28(木) 18:21:36.60ID:XY/WHPaW0
「〜だしね」からの「しねとは何だ!」ってのはいつものお約束だろw
むしろ愛を感じるわ。
2019/11/28(木) 19:31:57.14ID:jLfyQeMzM
>>914
> VisualStudioにsqliteいれといてくれたらいいのにね
2019は知らんけど2017はVisual Studioのインストール時にSQL-Server LocalDBを入れるかどうかを聞いてきたような気がする
LocalDBは外部からの接続できないだけで中身はほとんどSQL-Server
Visual Studioからテーブル開いてデータを弄ることもできるしそこそこ便利よ
2019/11/28(木) 19:36:42.43ID:VrR/a7te0
sqliteもlinqで使えるの?
2019/11/28(木) 20:05:23.89ID:/zg9SHoG0
>>923
使いたいときはentityframeworkっていう似たようなものを被せて使います
2019/11/28(木) 20:27:08.97ID:+uF2PV0n0
山車ね
2019/11/28(木) 20:59:45.72ID:huhp3ZI30
>>922
まじでっ、2017入ってるんだけど記憶にないお
スキップしたんだろうな、今からいれてみるサンクスね
2019/11/28(木) 21:06:27.46ID:huhp3ZI30
>>915-918
nugetも入れたほうがいいのかお
2019/11/28(木) 23:11:59.46ID:ttkv3u0hM
genericsの〈T〉のTって動的に入れるのは無理?
System.Typeはわかってるんだが
2019/11/28(木) 23:17:10.55ID:1K1GwsjBa
>>928
Type.MakeGenericType
2019/11/28(木) 23:52:03.59ID:A6hZkiU20
>>927
nugetを入れると言う以前にVS使ってソリューションて作るとすぐ使える状態にあるし

SQLiteを始めとして外部ライブラリを導入するならnuget使うのはc#では基本ツールと言えるので、使えたほうが良い
パッケージ管理にnugetが最適かは置いておくとして
2019/11/29(金) 07:12:41.61ID:Q2zZop56M
>>926
すまん、今ググったら入れるかどうかを聞かれるわけじゃなくて.NET desktop developmentを入れた時のオプションだったわ
https://i.stack.imgur.com/1u3O2.png
一応後からでも入れられるみたい
https://stackoverflow.com/questions/42774739/how-to-install-localdb-2016-along-with-visual-studio-2017
2019/11/29(金) 07:58:25.58ID:MT93SOfea
sqliteだと配布も楽だしね。
2019/11/29(金) 08:44:50.30ID:k2xfmaZa0
sqliteやるとして、Dapperを使うかEF使うかは意見が分かれるところだね
ついでにSQLから始めるってことでDapperをお薦めしますが
EFはSQLを知らなくてもなんとかなるが、そのうち壁にぶち当たるだろうからね
2019/11/29(金) 08:52:58.95ID:buffyidfa
SQLiteとEFの組み合わせはテスト専用だ
EFはサーバー用のフレームワークなのでSQLiteを使うようなスタンドアロンなアプリで使用されることは基本的にないし、
EFなんか被せたら軽量なSQLiteが台無し
935デフォルトの名無しさん (アウウィフ FFcd-Qbqw)
垢版 |
2019/11/29(金) 12:06:03.16ID:N/f9f1S7F
SQL-Server Local DB って MSDE のこととちゃうんけ
2019/11/29(金) 12:25:43.27ID:Q2zZop56M
>>935
どんだけ情報更新されてないんだよw
2019/11/29(金) 12:29:53.68ID:bcKuqIh50
MSDEつーか、SQL Server Expressだっけかな
938デフォルトの名無しさん (アウウィフ FFcd-Qbqw)
垢版 |
2019/11/29(金) 12:30:30.51ID:N/f9f1S7F
間違ってなくて安心した
2019/11/29(金) 12:45:06.14ID:IdASmNxu0
いや間違ってる
MSDEの後継はSQL Server Express
Local DBはそれとインターフェイス互換性を持たせた別製品
ExpressとCompactのあいのこみたいなもの
940デフォルトの名無しさん (アウウィフ FFcd-Qbqw)
垢版 |
2019/11/29(金) 13:03:59.73ID:N/f9f1S7F
ありがとう
SQLite とは関係無いことは判った
SQLite の簡単さとは比べ物にならない
2019/11/29(金) 14:58:40.82ID:HgnfNDDk0
SQLLiteてUPDATE文に結合テーブル使えないんだっけ
2019/11/29(金) 19:40:54.65ID:/qBs46JEM
>>939
> Local DBはそれとインターフェイス互換性を持たせた別製品
> ExpressとCompactのあいのこみたいなもの
お前もテキトーなこと書くなよw
LocalDBはエンジンはExpressとほぼ同じで外部からの接続ができないだけ
Compactは全く別物で使えるSQLも異なる
2019/11/29(金) 21:23:09.62ID:PfmOYk0/0
20年程前にSYBASEと分離したけど
大元は同じだったり
2019/11/29(金) 22:31:53.69ID:XR55tucPd
MS製でサーバーインスコ必要ないSQLはmdbということになる?
2019/11/29(金) 22:40:51.06ID:IQbSmMMZ0
>>944
JETなりは必要になるんじゃ?
2019/11/29(金) 22:53:16.05ID:xO30F0VUa
なんでMSはAccessやめちゃったんだろうな
さっさとWeb移行して真面目に開発続けてればSalesforceみたいな糞に出番はなかったのに
2019/11/29(金) 22:58:29.32ID:J8/N3ImM0
>>944
SQL Server Compact…はまだ生きてたっけ?
2019/11/29(金) 23:00:31.63ID:IQbSmMMZ0
>>947
Compactは終了で、その代わりがlocalDBなんじゃなかったっけ
2019/11/29(金) 23:16:39.14ID:Z1Tig2XP0
>>930
さんくす、Nugetすごく簡単だねえ、ただ多すぎて迷う、coreにしてみた
>>931
わざわざさんくすね、LocalDBも入れてみるお
>>933
Dapperとゆう新たな単語が、、頭の片隅に

他の人もサンクス、あとは勉強してコード書くだけだね
2019/11/30(土) 10:23:08.45ID:o+UOyhff0
>>946
Access地味に高いからな
使わんのにエンタープライズに入ってやがるのがムカつく
2019/11/30(土) 14:43:46.04ID:20NjWWXF0
>>950
Accessというか、MDBファイルは作るときこそ金はかかるが、配布は無料ってところが良かったよな
頑張ればフリーで全て賄うことも可能だったし
2019/12/01(日) 16:07:57.01ID:r7b9vkne0
ASP.NET Webフォームでオブジェクト指向な作りって出来ますか?Pageクラスを継承した画面ごとのクラスが基本となると思うんですが、それらとは別にドメインオブジェクトを定義すればいいんでしょうか?
古いフレームワークのせいか、参考になる情報がWeb上で見つからず困っています
2019/12/01(日) 17:00:26.82ID:B1zYgJIz0
ドメインオブジェクトはどんなフレームワークでも作るのはまあ基本
2019/12/01(日) 17:01:47.30ID:BdsW8ng60
C#にしてもVB.Netにしても、オブジェクト指向な言語だからできるだろ
オブジェクト指向な作りってどんなのを指してるんだ?
2019/12/01(日) 17:09:16.81ID:4wBvZE+S0
extendsを使いグローバル変数で回さないことかな
956デフォルトの名無しさん (アウウィフ FFcd-Qbqw)
垢版 |
2019/12/01(日) 17:30:22.41ID:zxgavQqmF
mdb は Access 無くても作れるし使える
wsh からも作れるし
python からでも win32com とか adodb とかで生成も操作も可能
2019/12/01(日) 17:54:34.01ID:Enyr5Fgf0
>>956
生成できたっけ?
ADOXが必要だと思ってたけどadodbで生成できるならやり方教えて欲しい
2019/12/01(日) 20:13:56.38ID:/00m1kV3r
昔はVSでもGUI上からmdb作れた気がするけどc#からコードで作れたと思う
2019/12/01(日) 20:33:15.39ID:eAT9QJyK0
COMオブジェクト参照するの気持ち悪いな
2019/12/01(日) 20:38:52.40ID:B1zYgJIz0
扱い面倒だからね
自分だけなら良いけど

人が触ると直ぐに解放漏れするし
gc.Collect連打とか
2019/12/02(月) 00:32:28.82ID:6ndr7bm90
windowsなんてcomの塊なのに
2019/12/02(月) 00:48:30.78ID:GldGaTIna
モダンアプリではより完全なCOMベースになったね
.NETなんかいらんかったんや
2019/12/02(月) 02:17:05.78ID:seAdfS0z0
>>959
ADO.NETじゃアカンの?
2019/12/02(月) 21:29:05.38ID:TV8SuK+L0
組み込みっていったっていまどきマルチスレッド当たり前で、要は
マルチユーザーでアクセスするのと同じなんだが、組み込みDBは行ロックが
ないのが痛すぎる。大きめのバッチ走らせると行ロックないから
他から更新できなくなるし。
2019/12/02(月) 22:09:18.94ID:wKwMS0nkd
>>964
用途に応じて使い分ければいいんじゃないでしょうか
レス数が950を超えています。1000を超えると書き込みができなくなります。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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