C#エンジニア養成読本を読んだ
技術評論社から出版されているC#エンジニア養成読本が届いたので読んでみました。
内容
C#プログラミング"超"入門
→Hello, Worldから始まり、オブジエクト志向プログラミングの説明、.NETでよく使うクラスライブラリの解説C#によるクロスプラットフォーム開発
→Xamarinを使用したスマートフォン/タブレットアプリ開発を紹介Sansanを支えるチーム開発
感想
SharePointでカスケードドロップダウンの実装サンプル
先日Twitterでつぶやいた内容ですがブログにもPOSTしておきます。
SharePointで、例えば組織マスタみたいなものがカスタムリストで作られていて、
それを利用した会社名 > 部 > 課みたいなドロップダウンを実装する場合のJavaScriptのサンプルです。
SPServicesでもカスケードドロップダウンできるんだけど、複合主キーのリストに対応してなさそうなので作りました。
Wearに簡単な通知を送ってみる
前回はWearのプロジェクトを作成したので今回は簡単な通知をWearに送ってみたいと思います。
mobileモジュールのMainActivityに適当にボタンを貼り付けて、ボタンのonClickで下記メソッドを呼んでみます。
/** * Wearに通知します。 */ private void notifyToWear() { NotificationCompat.WearableExtender wearableExtender = new NotificationCompat.WearableExtender() .setHintShowBackgroundOnly(true); NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this) .setSmallIcon(R.mipmap.ic_launcher) .setContentTitle("通知タイトル") .setContentText("通知の内容をつらつらと") .setVibrate(new long[] {0, 300}) // 遅延0秒で300ミリ秒間振動する .extend(wearableExtender); NotificationManagerCompat notificationManager = NotificationManagerCompat.from(this); notificationManager.notify(0, notificationBuilder.build()); }
結果はこのようにちゃんと通知が来ました。
※もちろんmobileの方にもちゃんと通知が来ます。
タイトルやテキストに加え、Vibrationも実装してみました。
通知自体はこのように簡単に送れますね!
背景画像やアイコンなどもろもろカスタマイズできそうです。
今回は以上です。
Android StudioでWearアプリのプロジェクトを作ってみる
LG Watch Urbaneを手に入れたこともそうですが最近Wearアプリに興味があります。
最近のAndroid開発はAndroid Studioを使用するのが一般的なようですのでAndroid StudioでWearアプリのプロジェクトを作ってみました。
ウィザードに従ってボタンをポチポチするだけですが画面キャプチャ残しておきたいと思います。
1. まずは Android Studioを起動して「Start a new Android Studio project 」をクリック。
2. 次にApplication nameとCompany Domain、Project locationを入力してNextをクリック。
※今回、アプリ名はHelloWear、Company DomainとProject locationはデフォルトのままとしました。
3. Target Android Devicesで「Phone and Tablet」と 「Wear」を選択してNextをクリック。
※Minimum SDKはAPI 21としました。
4. Add an activity to Mobileでモバイル用のActivityを選択してNextをクリック。
※今回はBlank Activityにしました。
5. Customize the ActivityはそのままNextをクリック。
6. Add an activity to WearでWear用のActivity選択してNextをクリック。
※今回はBlank Wear Activityにしました。
7. Customize the ActivityはそのままでFinishをクリックするとプロジェクトが作成されます。
8. 作成されたプロジェクトを見るとmobileとは別にちゃんとWearのプロジェクトができているのがわかります。
今回は以上です。
築地で豪華なウニ丼を食べてきた!
GW休みも終盤に差し掛かった5月8日金曜日。築地で豪華なウニ丼を食べてきました!
お店はこちら↓tabelog.com
お店は築地市場駅から徒歩5分くらいのところにあります。
AM11時過ぎ頃に訪問したのですが店内は数名お客さんがいる程度で空いていました。
お店の外の通りは観光の外国の方達で賑わっていましたよ(^^)
こちらのお店で頂いたのが「元祖こぼれウニ丼」。
豪華ですね!
すごい迫力です。
青森のムラサキウニと北方四島のバフンウニがWで載っています!
口の中でとろける味わいで最高です(^^)
ちなみに丼とは別に小鉢のウニも付いてました。
こちらは純粋にウニだけを味わうものでしょうか。
とにかくウニ好きにはたまらないです。
他にもいくら丼など数種類のメニューがあるので
海鮮が好きな人はぜひ一度訪問してみてはいかがでしょうか(^^)
以上。
ASP.NET Web APIのattributeルーティングについて
ASP.NET Web API 2から使えるattributeルーティング
ASP.NET Web API 2からattributeルーティングと呼ばれるルーティング設定が可能になりました。
以前から使えるconvention-basedルーティングと比較しながらまとめてみたいと思います。
convention-basedルーティングってどんなの?
まずはWeb APIのリリース当初から使えるconvention-basedルーティングについて。
Visual StudioでWeb APIのテンプレートからプロジェクトを作成するとWebApiConfigのRegisterメソッド内にこんな感じのコードありますよね。これです。
// これがconvention-basedルーティングの設定 config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{id}", defaults: new { id = RouteParameter.Optional } );
じゃあattributeルーティングってどんなの?
対してattributeルーティングでは以下のようにアクションメソッド毎にルーティングの設定を行います。
// これがattributeルーティングの設定 [Route("customers/{customerId}/orders")] public IEnumerable<Order> GetOrdersByCustomer(int customerId) { ... }
比較
2つのルーティング設定のメリット・デメリットを比較するとこんな感じです。
ルーティング | メリット | デメリット |
---|---|---|
convention-based | ルートテンプレートが一箇所で定義可能。ルーティングルールが全てのコントローラーに対して一貫して適用される | 一般的なREST APIのURIパターンをサポートすることが難しい。例えば/customers/1/ordersのようなURIにしようと思った場合に難しい。 |
attribute | 簡単に/customers/1/ordersのようなURIのルーティングを設定できる | 使い方による |
あえてattributeルーティングのデメリットを「使い方による」と書いたのは使い方次第でデメリットとなりうる場合があるからです。
例えば、それほどAPIの種類も多くなくURIのパターンも単純な場合(convention-basedで全てのルーティングが事足りる場合)にわざわざattributeルーティングを使用するとメソッド毎にルーティングの設定が必要なため複雑さが多少増してしまうと思います。それでもAPIの多機能化が将来予見される場合には最初からattributeルーティングベースで作るのもありかと思います。
「ベース」と書いたのは実はこの2つのルーティングは混在させる事が可能だからです。うまく組み合わせるといいと思います。
まとめ
attributeルーティングについて超簡単にまとめてみました。
うまく2つのルーティングを使い分けたいですね。
attributeルーティングは他にもパラメータに制約を設けたりと色々設定できます。
attributeルーティングの書き方について詳しく知りたい方はこちらをご覧ください。
今回は以上です。