Magic eDeveloper V10 の新機能概要
V10を使いたくなるこれだけの理由
V10の新機能のうち、エンドユーザにとっての魅力は次のような点にあります。
新機能 | 利点 |
---|---|
ユーザインターフェースの向上 | Windows XPテーマをサポートするようになりました。 |
マルチタスク | オンラインタスクを複数同時並行して実行できます。 |
Unicodeサポート | マルチリンガル対応のアプリケーションの開発も簡単にできるようになりました。 |
コンポジットアプリケーションデザイン | XMLやWebサービスのサポートが大幅強化されました。また、各種ウィザードによりシステム設計・開発・拡張の可能性が広がりました。 |
一方、開発者にとっての V10 の新機能には、次のようなものがあります。
新機能 | 利点 |
---|---|
効率良く使いやすいタスクエディタ | V10のタスクエディタは、すっきり見通しよくなり、入力の手間を軽減するようインターフェースが一新されました。 |
DATETIME型サポート | リレーショナルDBMSで使われるDATETIME型を、Magicも標準でサポートするようになりました。 |
色・フォント・キーボード定義ファイルの分離 | 色定義ファイルとフォント定義ファイルを用途によって分けることにより、色やフォントのカスタマイズの自由度が上がりました。 |
効率の良いデバッグ機能 | 多くの便利なツールを含む本格的なデバッガが搭載されています。 |
プロジェクトベースの開発 | V10のプロジェクトは、リポジトリごと、プログラムごとに分けて、ソースファイルの形式で管理します。 |
プロジェクトのバージョン管理 | バージョン管理システムと組み合わせて、グループ開発、バージョン管理、WANを介しての遠隔地での共同開発などが容易となりました。 |
スタジオとランタイムの分離 | 開発時の安全性が高まり、また、テストをより実際の環境に近い形で行うことができます。 |
以下にこれらについて説明していきます。
参考: ページレイアウトの関係で、スクリーンイメージは縮小したものを表示しています。各イメージには原寸大のイメージがリンクされているので、詳細を見たい場合には、イメージをクリックしてください。
エンドユーザ向けの新機能
ユーザインターフェースの向上
Magic eDeveloper V10 では、ユーザインターフェースが大幅に向上しました。
Magic eDeveloper V10で新規作成するアプリケーションはもちろん、旧バージョンから移行するアプリケーションであっても、ユーザインタフェースが自動的に、WindowsXPスタイル準拠になります。つまり旧バージョンで開発された既存のMagicアプリケーションは、より豊富になったコントロールやフレキシブルコンテクストメニュー、タスクデータのプリロード、スクロールバー、すぐに使えるActiveXコントロールなど、XPで使用可能となった数多くの機能をV10に移行することで使えるようになり、エンドユーザアプリケーションのルックアンドフィールを劇的に改善します。
エンドユーザは、Magic eDeveloperの提供する表示に関するカスタマイズ機能、たとえばテーブルのカラムレイアウトを変更して並びの順序を変えたり、フォームの位置や大きさなどを自由に変更したりする操作がとても快適になっていることを感じられることでしょう。
Magic eDeveloper V10を使えば、とても簡単に既存のアプリケーションインタフェースを最新の流行に合わせることができます。GUI拡張ウィザードを使用すれば、アプリケーションインタフェースのスタイルやデザインを新しくすることで、貴社アプリケーションをより洗練されたものへとアップグレードさせることができるのです。
Windows コントロール
Magic eDeveloper V10は、WindowsXPのルックアンドフィールに準拠したユーザインタフェースを提供します。
下図は、XPテーマを使わない場合(右側の図)と、XPテーマを使う場合(右側)を比較したものです。
XPテーマを使うことにより、次のような改善が見られます。
- 全体的に、コントロールがXPテーマに対応したルック&フィールになります。
- 全体的にホットトラックが有効になります。ホットトラックとは、マウスカーソルの位置がよくわかるように、各コントロールの上にカーソルが移動すると、色や影が変わる機能です。上の図では、テーブルコントロールの「名前」のタイトル行の色が変わっているのが見えます。 タブコントロールのタブの表示方法にバリエーションが増えます。上の図では、タブは2段に分けて表示され、各タブにアイコンを付けています。2段に分けて表示するほかに、1段でスクロール可能な表示にすることもできます。
- この他、上図には出ていませんが、次のようなコントロールのバリエーションもサポートされています。
- チェックボックス: ボタンスタイル、3ステータス、複数行、イメージラベル
- ラジオボタン: ボタンスタイル、複数行ラベル、イメージラベル、異なったスタイルのラジオボタンのグループ化
- テーブルコントロール: カラムの表示順序を、ドラッグ&ドロップによって変更することができます。
なお、XPの画面テーマの利用は、Magic eDeveloperの環境設定により制御できます。画面デザイン上の関係で、旧バージョンのユーザインターフェースのままにしておきたい場合には、XP上で実行してもXPテーマを使わないようにすることもできます。
フォーム状態の保存・復元
V9Plusまでは、フォームのサイズやコントロールのサイズ、位置などをいったんマウスで変更しても、タスクを閉じて再度開いた場合には、すべてリセットされてしまいました。V10ではフォーム特性の設定をひとつ入れるだけで、ユーザごと、フォームごとに閉じたときの状態を保存し、次回に自動的に復元されるようにできます。
Tab・パーク
V10では、フォーム上のTAB順序の自由度が大きくなりました。
V9Plus までは、オンラインフォーム上のカーソルの TAB 順序(移動順序)は、レコードメインでのセレクトコマンドの順番に従っていました。V10 では、データビューエディタでの項目の定義順序と、オンラインフォーム上での TAB 順序とは関係がなくなり、次のいずれかの方法により TAB 順序が決められます。
- 手動 TAB 順序: ユーザが見て自然な順序(上から下、左から右)を自動的に判断して、TAB順序が決定されます。
- 自動 TAB 順序: フォームエディタで、開発者が明示的にTAB順序を指定します。式を使ってダイナミックに変更することもできます。
下図は、フォームエディタでTAB順序を表示させたところです。
コンテキストメニュー
V10では、メニュー設計の自由度も向上されています。
V9Plusで は、メニューリポジトリにおいて、1 番は基本プルダウンメニュー、2 番は基本コンテキストメニュー と固定されていました。V10ではこのような決まりはなくなり、プルダウンメニューやコンテキストメニューは自由に設定できるようになりました。
また、V9Plusではフォーム単位でコンテキストメニューを設定可能でしたが、V10では更に細かく、コントロール単位でメニューを設定できるようになりました。また、メニューリポジトリのプルダウンメニュー定義を単位として、動的にメニュー構造にサブメニューを追加・削除できます。
GUIフォームのイベントハンドリング
イベントハンドリングの柔軟性も向上しました。
コントロール名を主体にしてコントロール定義を行うことで、フォーム作成の前にコントロール名に対応するロジックユニットを定義したり、同じロジックユニットを異なるフォーム上のコントロールから利用したり、グローバルなロジックユニットを定義したりといった柔軟な使い方を可能にします。
また、イベント定義においてパラメータを明示的に宣言できるようになり、イベントの検出と処理を確実なものとしています。
マルチタスク
V10では、複数のオンラインプログラムが同時に実行できるようになりました。これにより、使用感と作業性の良いユーザインターフェースを設計することができます。
一つのアプリケーション内での並行処理をサポート
Magic eDeveloper V10のランタイムエンジンは、マルチスレッドで動作するパフォーマンスに優れたフォアグラウンドエンジンであり、同じアプリケーションにおいて複数の機能を並行動作させることができます。例えば、受注入力をしている途中で顧客マスタの新規入力や更新をしたり、印刷や集計のバッチプログラムを起動したあと、その終了を待たずに別のオンラインプログラムを利用したり、あるいはさらに別のバッチプログラムを起動することができるため、エンドユーザの使用感と作業性は格段に向上します。
MDIテクノロジーの採用
MDI (Multiple Document Inteface) というのは、右図に見るように、ひとつのMagicのウィンドウの枠内で、複数のオンラインプログラムを実行・表示させる表示方法です。
このインターフェースは、V9Plusまでのインターフェースと似ていますが、V10では複数のオンライン・バッチプログラムを同時並行して実行することができます。
SDIにも対応
Magic eDeveloper V10では、複数個のプログラムを同時に起動し、右図のように、それぞれのウィンドウを別々に表示させることができます。このように、Magicのウィンドウ枠ではなく、タスクのフォームを独立したウィンドウとして表示させる方法を SDI (Single Document Interface) と呼びます。
この場合、同じプログラムを複数回起動することも可能であり、また起動させるプログラム間の相互依存性によって制約を受けるということはありません。これにより、アプリケーションのサブセットをそれぞれ独立したSDIウィンドウに表示させることにより、見やすく分かりやすい画面を構成します。
Unicodeサポート
Magic eDeveloper V10では、Unicodeをサポートしました。これにより、マルチリンガル対応の海外展開可能なアプリケーションを開発できるようになりました。
オンライン処理でのUnicode文字列の表示やUnicodeデータ入力はもちろん、各種ファイルIO、データベースのデータにも Unicode を利用することができます。一方で、V9Plusまでのアプリケーションとの互換性を保つため、ANSI (日本語の場合は Shift-JIS)文字コードのサポートもそのまま残されていますので、既存のアプリケーションの移植にあたっても心配はありません。
コンポジットアプリケーションデザイン
複雑化する一方のIT環境で、よりすばやくビジネス環境の変化に対応するための方法として、コンポジットアプリケーションデザインが注目を集めています。その中心となるテクノロジは、WebサービスとXMLです。
Magic eDeveloper V10では、コンポジットアプリケーションデザインに対応した機能が、非常に使いやすい形で提供されています。
XMLビューによりXMLがテーブルのように扱えます
Magic eDeveloper V10では、XMLドキュメントの取り扱いは非常に簡単で、すぐに習熟することができるため、開発者はアプリケーション内でのXMLデータ処理能力を飛躍的に高めることができます。このことは、システム統合作業を単純化し、生産性を上げるためにはとても重要なことです。XMLドキュメントはMagic eDeveloper V10において、アプリケーションを構成する一つのデータソースタイプとして取り扱われます。これによってXMLデータの扱いが透過的になり、開発者はXML文の構造階層を管理するわずらわしさから解放されことになります。
Magic eDeveloper V10では、XMLスキーマは一つのデータベーステーブルとして参照できるため、開発者がXMLスキーマをより論理的に把握することが可能になり、直観的に理解できるようになっています。XMLドキュメント全体をブラウジングしてデータの抽出や修正をしたり、新規データの挿入をしたりする作業は、Magicのルールエンジンの管理下においてすべて実行されるため、開発者は、データベースのテーブルを扱うのと全く同じように、XML データを利用することができます。
Webサービスサポートが強化されました
Magic eDeveloper V10 では、Webサービスのインフラストラクチャを全面的に刷新し、以下のような最新の Webサービス機能を簡単に利用できるようなりました。
- SOAP 1.1、1.2
- アタッチメント (MIME,DIME)
- WSセキュリティ
サービス指向のコンポジットアプリケーション開発
アプリケーション開発は今後コンポーネントを活用したコンポジットアプリケーションが主流になります。Magic eDeveloper V10には、WebサービスやDLLおよびストアドプロシージャなどのコンポーネントを簡単に作成できる使いやすいウィザード機能があります。またMagicアプリケーションのオブジェクトをコンポーネントとして定義できます。/p>
コンポーネントをエクスポートすることでMagic eDeveloperアプリケーション間でリソースを共有したり、アプリケーションの各リビジョン毎の配布作業を効率よく行うことができます。Magic eDeveloper V10はコンポーネントをカプセル化されたモジュールとして利用することにより、組込まれたサービス機能の内部的なロジック修正などの影響を受けない透過性を確保しています。
Magic eDeveloper V10がサポートするビジネスコンポーネントのタイプには次のものがあります。
- Webサービス
- ダイナミックリンクライブラリー(DLL)
- RDBMSのストアドプロシージャ
- Javaのクラス
先進のプログラム開発新機能
効率よく使いやすいタスクエディタ
Magic eDeveloper V10では、タスクエディタのデザインが改良され、タスク全体の見通したよくなり、式入力が簡単化されました。その他細かなところに至るまで、開発効率の向上に十分考慮を払った設計になっています。
理解を容易にする改良されたナビゲーション
Magic eDeveloper V10のタスク構成にはデータビュー定義、ロジック定義、そしてインタフェースデザインという三つの主要な柱がありますが、これらは互いに明確に分かれて定義されるようになりました。
- データビューエディタ
- データビューは、タスクで扱うデータの定義を行います。ここには、次のような定義があります。
-
- メインテーブルとその項目
- リンクテーブルとその項目
- パラメータと変数
- 宣言 (V9Plusでは、DBテーブルで定義していたもの)
- ロジック エディタ
- ロジックエディタは、このタスクにおけるデータ操作のロジックが定義されます。これには、タスクレベル、レコードレベル、グループレベル、項目レベルでの前・後処理、イベントハンドラなどがあります。
- フォーム エディタ
- フォーム エディタは、データの表示、配置に関する定義を行うものです。これは V9Plus でのフォームテーブルとほぼ同じですが、V10では、各コントロールに定義されたロジックを参照できるだけでなく、そのロジックに直接アクセスしたり新しいハンドラを自動的に作成したりできるようになっていて、開発効率の向上に寄与しています。
見通しのよさ
- 全ロジックユニットが表示される
- V9Plusでは、ロジックユニット (ハンドラレベル)ごとに実行フローが表示されるようになっていましたが、V10ではすべてのロジックユニットが、ロジックビューで一度に表示されるようになっています。また、それぞれのロジックユニットの定義順序は実行の動作に影響を与えませんので、開発者が見やすく理解しやすい順序で定義していくことができます。さらに、V9Plusでは、式やパラメータなどが設定されていない項目でも、「0」が表示されていましたが、V10では、未設定項目は表示されないようになりました。
- このため、タスクのロジックの全体像が把握しやすくなり、すっきりした画面で見落としや間違いなどのミスを減らすことができるようになっています。
- ロジックユニットごとの展開・縮小
- ロジックビューでは、ロジックユニットごとに表示を展開 (処理フローを表示する)、あるいは縮小(処理フローは表示せず、ハンドラのレベルのみを表示する) させることができます。
- 下図は、ロジックビューの内容をすべて縮小させたものです。
展開・縮小を活用すれば、処理フローの長いロジックユニットが多数あるタスクであっても、全体を見失うことがありません。
操作の煩雑さ、見つけにくさを減らす
- 特性シートの活用 (ズーム回数の減少)
- Magic eDeveloper V10では、各タスク要素のすべての特性を特性シートから参照、修正することができますので、パラメータ設定を行うためにズームする回数が少なくなりました。
- これにより、開発時に開発効率が向上するほか、保守時にも、奥深いダイアログで設定されているものを見落とす可能性が軽減されます。
- タスク制御とタスク特性と統合
- V9Plusでの タスク制御 ダイアログと、タスク特性 ダイアログが統合され、タスク全体にわたるパラメータの設定は、タスク特性ダイアログで、タブで切り替えて表示されるようになりました。
式定義の簡単化
Magic のプログラム作成時には、式を定義することが頻繁にありますので、式定義が簡単に行えることが開発効率向上のために重要となります。 Magic eDeveloper V10では、簡単に式を定義するための機能が充実しました。
- クイック式入力
- V9Plus では、式を新規に定義する場合には、式番号を入力するカラムから、F5 でズームして式テーブルを開き、F4 で新規行を作成し、式を定義する、という手順を踏む必要がありました。
- V10 では、クイック式入力 機能があり、この一連の処理すばやく行うことができるようになりました。クイック式入力で式を入力するには イコール文字 ( = )をタイプして、クイック入力ウィンドウを開き、式を書きます。これだけの操作で、式テーブルに式が追加され、式番号が欄に設定されます。
- 単純な式の場合、どの場所からでも直接その値を入力できるため、そのつど式テーブルを開いて編集する時間を省くことができるようになりました。
- 自動コンプリート
- 関数の自動コンプリート機能は、式エディタで関数名を入力しているときに、Ctrl+スペース キーを押すと、その時点までで入力された文字列から始まる関数名を一覧で表示する機能です。
- コンテキストヘルプ
- V10 の式エディタでは、関数のコンテキスト依存ヘルプの機能があります。これは、式エディタ上で、関数名の上にカーソルがある状態で F1 キーを押すと、その関数に関するリファレンスページを表示するものです。
- 改行、インデント、色分け表示
- 見やすくするために式は自動的に色づけされて表示されます。また、定数の中をのぞく式中の任意の箇所での改行、インデントが可能になっています。これにより長い式であっても内容が見やすくなりました。
- 下図では、IF の条件、THEN部、ELSE部を改行、インデントしています。また、定数は赤色、関数は青色、その他は黒色で表示されていています。
その他のプログラム生産性向上機能
その他にも、Magic eDeveloper V10では、よりわかりやすく、より少ないプログラミングで開発できるように、多くの機能追加が行われています。
- ユーザ定義関数
- 開発者はオリジナルな関数を定義し、単純なものからコンポーネントを含むような複雑なものまで組込むことができます。このユーザ定義関数は、プロジェクト全体でMagicの内部関数と同じように扱うことができます。
- 項目変更ロジックユニット
- タスク内で項目変更があった場合、値の検証や他のデータへの波及などをロジックとして組み込んでおきたい場合があります。
- V10では、このような場合のために、項目変更というロジックユニットを定義できるようになりました。
- このロジックユニットにはMagicエンジンからパラメータが与えられ、その値により、その内容変更がユーザの入力によるものか、Magicエンジンでの項目更新コマンド式再計算によるものかを判断することができます。
- サブフォーム
- Magic では、親子タスクでヘッダレコードと明細レコードを表示させる画面設計が良く使われます。このような場合、従来は ファントムタスク としてプログラムを作りましたが、これには独特のプログラミング技法と、微妙な画面設計が必要でした。
- サブフォーム は、ファントムタスクを、より簡単に作りやすくする、V10 の新機能です。親タスクのフォーム上にサブフォームコントロールを配置し、子タスクとの関連づけを定義するだけでOKです。ファントムタスクで必要とされた細工は必要ありません。サブフォームを使えば、親子タスクの設計がすばやく簡単にかつ直感的に行うことができるようになります。
- 下図は、親タスクのフォームエディタ上でサブフォームコントロールを配置し、子タスクと連結を定義したところです。
- 実行時には、サブフォームコントロールの領域に、連結された子タスクの画面が表示されます。
DATETIME型サポート
最近のリレーショナル型 DBMS では、Datetime 型というデータ型がサポートされています。Datetime 型は、ひとつのカラムに日付と時刻の両方のデータが格納されています。
Magic では、日付型と時刻型とは用意されていますが、Datetime 型はサポートされていませんので、DBMS のDatetime 型データを利用するのが不便でした。
V10 では、DBMS の Datetime 型カラムを利用するのに便利な機能が追加されています。Magicのルールエンジンは、データベースからデータを読み込むときに自動的にDateTime型のデータをDate型とTime型のデータに分離し、データベースにデータを書き込むときに、Date型とTime型のデータを自動的にマージして格納します。
色・フォント・キーボード定義ファイルの分離
V9Plusまでは、色定義ファイルとフォント定義ファイルで定義された色とフォントは、開発画面、実行画面ともに共通のものでした。このため、アプリケーション実行時のために色やフォントの定義を変更すると開発画面での色やフォントも変わってしまう問題がありました。
V10では色定義ファイルとフォント定義ファイルを目的によって次の3つに分けています。
- Magicアプリケーション実行時の画面用
- Magic実行版でのシステム画面用 (アプリケーション画面以外の箇所)
- Magicスタジオでの開発画面用
このように色定義ファイルとフォント定義ファイルを用途によって分けることにより、色やフォントのカスタマイズの自由度が上がりました。
なお、V10での色定義ファイルとフォント定義ファイルは、V9Plusのものと形式が同じなので、そのまま利用することができます。
効率の良いデバッグ機能
Magic eDeveloper V10ではデバッガが大幅に機能拡張され、多くの便利なツールが含まれている本格的なものとなっており、高速で正確なデバッグ作業を実現することで、開発時間の短縮だけでなく、エンドユーザにも高品質のアプリケーションを提供できるという結果をもたらします。
Magic eDeveloper V10のデバッグツールによって、条件つきブレークポイントやウォッチ項目を設定でき、あるいは変数項目の内容を参照および修正したり、コールスタックの状態やモニター出力を参照することにより、すべてのプロジェクト状態を管理することができます。
Magic eDeveloper V10では開発者はそれぞれ個別に制御できるデバッグセッションを起動することができます。ある人があるプロジェクトをデバッグのために実行させているとき、別のMagicルールエンジンはMagicスタジオの管理下でその同じプロジェクトを通常実行させることができます。Magic eDeveloper V10ではプロジェクトの実行中であってもプロジェクトソース全体を参照することができ、ロジックの詳細を確認することができます。
実行のコントロール
- ブレイクポイント
- ブレイクポイントは、プログラム中に開発者が設定するもので、プログラムが実行時にその位置に到達したら、エンジンはプログラムの実行を一時的に中断(ブレイク)し、開発者がそのときのプログラムの状態を調査することができるようになります。
- Magic V10でのブレイクポイントは、プログラムリポジトリ中の任意のタスクのデータビューエディタ、あるいはロジックエディタ上の行に設定することができます。
- データビュー上では、データ項目の定義上にブレイクポイントを設定できます。このときには、ブレイクポイントの設定された項目の値に変更があった場合に、ブレイクが起こります。
- ブレイクポイントは、ロジックエディタのコマンドにも設定することができます。この場合には、ブレイクポイントの設定されている行まで実行が進んだときにブレイクが起こります。
- ロジックエディタ上に設定されたブレイクポイントには、条件を設定することができ、実行時に、この行まで実行が進み、かつ、条件が真となった場合にだけブレイクをかけることもできます。
- この他に、特にブレイクポイントが設定されていなくとも、プログラムの実行中の任意の時点で、強制的にブレイクをかけることもできます。
- ステップ実行
- ブレイクがかかって実行が一時中断した場合、実行を続ける方法として、次のようなオプションがあります。
-
- ステップ: コマンドをひとつだけ実行し、再度ブレイクする。
- ステップイン: コールコマンドの場合、呼び出されたタスクに入り、先頭で再度ブレイクする。
- ステップアウト: 現在実行中のタスクが終了し、呼び出しタスクに戻った時点で再度ブレイクする。
- 実行: 実行を再開し、次のブレイクポイントにいたる間実行を続けます。
- 停止: 強制的に実行を停止し、開発モードに戻ります。
- これにより、きめ細かく実行を制御し、タスクの実行が進むについてて、データや制御がどう動いていくのかを観察することができます。
リポジトリを開く
Magic eDeveloper V10 のデバッグ環境では、プログラムを実行中でも、読込専用で各種リポジトリを開くことができます。実行中のプログラムの中身を見るほかに、実行していないタスクやデータソースリポジトリ、モデルリポジトリの定義の確認、コンポーネントの確認などが自由に行えます。
内部状態の把握と手動変更
ブレイクがかかり実行が一時停止している状態では、その時点でのエンジンの状態をさまざまな角度から調べることができます。
- コールスタック
- コールスタックは、メインプログラムから現在実行中のプログラムまでの、呼び出しの経路を表示します。
- 項目一覧
- 項目一覧では、現在実行中のコンテキスト中のデータ項目の値を調べることができます。さらに、テストのために値を強制的に変更することもできます。
- ウォッチリスト
- ウォッチリストは、項目一覧と同様、項目の現在の値を調査したり設定したりするものですが、項目一覧の場合、現在有効な項目がすべて表示されるのに対し、ウォッチリストは、開発者が指定した項目だけを表示するところが異なります。タスクに多くの項目が定義されている場合でも、チェックしたい項目だけに注目することができます。
- コンテキスト一覧
- V10の実行エンジンはマルチスレッドで並行実行をサポートしていますが、コールスタック、項目一覧などは、各コンテキスト毎に独立して存在するものなので、適切なコンテキストを選択するために、コンテキスト一覧を使います。
- アクティビティモニタ (フローモニタ)
- アクティビティモニタは、V9Plus で フローモニタ と呼んでいたものと同じもので、Magicプログラムの実行フローのトレースをとります。スタジオの画面上に表示することもできますし、ファイルに記録するように設定することもできます。
ログ出力
- ロギングフィルタ
- ロギング フィルタは、フローモニタに表示させる内容を制限するもので、ロギング ダイアログで設定します。
- 設定内容は、アクティビティモニタへの出力の内容の制限(V9Plusと同様)のほかに、データベースゲートウェイのログ出力に関する設定を、ここに一箇所にまとめましたので、設定が簡単になりました。
- また、設定変更をした場合、V9PlusではMagicを再起動する必要がありましたが、V10ではすぐに反映されるので、実行の途中から詳細ログをとるとか、ログ出力をやめるなどができるようになります。
- ロギング関数
- ログ出力の内容を設定できる組み込み関数が用意されましたので、プログラムからダイナミックに設定変更することが可能になりました。
プロジェクトベースの開発
XMLによるリポジトリ定義
Magic V9Plusまでは、プロジェクト(アプリケーション)を CTLファイル(MCFファイル)というバイナリのPervasiveファイルとして格納していましたが、Magic スタジオ V10は、プロジェクトの定義をソースファイルの形式で、リポジトリごと、プログラムごとに分けて管理します。これにより、次のような利点が得られます。
- プロジェクトファイル管理のための専用データベースは必要ありません。
- プロジェクトファイルの破損の可能性が低減されます。
- バージョン管理が可能になります (サードパーティのバージョン管理ソフトウェアが必要です)。
- 上位互換性が向上します。
- テキストファイルで開発者が内容を見れるので、アプリケーション分析やドキュメンテーションなどの外部ユーティリティを作成するのが容易です。
プロジェクトのバージョン管理
Magic eDeveloper V10にはより厳密なソースデータ管理機能が組み込まれており、オフラインでの修正内容を追跡することも可能になっているため、開発者が今までにない開発スタイルで作業を進めることを可能にしています。また、改良された変更内容管理機能を利用することにより、アプリケーションの品質を高めるとともに、システムのリソース管理を効率よく行うことができます。
Magic eDeveloper V10では、プロジェクト管理のためにデータベースを利用するといった手間を省き、各プロジェクトソースは既定のXMLスキーマによってXMLドキュメントとして記述し保存されるようにしています。Magic eDeveloper V10の標準的なバージョン管理機能として、オブジェクトへのチェックイン/チェックアウト、前バージョンへの復帰、最新バージョンの作成、各バージョンへの名前付け、バージョン間の内容差異を確認することなどが利用できます。
- ご使用中のバージョン管理ソフトウェアとは干渉することなく統合利用できます。
- オフライン開発をサポートします。
- SCC(ソースコードコントロール)を利用しているサードパーティ製のバージョン管理製品を利用することができます。(現在は Microsoft Visual SourceSafe 6.0d 以上をサポートしています)
- アプリケーション開発の作業場所を選びません。
V10バージョン管理の概念
V9Plusまでのチーム開発では、MCFファイルを多くの開発者が同時に共用し、アクセスしながらチェックアウト、チェックインして開発していました。
これに対し、V10のバージョン管理機能では、次のように作業を行います。
- プロジェクトファイルのマスターは、バージョン管理ソフトウェアが管理するデータベースに格納されます。
- 各開発者は、バージョン管理ソフトウェアを使って、各人が作業するPCにローカルコピーを作成します。
- 各開発者がローカルコピーに対して修正を加えます。修正とテストが完了したら、バージョン管理ソフトウェアを使って、修正内容をマスターのデータベースにチェックインします。
Magic eDeveloper V10は、バージョン管理ソフトウェアと完全に統合されているので、通常のオペレーションで開発者が直接バージョン管理ソフトウェアを操作する必要はありません。
ヒストリ管理
ファイルの修正履歴はデータベース化されているので、修正履歴を参照したり、変更箇所を比較をしたり、あるいは過去の任意の時点のバージョンに戻る(ロールバックする)ことも可能です。
マーク、ブランチ、マージ
バージョン管理ソフトウェアの機能を使って、個々のファイルやプロジェクトファイル全体に対してマークを付けたり、バージョンのブランチ、マージなども行うことが可能です。
オフライン開発
遠隔地での作業では、マスターとは切り離された環境で開発(オフライン開発)することも可能です。その後、再度ネットワークなどで接続されたら、オフライン中に行った作業をマスターに一度に反映できます。
スタジオとランタイムの分離
Magic eDeveloper V10では、スタジオはランタイムによるプロジェクト実行とは完全に分離されています。ランタイムで動作させたときの例外処理やデッドロック発生にまったく影響されないため、開発はランタイムによる実行の影響を受けずに、安全に進めることができます。
Magic eDeveloper V10スタジオはランタイムセッションを完全に制御しているため、コントロールされたテスト環境で開発を進める一方、バックグランドでサーバエンジンを実行させたり操作を加えたりしてデバッグをすることができます。
また、V9Plusまでは、開発版と実行版の動作に微妙な違いがあることがありましたが、V10では実行は常に実行版で行われるため、開発時と実行時の違いが出ることがありません。