migration to wpf
TRANSCRIPT
GrapeCity ECHO Tokyo 2017
Migration to WPF
エス・ビー・エス株式会社
第一システム部
須藤 隆一郎
GrapeCity ECHO Tokyo 2017
会社概要
商号 エス・ビー・エス株式会社
所在地〒164-0001東京都中野区中野3-33-3 インツ中野ビル
創業 1985年3月
従業員 98名(2017年8月現在)
URL http://www.sbsnt.co.jp/
ソフトウェア開発 •受託システム開発 ・パッケージシステム開発 ・運用管理 ・保守サービス•要件定義 ・基本設計 ・詳細設計 ・DB設計•運用設計 ・ハードウエア構成設計 ・ネットワーク構成設計•プログラム設計 ・プログラム開発 ・テスト設計 ・プロジェクト管理
システムコンサルティング
•最新技術の動向調査 ・分析 ・教育•システム導入の企画 ・提案
ERP •SAP/GLOVIA導入支援 ・運用管理 ・アドオン開発
【事業内容】
GrapeCity ECHO Tokyo 2017
会社概要
システム構築 基幹系システム構築
WEBアプリケーション構築
情報系システム分析・構築
ERP GLOVIAアドンオン開発
コンサルテーション システム構築コンサルテーション
ERP GLOVIA導入支援
SOX法内部統制コンサルテーション
システム移行
【主なソリューション実績】
運用管理 ERP SAP 運用管理
システム運用管理
システム保守サポート
インフラ ネットワーク ERP SAP/BASIS
ネットワーク構築サービス
サーバー導入支援サービス
その他 ユーザ向けITセミナ
[業種]
[業務]
•運輸・倉庫*•生命保険•建設・石油・化学•鉄鋼・繊維
•ホテル・旅館•卸・商社*•製造・小売*•教育・サービス
•医療・薬品•通信・広告•銀行・証券
•受発注管理•生産管理•顧客管理•配送管理•見積積算
•販売管理•債権債務管理•貿易管理•工程管理•販売促進
•給与管理•購買管理•原材料管理•財務会計•車両管理
「*」は特化業種
【取扱業種】
•建築・不動産•信販・リース*•損害保険*•食品・飼料*
•営業支援•物流管理•販売管理•受発注管理•生産管理
•顧客管理•配送管理•見積積算•営業支援•物流管理
•在庫管理•商品管理•管理会計•輸送管理•原価管理
•品質管理•予約管理
GrapeCity ECHO Tokyo 2017
導入実績
GrapeCity ECHO Tokyo 2017
導入実績
製品名導入件数
システム事例・業種
ActiveReports for .NET 8 金融系基幹システム、物流システム
SPREAD(for Windows Forms、ASP.NET)
9 販売管理システム、在庫管理システム
InputMan(for Windows Forms、ASP.NET)
9 販売管理システム、在庫管理システム
MultiRow for Windows Forms 2 販売管理システム
ComponentOne製品 2 勤怠管理システム
Forguncy 3 資産管理システム
GrapeCity ECHO Tokyo 2017
開発実績
VB6
ASP
VB.NET
VB.NET
WPF
ASP.NET or MVC
ASP.NET
ASP.NET MVCVB.NET
ASP.NET MVC
マイグレーション
WEB化
.Net Framework 1.1 2.0 3.5 4.0 4.5 4.6
※.NET Frameworkはリリースタイミングを記載。プロダクトのビルドバージョンとは異なります。
GrapeCity ECHO Tokyo 2017
自己紹介
須藤 隆一郎(すどう りゅういちろう)
• Visual Studio2005から.NETの開発を開始
以降、ローカル・Webの開発経験を交互に半分ずつ
• アプリ機能の共通化/部品化を主に担当
(グレープシティ社製品のカスタマイズもあり、
.NET Frameworkからの自作もあり)
• 現在は、技術導入支援が主な役割
※コンサルとは少し違うと自分では思っています。
GrapeCity ECHO Tokyo 2017
自己紹介
これを導入すればこういうメリットがあって・・・
実際のところどうなの?どうしたらいいの!?
つまりこういうことで、御社での開発に当てはめると実際にはこういうメリットがあります。
お客様
お客様の上司
これを使うと良いらしいぞ!
コンサルタント/営業
私
確かにそういったメリットはありますが、御社の場合はここが特殊なので、メリットを生かすためにはこういった
課題があります。
GrapeCity ECHO Tokyo 2017
本日のテーマ
Migration to WPF
GrapeCity ECHO Tokyo 2017
概要
(VB6 ⇒)WinForms ⇒WPF
【題材】
【流れ】
開発の概要⇒関わり方⇒アプローチ方法
GrapeCity ECHO Tokyo 2017
どのような開発か?
ORCの結果を検査・訂正する事務作業用のアプリケーションのマイグレーション
記入用紙
スキャン画像DB
記入 スキャン
検査・訂正
GrapeCity ECHO Tokyo 2017
どのような開発か?
事務作業用アプリケーション群
1/300
GrapeCity ECHO Tokyo 2017
WPFに何を求めていたのか?
アニメーション
コントロール外観変更の自由度
モニタサイズへの依存度の低さ
⇒ ORCの結果を表示するモニタを将来的に、より大きくしたい
構造のスパゲティ化の解消
⇒ VBの時代に職人芸化されたアプリをWindowsFromrsへ移植
⇒ ViewBox
⇒ MVVM
GrapeCity ECHO Tokyo 2017
クライアント
WPF
Webサーバー
アプリケーション将来構想
クライアント
WPF
業務処理 DB
DB業務処理
最終的にはWebへ
GrapeCity ECHO Tokyo 2017
私たちの立ち位置
• アプリケーション構成• イベント処理方針• 入力チェック方針• 例外処理方針• 命名規約...etc
• 共通処理部品• 例外処理部品• 入力支援部品
【標準化ドキュメント作成】
【共通部品開発】
標準化チーム
アプリ開発チーム
Microsoft
GrapeCity ECHO Tokyo 2017
アプリケーション構成
XAML
コードビハインド(xxx.xaml.vb)
ビジネスロジックA
ドメインモデルA
ビジネスファサード
ビジネスロジックB
ドメインモデルB
ファサードモデル
ビジネスロジックC
ドメインモデルC
コマンド代替定義
バリデーター
ワーカーサービス
ビューモデル
DB
GrapeCity ECHO Tokyo 2017
アプリケーション構成
XAML
コードビハインド(xxx.xaml.vb)
DB
ビジネスロジックA
ドメインモデルA
ビジネスファサード
ビジネスロジックB
ドメインモデルB
ファサードモデル
ビジネスロジックC
ドメインモデルC
コマンド代替定義
バリデーター
ワーカーサービス
ビューモデル
View
ViewModel
Model
GrapeCity ECHO Tokyo 2017
アプリケーション構成
XAML
コードビハインド(xxx.xaml.vb)
DB
ビジネスロジックA
ドメインモデルA
ビジネスファサード
ビジネスロジックB
ドメインモデルB
ファサードモデル
ビジネスロジックC
ドメインモデルC
コマンド代替定義
バリデーター
ワーカーサービス
ビューモデル
クライアント サーバー
GrapeCity ECHO Tokyo 2017
工夫ポイント
プロパティ群
処理群
バリデーター
ワーカーサービス
ビューモデル
コマンド代替定義定義
入力チェック
処理実行
ビューモデル
GrapeCity ECHO Tokyo 2017
工夫ポイント(Before)
MainWindowXAML
コードビハインド(MainWindow.xaml.cs)
OK
CanShowMessage
ShowMessage
OkCommand
TextData
DelegateCommand.cs
業務処理
GrapeCity ECHO Tokyo 2017
工夫ポイント(After)
MainWindowXAML
コードビハインド(MainWindow.xaml.cs)
OK
CanShowMessage
ShowMessage
OkCommand
TextData
DelegateCommand.cs
業務処理
GrapeCity ECHO Tokyo 2017
工夫ポイント
MainWindowXAML
コードビハインド(MainWindow.xaml.cs)
OK
CanShowMessage
OkCommand
TextData
Cancel
XXX
CanCancelMessage
CancelCommand
XXXCommand
CanCancelMessage
ShowMessage
CancelMessage
CancelMessage
GrapeCity ECHO Tokyo 2017
コードビハインド(MainWindow.xaml.cs)
工夫ポイント
MainWindowXAML
OK
CanShowMessage
OkCommand
TextData
Cancel
XXX
CanCancelMessage
CancelMessage
CancelCommand
XXXCommand
CanCancelMessage
ShowMessage
CancelMessage
GrapeCity ECHO Tokyo 2017
迷ったところ
イベントベース
MVVMVS
GrapeCity ECHO Tokyo 2017
工夫ポイント
入力コントロールはできるだけ添付プロパティで機能を付与
TextBox
アタッチ
アタッチ
アタッチ
業務用カスタムTextBox
置き換え可能
入力制限機能
フォーカス移動機能
…etc
汎用機能
GrapeCity ECHO Tokyo 2017
ご清聴ありがとうございました