SlideShare a Scribd company logo
DEV-010_エンプラ系業務 Web アプリ開発に効く! 実践的 SPA 型モダン Web アプリ開発の選択手法
ROOM
B
本セッションはかなりヘビーです!
最終セッションですが、頑張りましょう!





• 必要に応じてサーバと連携するが...
• ページ全体がリロードされることはない
DEV-010_エンプラ系業務 Web アプリ開発に効く! 実践的 SPA 型モダン Web アプリ開発の選択手法
DEV-010_エンプラ系業務 Web アプリ開発に効く! 実践的 SPA 型モダン Web アプリ開発の選択手法
Web ブラウザ Web サーバ DB サーバ
コントローラ
ビュー
EF
DACUI
※ 細かいコードは理解しなくて OK です
(本日のサンプルコードは後日配布します)
[Table("authors")]
public class Author {
[Column("au_id"), Required, MaxLength(11), Key]
public string AuthorId { get; set; }
[Column("au_fname"), Required, MaxLength(20)]
public string AuthorFirstName { get; set; }
[Column("au_lname"), Required, MaxLength(40)]
public string AuthorLastName { get; set; }
...
}
public class PubsEntities : DbContext {
protected override void OnConfiguring(DbContextOptionsBuilder options) {
options.UseSqlServer("...(接続文字列)...");
}
public DbSet<Author> Authors { get; set; }
...
}
DAC
EF
public class Sample01Controller : Controller
{
[HttpGet]
public ActionResult ShowAllAuthors()
{
using (PubsEntities pubs = new PubsEntities())
{
ViewData["Authors"] = pubs.Authors.ToList();
}
return View();
}
}
コントローラ
UI
<table class="...">
<thead>...</thead>
<tbody>
@foreach (Author a in (ViewData["Authors"] as List<Author>))
{
<tr>
<td>@a.AuthorId</td>
<td>@a.AuthorFirstName @a.AuthorLastName</td>
<td>@a.Phone</td>
<td>@a.State</td>
...
</tr>
}
</tbody>
</table>
ビュー
UI
サーバで
描画処理
Web サーバ DB サーバ
Web API EF
DACSI
JavaScriptHTML
Web ブラウザ
※ 細かいコードは理解しなくて OK です
(本日のサンプルコードは後日配布します)
UI
[Table("authors")]
public class Author {
[Column("au_id"), Required, MaxLength(11), Key]
public string AuthorId { get; set; }
[Column("au_fname"), Required, MaxLength(20)]
public string AuthorFirstName { get; set; }
[Column("au_lname"), Required, MaxLength(40)]
public string AuthorLastName { get; set; }
...
}
public class PubsEntities : DbContext {
protected override void OnConfiguring(DbContextOptionsBuilder options) {
options.UseSqlServer("...(接続文字列)...");
}
public DbSet<Author> Authors { get; set; }
...
}
DAC
EF
public class Sample02Controller : Controller
{
[HttpGet]
public List<Author> GetAllAuthors()
{
using (PubsEntities pubs = new PubsEntities())
{
return pubs.Authors.ToList();
}
}
}
Web API
SI
サーバは
データ返信のみ
<script type="text/javascript">
$(function () {
var viewModel = {
Authors: ko.observableArray()
};
ko.applyBindings(viewModel);
$.getJSON("/Sample02/GetAllAuthors",
null,
function (result) {
viewModel.Authors(result);
});
});
</script>
サーバから
データ取得
UI
JavaScript
<table id="tblAuthors" class="table ...">
<thead> ... </thead>
<tbody data-bind="foreach: Authors">
<tr>
<td data-bind="text: AuthorId"></td>
<td data-bind="text: AuthorFirstName + ' ' + AuthorLastName"></td>
<td data-bind="text: Phone"></td>
<td data-bind="text: State"></td>
...
</tr>
</tbody>
</table>
UI
HTML
描画は
ブラウザ側で
HTML ファイル
DB サーバ
Web サーバ
Web ブラウザ
BC DACSI
UI
ASP.NET
Web API
EF
UI
SPA 型
jQuery
など データ
返信のみ
UI 処理





難しい!
大きな
ギャップ


1. クライアント側
のライブラリ選択
3. Web API 接続
2. サーバ側の
ページ構築
HTML ファイル
DB サーバ
Web サーバ
Web ブラウザ
BC DACSI
UI
ASP.NET
Web API
EF
UI
SPA 型
1. クライアント側
のライブラリ選択
3. Web API 接続
2. サーバ側の
ページ構築



jQuery,
Bootstrap
knockout.js
AngularJS,
jQuery
React,
jQuery
jQuery,
Kendo UI
Professional
ユーザアプリ ユーザアプリ ユーザアプリ
HTML5, CSS3,
JavaScript
HTML5, CSS3,
JavaScript
ユーザアプリ
HTML5, CSS3,
JavaScript
HTML5, CSS3,
JavaScript
ランタイム
フロントエンド
ライブラリ
ユーザアプリ
互換性
なし
異なる
スキル
DEV-010_エンプラ系業務 Web アプリ開発に効く! 実践的 SPA 型モダン Web アプリ開発の選択手法
DEV-010_エンプラ系業務 Web アプリ開発に効く! 実践的 SPA 型モダン Web アプリ開発の選択手法
<div class="table-responsive">
<table id="tblAuthors" class="table ...">
<thead> ... </thead>
<tbody data-bind="foreach: Authors">
<tr>
<td data-bind="text: AuthorId"></td>
<td data-bind="text: AuthorName"></td>
<td data-bind="text: Phone"></td>
<td data-bind="text: State"></td>
...
</tr>
</tbody>
</table>
</div>
テーブルとテンプレートを
用意しておく
$(function() {
var viewModel = {
Authors: ko.observableArray()
};
ko.applyBindings(viewModel);
$("#btnShowAuthors").click(function () {
$.getJSON("/Sample03/GetAuthorsByState",
{ state: $("#ddlStates").val() },
function (result) {
viewModel.Authors(result);
});
});
ViewModel を介して
データバインド
DEV-010_エンプラ系業務 Web アプリ開発に効く! 実践的 SPA 型モダン Web アプリ開発の選択手法
<div id="grdAuthors" class="k-grid"></div>
<script id="rowTemplate" type="text/x-kendo-tmpl">
<tr>
<td>#= AuthorId #</td>
<td>#= AuthorName #</td>
<td>#= Phone #</td>
<td>#= State #</td>
<td>... </td>
</tr>
</script>
$(function() {
$("#btnShowAuthors").click(function () {
$.getJSON(
"/Sample04/GetAuthorsByState",
{ state: $("#ddlStates").val() },
function (result) {
$("#grdAuthors").kendoGrid({
rowTemplate: kendo.template($("#rowTemplate").html()),
columns: [
{ field: "AuthorId", title: "著者ID" },
{ field: "AuthorName", title: "著者名" },
{ field: "Phone", title: "電話番号" },
{ field: "State", title: "州" }, ...
],
dataSource: { data: result, pageSize: 10 },
});
});
});
});
書き方が
大きく違う!
.kendoGrid() 命令で
<div> をテーブルに変化



jQuery
AngularJS
jQuery UI
Modernizr
prototype
.js
React
jQuery
Mobile
Errorception
SASS
OOCSS
Kendo UI
Core
QUnit
LESS
SMACSKendo UI
Professional
Mocha
Type
Script
knockout
.js
Bootstrap
Jasmine
Coffee
Script
jQuery
Validation
Semantic
UI
JSLint
Stylus
BEM
YUI
Library
Karma
Dojo
toolkit
NPM
Reset
CSS
Wijmo
Ignite UI
Zino UI
Highcharts
SlickGrid
hammer
.js
Gulp
Grant
Yo 多すぎ!
選ぶのが
難しい!

古い仕様の言語を多少でも使い
やすくするもの
アプリの設計・実装方法を大き
く左右するもの
UI 部品を多少でも使いやすくす
るためのもの
開発作業を容易化するための周
辺ツール
① 言語拡張
③ 設計・実装方法論、フレ
ームワーク
② UI ライブラリ
④ 各種ツール、ユーティリ
ティ

古い仕様の言語を多少でも使いやすくするもの
アプリの設計・実装方法を大きく左右するもの
UI 部品を多少でも使いやすくするためのもの
開発作業を容易化するための周辺ツール
① 言語拡張
③ 設計・実装方法論、フレームワーク
② UI ライブラリ
④ 各種ツール、ユーティリティ
DOM 操作、
AJAX 処理
• jQuery
• prototype.js
各種フレームワーク
• AngularJS
• React
• knockout.js
• backbone.js
低水準 UI ライブラリ
• jQuery UI, Mobile
• Bootstrap
• Kendo UI Core
• Semantic UI, etc...
ユーティリ
ティライブラ
リ
• Modernizr,
etc...
CSS 命名規約
• OOCSS
• SMACS
• BEM
高水準 UI ライブラリ
• Kendo UI Pro
• highcharts
• Wijmo
• Ignite UI, etc...
CSS プリプロ
セッサ
• LESS
• SASS
• Stylus
周辺ツール
• NPM
• Gulp
• Grunt
• Bower, etc..
テストツール
• Jasmine
• JSLint
• QUnit
• Mocha, etc..
altJS
• TypeScript
• CoffeeScrip
t





HTML DOM 操作, 通信処理
CSS
基本言語仕様
(ECMAScript)
jQuery
CSS プリプロセッサ
LESS, SASS, Stylus など
altJS
TypeScript, CoffeeScript など
便利!



http://getbootstrap.com/examples/theme/
Bootstrap
http://demos.telerik.com/kendo-ui/financial/stock-history http://www.highcharts.com/demo
Kendo UI Professional Highcharts
ボタン、ラベル、
テキストボックスなど
グリッド、チャート、
地図など
ギャップ
有償製品が
多い




ベタ実装
抽象化ライブラリ
MVx フレームワーク
双方向バインド
コンポーネント指向
prototype.js
jQuery Backbone.js
knockout.js
Angular.js 1.0
React.js
Angular.js 2.0




ユーティリティライ
ブラリ
•Modernizr
•Errorception
•etc...
周辺ツール
•NPM
•Gulp, Grunt
•Bower
•Yo, etc..
テストツール
•Jasmine
•JSLint
•QUnit
•Mocha, etc..

古い仕様の言語を多少でも使いやすくするもの
アプリの設計・実装方法を大きく左右するもの
UI 部品を多少でも使いやすくするためのもの
開発作業を容易化するための周辺ツール
① 言語拡張
③ 設計・実装方法論、フレームワーク
② UI ライブラリ
④ 各種ツール、ユーティリティ
DOM 操作、
AJAX 処理
• jQuery
• prototype.js
各種フレームワーク
• AngularJS
• React
• knockout.js
• backbone.js
低水準 UI ライブラリ
• jQuery UI, Mobile
• Bootstrap
• Kendo UI Core
• Semantic UI, etc...
ユーティリ
ティライブラ
リ
• Modernizr,
etc...
CSS 命名規約
• OOCSS
• SMACS
• BEM
高水準 UI ライブラリ
• Kendo UI Pro
• highcharts
• Wijmo
• Ignite UI, etc...
CSS プリプロ
セッサ
• LESS
• SASS
• Stylus
周辺ツール
• NPM
• Gulp
• Grunt
• Bower, etc..
テストツール
• Jasmine
• JSLint
• QUnit
• Mocha, etc..
altJS
• TypeScript
• CoffeeScrip
t





ユーザアプリ
ライブラリ A ライブラリ B
ライブラリ P ライブラリ Q ライブラリ R
ライブラリ X
1.0.0 2.0.0
ver up
ver up
ver up



ユーザアプリ
SPA 開発
フレームワークBootstrap +
knockout.js
jQuery
JavaScript (ECMAScript)基本言語ランタイム
DOM 操作ライブラリ
基盤フレームワーク Angular.js
なし(要追加)高水準 UI 部品 なし(要追加)
ユーザアプリ ユーザアプリユーザアプリ
http://demos.telerik.com/kendo-ui/grid/index http://demo.grapecity.com/wijmo/5/Angular
/FlexChartIntro/FlexChartIntro/
http://jp.igniteui.com/
http://zinoui.com/charts http://docs.sencha.com/extjs/4.0.7/#!/exam
ple
http://www.highcharts.com/demo
Teleric Kendo UI
Professional
GrapeCity
Wijmo
Infragistics
Ignite UI
Zino UI Sencha Ext JS
Highsoft
Highcharts
① OSS ライブラリ
組み合わせ型開発
② SPA フレームワーク
ライブラリ依存型開発

高水準 UI 部品を
必要とするか?
jQuery
TypeScript
CoffeeScript
prototype.js
jQuery UI
knockout
Bootstrap
AngularReact
Kendo UI
Professional
Wijmo
Ignite UI Zino UI
Sencha
Ext JS
Highcharts


① 言語拡張
③ 設計・実装
方法論、
フレームワーク
② UI ライブラリ
④ 各種ツール、
ユーティリティ
① OSS ライブラリ
組み合わせ型開発
② SPA フレームワーク
ライブラリ依存型開発


Web サーバWeb ブラウザ
完全な SPA 型
Web サーバWeb ブラウザ
サーバ技術の併用
SPA Web API
Web API
MVC
SPA
HTML ファイル


DB サーバ
Web サーバ
Web ブラウザ
BC DACSI
UI
ASP.NET
Web API
EF
UI
ASP.NET MVC
UI 処理は
こちらで



個別のページ
CSS (共通)
JavaScript ライブラリ(共通)
HTML (ヘッダー)
HTML (フッター)
jQuery
CSS (ページ固有)
JavaScript ライブラリ(ページ固有)
HTML (コンテンツ)
JavaScript コード (ページ固有)
個別のページ
CSS (ページ固有)
JavaScript ライブラリ(ページ固有)
HTML (コンテンツ)
JavaScript コード (ページ固有)
*.cshtml個別のページ
CSS (ページ固有)
JavaScript ライブラリ(ページ固有)
HTML (コンテンツ)
JavaScript コード (ページ固有)
*.cshtml レイアウトページ
CSS (共通)
CSS (ページ固有)
JavaScript ライブラリ(共通)
JavaScript ライブラリ(ページ固有)
HTML (ヘッダー)
HTML (コンテンツ)
HTML (フッター)
JavaScript コード (ページ固有)
_Layout.cshtml
jQuery
Knockout
jQuery
Validation
入力フォーム
スタイルセット
よく使うものを
部品として用意
DEV-010_エンプラ系業務 Web アプリ開発に効く! 実践的 SPA 型モダン Web アプリ開発の選択手法
共通レイアウトページ
個々の業務ページ
必要に応じて組み込む
ライブラリ
<!DOCTYPE html>
<html>
<head>
<title>@ViewBag.Title</title>
<link href="bootstrap.min.css" rel="stylesheet">
<script src="jquery-2.1.4.min.js"></script>
<script src="bootstrap.min.js"></script>
@RenderSection("Libraries", required: false)
@RenderSection("Styles", required: false)
</head>
<body>
... (次ページ) ...
</body>
</html>
個別ページの差分
<body>
<nav class="navbar ... ">
... (ヘッダー) ...
</nav>
<div class="contentWrapper">
<div class="container contentBody">
@RenderBody()
</div>
</div>
<footer class="footer">
... (フッター) ...
</footer>
@RenderSection("Scripts", required: false)
</body>
</html>
個別ページの差分
個別ページの差分
@{ ViewBag.Title = "州による著者一覧表示"; }
@section Libraries {
@Html.Partial("_ImportLibraryKnockout")
}
<h4>jQuery + Bootstrap + knockout.js による実装</h4>
<table id="tblAuthors" class="table ... "> ... </table>
@section Scripts {
<script type="text/javascript">
$(function () { ... };
</script>
}
個別ページの差分
個別ページの差分
個別ページの差分
個別ページの差分

DB サーバ
Web サーバ
Web ブラウザ
BC DACSI
UI
ASP.NET
Web API
EF単体入力
チェック
単体入力
再チェック





商品発注サービス
カタログ管理サービス
注文伝票
注文結果伝票
サービス
呼び出し
商品
口コミ
GET
PUT
DELETE
GET
PUT
DELETE
CRUD 処理
RESTful 設計 RPC スタイル設計
業務アプリではこちらの方が設計しやすい




Web サーバクライアント
jQuery ASP.NET Web API
Enum
Date
Time
JSON シリアル化
[HttpPost]
public GetRichMessageResult GetRichMessage(string name)
{
return new GetRichMessageResult(...);
}
public class GetRichMessageResult {
public ResultEnum Result { get; set; }
public string Message { get; set; }
public DateTime CurrentDateTime { get; set; }
}
コンテンツ application/json(JSON形式)
本文 (Body)
{"Result": 2,
"Message":"Hello World, Nobuyuki",
"CurrentDateTime":
"2015-10-06T11:09:23.385863+09:00"}
public class GetRichMessageResult {
public ResultEnum Result { get; set; }
public string Message { get; set; }
public DateTime CurrentDateTime { get; set; }
}
数値型



単体入力
チェック
単体入力
再チェック
ASP.NET
Web API




JSON データ
Web API
AuthorFirstName
AuthorLastName
Phone
ViewModel
クラス
カスタ
マイズ
チェック
ロジック
DEV-010_エンプラ系業務 Web アプリ開発に効く! 実践的 SPA 型モダン Web アプリ開発の選択手法
JSON データ
Web API
AuthorFirstName
AuthorLastName
Phone
ViewModel
クラス
カスタ
マイズ
チェック
ロジック
public class UpdateAuthorRequest
{
public string AuthorId { get; set; }
[Required(ErrorMessage = "著者名(名)は必須入力項目です。")]
[RegularExpression(@"^[¥u0020-¥u007e]{1,20}$",
ErrorMessage = "著者名(名)は半角 20 文字以内で指定してください。")]
public string AuthorFirstName { get; set; }
[Required(ErrorMessage = "著者名(姓)は必須入力項目です。")]
[RegularExpression(@"^[¥u0020-¥u007e]{1,40}$",
ErrorMessage = "著者名(姓)は半角 40 文字以内で指定してください。")]
public string AuthorLastName { get; set; }
...
}
AuthorFirstName
AuthorLastName
Phone
ViewModel
クラス
チェック
ロジック
@using (Html.BeginForm("EditAuthor", "Sample07", ...))
{
<dl>
<dt>著者名(名)</dt>
<dd>@Html.TextBoxFor(m => m.AuthorFirstName)
@Html.ValidationMessageFor(m => m.AuthorFirstName, "*")</dd>
</dl>
<dl>
<dt>著者姓(姓)</dt>
<dd>@Html.TextBoxFor(m => m.AuthorLastName)
@Html.ValidationMessageFor(m => m.AuthorLastName, "*")</dd>
</dl>
...
}
$("#btnUpdate").click(function () {
if ($("#frmInput").valid() == true) {
$.post(
"/Sample07/UpdateAuthor",
{
AuthorId: AuthorId,
AuthorFirstName: $("#AuthorFirstName").val(),
AuthorLastName: $("#AuthorLastName").val(),
...
},
function (result) { ... }
);
}
});
カスタ
マイズ
[HttpPost]
public void UpdateAuthor(
UpdateAuthorRequest request)
{
// 送信されてきたデータを再チェック
if (ModelState.IsValid == false)
{
throw new ArgumentException()
}
... データ更新処理 ...
}
単体入力
再チェック
JSON データ
Web API

DB サーバ
Web サーバ
Web ブラウザ
BC DACSI
UI
ASP.NET
Web API
EF単体入力
チェック
単体入力
再チェック




様々な
「方言」
基礎を
学ぶ

• 論理タグと物理タグの使
い分けなどを理解する
• HTML5 は後でよい
• 基礎的なコードの書き方
をしっかり理解する
• TypeScript は後でよい
• jQuery の使い方をしっ
かり理解する
• 割とよく使うので重要
• クラス設計の基本セオ
リーの理解が重要
• Bootstrap で学習する
JavaScript (DOM 操作)



• ランタイムとモデルバインディング機能を理解する
• レイアウトページの使い方を理解する
• LINQ to EF の書き方を理解する

• OSS の組み合わせで DB 参照アプリを作ってみる
例) サーバ側 : ASP.NET Web API + Entity Framework
クライアント側 : jQuery + Bootstrap + knockout.js
• 何らかの商用 SPA フレームワークライブラリを使って
上記と同じアプリを作ってみる


• AngularJS, ReactJS など
を使ってみる
• Canvas など HTML5 の
機能の活用を検討する
• TypeScript などでライ
ブラリを開発する
• NPM, Bower, Gulp など
で生産性を高める



その上で
活用
基礎を
学ぶ


1. クライアント側
のライブラリ選択
3. Web API 接続
2. サーバ側の
ページ構築
多彩な
技術重要
皆さま、本当にお疲れ様でした!
またどこかでお会いしましょう!
アンケートにご協力ください。
●アンケートに 上記の Session ID のブレイクアウトセッションに
チェックを入れて下さい。
●アンケートはお帰りの際に、受付でご提出ください。
マイクロソフトスペシャルグッズと引換えさせていただきます。
ROOM B
Ask the Speaker のご案内
●本セッションの詳細は、EXPO 会場内
『Ask the Speaker』コーナー
Room B カウンタにてご説明させて
いただきます。是非、お立ち寄りください。
Ask the Speaker
EXPO会場MAP
DEV-010_エンプラ系業務 Web アプリ開発に効く! 実践的 SPA 型モダン Web アプリ開発の選択手法

More Related Content

PPTX
HTML5最新動向
PDF
jQuery Mobile 1.3 最新情報
PPTX
HTML5&API総まくり
PDF
jQuery Mobile 1.2 最新情報 & Tips
PDF
jQuery Mobile 最新情報 & Tips
PDF
⑲jQueryをおぼえよう!その5
PDF
イマドキの現場で使えるJavaライブラリ事情
HTML5最新動向
jQuery Mobile 1.3 最新情報
HTML5&API総まくり
jQuery Mobile 1.2 最新情報 & Tips
jQuery Mobile 最新情報 & Tips
⑲jQueryをおぼえよう!その5
イマドキの現場で使えるJavaライブラリ事情

What's hot (15)

PPTX
Androidで使えるJSON-Javaライブラリ
PDF
jQuery Performance Tips – jQueryにおける高速化 -
PPT
Webサーバ勉強会 発表資料
PPTX
HTML5 on ASP.NET
PPTX
XPagesDay2015 - 誰も教えてくれなかったデバッグ方法
PDF
Pro aspnetmvc3framework chap19
PPTX
EWD 3トレーニングコース#33 ewd-xpressアプリケーションからREST/Webサービスにアクセスする
PDF
⑳CSSでアニメーション!その1
PDF
「html5 boilerplate」から考える、これからのマークアップ
PPTX
EWD 3トレーニングコース#33 ewd-xpressアプリケーションからREST/Webサービスにアクセスする
PDF
JavaScriptユーティリティライブラリの紹介
PDF
⑮jQueryをおぼえよう!その1
PDF
jQuery Mobileの基礎
PDF
めんどくさくない Scala #kwkni_scala
PDF
はじめよう Backbone.js
Androidで使えるJSON-Javaライブラリ
jQuery Performance Tips – jQueryにおける高速化 -
Webサーバ勉強会 発表資料
HTML5 on ASP.NET
XPagesDay2015 - 誰も教えてくれなかったデバッグ方法
Pro aspnetmvc3framework chap19
EWD 3トレーニングコース#33 ewd-xpressアプリケーションからREST/Webサービスにアクセスする
⑳CSSでアニメーション!その1
「html5 boilerplate」から考える、これからのマークアップ
EWD 3トレーニングコース#33 ewd-xpressアプリケーションからREST/Webサービスにアクセスする
JavaScriptユーティリティライブラリの紹介
⑮jQueryをおぼえよう!その1
jQuery Mobileの基礎
めんどくさくない Scala #kwkni_scala
はじめよう Backbone.js
Ad

Similar to DEV-010_エンプラ系業務 Web アプリ開発に効く! 実践的 SPA 型モダン Web アプリ開発の選択手法 (20)

PDF
SocketStream入門
PDF
Seasarプロジェクト徹底攻略
PDF
densan2014-late01
PDF
Azure Infrastructure as Code 体験入隊
PDF
ASP.NET シングル ページ アプリケーション (SPA) 詳説
PDF
SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...
PDF
node+socket.io+enchant.jsでチャットゲーを作る
PDF
Devtools.next
PPT
Scala on Hadoop
PDF
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~
KEY
XPages 開発 Tips 百連発
PDF
Software Development with Symfony
PDF
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
PDF
Azure でサーバーレス、 Infrastructure as Code どうしてますか?
PDF
Introduction of aws-cli
PPTX
シラサギハンズオン 東京
PDF
TypeScript ファーストステップ ~ Any browser. Any host. Any OS. Open Source. ~
PPTX
サンプルアプリケーションで学ぶApache Cassandraを使ったJavaアプリケーションの作り方
PDF
Couchbase MeetUP Tokyo - #11 Omoidenote
PDF
Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版あります
SocketStream入門
Seasarプロジェクト徹底攻略
densan2014-late01
Azure Infrastructure as Code 体験入隊
ASP.NET シングル ページ アプリケーション (SPA) 詳説
SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...
node+socket.io+enchant.jsでチャットゲーを作る
Devtools.next
Scala on Hadoop
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~
XPages 開発 Tips 百連発
Software Development with Symfony
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
Azure でサーバーレス、 Infrastructure as Code どうしてますか?
Introduction of aws-cli
シラサギハンズオン 東京
TypeScript ファーストステップ ~ Any browser. Any host. Any OS. Open Source. ~
サンプルアプリケーションで学ぶApache Cassandraを使ったJavaアプリケーションの作り方
Couchbase MeetUP Tokyo - #11 Omoidenote
Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版あります
Ad

More from decode2016 (20)

PDF
SPL-005_オープンソースから見たマイクロソフト
PDF
SPL-004_Windows 10 開発の舞台裏から学ぶエンジニアの未来
PDF
SPL-003_黒船襲来! 世界DevOps トップ企業 x マイクロソフトによるトークバトル セッション
PDF
SPL-002_クラウド心配性な上司を説得するコツを伝授します ~本当に信頼できるクラウドの構築/運用とは? マイクロソフト クラウド成長の軌跡~
PDF
PRD-009_クラウドの ERP による業務システム開発 ~OData エンド ポイントから Power BI 連携~
PDF
PRD-008_クラウド ネイティブ ERP ~Dynamics AX のアーキテクチャ/環境構築から開発/運用まで~
PDF
PRD-006_機械学習で顧客対応はこう変わる! Azure ML と Dynamics で造る次世代 CRM
PDF
PRD-005_Skype Developer Platform によるアプリケーション開発の最新情報
PDF
PRD-004_ここまでできる! Azure AD と Office 365 連携開発の先進手法
PDF
PRD-002_SharePoint Server 2016 & Online ハイブリッド環境での業務活用
PDF
INF-028_そのエラーやお困りごと、ツールを使えば解決できるかも! ~Sysinternals や OS 標準ツールの徹底活用術~
PDF
INF-027_セキュリティ マニアックス -サイバー攻撃の手口と防御手法- ~敵を知り、己を知れば百戦危うからず~
PDF
INF-026_真のクラウドベース EMM ~マイクロソフトのモビリティ戦略はいかにユニークか~
PDF
INF-025_企業で使える Windows 10 ~現実的なアプリ & デバイス管理~
PDF
INF-024_Windows 10 の展開 ~プロビジョニング? いやワイプ & ロードでしょ!~
PDF
INF-023_マイクロソフトの特権管理ソリューションの全貌 ~永続的な管理者特権の廃止への道~
PDF
INF-022_情報漏えいを責めるべからず。今必要な対策とは? ~Windows 10 セキュリティ機能徹底解説~
PDF
INF-021_実践! Windows as a Service との上手な付き合い方 ~新しい OS 更新管理の徹底解説~
PDF
INF-020_メーカーがおしえてくれない正しいクラウドについて
PDF
INF-019_Nano Server だけでここまでできる! ~極小サーバーの使い方~
SPL-005_オープンソースから見たマイクロソフト
SPL-004_Windows 10 開発の舞台裏から学ぶエンジニアの未来
SPL-003_黒船襲来! 世界DevOps トップ企業 x マイクロソフトによるトークバトル セッション
SPL-002_クラウド心配性な上司を説得するコツを伝授します ~本当に信頼できるクラウドの構築/運用とは? マイクロソフト クラウド成長の軌跡~
PRD-009_クラウドの ERP による業務システム開発 ~OData エンド ポイントから Power BI 連携~
PRD-008_クラウド ネイティブ ERP ~Dynamics AX のアーキテクチャ/環境構築から開発/運用まで~
PRD-006_機械学習で顧客対応はこう変わる! Azure ML と Dynamics で造る次世代 CRM
PRD-005_Skype Developer Platform によるアプリケーション開発の最新情報
PRD-004_ここまでできる! Azure AD と Office 365 連携開発の先進手法
PRD-002_SharePoint Server 2016 & Online ハイブリッド環境での業務活用
INF-028_そのエラーやお困りごと、ツールを使えば解決できるかも! ~Sysinternals や OS 標準ツールの徹底活用術~
INF-027_セキュリティ マニアックス -サイバー攻撃の手口と防御手法- ~敵を知り、己を知れば百戦危うからず~
INF-026_真のクラウドベース EMM ~マイクロソフトのモビリティ戦略はいかにユニークか~
INF-025_企業で使える Windows 10 ~現実的なアプリ & デバイス管理~
INF-024_Windows 10 の展開 ~プロビジョニング? いやワイプ & ロードでしょ!~
INF-023_マイクロソフトの特権管理ソリューションの全貌 ~永続的な管理者特権の廃止への道~
INF-022_情報漏えいを責めるべからず。今必要な対策とは? ~Windows 10 セキュリティ機能徹底解説~
INF-021_実践! Windows as a Service との上手な付き合い方 ~新しい OS 更新管理の徹底解説~
INF-020_メーカーがおしえてくれない正しいクラウドについて
INF-019_Nano Server だけでここまでできる! ~極小サーバーの使い方~

DEV-010_エンプラ系業務 Web アプリ開発に効く! 実践的 SPA 型モダン Web アプリ開発の選択手法