tekitoumemo’s diary

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

C#

.Net Coreをvscodeで実行すると一生起動しない現象の対処法

C#

タイトルまま。マジ謎だったのでdonet runでデバッグしてたが、vscode限定の現象だったので拡張じゃね?と思ったらやっぱり拡張のせいだった。C#の拡張が複数ある場合があるので不要な重複は削除する。以下のような場合は ls /Users/{user_name/.vscode/exte…

C#でmarkdownを書く(Markdig)

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

C#史上最強なORマッパーを使ってみた

C#

C#のORマッパーはEntity Framework(以下EF)をはじめ、Dapper、PetaPoco等が有名ですが、とにかくどれも微妙な完成度でRailsのActiveRecodeみたいなものがありません(Entity Frameworkがそれですが、とにかく遅い)。Dapperほどの速度が出てビルダーマッピ…

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

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

Spotifyの.Netライブラリが凄く良かったよ

C#

SpotifyのApiをみんなの洋楽ランキングで使いたかったのでラッパーライブラリを途中まで作ってました。 github.com が、相当完成度の高いライブラリがありましたので自前で実装するのをやめてSpotifyAPI-NETと言うものを使いました。 github.com Client IDと…

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

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

IEnumerable<T>をLINQでマッピング

C#

小ネタ。IEnumerableをマッピングするときにAutoMapperを使うのがメジャーですが、AutoMapperを使いたくないなーってときがあります(僕だけ?)。例えば、自作ライブラリでnugetを使ってて、そのnugetライブラリのクラスとメインプロジェクトのクラスをマッ…

.NET Coreで最新バージョンのC#を扱う

C#

.Net Coreでは何も指定しないとC#7.0しか使えません。こんなエラーが出ます。 Feature '新機能' is not available in C# 7.0. Please use language version 7.1 or greater. 7.1以上にあげなさい 7.1以上にあげる場合はcsprojに以下を記載します。 <LangVersion>7.1</LangVersion>常に最…

.net coreでHttpClient

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

AzureでSendGridを扱う

SendGridイイね!Azure App Service on Linuxに移行する為にテストをしていたところ、メール送信に失敗するようになりました( ゚д゚) tekitoumemo.hatenablog.com 色々調べてみるとAzureではメール送信を推奨していないことがわかりました。 Azure 上にメール…

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

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

【第2弾】React使ってちょっとしたもの作った

大したものじゃないんですが、課題だった日付の検索プルダウンを実装しました。数年に遡って週ごとにプルダウンを出してたのですが、使いづらすぎる、量が多すぎる、パフォーマンスも気になるので整えました。インデックスが1000を超えたので(ページ数は200…

AutoMapperでifって書きたいときどうするか

C#

automapper.orgC#のWEB開発ではAutoMapperが欠かせないレベルでかなり重要なのですが、完全にマッピングするのはやっぱり難しかったりします。MapFromだと三項演算子しか書けなくて読みづらい場合も出てくるのでifでかける方法を探しましたらあったので、備…

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

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

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

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

Macで作ったASP.NET MVC CoreのDocker ImageをHerokuで動かす【想像編】

タイトル長杉 最近Azureにハマってます。今回のタイトルはAzureで出来ますし楽ですしやる意味わからんと思う人がいると思いますが、それなりに理由があります。 なぜにへろく? SSLを使った画面が必要になったためです。で、SSL化するためにはインフラの選定…

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 (…

【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…

AzureにカスタムドメインとSSLを設定する

SSLやらなんやらやってきましたが、最終章です。 tekitoumemo.hatenablog.com tekitoumemo.hatenablog.com tekitoumemo.hatenablog.comSSLやらドメインの取得をしたらAzure Portalへ移動します。まずはSSLの登録をしましょう。[SSL証明書]→[証明書のアップロ…

わりとまじめにサービスを作った

ずっとWEBサービスを作りたいと思っていて、時間やアイデアなどなかなか思い浮かばなくてずっとやらずにいましたがもう諦めついて 「趣味をWEBサービスにしちゃおう!」 と思いわりとまじめに作りました。それがこちらです。mygkrnk.com みんなの洋楽ランキ…

【.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-…

【C#、ASP.NET】SQL Serverでセッション管理する

ほぼ完成した。公開まであと少し。ASP.NETのセッション方法はいくつかあるのですが、今回はインメモリ OLTP でセッション管理を行う方法を紹介します。以下を参考にしました。 blogs.technet.microsoft.com インメモリ OLTP とは 正直、僕もよくわかってない…

【ASP.NET WEB API、MsTest】アノテーションをテストする

テストで正常パターン、異常パターンなど様々なテストを書くと思いますが、アノテーションのエラーを取るやり方が日本語で載ってなかったので書きます。stack traceでは以下に載ってました。ASP.NETではアノテーションで大体のエラー処理が行えるのでめっち…

【ASP.NET MVC,C#】一つのメソッドで複数のViewを切り替える方法

以前書いた記事の応用編です。 同じようなロジックなんだけど、ビューのデザインや表示する値を変えれば便利だなーと思うときがあります。今回は受け取ったパラメータから表示するビューを切り替えたり、ViewModelを変えたりする方法を紹介します。参考用にg…