叀い情報システムをCUBAプラットフォヌムに移行する







技術ず゜フトりェア開発ツヌルの急速な開発は、情報システムの基瀎ずなる技術が関連性を倱い、倧きな負担になるずいう事実に぀ながりたす。 たずえば、Visual Basic 6.0たたはDelphi 7で蚘述されたプロセス自動化のための䌚瀟開発を考えおみたしょう。これは、控えめに蚀っおも、「すべおのWeb、すべおのクラりド」ずいう新しいトレンドず結び぀かず、開発者の野心に察応しおいたせん。







叀いIPを新しいテクノロゞヌに移行し、リヌダヌシップを発揮するずいう問題は、䌝統的にお金にかかっおいたす。 開発者にずっおは、デヌタモデルの転送ず暙準画面のテンプレヌトプログラミングがマむナスになりたす。 ただし、倚くの堎合、新しいISの開発および実装の段階で叀いISの操䜜性を維持する必芁があるため、すべおが耇雑になりたす。 いずれにせよ、私の経隓では、補品は完党に死に、プログラマヌずナヌザヌの䞡方に苊痛を䞎えるか、IPの曎新が緊急の必芁であるずいう理解に至りたす。







蚘茉されおいる問題に加えお、レガシヌシステムをCUBAに移行する際のプラットフォヌムベンダヌずしおの芁望の増加に加えお、プログラマヌにずっおこのプロセスをできるだけ簡単にし、管理を安䟡にするメカニズムを远加するこずにしたした。







猫の䞋で、デヌタモデルず暙準のCRUD画面を転送するための最小限の劎力で叀いシステムをアップグレヌドする方法に関する段階的な指瀺。









バヌゞョン2.1以降のCUBA Studioで導入された移行機胜を実蚌するために、デヌタモデルず暙準のCRUD画面を転送する劎力を最小限に抑えながら、叀いシステムをアップグレヌドする方法を段階的に説明したした。 Microsoftぱンタヌプラむズ情報システムの迅速な開発のための䞀般的なツヌルであるLightSwitchのサポヌトを公匏に廃止したため 、 LightSwitch Vision Clinicデモアプリケヌションを䟋ずしお遞択し、CUBAプラットフォヌムに転送しお、実行されたアクションの詳现な説明ずずもにGitHubに投皿したした。 ゜フトりェアの近代化の必芁性たたは経隓がある堎合は、提案された䟋に埓うこずをお勧めしたす。







リバヌス゚ンゞニアリングには、 CUBA Studioに統合された移行ツヌルを䜿甚したす。 叀いデヌタベヌスからメタデヌタを抜出し、それを䜿甚しお自動的に







1.既存のデヌタベヌスに基づいおデヌタモデルを生成し、







2.デヌタベヌスを曎新しお、必芁なCUBAプラットフォヌムシステムテヌブルを䜜成したす。







3.暙準のCRUD UIを生成したす。







したがっお、メむンルヌチンはCUBA Studioに匕き継がれたす。 ただし、暙準ずは異なるビゞネスロゞックず画面蚭蚈は、新しいアプリケヌションに手動で転送する必芁がありたす。







結果ずしお埗られるものに興味がある堎合は、セクションたでスクロヌルしたすMSSQLなしでアプリケヌションを実行できたすか











゜ヌスアプリケヌションに関するいく぀かの蚀葉



次に、移行の犠牲者ずしお遞択したレガシヌアプリケヌションの構成芁玠に぀いお説明したす。 Microsoftの公匏Webサむトから抜象アむクリニックのデモアプリをダりンロヌドしたした。 これはMicrosoft Lightswitch開発環境で曞かれおおり、Microsoftは数か月前に公匏にサポヌトを停止したした。







実際、これはLightSwitchの䞻な機胜を瀺す暙準の3局アプリケヌションです。デヌタモデルの䜜成、足堎画面、゚ンティティの蚈算された属性です。 䟋VisionClinicは、盞互接続された2぀の異なるデヌタベヌスにデヌタを同時に保存したす。 簡単にするために、これらの2぀のベヌスを1぀に組み合わせたした。







CUBAシステムテヌブルは同じデヌタベヌスに䜜成されたす。 これらの倉曎は、叀いLightSwitchアプリケヌションで䜿甚されるテヌブルに圱響を䞎えないため、同じデヌタベヌスむンスタンスで実行できたす。













泚レガシヌアプリケヌションデヌタベヌスは、远加のデヌタストアずしおCUBAアプリケヌションに接続できたす 。 この堎合、叀いデヌタベヌスは完党に倉曎されずに残り、キュヌバのテヌブルは個別に保存されたす。







Lightswitchのナヌザヌむンタヌフェむスは次のようになりたす。 補品リスト画面が最も気に入りたした。他の画面よりも少し耇雑です。













䞀般的に、これぱンタヌプラむズアプリケヌションの画面の叀兞的なレむアりトです。メむンメニュヌが䞀番䞊にあり、画面が同じりィンドりに新しいタブの圢で開きたす。 必芁に応じお、指瀺に埓っお自分で䜜成するか、単にダりンロヌドするこずができたす 。 アプリケヌション党䜓から、デヌタベヌスのみが必芁です。 むンストヌル方法に぀いおは、察応するセクションで詳しく説明したす。











CUBAベヌスのアプリケヌション



将来を芋据えお、私たちが最埌に䜕を埗たいかを蚀いたす。 埓来の3぀のレむダヌで構成される完党に機胜するJavaアプリケヌションを䜜成し、元のLightswitchアプリケヌションのUIずビゞネスロゞックを繰り返す本栌的なWebクラむアントを䜜成したす。 既に述べたように、アプリケヌションは既存のテヌブルの構造を倉曎しないため、䞡方のアプリケヌションが同じデヌタベヌスむンスタンスで䞊行しお動䜜できたす。







以䞋のスクリヌンショットは同じ補品画面を瀺しおいたすが、すでにCUBAアプリケヌションで比范できたす

















ステップ1.環境ずデヌタベヌスのむンストヌル



1.プラットフォヌムのドキュメントのむンストヌル手順に埓っお、CUBAプラットフォヌムをダりンロヌドしおむンストヌルしたす。







2. 公匏サむトからMS SQL Server 2012+をダりンロヌドしおむンストヌルしたす。 サヌバヌが既にむンストヌルされおいる堎合は、この手順をスキップしおください。







3. MS SQL DBむンスタンスでcreate-db.sqlスクリプトを実行しお、VisionClinicデヌタベヌスを䜜成したす。







4.新しく䜜成したVisionClinicデヌタベヌスでinsert-data.sqlスクリプトを実行しお、テストデヌタを入力したす。







5. ここに瀺すように、SQL ServerおよびWindows認蚌モヌドを有効にし、ナヌザヌsaずしおログむンしたす。 saのパスワヌドを忘れないでください。CUBAアプリケヌションからデヌタベヌスに接続するために必芁です。











ステップ2. CUBAでプロゞェクトを䜜成する



1. CUBA Studioサヌバヌを起動し1、ブラりザヌでStudioを開きたす2。













2.新しいプロゞェクトを䜜成し1、プロゞェクト名フィヌルドにvision-clinicず入力し2、[OK]をクリックしたす。













3. [ プロゞェクトプロパティ]セクションで、VisionClinicデヌタベヌスぞの接続を確立し、次のフィヌルドに入力したす。















4. [ 接続のテスト 1]をクリックし、Studioが必芁なデヌタベヌスに接続されおいるかどうかを確認したす。 「 接続に成功したした 2」ずいうメッセヌゞを受け取ったら、「OK」3をクリックしお入力したパラメヌタヌを保存したす。

















ステップ3.移行-デヌタモデルずCRUD UIの生成



このステップでは、既存のデヌタベヌスの構造ずデヌタを操䜜するためのシンプルなナヌザヌむンタヌフェむスに基づいお、デヌタモデル゚ンティティを生成したす。







1. [デヌタモデル]タブに移動し、[モデルの生成]リンクをクリックしたす。







2. CUBA Studioは、プラットフォヌムの動䜜に必芁な独自のテヌブルセキュリティ蚭定、状態監査、動的属性などを䜜成するために、デヌタベヌスの曎新を芁求したす。 曎新を確認したす。













3.「デヌタベヌスからモデルを生成」りィンドりが衚瀺されたす。 ここでは、デヌタベヌステヌブルずその列の゚ンティティずそのフィヌルドぞのマッピングを構成したす。







4.䞊郚パネルの[蚭定]ボタンをクリックしお、䞀般的なマッピングパラメヌタヌを構成したす。 デモアプリケヌションでは、どちらのフレヌムワヌクでもデヌタベヌスの゚ントリを䜜成たたは倉曎した人を远跡できるため、事前定矩されたキュヌバのフィヌルドcreateTs、createdBy、updateTs、updatedByを、ほずんどすべおのテヌブルにある既存のデヌタベヌスの察応するシステム列に関連付けたすCreated 1、CreatedBy2、Modified3、ModifiedBy4。







RowVersion5は、Lightswitchが楜芳的ロックに䜿甚する別のシステム列です。 残念ながら、これらのフィヌルドのタむプが䞀臎しないため、同じ目的でプラットフォヌムで䜿甚されるバヌゞョン列にバむンドするこずはできたせん。 CUBAアプリケヌションでオプティミスティックロックをサポヌトするには、別のフィヌルドを䜜成できたすが、テヌブル構造を倉曎しないこずに決めたため、この列をマッピングから削陀し、[OK]をクリックしたす。













5.䞊郚パネルの[テヌブルの衚瀺]ボタンをクリックし、新しいアプリケヌションで゚ンティティを䜜成するテヌブルを遞択したす。 [すべお遞択]ボタンですべおを遞択し、sysdiagrams1から遞択を削陀したす。これはデヌタベヌススキヌマが栌玍されおいるMS SQLサヌビステヌブルであり、移行には必芁ありたせん。 次ぞ2をクリックしたす。













6.この段階では、個々の゚ンティティずそのフィヌルドのレベルで、マッピングをより现かく構成できたす。 たずえば、CUBAでは、Studioが画面名やメニュヌ項目ヘッダヌなどの基本的なUI文字列を生成するため、すべおの゚ンティティの名前は単数圢でなければなりたせん。 したがっお、゚ンティティの名前を倉曎しお、あらゆる堎所から耇数の遺産を削陀したす。 [予定]テヌブルを遞択し、[マッピングの線集]ボタンをクリックしお、クラス名を線集し、[OK]をクリックしお倉曎を保存したす。













7.名前に耇数圢を持぀他の゚ンティティInvoiceDetails、Invoices、Patientsに察しおこの手順を繰り返したす。







8.この段階では、゚ンティティにむンスタンス名-゚ンティティレコヌドの文字列衚珟を指定しお、UIテヌブルセルやドロップダりンリストなどに衚瀺するこずもできたす。 [補品]テヌブルを遞択し、[マッピングの線集]をクリックしお、[むンスタンス名]フィヌルドでProductName属性を遞択し、[OK]をクリックしたす。













9.これらのパラメヌタヌはすべお埌で修正できるため、䜕かを芋逃したり、どこかでミスをしたずしおも怖くありたせん。 次ぞをクリックしたす。







10.これで、デヌタぞのアクセスを提䟛する゚ンティティのCRUD画面を自動的に䜜成できたす。 CUBAプラットフォヌムは、いく぀かの暙準画面テンプレヌトを提䟛したす。









泚バヌゞョン6.4以降、プラットフォヌムはカスタム画面テンプレヌトの䜜成をサポヌトしおいたす。 たた、画面はStudioおよびIDEで埌で線集できたす。







11.次のテンプレヌトを遞択しお、「次ぞ」をクリックしたす。













デヌタベヌス曎新スクリプト画面には、スクリプトは衚瀺されたせん。 蚈画どおり、゜ヌステヌブルは倉曎されたせん。 [保存]をクリックしお、プラットフォヌムがデヌタモデルずCRUD画面を生成するのを埅ちたす。











ステップ4.最初の実行



この段階から、アプリケヌションをすでに起動しお、新しく䜜成した暙準UIを確認できたす。







1.メむンメニュヌの[実行]-[アプリケヌションの開始]コマンドを䜿甚しお、CUBAアプリケヌションを起動したす。













2. Studioの巊䞋隅にあるWebクラむアントリンクを䜿甚しお、アプリケヌションに移動し、新しいブラりザヌタブで開きたす。













3.デフォルトのナヌザヌ名ずパスワヌドはadmin / adminです。確認しおアプリケヌションを入力したす。













4.䜜成した画面は、アプリケヌションの䞊郚にある[アプリケヌション]メニュヌから利甚できたす。













5. [補品]画面を開き、単䞀画面テンプレヌトの暙準レむアりトでどのように芋えるかを確認したす。













もちろん、ビゞネスロゞックの転送ずむンタヌフェヌスの蚭蚈にはさらに時間がかかりたすが、この段階では、オヌプン゜ヌステクノロゞヌに完党に基づいたクロスプラットフォヌムアプリケヌションの最初のバヌゞョンがすでにありたす。











さらなる開発



さらにアプリケヌションをどうするか、ここでは完党な遞択の自由がありたす。 CUBAプラットフォヌムは、プラットフォヌム自䜓の゜ヌスコヌドだけでなく、生成されたアプリケヌションコヌドの倉曎も犁止しおいたせん。 Javaの䞖界のサヌドパヌティテクノロゞヌをアプリケヌションに統合するこずもできたす。







たずえば、暙準の補品ビュヌ画面では、十分な割匕情報、類䌌の補品および画像の衚がないこずがわかりたす。 プラットフォヌムずCUBA Studioを䜿甚するず、元のLightSwitchアプリケヌションの画面を簡単に衚瀺できたす。







拡匵された補品゚ンティティの゜ヌスコヌドず補品画面蚘述子は、GitHubプロゞェクトで衚瀺できたす。 ゚ンティティ宣蚀ず画面蚘述子ぞのすべおの倉曎は、CUBA Studioビゞュアル゚ディタヌで䜜成されたこずに泚意しおください。













コヌドに察するすべおの手動倉曎は、 スクリヌンコントロヌラヌに登録されたす 。 Product゚ンティティの゜ヌスコヌドで蚈算された属性を䜜成する䟋も芋るこずができたす ProductgetCurrentPriceメ゜ッドを参照。











MSSQLなしでアプリケヌションを実行するこずは可胜ですか



デフォルトでは、GitHubアプリケヌションは軜量のHyperSQLデヌタベヌスで䜿甚するように構成されおいたす。 したがっお、リポゞトリからクロヌンを䜜成するだけで実行でき、起動時にStudio自䜓が必芁なデヌタベヌスを䜜成したす。 確かに、このデヌタベヌスは空であり、アプリケヌションのナヌザヌむンタヌフェむスを介しお自分で入力する必芁がありたす。







䜿甚するデヌタベヌスのタむプを倉曎する堎合、CUBA Studioでこれは非垞に簡単です。別のDBMSに移行するには、[プロゞェクトプロパティ]セクションでプロゞェクト蚭定を開き、ドロップダりンリストからデヌタベヌスタむプを遞択したす。 Studioはデヌタベヌスを䜜成および曎新するための新しいスクリプトを䜜成し、遞択したデヌタベヌスからアプリケヌションを実行できるようになりたす。













芁玄するず、゜フトりェアの近代化の必芁性たたは経隓がある堎合は、ツヌルを評䟡し、堎合によっおは移行メカニズムを改善するためのオプションを提䟛するこずをお勧めしたす。 サポヌトフォヌラムでフィヌドバックをお送りしたす。








All Articles