基盤の改善から既存アプリケーションの改善まで~既存資産と.NET~マイクロソフト株式会社デベロッパー & プラットフォーム統括本部開発ツール部西 拓生 ロバート
スピーカー紹介 / 略歴Name: Takuo Robert Nishi // 日系2世アメリカ人1998年~2000年 フリーランス デザイナー/イラストレーター/プログラマーとして活動開始 (米国カリフォルニア)主に Web 系:JavaScript, CSS, PERL/CGI, PHP2000年~2001年 Web 開発会社勤務 (米国アトランタ)デザイナー・アート ディレクター 兼 Web デベロッパー2001年~2004年 アプリケーション開発会社設立 (米国アトランタ)社内アプリ、Web サイト、SEO、業務プロセス改善、ブランディング2000年~2004年 美術大学にて Photoshop と Illustrator講師 (米国アトランタ)2004年~2005年 大学に戻る国際関係・国際法律専攻 (卒業)2006年~現在 マイクロソフト株式会社2006年~2007年:エンジニアとして下記プロダクトに携わるWindows Server 2003, Systems Management Server 2003, Operations Manager 2000/2005, System Center 製品シリーズ2007年~現在:テクニカル プロダクト マネージャとして下記に携わるVisual Studio Team System, Visual SourceSafe, 開発プロセス改善ロバートは、ここで見つかります:Blog) http://blogs.msdn.com/tanishiTwitter) robertnishi
アジェンダマイクロソフトのアプリケーション基盤:.NETFrameworkVB 資産の .NET 移行Java 資産や PHP 資産と .NET の整合性
マイクロソフトのアプリケーション基盤:.NETFramework
アプリケーション形態の変化.NET + Visual Studio のスキルで対応可能RIASmart Client組込みアプリClient / Serverクラウドモバイル アプリブラウザ アプリ
アプリケーション形態の変化単一のフレームワークで様々な環境に対応クラウド携帯電話クライアントサーバーブラウザー習得済み技術や資産の再利用様々な環境・プラットフォームに対応!
Microsoft .NET とは.NET は、すべての層のアプリケーションに、包括的かつ一貫性のあるプログラミング モデルと API の共通セットを提供します.NET は、好みのプログラミング言語で、ソフトウェア、サービス、デバイスを問わず、希望する方法で機能するアプリケーションをビルドできるようにします.NET を使用して、開発者の着想を、すばやく、機能豊富で応答性が高い、人々が使いたくなるアプリケーションとして実現できます
.NET がもたらす価値堅牢性一貫性魅力優れたエンド ユーザー エクスペリエンス強力かつ安全なアプリケーション基盤包括的かつ接続型のアプリケーションの実現
.NET が実現するアプリケーションの堅牢性高い安全性を備え、セキュアなアプリケーションを構築することを支援します。アプリケーションの安全な実行アプリケーションの状況とセキュリティ ポリシーを判断しセキュリティ設定を適用アクセス可能なリソースの種類および実行可能な操作の制限不正なメモリ利用を実行時にチェック開発者のミスを極力防ぎ、安全なアプリケーションの構築アプリケーションの種類に応じて予測される脅威への対応を標準で提供
.NET で実現する開発の一貫性.NET は様々なソフトウェア、サービス、デバイスに対して、使い慣れた開発言語を利用して一貫した開発モデルでの開発を行う事を支援します。使い慣れた生産性の高い開発言語による開発すべての機能を VisualBasic、C# などの単一の .NET 言語で実装可能IronPython、IronRuby などの動的言語や 3rd Party で提供されている.NET 対応 COBOL などを利用可能様々なディバイスに対して一貫した開発モデルを適用Windows アプリケーション、Web アプリケーション、モバイル アプリケーションに統一された UI デザイン、ロジック実装の方法を提供Web サービスの業界標準へ対応WS-*、REST、RSS などの Web サービスにおける業界標準に単一の機能を使用して対応
.NET で実現するアプリケーションの魅力開発者の発想を素早く実装し、エンドユーザーの生産性を高める事を支援します。エンドユーザーの生産性向上を支援する優れた表現能力操作ミスや学習コストを低減する直感的データ表現や操作方法を実現可能ツールとの連携による直感的なデザインの実現VisualStudio や ExpressionBlend を活用することで、開発者やデザイナーの能力や発想を効率よく、アプリケーションに反映ExpressionBlend では画面に動きを付けたり、部品の見た目のカスタマイズなどを行う事が可能優れた拡張性とパートナー、コミュニティによる拡張部品ユーザーインターフェイス 部品をはじめとする様々な拡張部品がパートナーやコミュニティから提供されており、アプリケーションをより操作性の高いものへと拡張可能
.NET がもたらす価値堅牢性一貫性魅力優れたエンド ユーザー エクスペリエンス強力かつ安全なアプリケーション基盤包括的かつ接続型のアプリケーションの実現
VIDEO: マイクロソフトが目指す10年後
マイクロソフト基盤
逆境の中で Opportunity を作る.NETFramework によるビジネス支援ビジネス戦略の真髄短期での要求が激減する中長期的に考えるアドバンテージビジネスにおいて IT に対する要求レベル現在の経済事情ダウンサイズDo more with less価値想定内乗り遅れ始め競合が増える中差別化をはかる? ? ?イノベーション少ないリソースで多くを遂げることが難しくなっていると言う事実時間また、差別化を図るアプリケーション開発を積極的に取り組むことにより、市場において競合他社より一歩先の場に位置付けることが可能になりますマイクロソフトのアプリケーション基盤と開発ツールを用いて、差別化を図るソフトウェアを素早く開発し、経済状況が芳しくない中でもビジネス強化を見込めます
.NETFramework の柔軟性Communication.NETFramework は高い親和性を兼ね備えたプラットフォームであるため、環境に応じたベスト プラクティスをプラットフォーム レベルで提供できます。また、業界標準に準拠することにより、他社プラットフォームとの高い相互運用性を実現します。管理者や技術者にかかる負担を下げながらも、基盤の改善を進め、ビジネス効率を上げて行くことが実現できます。CoreWorkflowWebPHPDataClientJava
VB 資産の .NET 移行
VB資産を .NET 化する利点は?展開が楽になる: 配置の柔軟性ClickOnce保守が楽になるさようなら、DLLHellアプリケーションのパフォーマンス向上.NETFramework に処理を任せる
展開が楽になる: 配置の柔軟性配置は従来のVB6アプリケーションの頭痛の種バージョンアップ版のインストールを徹底しづらいClickOnce.NET Framework 2.0で導入ノータッチデプロイメントの長所をそのままに短所を改善
保守が楽になるDLL HellとはDLL の更新により、更新前のバージョンを利用していたアプリケーションが動かなくなるバージョンごとに別々の DLL ファイルを作成した結果、同じような DLL があふれかえるDLL Hellの原因そして、DLL Hellの終焉
アプリケーションのパフォーマンス向上アプリケーションアプリケーションアプリケーションアプリケーションアプリケーションアプリケーションアプリケーションアプリケーション内での処理カスタム クラスライブラリ    .NET Framework クラスライブラリVisual Basicランタイム共通言語ランタイムOperating SystemVisual Basic 6.0Visual Basic 2008.NET Framework とアプリケーション (VB 6.0 との比較)
VB 資産を .NET 化するには【事実】コストは伴います時間技術スキル (VB.NET)開発ツール (Visual Studio)【事実】サポートするメカニズムがありますトレーニング メニュー マイクロソフト コンサルティング サービスパートナー様ホワイトペーパーガイドラインサードパーティー移行ツール
.NET 化計画時の検討要素 (1)アプリケーションのアップグレードVB アプリケーションのアップグレード プロセスを適用する必要に応じて機能を追加ビジネスの範囲を広げるアップグレードの利点以前の投資の大部分が (特にビジネス ロジックの領域で) 活用できるアプリケーションを書き換えるのに比べて、バグが混入する可能性が低い特に自動アップグレード プロセスを使用した場合に顕著になる既存の資産を活かす
.NET 化計画時の検討要素 (2)アプリケーションの再利用アプリケーションを更新する代わりアプリケーションの上に層を追加して、組織内の新しい Visual Basic .NET システムと相互運用できるようにする統合を目的としてアプリケーションを更新する場合Visual Basic 6.0 システムと Visual Basic .NET の両方のシステムをメンテナンスする必要が出てくる短期ソリューション:.NET 化の第一歩既存の資産をそのまま利用
.NET 化計画時の検討要素 (3)アプリケーションの書き換え最初から完全に書き換えること以外にアプリケーションを更新する方法がない場合元のアプリケーションを破棄して新しく作り直すビジネスの運用手順が徐々に変化し、アプリケーションの妥当性がなくなった場合アプリケーションの大部分、またはすべてを書き換えるコードがメンテナンス不可能なほど冗長、ドキュメントが古い、アプリケーションが複雑になりすぎた複数のバージョンのアプリケーションがさまざまな開発者によって作成され、最新版に対して作業できる人が現在ではだれもいないアプリケーションを書き換えることの利点最先端のテクノロジを使用して完全に新しいデザインを自由に作アプリケーションを書き換えることの欠点既存のアプリケーションの再開発であっても、新しいアプリケーションを作成することは、他の選択肢よりも費用がかかり、リスクも大きい新しいアプリケーションを書き換える場合、既存のアプリケーションに対するすべての投資を無駄にすることになる既存の資産の見直し・作り直し
.NET 化計画時の検討要素 (4)アプリケーションの置き換えアプリケーションを置き換えるのに適したパッケージを探すアプリケーションが行っていた作業を外部に委託現在の要件に完全に適合するパッケージが存在する可能性は低いため、ビジネス モデルを変更してパッケージに歩み寄る (非現実的)既存の資産を廃止
検討マトリックス
最新バージョンへの移行の利点
Java 資産や PHP 資産と .NET の整合性
Web サービス InteroperabilityJava アプリケーション.NET アプリケーションWeb アプリケーションWeb アプリケーションJava Server PagesWeb Service ClientWeb Service Client Web Service InterfaceWeb Service InterfaceMicrosoft .NET 3.5IBM WebSphere Java EEEnterprise JavaBeansC# Middle Tier ComponentsJDBCOracle
.NET のスマート クライアント.NET スマート クライアントWeb サービス InteroperabilityWeb Service クライアント Web Service InterfaceWeb Service InterfaceMicrosoft .NET 3.5IBM WebSphere Java EEEnterprise JavaBeansC# Middle Tier ComponentsJDBCOracle
PHP Web アプリケーションApache Axis2/CWeb サービス InteroperabilityWeb Service クライアント Web Service InterfaceMicrosoft .NET 3.5C# Middle Tier Components
.NET サービス層WS-* Advanced Web Services によるMessage-level SecurityWeb Service InteroperabilityService to Service InteroperabilityWS-* InterfaceWS-* InterfaceWS-* Interface.NET OrderProcessing ServicePHP Order Processing ServiceJava Order Processing Service.NET C# WCF ServiceWSO2 Web Services Framework for PHPWSO2 Web Services Application ServerADO.NET Data AccessPHP Data AccessJDBC Data Access他の RDBMs
まとめSmart Client組込みアプリRIAクラウドClient / Serverモバイル アプリブラウザ アプリ競争力の強化へ開発コスト生産性統一アプリケーション基盤基盤を活用した開発開発期間
再度・マイクロソフト基盤
© 2009 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.
appendix
Microsoft .NET.NET はマイクロソフトテクノロジーの代名詞.NET は 情報、人、システム、デバイスをつなぐためのコンセプト人と人の相互作用人とモノの相互作用モノとモノの相互作用
.NET Framework 採用の理由開発生産性強力な統合開発環境VBアプリケーション開発の延長線上での開発が可能クライアントからデータアクセスまで同一技術で実現可能既存資産の有効活用VB アプリケーションや ASP アプリケーションからの移行が容易豊富な開発要員(Visual Basic 経験者)一環された UI による新しい開発スタイルへの容易な移行多彩なユーザインターフェイスWeb フォーム / Windows フォームを状況によって選択可能スマートクライアント,スマートデバイス, Office クライアント 複雑な GUI を実現するコントロールが用意されている信頼性、将来性高いパフォーマンス、次世代の分散システム構築技術として注目Windows DNA 技術者からのスキルシフトが容易Web サービス、XMLへの対応によりバックエンドとシームレスな連携が可能
Interoperability を容易に一環した API セットで様々なプロトコルを統一するTools, Frameworks, SDKsBizTalk Services –“クラウドの Interop”Federated IdentityFederated ConnectivityFederated WorkflowBizTalk Server – “Interop 製品”LOB applications:SAP Siebel ApplicationsPeopleSoft EnterpriseJD EdwardsOneWorldJD Edwards     Enterprise OneB2B standards:XMLEDI (EDIFACT, ANSI X12, HIPAA)AS2SWIFTHL7RosettaNetLegacy (IBM):CICS, IMS3270, APPCCOBOL, RPGDB2, VSAMMessage buses:WebSphere MQ MSMQ/MSMQTTIBCO RendezvousTIBCO Enterprise    Message ServiceOther formats:SQL ServerSharePointOracle DBMSFile, FTPHTTP, SOAPPOP3 / SMTPWindows Communication Foundation – “Framework 内の Interop”Web 2.0POXRESTJSONRSS/ATOMSecurity:WS-Security, WS-SecureConversation, WS-Trust Reliability and Transactions: WS-Reliable Messaging, WS-Coordination, WS-AtomicTransactionUnified protocols:ASMXWSE.NET RemotingCOM+MSMQMessaging: SOAP, WS-Addressing, MTOM Metadata: WSDL, WS-MetadataExchange, WS-Policy
参考情報VBマイグレーション センターhttp://www.microsoft.com/japan/msdn/vbasic/migration/VB マイグレーション Tipshttp://msdn.microsoft.com/ja-jp/vbasic/cc707256.aspxVisual Basic .NET へのアップグレードを円滑に行うための Visual Basic 6.0 アプリケーションの準備http://msdn.microsoft.com/ja-jp/library/aa260644(VS.60).aspxMSDNhttp://www.microsoft.com/japan/msdn/Visual Basicデベロッパー センターhttp://www.microsoft.com/japan/msdn/vbasic/Visual Studioデベロッパー センターhttp://www.microsoft.com/japan/msdn/vstudio/ASP.NETデベロッパー センターhttp://www.microsoft.com/japan/msdn/asp.net/スマート クライアント デベロッパー センターhttp://www.microsoft.com/japan/msdn/smartclient/導入事例紹介http://www.microsoft.com/japan/showcase/
PLUS ALPHA
マイグレーションを始める前にやるかorやらないか
バージョンの遷移ライブラリと CLR の変遷3.5Add3.03.0KeepAdd1.01.12.02.02.0V-UPKeepKeepV-UP1.01.12.02.02.0V-UPKeepKeepV-UP包含共存
共通言語ランタイムとは(Common Language Runtime , CLR).NET コード (C++, C#, VB.NET, など)CLRメモリ管理例外処理セキュリティスレッド管理ガベージコレクションその他多数!
バージョン番号とアップグレード3.53.0.NET 4Upgrade?.NET 2.0
Side-by-Side 実行同一プロセス配下3.53.0.NET 2.0.NET 4ホストプロセス

基盤の改善から既存アプリケーションの改善

Editor's Notes

  • #7 .NET の話に入り込む前に、まずはアプリケーションの形態の変化について少しだけ触れさせて下さい。クライアント上で個別に動作するアプリケーションに始まり、ビジネス面においてはクライアント・サーバーのアプリケーションや、ブラウザー アプリケーション。近年においてはスマート クライアントだけにとどまらず、Rich Interactive/Internet Application(RIA) やモバイル アプリケーション… ここには載せていませんが、バーチャル アプリケーション (仮想化されたアプリケーション) そして将来的にはクラウドのアプリケーションと言う風に、同じアプリケーションでありながらも、色んなプラットフォーム上で動作する必要性がでてきています。要は、時代の流れとともに、アプリケーションにはフレキシビリティ・柔軟性が求められるようになっています。ここでは、上に「単一のフレームワークで様々な環境に対応」と書いてありますが、これは何をさすかと言うと、.NET と言う共通のアプリケーション基盤と、Visual Studio と言う開発ツールで .NET 用のアプリケーションを開発することにより、今現在あるニーズと今後のニーズと言ったところにも対応していくことが可能になるように、マイクロソフトは構想をしてきています…と言うことです。マイクロソフトのテクノロジで言うと VB。他のテクノロジで言うとそれは JAVA であったり、Flash であったり、PHP であったり…各プラットフォーム (環境) に合わせて作る。.NET を活用することで、All Platform を通してアプリケーションが活用できる。A secure, reliable, high-performance development framework that enables developers to easily reuse skills and assets across cloud, web, desktop, server and devicesProvides developers with higher levels of abstraction, thus allowing them to focus on the business logicIncreasing developer productivity while preserving compatibility are the key drivers of every .NET release
  • #9 今の.NETPillars堅牢性 (けんろうせい).NET は強力で、これまでになく高い安全性を備えているため、信頼性と拡張性の高いソリューションをビルド、テストおよび配置するのに役立ちます。これは、アプリケーション レベルの話ですね。→ 前のセッションにおいて、パスワードのお話もありましたね。これは、OS レベルの制御・管理であり、Active Directory や Active Directory の Federated Service などを活用することや、Organization Unit(OU) レベルでのグループ ポリシーをなどを活用してセキュリティを万全にします。一貫性.NET は、包括的で接続型の開発フレームワークを提供することにより、好みのプログラミング言語で、ソフトウェア、サービス、デバイスを問わず、希望する方法で機能するアプリケーションをビルドできるようにします。魅力.NET では、開発者の着想を、すばやく、エンドユーザーの生産性を高めるのに役立つ、機能豊富で応答性の高いアプリケーションとして実現できるようにすることで、優れたユーザー エクスペリエンスを構築できます。(new .NET pillars)One Set of Skills: クライアント、ブラウザ、サーバー、モバイル、クラウドといった複数のプラットフォームをターゲットとしたアプリケーションの開発を実現します (マイクロソフトのプラットフォームとして、マイクロソフトのアプリケーションもそのように構成されているため、弊社の製品を拡張するにおいても、それが容易になります)Speed to Solution: 問題を直すことに時間を要するのではなく、あるべきソリューションを開発できるように… 決して無駄ではないことであっても、時間を割くところをソリューションに向けて…Interoperability: マイクロソフトの技術だけに特化せず、マイクロソフト以外のテクノロジやツールとのインテグレーションを実現します。このフレキシビリティがあるからこそ、Non-Microsoft なアプリケーションの拡張も、.NET の上で実現することが更に簡単にできます。
  • #11 このように、.NET はアプリケーションのセキュリティ、フレキシビリティ・柔軟性を確保するための基盤 (フレームワーク)を提供しているのです。
  • #31 On the left you can see Trade 6.1 running in an “all-Java” configuration, where each tier is implemented in Java running in a J2EE application server such as WebSphere.On the right you can see the .NET StockTrader, running in an “all-.NET” configuration, with each tier implemented in .NET.However, because both WebSphere and .NET StockTrader expose their services as industry standard Web Services, each front end application (JSP and ASP.NET) can access the business service layer and hence data access technology of the other platform. This is bi-directional interoperability based on open standards. On the .NET side, WCF is driving both the service definitions on the middle tier, as well as the ASP.NET client operations against the remote services. On the WebSphere side, Apache/Axis as integrated within WebSphere drive the service interactions.
  • #32 As a service-based application, any user interface tier based on the industry-standard WS-* protocols can plug in. .NET StockTrader 2.0 ships with a Windows Presentation Foundation Smart Client application that illustrates this as an alternative to a Web-based UI. It can work with both .NET and Java EE middle tiers.
  • #33 WSO2 has also created a PHP implementation of the front-end, which uses the WSO2 Web Services Framework for PHP to connect to any available middle tier (business services); on either .NET, PHP or Java. The WS02 Web Services Framework for PHP supports a full range of WS-* standards, for advanced interoperability scenarios including full message security between .NET and PHP-based services.
  • #34 .NET StockTrader also now includes a demonstration of interoperability over Advanced Web Services (WS-*) standards. WS02 has published both a PHP and Java-based implementation of the Order Processing Service. .NET StockTrader Business Services can be configured, using WS-* for message-level security (both service and client X.509 certificates) to work with any of these implementations; using the same WCF client class, since WCF supports these advanced industry standards out-of-the-box. WS02 is an open-source base group, and you can download their PHP and Java StockTrader components from http://wso2.org/interop/stocktrader
  • #46 Abstracts code from the operating system it is running onEnables the code to run in a managed environment, relieving the developer from the need to worry about things such as:Memory managementThread managementException handlingGarbage collectionSecurity
  • #47 Prior releases of new .NET Framework could have created versioning difficulties for developers with existing code.NET Framework 4 introduces a new concept that easily solves the versioning concerns
  • #48 CLR 4 enables in-process side-by-side executionEasily combine existing development assets from previous versions with new ones, running under the same host processSaves time and money by running existing code along with new code, no need to invest in time in handling versioning compatibilityIn-process side-by-side hosting enables an application to load and activate multiple versions of the common language runtime (CLR) in the same processOlder components continue to use the same CLR version, and new components use the new CLR versionFor example, you can run applications that are based on the .NET Framework 2.0 SP1 and applications that are based on .NET Framework 4 Beta 1 in the same process