Программирование веб-приложений с помощью objective-c?
Просто скажите, что у вас довольно большое и сложное настольное приложение, написанное в objective-c/cocoa, правильно написанное в MVC. Затем вы хотите заменить V и C так, чтобы это было веб-приложение?
Есть ли что-то вроде Tomcat, но для объективного c? Самое близкое, что я могу придумать, - это каким-то образом преобразовать код модели в модуль apache для загрузки в apache?
Очевидно, что я мог бы встраивать какой-то HTTP-сервер и писать целую кучу кода для управления сеансами и запросами и ответами и т.д., но может быть проще?
Ответы
Ответ 1
Вы можете оставить сервер почти как есть. Я запустил его как демон в фоновом режиме.
Я бы разделил часть контроллера. Одна часть его находится на сервере как соединение между HTTP-запросами и демоном.
- Вы можете запустить самодельный http-сервер.
- Вы могли бы создать его в модуль Apache, как вы упомянули.
- Вы можете получить доступ к своему контроллеру через CGI. Это самый простой вариант, который я вижу.
Вторая часть контроллера написана в Javascript в браузере, обменивается данными с сервером и обновляется графический интерфейс.
Часть просмотра полностью написана в javascript.
Ответ 2
Вы посмотрели на Капучино? http://cappuccino.org/
Я не использовал, но слышал много хороших вещей об этом.
Ответ 3
Существует новая платформа для веб-разработки для Objective-C/Cocoa под названием Bombax. Это похоже на то, что вы ищете (он предназначен для того, чтобы вы могли писать целые веб-приложения в Objective-C). Возможно, вы даже можете объединить его с Cappuccino. Вы можете проверить это на http://www.bombaxtic.com.
Ответ 4
Ближе всего вы, возможно, попадете в Objective-C веб-фреймворки: SOPE или GNUStep, ни один из которых я не использовал, но наткнулся, когда решил, хочу ли я использовать Rails или что-то, написанное в Objective-C для моего веб-материала. Там также ARJDatabase, который похож на Core Data, но не совместим с исходным кодом.
Суть заключается в том, что если вы не очень осторожно относитесь к тому, как вы написали свой код (т.е. написали его с учетом GNUStep, не использовали ничего конкретного Apple), вам, вероятно, придется немного поработать так или иначе. И если вы использовали Core Data вообще, я не знаю, как повторно использовать это за пределами Mac App. И поскольку он не настроен для использования моих нескольких одновременных пользователей, вы бы не захотели использовать его в веб-приложении. Итог, я пошел с Rails.
Ответ 5
Есть Frothkit - http://code.google.com/p/frothkit/, но он, похоже, не обновлялся в течение года.