
- •Введение
- •Постановка задачи
- •Разработка технического задания
- •2.1 Анализ вариантов использования программы
- •Потоки событий
- •Основной поток
- •2.2. Альтернативные потоки
- •2.2 Требования к приложениям
- •Анализ алгоритма решения задачи
- •3.1 Метод Монте-Карло
- •3.2 Определение попадания точки внутрь трапеции
- •Настольное приложение wpf
- •4.1 Технология Windows Presentation Foundation
- •4.2 Логическое проектирование приложения
- •4.3 Тестирование приложения
- •5.1 Программные средства для разработки приложения
- •5.2 Логическое проектирование
- •5.2.1 Структура приложения
- •5.2.2 Проектирование приложения.
- •Листинг №1. Определение попадания точки в четырехугольник. HaXe.
- •6. Клиент-Серверное приложение на базе asp.Net
- •6.1 Программные средства разработки приложения
- •6.2 Логическое проектирование Web-сервиса
- •6.3 Логическое проектирование клиентской части
- •6.4 Генерирование прокси-класса
- •6.5 Системные требования
- •Руководство программиста
- •6.7.1 Назначение и условия применения приложения
- •Структура приложения
- •6.8.4 Сообщения оператору
- •6.9 Тестирование приложения
- •Анализ вычислительной эффективности приложений
- •Заключение
- •Приложения
- •9.1 Листинг приложения на базе wpf Файл MainWindow.Xaml
- •Файл MainWindow.Xaml.Cs
- •9.2 Листинг приложения на базе haXe/php Файл Main.Hx
- •Файл Index.Html
- •9.3 Листинг клиент-северного приложения на базе asp.Net Файл Service.Asmx
- •Файл Service.Cs
- •Файл MainWindow.Xaml
- •Файл MainWindow.Xaml.Cs
4.3 Тестирование приложения
Результаты тестирования представлены на рис. 7
Рис. 7. Результат работы приложения WPF
5. Веб-приложение на базе скриптов haXe/PHP
5.1 Программные средства для разработки приложения
Для разработки приложения была использована интегрированная среда разработки FlashDevelop, которая является свободной средой разработки и редактором, написанным на C#, позволяющим создавать Flash/Flex, MTASC или haXe (C++, JavaScript, PHP, Flash, NekoVM) приложения.
Так же интегрированная среда разработки FlashDevelop является одной из альтернатив среды FlashBuilder для разработки веб-приложений (благодаря своей бесплатности и заметно большему быстродействию) хотя и не обладает всеми возможностями последнего. Поддерживает профилирование, отладку Adobe Flex и имеет умное автодополнение при написании кода на языке ActionScript.
5.2 Логическое проектирование
Веб-приложение haXe/PHP является простой с точки зрения взаимодействия пользователя и программы, так как в ней отдельно реализуется интерфейс приложения(.html страница), и отдельно реализовывается страница(.hx), которая потом преобразовывается компилятором haxe в текст файлов на языке PHP и будет выполнять расчет площади Монте-Карло. Особенность языка haxe в том, что это универсальный объектно- ориентированный язык высокого уровня, синтаксис которого напоминает язык Java или C#.
Рисунок 8. Компилятор haXe
Как видно из рисунка, особенностью этого языка является то, что программа, написанная на haxe может компилироваться во множество других различных языков(по умолчанию haxe поддерживает преобразование в php(как в нашем примере), Neko, .Java, swf файлы, но этот список можно значительно расширить, скачивая дополнительные языковые библиотеки с официального сайта, либо с помощью консольной команды haxelib install .
Например, установка библиотеки для компиляции в файлы на языке C++, необходимо ввести следующую команду:
>haxelib install cpp
После этого, при установленном соединении с Интернетом, будет произведено скачивание с официального репозитория haxe, Расположенного по адресу http://lib.haxe.org и последующая установка данной библиотеки.
При создании приложения на haxe, необходимо 1 раз написать исходный код на языке haxe, а потом выбирать, во что его компилировать. В нашем случае выходным языком будет являться PHP. Предположим, что файл исходного кода имеет название Main.hx. Чтобы получить из него PHP код, необходимо сделать следующее:
Создать файл с расширением .hxml
Занести в него директивы
-cp src //Указание на компиляцию исходных кодов
-php www //Указание выходной папки,куда будут помещены php файлы
-main Main //Точка входа в программу
После этого требуется сохранить данный файл, и щелкнуть по нему два раза в проводнике Windows. При установке haXe этот тип файлов автоматически ассоциируется с файлом haxe.exe, который примет этот файл как параметры командной строки, и выполнит его компиляцию. Иными словами, мы создали командный файл, который автоматически выполняет действия, записанные в нем, не требуя их ручного вызова
Если все прошло удачно, и исходный текст программы не содержит ошибок, компилятор создаст директорию www, которая будет являться файлами исходного кода на языке php, которые в дальнейшем требуется поместить в директорию с Web-сервером.
Скажем несколько слов о Web-сервере. В нашем случае использовался Web-сервер Denwer, который распространяется свободно, обладает бесплатной поддержкой, прост в установке и обслуживании, и представляет собой идеальный вариант для новичков. Процесс установки начинается со скачивания дистрибьютива программы с сайта http://www.denwer.ru. После этого выполняется процесс установки. В итоге будет создан виртуальный диск, который будет представлять собой «мини копию» файловой системы LINUX. В комплект Denwer входят уже настроенные исполняемые файлы Web-Сервера Apache, языка PHP версии 5.2, Perl и так далее.
Стандартный набор Денвер включает в себя:
Веб-сервер Apache с поддержкой SSI, SSL, mod_rewrite, mod_php
Интерпретатор PHP с поддержкой GD, MySQL, SQLite
СУБД MySQL с поддержкой транзакций (mysqld-max)
Система управления виртуальными хостами, основанная на шаблонах
Система управления запуском и завершением
Панель phpMyAdmin для администрирования СУБД
Ядро интерпретатора Perl без стандартных библиотек (поставляются отдельно)
Эмулятор sendmail и сервера SMTP с поддержкой работы совместно с PHP, Perl, Parser и др
Структура файловой системы виртуального диска показана на рис. 9
Рис. 9. Файловая система Web-Сервера Denwer.
Не будем подробно расписывать, что представляет из себя каждая конкретная папка, так как легко провести аналогию с системой LINUX. Отметим лишь то, что для развертывания Web-сайта необходимо создать в директории home папку, соответствующую названию нашего сайта, по которому мы хотим вызывать его из браузера. После этого, необходимо поместить полученную директорию www, созданную компилятором haxe в эту папку, и также добавить в нее html файлы и какие –либо другие данные, например рисунки(если это необходимо для реализации Web-сайта).
При запуске Web-сервера, он добавляет в файл hosts записи, которые ассоциируют названия директорий из папки home с адресом 127.0.0.1, который означает, что мы будем по этому адресу обращаться к серверу, расположенному на локальной машине. При запуске требуется проверять, чтобы приложение запускалось с правами администратора, так как файл hosts является системным, и вносить в него изменения может только администратор. После этого, по указанному адресу будет доступен наш Web-сайт.
Приложение строится на базе заранее подготовленной html-страницы, содержащей интерфейс взаимодействия с пользователем. Эта страница принимает данные от пользователя, проверяет корректность введенных данных, и отправляет их на обработку PHP-скрипту, который динамически формирует страницу, в зависимости от введенных результатов, содержащую отчет о проведенных экспериментах.