tekitoumemo’s diary

思ったことを書くだけ。長文版Twitter

ASP.NET Core

.NET CoreアプリをGitHub ActionsでAzureにデプロイした

mygkrnk.com個人サービスをkuduデプロイからGitHub Actionsへ、.NET Core2.2から3.1に上げた。 NET Coreバージョンアップは別の記事で書く。 kuduとは Azure Webサイトで利用されているGitデプロイエンジン。要はオープンソースのCIなのだが、非常に使い勝手…

dotnet build、runで起きるエラーの対処法

いつも忘れるいつもググるから備忘録 コピーできません warning MSB3026: "obj/Debug/{app}" を "bin/Debug/{app}" にコピーできませんでした。1000 ミリ秒以内に 1 回目の再試行を開始します。 多分どっかのプロセスが握ってるので、ブチ消す。 rm -rf bin …

C#でmarkdownを書く(Markdig)

サイトを運用する人あるあるで 「ガイドとかヘルプ、マジめんどくせ〜」 ってなりませんか?僕はめっちゃなります、 CSSとかマークアップがとりあえずだるいし、wordpress運用してAPIで取り込むとかもだるいです。 今回はC#でmarkdownが書けるライブラリを紹…

Azure App Serviceでは.NET Coreの拡張子なしの静的ファイルにアクセス出来ない?

誰の役に立つか不明だが一応。個人的な都合でLet's Encryptの発行をubuntu機で行っていました。ちょうど入院(え?)したこの機会にmacで発行しようといろいろ試した備忘録です。いままではLet's EncryptをDNS認証で行っていましたが、今回はACMEのチェレン…

運営してるサービスのパフォーマンス改善をしました

こんにちは。みんなの洋楽ランキングでパフォーマンス改善をした結果、かなり速度が改善されたのでやったことを記載します。 まずは結果から 計測はPageSpeed Insightsで行っています。この結果はモバイルのみであり、デスクトップの結果は面倒なので載せま…

App Service on Linuxでnpm iするとシンボリックリンクが使えなくなってエラーになる

みんなの洋楽ランキングのReactを最新にしたらデプロイ時に意味わからないエラーが発生しました。 関連記事 tekitoumemo.hatenablog.com tekitoumemo.hatenablog.com エラーログ Command: /home/site/repository/deploy.sh Handling ASP.NET Core Web Applic…

ASP.NET Identityの外部ログインで任意の値をClaimに追加する

ASP.NET Identityを使っていて、ログイン後に任意の値を入れたいと思うことが多々あります。例えば、ユーザーを特定するIDやその他ユーザーに付随する情報など。ASP.NET Identityはセキュリティ上認証の際のみClaimに追加できないのでそのイベントのフックと…

ASP.NET CoreのGoogle認証

前回、外部ログインのセットアップとFacebook認証までは説明したので今回はGoogle認証の追加だけです。不足してる情報は以下に書いたのでよかったらみてください。 tekitoumemo.hatenablog.comtekitoumemo.hatenablog.com 前準備 https://console.developers…

ASP.NET CoreのFacebook認証

前回、外部ログインのセットアップまでは説明したので今回はFacebook認証の追加だけです。tekitoumemo.hatenablog.comよく個人でサイトを作っている人を見るとFacebookは実装されてないことをよく見るのですが、ここは詰まる人が多いと思います。 前準備 Fac…

ASP.NET CoreのTwitter認証と会員機能を作った理由

みんなの洋楽ランキングにSNS認証(Twitter、Facebook、Google)を追加しました。今回は外部ログインのセットアップとTwitter認証を説明をします。今回は2019年1月現在のやり方なので今後変わるかもしれません。 まずは審査から 最近は審査が厳しいので、以…

CoreTweetの検索をインジェクションで

.NETのTwitterライブラリにCoreTweetってのがあります。TwitterAPIのラッパーです。www.nuget.org最近、コンテンツ追加にCoreTweetを使ったので簡単な検索方法を説明します。以下のような感じで「続きを読む」を押すと過去5件でツイートが表示されます。 .N…

ASP.NET Coreのinclude属性とexclude属性

ASP.NET Coreのタグヘルパーでinclude、exclude属性ってのがあります。これは、実行環境毎に定義するタグを切り替えられるもので開発、ステージング、本番など環境に応じて変更出来ます。僕の場合、BuildBundlerMinifierを使っているのでcssがミニファイされ…

.net coreでHttpClient

HttpClientFactoryについてめっちゃ内容薄い、他のブログ見た方が良いかもHttpClientがとりあえずひどい作りなので、HttpClientFactoryってものがあります。HttpClientのひどい設計をカバーしたものがHttpClientFactoryです。名前もひどいもんですね。 HttpC…

ASP.NET MVCにおけるモデル検証について

かなり一般的なネタですが、以外に実装されている現場が少なく、色々処理した後にエラーチェックしてバグる現象が発生していることが多い気がするので備忘録として。以下に書いているコードは.Net Core2.1です。Frameworkでもほぼ一緒なので参考になるかなと…

スクレイピングにはAngleSharpが良いらしい

github.comC#のスクレイピングライブラリはHtml Agility Packがメジャーですが、昔使った感じだとなんか微妙なので(XPathとかだるい)他のライブラリを探してみたらAngleSharpってのが良さそうなのでこちらを使ってみました。ちなみに僕が運用しているみんな…

.Net CoreのRazorエンコードとかSEOの影響とか

.Net CoreのRazorは、デフォルトでエンコードされるように出来てます。これが普通に最低でした。みんなの洋楽ランキングは、タイトルをシステムで出力したりしてるんですが(以下)、それが全部エンコードされてわけわからん感じになります。 <title>@ViewBag.Title</title>…

ASP.NET Core MVCにおけるファイルダウンロードのあれこれ

結構サボってたー。ブログ書き続けるのは難しい!平日は寝たいし、休日は遊びたいし。今回はASP.NET Core MVCでのファイルダウンロードの実装方法を説明します。ファイルダウンロードにもいろいろあって ファイルを保存させる ファイルをブラウザで表示させ…

運用しているサイトで使っている.Net Coreのミドルウェア

mygkrnk.com 地味ーな努力と運によってSEO4位(「洋楽ランキング」で)まで行きました。今月は12KPVまで行く見込みで、予想よりはるかに上回りました。ということで、.Net Coreで作っているみんなの洋楽ランキングで使っているミドルウェアの紹介します。正…

SPAじゃないReactを.Net Coreで扱う

ちょっと特殊なReactの使い方を説明します。MVCで部分的にJqueryを使っていることが多いと思いますが、そのJqueryで作った部分がReactに置き換わる形です。ちなみに業務でAngularは触っているのですが、Reactは触っていませんので超ド素人です(通勤で調べて…

正式版の.NET Core 2.1がリリースされました。

.NET Core 2.1の正式版が5/30にリリースされました。 github.comそこまで感動する変更はないのですが、まぁ良い感じだったのでリリースノートに添って書いてきます。 Linuxインストーラの変更とディストリビューションの更新 Debian系のOSでパッケージマネー…

ASP.NET Core MVCのエラーハンドリング【起動時編】

前回の記事の続きです。やっとみんなの洋楽ランキングの.NET Core対応が終わりましたので今週末に完全移行します!.Net CoreなのでAzureからGCPに行こうしようと思いましたがやっぱりAzure良い!特に不満がなければAzureで行こうと思ってます。近いうちにLin…

ASP.NET Core MVCのエラーハンドリング【MVC編】

みんなの洋楽ランキングにて.Net Coreのエラーハンドリングを実装する必要がありました。エラーハンドリングのやり方は公式でも載ってるのですが、実用的な記事があまりないので僕なりのやり方をここで紹介しようと思います ※これは私のオリジナールも含まれ…

【.Net Core】.Net Coreでも正式にTransactionScopeが使えるようになった!

トランザクションを書くとき、成功したらcommit、失敗したらrollbackと結構めんどいのですが、それらを解決してくれるのがTransactionScopeです。例で書いた方がわかりやすいので以下で説明します。例はDapperを使います。 通常のトランザクション cn.Open (…

AutoValidateAntiforgeryTokenが便利すぎて感動した

今の現場がレベル高くて全く付いていけなくてひたすら給料泥棒してます、よくクビにならんわな。みんなの洋楽ランキングを絶賛移行中で色々ネタが増えました。それが.Net Coreから追加されたCRLF対策のAutoValidateAntiforgeryTokenで最強だと知りました。あ…

【ASP.NET MVC Core】.NET CoreでSystem.Net.Mail.SmtpClientが使えなくなったのでMimeKitを使う

みんなの洋楽ランキングを.NET Coreに絶賛移行中でMacBook Airのみで開発しています。.Net Core3.0ではWindows Formも対応するみたいでなかなか最強感出てきましたね!ASP.NET CoreはScalaの1.7倍のパフォーマンスを出すそうです。 www.ageofascent.comタイ…

macで.NET CoreのSPAプロジェクトを動かすと謎のエラー

macでもコマンドベースだとSPAがちゃんと動きます。以下の通り。 dotnet new angular -o angularTest npm i webpack dotnet restore dotnet build dotnet runこれで動くのでvscodeでデバッグしたら以下のエラー。。 意味不明なエラーが出た、ubuntuでは動い…

【C#】テキトーなAutoMapperを作った

AutoMapperがあまり使い勝手良くなかったから自分で作りました。クラスの型が違っててもだいたいマップするよってライブラリ。 メソッド これだけ(笑) void Map<T1, T2>(T1 src, T2 dest) T1:コピー元のクラス型 T2:コピー先のクラス型 src:コピー元のモデル de</t1,>…

ubuntuで.net coreを動かしたらnuget動かんかったのでその対処とAngular追加

タイトルどおりです。なんにも動かんくなったので、対処法を書く。まず以下のエラーが発生 Unhandled Exception: System.IO.FileLoadException: Could not load file or assembly 'System.Runtime.Extensions, Version=4.2.0.0, Culture=neutral, PublicKeyT…

【.NET Core, Azure SQL Server】ubuntuを使って.NET CoreでAzure Databaseを扱う

前回は.NET Coreをubuntuで動かすものを記事にしました。今回はubuntu上で.NET Coreを使ってAzure Databaseを動かせるかという検証です。ubuntuに.NET Coreを動かす場合は以下を参考にしてください。 tekitoumemo.hatenablog.com僕の持ってるサブPCはポンコ…

【.Net Core 2.0,Ubuntu】Ubuntu16.04でASP.NET MVCを動してみた

Ubuntu 16.04を入れたので、.NET Coreを入れて動かしてみました。結構、いろんな記事みて理解しながらやったので、まとめます。 .NET Coreを入れる パッケージのダウンロード。今回は「.NET Core 2.1.0-preview1 」を入れます。 wget -q packages-microsoft-…