2014-06-01から1ヶ月間の記事一覧
C# vNextの個人的なNo1は、自動プロパティの初期化+プライマリーコンストラクタなのですが、null伝搬演算子も慣れないとキモくて好きです。 class Person { public string Name { get; set; } } ---------------------------- var p = new Person(); var re…
コンストラクタが長くなることで定評のある?ReactivePropertyですが、C# vNextでプロパティ初期化のところに書けば綺麗に書けるんじゃないか!?という淡い期待を持ってる人は少なからずいると思います。 残念ながら・・・ class Person { public ReactiveP…
P/Invokeもいいですが、C++/CLI経由も個人的に好きです。例えばアクティブなWindowのタイトルを取りたいときとか…。 C++/CLIでこんなクラスを用意しておく。 // CPPCLR.h #pragma once #include "Stdafx.h" #include <Windows.h> #include <tchar.h> using namespace System; nam</tchar.h></windows.h>…
Leap MotionとRxって相性いいですね。ということで、Leapの指先の情報を画面に表示するサンプル作ったので置いておきます。 LeapMotionで指の先を画面に表示する in C# for Visual Studio 2013
オワタ。 というのでは何なので、1つだけ残された拡張の道を歩んでみようと思います。最近まで存在を知らなかったCustomResourceというマークアップ拡張があります。こいつは、デフォルトでは動作しないかわりに、自分で独自の実装を差し込むことが出来るよ…
Windows 8.0のころとそんなに変わりありませんでした。 デスクトップ アプリからのWinRT API利用 | ++C++; // 未確認飛行 C ブログ 8.0の頃はプロジェクトファイルに8.0と書いてたけど8.1にします。プロジェクトをアンロードして下記の内容を最初のPropertyG…
DataTemplateに対応したコントロールの作り方ということで、こちらのサイトを写経させていただきました。 DarksideCookie | Using DataTemplates in custom controls カスタムコントロールの作成 カスタムコントロールを新規作成して、Generic.xamlに適当にS…
WPFのXAMLではTypeConverterを自作して文字列から、オブジェクトを作るようなことが簡単にできるようになっています。ということで簡単に試してみました。XAMLからオブジェクトへの変換にはTypeConverterクラスのConvertFromメソッドとCanConvertFromメソッ…
上から順に、単純なデシリアライズ。ローカルアセンブリを指定したデシリアライズ。文字列へのシリアライズ。文字列以外のストリームやテキストライターへのシリアライズです。 using System; using System.IO; using System.Reflection; using System.Xaml;…
超簡単なやつ。入力があったら1秒後に別プロパティに全部大文字にして出すやつです。 open Codeplex.Reactive open System open System.Reactive.Linq type MainWindowViewModel() = // 入力用 let input = new ReactiveProperty<string>() // 出力用 let output = /</string>…
非同期ワークフローの中でTaskってどうやって使うんだろう?と思ってたらAsyncクラスにAwaitaTaskっていうずばりっぽいメソッドがありました。こいつを使えば非同期ワークフローの中でlet!で結果を受け取ることができる。HttpClientを使ってGoogleトップペー…
F#でINotifyPropertyChangedを実装するとどうなるかな~というので実装してみた。 open Microsoft.FSharp.Quotations open Microsoft.FSharp.Quotations.Patterns open Microsoft.FSharp.Quotations.DerivedPatterns type BindableBase() = let propertyChng…
F#にCLIMutableなる属性が追加さられたみたいです。こいつをつけるとデフォルトコンストラクタとか、プロパティに自動的にgetter/setterつけてくれてDTO作ったりEFで便利かもね!みたいな説明が書いてあるような気がしました。 namespace Hoge open System; …
結構めんどくさい。とりあえず動いたのでメモ。 ng.resource.IResourceを継承したものを作る プロパティを生やす IResourceServiceからIResourceClassを作る IResourceClassのgetの戻り値を自作のIResourceを継承したものにキャスト あとは好きにする /// <reference path="scripts/typings/angularjs/angular.d.ts" /> /</reference>…
カオスな感じですが、AngularJSを使ってForm認証を行うサンプルを作成しました。ちょっと自信がないので、突っ込み歓迎です…。 TypeScript + AngularJSでASP.NETのForm認証を行う in C#, JavaScript for Visual Studio 2013 基本的にはASP.NET Identityでユ…
ただのメモです。 AngularJS使っててエラーがでたら以下の点を確認すること。 必要なモジュールは読み込まれているか angujar.module("hoge", [ここを確認]) 必要なjsファイルは、ちゃんとページに読み込まれているか typoしてないか $routeProviderを$rootP…
ルート定義のwhenメソッドの第二引数のresolveでは、コントローラに注入したいデータを取得する処理を定義することが出来ます。 /// <reference path="scripts/typings/angularjs/angular.d.ts" /> /// <reference path="scripts/typings/angularjs/angular-route.d.ts" /> module TypeScriptAngularJSApp2 { angular.module("MyApp", ["ngRoute"]) // コントローラの定義。value1とvalue2を</reference></reference>…
サービスのインスタンスは1つ。ということは、同じサービスをページ間で共有すればデータを渡すことが出来るということです。ということでやってみました。 /// <reference path="scripts/typings/angularjs/angular.d.ts" /> /// <reference path="scripts/typings/angularjs/angular-route.d.ts" /> module TypeScriptAngularJSApp2 { // データ共有用のサービス class SampleService { ke</reference></reference>…
とりあえずパラメータを使うのが一番楽そうです。パラメータはng.ILocationServiceのsearchメソッドにオブジェクトを渡してやるといい感じに面倒を見てくれます。 前回の処理に、ページ間のデータ渡しをコントローラに追加したコードは以下のような感じにな…
ng.ILocationServiceを使います。 ルートの定義 $locationでng.ILocationServiceをコントローラにインジェクションできるので、そいつのpathメソッドにURLを指定することで画面遷移が出来ます。 /// <reference path="scripts/typings/angularjs/angular.d.ts" /> /// <reference path="scripts/typings/angularjs/angular-route.d.ts" /> module TypeScriptAngularJSApp2 { // Page1用のス</reference></reference>…
AngularJSのかなり強力なディレクティブという機能のハローワールドしてみました。こいつAngularJSでDOM操作する処理をカプセル化する素敵なやつです。とりあえず、JavaScriptではなくてTypeScriptでは、どういう風にかくのかというのをつかむために、Hello …