2009-09-11 58 views
3

我想学习如何用C#制作网站。我知道PHP,但我更喜欢C#语言。我已经尝试学习如何在ASP.NET中创建一个网站,这个网站迄今为止让我非常沮丧,因为我真的不喜欢ASP(甚至比我更喜欢PHP)。关于它的一些事使我完全疯了,以至于我很难让自己去学习它。是否有一种方法可以立即将控制权从ASP转移到C#,然后从C#执行所有操作,包括在需要时输出HTML和其他内容,就像在PHP中一样?换句话说,我喜欢PHP的网站编程方式,但更喜欢C#语言。任何帮助将不胜感激。纯C的网站#

+3

您对ASP.NET感情==我对PHP的感受。当我必须编写PHP代码时,我感到生气。 :) – 2009-09-11 21:33:11

+1

这就是我的感觉如何VB(和防风草) – Seth 2009-09-11 22:57:20

回答

11

看看asp.net mvc:http://www.asp.net/mvc/

它比asp.net webforms更接近金属,如果您来自PHP背景,应该会感觉更舒适。

有很多很好的教程在这里:http://www.asp.net/Learn/mvc/

+1

我同意,ASP.NET MVC是一个很好的框架,但我不明白为什么会OP感觉更舒服... – 2009-09-12 02:34:39

+1

感谢这个!我一直在尝试ASP.NET MVC框架,并且我非常喜欢它。浏览这些教程是一种比标准的ASP.NET教程更好的体验。我发现的不是我不喜欢ASP代码,我只是不喜欢开始和结束。当你从概念上以C#开始,然后决定何时将控制权转移给ASP,甚至只是对于View来说,ASP实际上就是如此。到目前为止,MVC框架已经很容易学习,使用和定制。 – 2009-09-27 07:03:55

+0

我很高兴能帮到你! – jonnii 2009-09-27 14:43:31

6

是的,你可以使用HttpHanders来处理所有请求。 HttpHandler是一个可以直接接收请求的类,并用代码处理它。它通常用于捕获图像请求,并将其用于数据库,但您可以使用它来执行您想要的操作。

查看MSDN introduction to using HttpHandlers。如果您对此有任何疑问,请发表评论。

ASP.NET MVC是另一种选择,但仍默认使用ASPX标记。你可能会找到你更喜欢的另一个视图引擎。不过,我对此一无所知。 (编辑 - 感谢乔尔!)

编辑:请记住,您使用HttpHandlers的时候在技术上仍然是一个ASP.NET项目中,但是这只是为了获得请求/响应/服务器环境的/ etc框架在你身边跑动。您仍然可以使用C#代码100%工作。

+2

说真的......我们是否推荐给一个尚未掌握asp.net的人来说,通用处理程序是要走的路?虽然这在技术上回答了这个问题,但我感到有必要警告说,考虑到可以使OP达到更高生产力水平的其他选项的丰富性,以这种方式实施网站会严重损害个人健康。 – spender 2009-09-11 21:52:55

+4

这就是我所说的,是的。你问一个问题,你会得到答案。如果他想专门使用代码,这是如何完成的。许多人可以回答问题的原因之一是我们可以获得许多观点,而这一点肯定属于这里。 – JoshJordan 2009-09-11 22:03:29

+2

@spender:如下所述,通用处理程序和httphandlers是两个完全不同的东西。一个php(或者甚至是java)的人实际上会比使用完整的.net路由使用通用处理程序在家感觉更多。 – NotMe 2009-09-11 22:09:21

1

ASP.NET MVC可能是一个不错的选择:www.asp.net/mvc

2

您还可以使用通用处理程序(ashx的)。这些提供给你一个httpcontext,完全取决于你如何处理它。

+0

在JoshJordan的回答中查看我的评论 – spender 2009-09-11 21:55:01

+2

通过.ashx的通用处理程序与httphandlers不同。 通用处理程序非常接近aspx页面,而没有所有页面生命周期的东西。 – NotMe 2009-09-11 22:06:59

+0

通用处理程序,当然是这里的一个正确答案......然而,在.NET中实现网站的方式列表中,最贫穷的人之一将使用通用处理程序编写它,并不可避免地重新创建已存在的框架。对我来说,转向新平台的关键在于它提供更高的效益/爆炸性能。从PHP转向泛型处理程序确实似乎是横向“促销”。 – spender 2009-09-11 22:36:20

2

“我真的不喜欢ASP(甚至比我更喜欢PHP)”,后面跟着“我喜欢PHP的方式”。这听起来像是你打破了旧的问题,并且变得有些冲突。

我觉得从经典的asp到asp.net的感觉是一样的,传统的asp.net网站仍然给我很大的悲伤。当你习惯于更细粒度的控制时,很难让你的头脑更加“框架式”的做事方式。如前所述,给asp.net MVC一试。国际海事组织提供了正确的平衡,对我来说是Asp.net之后的新鲜空气。

4

只要不使用任何服务器端控件,直接将代码放在ASPX文件(在<%和%>之间),它应该像PHP(或传统的ASP)一样感觉......您也可以用HttpHandler来做,但在这种情况下,你将失去编写内联HTML的能力;你将不得不使用Response.Write输出所有的标记,这并不方便......

注意,我强烈反对任何这些方法,这仅仅是回答你的问题;)

+0

+1回答和警告 – spender 2009-09-11 21:59:38

1

这不是一个特别好的选择,但如果你想要去的简单的路线,你可以使用C#与CGI

+0

+1。我必须这样做才能满足客户的一个相当疯狂的要求。这不是很好,如果你能避免它,我会建议,但它可以工作。 – chsh 2009-09-11 22:44:57

+0

我实际上是用mod_rewrite和C#CGI编写了一个MVC框架。 – 2009-09-11 22:46:44

2

可以使用相当纯C#办最多的事在ASP.net。在早期,我非常依赖ASP.net控件,用大量的代码片断拖放我的大部分页面,使控件做到我想要的。我真的不喜欢它,这让我想到将ASP.net编码为C#编程中完全不同的东西(确定它当时是vb--不要判断我!)。

现在几乎所有我的代码和HTML生成是由各种自定义类处理。我的代码隐藏页面简单地将页面特定的输入和事件连接到我的utillity类。同样,我使用内联代码输出 - 我只是在后面的代码中调用一个函数,它收集必要的变量并让我的类完成繁重的工作。

我肯定会发现一些ASP.net具体的控制是有用的,我不使用他们不时。但是,我确实发现改变我将代码放在一起的方式给了我一种完全不同的语言理念。