Visual Studio
Total Page:16
File Type:pdf, Size:1020Kb
Visual Studio 2008 概要 多様なアプリケーション開発の支援 Windows アプリケーション開発 モバイル アプリケーション開発 Office アプリケーション開発 Web アプリケーション開発 アプリケーション ライフサイクル マネジメント の強化 まとめ 最新プラットフォームの能力を最大限に活用した 優れたユーザー体験を持つアプリケーションを、 迅速かつ高品質に構築するための機能を提供します アプリケーション 最新プラットフォーム/ 開発生産性のさらなる向上 ライフサイクル テクノロジの活用 マネジメントの強化 統合開発環境の強化 Windows Vista, チーム コラボレーション the 2007 Office system, の強化 Windows Server 2008, 開発言語の強化 の SQL Server 2008 (C#, Visual Basic) テストの強化および品質 パワーを最大限引き出す の確保 データアクセス テクノロ 多様なアプリケーション ジの強化 構築を支援 日本語ベータ版をご評価ください! www.microsoft.com/japan/msdn/vstudio/future .NET.NET FrameworkFramework 3.53.5 ASP.NET AJAX LINQ etc… .NET.NET FrameworkFramework 3.03.0 Windows Presentation Foundation (WPF) Windows Workflow Foundation (WF) Windows Communication Foundation (WCF) Windows CardSpace .NET.NET FrameworkFramework 2.02.0 基本クラス ライブラリ ASP.NET ADO.NET Windows Form プロジェクト作成時に 幅広いプラットフォームに対応 ドロップダウンで選択 .NET Framework 2.0 .NET Framework 3.0 .NET Framework 3.5 バージョンの違いを認識 コンパイラ インテリセンス ボタンが選択できない ツールボックス アセンブリ参照 など プラットフォームのパワーを最大限活用した アプリケーションの実現 モバイル アプリケーション Web アプリケーション ビジネス Windows アプリケーション パートナー バックエンド システム Office アプリケーション 利用者がなにかの体験を 「楽しく」「面白く」「心地よく」 行える点を “提供価値”として考えるコンセプト Windows XP Windows Vista ユーザーエクスペリエンスがもたらすもの 競争優位性、ロイヤリティ、サポート コスト削減 … Visual Studio で WPF アプリケーションを開発 リッチな WPF デザイナ 分割ビュー ドキュメント アウトライン デザインのサポート Windows フォームとの相互連携 既存の Windows フォームに新たなユーザー体験を WPF ユーザーコントロールのデザイン機能 Expression Blend との組み合わせで よりリッチなユーザー体験を実現 より高度なユーザー体験を実現するには Expression Blend を活用 アニメーション、etc. 処理の記述はもちろん、基本レイアウトなどに Visual Studio を 他のアプリケーションと同様、 WPF デザイナにより、WPF アプリケーションの ドラッグ&ドロップにより ユーザーインターフェイスをデザイン コントロールを配置 コントロールの操作を支援 (サイズ表示、スナップ線、など) ドキュメント アウトラインにより、 特定要素の操作が容易に (タグの選択 や、Z オーダーの操作など ) 分割ビューにより、デザインと XAML コードのいずれか一つ/両方 を表示することが可能 XAML ナビゲーションによる 特定要素の選択 作成した WPF ユーザー コントロール ライブラリがツールボックス上に 自動的に表示され、ドラッグ & ドロップで Windows フォームに配置可能 ※ WPF コントロール WPF ユーザー コントロール ライブラリ を Windows フォーム上に配置 デザイナ上で実際の UI が表示される VB Dim text1 As System.Windows.Controls.TextBox = _ userControl1.FindName (“textBox1”) text1.Text = “Windows フォームから WPF コントロール上のテキストを操作” C# System.Windows.Controls.TextBox text1 = (System.Windows.Controls.TextBox) userControl1.FindName (“textBox1”); text1.Text = “Windows フォームから WPF コントロール上のテキストを操作”; ユーザーインターフェイス = ユーザーエクスペリエンス? ユーザーが求めるもの • 使いがって • カッコよさ • 安心感 • 処理スピード • どこでも使える … システム全体が ユーザーエクスペリエンスをもたらす Windows アプリケーションに Web アプリケーションと 共通のサービスを提供 Windows アプリケーション Web サービス Web アプリケーション ネットワーク ASP.NET ベースのサービス提供 (認証、ロール、プロファイリング) Web サービス経由でサービス連携 プロジェクト プロパティの設定 サーバー側 Web.config クライアント側 <Profile> <Properties> <add name = “FavColor” type=“string” /> プロジェクト プロパティの [サービス] <system.web.extensions> <scripting> <webServices> <profileService enabled=“true” readAccessProperties = “FavColor” writeAccessProperties = “FavColor” クライアント アプリケーション サービスの利用を宣言 VB プロジェクト プロパティの [設定] ‘ 読み込み textBox1.Text = My.Settings.FavColor ‘ 書き込み My.Settings.FavColor = textBox1.Text [Web 設定の読み込み] により自 My.Settings.Save() 動的にプロファイル項目を設定 に追加 (例 : FavColor) C# // 読み込み textBox1.Text = Properties.Settings.Default.FavColor; // 書き込み Properties.Settings.Default.FavColor = textBox1.Text Properties.Settings.Default.Save(); ローカルでデータをキャッシュすることにより、オフライ ン機能をアプリケーションに付加 2 つのデータ同期形式 ① クライアント・サーバー形式 ② Web サービス経由によるデータ同期 データの同期 クライアント : SQL Server Compact Edition 3.5 サーバー : .NET マネージプロバイダ対応データベース クライアント側 サーバー側 同期プロバイダ 同期プロバイダ サービス SQL Server サーバー側 Compact Edition 3.5 データベース 同期プロバイダ データ同期の構成をウィザードベースで設定 [新しい項目の追加] で [ローカル データベース キャッシュ] を選択 VB Dim syncAgent As LocalDataCache1SyncAgent = New LocalDataCache1SyncAgent() syncAgent.Synchronize() C# LocalDataCache1SyncAgent syncAgent = new LocalDataCache1SyncAgent(); syncAgent.Synchronize(); .NET Compact Framework 3.5 への対応による サーバー連携機能の強化と、開発環境の強化 開発環境の強化 Windows Mobile SDK 5.0 への対応 Device Emulator 3.0 セキュリティや証明書の設定など詳細に サーバーサイド連携の強化 WCF 連携 LINQ (Object, XML, DataSet) モバイル アプリケーションの 品質向上 モバイル アプリケーション向け 単体テストの実現 サーバーサイド /クライアント サイドにおける 2007 Office system の機能を最大限活用した .NET アプリケーション構築が可能 the 2007 Office system 機能の最大限活用 数多くの Office 製品をターゲット Excel, Word, Outlook, InfoPath, PowerPoint, Project, Visio Office 2003 もサポート 優れたユーザー体験をもつ Office ソリューション実現 リボン、作業ウィンドウ SharePoint ターゲットのアプリケーション開発 ワークフロー ソリューションの開発機能 Web パーツ開発の強化 配置の改善 ClickOnce 配置の実現による配置とセキュリティの強化 ドキュメント レベル (Excel 2007) Outlook フォーム領域 リボンの 開発 次世代 Web アプリケーションの実現 AJAX スタイルの リッチな Web アプリケーションの構築 ASP .NET AJAX への対応 強化された Web ページのデザイン ツール Web テストの強化による品質向上 次世代 Web プラットフォームの構築 サービス・プロセスの強化 REST スタイルのアプリケーション ASP.NET Web アプリケーション その他 ASP.NET Client Centric Server Centric “よりリッチな標準機能” Web Web AJAX Web AJAX Web Server Centric アプリケーション アプリケーション アプリケーション アプリケーション AJAX Web アプリケーション ASP.NET ASP.NET AJAX AJAX Futures Control Toolkit ASP.NET AJAX Extensions Microsoft AJAX Library ASP.NET AJAX ASP.NET その他 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 に依存していない ASP.NET AJAX のコア機能への対応 ASP.NET AJAX Extensions の統合 Visual Studio 対応 プロジェクト テンプレート、ツールボックス など AJAX アプリケーション開発の支援強化 インテリセンスの強化 型リファレンス、DOM 対応、パラメータ ツール チップなど 独自の JavaScript に対するインテリセンス対応 スクリプトのデバッグ機能 ブレークポイントの設定 変数・式に対するウォッチ機能 デザイナ機能の強化 分割ビュー デザインとソースを同時に表示し、 リアルタイムに同期 CSS デザイン機能の強化 マスタページのネストが可能に 新たな Web サーバーコントロール <asp:DataPager> ページング機能を提供 <asp:ListView> 編集機能付きのリスト表示 <asp:LinqDataSource> LINQ データをデータソースに SOAP ベースの REST スタイルの Web サービス Web サービス 企業間連携 マッシュアップ 標準準拠 ライトウェイト 信頼性の確保 Windows Communication Foundation によるサービスの実現 Web サービス標準のさらなる準拠 WS-AtomicTransaction 1.1 WS-ReliableMessaging 1.1 WS-SecureConversation WS-Coordination 1.1 WCF サービス開発のツール強化 ウィザード、プロパティ、ウィンドウの強化 WCF サービス ホスト/ Web テスト クライアント テスト用モジュールの作成が不要で、開発がスムーズに WCF と WF のシームレスな統合 ワークフローから WCF サービスの呼び出しが可能 (SendActivity, ReceiveActivity の追加) WCF サービス参照の強化 WCF 連携用の新たなアクティビティ REST (Representational State Transfer) Web のアーキテクチャ スタイル HTTP プロトコルに依存 Verb (GET、POST、PUT、DELETE) を忠実に 使用 リソースの表現 (識別) = URI URI = URL/URN ステートレス スケーラビリティの確保 サービス リポジトリ = ハイパーリンク View it Do it GETGET その他その他 抽出・読み出し “何か”を実行 副作用がない 副作用がある 等冪性が期待できる 等冪性は期待できない POST PUT DELETE その他 追加 置換 削除 新規作成 部分更新 ロールバック 呼び出し コントラクト [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 { ... } バインディング & ビヘイビア <bindings> <webHttpBinding> <binding name="myWebHttpBinding" /> </webHttpBinding> </bindings> <behaviors> <endpointBehaviors> <behavior name="myEndpointBehavior"> <enableWebScript /> <!-- <webHttp /> --> </behavior> </endpointBehaviors> </behaviors> JavaScript におけるオブジェクト表記のための フォーマット AJAX Web アプリケーションにおけるメッセージ 軽量かつ JavaScript との信頼性が高い 標準化されている (IETF の RFC) http://www.ietf.org/rfc/rfc4627.txt JavaScript VB.NET JSON → .NET Object var p = Dim p As New Person p.Name = “Mikio” { “Name” : “Mikio”, “Age” : 32 }; .NET Object → JSON p.Age = 32 JSON Public Class Person フォーマッタ JSON 表記 Public Name As String Public Age As Integer { “Name” : “Mikio”, “Age” : 32 } End Class 事実上スタンダードとなっている 更新情報の配信フォーマット ニュースサイトや 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 Atom Syndication Format:http://www.ietf.org/rfc/rfc4287.txt コントラクト [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 を返すサービスも作成可能 サービス実装クラス 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); } } } フィード データ生成コード 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); feed.Add(item); バインディング & ビヘイビア <bindings> <webHttpBinding> <binding name="myWebHttpBinding" /> </webHttpBinding> </bindings> <behaviors> <endpointBehaviors> <behavior name="myEndpointBehavior"> <webHttp /> </behavior> </endpointBehaviors> </behaviors> エンドポイント <services> <service name="PictureSyndication"> <endpoint contract="IPictureSyndication" binding="webHttpBinding" bindingConfiguration="myWebHttpBinding" behaviorConfiguration="myEndpoingbehavior" /> </service> <services> サービス ホスト .svc ファイル (IIS ホスト時) <%@ServiceHost Service="PictureSyndication" Factory="System.ServiceModel.Web.WebServiceHostFactory" %> もしくは ホスト アプリケーション コード (独自ホスト時) var host = new WebServiceHost(typeof(PictureSyndication)); // ServiceHost クラスを使用する場合は WebHttpBehavior が必要 host.Open(); ... host.Close(); データ アクセス機能の強化により、一貫性のある開発 スタイルで、さまざまなデータをスムーズに扱うことが可能 データ アクセスに関する 統一的な設計・プログラミング モデルの実現 LINQ (統合言語クエリ :