Comm Tech Festivalに参加しました

comuplus.doorkeeper.jp

日本MSさんのセミナールームを4つ使って並行してセッションが開かれる形式でした。
他にも聞きたいセッションがあったけど、僕は主にASP.NET、Azure関係のお話を聞きに行きました。

聞いたセッション

  • [ルームA] わかばさん向けAzure
  • [ルームA] ASP.NETサイトの運用
  • [ルームD] open FSharp
  • [ルームA] Microsoft Edge New Features - Web制作者はEdgeブラウザ対応が必要なのか?
  • [ルームC] Introduction to Application Architecture on ASP.NET MVC (仮)

感想、得られた知見、メモ等

わかばさん向けAzure

Azureの概要、変遷、現在のお話

仕事では利用する機会がまだないのだけれど、個人的にお金がかからない範囲でなんとなく利用していて、わからないキーワードの意味が知ることが出来てよかった また、リージョン別に利用出来るサービスが違うってのは知らなかった。
Azure Cloud Services (場所または地域別) | Microsoft Azure

ASP.NETサイトの運用

「既存のASP.NETサイトをお手軽に速くする 編」というテーマ。
パフォーマンス改善方法は色々ありますが、今回はCDNを利用してオフロードしようという紹介でした。

CDNの方式

  • プル型
    • CDNにアクセスされた際キャッシュしていなければ、originサーバーにコンテンツを取りに来てキャッシュしてくれる
      • 事前に準備不要で、お手軽に導入出来る
      • コンテンツを更新した場合、キャッシュ反映までに時間がかかる場合がある
      • こちらの方式が現在の主流?
  • プッシュ型
    • originサーバーにコンテンツをCDNに自分でアップロードする
      • アップロードする手間がかかる
      • コンテンツを更新した場合、任意のタイミングでキャッシュ更新出来る

オフロード方式

  • 部分オフロード
    • image,javascript,css等の特定のコンテンツのみキャッシュしてオフロードする方法
  • サイトオフロード
    • HTML自体もキャッシュしてオフロードする方法
    • POSTしてデータの書き込みするページは向いていない

デモ

  • ASP.NETの場合、URLの変更をソースコード変更無しに利用出来る
  • URL Rewriteの機能を利用してCDN利用が可能
  • URL Rewriteではリクエストに対してのルーティング機能があるのは知っていたが、レスポンス情報の内容も書き換え可能らしい
  • Web.config書き換えでいける

デモでは、C#でお馴染みの++C++; // 未確認飛行 Cの本番サイトで導入してみようという大胆なものでした(笑)
事前に用意されていたのであろうWeb.config設定をコメントから有効化して、動かしてみるもRuntimeErrorになるというハプニング?もありました。

思い出す限りだと以下の内容を試されていました。

  • Httpレスポンスヘッダーの書き換え(キャッシュ有効期限設定、MaxAgeだったかな?)
  • image,css,scriptのURL書き換え(CDNのURLに変更)

詳しい話はブログ見てと言われていましたが、「お楽しみはこれからだ!: URLRewriteでほとんどすべてCDNに向ける」かな?

その他

wget64.exe?
サイトをクロールしてサイト全体をダウンロード出来る
ダウンロード容量上限も指定可能らしい

open FSharp

F#の名前は知りつつも、どんなものか知らなかったので聞きに行きました。
が、あまり理解できませんでした。すみません。。。

内容的には、VisualStudioでのF#用ツールの説明と、F#の構文のお話でした。

Microsoft Edge New Features - Web制作者はEdgeブラウザ対応が必要なのか?

ペースが早くてあまりメモれなかった。。

Edgeが出来るまでの経緯、事情の話しがあって、とても面白かったです。
* 特にIE、Edgeのバージョン毎のUseAgentとか
* IEのアンケートの結果、「IEをも作るな!」が一位になったとか

また、pixivではWindowsXPWindowsXPMacbookで開発するのは老害のらしいですw
今の若者は、Surfaceで外部モニタ使って開発するらしい

タイトルの結論

タイトルの結論としては、特に対応する必要はないらしい 。
というのも今のWebのディファクトスタンダードがWebkitで、EdgeもWebkitの動作に合わせるよっていう話だった。

機能アップデートがある場合に内部バージョンが上がるため、開発者的にはあまり困らないのでは?ということでした。
ECMASCript6もFirefoxよりも対応が進んでいるようです。

ただしブラウザのガワがまだよろしくないようで、かなりdisられていましたが、今後に期待ですね。

Introduction to Application Architecture on ASP.NET MVC (仮)

一番仕事に直結しそうな内容でした。
ソフトウェアアーキテクチャとは?のお話と、Introductionということで、ASP.NET MVCを利用する場合の標準機能によるアーキテクチャ検討のお話でした。
以下、メモ(ちょっとあやふや。。)

UIデータバインド

  • サーバサイドレンダリング
    • Razor、モデルバインディング
    • サーバーサイドでしか出来ないこと
      • 認証・認可
      • ブラウザの言語判定
  • クライアントデータバインド
    • 必要な所のみ更新をかけるため、効率的にサーバーリソースを利用出来る
    • レンダリング遅延の問題がある

バリデーション

  • クライアント
  • サーバー
    • ModesState

例外処理

例外は原則として集約的に補足して処理する

  • WebAPIの例外処理
    • GlobalErrorHandling
    • パイプラインで発生したすべての例外を補足
    • 以下のインターフェースを継承
      • IExceptionLogger
      • IExceptionHandler
  • それ以外の例外処理
    • Global.asaxのAplication_Errorイベントハンドラ
      • キャッチした後、握りつぶさない
      • キャッチしたあと必ず再スローする
      • 再スローはthrowだけ書く
      • throw eはそれまでのスタックトレースがなくなってしまうため

認証・認可

  • Windows認証

    • web.configのsystem.web/authenticationのmode="window"
  • CookieAuthentication

  • OWIN Authentication

    • Form認証
    • Oauth2.0(OpenID)認証
  • Organization Authentication

    • AD認証

データアクセス

  • EntityFramework
    • EF7はEDMXは無くなる
      • DBファーストできなくなるのでCodeファーストに切り替えましょうとのこと
  • DataSetは○ね

じゃんけん大会

セッション終了後に、C#の書籍プレゼントのじゃんけん大会がありました。
運良くじゃんけんに勝って西村誠さんの「Amazon.co.jp: 基礎からわかる C#: 西村 誠: 本」を頂きました。
著者のサインも頂きました。ありがとうございます。

最後に

こういったセミナーに参加するといつも思いますが、登壇されている方と自分のスキルの差を見せつけられるので、すごいなーと思いつつも、帰りに自分のスキルの無さを痛感して落ち込みます。。
とはいえ、その差を埋めようと頑張れるので、参加してよかったと思います。