大家好,我正在尝试(暂时!)在我的 iMac 上进行一些 ASP.NET 和 C# 编译。
哈哈,在 iMac 上尝试这样做真是太有趣了,感觉如此..错了!
无论如何,我认为 Mono 是实现此目的的最佳方法。
我有一个简单的 ASP.NET 页面,其中包含以下代码:
1 <%@ Page Language="C#" %>
2 <html>
3 <head>
4 <title>Planting Trees</title>
5 <script runat="server">
6 protected void Page_Load(Object Source, EventArgs E)
7 {
8 string msg = "Let's plant some trees!<br/>";
9
10 // Create a new Tree
11 Tree tree1 = new Tree();
12
13 msg += "I've created a tree with a height of " +
14 tree1.height + " metre(s).<br/>";
15
16 tree1.Grow();
17
18 msg += "After a bit of growth, it's now up to " +
19 tree1.height + " metre(s) tall.<br/>";
20
21 Tree tree2 = new Tree();
22 Tree tree3 = new Tree();
23 tree2.Grow();
24 tree3.Grow();
25 tree2.Grow();
26 tree3.Grow();
27 tree2.Grow();
28 msg += "Here are the final heights:<br/>";
29 msg += " tree1: " + tree1.height + "m<br/>";
30 msg += " tree2: " + tree2.height + "m<br/>";
31 msg += " tree3: " + tree3.height + "m<br/>";
32
33 Output.Text = msg;
34 }
35 </script>
36 </head>
37 <body>
38 <p><asp:label runat="server" id="Output" /></p>
39 </body>
40 </html>
现在,我有这个简单的 C# 类来配合它:
// Tree.cs, A simple C# class
public class Tree {
public int height = 0;
public void Grow() {
height += 1;
}
}
现在,ASP.NET 页面位于我的 iMac 上的主目录中,.cs C# 类文件位于主目录中的
bin
下。
现在,我不是 100% 确定,但是我是否需要将
.cs
编译为 .dll
才能正常工作?
如有任何建议,我们将不胜感激!
您需要设置 mod_mono,这样您实际上就有一个应用程序服务器来提供页面。
也就是说,您是对的,您需要将 .CS 编译为 .NET 程序集 (DLL)。
我只能从 Windows 世界谈起,但我认为 Mono 世界也大致相同。您不能只编译您的类并让它运行 - ASP.NET Web 应用程序需要一些东西(例如 global.asax 和 web.config),以便它知道应该如何提供您的页面。
我不确定您使用的是什么 IDE,但您最好的选择可能是下载一个 simple Mono 示例 ASP.NET 应用程序并尝试填充您自己的代码。所有配置和生命周期功能一开始可能会令人望而生畏,老实说,当您还在玩弄页面和代码隐藏时,您甚至应该忘记它们的存在。
或者,您可以尝试浏览此 CodeProject:http://www.codeproject.com/KB/cross-platform/introtomono2.aspx
它已经过时了,但原理保持不变。