.NET的已编译强类型替代项?
是否有适合构建Web应用程序的编程语言,该语言是经过编译,强类型的,并且不是ASP.NET?
我曾考虑使用Mono(http://www.mono-project.com/),但我想知道是否还有其他选择。
(如果语言和框架是开源的,那将是一个很大的优势!)
解决方案
不知道我们说"已编译"是什么意思。 Java呢?
Java有很多用于Web开发的框架。例如挂毯:
Tapestry is an open-source framework for creating dynamic, robust, highly scalable web applications in Java.
Java符合所有条件
我们到底要什么?
我们要编译的东西还是性能好的东西?
我们是在请求强类型输入的内容,还是在寻找可轻松调试错误的内容? (对于编译器,单元测试有时是更好的替代品)
客户是否要求它不是用ASP.Net编写的?
是否有不能运行.Net代码的技术要求?
我们正在寻求一种技术来解决尚未正确定义的问题。
Spring框架和Java语言。
http://www.springframework.org/开放源代码,并在行业中广泛使用。
特别是checkout spring-mvc和spring web-flow模块,它们使创建Web项目变得更加简单。
也许意思是"编译为机器代码"?
Cand Java被编译成一种中间语言,然后在运行时进行解释。
大多数体面的解释器会在运行时将其编译为实际的机器代码,以加快速度(及时编译)。
当然,它不是那么有效,但是许多语言功能否则将很难实现(例如,垃圾回收)。
还具有中间语言,使编译代码可以在不同的平台上运行。
Mono不是不同的编程语言,它只是Unix系统(以及Mac)的.NET框架的开源实现。它旨在与.NET完全兼容,因此最终我们将同样使用Cand ASP.NET。
如果要编译为Win32代码而不是中间语言,请尝试使用Delphi。
Is there a programming language suitable for building web applications, that is compiled, strongly-typed, and isn't ASP.NET?
仅出于完整性考虑:理论上,甚至可以使用Ada来满足这些要求:
AdaCGI is an Ada 95 interface to the "Common Gateway Interface" (CGI). AdaCGI makes it easier to create Ada programs that can be invoked by World Wide Web (WWW) HTTP servers using the standard CGI interface. Using it, you can create Ada programs that perform queries or other processing by request from a WWW user. AdaCGI was formerly named "Package CGI".AdaCGI is open source/free software, and is released using the LGPL ("Lesser General Public License") license. Ada for the Web: This website is dedicated to promoting the use of Ada95 as a major language for programming Web and Internet applets and applications, servers and browsers.
在http://libre.adacore.com/libre/tools/aws/上也可以找到Ada" aws"软件包。
First of all, AWS stands for Ada Web Server but it is more than just another Web server… AWS is a complete framework to develop Web based applications. The main part of the framework is the embedded Web server. This small yet powerful Web server can be embedded into your application so your application will be able to talk with a standard Web browser like Microsoft Internet Explorer or Netscape Communicator for example. Around this Web server a lot of services have been developed.
该框架包括:
* 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…
A server built with AWS is very easy to deploy. You just need to copy and launch a single executable. There is no Web server installation and configuration steps to do.
有关AWS文档,请参见http://www.adacore.com/wp-content/files/auto_update/aws-docs/aws.html
http://en.wikibooks.org/wiki/Ada_Programming/Libraries/Web