Скомпилированная, строго типизированная альтернатива .NET? - PullRequest
0 голосов
/ 02 октября 2008

Существует ли язык программирования, подходящий для создания веб-приложений, который скомпилирован, строго типизирован и не является ASP.NET?

Я думал об использовании Mono (http://www.mono -project.com / ), но мне интересно, есть ли другие альтернативы.

(Если язык и фреймворк с открытым исходным кодом, это большой плюс!)

Ответы [ 8 ]

8 голосов
/ 02 октября 2008

Не уверен, что вы имеете в виду, говоря "скомпилировано". А как насчет Java?

В Java много фреймворков для веб-разработки. Например Гобелен :

Tapestry - это фреймворк с открытым исходным кодом. для создания динамичного, надежного, высоко масштабируемые веб-приложения на Java.

5 голосов
/ 02 октября 2008

Java соответствует всем критериям

4 голосов
/ 02 октября 2008

Если вы имеете в виду скомпилированный для кода win32, а не для промежуточного языка, попробуйте Delphi .

3 голосов
/ 02 октября 2008

Весенние рамки и язык Java.

http://www.springframework.org/ с открытым исходным кодом и широко используется в промышленности.

В частности, к кассе Spring-MVC и Spring Web-Flow модулей, которые значительно упрощают создание веб-проектов.

2 голосов
/ 18 марта 2010

Существует ли язык программирования, подходящий для создания веб-приложений, который скомпилирован, строго типизирован и не является ASP.NET?

Просто для полноты: теоретически можно даже использовать Ада для удовлетворения этих требований:

AdaCGI - это интерфейс Ada 95 с «Common Gateway Interface» (CGI). AdaCGI упрощает создание программ Ada, которые могут вызываться HTTP-серверами World Wide Web (WWW) с использованием стандартного интерфейса CGI. Используя его, вы можете создавать программы Ada, которые выполняют запросы или другую обработку по запросу пользователя WWW. AdaCGI ранее назывался «Package CGI» .AdaCGI - бесплатное программное обеспечение с открытым исходным кодом, выпущенное с использованием лицензии LGPL («Lesser General Public License»).

Ada для Интернета : Этот веб-сайт посвящен пропаганде использования Ada95 в качестве основного языка программирования веб-и интернет-апплетов и приложений, серверов и браузеров.

Существует также пакет Ada "aws", доступный по http://libre.adacore.com/libre/tools/aws/

Прежде всего, AWS означает веб-сервер Ada, но это больше, чем просто другой веб-сервер ...

AWS - это полная структура для разработки веб-приложений. Основной частью фреймворка является встроенный веб-сервер. Этот небольшой, но мощный веб-сервер может быть встроен в ваше приложение, так что ваше приложение сможет общаться со стандартным веб-браузером, таким как, например, Microsoft Internet Explorer или Netscape Communicator. Вокруг этого веб-сервера было разработано много сервисов.

Каркас включает в себя:

* A Web parameters module. This module takes care of retrieving the forms or URL parameters and to build an associative table for easy access.
* A session server, this is a very important module to be able to keep client’s data from page to page.
* Support SOAP to develop Web Services.
* A tool (based on ASIS) to generate a WSDL document from an Ada spec.
* A tool to generate Web Services stubs/skeletons from a WSDL document.
* A template parser, this module makes it possible to completely separate the Web design from the code. No more scripting into your Web page. This template engine is amazingly fast due to its concurrent cached compiled templates support.
* An Ajax runtime based on templates hiding javascript.
* Support for Secure Sockets (HTTPS/SSL), this is based on OpenSSL library.
* Support for large servers using dispatchers based on URI, request methods, timers.
* Support for virtual hosting (dispatchers based on the host name).
* Support for server push.
* A directory browser ready to be used in any application.
* A status page to get many information about the current AWS server.
* A log module. Log files keep information about all resources requested to the server.
* Hotplug modules which can be loaded/unloaded dynamically to add specific features to a server.
* A light communication API to exchange data between applications using the HTTP protocol.
* A configuration API to tune/change the server parameters without recompilation.
* A client API to retrieve any Web page from a Web site.
* A Web Page service to build a simple static page server.
* Support for SMTP, LDAP and Jabber protocols.
* And more…

Сервер, построенный на AWS, очень прост в развертывании. Вам просто нужно скопировать и запустить один исполняемый файл. Нет никаких шагов установки и настройки веб-сервера.

См. http://www.adacore.com/wp-content/files/auto_update/aws-docs/aws.html для документации aws

http://en.wikibooks.org/wiki/Ada_Programming/Libraries/Web

1 голос
/ 02 октября 2008

Mono - это не другой язык программирования, это просто реализация .NET Framework с открытым исходным кодом для систем Unix (и Mac тоже). Он нацелен на полную совместимость с .NET, поэтому вы в конечном итоге будете использовать C # и ASP.NET точно так же.

1 голос
/ 02 октября 2008

Что именно вы просите?

Вы просите что-нибудь скомпилированное или что-то более эффективное?
Вы запрашиваете что-то строго типизированное или вы хотите что-то, что легко поможет вам отладить ошибки? (модульное тестирование иногда лучше для компиляторов)
Есть ли требование от вашего клиента, чтобы оно не было написано в ASP.Net?
Есть ли техническое требование, чтобы код .Net не мог быть запущен?

Вы запрашиваете технологию для решения проблем, которые вы не определили должным образом.

0 голосов
/ 02 октября 2008

Может быть, вы должны иметь в виду "скомпилирован в машинный код"?

C # и Java компилируются в промежуточный язык, который затем интерпретируется во время выполнения.

Большинство приличных интерпретаторов компилируют это с фактическим машинным кодом во время выполнения для ускорения (компиляция Just In Time).

Конечно, это не так эффективно, но многие языковые функции было бы чрезвычайно сложно реализовать иначе (например, Сборка мусора).

Также наличие промежуточного языка позволяет вашему скомпилированному коду работать на разных платформах.

...