Web приложения с Delphi
0 отговора
40 прегледа
Web приложения с Delphi
Статията е публикувана на адрес www24.brinkster.com/emildimitrov/delphisite.asp и е с предимно образователна цел.
-------------------------------
Web приложения с Delphi
Разработването на приложения за Web е интересен и твърде важен въпрос. Преимуществото на Internet приложенията е че са видими отвсякъде и за огромен брой хора, лесно могат да се добавя и променя функционалност, работят 24 часа в денонощие и са /с някои уговорки/ достъпни независимо от използваната платформа.
Ако на вас ви предстои да изготвите Web приложение за Windows платформа, имате няколко възможни пътя.
Първо, можете да прибегнете до помощта на скриптов език. Практически с тях можете да свършите всичко, лесни са за научаване и прилагане. Лошото е, че като всички интерпретируеми езици са значително по-бавни от компилиран код. Правят се опити за заобикаляне на този недостатък чрез междинно компилиране /PHP/, но засега проблема остава.
На второ място можете да създадете Internet приложение с помощта на всеки език за програмиране, способен да създава CGI приложение и/или ISAPI DLL. Основната разлика между двете техники е следната: стандартно CGI е отделно приложение, зареждано всеки път при заявка от сървъра и ползващо командния ред за вход и изход, докато ISAPI DLL се зарежда в паметта само при нужда, като интерфейса се осъществява предимно чрез паметта. Практически ISAPI е доста по-бърз, което за натоварен Web сървър е много важно. Крайния избор често зависи от други, на пръв поглед незначителни фактори - например трудно се намира хостинг с възможност за инсталиране на собствени компоненти. Некоректно /или нарочно/ написан ISAPI може да срути целия сървър, ако не се стартира в защитено адресно пространство.
Практически Internet приложението протича чрез серия транзакции на данни в следния вид:
1. заявка от страна на клиента чрез браузер
2. получаване на заявката от сървъра
3. обработка на заявката от сървъра
4. подаване на получените резултати към браузера на клиента
5. визуализиране на резултатите в браузера на клиента
6. --> 1
Почти в 100% от случаите данните подадени към клиента са в HTML формат, макар че се срещат и изключения - например PDF /ако говорим за динамични сайтове/. Друг забавен момент е предаването на файлове, т.е. download.
Подаването на данни към сървъра е интересен и важен момент. Данните се предават като поток от информация, която подлежи на разчленяване. Иначе казано при попълване на HTML формуляр от 3 полета ние получаваме един поток, който съдържа данните за тези три полета. Формуляра може да предаде данните по два метода - GET и POST. От страната на браузера данните получени по метод GET се визуализират като параметри след адреса на страницата както следва:
адрес_на_страницата?параметър_1=стоиност_1&параметър_2=стойност_2...
Следва да се отбележи, че за да не се наруши структурата символите се предават чрез кодове - например " " като %20.
С метод POST параметрите се подават скрито. Има и разлика в максимума обем информация, предавана чрез двата метода.
В крайна сметка, вашето Web приложение трябва да свърши следното:
1. да се инсталира като CGI приложение или ISAPI DLL
2. да приема заявки от клиента като разпознава коректно получената информация
3. да обработи заявката и да връща резултат на клиента
Всичко това е твърде лесно ако ползваме технологията WebBroker.
Тази технология е призвана да премахне досадните подробности при посочените транзакции и да ви позволи да се съсредоточите върху конкретната задача.
В най-общ вид тя позволява мигновенно създаване на CGI, WinCGI приложение и ISAPI/NSAPI DLL. От гледна точка на Delphi получаваме обект от клас TWebModule. При всяка заявка от клиента вие получавате параметрите на заявката в обект от клас TWebRequest, извъшвате тяхната обработка и поставяте резултата в обект от клас TWebResponse.
Нека разгледаме типичен пример.
Клиент попълва формуляр чрез браузер, данните се получават и обработват от ISAPI DLL, като се записват в база данни.
Ето и алгоритъма на приложението:
1. Клиента подава заявка към нашия Web адрес
2. Клиента получава HTML формуляр на своя браузер
3. Клиента попълва данните във формуляра и ги изпраща към нашия Web адрес
4. Клиента получава потвърждение че данните са приети
Ето и опростено представяне на потока данни между клиента и сървъра:
browser --> [[линк]] --> [линк]
[линк] --> [html form] --> browser
browser --> [name=... ; family= ...; credit card n=...; payment=...] --> [линк]
[линк] --> [html confirm page] --> browser
Алгоритъма за действие на компонента е следния:
1. получава се заявка от клиента
2. проверка: дали имаме параметри name, family, creditcart, payment?
3. да --> 6
4. изпращане на формуляр на клиента
5. край
6. запис на получените параметри в база данни
7. изпращане на потвърждение на клиента
8. край
След като сме наясно с алгоритъма, можем да пристъпим към практическото изграждане на приложението
(следва)
чети и дишай по-леко
-------------------------------
Web приложения с Delphi
Разработването на приложения за Web е интересен и твърде важен въпрос. Преимуществото на Internet приложенията е че са видими отвсякъде и за огромен брой хора, лесно могат да се добавя и променя функционалност, работят 24 часа в денонощие и са /с някои уговорки/ достъпни независимо от използваната платформа.
Ако на вас ви предстои да изготвите Web приложение за Windows платформа, имате няколко възможни пътя.
Първо, можете да прибегнете до помощта на скриптов език. Практически с тях можете да свършите всичко, лесни са за научаване и прилагане. Лошото е, че като всички интерпретируеми езици са значително по-бавни от компилиран код. Правят се опити за заобикаляне на този недостатък чрез междинно компилиране /PHP/, но засега проблема остава.
На второ място можете да създадете Internet приложение с помощта на всеки език за програмиране, способен да създава CGI приложение и/или ISAPI DLL. Основната разлика между двете техники е следната: стандартно CGI е отделно приложение, зареждано всеки път при заявка от сървъра и ползващо командния ред за вход и изход, докато ISAPI DLL се зарежда в паметта само при нужда, като интерфейса се осъществява предимно чрез паметта. Практически ISAPI е доста по-бърз, което за натоварен Web сървър е много важно. Крайния избор често зависи от други, на пръв поглед незначителни фактори - например трудно се намира хостинг с възможност за инсталиране на собствени компоненти. Некоректно /или нарочно/ написан ISAPI може да срути целия сървър, ако не се стартира в защитено адресно пространство.
Практически Internet приложението протича чрез серия транзакции на данни в следния вид:
1. заявка от страна на клиента чрез браузер
2. получаване на заявката от сървъра
3. обработка на заявката от сървъра
4. подаване на получените резултати към браузера на клиента
5. визуализиране на резултатите в браузера на клиента
6. --> 1
Почти в 100% от случаите данните подадени към клиента са в HTML формат, макар че се срещат и изключения - например PDF /ако говорим за динамични сайтове/. Друг забавен момент е предаването на файлове, т.е. download.
Подаването на данни към сървъра е интересен и важен момент. Данните се предават като поток от информация, която подлежи на разчленяване. Иначе казано при попълване на HTML формуляр от 3 полета ние получаваме един поток, който съдържа данните за тези три полета. Формуляра може да предаде данните по два метода - GET и POST. От страната на браузера данните получени по метод GET се визуализират като параметри след адреса на страницата както следва:
адрес_на_страницата?параметър_1=стоиност_1&параметър_2=стойност_2...
Следва да се отбележи, че за да не се наруши структурата символите се предават чрез кодове - например " " като %20.
С метод POST параметрите се подават скрито. Има и разлика в максимума обем информация, предавана чрез двата метода.
В крайна сметка, вашето Web приложение трябва да свърши следното:
1. да се инсталира като CGI приложение или ISAPI DLL
2. да приема заявки от клиента като разпознава коректно получената информация
3. да обработи заявката и да връща резултат на клиента
Всичко това е твърде лесно ако ползваме технологията WebBroker.
Тази технология е призвана да премахне досадните подробности при посочените транзакции и да ви позволи да се съсредоточите върху конкретната задача.
В най-общ вид тя позволява мигновенно създаване на CGI, WinCGI приложение и ISAPI/NSAPI DLL. От гледна точка на Delphi получаваме обект от клас TWebModule. При всяка заявка от клиента вие получавате параметрите на заявката в обект от клас TWebRequest, извъшвате тяхната обработка и поставяте резултата в обект от клас TWebResponse.
Нека разгледаме типичен пример.
Клиент попълва формуляр чрез браузер, данните се получават и обработват от ISAPI DLL, като се записват в база данни.
Ето и алгоритъма на приложението:
1. Клиента подава заявка към нашия Web адрес
2. Клиента получава HTML формуляр на своя браузер
3. Клиента попълва данните във формуляра и ги изпраща към нашия Web адрес
4. Клиента получава потвърждение че данните са приети
Ето и опростено представяне на потока данни между клиента и сървъра:
browser --> [[линк]] --> [линк]
[линк] --> [html form] --> browser
browser --> [name=... ; family= ...; credit card n=...; payment=...] --> [линк]
[линк] --> [html confirm page] --> browser
Алгоритъма за действие на компонента е следния:
1. получава се заявка от клиента
2. проверка: дали имаме параметри name, family, creditcart, payment?
3. да --> 6
4. изпращане на формуляр на клиента
5. край
6. запис на получените параметри в база данни
7. изпращане на потвърждение на клиента
8. край
След като сме наясно с алгоритъма, можем да пристъпим към практическото изграждане на приложението
(следва)
чети и дишай по-леко