より良いエンジニアを目指して

記事を頻繁に書き直す性格なのでごめんなさい。

C#

とりあえずVS再起動で対応 The file 'LaunchScreen.storyboard' conflicts with 'LaunchScreen.storyboard' 

C#

Xamarinを実機デバッグしようとしたところ、 The file 'LaunchScreen.storyboard' conflicts with 'LaunchScreen.storyboard' たまに起きるんですよねえ。これ。まいったもんだ。 github.com GitHubのIssueでもOpenのままです。 リビルドでは解消しませんで…

ImageSharpを使って画像を生成してみる。

C#

ImageSharpは、System.Drawingを使わないクロスプラットフォームの2D描画APIです。 sixlabors.com www.nuget.org メリットとしてはクロスプラットフォームであること。 また、System.DrawingはWebサービスや非同期処理には向いていませんので、それに替わる…

Xamarin+CocosSharpで効果音が鳴らない「Failed to generate OpenAL data buffer」

C#

Xamarin+CocosSharpでデバッグしているとVisual Studioで以下のようなメッセージにふと気付きました。 github.com 結構前からあるバグで、CCAudioEngine.PlayEffectを1024回実行すると「Failed to generate OpenAL data buffer」となって正しく再生されなく…

C#のDotfuscatorでの難読化とかシングルバイナリとか

C#

C# その2 Advent Calendar 2019 - Qiitaの25日目です。 C#はデスクトップアプリケーションを始めとし、サーバーサイド、モバイルなどで幅広く使われる言語です。 私の好きな言語です。 .NET Frameworkもしくは、最近広まりつつある.NET Coreと共に使われるC#…

.NET Standardになってcsファイルのインクルードがなくなった!

C#

いざ、.NET Standardのクラスライブラリを作ってみて気づいたのですが、csファイルがプロジェクトフォルダに追加された時点でプロジェクトの関連ファイルとなったことに気づきました。 ufcpp.net 一方で、新形式csprojでは、何も書かなくてもデフォルトでが…

What's Interop? それは相互運用

C#とアンマネージドなC++のコードの間の値の受け渡しをするための仕組みがInterop。相互運用になります。 C#を扱うものとしては理解しておきたいので、これを機会に実際に手を動かして勉強することにしました。 docs.microsoft.com docs.microsoft.com 特に…

デスクトップアプリケーションでGoogleAnalyticsしたいんだけど。

C#

デスクトップアプリケーションでGoogleAnalyticsを活用するにはどうするかを調べてました。 Microsoftが用意しているようです。 www.publickey1.jp github.com ですが、UWPがターゲットのようです。 WPFでは? となると以下のリポジトリが見つかりました。 g…

WPFのボタン処理であるICommand.Executeで非同期処理を使えるようにする。

C#

RelayCommandのExecuteメソッドって非同期処理使えないの?と。 HttpClientを使うことになれば自然とExecuteメソッドをasync修飾子を指定したくなります。 Task.Runで包むという手はあるのですが、それも微妙だなあと思っていると以下の記事が見つかりました…

コードを書いてBasic認証について学ぶ

C#

Web上で使われているHTTPの認証方式として、Basic認証があります。 あまりよく理解していないので、Basic認証について学んでみることにしました。 ja.wikipedia.org developer.mozilla.org Basic認証は、 ユーザー名とパスワードをコロンで繋ぐ(user:passwor…

XAML IslandsでWPFアプリケーションの最新化

C#

MSDNの以下のサイトでは、XAML Islandsと.NET Core 3.0を使って.NET Frameworkで開発されたWPFアプリケーションの最適化を試すことが出来ます。 docs.microsoft.com XAML Isldandsのコンポーネントに触れておくにはうってつけのドキュメントです。 下記に保…

WindowChromeでキャプションバーなしのウインドウを作る

C#

最近のアプリケーションはキャプションバーがありません。 WPFでは、WindowChromeを使えば出来ます。 docs.microsoft.com さっと書けないので自分用のメモ。 XAML

Autofacを利用して、メソッド呼び出し時にログ出力

C#

メソッド呼び出し時にログを出力してみたいなと探したところ、Autofacというライブラリを使えば、.NET Coreでも行けそうだということで試してみました。 このライブラリそのものはIoCのためのライブラリです。 やってみた感触としては、 出力したいメソッド…

double.TryParseとCultureInfo.InvariantCulture

C#

文字列を小数値に変換するとなると以下のようなコードになります。 double.Parseもありますが失敗すると例外を投げてしまうので、TryParseを使います。 using System; using System.Globalization; namespace ConsoleApp1 { class Program { static void Mai…

Use base class qualifierって意外と大事なアドバイスかも

C#

ResharperやRiderが薦めてくる。Use base class qualifierについてです。 using System; namespace ConsoleApp1 { class Program { static void Main(string[] args) { // このコードに対して、A.GetKeyword()にすることを薦めてくる。 Console.WriteLine(B.…

Use type keyword C#型のキーワードと.NET型のクラス

C#

string text = "Hello, Hello, How low?"; if (String.IsNullOrEmpty(text)) { } 上記のようなコードをResharperやRiderではUse type keywordといって、変換することを薦めてきます。 www.jetbrains.com string text = "Hello, Hello, How low?"; if (string…

なぜResharperはAdd StringComparison.Ordinalを提案してくるのか?

C#

以下のようなstring.IndexOfメソッドを使った場合、ResharperはStringComparison.Ordinalの指定を推奨してきます。 var text = "Are You Happy?"; var index = text.IndexOf("Happy"); 以下の説明に記載されています。 www.jetbrains.com The canonical exam…

Rider TutorialでRiderを使いこなし術を学ぶ

C#

JetBrainsのIDEであるRiderですが、2019.1からチュートリアルが追加されています。 pleiades.io これを触ってみることにします。 Editor EssentialsとRider Tips, Editor Assistantの二つはオススメです。触ったことがある方でもこの2つは触っておくと良いで…

2DPlatformerTemplateをiPhoneで操作できるようにしてみる。

C#

UnityHubから作成することのできる2DPlatformerTemplateですが、なかなか遊べる出来です。 ぶっちゃけマリオですが、敵や宝石の配置も工夫されています。 せっかくなんだから、iPhoneにインストールして操作できるようにしてみたいところです。 デフォルトで…

Unity+Riderを試す

C#

以前、Riderのイベントに参加したのですが、アンケートに答えることで、Riderの3ヶ月間の無料試用ライセンスをいただきました。 rimever.hatenablog.com Riderのセッションで推しだったUnityとの連動を試すことにします。 blog.jetbrains.com まず、気づく…

Amazon Web ServiceをVisual StudioとAWS ToolKitで第一歩

C#

やっぱり、クラウドやるならAWSかなーということでVisual StudioのAWS ToolKitと一緒にスタートしてみることにしました。 aws.amazon.com AWSというと「AWS 高額請求」でヒットするほどトラブルも聞くので触るのが怖かったりします。 とはいえ、クラウド全般…

Azure App Service、本当に今すぐ試す。

C#

会社でC#とGCPで発表をしていたところ、 それだったらAzure使った方がいいですよ。C#と親和性が高い。 という意見がありました。 転職して、今流行りのスキルセットに変えるかと、クラウドだけでもGCPをと考えていたのですが、自分の使いたいクラウドのサー…

Google App Engine上でのログ出力はConsole.WriteLineでOK

C#

Console.WriteLine("Test Console.WriteLine"); Console.WriteLineすればStackdriver上に出力されています。 Google Cloud Storage絡みなどになると一度デプロイしないと正しく動いているか解らないので、Console.WriteLineで出力しておかないと開発が滞りま…

ASP.NET CoreのApiControllerにてファイルをダウンロードするAPIを作成する

C#

状況 HttpMessageResponseを返す記事にヒットしていましたが、私の場合では上手く行きませんでした。 それではjsonが返されるだけでした。 環境は、ASP.NET Core 2.2で、以下のようにController.FileメソッドでFileContentResultを返すAPIになります。 [Http…

ASP.NET Core MVCでEnumDropDownListForは?

C#

.NET Framework時代のASP.NET MVCにはHtmlHelperにEnumDropDownListForが存在しました。 docs.microsoft.com www.buildinsider.net @Html.EnumDropDownListFor(model => model.Category) ですが、ASP.NET Core MVCではこのメソッドは存在しないようです。 私…

PngをSvgに変換するプログラムは書けない?

C#

svgをpngに変換するプログラムはすぐに検索でき、書けそうだとわかりました。 github.com Convert SVG to PNG using NuGet package Svg | C# Online Compiler | .NET Fiddle ですが、逆にpngをsvgに変換するプログラムについてはわかりませんでした。「Conve…

ASP.NET Entityframework Coreのチュートリアル「Contoso大学」に入学してみる

C#

ASP.NET EntityframeworkCoreのチュートリアルがMSDNにはあります。 docs.microsoft.com このチュートリアルを参考にContoso UniversityというWebアプリケーションページを作ってみました。 var student = await _context.Students .Include(s => s.Enrollme…

ASP.NET Core MVC + Google App EngineでGoogle Cloud Storageに保存してみる

C#

GCS(Google Cloud Storage)への保存は、公式ドキュメントを見れば良いのですが、躓きました。 とりあえずローカル保存を試してみたが、エラー System.InvalidOperationException HResult=0x80131509 Message=The Application Default Credentials are not av…

VisualStudio + Google Cloud Platformを実現するために「Google Cloud Tools」

C#

Visual StudioでC#のWebアプリを実装 そして、Visual StudioからGoogle Cloud Platformにデプロイ これを実現するツールが、Google Cloud Toolsです。 marketplace.visualstudio.com Visual Studio上からプロジェクトを右クリックメニューの「Publish to Goo…

ASP.NET CoreをGoogle App Engineにデプロイ

C#

Google Cloud Next '19に参加しておきながら、全然GCPを勉強していなかったので、以下の記事を試してみることにしました。 ASP.NET CoreのWEBアプリをGAE(Google App Engine)にデプロイするというものです。 codelabs.developers.google.com Cloud Shellには…

WPFでInkCanvasを使ってみる。InkCanvasの背景を透明にする。

C#

docs.microsoft.com WPFのInkCanvasを試してました。