在启动新的ASP.NET应用程序时,您会给我什么建议?什么是最好的MVC选择?我应该避免做什么?使用ASP.NET而不是PHP或Java开发Web应用程序有哪些主要区别?是否存在ASP.NET使用的PHP和Java没有的约定?
我应该避免一起做什么最佳做法或事情?
你能想到的任何东西都会有很大的帮助.
作为一名PHP开发人员,C#语法将需要一些习惯,但作为一名专业人士,你不应该有任何重大问题.所以,让我们关注框架.首先,ASP.NET MVC和ASP.NET Webforms是在ASP.NET中构建Web应用程序的替代选项.虽然MVC受到了很多关注(它现在是很酷的选择 – 并且有一些很好的理由),但是在你有机会真正实现这两个方面之前不要排除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也不错,但有一些ominous clouds on the horizon.协调,决定并坚持下去.
如果使用WebForms应用程序,您应该认真考虑通过在单独的类库(DLL)中构建业务逻辑来使其更像“类似MVC”. Visual Studio / ASP.NET使您可以轻松创建自己的类库并将其折叠到您的解决方案中.了解如何做到这一点,您将成为一名多年来更好的开发人员(即使您使用的是MVC).人们通常会争辩这一点,因为它会将您的UI与数据访问隔离开来.虽然这是真的,但这并不是真正的优势 – 当您准备好学习并进行单元测试时,优势就会随之而来.刚开始假设你将UI从逻辑中分离出来,你会感谢我的道路.
关于WebForms的另外几个注意事项(这些工具主要是MVC开发人员无法使用的 – 因此我上面提到了关于入门速度的建议):
确保掌握GridView和用于填充它们的ObjectDataSource对象.注意:ObjectDataSource将数据从您的Business Class Library传送到您的UI.如果您不使用业务层,那么您将使用SQLDataSource或LinqDataSource对象直接从UI访问您的数据.
不要沉迷于你的架构了!
您现在需要决定是否要使用Microsoft的WebParts,登录和导航组件.这些将您锁定到网站导航,UI等的特定方法,但如果合适,可以节省您的时间.
一旦你知道你是否会使用它们并且你有机会习惯它们,那么我建议你熟悉Master Pages.我广泛使用它们,它们非常适合标准化网站的整体外观和感觉.
最后,每个专业的ASP.NET开发人员必须派生他们自己的Page类(例如“MyPageClass”),以便他们可以封装页面级别的常见操作.例如,我已经构建了一个会话管理对象,以便我可以以类型安全的方式访问所有常用的会话变量.派生的页面类负责提供sessionObj实例,以便每个页面都可以访问它而无需任何额外的工作.
现在您已准备好开始构建企业级Web应用程序!