Навчальний приклад простий сервіс datasnap xe - калькулятор - програмні продукти

Abstract: У цій статті розглядається створення простого сервісу Delphi XE на прикладі "калькулятора", які реалізує базові функції арифметичних обчислень. Цей покроковий навчальний приклад дуже простий, тому навіть починаючі програмісти Delphi зможуть його відтворити. Метою цього навчального прикладу є знайомство з процесом створення клієнтів і серверів DataSnap. Наш простий "калькулятор у вигляді сервісу" має на увазі клієнтське і серверне додаток. Обидві програми - Delphi VCL Forms Win32, а для зв'язку використовується протокол TCP / IP. Сподіваємося, вам сподобається!

Першим кроком є ​​створення нового серверного додатка DataSnap з використанням майстра "DataSnap Server".

Запустіть Delphi XE.

Навчальний приклад простий сервіс datasnap xe - калькулятор - програмні продукти

На першій сторінці залиште за замовчуванням опцію "Project type" як "VCL Forms Application".

Навчальний приклад простий сервіс datasnap xe - калькулятор - програмні продукти

На другій сторінці майстра також залиште вже обрані опції. Далі ми замінимо демонстраційні методи (Sample Methods) сервера нашими варіантами.

Навчальний приклад простий сервіс datasnap xe - калькулятор - програмні продукти

На третьому зображенні ми залишимо значення за замовчуванням "211" для номера порту TCP / IP. Намагайтеся завжди проводити перевірку доступності порту шляхом натискання на кнопку "Test Port".

Навчальний приклад простий сервіс datasnap xe - калькулятор - програмні продукти
На останній сторінці ми збираємося також скористатися опцією за замовчуванням для вибору базового класу як "TComponent", від якого буде проводитися наш клас, який реалізує методи сервера.

Натисніть на кнопку "Finish", а майстер створить новий проект з трьома модулями.

Збережіть весь проект вибором "File -> Save All".

Створіть нову папку для всіх файлів для даного навчального прикладу "C: \ DataSnapLabs \ SimpleCalc".

Збережіть головну форму додатку як "FormServerUnit", а для інших імен скористайтеся стандартними назвами - "ServerContainerUnit1" і "ServerMethodsUnit1" - і збережіть проект як "SimpleCalcServer".

На цій стадії в вікні Delphi Project Manager ви бачите таку картину:

Навчальний приклад простий сервіс datasnap xe - калькулятор - програмні продукти

Відкрийте модуль "ServerMethodsUnit1.pas" і реалізуйте функціональність простого сервісу, що виконує арифметичні дії. Замініть демонстраційні методи, додані майстром ( "EchoString" і "ReverseString"), на потрібні нам варіанти "Add" ( "скласти"), "Subtract" ( "відняти"), "Multiply" ( "помножити") і "Divide" ( "розділити").

Вихідний код для модуля "ServerMethodsUnit1" повинен виглядати наступним чином:

Ви повністю реалізували наш сервер. Для того щоб реалізувати клієнтську програму, сервер повинен бути запущений.

Виберіть "Run -> Run Without Debugging" для запуску сервера (поза відладчика) і мінімізуйте його вікно.

Не переривайте роботу серверного додатка до закінчення навчального прикладу.

Клацніть правою кнопкою миші на project group всередині Project Manager і виберіть "Add New Project".

Навчальний приклад простий сервіс datasnap xe - калькулятор - програмні продукти

Навчальний приклад простий сервіс datasnap xe - калькулятор - програмні продукти

Натисніть "OK". До існуючої project group повинен додатися новий проект.

Виконайте збереження нового проекту "File -> Save All".

Виберіть папку, яку ви створили для збереження файлів проекту сервера, і збережіть туди головну форму клієнтської програми як "FormClientUnit", сам проект як "SimpleCalcClient", а всю project group як "SimpleCalcGrp".

Тепер вікно Project Manager має виглядати як:

Навчальний приклад простий сервіс datasnap xe - калькулятор - програмні продукти

Перевірте, що проект клієнтського додатка активний, потім виберіть "File -> New -> Other", а в діалозі "New Items" виберіть "DataSnap Client Module".

Навчальний приклад простий сервіс datasnap xe - калькулятор - програмні продукти

Як і минулого разу, будь ласка, збережіть всі опції за замовчуванням під час роботи з майстром.

Навчальний приклад простий сервіс datasnap xe - калькулятор - програмні продукти

На першій сторінці залиште "DataSnap server location" як "Local server".

Навчальний приклад простий сервіс datasnap xe - калькулятор - програмні продукти

Наш сервер DataSnap є "stand alone" (незалежне окремий додаток), тому просто натисніть "Next".

Навчальний приклад простий сервіс datasnap xe - калькулятор - програмні продукти

Ми погодилися використовувати "TCP / IP" в якості протоколу, тому збережемо обрану опцію.

Навчальний приклад простий сервіс datasnap xe - калькулятор - програмні продукти

Натисніть на "Test Connection", щоб перевірити, чи дійсно сервер "слухає" порт 211, а потім натиснемо "Finish".

Майстер додати два модуля до нашого клієнтського додатку "ClientClassesUnit1" і "ClientModuleUnit1".

Останньою завданням в цьому навчальному прикладі є реалізація інтерфейсу клієнтської програми.

Тепер в коді форми клієнта потрібно правильно використовувати методи, експоновані (пропоновані) через властивість "ClientModule1.ServerMethods1Client". Ці методи мають ті ж імена і сигнатури, як і методи, реалізовані на сервері.

Нижче показана реалізація головної форми клієнтського додатку.

Остаточно моя форма виглядає наступним чином:

Навчальний приклад простий сервіс datasnap xe - калькулятор - програмні продукти

Напевно, вам не потрібно розповідати, як відтворити її!

Тепер ви бачите, як просто створювати сервера і клієнти DataSnap і використанням Delphi XE J

У цьому навчальному прикладі ми використовували Delphi XE для побудови простого сервісу DataSnap XE у вигляді калькулятора, який на рівні реалізації являє собою додатки Win32, при обміні даними між якими використовується протокол TCP / IP.