タグ

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

  • Google AdSense の広告掲載を全て止めることにしました - しばやん雑記

    タイトルの通りですが、このブログでは長年 Google AdSense を使った広告掲載を行っていましたが、今日から全て止めることにしました。止めるに至った理由はいくつかあるのですが、最近の無茶苦茶な広告の出し方に嫌気が差したのが一番大きいです。 正直これまで自分がブログに AdSense で広告を載せているのだから、広告ブロッカーは使わないようにしていたのですが、最近遭遇したページで以下のような広告をらったので使用を決意しました。いったい何のサイトを開いたのかもわからないぐらいなので酷いですね。 広告ブロッカーのインストールを決意した瞬間であった… pic.twitter.com/tE39ZMxEd2— Tatsuro Shibamura (@shibayan) 2024年5月1日 元々、このブログでお金を稼ぐことは全く考えておらず「はてなブログ Pro 代が出ればいいなー」ぐらいの考

    Google AdSense の広告掲載を全て止めることにしました - しばやん雑記
    mak_in
    mak_in 2024/05/06
  • 私が Azure Functions アプリケーションの開発時に意識していること - しばやん雑記

    ここ数年は Azure Functions をフルに活用したアプリケーションを実装することが多かったのですが、同時に Azure Functions を失敗しないように使う方法も分かってくるので、ここらでちゃんと言語化しておきます。 最近は特に Azure Light-up というハッカソンを行うことが多いのですが、Azure Functions を使う場合には必ずこの辺りは毎回説明するようにしています。要するに Azure Functions の利点・特性を理解して賢く使いこなそうという話です。 Binding / Trigger で実現出来ないか考える Function の実装は出来る限り小さく保つ リトライのしやすい実装を重視する 最新の .NET での作法に沿ったコードを書く Graceful Shutdown に対応したコードを書く 機能単位で Function App プロジェ

    私が Azure Functions アプリケーションの開発時に意識していること - しばやん雑記
    mak_in
    mak_in 2021/03/12
    こういう考え方に関する情報って意外とないので助かる
  • 障害に強い Azure の運用を考える (2021 年版) - しばやん雑記

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

    障害に強い Azure の運用を考える (2021 年版) - しばやん雑記
    mak_in
    mak_in 2021/03/02
  • 今更ながら Azure Functions の Durable Functions を試した - しばやん雑記

    前から Durable Functions が面白そうだと思いつつ、Visual Studio 2017 15.5 が必要とかで中々試していなかったのですが、少し時間があったので一通り調べて動かしてみました。 当然ながら全ては .NET Core の v2 ランタイム向けで試してあります。まずはドキュメントを。 後は牛尾さんの Qiita エントリを読んでおくと基的な知識が入るはずです。 Visual Studio 向け拡張もアップデートが進んで、Durable Functions が簡単に追加できるようになっているので Qiita に書かれた当時と比べて、さらにイケてる機能となっています。 元々 App Service も Azure Functions も Cloud Design Pattern の集大成という感じなのですが、Durable Functions は更にいろんなパター

    今更ながら Azure Functions の Durable Functions を試した - しばやん雑記
    mak_in
    mak_in 2020/03/27
  • 後悔しないための 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 年版) - しばやん雑記
    mak_in
    mak_in 2020/01/14
  • 既存の WPF アプリケーションを .NET Core 3.0 に移行した - しばやん雑記

    Visual Studio 2019 が RC に到達したという話だったので、検証用に使っているマシンにインストールして既存 WPF アプリの .NET Core 3.0 移行がどのくらいのコストで行えるのか試しました。 にぃにが書いているように .NET Core 3.0 を Visual Studio 2019 RC で使うには、プレビュー版の .NET Core を使うように設定を変える必要があります。 理屈としては分かりますが、まあまあはまりやすいポイントですね。設定を変えると .NET Core 3.0 向けのプロジェクトを読み込んでビルド出来るようになりました。 .NET Core 3.0 の Win Forms / WPF 対応について調べてみると、ほとんど dotnet new wpf とかで作ったコードを動かしていただけだったので、当にマイグレーション可能なのか怪しく思

    既存の WPF アプリケーションを .NET Core 3.0 に移行した - しばやん雑記
    mak_in
    mak_in 2019/03/04
  • Application Request Routing (ARR) を使う場合に必ず設定しておきたい項目 - しばやん雑記

    最近は ARR を Azure に作成して遊んでいるので、デフォルトのままだと後で困りそうな設定を紹介しておきます。思ったより ARR の情報が少ないので頑張っていきたい。 クライアント IP アドレスの保存 ARR を使ってリバースプロキシを設定すると、アクセスされる Web サーバーのログには ARR の IP アドレスが記録されます。リバースプロキシなので当然と言えば当然の動作です。 実際に ARR でリバースプロキシを設定してアクセスした場合のログです。クライアント IP として 10.0.0.4 という ARR のプライベート IP アドレスが書き込まれているのが確認できます。 しかし、わざわざ ARR の IP アドレスをログに記録したいわけではないので、クライアントの IP アドレスをログに記録する方法を 2 つ試しました。 1. カスタムフィールドを追加する IIS Man

    Application Request Routing (ARR) を使う場合に必ず設定しておきたい項目 - しばやん雑記
    mak_in
    mak_in 2019/01/24
  • URL Rewrite の Outbound Rule と gzip 圧縮は共存できないという都市伝説 - しばやん雑記

    デフォルトのまま Outbound Rule と gzip 圧縮を有効にしようとしてエラーになったことがある人は多そうです。もはや都市伝説的な感じすらしますが、適切に設定を行えば共存は可能です。 当時は IIS 開発チームだった Ruslan 氏が IIS Forums 回答しています。 URL Rewrite Outbound Rules w/ Compression : The Official Microsoft IIS Forums 回答を要約すると以下のようになるかと。IIS のパイプラインを考えると理解できますね。 Outbound Rule と IIS の Static Compression は共存できない Static Compression はキャッシュを保存したりするので当然という感じはある LogRewrittenUrlEnabled レジストリキーを追加する dy

    URL Rewrite の Outbound Rule と gzip 圧縮は共存できないという都市伝説 - しばやん雑記
    mak_in
    mak_in 2019/01/21
  • Azure App Service 向けに Let's Encrypt 周りの自動化を行う Azure Functions を作った - しばやん雑記

    タイトルの通りなんですが、App Service 向けに自動で Let's Encrypt の証明書を更新してくれる Azure Functions を作りました。Durable Functions と ACMESharp Core を使っています。 とりあえずベータリリース的な感じで出してみることにしました。 これまでも Site Extensions と WebJob を使って Let's Encrypt の証明書を更新してくれるものはありましたが、1 サイトに 1 つ仕込む必要があり、結構な確率で失敗することが多かったので不便だと思ってました。サービスプリンシパルを作って設定する必要があったのも面倒でした。 なので、今回の azure-appservice-letsencrypt は以下のような問題を解決するために作りました。 1 つの Azure Function で複数の証明書を

    Azure App Service 向けに Let's Encrypt 周りの自動化を行う Azure Functions を作った - しばやん雑記
    mak_in
    mak_in 2018/08/06
  • de:code 2018 で ASP.NET Core について話しました - しばやん雑記

    今年も de:code 2018 にスピーカーとして参加して、ASP.NET Core についてチャックさんと共同で登壇してきました。共同登壇は昔におーみさんと Go Azure でやって以来ですね。 とりあえずスライドは公開しましたが、今回のセッションは動画を見ないと面白くないと思うので、公開されるのを待っていてください。 内容としては ASP.NET Core の新機能というよりも、あまり触れられていないように感じる割に、理解しにくい部分を中心に話したつもりです。 特にこの 1 年弱は ASP.NET Core 2.0 でそこそこの規模のアプリケーションを書いたり、MVC 5 からの移行案件を行っていたりと、地味にノウハウが溜まってきていた割に、ブログをさぼっていた分をセッション中の会話でカバーした感じです。 最終日の最終セッションということでチャックさんとの打ち合わせで Scott

    de:code 2018 で ASP.NET Core について話しました - しばやん雑記
    mak_in
    mak_in 2018/05/30
  • ASP.NET の Async SessionState Module を試してみる - しばやん雑記

    あまり使うつもりがなかったというか、対応したセッションプロバイダーが In-Memory と SQL Server ぐらいしかなかったので触れていなかったですが、ASP.NET 4.6.2 から非同期対応の SessionState Module が使えるようになっています。 全然情報を見なかったのと、Cosmos DB のプロバイダーが出たので調べました。 単純に Task ベースで書き直されたという感じですが、モダンなストレージクライアントでは Task を使うのが当たり前という状況なので、新しいプロバイダーは作りやすくなったと思います。 ちなみに 1.1.0 から非同期以外にロックなしのセッションに対応しています。以下のブログで紹介はされていますが、このタイトルで SessionState Module の新機能が紹介されているとか気が付かないです。 ASP.NET のセッションはス

    ASP.NET の Async SessionState Module を試してみる - しばやん雑記
    mak_in
    mak_in 2017/11/27
  • Cosmos DB を利用する上で最初にはまった部分のメモ - しばやん雑記

    Twitter でおーみさんに Cosmos DB についていろいろ聞いたので、忘れないようにメモっておきます。kyrt.in に書いてあればみんな幸せになりそうなんですが、いつ書いてくれるかわからないので。 HTTP GW ではなく TCP Direct を使う デフォルト設定のまま Cosmos DB を使っていると、どうも遅いような気がしたので聞いたところ、TCP Direct を使うように設定を変えるのが良いと教えて貰いました。 デフォルトって、HTTP GW だっけ。TCP DIRECTがお勧めされている。実際、2から3割はレイテンシが小さいと思う。— Takekazu Omi (@takekazuomi) 2017年10月9日 DocumentClient を作るときに ConnectionPolicy を渡してやればよいです。 var connectionPolicy = n

    Cosmos DB を利用する上で最初にはまった部分のメモ - しばやん雑記
    mak_in
    mak_in 2017/10/11
  • ASP.NET Core MVC を使ってアプリケーションを書いた際に悩んだポイント - しばやん雑記

    サンプルとか超小規模以外の ASP.NET Core MVC アプリケーションを書いてますが、いろいろと悩んだりはまったりしたポイントがあったのでまとめました。 まだまだありそうなので、ちょっとずつまとめようかと思います。 addTagHelper にはアセンブリ名を指定する これに気が付かずに 1 時間以上無駄にしました。最初から書かれている Tag Helpers の追加コードが名前空間に見えたので、ずっと名前空間を指定していました。 ドキュメントをちゃんと読めばアセンブリと書いてあったのですが、完全に見落としていました。 このプロジェクトの場合は Tag Helper は WebApplication14.TagHelpers 名前空間にいますが、アセンブリ名を指定しないといけないので WebApplication14 とだけ書きます。 @addTagHelper *, Micros

    ASP.NET Core MVC を使ってアプリケーションを書いた際に悩んだポイント - しばやん雑記
    mak_in
    mak_in 2017/10/07
  • ASP.NET MVC 5 での新規アプリケーション開発時に便利な設定をまとめてみた - しばやん雑記

    自分が毎回新規で ASP.NET MVC アプリケーションの開発を始めるときに忘れるので、今までブログに書いた分をまとめてみました。 ASP.NET MVC 5 と限定してあるのは、5 より前のバージョンではバグ持ちの設定を紹介しているからです。 Razor のみを使う ViewEngines.Engines.Clear(); ViewEngines.Engines.Add(new RazorViewEngine()); モバイルビューを無効にする DisplayModeProvider.Instance.Modes.Clear(); DisplayModeProvider.Instance.Modes.Add(new DefaultDisplayMode()); 生成される URL を小文字にする public static void RegisterRoutes(RouteCollec

    ASP.NET MVC 5 での新規アプリケーション開発時に便利な設定をまとめてみた - しばやん雑記
    mak_in
    mak_in 2017/07/19
  • ASP.NET Core 1.0 で追加された User Secrets を使ってみる - しばやん雑記

    これまでは開発環境用の接続情報など GitHub などのリポジトリに含めたくない情報は、Web.config の configSource を使って別ファイルにして管理していたかもしれません。 ASP.NET Core 1.0 には User Secrets が追加されたので、ユーザー専用の情報を簡単に扱えるようになりました。古い情報ですが GitHub の Wiki で紹介されてます。 Home · dotnet/aspnetcore Wiki · GitHub Visual Studio 2015 向けのツールでは、右クリックメニューから簡単にユーザーシークレットの管理が行えるようになっているので、コマンドから操作する必要がなく便利です。 選択すると json ファイルが開かれるので、ここに appsettings.json と同じように書くだけです。 ユーザーシークレットの管理から開

    ASP.NET Core 1.0 で追加された User Secrets を使ってみる - しばやん雑記
    mak_in
    mak_in 2017/07/03
  • ASP.NET Core MVC 1.0 でキャッシュを行う 3 つの方法 - しばやん雑記

    ASP.NET MVC 5 でもキャッシュのための手段はいくつか用意されていましたが、ASP.NET Core MVC 1.0 では少し方向性が変わっています。大きく変わっているのが OutputCache 属性が無くなっていることです。 現実的にキャッシュを行う手段は ASP.NET Core MVC 1.0 では以下になります。 ResponseCache Cache Tag Helper Memory Cache それぞれ特徴があるのと、MVC 5 には無かった機能なので一つずつ確認してみました。 ResponseCache OutputCache みたいな名前の ResponseCache ですが、中身は全く異なっています。OutputCache は出力をサーバー側でキャッシュしていましたが、ResponseCache は Cache-Control ヘッダーを出力するだけです。

    ASP.NET Core MVC 1.0 でキャッシュを行う 3 つの方法 - しばやん雑記
    mak_in
    mak_in 2017/07/03
  • ASP.NET Core MVC アプリケーションでスキャフォールディングが使えない時は - しばやん雑記

    サンプルではなく、実際に ASP.NET Core MVC アプリケーションを開発する人が選ぶと思われる認証なしテンプレートでは、Visual Studio でのスキャフォールディングに必要なパッケージが追加されません。 私は基的に認証なしを選んで作っていくタイプなので、完全にはまりました。 スキャフォールディングが使えないと、ビューを作るのが当に大変なので辛いです。 実際に認証なしを選んでプロジェクトを作成すると、ソリューションエクスプローラのコンテキストメニューに何も出てきません。 認証なし以外のテンプレートを選んで作成すると、今まで通りにスキャフォールディングの項目が表示されます。Visual Studio でスキャフォールディングが使えると安心感がありますね。 違いは project.json だけなので、認証なしを選んでいてもパッケージをいくつか追加すると、スキャフォールディ

    ASP.NET Core MVC アプリケーションでスキャフォールディングが使えない時は - しばやん雑記
    mak_in
    mak_in 2017/07/03
  • Windows Containers を使って既存の ASP.NET MVC アプリケーションを動かす - しばやん雑記

    Azure App Service の Linux 版が Docker に対応したり、Azure Container Registry がプレビューになったりと、Docker と Container に対応しておくと色々幸せになれそうなので、既存の ASP.NET アプリケーションに絞って調べることにしました。 Azure Container Service は Windows Containers 対応がプライベートプレビューになっていますし、ASP.NET 4.6 アプリケーションを Windows Containers 対応にしておくと有利になりそうです。 今後は App Service でも Windows Containers 対応が来る可能性もありますし、対応しておいて損はないと思います。対応させるための手間もほとんどかかりません。 既に Docker Hub で公開されている

    Windows Containers を使って既存の ASP.NET MVC アプリケーションを動かす - しばやん雑記
    mak_in
    mak_in 2017/01/30
  • ASP.NET で DbContext を扱う際のベストプラクティス - しばやん雑記

    ASP.NET MVC のスキャフォールディングを使うと、以下のように Entity Framework の DbContext をコントローラのフィールドに持つコードが生成されます。 public class CustomerController : Controller { private SampleDbContext db = new SampleDbContext(); // // GET: /Customer/ public ActionResult Index() { return View(db.Customers.ToList()); } } 単純なアプリの場合はこれでいいかもしれないですが、リポジトリパターンを使った場合では DbContext をどうやって持つべきかと悩む人が居ると思います。 変更追跡やトランザクションの観点的に、DbContext や Unit of

    ASP.NET で DbContext を扱う際のベストプラクティス - しばやん雑記
    mak_in
    mak_in 2017/01/21
  • 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 の概要だけをサクッとまとめておきたい - しばやん雑記
    mak_in
    mak_in 2017/01/21