SlideShare a Scribd company logo
1 of 55
Download to read offline
Visual Studio 2012 Web 開発
~ One ASP.NET から TypeScript まで ~

日本マイクロソフト株式会社
デベロッパー & プラットフォーム統括本部
エバンジェリスト
井上 章 (いのうえ あきら)
http://aka.ms/chack twitter.com/chack411
セッションのゴール
Session Takeaways


• Visual Studio 2012 の Web 開発新機能 を学ぶ

• Web 開発の最新情報 を知る
アジェンダ
Visual Studio 2012 Web Developments

• Web 技術トレンドと ASP.NET
• マルチデバイス エクスペリエンス
• モダン Web アプリケーションとアーキテクチャの変化
• TypeScript
• サービス連携とクライアント実装
• Web 開発をサポートする Visual Studio 2012
• まとめ ~ Visual Studio 2012 Web 開発の今後 ~
Web 技術トレンドと ASP.NET
Productivity Future Vision
近未来の IT, Cloud, Web ...

• 不可欠な Web 技術         (HTTP 1.1, HTML5, CSS3 ...)

• Web API の進化と普及          (REST, JSON ...)

• サーバー ロジック と クライアント UI の疎結合

• クライアント側実装の多様化
 • HTML5, CSS3, ECMAScript 5

 • マルチデバイス (PC, Tablet, Mobile …)

 • レスポンシブ Web デザイン
アプリ開発のための "Web 技術"
マルチデバイス エクスペリエンスと Web 技術
• HTML5 / CSS3
  • クロス プラットフォームにおける共通 UI マークアップ

• JavaScript
  • 第一級のプログラミング言語としての進化と普及
  • JavaScript ライブラリの普及やサーバー サイドへの応用

• Web API
  • 進む HTTP サービス (REST API) の利用と開発ニーズ

• ネイティブ アプリ開発への応用
  • Windows ストア アプリ開発 (WinRT, WinJS)
  • PhoneGap, Titanium ...
今、ASP.NET に何が起こっているのか?
One ASP.NET
ASP.NET Web Stack




※ One ASP.NET - Making JSON Web APIs with ASP.NET MVC 4 Beta and ASP.NET Web API : www.hanselman.com
http://nuget.org/

• NuGet (ぬげっと / にゅーげっと)
 – オープンソース ライブラリなどのパッケージ管理の
   仕組み(インストール、更新、配布)
 – Visual Studio や WebMatrix などで標準採用
 – NuGet ギャラリーを利用したパッケージの公開が可能
オープン ソース
Git on CodePlex
• 対象ソース コード
  • ASP.NET MVC 4
  • Web API
  • Web Pages (Razor)

• 開発への貢献
  • Apache License 2.0 の元で公開
  • Web または Git にて参照可能
  • フィードバック、バグ修正、
   新機能提案のサブミット

• マイクロソフトのサポート
  • 製品としてサポートは継続               http://aspnetwebstack.codeplex.com/
  • 開発チームによる厳格なレビュー
ASP.NET Web フォーム
Improvements of ASP.NET Web Forms

      豊富なサーバー コントロール
      イベント駆動型プログラミング
• HTML5 対応プロジェクト テンプレート
• NuGet パッケージ マネージャー対応
• URL ルーティング
• モデル バインディング
• 強く型付けされたデータ コントロール
ASP.NET MVC 4
Improvements of ASP.NET MVC 4

          HTML ベースの UI 開発
          Model-View-Controller パターン
• HTML5 対応プロジェクト テンプレート
• モバイル アプリケーション テンプレート
• Display Modes とビューの切り替え
• スクリプトの自動縮小化 & 結合処理
• Task, async, await による非同期アクション
 •   Task-based Asynchronous Pattern (TAP)
マルチデバイス
エクスペリエンス
マルチデバイス エクスペリエンス
Devices, Platforms, Browsers

• クロス デバイス
  • PC, スマートフォン, タブレット ...

• クロス プラットフォーム
  • iOS, Android, Windows ...

• クロス ブラウザー
  • Web 標準と HTML5 / CSS3
  • 実装レベル差異への対応
レスポンシブ Web デザイン
Mobile Web Experience

• CSS3 メディア クエリによるスタイルとレイアウト変更
 • デザイン中心のマルチデバイス対応手法
 • 共通した HTML マークアップによる UI エクスペリエンスの提供
jQuery Mobile
スマートフォン対応 UI ライブラリ

• ASP.NET MVC モバイル アプリケーション テンプレート
モバイル デバイス判別とビューの切り替え
モバイル デバイスへの対応
• ASP.NET MVC 4 Display Modes によるモバイル デバイスの判別
• モバイル向けビュー (*.mobile.*) へ自動切り替え
マルチデバイス対応手法の選択
Design and Mobile Experience

   • レスポンシブ Web
     • デザイン重視
     • デスクトップとスマートフォンで共通した Web サイトの提供

   • jQuery Mobile
     • タッチ操作重視
     • スマートフォンに特化した Web サイトの提供

   • デバイス判別とビューの切り替え
     • デバイス毎に最適化した Web サイトの提供
モダン Web アプリケーションと
      アーキテクチャの変化
モダン Web アプリ エクスペリエンス
Single Page Application Architecture

                                       ASP.NET

                           HTML
       View
                           HTTP
       Async

       View
       Model               REST        Web API
                           JSON
      クライアント                XML        サーバー
Project Silk and Liike
Project Silk     (シルク)

Client-Side Web Development for Modern Browsers
モダン ブラウザのための
クライアント サイド Web 開発ガイダンス
http://silk.codeplex.com/


Project Liike     (リーケ)

Building Modern Mobile Web Apps
モダン モバイル ブラウザのための
クライアント サイド Web 開発ガイダンス
http://msdn.microsoft.com/en-us/library/hh994907
シングル ページ アプリケーション
Single Page Application (SPA)

• 特徴
 • 単一ページ構成のクライアント中心実装
                                     SPA
 • 優れた Web UX とマルチデバイス対応
 • JavaScript, Web API や HTML5 を活用
シングル ページ アプリケーション構成
Single Page Application (SPA)

            /Home/Index
              HTML, CSS                        Web UI
                             /Home/Index     HTML/CSS/JS
             Todo List
                                                MVC 4
             Todo Item


                                            Data Services
                            /api/todolist
              jQuery*.js                       JSON/XML

             knockout.js        /api/todo      Web API
                                            Entity Framework

                クライアント                           サーバー
"JavaScript is the
Assembly Language of the Web"
                    by Scott Hanselman.
JavaScript      (ECMAScript 3)   の課題点など
Problems of JavaScript

• 大規模開発になるほどコードが複雑に

• デバッグ・テスト工数の増加

• プロトタイプベース OO 言語

• 変数スコープのへの理解

• 静的な型指定が不要

• ...
TypeScript
Any browser. Any host. Any OS. Open Source.
TypeScript
Any browser. Any host. Any OS. Open Source.
• JavaScript (ECMAScript 5) のスーパーセットとなる
 新しいプログラミング言語 (現在は 0.8.3 Preview)
 • TypeScript コードは JavaScript コードへコンパイル
 • コンパイラも TypeScript で書かれている (tsc.ts → tsc.js)

• 静的型付け、クラス、モジュールをサポート                             class Point {
                                                       x: number;
  • ECMAScript 6 (草案) をベース                             y: number;
                                                       constructor(x: number, y: number) {
                                                           this.x = x;
• コンパイラー及び開発環境                                         }
                                                           this.y = y;


  • Visual Studio 2012 プラグイン
                                                       dist() {
                                                           return Math.sqrt(
   http://go.Microsoft.com/fwlink/?LinkID=266563                this.x * this.x +
                                                                this.y * this.y );
 • Node.js Package Manager (npm)                       }
                                                       static origin = new Point(0, 0);
 • WebMatrix 2
                                                   }
TypeScript : 2 つの入り口
Official Web Sites

 www.typescriptlang.org   typescript.codeplex.com




     クイック スタート                 ソースコード
       サンプル                    ドキュメント
TypeScript : Playground
ブラウザベースで手軽に体験
動的型付けから静的型付けへ
TypeScript Type System
• 静的型付けシステムの導入
  • JavaScript のあいまいさを排除
  • 安全性・可読性・生産性の向上                         interface I { }
                                           class C { }
  • 型付けするか否かは自由                            module M { }
   • 動的型付けの利点も生かせる                         { s: string; }
                                           number[]
                                           () => bool
• any 型: すべての型の基本
• プリミティブ (基本) 型
 • number, string, bool, null, undefined
• オブジェクト型
 • class, module, interface
• void 型: 戻り値なしの関数で使用
静的型付け記述例                                 (プリミティブ型)
TypeScript Type System Example

// Any                                              // Boolean
var x: any;         // 明示的                          var b: bool;       // 明示的
var y;              // y: any と同じ                   var yes = true;    // yes: bool = true と同じ
var z: { a; b; };   // z: { a: any; b: any; } と同じ   var no = false;    // no: bool = false と同じ

function f(x) {    // f(x: any): void と同じ
    console.log(x);                                 // Number
}                                                   var x: number;     // 明示的
                                                    var y = 0;         // y: number と同じ
                                                    var z = 123.456;   // z: number = 123.456 と同じ
// Null
var n: number = null;   // 基本型は Null 設定可
var x = null;           // x: any = null と同じ        // String
                                                    var s: string;     // 明示的
                                                    var empty = “”;    // empty: string = “” と同じ
// Undefined                                        var abc = ‘abc’;   // abc: string = “abc” と同じ
var n: number;     // n: number = undefined と同じ
var x = undefined; // x: any = undefined と同じ
クラスとモジュール
TypeScript Classes and Modules
• モジュール化の利点                                interface I { }
  • 疎結合化と相互影響の低減、再利用性の向上                   class C { }
                                           module M { }
  • デバッグ、テスト、メンテナンスの容易性                    { s: string; }
  • 大規模開発への対応                              number[]
                                           () => bool
• ECMAScript 6 (草案) ベースの実装
  • Class, Module, Arrow Function 構文
  • オブジェクト指向プログラミングの導入

• ポピュラーなモジュールシステムもサポート                 (External Modules)
  • CommonJS / AMD modules
Interface, Class, Module 記述例
TypeScript Interface, Classes and Modules Example
// Interface                                    // Class
interface Mover {                               class Greeter {
  move(): void;                                   greeting: string;
  getStatus(): { speed: number; };                constructor (message: string) {
}                                                   this.greeting = message;
                                                  }
interface Shaker {                                greet() {
  shake(): void;                                    return "Hello, " + this.greeting;
  getStatus(): { frequency: number; };            }
}                                               }

interface MoverShaker extends Mover, Shaker {   var greeter = new Greeter(“world”);
  getStatus(): { speed: number;                 greeter.greet();
                 frequency: number; };
}
                                                // Module (Internal)
interface Person {                              module Sayings {
  FullName: string;                               export class Greeter {
  Age: number;                                      ...
}                                                 }
function greeter(person: Person) {              }
}                                               var greeter = new Sayings.Greeter("world");
"No one writes JavaScript anymore.
They write jQuery."
型定義ファイル: *.d.ts
Typing for Libraries
• 各種ライブラリの変数, オブジェクト, API の定義ファイル
 • *.d.ts として環境毎に定義される
 • 現在用意されている主な定義ファイル (TypeScript Source Code より)
   • lib.d.ts – ECMAScript APIs, DOM APIs ...
   • jquery.d.ts – jQuery
   • jqueryui.d.ts – jQuery UI
   • winjs.d.ts – WinJS
   • winrt.d.ts – WinRT
   • node.d.ts – node.js

 • 下記、定義ファイル リポジトリ でも多数公開されている
   https://github.com/borisyankov/DefinitelyTyped
 • その他、NuGet ギャラリーからも入手可能
TypeScript で jQuery を使う
Typing for the jQuery
• TypeScript ソースコードなどから jquery.d.ts を入手
 • typings¥jquery.d.ts または samples¥jquery¥jquery.d.ts

• *.ts ファイルに jquery.d.ts 参照を追加
  /// <reference path="jquery.d.ts" />
  ...
• インテリセンス (コード補完) も有効                 (Visual Studio 2012)
TypeScript ロードマップ
Compiler and Language Improvements

• 0.9.x
  • Generics
  • Improve compiler performance
  • Improvements to type system to help model a larger variety of JS
    libraries
  • Align with ECMAScript 6
  • Usability improvements to VS plugin
• 1.x
  • Async/Await, Mixins, Protected access
  • ES6-compatible codegen
サービス連携と
クライアント サイド実装
ASP.NET Web API
New Framework for HTTP Services

      RESTful サービス構築のためのフレームワーク
      MVC 4 プロジェクト テンプレートの一部として提供


                                  • URL ルーティング
                                  • モデル バインディング
                                  • スキャフォールディング
                                   (w/ Entity Framework)
                                  • OData クエリパラメータ
                                   (Microsoft.AspNet.WebApi.Odata)
ASP.NET SignalR
Async library for .NET

        リアルタイム・非同期・双方向通信ライブラリ
        NuGet パッケージとして提供


• クライアント - サーバー間の永続的コネクション

• トランスポートの自動ネゴシエーション
 • WebSocket, Server-Sent Events, Forever Frames, Long Polling

• サーバーからクライアントへのプッシュや RPC 通信

• 1 サーバーあたり数千の接続を非同期で処理
Demo: SignalR ShootR




                   ShootR
     http://signalrshootr.cloudapp.net/
センサー クラウド with ASP.NET
センサー デバイス必須のクラウド コンピューティング時代へ

• クラウド コンピューティング
 • サーバー サイドでの利用からクライアント サイドでの利用へ

• センサーが生み出すデータの活用とクラウド連携
 • GPS 位置情報, ジャイロ, 温度, 湿度 ...
 • クラウド連携による無限の可能性

• 通信インフラの進化と普及
 • 高速ネットワーク
 • 常時オンライン
                                       Productivity Future Vision
                                http://www.microsoft.com/office/vision/
バーチャル WMM w/ Kinect on Cloud
Kinect with ASP.NET SignalR and Windows Azure

             HTTP                                HTTP


                          Cloud Services
                             ASP.NET
                             SignalR
      HTML5 Web                                .NET Console
      Application                               Application
                         Azure Service Bus
                            (or Redis)


                    http://wmm.cloudapp.net/
Web 開発をサポートする
Visual Studio 2012
コーディング支援機能
Improvements of Editors

• インテリセンス・コード スニペットの強化
• HTML5 / CSS3 スキーマ対応
• 開始タグと終了タグの同期リネーム
• CSS カラー ピッカー
• ベンダー プレフィックスとメディア クエリー
• ECMAScript 5 / HTML5 APIs サポート
• アウトライン表示
さらに進化した Web 開発 IDE
Improvements of Web Development

• Page Inspector (ページ インスペクター)
 • HTML, CSS の確認と検査
 • サーバー サイド コード連動
 • ページのプレビュー

• 画像のサムネイル表示
• デバッグ用ブラウザーの
 切り替え機能
Web アプリのデバッグ
Improvements of Debugging Tools

• JavaScript コンソール
 • JavaScript エラーの確認
 • 入力プロンプトによるスクリプト実行
• DOM Explorer
 • 対話形式の HTML, CSS の表示と操作
• IIS Express
 • 開発向けに最適化された軽量 Web サーバー
 • これまでの ASP.NET 開発サーバーに代わり既定で使用される
Web アプリのテスト
Improvements of Testing Tools

• JavaScript の単体テスト
 • Jasmine / QUnit をテスト エクスプローラーに統合可能
 • 拡張機能: Chutzpah※ test adapter for Visual Studio 2012

• Web パフォーマンスとロード テストのプロジェクト
 • 容易なパフォーマンスとストレス テストの実施
 • 同時アクセス ユーザー数や使用ブラウザーなどをシミュレート

  ※ フツパ
Web アプリの発行
Web Publishing Improvements

• 発行時の Web.config の変換とプレビュー機能
 • 変換前と変換後の Web.config を IDE で比較可能に

• 容易になった Windows Azure への発行
 • Windows Azure Web サイト, クラウド サービス
 • SQL データベースへのマイグレーション

• TFS (Team Foundation Service) の利用
 • TFS を利用したプロジェクト管理とソーシャル開発
 • Windows Azure への発行と継続的インテグレーション
Visual Studio 2012 Web 開発の今後
Web アプリ開発のトレンド
これからの Web アプリケーションで考えなければならないこと
• マルチデバイス対応
  • Web アプリか? ネイティブ アプリか?
  • HTTP 通信ペイロード削減

• レスポンシブ Web デザイン
  • デザイン・開発ツールの選択

• モダン Web アプリケーション
 • Single Page Application (SPA) アーキテクチャ
 • AJAX 処理における SEO 対策やブラウザ履歴管理やオフライン実行への対応

• HTTP REST サービス (Web API)
• リアルタイム コミュニケーション
One ASP.NET
ASP.NET Web Stack
© 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a
commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN
THIS PRESENTATION.

More Related Content

What's hot

3D で遊ぼう ~C#er も TypeScript で楽々 WebGL~
3D で遊ぼう ~C#er も TypeScript で楽々 WebGL~3D で遊ぼう ~C#er も TypeScript で楽々 WebGL~
3D で遊ぼう ~C#er も TypeScript で楽々 WebGL~Fujio Kojima
 
Xamarin で ReactiveUI を使ってみた
Xamarin で ReactiveUI を使ってみたXamarin で ReactiveUI を使ってみた
Xamarin で ReactiveUI を使ってみたHironov OKUYAMA
 
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~normalian
 
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話Akira Inoue
 
Unit testing JavaScript with JUnit/JavaFX
Unit testing JavaScript with JUnit/JavaFXUnit testing JavaScript with JUnit/JavaFX
Unit testing JavaScript with JUnit/JavaFXShinya Mochida
 
PHP 2大 web フレームワークの徹底比較!
PHP 2大 web フレームワークの徹底比較!PHP 2大 web フレームワークの徹底比較!
PHP 2大 web フレームワークの徹底比較!Shohei Okada
 
ActionScriptを使わないFlash勉強会 #1(前日版)
ActionScriptを使わないFlash勉強会 #1(前日版)ActionScriptを使わないFlash勉強会 #1(前日版)
ActionScriptを使わないFlash勉強会 #1(前日版)libpanda
 
DoActionからJava VMバイトコードに変換する話
DoActionからJava VMバイトコードに変換する話DoActionからJava VMバイトコードに変換する話
DoActionからJava VMバイトコードに変換する話emorins
 
Orange Cube 自社フレームワーク 2015/3
Orange Cube 自社フレームワーク 2015/3Orange Cube 自社フレームワーク 2015/3
Orange Cube 自社フレームワーク 2015/3信之 岩永
 
JavaScript基礎勉強会
JavaScript基礎勉強会JavaScript基礎勉強会
JavaScript基礎勉強会大樹 小倉
 
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsugSpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsugY Watanabe
 
プロダクトに 1 から Vue.js を導入した話
プロダクトに 1 から Vue.js を導入した話プロダクトに 1 から Vue.js を導入した話
プロダクトに 1 から Vue.js を導入した話Shohei Okada
 

What's hot (20)

3D で遊ぼう ~C#er も TypeScript で楽々 WebGL~
3D で遊ぼう ~C#er も TypeScript で楽々 WebGL~3D で遊ぼう ~C#er も TypeScript で楽々 WebGL~
3D で遊ぼう ~C#er も TypeScript で楽々 WebGL~
 
Xamarin で ReactiveUI を使ってみた
Xamarin で ReactiveUI を使ってみたXamarin で ReactiveUI を使ってみた
Xamarin で ReactiveUI を使ってみた
 
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
 
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
 
Haxe で始める CreateJS
Haxe で始める CreateJSHaxe で始める CreateJS
Haxe で始める CreateJS
 
Unit testing JavaScript with JUnit/JavaFX
Unit testing JavaScript with JUnit/JavaFXUnit testing JavaScript with JUnit/JavaFX
Unit testing JavaScript with JUnit/JavaFX
 
PHP 2大 web フレームワークの徹底比較!
PHP 2大 web フレームワークの徹底比較!PHP 2大 web フレームワークの徹底比較!
PHP 2大 web フレームワークの徹底比較!
 
C# 3.0 以降
C# 3.0 以降C# 3.0 以降
C# 3.0 以降
 
ActionScriptを使わないFlash勉強会 #1(前日版)
ActionScriptを使わないFlash勉強会 #1(前日版)ActionScriptを使わないFlash勉強会 #1(前日版)
ActionScriptを使わないFlash勉強会 #1(前日版)
 
DoActionからJava VMバイトコードに変換する話
DoActionからJava VMバイトコードに変換する話DoActionからJava VMバイトコードに変換する話
DoActionからJava VMバイトコードに変換する話
 
Orange Cube 自社フレームワーク 2015/3
Orange Cube 自社フレームワーク 2015/3Orange Cube 自社フレームワーク 2015/3
Orange Cube 自社フレームワーク 2015/3
 
Deep Dive C# 6.0
Deep Dive C# 6.0Deep Dive C# 6.0
Deep Dive C# 6.0
 
C++勉強会
C++勉強会C++勉強会
C++勉強会
 
JavaScript基礎勉強会
JavaScript基礎勉強会JavaScript基礎勉強会
JavaScript基礎勉強会
 
覚醒!JavaScript
覚醒!JavaScript覚醒!JavaScript
覚醒!JavaScript
 
Ajax 応用
Ajax 応用Ajax 応用
Ajax 応用
 
いまさらJavaScript
いまさらJavaScriptいまさらJavaScript
いまさらJavaScript
 
JavaFX 2.0 への誘い
JavaFX 2.0 への誘いJavaFX 2.0 への誘い
JavaFX 2.0 への誘い
 
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsugSpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
 
プロダクトに 1 から Vue.js を導入した話
プロダクトに 1 から Vue.js を導入した話プロダクトに 1 から Vue.js を導入した話
プロダクトに 1 から Vue.js を導入した話
 

Similar to Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~

TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...Akira Inoue
 
TypeScript と Visual Studio Code
TypeScript と Visual Studio CodeTypeScript と Visual Studio Code
TypeScript と Visual Studio CodeAkira Inoue
 
エンタープライズ分野での実践AngularJS
エンタープライズ分野での実践AngularJSエンタープライズ分野での実践AngularJS
エンタープライズ分野での実践AngularJSAyumi Goto
 
TypeScriptへの入口
TypeScriptへの入口TypeScriptへの入口
TypeScriptへの入口Sunao Tomita
 
How to Make Own Framework built on OWIN
How to Make Own Framework built on OWINHow to Make Own Framework built on OWIN
How to Make Own Framework built on OWINYoshifumi Kawai
 
Visual Studio Codeで始めるTypeScript
Visual Studio Codeで始めるTypeScriptVisual Studio Codeで始めるTypeScript
Visual Studio Codeで始めるTypeScriptAkira Inoue
 
マイクロソフトWeb開発の今と今後
マイクロソフトWeb開発の今と今後マイクロソフトWeb開発の今と今後
マイクロソフトWeb開発の今と今後Akira Inoue
 
復習も兼ねて!C#6.0-7.0
復習も兼ねて!C#6.0-7.0復習も兼ねて!C#6.0-7.0
復習も兼ねて!C#6.0-7.0Yuta Matsumura
 
Visual Studio 2012 で実現する HTML5 & マルチ デバイス時代の Web 開発
Visual Studio 2012 で実現する HTML5 & マルチ デバイス時代の Web 開発Visual Studio 2012 で実現する HTML5 & マルチ デバイス時代の Web 開発
Visual Studio 2012 で実現する HTML5 & マルチ デバイス時代の Web 開発Akira Inoue
 
jQuery と MVC で実践する標準志向 Web 開発
jQuery と MVC で実践する標準志向 Web 開発jQuery と MVC で実践する標準志向 Web 開発
jQuery と MVC で実践する標準志向 Web 開発Akira Inoue
 
大規模なJavaScript開発の話
大規模なJavaScript開発の話大規模なJavaScript開発の話
大規模なJavaScript開発の話terurou
 
ASP.NET MVC と jQuery で実践する標準志向 Web 開発
ASP.NET MVC と jQuery で実践する標準志向 Web 開発ASP.NET MVC と jQuery で実践する標準志向 Web 開発
ASP.NET MVC と jQuery で実践する標準志向 Web 開発Akira Inoue
 
Isomorphic web development with scala and scala.js
Isomorphic web development  with scala and scala.jsIsomorphic web development  with scala and scala.js
Isomorphic web development with scala and scala.jsTanUkkii
 
ちゃんとWeb会議スライド『Coffee script』
ちゃんとWeb会議スライド『Coffee script』ちゃんとWeb会議スライド『Coffee script』
ちゃんとWeb会議スライド『Coffee script』H2O Space. Co., Ltd.
 
ASP.NET 新時代に向けて ~ ASP.NET 5 / Visual Studio 2015 基礎解説
ASP.NET 新時代に向けて ~ ASP.NET 5 / Visual Studio 2015 基礎解説ASP.NET 新時代に向けて ~ ASP.NET 5 / Visual Studio 2015 基礎解説
ASP.NET 新時代に向けて ~ ASP.NET 5 / Visual Studio 2015 基礎解説Akira Inoue
 
Apexコアデベロッパーセミナー(Apexコード)071010
Apexコアデベロッパーセミナー(Apexコード)071010Apexコアデベロッパーセミナー(Apexコード)071010
Apexコアデベロッパーセミナー(Apexコード)071010stomita
 
Mvc conf session_2_shibamura
Mvc conf session_2_shibamuraMvc conf session_2_shibamura
Mvc conf session_2_shibamuraHiroshi Okunushi
 

Similar to Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~ (20)

TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
 
TypeScript と Visual Studio Code
TypeScript と Visual Studio CodeTypeScript と Visual Studio Code
TypeScript と Visual Studio Code
 
エンタープライズ分野での実践AngularJS
エンタープライズ分野での実践AngularJSエンタープライズ分野での実践AngularJS
エンタープライズ分野での実践AngularJS
 
TypeScriptへの入口
TypeScriptへの入口TypeScriptへの入口
TypeScriptへの入口
 
How to Make Own Framework built on OWIN
How to Make Own Framework built on OWINHow to Make Own Framework built on OWIN
How to Make Own Framework built on OWIN
 
Visual Studio Codeで始めるTypeScript
Visual Studio Codeで始めるTypeScriptVisual Studio Codeで始めるTypeScript
Visual Studio Codeで始めるTypeScript
 
Node.jsでブラウザメッセンジャー
Node.jsでブラウザメッセンジャーNode.jsでブラウザメッセンジャー
Node.jsでブラウザメッセンジャー
 
マイクロソフトWeb開発の今と今後
マイクロソフトWeb開発の今と今後マイクロソフトWeb開発の今と今後
マイクロソフトWeb開発の今と今後
 
復習も兼ねて!C#6.0-7.0
復習も兼ねて!C#6.0-7.0復習も兼ねて!C#6.0-7.0
復習も兼ねて!C#6.0-7.0
 
20010901
2001090120010901
20010901
 
Visual Studio 2012 で実現する HTML5 & マルチ デバイス時代の Web 開発
Visual Studio 2012 で実現する HTML5 & マルチ デバイス時代の Web 開発Visual Studio 2012 で実現する HTML5 & マルチ デバイス時代の Web 開発
Visual Studio 2012 で実現する HTML5 & マルチ デバイス時代の Web 開発
 
20050903
2005090320050903
20050903
 
jQuery と MVC で実践する標準志向 Web 開発
jQuery と MVC で実践する標準志向 Web 開発jQuery と MVC で実践する標準志向 Web 開発
jQuery と MVC で実践する標準志向 Web 開発
 
大規模なJavaScript開発の話
大規模なJavaScript開発の話大規模なJavaScript開発の話
大規模なJavaScript開発の話
 
ASP.NET MVC と jQuery で実践する標準志向 Web 開発
ASP.NET MVC と jQuery で実践する標準志向 Web 開発ASP.NET MVC と jQuery で実践する標準志向 Web 開発
ASP.NET MVC と jQuery で実践する標準志向 Web 開発
 
Isomorphic web development with scala and scala.js
Isomorphic web development  with scala and scala.jsIsomorphic web development  with scala and scala.js
Isomorphic web development with scala and scala.js
 
ちゃんとWeb会議スライド『Coffee script』
ちゃんとWeb会議スライド『Coffee script』ちゃんとWeb会議スライド『Coffee script』
ちゃんとWeb会議スライド『Coffee script』
 
ASP.NET 新時代に向けて ~ ASP.NET 5 / Visual Studio 2015 基礎解説
ASP.NET 新時代に向けて ~ ASP.NET 5 / Visual Studio 2015 基礎解説ASP.NET 新時代に向けて ~ ASP.NET 5 / Visual Studio 2015 基礎解説
ASP.NET 新時代に向けて ~ ASP.NET 5 / Visual Studio 2015 基礎解説
 
Apexコアデベロッパーセミナー(Apexコード)071010
Apexコアデベロッパーセミナー(Apexコード)071010Apexコアデベロッパーセミナー(Apexコード)071010
Apexコアデベロッパーセミナー(Apexコード)071010
 
Mvc conf session_2_shibamura
Mvc conf session_2_shibamuraMvc conf session_2_shibamura
Mvc conf session_2_shibamura
 

More from Akira Inoue

New Features in C# 10/11
New Features in C# 10/11New Features in C# 10/11
New Features in C# 10/11Akira Inoue
 
デモで楽しむ Visual Studio 2022 & .NET 6 最新アップデート
デモで楽しむ Visual Studio 2022 & .NET 6 最新アップデートデモで楽しむ Visual Studio 2022 & .NET 6 最新アップデート
デモで楽しむ Visual Studio 2022 & .NET 6 最新アップデートAkira Inoue
 
.NET 6 と Blazor で作るクロスプラットフォームアプリ概要
.NET 6 と Blazor で作るクロスプラットフォームアプリ概要.NET 6 と Blazor で作るクロスプラットフォームアプリ概要
.NET 6 と Blazor で作るクロスプラットフォームアプリ概要Akira Inoue
 
~ Build と言えば やっぱり Developer! ~ Microsoft 開発ツール最新アップデート
~ Build と言えば やっぱり Developer! ~ Microsoft 開発ツール最新アップデート~ Build と言えば やっぱり Developer! ~ Microsoft 開発ツール最新アップデート
~ Build と言えば やっぱり Developer! ~ Microsoft 開発ツール最新アップデートAkira Inoue
 
.NET の過去、現在、そして未来 ~ .NET 最新アップデート
.NET の過去、現在、そして未来 ~ .NET 最新アップデート.NET の過去、現在、そして未来 ~ .NET 最新アップデート
.NET の過去、現在、そして未来 ~ .NET 最新アップデートAkira Inoue
 
Cloud から IoT まで、なんでもおまかせ ~ .NET 5 正式リリース!
Cloud から IoT まで、なんでもおまかせ ~ .NET 5 正式リリース!Cloud から IoT まで、なんでもおまかせ ~ .NET 5 正式リリース!
Cloud から IoT まで、なんでもおまかせ ~ .NET 5 正式リリース!Akira Inoue
 
.NET の過去、現在、そして未来
.NET の過去、現在、そして未来.NET の過去、現在、そして未来
.NET の過去、現在、そして未来Akira Inoue
 
VS Code Live Share ~ 東京と大阪を繋いでみよう!
VS Code Live Share ~ 東京と大阪を繋いでみよう!VS Code Live Share ~ 東京と大阪を繋いでみよう!
VS Code Live Share ~ 東京と大阪を繋いでみよう!Akira Inoue
 
レガシー Web からの脱却 ~ 開発者が次に目指すべき Web アプリの姿とは?
レガシー Web からの脱却 ~ 開発者が次に目指すべき Web アプリの姿とは?レガシー Web からの脱却 ~ 開発者が次に目指すべき Web アプリの姿とは?
レガシー Web からの脱却 ~ 開発者が次に目指すべき Web アプリの姿とは?Akira Inoue
 
.NET の今と今後に思うこと (Tokyo Ver.)
.NET の今と今後に思うこと (Tokyo Ver.).NET の今と今後に思うこと (Tokyo Ver.)
.NET の今と今後に思うこと (Tokyo Ver.)Akira Inoue
 
.NET の今と今後に思うこと
.NET の今と今後に思うこと.NET の今と今後に思うこと
.NET の今と今後に思うことAkira Inoue
 
.NET 最新ロードマップと今押さえておきたい技術要素
.NET 最新ロードマップと今押さえておきたい技術要素.NET 最新ロードマップと今押さえておきたい技術要素
.NET 最新ロードマップと今押さえておきたい技術要素Akira Inoue
 
VS Code & Flaskで作るCloud NativeアプリとDevOps
VS Code & Flaskで作るCloud NativeアプリとDevOpsVS Code & Flaskで作るCloud NativeアプリとDevOps
VS Code & Flaskで作るCloud NativeアプリとDevOpsAkira Inoue
 
.NET Core と Docker コンテナー、そして Azure を使用したマイクロサービスのアーキテクチャ
.NET Core と Docker コンテナー、そして Azure を使用したマイクロサービスのアーキテクチャ.NET Core と Docker コンテナー、そして Azure を使用したマイクロサービスのアーキテクチャ
.NET Core と Docker コンテナー、そして Azure を使用したマイクロサービスのアーキテクチャAkira Inoue
 
本格化するクラウド ネイティブに向けて進化する開発プラットフォームと .NET
本格化するクラウド ネイティブに向けて進化する開発プラットフォームと .NET本格化するクラウド ネイティブに向けて進化する開発プラットフォームと .NET
本格化するクラウド ネイティブに向けて進化する開発プラットフォームと .NETAkira Inoue
 
Visual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイル
Visual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイルVisual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイル
Visual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイルAkira Inoue
 
Visual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイル
Visual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイルVisual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイル
Visual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイルAkira Inoue
 
.NET の今 ~ 最新アップデートと 2019 年の展望
.NET の今 ~ 最新アップデートと 2019 年の展望.NET の今 ~ 最新アップデートと 2019 年の展望
.NET の今 ~ 最新アップデートと 2019 年の展望Akira Inoue
 
.NET today and tomorrow
.NET today and tomorrow.NET today and tomorrow
.NET today and tomorrowAkira Inoue
 
.NET の今とミライ (.NET Conf 2018 Japan Keynote)
.NET の今とミライ (.NET Conf 2018 Japan Keynote).NET の今とミライ (.NET Conf 2018 Japan Keynote)
.NET の今とミライ (.NET Conf 2018 Japan Keynote)Akira Inoue
 

More from Akira Inoue (20)

New Features in C# 10/11
New Features in C# 10/11New Features in C# 10/11
New Features in C# 10/11
 
デモで楽しむ Visual Studio 2022 & .NET 6 最新アップデート
デモで楽しむ Visual Studio 2022 & .NET 6 最新アップデートデモで楽しむ Visual Studio 2022 & .NET 6 最新アップデート
デモで楽しむ Visual Studio 2022 & .NET 6 最新アップデート
 
.NET 6 と Blazor で作るクロスプラットフォームアプリ概要
.NET 6 と Blazor で作るクロスプラットフォームアプリ概要.NET 6 と Blazor で作るクロスプラットフォームアプリ概要
.NET 6 と Blazor で作るクロスプラットフォームアプリ概要
 
~ Build と言えば やっぱり Developer! ~ Microsoft 開発ツール最新アップデート
~ Build と言えば やっぱり Developer! ~ Microsoft 開発ツール最新アップデート~ Build と言えば やっぱり Developer! ~ Microsoft 開発ツール最新アップデート
~ Build と言えば やっぱり Developer! ~ Microsoft 開発ツール最新アップデート
 
.NET の過去、現在、そして未来 ~ .NET 最新アップデート
.NET の過去、現在、そして未来 ~ .NET 最新アップデート.NET の過去、現在、そして未来 ~ .NET 最新アップデート
.NET の過去、現在、そして未来 ~ .NET 最新アップデート
 
Cloud から IoT まで、なんでもおまかせ ~ .NET 5 正式リリース!
Cloud から IoT まで、なんでもおまかせ ~ .NET 5 正式リリース!Cloud から IoT まで、なんでもおまかせ ~ .NET 5 正式リリース!
Cloud から IoT まで、なんでもおまかせ ~ .NET 5 正式リリース!
 
.NET の過去、現在、そして未来
.NET の過去、現在、そして未来.NET の過去、現在、そして未来
.NET の過去、現在、そして未来
 
VS Code Live Share ~ 東京と大阪を繋いでみよう!
VS Code Live Share ~ 東京と大阪を繋いでみよう!VS Code Live Share ~ 東京と大阪を繋いでみよう!
VS Code Live Share ~ 東京と大阪を繋いでみよう!
 
レガシー Web からの脱却 ~ 開発者が次に目指すべき Web アプリの姿とは?
レガシー Web からの脱却 ~ 開発者が次に目指すべき Web アプリの姿とは?レガシー Web からの脱却 ~ 開発者が次に目指すべき Web アプリの姿とは?
レガシー Web からの脱却 ~ 開発者が次に目指すべき Web アプリの姿とは?
 
.NET の今と今後に思うこと (Tokyo Ver.)
.NET の今と今後に思うこと (Tokyo Ver.).NET の今と今後に思うこと (Tokyo Ver.)
.NET の今と今後に思うこと (Tokyo Ver.)
 
.NET の今と今後に思うこと
.NET の今と今後に思うこと.NET の今と今後に思うこと
.NET の今と今後に思うこと
 
.NET 最新ロードマップと今押さえておきたい技術要素
.NET 最新ロードマップと今押さえておきたい技術要素.NET 最新ロードマップと今押さえておきたい技術要素
.NET 最新ロードマップと今押さえておきたい技術要素
 
VS Code & Flaskで作るCloud NativeアプリとDevOps
VS Code & Flaskで作るCloud NativeアプリとDevOpsVS Code & Flaskで作るCloud NativeアプリとDevOps
VS Code & Flaskで作るCloud NativeアプリとDevOps
 
.NET Core と Docker コンテナー、そして Azure を使用したマイクロサービスのアーキテクチャ
.NET Core と Docker コンテナー、そして Azure を使用したマイクロサービスのアーキテクチャ.NET Core と Docker コンテナー、そして Azure を使用したマイクロサービスのアーキテクチャ
.NET Core と Docker コンテナー、そして Azure を使用したマイクロサービスのアーキテクチャ
 
本格化するクラウド ネイティブに向けて進化する開発プラットフォームと .NET
本格化するクラウド ネイティブに向けて進化する開発プラットフォームと .NET本格化するクラウド ネイティブに向けて進化する開発プラットフォームと .NET
本格化するクラウド ネイティブに向けて進化する開発プラットフォームと .NET
 
Visual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイル
Visual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイルVisual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイル
Visual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイル
 
Visual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイル
Visual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイルVisual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイル
Visual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイル
 
.NET の今 ~ 最新アップデートと 2019 年の展望
.NET の今 ~ 最新アップデートと 2019 年の展望.NET の今 ~ 最新アップデートと 2019 年の展望
.NET の今 ~ 最新アップデートと 2019 年の展望
 
.NET today and tomorrow
.NET today and tomorrow.NET today and tomorrow
.NET today and tomorrow
 
.NET の今とミライ (.NET Conf 2018 Japan Keynote)
.NET の今とミライ (.NET Conf 2018 Japan Keynote).NET の今とミライ (.NET Conf 2018 Japan Keynote)
.NET の今とミライ (.NET Conf 2018 Japan Keynote)
 

Recently uploaded

論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 

Recently uploaded (10)

論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 

Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~

  • 1. Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~ 日本マイクロソフト株式会社 デベロッパー & プラットフォーム統括本部 エバンジェリスト 井上 章 (いのうえ あきら) http://aka.ms/chack twitter.com/chack411
  • 2. セッションのゴール Session Takeaways • Visual Studio 2012 の Web 開発新機能 を学ぶ • Web 開発の最新情報 を知る
  • 3. アジェンダ Visual Studio 2012 Web Developments • Web 技術トレンドと ASP.NET • マルチデバイス エクスペリエンス • モダン Web アプリケーションとアーキテクチャの変化 • TypeScript • サービス連携とクライアント実装 • Web 開発をサポートする Visual Studio 2012 • まとめ ~ Visual Studio 2012 Web 開発の今後 ~
  • 5. Productivity Future Vision 近未来の IT, Cloud, Web ... • 不可欠な Web 技術 (HTTP 1.1, HTML5, CSS3 ...) • Web API の進化と普及 (REST, JSON ...) • サーバー ロジック と クライアント UI の疎結合 • クライアント側実装の多様化 • HTML5, CSS3, ECMAScript 5 • マルチデバイス (PC, Tablet, Mobile …) • レスポンシブ Web デザイン
  • 6. アプリ開発のための "Web 技術" マルチデバイス エクスペリエンスと Web 技術 • HTML5 / CSS3 • クロス プラットフォームにおける共通 UI マークアップ • JavaScript • 第一級のプログラミング言語としての進化と普及 • JavaScript ライブラリの普及やサーバー サイドへの応用 • Web API • 進む HTTP サービス (REST API) の利用と開発ニーズ • ネイティブ アプリ開発への応用 • Windows ストア アプリ開発 (WinRT, WinJS) • PhoneGap, Titanium ...
  • 8. One ASP.NET ASP.NET Web Stack ※ One ASP.NET - Making JSON Web APIs with ASP.NET MVC 4 Beta and ASP.NET Web API : www.hanselman.com
  • 9. http://nuget.org/ • NuGet (ぬげっと / にゅーげっと) – オープンソース ライブラリなどのパッケージ管理の 仕組み(インストール、更新、配布) – Visual Studio や WebMatrix などで標準採用 – NuGet ギャラリーを利用したパッケージの公開が可能
  • 10. オープン ソース Git on CodePlex • 対象ソース コード • ASP.NET MVC 4 • Web API • Web Pages (Razor) • 開発への貢献 • Apache License 2.0 の元で公開 • Web または Git にて参照可能 • フィードバック、バグ修正、 新機能提案のサブミット • マイクロソフトのサポート • 製品としてサポートは継続 http://aspnetwebstack.codeplex.com/ • 開発チームによる厳格なレビュー
  • 11. ASP.NET Web フォーム Improvements of ASP.NET Web Forms 豊富なサーバー コントロール イベント駆動型プログラミング • HTML5 対応プロジェクト テンプレート • NuGet パッケージ マネージャー対応 • URL ルーティング • モデル バインディング • 強く型付けされたデータ コントロール
  • 12. ASP.NET MVC 4 Improvements of ASP.NET MVC 4 HTML ベースの UI 開発 Model-View-Controller パターン • HTML5 対応プロジェクト テンプレート • モバイル アプリケーション テンプレート • Display Modes とビューの切り替え • スクリプトの自動縮小化 & 結合処理 • Task, async, await による非同期アクション • Task-based Asynchronous Pattern (TAP)
  • 14. マルチデバイス エクスペリエンス Devices, Platforms, Browsers • クロス デバイス • PC, スマートフォン, タブレット ... • クロス プラットフォーム • iOS, Android, Windows ... • クロス ブラウザー • Web 標準と HTML5 / CSS3 • 実装レベル差異への対応
  • 15. レスポンシブ Web デザイン Mobile Web Experience • CSS3 メディア クエリによるスタイルとレイアウト変更 • デザイン中心のマルチデバイス対応手法 • 共通した HTML マークアップによる UI エクスペリエンスの提供
  • 16. jQuery Mobile スマートフォン対応 UI ライブラリ • ASP.NET MVC モバイル アプリケーション テンプレート
  • 17. モバイル デバイス判別とビューの切り替え モバイル デバイスへの対応 • ASP.NET MVC 4 Display Modes によるモバイル デバイスの判別 • モバイル向けビュー (*.mobile.*) へ自動切り替え
  • 18. マルチデバイス対応手法の選択 Design and Mobile Experience • レスポンシブ Web • デザイン重視 • デスクトップとスマートフォンで共通した Web サイトの提供 • jQuery Mobile • タッチ操作重視 • スマートフォンに特化した Web サイトの提供 • デバイス判別とビューの切り替え • デバイス毎に最適化した Web サイトの提供
  • 19. モダン Web アプリケーションと アーキテクチャの変化
  • 20. モダン Web アプリ エクスペリエンス Single Page Application Architecture ASP.NET HTML View HTTP Async View Model REST Web API JSON クライアント XML サーバー
  • 21. Project Silk and Liike Project Silk (シルク) Client-Side Web Development for Modern Browsers モダン ブラウザのための クライアント サイド Web 開発ガイダンス http://silk.codeplex.com/ Project Liike (リーケ) Building Modern Mobile Web Apps モダン モバイル ブラウザのための クライアント サイド Web 開発ガイダンス http://msdn.microsoft.com/en-us/library/hh994907
  • 22. シングル ページ アプリケーション Single Page Application (SPA) • 特徴 • 単一ページ構成のクライアント中心実装 SPA • 優れた Web UX とマルチデバイス対応 • JavaScript, Web API や HTML5 を活用
  • 23. シングル ページ アプリケーション構成 Single Page Application (SPA) /Home/Index HTML, CSS Web UI /Home/Index HTML/CSS/JS Todo List MVC 4 Todo Item Data Services /api/todolist jQuery*.js JSON/XML knockout.js /api/todo Web API Entity Framework クライアント サーバー
  • 24. "JavaScript is the Assembly Language of the Web" by Scott Hanselman.
  • 25. JavaScript (ECMAScript 3) の課題点など Problems of JavaScript • 大規模開発になるほどコードが複雑に • デバッグ・テスト工数の増加 • プロトタイプベース OO 言語 • 変数スコープのへの理解 • 静的な型指定が不要 • ...
  • 26. TypeScript Any browser. Any host. Any OS. Open Source.
  • 27. TypeScript Any browser. Any host. Any OS. Open Source. • JavaScript (ECMAScript 5) のスーパーセットとなる 新しいプログラミング言語 (現在は 0.8.3 Preview) • TypeScript コードは JavaScript コードへコンパイル • コンパイラも TypeScript で書かれている (tsc.ts → tsc.js) • 静的型付け、クラス、モジュールをサポート class Point { x: number; • ECMAScript 6 (草案) をベース y: number; constructor(x: number, y: number) { this.x = x; • コンパイラー及び開発環境 } this.y = y; • Visual Studio 2012 プラグイン dist() { return Math.sqrt( http://go.Microsoft.com/fwlink/?LinkID=266563 this.x * this.x + this.y * this.y ); • Node.js Package Manager (npm) } static origin = new Point(0, 0); • WebMatrix 2 }
  • 28. TypeScript : 2 つの入り口 Official Web Sites www.typescriptlang.org typescript.codeplex.com クイック スタート ソースコード サンプル ドキュメント
  • 30. 動的型付けから静的型付けへ TypeScript Type System • 静的型付けシステムの導入 • JavaScript のあいまいさを排除 • 安全性・可読性・生産性の向上 interface I { } class C { } • 型付けするか否かは自由 module M { } • 動的型付けの利点も生かせる { s: string; } number[] () => bool • any 型: すべての型の基本 • プリミティブ (基本) 型 • number, string, bool, null, undefined • オブジェクト型 • class, module, interface • void 型: 戻り値なしの関数で使用
  • 31. 静的型付け記述例 (プリミティブ型) TypeScript Type System Example // Any // Boolean var x: any; // 明示的 var b: bool; // 明示的 var y; // y: any と同じ var yes = true; // yes: bool = true と同じ var z: { a; b; }; // z: { a: any; b: any; } と同じ var no = false; // no: bool = false と同じ function f(x) { // f(x: any): void と同じ console.log(x); // Number } var x: number; // 明示的 var y = 0; // y: number と同じ var z = 123.456; // z: number = 123.456 と同じ // Null var n: number = null; // 基本型は Null 設定可 var x = null; // x: any = null と同じ // String var s: string; // 明示的 var empty = “”; // empty: string = “” と同じ // Undefined var abc = ‘abc’; // abc: string = “abc” と同じ var n: number; // n: number = undefined と同じ var x = undefined; // x: any = undefined と同じ
  • 32. クラスとモジュール TypeScript Classes and Modules • モジュール化の利点 interface I { } • 疎結合化と相互影響の低減、再利用性の向上 class C { } module M { } • デバッグ、テスト、メンテナンスの容易性 { s: string; } • 大規模開発への対応 number[] () => bool • ECMAScript 6 (草案) ベースの実装 • Class, Module, Arrow Function 構文 • オブジェクト指向プログラミングの導入 • ポピュラーなモジュールシステムもサポート (External Modules) • CommonJS / AMD modules
  • 33. Interface, Class, Module 記述例 TypeScript Interface, Classes and Modules Example // Interface // Class interface Mover { class Greeter { move(): void; greeting: string; getStatus(): { speed: number; }; constructor (message: string) { } this.greeting = message; } interface Shaker { greet() { shake(): void; return "Hello, " + this.greeting; getStatus(): { frequency: number; }; } } } interface MoverShaker extends Mover, Shaker { var greeter = new Greeter(“world”); getStatus(): { speed: number; greeter.greet(); frequency: number; }; } // Module (Internal) interface Person { module Sayings { FullName: string; export class Greeter { Age: number; ... } } function greeter(person: Person) { } } var greeter = new Sayings.Greeter("world");
  • 34. "No one writes JavaScript anymore. They write jQuery."
  • 35. 型定義ファイル: *.d.ts Typing for Libraries • 各種ライブラリの変数, オブジェクト, API の定義ファイル • *.d.ts として環境毎に定義される • 現在用意されている主な定義ファイル (TypeScript Source Code より) • lib.d.ts – ECMAScript APIs, DOM APIs ... • jquery.d.ts – jQuery • jqueryui.d.ts – jQuery UI • winjs.d.ts – WinJS • winrt.d.ts – WinRT • node.d.ts – node.js • 下記、定義ファイル リポジトリ でも多数公開されている https://github.com/borisyankov/DefinitelyTyped • その他、NuGet ギャラリーからも入手可能
  • 36. TypeScript で jQuery を使う Typing for the jQuery • TypeScript ソースコードなどから jquery.d.ts を入手 • typings¥jquery.d.ts または samples¥jquery¥jquery.d.ts • *.ts ファイルに jquery.d.ts 参照を追加 /// <reference path="jquery.d.ts" /> ... • インテリセンス (コード補完) も有効 (Visual Studio 2012)
  • 37. TypeScript ロードマップ Compiler and Language Improvements • 0.9.x • Generics • Improve compiler performance • Improvements to type system to help model a larger variety of JS libraries • Align with ECMAScript 6 • Usability improvements to VS plugin • 1.x • Async/Await, Mixins, Protected access • ES6-compatible codegen
  • 39. ASP.NET Web API New Framework for HTTP Services RESTful サービス構築のためのフレームワーク MVC 4 プロジェクト テンプレートの一部として提供 • URL ルーティング • モデル バインディング • スキャフォールディング (w/ Entity Framework) • OData クエリパラメータ (Microsoft.AspNet.WebApi.Odata)
  • 40. ASP.NET SignalR Async library for .NET リアルタイム・非同期・双方向通信ライブラリ NuGet パッケージとして提供 • クライアント - サーバー間の永続的コネクション • トランスポートの自動ネゴシエーション • WebSocket, Server-Sent Events, Forever Frames, Long Polling • サーバーからクライアントへのプッシュや RPC 通信 • 1 サーバーあたり数千の接続を非同期で処理
  • 41. Demo: SignalR ShootR ShootR http://signalrshootr.cloudapp.net/
  • 42. センサー クラウド with ASP.NET センサー デバイス必須のクラウド コンピューティング時代へ • クラウド コンピューティング • サーバー サイドでの利用からクライアント サイドでの利用へ • センサーが生み出すデータの活用とクラウド連携 • GPS 位置情報, ジャイロ, 温度, 湿度 ... • クラウド連携による無限の可能性 • 通信インフラの進化と普及 • 高速ネットワーク • 常時オンライン Productivity Future Vision http://www.microsoft.com/office/vision/
  • 43. バーチャル WMM w/ Kinect on Cloud Kinect with ASP.NET SignalR and Windows Azure HTTP HTTP Cloud Services ASP.NET SignalR HTML5 Web .NET Console Application Application Azure Service Bus (or Redis) http://wmm.cloudapp.net/
  • 45. コーディング支援機能 Improvements of Editors • インテリセンス・コード スニペットの強化 • HTML5 / CSS3 スキーマ対応 • 開始タグと終了タグの同期リネーム • CSS カラー ピッカー • ベンダー プレフィックスとメディア クエリー • ECMAScript 5 / HTML5 APIs サポート • アウトライン表示
  • 46. さらに進化した Web 開発 IDE Improvements of Web Development • Page Inspector (ページ インスペクター) • HTML, CSS の確認と検査 • サーバー サイド コード連動 • ページのプレビュー • 画像のサムネイル表示 • デバッグ用ブラウザーの 切り替え機能
  • 47. Web アプリのデバッグ Improvements of Debugging Tools • JavaScript コンソール • JavaScript エラーの確認 • 入力プロンプトによるスクリプト実行 • DOM Explorer • 対話形式の HTML, CSS の表示と操作 • IIS Express • 開発向けに最適化された軽量 Web サーバー • これまでの ASP.NET 開発サーバーに代わり既定で使用される
  • 48. Web アプリのテスト Improvements of Testing Tools • JavaScript の単体テスト • Jasmine / QUnit をテスト エクスプローラーに統合可能 • 拡張機能: Chutzpah※ test adapter for Visual Studio 2012 • Web パフォーマンスとロード テストのプロジェクト • 容易なパフォーマンスとストレス テストの実施 • 同時アクセス ユーザー数や使用ブラウザーなどをシミュレート ※ フツパ
  • 49. Web アプリの発行 Web Publishing Improvements • 発行時の Web.config の変換とプレビュー機能 • 変換前と変換後の Web.config を IDE で比較可能に • 容易になった Windows Azure への発行 • Windows Azure Web サイト, クラウド サービス • SQL データベースへのマイグレーション • TFS (Team Foundation Service) の利用 • TFS を利用したプロジェクト管理とソーシャル開発 • Windows Azure への発行と継続的インテグレーション
  • 50. Visual Studio 2012 Web 開発の今後
  • 51. Web アプリ開発のトレンド これからの Web アプリケーションで考えなければならないこと • マルチデバイス対応 • Web アプリか? ネイティブ アプリか? • HTTP 通信ペイロード削減 • レスポンシブ Web デザイン • デザイン・開発ツールの選択 • モダン Web アプリケーション • Single Page Application (SPA) アーキテクチャ • AJAX 処理における SEO 対策やブラウザ履歴管理やオフライン実行への対応 • HTTP REST サービス (Web API) • リアルタイム コミュニケーション
  • 53.
  • 54.
  • 55. © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.