53ningen.com

@gomi_ningen's Website

macOS から .NET Core 2.1 の AWS Lambda 関数を作成する

Windows 版の Visual Studio では AWS Toolkit for Visual Studio を使ってサクッと Lambda 関数を作成できます。

ここでは macOS 上で Visual Studio for mac にて Lambda 関数をサクッと作る手順をメモ。とはいえ、とても簡単です。

環境

  • macOS Sierra 10.12.6
  • Visual Studio for Mac 7.5.1
  • dotnet 2.1.403

1. .NET Core ライブラリ ソリューションの作成し、プロジェクトファイルを編集

  1. .NET Core ライブラリのソリューションを作成します(Ex: DotNetCoreLambda.sln
  2. 依存ライブラリを追加
  • exec: ...
Read More

Xamarin.iOSでのストーリーボードを使わない開発

Visual Studio で Xamarin.iOS のプロジェクトを作成すると、ストーリーボードなどという忌まわしいものがデフォルトで作成されてしまい非常に厳しい気持ちになります。この記事では、それらを削除して、コードで UI を構成していくためのステップを説明します。3 分ほど作業をすれば邪魔なものが消えてなくなってくれます。

1. Main.storyboard を削除

<img width="490" src="https://qiita-image-store.s3.amazonaws.com/0/56771/45a901e8-92f0-bbc1-da55-bf0996d730ec.png">

2. ViewController.designer.cs を削除

<img width="531" src="https://qiita-image-store.s3.amazonaws.com/0/56771/79380b0f-99a8-fe0b-5738-59dd17d507b9.png">

3. ViewController の余計なコード...

Read More

DelegatingHandlerを用いた快適なiOSアプリのHTTP通信周辺環境の整備

昨今のネイティブクライアントアプリで、 HTTP 通信を行わないものはないと言っても過言ではないくらい、アプリ開発の基本中の基本だと思います。きっと、開発を行う中で HTTP 通信の前後に色々な処理を挟んでみたいという気持ちが湧いてくるのではないでしょうか。たとえば以下のような話です。

  1. リクエストの内容をログ出力したい
  2. 電波状況が悪いときはリクエストを走らせないようにしたい
  3. 通信中はネットワークアクティビティインジケータを走らせたい

そんなときに System.Net.Http.DelegatingHandler はとても便利な代物です。公式のドキュメントはこちら: https://msdn.microsoft.com/ja-jp/library/system.net.http.delegatinghandler(v=vs.110).aspx

1. HTTP リクエストのログ出力

たとえば、Http リクエストの内容をログ出力したいとすれば、以下のような簡単な DelegatingHandler のサブクラスを作ってあげるとよいでしょう。

``...

Read More

System.Net.Httpのリクエストやレスポンスをロギングする

Swift の URLSession 使って自前で HttpClient 書いてたときは、リクエストパラメタとかいろいろをデバッグ時にログ出力してくれる便利なやつを自作していたんですが、.NET の HttpClient まあそのまま使うので、ロギングどうしようと思ってたらちゃんと用意してくれている。とても良い。

usin...
Read More

Effective C# chapter1:イディオム まとめ

Effective C# 4.0:読んだだけだと要点を忘れてしまうので個人的なメモです。まずは chapte1 のイディオムから。

1.public メンバの代わりにプロパティを使用する

1.プロパティはメンバとしてアクセスできるが実際にはメソッドとして実装される

  • プロパティにアクセスされたときにメソッドとしての振る舞いを持たせることができる。override できる。

2.データバインドの際はプロパティしか使えない。publi メンバはバインドできない。

textBox1.DataBindings.Add("targetProperty",ObjectName,"BindProperty");

3.プロパティにセットする値が正しいかどうかのチェック処理を簡単に実装できる

あるプロパティに空白文字をセットすることを許可しないという仕様に変更したいとき、プロパティを使っていなければ public メンバもしくはセッタを呼び出してる箇所を全て見つけ出し処理を書き加えなければならない。しかしプロパティを使っていれば se...

Read More

C#から2次元データファイルをGNUPLOTでプロットさせる

測定プログラム共通で使いまわせるよう C#上から GNUPLOT コンソールへコマンドを送り、データをグラフ出力させる機能を持った GnuplotGraph クラスを書いてみた。ある測定システムを組んでる際、何も考えずに組んだら鬼のようなスパゲッティーコードになってしまったので、少しでも改善できるようなるべく GNUPLOT 関連以外の事柄と切り離して書きなおしたものです。結構長いので先に利用側のコードを...。

GnuplotGraph 利用側のコード C#

using Gnuplot;
using System.Collections.Generic;
using System.Linq;
using NUnit.Framework;

namespace GnuplotUsing
{
    [TestFixture]
    class GnuplotGraphTest
    {
        [Test]
        public void GnuplotGraphDrawTest()
        {
            var...
Read More

テスト駆動開発をやってみる会に参加してきた

先日、TDD(テスト駆動開発)をやってみる会に参加してきました。

JUnit の存在は知っていたんだけど、どういう風にテストコードを書いていけばいいのかよくわかってなかったので、手っ取り早く知ってる人がいるイベントに参加してしまおうというモチベーションで参加。最近はもっぱら C#での開発ばかりなので C#で参加しました。ちなみに20人ちょい参加者がいた気がしますが C#使いが自分を含めて二人でした。

PHP,Java 使いが多く、Python,Objective-C などもチラホラ。そもそも PHP でテスト環境があることを知らなかった(そんな自分も実は C#を使い始めてからまだ2ヶ月と少し)。研究室のレガシーシステムの書き換えでハードウェア制御の関係で VB か C#(orC++)を選ぶことになり、なんとなく Java に構文が似てそうな C#を選んでせかせか書いてます。

☆ まずはテスト駆動開発についての解説がありました。

1.(失敗する)テストを書く(RED) 2.テストが成功するような実装を書く(GREEN) 3.リファクタリングする(REFACTOR)

という流れで...

Read More

Copyright © 53ningen.com