ターニングポイントさん!?

タグ: C#

axiosのgetメソッドでnestedなdataを投げる時のはなし

◆結論

「yarn add qs」しろ。typescript使ってる人は「yarn add @types/qs」しろ。yarn使ってないならnpm使え。帰れバカ。やめちまえ。

使い方は…普通にimportして使え。わかんないならやめちまえ。

★補足

・「hogehoge.com」は実際には「.env」に定義された環境変数だろう。何言ってるかわからないなら無視しろ。

・baseURLでテンプレート文字列使ってるのは、「/api」とかを付け足すため。

◆何が起きたか

ASP.NETでAPIサーバー立てて、HttpGetの口をはやした。画面からaxiosでもってnestedなデータをGETメソッドで送った。[FromQuery]Attributeを指定したclassにbindされなかった。nullになった。一筋の涙が頬を伝った。

TSQLでdatetimeoffsetを文字列変換するよ!

※注意※ SQL Server 2016以降のはなしです。

サーバーっていうものに「時間くだしゃい」っておねだりしたとき、くれる値は結構まちまちだったりする。特にクラウドの、IaaSだのPaaSだののサーバー。

それは何でかって、ロケールが違うからです。つまり、JSTとかUTCとかのアレで時間がアレする。だからDateTimeじゃなくて、ロケールまで考慮したDateTimeOffsetを使わなければならないよね。じゃないと整合性とるのがクソ辛くなるよね。

そいで、例えば「昨日のデータ」やら「明日のデータ」ってものを扱おうとしたとき、日付を何も考えず「yyyy/MM/dd」でFORMATすると無様に殺されてドブに捨てられる羽目になる。

SQL Serverも多分に漏れず慎重な時間の扱いが求められるわけであるが、そんな時にお役立ちなのが「AT TIME ZONE」さんです。

【C#】LINQの使い方のはなし

オラァ!(挨拶)

世間にある「LINQ入門」が解り辛くて仕方がない。アホどもが。
クソを読まされる初心者の気持ちにもなってみろゴミクズ。

この記事はニュービー、中級者、あるいはなんちゃって上級者を対象としている。

そして、この記事はあきれて物も言えなくなるほど長い。分けてもいいんだけど、なんとなくストーリー性があるから切らないで一本糞垂れ流す。どこまで読んだか分からなくなったら最初っから読み直せ。

※玄人へのおことわり※
いろいろ端折ってるんだからオメーこまけぇ話しにいちいち突っ込むんじゃねぇよ暇人が。シバきまわすぞ。

じゃあ行くぜ

C#を試したいってはなし

◆結論

この記事見ろ

C# および Visual Studio Code の使用を開始する

と言いつつ、微妙に解り辛いから端的に手順を示す。

CloudBlockBlobでStream読もうとしてThe specified resource does not existした話

◆事象

AzureのBlobTriggerでDurable Functions動かしたくなる話

上の記事を書くにあたり、Durable Functionsの調査をしていた。んで、BlobStreamシリアライズできねぇからコンテキストで受け渡せねぇってんで、シリアライザブルなオブジェクトであるUriをバケツリレーしてActivity Functionの中でコンストラクトしようって話になった。(呪文)

そうしたところ

The specified resource does not exist.

とか言われた。

なんで?(殺意)

AzureのBlobTriggerでDurable Functions動かしたくなる話

デュラブってる?(激寒)

◆前史(飛ばしてよし)

AzureでFunctionを実行したい時に使えるのがAzure Functionsです。
FunctionっていうのはつまりC#だので書くサーバー処理の話だ。多分。そのFunctionはバッチ処理をしたりとかファイルを生成したりメールを送ったりとかする(小学生並みの説明)
Functionのなにが凄いかっていうと、普段は寝てるのに処理を走らせたいときだけ起きてくれる。つまり、インスタンスをずっと起こしておく必要がなくなるわけで、正しく使えばお金の節約ができる。(App Serviceの上にFunctionを配置することで、不眠なFunctionを作ることもできるよ。App Serviceの負荷が小さい時間帯にリソースを有効活用できたりするし、10分の処理時間制限が撤廃されたりするよ。)

Functionは何らかのきっかけをトリガして動く。トリガできるイベントは

  • Blobと呼ばれるAzureのストレージにファイルが配置された
  • HTTPリクエスト
  • Queueストレージにメッセージが配置された
  • あらかじめ設定された時間が来た

とかだ。さまざまだ。

でね?例えば

「Blobに配置されたCSVを加工してSQL DatabaseにINSERT」
した後に
「そのデータを元に集計バッチ処理を走らせる」

ってことをしたくなるのが男のサガじゃないですか。
しかし、それをFunction一本糞にしてしまうのはおかしい。単一責任の原則とかでね。それゆえ、Functionは2つになる。

Page 2 of 2

Powered by WordPress & Theme by Anders Norén