migration to wpf

26
GrapeCity ECHO Tokyo 2017 Migration to WPF エス・ビー・エス株式会社 第一システム部 須藤 隆一郎

Upload: -

Post on 21-Jan-2018

433 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Migration to WPF

GrapeCity ECHO Tokyo 2017

Migration to WPF

エス・ビー・エス株式会社

第一システム部

須藤 隆一郎

Page 2: 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導入支援 ・運用管理 ・アドオン開発

【事業内容】

Page 3: Migration to WPF

GrapeCity ECHO Tokyo 2017

会社概要

システム構築 基幹系システム構築

WEBアプリケーション構築

情報系システム分析・構築

ERP GLOVIAアドンオン開発

コンサルテーション システム構築コンサルテーション

ERP GLOVIA導入支援

SOX法内部統制コンサルテーション

システム移行

【主なソリューション実績】

運用管理 ERP SAP 運用管理

システム運用管理

システム保守サポート

インフラ ネットワーク ERP SAP/BASIS

ネットワーク構築サービス

サーバー導入支援サービス

その他 ユーザ向けITセミナ

[業種]

[業務]

•運輸・倉庫*•生命保険•建設・石油・化学•鉄鋼・繊維

•ホテル・旅館•卸・商社*•製造・小売*•教育・サービス

•医療・薬品•通信・広告•銀行・証券

•受発注管理•生産管理•顧客管理•配送管理•見積積算

•販売管理•債権債務管理•貿易管理•工程管理•販売促進

•給与管理•購買管理•原材料管理•財務会計•車両管理

「*」は特化業種

【取扱業種】

•建築・不動産•信販・リース*•損害保険*•食品・飼料*

•営業支援•物流管理•販売管理•受発注管理•生産管理

•顧客管理•配送管理•見積積算•営業支援•物流管理

•在庫管理•商品管理•管理会計•輸送管理•原価管理

•品質管理•予約管理

Page 4: Migration to WPF

GrapeCity ECHO Tokyo 2017

導入実績

Page 5: Migration to WPF

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 資産管理システム

Page 6: Migration to WPF

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はリリースタイミングを記載。プロダクトのビルドバージョンとは異なります。

Page 7: Migration to WPF

GrapeCity ECHO Tokyo 2017

自己紹介

須藤 隆一郎(すどう りゅういちろう)

• Visual Studio2005から.NETの開発を開始

以降、ローカル・Webの開発経験を交互に半分ずつ

• アプリ機能の共通化/部品化を主に担当

(グレープシティ社製品のカスタマイズもあり、

.NET Frameworkからの自作もあり)

• 現在は、技術導入支援が主な役割

※コンサルとは少し違うと自分では思っています。

Page 8: Migration to WPF

GrapeCity ECHO Tokyo 2017

自己紹介

これを導入すればこういうメリットがあって・・・

実際のところどうなの?どうしたらいいの!?

つまりこういうことで、御社での開発に当てはめると実際にはこういうメリットがあります。

お客様

お客様の上司

これを使うと良いらしいぞ!

コンサルタント/営業

確かにそういったメリットはありますが、御社の場合はここが特殊なので、メリットを生かすためにはこういった

課題があります。

Page 9: Migration to WPF

GrapeCity ECHO Tokyo 2017

本日のテーマ

Migration to WPF

Page 10: Migration to WPF

GrapeCity ECHO Tokyo 2017

概要

(VB6 ⇒)WinForms ⇒WPF

【題材】

【流れ】

開発の概要⇒関わり方⇒アプローチ方法

Page 11: Migration to WPF

GrapeCity ECHO Tokyo 2017

どのような開発か?

ORCの結果を検査・訂正する事務作業用のアプリケーションのマイグレーション

記入用紙

スキャン画像DB

記入 スキャン

検査・訂正

Page 12: Migration to WPF

GrapeCity ECHO Tokyo 2017

どのような開発か?

事務作業用アプリケーション群

1/300

Page 13: Migration to WPF

GrapeCity ECHO Tokyo 2017

WPFに何を求めていたのか?

アニメーション

コントロール外観変更の自由度

モニタサイズへの依存度の低さ

⇒ ORCの結果を表示するモニタを将来的に、より大きくしたい

構造のスパゲティ化の解消

⇒ VBの時代に職人芸化されたアプリをWindowsFromrsへ移植

⇒ ViewBox

⇒ MVVM

Page 14: Migration to WPF

GrapeCity ECHO Tokyo 2017

クライアント

WPF

Webサーバー

アプリケーション将来構想

クライアント

WPF

業務処理 DB

DB業務処理

最終的にはWebへ

Page 15: Migration to WPF

GrapeCity ECHO Tokyo 2017

私たちの立ち位置

• アプリケーション構成• イベント処理方針• 入力チェック方針• 例外処理方針• 命名規約...etc

• 共通処理部品• 例外処理部品• 入力支援部品

【標準化ドキュメント作成】

【共通部品開発】

標準化チーム

アプリ開発チーム

Microsoft

Page 16: Migration to WPF

GrapeCity ECHO Tokyo 2017

アプリケーション構成

XAML

コードビハインド(xxx.xaml.vb)

ビジネスロジックA

ドメインモデルA

ビジネスファサード

ビジネスロジックB

ドメインモデルB

ファサードモデル

ビジネスロジックC

ドメインモデルC

コマンド代替定義

バリデーター

ワーカーサービス

ビューモデル

DB

Page 17: Migration to WPF

GrapeCity ECHO Tokyo 2017

アプリケーション構成

XAML

コードビハインド(xxx.xaml.vb)

DB

ビジネスロジックA

ドメインモデルA

ビジネスファサード

ビジネスロジックB

ドメインモデルB

ファサードモデル

ビジネスロジックC

ドメインモデルC

コマンド代替定義

バリデーター

ワーカーサービス

ビューモデル

View

ViewModel

Model

Page 18: Migration to WPF

GrapeCity ECHO Tokyo 2017

アプリケーション構成

XAML

コードビハインド(xxx.xaml.vb)

DB

ビジネスロジックA

ドメインモデルA

ビジネスファサード

ビジネスロジックB

ドメインモデルB

ファサードモデル

ビジネスロジックC

ドメインモデルC

コマンド代替定義

バリデーター

ワーカーサービス

ビューモデル

クライアント サーバー

Page 19: Migration to WPF

GrapeCity ECHO Tokyo 2017

工夫ポイント

プロパティ群

処理群

バリデーター

ワーカーサービス

ビューモデル

コマンド代替定義定義

入力チェック

処理実行

ビューモデル

Page 20: Migration to WPF

GrapeCity ECHO Tokyo 2017

工夫ポイント(Before)

MainWindowXAML

コードビハインド(MainWindow.xaml.cs)

OK

CanShowMessage

ShowMessage

OkCommand

TextData

DelegateCommand.cs

業務処理

Page 21: Migration to WPF

GrapeCity ECHO Tokyo 2017

工夫ポイント(After)

MainWindowXAML

コードビハインド(MainWindow.xaml.cs)

OK

CanShowMessage

ShowMessage

OkCommand

TextData

DelegateCommand.cs

業務処理

Page 22: Migration to WPF

GrapeCity ECHO Tokyo 2017

工夫ポイント

MainWindowXAML

コードビハインド(MainWindow.xaml.cs)

OK

CanShowMessage

OkCommand

TextData

Cancel

XXX

CanCancelMessage

CancelCommand

XXXCommand

CanCancelMessage

ShowMessage

CancelMessage

CancelMessage

Page 23: Migration to WPF

GrapeCity ECHO Tokyo 2017

コードビハインド(MainWindow.xaml.cs)

工夫ポイント

MainWindowXAML

OK

CanShowMessage

OkCommand

TextData

Cancel

XXX

CanCancelMessage

CancelMessage

CancelCommand

XXXCommand

CanCancelMessage

ShowMessage

CancelMessage

Page 24: Migration to WPF

GrapeCity ECHO Tokyo 2017

迷ったところ

イベントベース

MVVMVS

Page 25: Migration to WPF

GrapeCity ECHO Tokyo 2017

工夫ポイント

入力コントロールはできるだけ添付プロパティで機能を付与

TextBox

アタッチ

アタッチ

アタッチ

業務用カスタムTextBox

置き換え可能

入力制限機能

フォーカス移動機能

…etc

汎用機能

Page 26: Migration to WPF

GrapeCity ECHO Tokyo 2017

ご清聴ありがとうございました