c# - Mac OS X Mono ASP.NET和C#编译过程

标签 c# asp.net macos compiler-construction mono

大家好,我正在尝试(暂时!)在我的 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 世界说起,但我认为单声道世界大同小异。您不能只编译您的类并让它运行 - ASP.NET Web 应用程序需要一些东西(如 global.asax 和 web.config),因此它知道应该如何提供您的页面。

我不确定您使用的是什么 IDE,但最好的办法可能是下载一个简单 Mono 示例 ASP.NET 应用程序并尝试填充您自己的代码。所有的配置和生命周期特性一开始可能会让人望而生畏,老实说,当您还在玩弄页面和代码隐藏时,您甚至应该忘记它们的存在。

或者,您可以尝试浏览此代码项目:http://www.codeproject.com/KB/cross-platform/introtomono2.aspx

它已经过时了,但原则保持不变。

关于c# - Mac OS X Mono ASP.NET和C#编译过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3836464/

相关文章:

c# - 从非 UI 线程访问 UI 元素

c# - Mailbridge 非 SSL 到 SSL 服务器

ASP.NET Web API : JSON Serializing Circular References

java - 在 Mac OS X 中运行 .exe 文件

python - 使 VS Code 终端匹配 Mac 上的调试环境

macos - Xcode 6 OS X 提交错误 : iOS Apps must have a provisioning profile

c# - 使用 DataReader 将多行集中到列表中

c# - 自动创建RectTransform的原因

c# - 具有复杂属性的 ViewModel

asp.net - 为什么我的网页控件为空?