タグ

ブックマーク / blog.shibayan.jp (20)

  • Azure Functions v4 における Dynamic PGO と ReadyToRun の使い分け - しばやん雑記

    .NET 6 ではパフォーマンス向上のために Dynamic PGO という機能が JIT に追加されています。 名前の通り PGO を実行時に行ってパフォーマンス向上に役立てるという機能で、Azure AD の Gateway では .NET 6 と Dynamic PGO を組み合わせることで CPU 使用率を 33% 下げて、これまでより 50% もアプリケーションの実行効率を向上出来たらしいです。 .NET Core 3.0 で Tiered Compilation が追加されて Tier 0 コードから Tier 1 に差し替え出来るようになりましたが、Dynamic PGO は Tier 0 から Tier 1 のコード生成時に、実行時に収集されたプロファイルデータに従って最適なコードを生成できるようになりました。 パフォーマンス向上の機能としては同じく .NET Core 3

    Azure Functions v4 における Dynamic PGO と ReadyToRun の使い分け - しばやん雑記
  • ASP.NET Core アプリケーションのログアウト時に認証クッキーを確実に無効化する - しばやん雑記

    ASP.NET Core では一般的にクッキー認証をベースとして使いつつ、その上に Twitter や Facebook などの外部プロバイダーを組み合わせて認証を実装しています。API 向けのように JWT を直接扱う場合以外は、基はクッキーが有効になっているはずです。 デフォルトでは認証クッキーはステートレスになっていて、必要なクレームは全て暗号化されてクッキーに含まれるようになっています。暗号キーのみ共有すればバックエンドで状態を持つ必要はありませんが、認証クッキーをログアウト時に無効化することは出来ず、基はクッキーの削除となります。 この辺りの挙動は JWT と同じで明示的に無効化は出来ないので、必要に応じてバックエンド側で何らかの状態を保持してあげる必要があります。というわけで 2 パターンを試しました。 クッキーを使った認証は以下のドキュメントを参照してください。これをベー

    ASP.NET Core アプリケーションのログアウト時に認証クッキーを確実に無効化する - しばやん雑記
  • 障害に強い Azure の運用を考える (2021 年版) - しばやん雑記

    Azure の日リージョン 7 周年の日に Japan East のストレージ障害が発生するという、なんともアレな出来事がありましたが、障害発生後はアーキテクチャを見直すいい機会だと思うので色々書きます。 まだ RCA は公開されていないですが、おそらくぶちぞう RD がブログに書くのでリンクを貼ります。 4 年前の同じような時期にも Japan East で大規模なストレージ障害が発生したので、同じようなものを書きましたが流石にいろいろと進化しているので古さを感じます。 今回の障害は影響範囲はさほど大きくなかったようで、主に Azure Storage と Virtual Machines がステータスには上がってきていました。実際には Application Insights や Log Analytics にも影響がありましたが、Azure Storage は全ての基なので仕方な

    障害に強い Azure の運用を考える (2021 年版) - しばやん雑記
  • 後悔しないための Azure App Service 設計パターン (2020 年版) - しばやん雑記

    Azure App Service (Web Apps) がリリースされて 6 年、情報のアップデートを行いつつ気になった情報は適当にブログに書くという日々ですが、Regional VNET Integration や Service Endpoins が使えるようになって設計に大きな変化が出るようになったのでまとめます。 最近は Microsoft で HackFest を行うことも多いのですが、App Service をこれから使い始めたいという場合に、失敗しない構成を共有したい、知ってほしいという意図もあります。多いですが中身は単純です。 基設定 64bit Worker は必要な場合のみ利用する FTP / Web Deploy をオフにする Always on を有効化する ARR affinity をオフにする HTTP/2 の有効化を検討する Health Checks の

    後悔しないための Azure App Service 設計パターン (2020 年版) - しばやん雑記
  • マツダコネクトを Apple CarPlay 対応にしたら捗った - しばやん雑記

    去年に車買っていたんですが、マツダ車だったので例によってマツダコネクトが付いているわけです。 コンセプトとしては好きな感じなので CarPlay 対応をひたすら願っていたわけですが、日だけ対応の兆しを感じなかったため US 版のパーツを輸入して取り付けました。*1 自分の車には ETC 連動のケーブルが既に刺さっていたので、それを抜いて新しいケーブルと USB ユニットを接続しました。ETC ケーブルを抜いた結果、料金を喋ってくれるようになって良かったです。 eBay でパーツを買うと送料込みで大体 $200 ぐらいでした。そして取付工賃が 1 万ぐらいだったので、トータルで 3 万ちょいかかりました。 だるカー*2みたいに中古の iPad mini を取り付けた方が安上がりとか言われそうな気がしますが、求めていたのは CarPlay だったので問題なしです。 パーツを交換すると USB

    マツダコネクトを Apple CarPlay 対応にしたら捗った - しばやん雑記
    itotto
    itotto 2019/08/21
    "危険運転を繰り返すと家出してしまい、一晩戻ってこなくなるので衝撃が大きい"
  • 希少がんが見つかってから回復するまでの記録 - しばやん雑記

    去年の夏に受けた内視鏡検査で消化器に病変が見つかった。そして昨日、手術で摘出した病変の病理診断の結果が出て、主治医からは完治と言われたテンションで書いている。 幸いにも発見が早く、病変も大きくなかったため 1 月末に入院して行った手術だけで済んだが、今後も定期的に検査を受けて再発や転移には気を付けなければならない。 朗報 : 完治— Tatsuro Shibamura (@shibayan) 2019年2月13日 ちなみに今回見つかったものは正確にはがんではなく、神経内分泌腫瘍*1という珍しい腫瘍だった。しかし、一般的には希少がんという扱いになっているらしいのでそう書いた。 32 歳でこういった病気が見つかるとは思わなかったのと、今やこういった悪性腫瘍は誰にでも起こりうるし、その場合には早期発見が非常に重要となるので、他の誰かの参考になれば良いなと思っている。 私の家族は既に両親ががんで、

    希少がんが見つかってから回復するまでの記録 - しばやん雑記
  • Connect(); Japan 2018 フォローアップ (.NET パート) - しばやん雑記

    なんか周りがみんな書いていて、自分も書かないといけないのかなという気分になったので。 YouTube Live とスライドは既に公開されています。スライドは全部チャックさんが作ってくれたので、私は当日は前に出て好き勝手喋っただけです。 .NET today and tomorrow from Akira Inoue いろいろなことがあったり、そもそも 30 分じゃ喋り切れない説があったので補足しておきます。 .NET Core 3.0 家 Connect(); でも .NET Core 3.0 は WinForms と WPF の話ばかりだったので、ASP.NET Core 3.0 もちゃんといろいろと既に検討されているんだよということで紹介します。 今のところ ASP.NET Core 3.0 は .NET Core 専用になる予定です。2.0 の時にも同じような話があって撤回されたり

    Connect(); Japan 2018 フォローアップ (.NET パート) - しばやん雑記
  • ASP.NET Core 用のメタパッケージを絶対に使うべき理由 - しばやん雑記

    ASP.NET Core 2.0 から導入された必要なパッケージを一通り参照するメタパッケージですが、あまりにも参照が多いので何となく嫌な感じがする人はいると思いますが、絶対に使うべきなので理由を書いておきます。 メタパッケージに関しては公式ドキュメントにあるので、基的な方針に関しては参照してください。 共有フレームワークとしてメタパッケージはインストールされる点が非常に大きい特徴です。 このドキュメントにはちゃんとメタパッケージを使うべき理由が書いてあります。 Applications that use the Microsoft.AspNetCore.App metapackage automatically take advantage of the ASP.NET Core shared framework. When you use the Microsoft.AspNetCo

    ASP.NET Core 用のメタパッケージを絶対に使うべき理由 - しばやん雑記
  • ASP.NET Core MVC を使ってドロップダウンリストをいい感じに実装する - しばやん雑記

    大昔に書いた ASP.NET MVC 3 向けの内容を Core MVC 向けにします。と言ってもほぼ別物になってますが、基的な考え方は SelectListItem 側に寄せる、なのでいい感じに扱えるようにしてみます。 Core MVC では Razor が超進化しているので、DI や Tag Helpers を組み合わせて MVC 3 時代よりスマートに書けるようになったと思います。 例えば select で表示したいデータは以下のように適当にクラスを作っておきます。 public class AppMaster { public IEnumerable<SelectListItem> Devices { get; } = new List<SelectListItem> { new SelectListItem { Text = "Android", Value = "androi

    ASP.NET Core MVC を使ってドロップダウンリストをいい感じに実装する - しばやん雑記
  • はてなフォトライフに PNG をアップロードすると 64bit RGBA に変換されて無駄にファイルサイズが増える話 - しばやん雑記

    気が付いたきっかけは、フォトライフにアップロードした画像をダウンロードしたことでした。 Snipping Tool を使ってキャプチャした画像は常に 32bit PNG になるので、それを 24bit にしてからアップロードしようと思い、実際に反映されてるか確認を行いました。 はてなフォトライフの縮小処理おかしい気がする— しばやん (@shibayan) 2017年7月4日 200KB の PNG が 880KB になった— しばやん (@shibayan) 2017年7月4日 Windows のプロパティを表示すると、何故か 24bit だった画像が 64bit になってる。そんな仕様あったか— しばやん (@shibayan) 2017年7月4日 最初の方は Windows のプロパティ表示に問題があるのかなと思ってましたが、この辺りからはてなフォトライフの処理について疑うようになり

    はてなフォトライフに PNG をアップロードすると 64bit RGBA に変換されて無駄にファイルサイズが増える話 - しばやん雑記
    itotto
    itotto 2017/07/05
    昔ならささっと直してくれた気がするけどいまは無理だろうな
  • ASP.NET Core 1.0 に組み込まれたロギングフレームワーク - しばやん雑記

    ASP.NET Core 1.0 はフレームワークの足回りのアップデートが大量に行われています。その中でもロギングフレームワークが標準で提供されているのは、割と重要な点だと思います。 Logging in .NET Core and ASP.NET Core | Microsoft Learn 公式ドキュメントのファンダメンタルズ以下にまとめられています。この辺りは、実際に開発を行う前にしっかりと理解をしておきたいので、一通り触ってみるつもりです。 例によって Logging を使う前には DI にサービスを追加する必要があるので、AddLogging メソッドを呼び出しておきます。これで ILoggerFactory と ILogger<T> が DI 経由で扱えるようになります。 public void ConfigureServices(IServiceCollection serv

    ASP.NET Core 1.0 に組み込まれたロギングフレームワーク - しばやん雑記
  • ASP.NET MVC 3 開発入門 - インデックス - しばやん雑記

    全 24 回で完結しました。 はじめに 前提知識 構成図 完成したアプリのイメージ 環境の構築 プロジェクトを作成 ビューエンジンの選択 作成されたプロジェクトを確認 サーバ側のロジックを開発 モデルをコードファーストで作成 リポジトリパターンを適用する コントローラの追加 コントローラの実装 アクションの追加 強力なモデルバインダ アクションの実装 動画アップロードの実装 クライアント側のロジックを開発 ビューの作成 Razor の文法 ビューの実装 Details アクション Create, Edit アクション Delete, Index アクション HTML ヘルパーを活用 タグ・コメント登録を実装する クライアントサイド検証を利用する ローカル環境で動作を確認 IIS 7.5 Express で動作検証 ルーティング定義を確認、追加 自動的に作成されたテーブルを確認 ASP.NE

    ASP.NET MVC 3 開発入門 - インデックス - しばやん雑記
  • 接続文字列の書き方をまとめてみる(2014 年版) - しばやん雑記

    接続文字列の書き方をまとめてみる - しばやん雑記 でまとめた内容が、流石にちょっと古くなってきたので Azure 周りも含めてアップデートを行っておきます。 SQL Server LocalDB LocalDBSQL Server 2012 から追加された、インスタンスが常時起動しないタイプの SQL Server になります。必要な時のみインスタンスが立ち上がるので、開発時には役に立つかと思います。 <connectionStrings> <add name="{接続文字列名}" connectionString="Data Source=(localdb)\v11.0;Integrated Security=True;AttachDbFileName={データベースファイル名}" providerName="System.Data.SqlClient" /> </connect

    接続文字列の書き方をまとめてみる(2014 年版) - しばやん雑記
  • IIS Express のサイト設定から存在しないものを一括で削除する - しばやん雑記

    普段から Visual Studio と IIS Express を利用したアプリケーションの開発を行っていると、作成した分だけ IIS Express のサイト設定が一方的に追加されていきます。 例として、普段使っているマシンの applicationHost.config を紹介しておきます。 調べてみると、サイト数が 150 ほど登録されている状態でした。サイト数はかなり多いですが、大半がテスト用のプロジェクトで既にファイルも存在しないゴミ設定でした。 いい感じに削除したいので調べてみると、森島さんこと @statemachine のブログが引っ掛かりました。 なかなか良さそうですが、森島さんが紹介しているスクリプトだと、まだ使っているサイト設定まで問答無用で削除してしまうみたいでした。 使っているものを削除してしまうと次回の起動時にちょっと面倒なことになりそうなので、先に仮想ディレ

    IIS Express のサイト設定から存在しないものを一括で削除する - しばやん雑記
  • dotNetConf 2015 Japan で喋ってきました - しばやん雑記

    .NET Core と DNX は当に未来なのか from Tatsuro Shibamura スライドを SlideShare にアップロードしておきましたが、何処に着地させるべきなのか悩みました。 以下、個人的に書きたかっただけの蛇足。 名前について 正直 DNX はダサい感が半端ない感じなんですが、冷静に考えると Microsoft のプロダクトはカッコいい名前は失敗し、ダサい名前のが成功している気がするので、ダサい方が将来有望なのかも知れないと思いました。*1 .NET Core について デバッグ用 API に付いてどうなってんの?という話がありましたが、CoreCLR のリポジトリを見ると名前付きパイプを使ったデバッグ用インターフェースが用意されているみたいでした。 coreclr/src/debug at master · dotnet/coreclr · GitHub

    dotNetConf 2015 Japan で喋ってきました - しばやん雑記
  • ASP.NET MVC 6 の概要だけをサクッとまとめておきたい - しばやん雑記

    あまりにも MVC 6 は変更が多いので、概要をとりあえずサクッとまとめておきたい( ASP.NET 5 が RTM になるまでは、あまり確定情報みたいに書かないようにしているので、これもソースコード読みつつ調べた自分用メモだと思ってください。*1 Release 6.0.0-beta1 · aspnet/Mvc · GitHub ちなみに現在は 6.0.0-beta1 がリリースされています。Visual Studio 2015 に入ってるのも 6.0.0-beta1 だったかと思いつつ、更新内容多すぎるやろ!という感じ。 Unified Framework これまでは ASP.NET MVC / Web API / Web Pages とそれぞれ別のフレームワークとして開発が行われてきましたが、ASP.NET vNext の MVC 6 で Web API と Web Pages を統

    ASP.NET MVC 6 の概要だけをサクッとまとめておきたい - しばやん雑記
  • ASP.NET vNext で用意されている 3 種類のサーバー - しばやん雑記

    ASP.NET vNext はこれまで使われてきた System.Web.dll を捨てた結果、ランタイムとして IIS や ISAPI に依存しなくなりました。その代わり HTTP の処理を実際に行うレイヤーが必要となります。 既に http.sys を利用したものや、Node.js でも使われている libuv ベースのサーバーがリリースされていますので、簡単にまとめておきます。 Servers · aspnet/Home Wiki · GitHub GitHub Wiki にもサーバーのまとめは上がっているのですが、内容が少し古くなっているので補足も兼ねて。 WebListener Microsoft.AspNet.Server.WebListener はこれまでもよく使われていた HttpListener と同じようなもので、Windows のカーネルモードドライバである http

    ASP.NET vNext で用意されている 3 種類のサーバー - しばやん雑記
  • IIS で SSL 3.0 を無効にする方法 - しばやん雑記

    今朝は SSL 3.0 の脆弱性が話題になっていますね。ちなみに私も影響を受けました(死 SSL 3.0に深刻な脆弱性「POODLE」見つかる Googleが対策を説明 - ITmedia ニュース 困らされて悔しいので、SSL 3.0 を IIS で無効化する方法を調べました。相変わらずレジストリ弄らないと変更できないのはどうかと思いつつ試します。 How to disable PCT 1.0, SSL 2.0, SSL 3.0, or TLS 1.0 in Internet Information Services How to Disable SSL 2.0 and SSL 3.0 in IIS 7 てか、何も考えずに Windows Server に IIS を追加すると、SSL 2.0 が有効になった状態になるのはいい加減にやめた方が良いのではないかと。 折角なので SSL 2.

    IIS で SSL 3.0 を無効にする方法 - しばやん雑記
  • Visual Studio 2013 Update 3 で CodeLens が Git に対応して凄く便利になった話 - しばやん雑記

    かなり今更な感じですが、仕事中に Visual Studio 2013 Update 3 で追加された CodeLens の Git 対応について話に上がったので書いておきます。 Code Lens for Git in Visual Studio 2013 Ultimate Update 3 – Microsoft DevOps Blog CodeLens for Git improvements in Visual Studio 2013 Ultimate Update 3 RC – Microsoft DevOps Blog CodeLens はクラス定義やメソッド定義の部分に表示されるアレです。Update 2 までは参照数ぐらいしか表示されていませんでしたが、Update 3 からクラスやメソッド単位での変更数やコミットログの確認が出来るようになりました。 誰によって何日前にコミ

    Visual Studio 2013 Update 3 で CodeLens が Git に対応して凄く便利になった話 - しばやん雑記
    itotto
    itotto 2014/08/20
    すごい機能
  • SignalR を簡単に使ってみた - しばやん雑記

    こんばんわ、久しぶりに真面目に技術ネタでブログを書いてみます。 SignalR という非同期でリアルタイムな双方向通信を実現するライブラリが面白そうなので試してみました。作者は ASP.NET チームの Damian Edwards 氏と David Fowler 氏です。 ソースコードは GitHub で管理されていますが、NuGet で一式が公開されているので便利ですね。 GitHub https://github.com/SignalR/SignalR NuGet https://nuget.org/packages/SignalR とりあえず空の ASP.NET アプリケーションを作成します。SignalR は Web Forms や MVC などに関係なく動作するので、別にどれでも構わないのですが。 作成出来たら NuGet を使って SignalR をインストールします。パッケ

    SignalR を簡単に使ってみた - しばやん雑記
  • 1