我是一名熟悉Delphi和Borland工具的程序员。我目前正在学习C#和.NET。
我计划完全重写我的商业化应用程序。
随着Microsoft工具提供的所有技术,我完全迷失了。
走哪条路?的WinForms? WPF? WCF? Asp.NET?使用Microsoft Ajax? JQuery的? NHibernate的?强类型数据集?小号#ARP?城堡?犀牛?
我知道所有这些技术并不是相互排斥和兼容的,但我想知道哪种组合,就像你说的那样,是.NET世界中最好的。
简而言之,我的应用程序是一个数据库应用程序。我需要报告并能够将自定义字符串发送到标签/票据打印机。在应用程序的一个特定部分,我需要一些图形操作。就像绘制图像一样,能够对此图像进行鼠标操作,例如捕获鼠标上/下/移动。什么都没有真正进步,但它是必要的。我还需要在网络上提供我的应用程序的一些功能......
如果您有任何建议,技巧,提示,成功故事......我真的想在.NET上弄脏手,但我每天都有1G的头脑阅读所有可用的东西。
感谢。
答案 0 :(得分:5)
到目前为止,根据您提供的当前实现细节,您可能希望专注于桌面(而不是Web)应用程序;如果您的客户不反对安装最新的.NET框架,那么您应该专注于使用.NET 3.5 SP1工具(或者甚至是4.0框架,如果您的预期发货日期大约是6个月或更长时间)。 / p>
你提到的决定因素是外围支持;即能够打印到打印机。 Web技术非常适合在一定程度上替换应用程序,但外围支持不是他们的强项。如果您可以生成打印文档并且基本上只是“打印页面”到打印机,它们可能会起作用,但如果您需要与打印机进行任何低级别的通信,那么富客户端应用程序仍然是主力。
也就是说,富客户端应用程序可以模糊线条。 ClickOnce部署可以处理应用程序的分发更新,而WebServices可以允许您集中某些逻辑。
具体技术;这取决于您的客户将安装什么以及您的需求。 WinForms将在一段时间内得到支持,但WPF似乎是前进的道路;它看到越来越多的采用,微软在VS2010和其他新产品中证明它是一项严肃的技术(而不仅仅是眼睛糖果)。 WCF本质上是.NET的一次革命,而微软将其作为Web服务的新方式或作为现有消息传递技术的替代品(更多的是真正的包装器)进行销售,事实是它带来了大量的功能和提高生产力。
至于数据层的东西:ORM是庞大而强大的,但也需要知识才能正常工作。如果.NET 4.0可能是您的目标,那么您可以查看微软的官方ORM EF4(目前的版本还不是很完美)。 NHibernate也是一个成熟稳定的选择,并提供了大量资源。 Typed-DataSets虽然越来越过时了,而且越来越多地被逐渐关注。
答案 1 :(得分:2)
这真的有点太模糊了。 “这取决于”。
我认为你的应用程序目前是一个Windows应用程序?有什么理由把它变成一个网站吗?如果没有,请忘记asp.net,然后在winforms和WPF之间做出决定。
现在让我们考虑你的应用运行的位置。在您自己的PC上,还是在客户端上?根据您的部署选项(操作系统,无论如何),您可以使用winforms,因为它可能更受支持,但如果可以,请使用WPF。
好的,所以解决后,我们转移到您的数据库。如果你想要一个ORM,(你应该),我喜欢LLBLGen,但它要花钱。恕我直言,这是值得的,但自己决定。所以有了那个排序......
单元测试。你可能不会需要犀牛嘲讽,因为它更适合嘲笑你不写的东西,但也许你可以。刚开始使用NUnit,随着您的进步,您将决定需要测试的内容以及不需要测试的内容。不要担心提前学习。
这就是我接近它的方式:)
答案 2 :(得分:2)
专注于基础设施和模型,我目前正在使用,并将继续:
如果你想要一个web应用程序,我会选择asp.net mvc。尝试在没有任何javascript的情况下使一切正常工作,然后添加jQuery和javascripts以提供更好的体验,但不要求它。
如果你想要一个桌面应用程序,我不确定我会选择什么,所以我会让别人给出建议。
答案 3 :(得分:1)
我认为你应该从Winforms应用程序开始。 WinForms是用于编写桌面应用程序的标准.NET框架。它会与Delphi的设计师非常相似。将控件拖放到设计器图面上并分配属性和事件。它是一种成熟的.NET技术。
很多人会把你推向WPF进行桌面开发,告诉你编写WPF应用程序并且winforms已经死了,等等。 IMO,WPF的设计时间体验在VS2008中很糟糕。它在VS10中得到了改进。走着瞧。现在,如果你走这条路,人们会推荐Blend来设计WPF。
我会拿一本关于winforms的书和一本关于ADO.NET的书。 ADO.NET与Delphi中的标准数据访问功能略有不同。此外,Winforms比Delphi具有更灵活的数据绑定。你可以在.NET中绑定任何实际的东西。这对Delphi dev来说是个很好的改变。我会使用标准的报告控件来编写报告。
一旦你对WinForms感到满意,我会继续使用ASP.NET,WPF,WCF或者你想要的地方。
祝你好运!