.net

NuGet CLI でパッケージをダウンロード

NuGet CLI の install コマンドで、指定した場所にパッケージをインストールできた。依存パッケージもインストールしてくれた。 nuget install Microsoft.EntityFrameworkCore -o .\NuGetPackages packages.config を指定してもいい。ただ、この場合 package…

指定した URL に付けられたすべてのブックマークを取得する

はてなブックマークネタ第3弾。 最後は、指定した URL に付けられたすべてのブックマークを取得してみた。 using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Net.Http; using System.Net.Http.Headers; using System.T…

指定した URL の人気ブックマーク一覧を取得する

はてなブックマークネタ第2弾。 今度は、指定した URL に付けられたブックマークのうち、 人気のヤツを取得してみた。 using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Net.Http; using System.Net.Http.Headers; usi…

指定したユーザーのはてなブックマーク一覧を取得する

いいかげん、そろそろプログラミングネタを書かねば。 ってことで、C# で「指定したユーザーのはてなブックマーク一覧を取得する」サンプルを書いてみた。 はてなブックマークに専用の API が見当たらないので、RSS フィードを取得してパースしている。 オフ…

Xamarin Forms でナビゲーションバーの左側にアイテムを配置する方法メモ

最近、Xamarin Forms で iOS アプリを開発している。 Xamarin Forms は XAML で記述できるので、WPF に慣れている身としては、 Storyboard よりも UI を作成しやすくて良いね。 Grid や StackLayout といったレイアウトが超便利だ。 一方で、「こんなことも…

ニューラルネットワークに対する勾配を実装してみた

C# でゼロから Deep Learning を実装する挑戦の続き。 4 章もようやく終盤で、いよいよ機械学習に入る。 今回はニューラルネットワークに対する勾配を実装してみた。 using System; using System.Linq; using MathNet.Numerics.LinearAlgebra; namespace Gra…

勾配降下法を実装してみた

C# でゼロから Deep Learning を実装する挑戦はまだ 4 章。 機械学習で使う勾配降下法を実装してみた。 勾配を計算するメソッドは前回記事を流用している。 using MathNet.Numerics.LinearAlgebra; using System; using System.Linq; namespace GradientDesc…

勾配を実装してみた

C# でゼロから Deep Learning を実装する挑戦を少しずつ進めている。 まだ第 4 章だけど。 今回は勾配を実装してみた。 using MathNet.Numerics.LinearAlgebra; using System; using System.Linq; namespace NumericGradientSample { class Program { static…

数値微分を実装してみた

C# でゼロから Deep Learning を実装する挑戦の続き。 今回は第 4 章の数値微分を実装してみた。 using System; namespace NumericalDifferentiationSample { class Program { static void Main(string[] args) { // 微分 Func<double, double> function1 = x => 0.01 * Math</double,>…

損失関数を実装してみた

C# でゼロから Deep Learning を実装する挑戦の続き。 今回は第 4 章で紹介されている損失関数(2乗和誤差と交差エントロピー誤差)を実装してみた。 using MathNet.Numerics.LinearAlgebra; using System; using System.Linq; namespace LossFunctionSample {…

超単純な 3 層ニューラルネットワークを実装

C# でゼロから Deep Learnig を実装する挑戦の続き。 今回は超単純な 3 層ニューラルネットワークを実装してみた。 といっても、『ゼロから作る Deep Learnig』の 3 章の写経みたいなもの。 C# + Math.NET Numerics で試行錯誤しながら書いたコードは次の通…

MNIST データセットを読み込んでベクトルに変換

C# でゼロから Deep Learning を実装する挑戦の続き。 この挑戦では、『ゼロから作る Deep Learning』同様に、 手書き数字認識のニューラルネットワークを実装するので、 MNIST データセットを利用する。 MNIST handwritten digit database, Yann LeCun, Cor…

活性化関数とソフトマックス関数を実装

『ゼロから作る Deep Learning』を読んで C# で実装したみたくなった続き。 今度はニューラルネットワークで使う関数に挑戦してみた。 実装するのは活性化関数であるシグモイド関数、ReLU 関数。 そして出力層で使うソフトマックス関数。 あとおまけでステッ…

パーセプトロンで論理回路を実装

『ゼロから作る Deep Learning』を読んで、C# で実装してみたくなった。 問題は NumPy の変わりに何を使うかだけど、C# には Math.NET Numerics というのがある。 numerics.mathdotnet.com ベクトルや行列の計算はできそう。テンソルはやってみないと分から…

ASP.NET Core で Swashbuckle

はじめに Swashbuckle はまだプレリリースの段階ではあるけど、 ASP.NET Core にも対応しているみたい。 github.com Swashbuckle を使えば、Web API の実装から Swagger Definitions を生成できる。 温かみのある手作業で、 Web API の Swagger Definitions …

証明書ファイルを読み込んで WCF の SSL over TCP で使う

WCF は NetTcpBinding を使う場合でも SSL で通信を暗号化できる。 暗号化に使う SSL 証明書は、Windows の証明書ストアにインストールしてある中から検索して使うのが一般的なやり方っぽいが、 インストールしていない証明書のファイルを読み込んで使うこと…

WCF サービスを Topshelf で Windows サービス化

はじめに WCF サービスをセルフホストする場合、 Windows サービスを作ることになると思う。 本番環境で動かすときは Windows サービスでいいんだけど、 デバッグはコンソールアプリケーションの方が便利。 そのため、Windows サービスとコンソールアプリケ…

ASP.NET Core アプリケーションの Docker コンテナを Heroku で動かしてみた

はじめに ASP.NET Core アプリケーションを Docker で動かすことができた。 tnakamura.hatenablog.com そういえば、Heroku で任意の Docker コンテナを動かすことができるようになっていたな。 まだベータ版な上、制限もあるみたいだけど。 もしかしたら ASP…

ASP.NET Core アプリケーションを Docker で動かす

yo aspnet で作成したプロジェクトには Dockerfile が含まれているので、 ASP.NET Core アプリケーションを Docker で動かすこともできる。 ただ、2016/07/25 時点では Dockerfile に手直しが必要。 そのままだと docker build でコケる。 といっても apt-ge…

.NET Core で開発する環境を MacBook Pro に構築

.NET Core と ASP.NET Core が RTM になった。 RTM になったら本気出す、って言ったので行動しないといけないな。 有限実行。 まずは家の MacBook Pro で、開発環境を作り直すところから始めよう。 まずは Homebrew で OpenSSL の最新版を先にインストールし…

OpenCover を使ってコードカバレッジを計測したメモ

アプリのコードがだいぶ増えてきて、それに伴いテストコードも増えてきた。 いい加減そろそろテストを書いていないメソッドの把握が難しくなってきたところだ。 コードカバレッジを計測する頃合かもしれない。 プライベートプロジェクトなので、開発は Visua…

Entity Framework でエンティティを削除したら取得済みエンティティの外部キーが null になっていてハマッた

Id の型に int ではなく string を使った public class Item { public string Id { get; set; } public string ProjectId { get; set; } public string Title { get; set; } public string Content { get; set; } } のようなエンティティで public class Ite…

Swagger definition からクライアントとサーバーのソースコードを生成してみた

前回は簡単な Web API の Swagger definition を書いただけで終わってしまったけど、 ここからが本題。 やりたいのは、Swagger definition からクライアントとサーバーのソースコード生成すること。 そのためのツールとして swagger-codegen が提供されてい…

Selenium を使った画面テストでテスト対象の ASP.NET MVC アプリを自動起動する

ASP.NET MVC で開発しているアプリの画面テストを、Selenium を使って書き始めた。 tnakamura.hatenablog.com テストを実行するときは、先に ASP.NET MVC アプリを Visual Studio から実行しないといけない。 毎回これやるの面倒なんで、IIS Express を使っ…

ASP.NET MVC アプリの画面テストで Selenium を試してみた

Selenium 実践入門を読んで Selenium 熱に火がついたので、 ASP.NET MVC で実装しているアプリの画面テストを Selenium 使って書くことにした。 もちろん C# で。 画面テスト専用のテストプロジェクトを作成し、 Selenium を使うためのパッケージをインスト…

ASP.NET Identity でユーザーを作成するときは必ず UserManager を使うこと

マイグレーションで Seed データを投入するとき、 ユーザーを作成するところで UserManager を使わずに、 IdentityDbContext を使って直接データベースに保存してしまっていた。 そのせいで、ログインするときに ClaimsIdentityFactory が内部でクレームを作…

C# でも匿名型でインタフェースを実装できたらいいのにとたまに思う

たとえば public interface IDomainEventHandler { bool CanHandle(IDomainEvent e); void Handle(IDomainEvent e); } というインタフェースがあるとき EventBus.Register(new IDomainEventHandler { public bool CanHandle(IDomainEvent e) { return e is P…

Entity Framework でオブジェクトが変更監視中かどうか調べる方法メモ

DbSet<TEntity>.Local プロパティを調べればわかった。 public class Customer { // Entity Framework 用コンストラクタ protected Customer() { } public Customer(string name) { Name = name; } public int Id { get; private set; } public string Name { get; pr</tentity>…

ASP.NET Identity でカスタムクレームを使う

マルチテナントな Web サービスを作っていて、 どのテナントかの判断を現在ログインしているユーザーが持っているテナント ID で判断している。 そのため、HttpContext.User.Identity.GetUserId() で取得したユーザー ID を使って、 データベースからユーザ…

Heroku で最小の ASP.NET 5 アプリを動かす

Heroku が .NET サポートを予定しているのか知らないけど、 Github には heroku/dotnet-buildpack という ASP.NET 5 用のビルドパックがある。 github.com これを使えば ASP.NET 5 アプリを Heroku で動かせると思いきや、 Mac OSX で作成したプロジェクトを…

C# で Phantom Type もどき

Phantom Type (幽霊型)っていうのを知った。 インスタンスの状態をメンバフィールドではなく型パラメータで持つことで、 状態チェックをコンパイル時に行えるテクニック。 なにそれ凄い。 型パラメータに指定するだけで、 インスタンス化したりメソッド呼ん…

ASP.NET MVC で Excel ファイルを出力

Open XML SDK を使えば C# で Excel ファイル (.xlsx) を出力できた。 tnakamura.hatenablog.com 先日のサンプルではファイルに出力したけど、 SpreadsheetDocument はストリームへの出力にも対応している。 今度は Excel ファイルをダウンロードできる ASP.…

Open XML SDK を使って Excel ファイルを出力

C# で Excel ファイルを出力する場合、.xls ファイルだと Microsoft.Office.Interop を使う ExcelCreator を購入して使う という選択肢があった。 Microsoft.Office.Interop は Excel のインストールが必要だし、 ExcelCreator は有料だしと、 趣味のアプリ…

最小の ASP.NET 5 アプリを Docker で動かす

はじめに yo のジェネレーターを使って ASP.NET 5 プロジェクトを作成したら、 次のような Dockerfile も含まれていた。 FROM microsoft/aspnet:1.0.0-beta7 COPY project.json /app/ WORKDIR /app RUN ["dnu", "restore"] COPY . /app EXPOSE 5000 ENTRYPOI…

Mac OS X に ASP.NET 5 開発環境を構築

はじめに そろそろ自宅の MacBook Pro にも ASP.NET 5 の開発環境を作るとしよう。 .NET Version Manager (DNVM) をインストール Homebrew を使ってインストールする。 brew tap aspnet/dnx brew update brew install dnvm Zsh の設定に追加して、dnvm コマ…

ViewBag vs ViewModel

ASP.NET MVC 5 プロジェクトを新規作成したら、HomeController が ViewBag を使ってビューにデータを渡している。 一方、『Entity Framework を使用した、ビューがある MVC5 コントローラー』を追加すると、 Entity Framework を使って取得したデータを View…

『C#エンジニア養成読本』読んだ

Sansan の記事が読みたくて購入。 Git でバージョン管理 カスタマイズした Git Flow で開発を進める NUnit で自動テスト Jenkins + MSBuild で CI Pivotal Tracker でイシュー管理 Slack でコミュニケーション という感じの内容で、 スタートアップでよく見…

WSDL から XML Web サービスのソースコードを生成

WSDL から XML Web サービスを生成する機能を Visual Studio で探したけど、 見つけられなかったのでコード書いてみた。 System.Web.Services.Description 名前空間にある ServiceDescription と ServiceDescriptionImporter、 あと CodeDom を使って生成で…

『C# 実践開発手法』読んだ

本書が主張する『アダプティブコード』とは、 コードを大幅に変更することなく、新しい要求やシナリオに対処する適応力のあるコード。 そのアダプティブコードを実現するためのキーがインターフェイス。 インターフェイスのみに依存することで、実装の変更に…

LINQ で左外部結合

いつも忘れて、その度ネットで調べているので、ブログにメモしておく。 DefaultIfEmpty を使うのがポイント。 using System; using System.Linq; namespace LinqLeftOuterJoinSample { public class Sector { public int Id { get; set; } public string Nam…

『.NET のエンタープライズアプリケーションアーキテクチャ第2版』読んだ

本書の内容は、.NET に限らず Java や他の言語でも適用できそうだ。 ただ、内容を理解するにはドメイン駆動開発や GoF のデザインパターン、 Martin Fowler のエンタープライズアプリケーションアーキテクチャパターン等の知識が必要。 ドメイン駆動開発はま…

ASP.NET MVC で二重サブミットを防止したい

フォームなんかでボタンをうっかりダブルクリックしちゃって二重に投稿されてしまうのを防ぎたい。 クリックしたらボタンを無効にできればなお良し。 単純に JavaScript でボタンクリックされたら無効にするイベントハンドラ書けばいいと思ってたら、クライ…

Visual Studio 2015 の ASP.NET 5 プロジェクトを Windows7 でビルドするには PowerShell 3.0 以上が必要だった

Visual Studio 2015 で ASP.NET 5 プロジェクトをビルドしようとしたら DNX SDK バージョン 'dnx-clr-win-x86.1.0.0-beta5' のインストールに失敗しました。 ソリューションでは、このセッション用に DNX SDK バージョン 'dnx-clr-win-x86-1.0.0-beta5' を使…

Rails の flash みたいに ASP.NET MVC の TempData を使ってみた

Rails の flash と同じことが ASP.NET MVC でもやりたくて、 ミドルウェア自作するしかないかなぁって思っていたんだけど、 TempData で同じことができそうだった。 ただ、TempData を素で使うとキーを typo しそうなので、次のように拡張メソッド使っている…

ASP.NET MVC で WebForms の Chart を使って作成したチャートを PDF に埋め込む

ASP.NET MVC で System.Web.UI.DataVisualization.Charting.Chart を使って、 レーダーチャートをカスタマイズできるところまでは確認できた。 ASP.NET MVC で WebForms の Chart をカスタマイズする - presenttnakamura.hatenablog.com 今度は iTextSharp …

ASP.NET MVC で WebForms の Chart をカスタマイズする

System.Web.UI.DataVisualization.Charting.Chart を使って ASP.NET MVC で レーダーチャートを表示できた。 ASP.NET MVC で WebForms の Chart を使う - presenttnakamura.hatenablog.com 今度はレーダーチャートをカスタマイズしてみる。 カスタマイズ内容…

ASP.NET MVC で WebForms の Chart を使う

System.Web.Helpers.Chart クラスを使うと、 ASP.NET MVC で手っ取り早くチャートを作成できた。 ASP.NET MVC でチャートを表示 - presenttnakamura.hatenablog.com System.Web.Helpers.Chart はなかなか高機能だけど、 カスタマイズしづらい。 XML 形式の文…

LINQ でランキングを作成

LINQ でランキングを作成するサンプルを書いてみた。 using System; using System.Linq; namespace LinqRankingSample { class Student { public string Name { get; set; } public int Score { get; set; } } class Program { static void Main(string[] ar…

Microsoft Azure の Cloud Services のデプロイで嵌った

嵌ったのでメモ。 WCF Service WebRole を含む Cloud Service を、Visual Studio 2013 Update 4 で Microsoft Azure にデプロイしたら、 パッケージを作るところでエラー発生。 Could not load file or assembly ‘Microsoft.WindowsAzure.Packaging, Version…

WCF で呼び出されたサービスのメソッド名とクライアントのIPアドレスを OperationContext から取得するメモ

OperationContext の IncomingMessageHeaders や IncomingMessageProperties から取り出せる。 でもこれくらいはプロパティで用意しておいて欲しいな。 public static class OperationContextExtensions { // 実行中のサービスのオペレーション名を取得 publ…