我主要是Java和PHP开发人员,并且在使用C#的.NET方面有一些经验,但主要是在桌面上。
在启动新的ASP.NET应用程序时,您会给我什么建议?什么是最好的MVC选择?我应该避免做什么?使用ASP.NET而不是PHP或Java开发Web应用程序有哪些主要区别? ASP.NET是否使用了PHP和Java没有的约定?
我应该避免一起做什么最佳做法或事情?
你能想到的任何东西都会有很大的帮助。
答案 0 :(得分:3)
作为一名PHP开发人员,C#语法将需要一些习惯,但作为一名专业人士,你不应该有任何重大问题。所以,让我们关注框架。
首先,ASP.NET MVC和ASP.NET Webforms是在ASP.NET中构建Web应用程序的替代选项。虽然MVC受到了很多关注(现在它是 cool 选项 - 并且出于一些很好的理由),但是在你有机会真正{{3]之前不要排除WebForms。 }} 他们俩。此外,作为PHP开发人员,您需要退一步。 ASP.NET支持一些非常复杂的架构选项(下面更多)。 PHP应用程序倾向于通过将大量页面放在一起来设计。虽然你可以在ASP.NET中以这种方式做事,但我不推荐它,因为你有更好的选择。
如果您将使用ASP.NET MVC,那么您首先需要学习整个 MVC架构:协调视图和控制器的目录结构和规则。实际上,您最大的挑战可能只是弄清楚视图如何“连接”到控制器。特别是因为它完全按惯例完成 - 你无法通过查看控制器来发现它 - 可能需要一段时间才能习惯。页面布局本身将类似于您在PHP中嵌入ASP.NET MVC称为“帮助程序”的内容。您可能需要一本书,但是,首先,确定您从Microsoft访问ASP.NET MVC网站并浏览视频教程。它们很多,非常好。
您也应该考虑WebForms开发。编写一个设计糟糕的应用程序更容易(尽管也很容易做一个好的应用程序)但是它更容易上手和使用。如果你走这条路,你必须了解页面生命周期和应用程序生命周期。这是您的首要任务。 ASP.NET使用的模型基于Windows基于表单的编程,这对您如何考虑整个软件生产过程有影响。
接下来,你有一些决定。您将使用标准数据访问(例如SQLClient)工具,滚动您自己的数据访问层(或使用DAL),还是使用LINQ to SQL或LINQ to Entities?我说“决定”,因为团队中的每个人都必须在这一个上。我衷心建议您建立DAL,因为您可以根据需要对其进行优化。 LINQ to SQL / Entities也很好,但有一些compare。协调,决定并坚持下去。
如果使用WebForms应用程序,您应该认真考虑通过在单独的类库(DLL)中构建业务逻辑来使其更像“类似MVC”。 Visual Studio / ASP.NET使您可以轻松创建自己的类库并将其折叠到您的解决方案中。了解如何做到这一点,你将成为一个多年来更好的开发人员(即使你 使用MVC)。人们通常会争辩这一点,因为它会将您的UI与数据访问隔离开来。虽然这是真的,但这并不是真正的优势 - 当您准备好学习并进行单元测试时,优势就会随之而来。刚开始假设你将UI从逻辑中分离出来,你会在路上感谢我。
关于WebForms的另外几个注释(这些工具大多不为MVC开发人员所用 - 因此我上面提到了关于入门速度的建议):
确保掌握GridView和用于填充它们的ObjectDataSource对象。注意:ObjectDataSource将数据从您的Business Class Library传送到您的UI。如果您不使用业务层,那么您将使用SQLDataSource或LinqDataSource对象直接从UI访问您的数据。
不要在你的架构上安定下来!
您现在需要决定是否要使用Microsoft的WebParts,登录和导航组件。这些可以锁定您对网站导航,用户界面等的特定方法,但如果合适,可以为您节省大量时间。
一旦你知道你是否会使用它们并且你有机会习惯它们,那么我建议你熟悉Master Pages。我广泛使用它们,它们非常适合标准化网站的整体外观和感觉。
最后,每个专业的ASP.NET开发人员必须派生他们自己的Page类(例如“MyPageClass”),以便他们可以在页面级别封装常见的操作。例如,我已经构建了一个会话管理对象,以便我可以以类型安全的方式访问所有常用的会话变量。派生的页面类负责提供sessionObj实例,以便每个页面都可以访问它而无需任何额外的工作。
现在您已准备好开始构建企业级Web应用程序了!
答案 1 :(得分:2)
如果您使用的是网络表格,请购买一本书。对于Web开发来说,这是一种非常不同的方法。它会伤害你的头脑,你会写出可怕的代码,除非你接受过它的训练或者阅读很多。
如果您正在使用像MVC这样的无状态模型,那么过渡将更加顺畅,因为它更接近您已经完成的过程。
答案 2 :(得分:1)
您最好开始考虑使用POST / GET在整个应用程序中更多地考虑表单而不是通信。
答案 3 :(得分:1)
在工具栏中查找组件 - ASP.NET是面向组件的;因此,您将避免手动将内容写入页面,控件将执行此操作。确保您了解ViewState和页面的生命周期。