• 検索結果がありません。

Visual Studio 2008 概要多様なアプリケーション開発の支援 Windows アプリケーション開発モバイルアプリケーション開発 Office アプリケーション開発 Web アプリケーション開発アプリケーションライフサイクルマネジメントの強化まとめ

N/A
N/A
Protected

Academic year: 2021

シェア "Visual Studio 2008 概要多様なアプリケーション開発の支援 Windows アプリケーション開発モバイルアプリケーション開発 Office アプリケーション開発 Web アプリケーション開発アプリケーションライフサイクルマネジメントの強化まとめ"

Copied!
50
0
0

読み込み中.... (全文を見る)

全文

(1)
(2)

Visual Studio 2008 概要

多様なアプリケーション開発の支援

Windows アプリケーション開発

モバイル アプリケーション開発

Office アプリケーション開発

Web アプリケーション開発

アプリケーション ライフサイクル マネジメント

の強化

まとめ

(3)

最新プラットフォームの能力を最大限に活用した

優れたユーザー体験を持つアプリケーションを、

迅速かつ高品質に構築するための機能を提供します

アプリケーション

ライフサイクル

マネジメントの強化

開発生産性のさらなる向上

最新プラットフォーム/

テクノロジの活用

‡ Windows Vista,

the 2007 Office system,

Windows Server 2008,

SQL Server 2008 の

パワーを最大限引き出す

‡ 多様なアプリケーション

構築を支援

‡ 統合開発環境の強化

‡ 開発言語の強化

(C#, Visual Basic)

‡ データアクセス テクノロ

ジの強化

‡ チーム コラボレーション

の強化

‡ テストの強化および品質

の確保

日本語ベータ版をご評価ください!

www.microsoft.com/japan/msdn/vstudio/future

(4)

.NET Framework 3.5

.NET Framework 3.5

ASP.NET AJAX

ASP.NET AJAX

LINQ

LINQ

etc

etc

.NET Framework 3.0

.NET Framework 3.0

Windows Presentation Foundation (WPF)

Windows Presentation Foundation (WPF)

Windows Workflow Foundation (WF)

Windows Workflow Foundation (WF)

Windows Communication Foundation (WCF)

Windows Communication Foundation (WCF)

Windows CardSpace

Windows CardSpace

.NET Framework 2.0

.NET Framework 2.0

基本クラス

基本クラス

ライブラリ

ライブラリ

ASP.NET

ASP.NET

ADO.NET

ADO.NET

Windows Form

Windows Form

(5)

幅広いプラットフォームに対応

.NET Framework 2.0

.NET Framework 3.0

.NET Framework 3.5

バージョンの違いを認識

コンパイラ

インテリセンス

ツールボックス

アセンブリ参照

など

ボタンが選択できない プロジェクト作成時に ドロップダウンで選択

(6)

プラットフォームのパワーを最大限活用した

アプリケーションの実現

Web アプリケーション

Windows アプリケーション

モバイル アプリケーション

バックエンド システム

Office アプリケーション

ビジネス

パートナー

(7)

利用者がなにかの体験を

「楽しく」「面白く」「心地よく」

行える点を “提供価値”として考えるコンセプト

Windows XP

Windows Vista

ユーザーエクスペリエンスがもたらすもの

(8)

Visual Studio で WPF アプリケーションを開発

リッチな WPF デザイナ

分割ビュー

ドキュメント アウトライン

デザインのサポート

Windows フォームとの相互連携

既存の Windows フォームに新たなユーザー体験を

WPF ユーザーコントロールのデザイン機能

Expression Blend との組み合わせで

よりリッチなユーザー体験を実現

より高度なユーザー体験を実現するには Expression Blend を活用

アニメーション、etc.

処理の記述はもちろん、基本レイアウトなどに Visual Studio を

(9)

WPF WPF デザイナにより、デザイナにより、WPF WPFアプリケーションのアプリケーションの ユーザーインターフェイスをデザイン ユーザーインターフェイスをデザイン XAML XAML ナビゲーションによるナビゲーションによる 特定要素の選択 特定要素の選択 ドキュメント ドキュメントアウトラインにより、アウトラインにより、 特定要素の操作が容易に 特定要素の操作が容易に((タグの選択タグの選択 や、 や、Z Z オーダーの操作などオーダーの操作など)) 他のアプリケーションと同様、 他のアプリケーションと同様、 ドラッグ ドラッグ&&ドロップによりドロップにより コントロールを配置 コントロールを配置 コントロールの操作を支援 コントロールの操作を支援 ( (サイズ表示、スナップ線、などサイズ表示、スナップ線、など)) 分割ビューにより、デザインと 分割ビューにより、デザインと XAML XAML コードのいずれか一つ/両方コードのいずれか一つ/両方 を表示することが可能 を表示することが可能

(10)
(11)

WPF WPF ユーザーユーザーコントロールコントロールライブラリライブラリ を をWindows Windowsフォーム上に配置フォーム上に配置 デザイナ上で実際の デザイナ上で実際のUI UIが表示されるが表示される 作成した 作成したWPF WPFユーザーユーザーコントロールコントロールライブラリがツールボックス上にライブラリがツールボックス上に 自動的に表示され、ドラッグ

自動的に表示され、ドラッグ& & ドロップでドロップでWindowsWindows フォームに配置可能フォームに配置可能

※ WPF コントロール

System.Windows.Controls.TextBox text1 =

(System.Windows.Controls.TextBox) userControl1.FindName (“textBox1”);

text1.Text = “Windows フォームから WPF コントロール上のテキストを操作”;

Dim text1 As System.Windows.Controls.TextBox = _

userControl1.FindName (“textBox1”)

text1.Text = “Windows フォームから WPF コントロール上のテキストを操作”

VB

VB

C#

C#

(12)

ユーザーが求めるもの

• 使いがって

• カッコよさ

• 安心感

• 処理スピード

• どこでも使える

システム全体が

ユーザーエクスペリエンスをもたらす

ユーザーインターフェイス = ユーザーエクスペリエンス?

(13)

Windows アプリケーションに Web アプリケーションと

共通のサービスを提供

ASP.NET ベースのサービス提供

(認証、ロール、プロファイリング)

Web サービス経由でサービス連携

プロジェクト プロパティの設定

ネットワーク

Web アプリケーション

Web サービス

Windows アプリケーション

(14)

プロジェクト プロパティの [サービス] プロジェクト プロパティの [設定] // 読み込み textBox1.Text = Properties.Settings.Default.FavColor; // 書き込み Properties.Settings.Default.FavColor = textBox1.Text Properties.Settings.Default.Save(); ‘ 読み込み textBox1.Text = My.Settings.FavColor ‘ 書き込み My.Settings.FavColor = textBox1.Text My.Settings.Save()

VB

VB

C#

C#

<Profile> <Properties>

<add name = “FavColor” type=“string” /> <system.web.extensions> <scripting> <webServices> <profileService enabled=“true” readAccessProperties = “FavColor” writeAccessProperties = “FavColor”

Web.config

Web.config

サーバー側

クライアント側

クライアント クライアントアプリケーションアプリケーション サービスの利用を宣言 サービスの利用を宣言 [Web [Web 設定の読み込み設定の読み込み] ] により自により自 動的にプロファイル項目を設定 動的にプロファイル項目を設定 に追加 に追加((例例: FavColor): FavColor)

(15)

ローカルでデータをキャッシュすることにより、オフライ

ン機能をアプリケーションに付加

2 つのデータ同期形式

① クライアント・サーバー形式

② Web サービス経由によるデータ同期

データの同期

クライアント : SQL Server Compact Edition 3.5

サーバー : .NET マネージプロバイダ対応データベース

クライアント側 クライアント側 同期プロバイダ 同期プロバイダ サーバー側 サーバー側 同期プロバイダ 同期プロバイダ SQL Server Compact Edition 3.5 データベース

サービス

サーバー側 サーバー側 同期プロバイダ 同期プロバイダ

(16)

[新しい項目の追加] で

[ローカル データベース キャッシュ] を選択

データ同期の構成をウィザードベースで設定

LocalDataCache1SyncAgent syncAgent = new LocalDataCache1SyncAgent(); syncAgent.Synchronize();

Dim syncAgent As LocalDataCache1SyncAgent = New LocalDataCache1SyncAgent() syncAgent.Synchronize()

VB

VB

C#

(17)

.NET Compact Framework 3.5 への対応による

サーバー連携機能の強化と、開発環境の強化

開発環境の強化

Windows Mobile SDK 5.0 への対応

Device Emulator 3.0

セキュリティや証明書の設定など詳細に

サーバーサイド連携の強化

WCF 連携

LINQ (Object, XML, DataSet)

モバイル アプリケーションの

品質向上

モバイル アプリケーション向け

単体テストの実現

(18)

the 2007 Office system 機能の最大限活用

数多くの Office 製品をターゲット

Excel, Word, Outlook, InfoPath, PowerPoint, Project, Visio

Office 2003 もサポート

優れたユーザー体験をもつ Office ソリューション実現

リボン、作業ウィンドウ

SharePoint ターゲットのアプリケーション開発

ワークフロー ソリューションの開発機能

Web パーツ開発の強化

配置の改善

ClickOnce 配置の実現による配置とセキュリティの強化

サーバーサイド /クライアント サイドにおける

2007 Office system の機能を最大限活用した

.NET アプリケーション構築が可能

(19)

ドキュメント レベル (Excel 2007)

リボンの

開発

(20)

次世代 Web アプリケーションの実現

AJAX スタイルの

リッチな Web アプリケーションの構築

ASP .NET AJAX への対応

強化された Web ページのデザイン ツール

Web テストの強化による品質向上

次世代 Web プラットフォームの構築

サービス・プロセスの強化

(21)

ASP.NET

ASP.NET

Web

Web

アプリケーション

アプリケーション

ASP.NET

ASP.NET

ASP.NET AJAX

ASP.NET AJAX

ASP.NET AJAX Extensions

Microsoft AJAX Library

ASP.NET

AJAX

Control Toolkit

ASP.NET

AJAX Futures

ASP.NET Web アプリケーション ClientCentric AJAX Web アプリケーション Server Centric AJAX

AJAX Web Web アプリケーション

アプリケーション

“よりリッチな標準機能”

ServerCentric

AJAX

AJAX Web

Web アプリケーション

アプリケーション

その他

その他

Web

Web

アプリケーション

アプリケーション

その他

その他

(22)

ASP.NET AJAX Extensions

Î Visual Studio 2008 対応

ASP.NET AJAX のコア ライブラリ

ASP.NET の開発スタイルで AJAX アプリケーションを実現

AJAX のためのコア機能と Web コントロールを提供

ASP.NET AJAX Control Toolkit

ASP.NET 2.0 AJAX Extensions を拡張し、利便性の高い

拡張コントロールを提供

実際にお試しください!

Î

http://ajax.asp.net/ajaxtoolkit/

ASP.NET AJAX Futures (CTP)

ASP.NET AJAX の開発中の新機能を提供 (Silverlight 連携など)

(Microsoft AJAX Library)

AJAX 機能のコアとなる JavaScript ライブラリ

実際には ASP.NET に依存していない

(23)

ASP.NET AJAX のコア機能への対応

ASP.NET AJAX Extensions の統合

Visual Studio 対応

プロジェクト テンプレート、ツールボックス など

AJAX アプリケーション開発の支援強化

インテリセンスの強化

型リファレンス、DOM 対応、パラメータ ツール チップなど

独自の JavaScript に対するインテリセンス対応

スクリプトのデバッグ機能

ブレークポイントの設定

変数・式に対するウォッチ機能

(24)

デザイナ機能の強化

分割ビュー

デザインとソースを同時に表示し、

リアルタイムに同期

CSS デザイン機能の強化

マスタページのネストが可能に

新たな Web サーバーコントロール

<asp:DataPager>

ページング機能を提供

<asp:ListView>

編集機能付きのリスト表示

<asp:LinqDataSource>

LINQ データをデータソースに

(25)

REST スタイルの

Web サービス

マッシュアップ

ライトウェイト

SOAP ベースの

Web サービス

企業間連携

標準準拠

信頼性の確保

Windows Communication Foundation

によるサービスの実現

(26)

Web サービス標準のさらなる準拠

WS-AtomicTransaction 1.1

WS-ReliableMessaging 1.1

WS-SecureConversation

WS-Coordination 1.1

WCF サービス開発のツール強化

ウィザード、プロパティ、ウィンドウの強化

WCF サービス ホスト/ Web テスト クライアント

テスト用モジュールの作成が不要で、開発がスムーズに

WCF と WF のシームレスな統合

ワークフローから WCF サービスの呼び出しが可能

(SendActivity, ReceiveActivity の追加)

(27)

WCF

WCF 連携用の新たなアクティビティ連携用の新たなアクティビティ WCF

(28)

REST (Representational State Transfer)

Web のアーキテクチャ スタイル

HTTP プロトコルに依存

Verb (GET、POST、PUT、DELETE) を忠実に

使用

リソースの表現 (識別) = URI

URI = URL/URN

ステートレス

スケーラビリティの確保

サービス リポジトリ = ハイパーリンク

(29)

GET

GET

View it

Do

it

その他

その他

POST

POST

PUT

PUT

DELETE

DELETE

その他

その他

置換

部分更新

削除

ロールバック

追加

新規作成

呼び出し

抽出・読み出し

副作用がない

等冪性が期待できる

“何か”を実行

副作用がある

等冪性は期待できない

(30)

[ServiceContract]

public interface IPersonSerivce {

[OperationContract]

[WebGet(UriTemplate="Persons/{alias}",

RequestFormat=WebMessageFormat.Json,

ResponseFormat=WebMessageFormat.Json)]

Person GetPerson(String alias);

[OperationContract]

[WebInvoke(Method="POST“, RequestFormat=WebMessageFormat.Xml)]

void AddPerson(Person person);

}

[DataContract]

public class Person { ... }

(31)

バインディング & ビヘイビア

<bindings>

<webHttpBinding>

<binding name="myWebHttpBinding" />

</webHttpBinding>

</bindings>

<behaviors>

<endpointBehaviors>

<behavior name="myEndpointBehavior">

<enableWebScript />

<!-- <webHttp /> -->

</behavior>

</endpointBehaviors>

</behaviors>

(32)

JavaScript

JavaScript

VB.NET

VB.NET

Public Class Person

Public Name As String

Public Age As Integer

End Class

var

p =

{

“Name”

:

“Mikio”

,

“Age”

: 32 };

{ “Name” : “Mikio”, “Age” : 32 }

Dim p As New Person

p.Name =

“Mikio”

p.Age = 32

JSON

表記

JSON

フォーマッタ

JSON

JSON→→.NET.NETObjectObject .NET

.NETObjectObject→→JSONJSON

JavaScript におけるオブジェクト表記のための

フォーマット

AJAX Web アプリケーションにおけるメッセージ

軽量かつ JavaScript との信頼性が高い

標準化されている (IETF の RFC)

http://www.ietf.org/rfc/rfc4627.txt

(33)

事実上スタンダードとなっている

更新情報の配信フォーマット

ニュースサイトや Blog でお馴染み

フォーマット:

RSS 1.0 (Rich Site Summary)

http://web.resource.org/rss/1.0/

RSS 2.0 (Really Simple Syndication)

http://www.rssboard.org/rss-specification

Atom 1.0

(34)

コントラクト

[ServiceKnownType(typeof(Atom10FeedFormatter))]

[ServiceKnownType(typeof(Rss20FeedFormatter))]

[ServiceContract]

public interface IPictureSyndication {

[OperationContract]

[WebGet(UriTemplate="Images/{format}")]

SyndicationFeedFormatter<SyndicationFeed>

GetImage(String format);

}

上記は RSS2.0 と Atom 1.0 の両方に対応したフィード サービスの例

直接 Rss20FeedFormatter や Atom10FeedFormatter を返すサービスも作成可能

(35)

サービス実装クラス

public class PictureSyndication : IPictureSyndication {

public SyndicationFeedFormatter<SyndicationFeed>

GetImage(string format) {

var feed = new SyndicationFeed( ... );

...

if (format == "rss" ) {

return new RSS20FeedFormatter(feed);

}

else {

return new Atom10FeedFormatter(feed);

}

}

}

(36)

フィード データ生成コード

var feed = new SyndicationFeed(

"My Picture¥’s Feed”, "これは私の旅の思い出です",

new Uri("http://blogs.example.org/mikion"));

feed.Authors.Add(new SyndicationPerson("mikion@example.org"));

feed.Categories.Add(new SyndicationCategory("Picture");

feed.Description = new TextSyndicationContent("My pictures.");

var item = new SyndicationItem(

"Pike Place Market", "Pike Place Market でパシャリ",

new Uri("http://blogs.example.org/mikion/Pictures/1"),

DateTime.Now);

(37)

バインディング & ビヘイビア

<bindings>

<webHttpBinding>

<binding name="myWebHttpBinding" />

</webHttpBinding>

</bindings>

<behaviors>

<endpointBehaviors>

<behavior name="myEndpointBehavior">

<webHttp />

</behavior>

</endpointBehaviors>

</behaviors>

(38)

エンドポイント

<services>

<service name="PictureSyndication">

<endpoint contract="IPictureSyndication"

binding="webHttpBinding"

bindingConfiguration="myWebHttpBinding"

behaviorConfiguration="myEndpoingbehavior"

/>

</service>

<services>

(39)

サービス ホスト

.svc ファイル (IIS ホスト時)

もしくは

ホスト アプリケーション コード (独自ホスト時)

<%@ServiceHost Service="PictureSyndication"

Factory="System.ServiceModel.Web.WebServiceHostFactory"

%>

var host = new WebServiceHost(typeof(PictureSyndication));

// ServiceHost クラスを使用する場合は WebHttpBehavior が必要

host.Open();

...

(40)

データ アクセスに関する

統一的な設計・プログラミング モデルの実現

LINQ (統合言語クエリ :

L

anguage

IN

tegrated

Q

uery)

開発言語の強化

C# 3.0 / VB 9.0

データセット デザイナ強化

TableAdapter と型付きデータセットを異なる

プロジェクトに配置

データ アクセス機能の強化により、一貫性のある開発

スタイルで、さまざまなデータをスムーズに扱うことが可能

(41)

統合言語クエリ (LINQ : Language-Integrated Query)

様々なデータソースへのアクセスに対し、統一的なプログラミング

モデルを提供

LINQ to SQL

LINQ to XML

LINQ to Objects

LINQ to DataSet

…など

.NET 言語に統合されたデータクエリ

例: var resut =

from x in company.products

select x;

複雑なデータ操作がより簡潔に

異なるデータ ソースに統一的な

アクセス ロジック

開発ツールのサポート

インテリセンスの対応など

オブジェクト SQL Server XML データ LINQ to Objects

C#

VB

その他

.NET 統合言語クエリ

LINQ to SQL LINQ to XML

LINQ

LINQ

対応データソース

対応データソース

・・・

(42)

O/R マップが作成 される [新しい項目の追加] で LINQ to SQL クラスを追加 LINQ to SQL LINQ to Object

var favAuthors =

from auths in pubs.authors

where auths.state == “CA”

select x;

VB

VB

Dim favAuthors = _

From auths In pubs.authors _

Where auths.state = “CA” _

Select x

C#

C#

List<Authors> authors = new List<Authors> { new Author { … }, new Author { … }, }; 通常の List <> オブジェクト

(43)

直接的な影響

売り上げ低迷

保守費用の増大

損害補填

間接的な影響

企業全体のイメージ・

信頼の低下

チームの士気低下

品質の低下による…

いかに生産性を維持しながら、品質を保つか

(44)

プロジェクト

プロジェクト

ステークホルダー

ステークホルダー

アーキテクト アーキテクト リード リードデベロッパーデベロッパー デベロッパー デベロッパー テスターテスター DB DB ProPro 構成・変更管理 構成・変更管理 自動ビルド 自動ビルド プロジェクト管理 プロジェクト管理 プロジェクト プロジェクトサイトサイト

(45)

パフォーマンスの比較

取得済みのパフォーマンスの基準

値をもとに、差分を数値化。

パフォーマンスを全体最適を実現

する。

コード メトリクス

ソースコードを分析し、コードの

複雑性を数値化。

開発者は複雑度の数値を確認する

ことでリファクタリングやテスト

の強化を行うべき箇所を把握する

ことが可能となる。

(46)

常時結合

ソースコードのチェックイン時に自動的に

ビルドを実施し、変更された機能がほかの

機能に影響を与えないことを確認。チーム

間の連携を強化するとともに、アプリケー

ションの品質向上にも貢献。

コードコメント

ソースコードの行単位で変更履歴

を取得。作業項目と連動し、どの

行の修正をいつ・誰が・なぜ実施

したかを記録、追跡でき、チーム

間の連携を強化する。

(47)

ファイルのフォルダ比較

ソース管理内のファイルの比較を行う際、

ファイル単位ではなく、フォルダ単位で比

較が可能。これにより構成管理担当者の負

荷を軽減

Web テストの強化

Web テスト レコーダがJavaScript の記

録と自動再生に対応、AJAX アプリケー

ションの Web テストが実施可能

(48)

データソース

ビジネス レイヤ

データ レイヤ

データベース

クライアント

Windows アプリケーション Office アプリケーション モバイル アプリケーション Web ブラウザ アプリケーション ワークフロー ユーザーインターフェイスの制御 ユーザープロセスの制御 ビジネス ロジック ビジネス データ ビジネス プロセスの サービス公開

プレゼンテーション

レイヤ

外部サービス

データアクセス ロジック 外部サービス アクセス ロジック アプリケーション ライフサイクル マネジメン ト (設計 ~ 開 発 ~ テスト、 構成管理/プロジェクト管理) アプリケーション ライフサイクル マネジメン ト (設計 ~ 開 発 ~ テスト、 構成管理/プロジェクト管理) アプリケーション共通機能 (配置、認証、 etc.) アプリケーション共通機能 (配置、認証、 etc.) Windows CardSpace Windows Presentation Foundation Windows Communication Foundation Windows Communication Foundation Windows Workflow Foundation ASP.NET AJAX VSTO 2005 for 2007 Office Windows Workflow Foundation WPF アプリケー ション開発の強化 2007 Office system アプリケーション 開発の強化 Web アプリケーション 開発の強化 モバイル アプリケーション 開発の強化 サービス・ プロセスの強化 統合言語クエリ (LINQ) チームコラボ レーションの 強化 開発言語の強化 データアクセスの 強化 クライアント アプリケーション サービス ローカル データ キャッシング 配置の強化 (ClickOnce) 次世代 Web プラットフォーム の強化 Windows フォームとの 相互連携 SharePoint Server 2007 への対応 テストおよび 品質の確保 ASP.NET AJAX への対応

(49)

Visual Studio 2008 および Expression を

ぜひ実際にお試しください

Visual Studio 2008 情報 および ベータ版の入手

www.microsoft.com/japan/msdn/vstudio/future

Expression 情報 および 評価版の入手

www.microsoft.com/japan/products/expression

注意)

Visual Studio 2008 と Expression Blend 1.0 を現状連携するには

http://blogs.msdn.com/expression/archive/2007/05/29/working-with-visual-studio-code-name-

orcas-and-expression-blend.aspx

(50)

© 2007 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.

参照

関連したドキュメント

Visual Studio 2008、または Visual Studio 2010 で開発した要素モデルを Visual Studio

1200V 第三世代 SiC MOSFET と一般的な IGBT に対し、印可する V DS を変えながら大気中を模したスペクトルの中性子を照射 した試験の結果を Figure

従来から iOS(iPhone など)はアプリケーションでの電話 API(Application Program

紀陽インターネット FB へのログイン時の認証方式としてご導入いただいている「電子証明書」の新規

◆長大法のうち、法高が 30mを超える切土又は 18mを超える盛土:原

Annex 2 :Illustrative Examples of selection of analytical validation testing methodology for common analytical

瀬戸内千代:第 章第 節、コラム 、コラム 、第 部編集、第 部編集 海洋ジャーナリスト. 柳谷 牧子:第

また、特 特定 定切 切盛 盛土 土を を行 行う う場 場合 合に には は、 、一 一般 般承 承継