我必须开发一个基本的“业务线”应用程序,具有通常的功能,如订单,库存控制,销售,报告等。
我将使用WPF开发此应用程序以在Windows上运行但我想将其开发为“open”,这样我就可以使用相同的结构(可能运行Mono)甚至是Silverlight模块。那些做过类似事情(幸存下来)的人可以给我一个指南或类似的东西,我可以找到好的做法吗?我是一名Delphi开发人员,对C#有一些中间知识,但是有很多“惊人的”库,框架和模式,我对这个项目的好处有点遗失。
类似于:使用EF(可能等待ef4?)或nHibernate或ADO.NET,并使用WCF或Web服务公开您的数据,或忘记Mono,因为灵活性损失等等。给我一个如何做的提示?如果有人在这类项目中遇到不好的经历,那么也很高兴听到你的意见。在错误的决定中也有很多学习:)
答案 0 :(得分:3)
Mono没有实现WPF,它甚至没有在路线图上。我不确定实体框架......
你可以在Silverlight(它有一个开源实现)中做到这一点,但它不适合创建桌面(虽然从Silverlight 3开始就可以)
答案 1 :(得分:3)
我从哪里开始?
首先,根据您的描述,您已经过头了 其次,当你对一切都不熟悉的时候,你正试图选择一个技术堆栈。
在最好的情况下,我会推荐您提到的一些技术的良好培训课程,以便您更好地了解它们。我也推荐一位导师,一位之前完成此任务的人。
但是,现实可能不允许接受培训或导师。在那种情况下,我建议写几个真实的丢弃程序。获取一项业务功能,并尝试使用您提到的一些技术编写它。如果一个人感觉更好,并给你你想要的决定!不要停留在第一个似乎有用的东西,再尝试一下。你还应该听一些好的播客。我建议Dot Net Rocks以便更好地掌握这项技术。此网站的早期播客也是一些设计讨论StackOverflow podcast
的非常好的来源祝你好运。
答案 2 :(得分:1)
我最近在WPF中做了一些非常相似的事情。我有一个ASP.NET背景,但我从来没有使用过WPF(或WinForms),它让我感到困难了一段时间,但是我一直在努力(现在大约3个星期),更容易它已经得到了。我真的只是搜索Stack Overflow和Google的代码片段,类似于我正在做的事情,并通过它们并根据需要更改它们。我的公司买了一本帮我出去的书(这是由Sams出版的WPF Unleashed),而且非常好。我祝你在第一个WPF应用程序上好运。
答案 3 :(得分:1)
如果将业务模型和业务逻辑与用户界面分开,则
使用MVC(Model View Controller)或MVVM(Model View View-Model)或类似的设计模式,
然后,您可以将多个用户界面连接到同一业务模型+业务逻辑,甚至将相同的用户界面连接到其他业务模型+业务逻辑。
答案 4 :(得分:0)
谢谢大家的支持... 布拉德,我已经按照你的建议,做了一些测试用例,看看看起来不错......我的问题是,尽管我可以开发一个在WPF中的应用程序,并在使用wpf数据绑定,泛型,linq,匿名对象,所有很酷的东西,我总是听到这个和那作为所有世界问题的解决方案(如mvvm,或并行编程,或函数式语言等等,如果我不使用任何这些不错的技术,我会在决策中感到“错误”,并让我感觉不好。我知道这些概念但不支配它,似乎有许多东西需要学习,遗憾的是我没有那么多时间。 Thomas ,正是因为mono不支持WPF我想让应用程序尽可能孤立,所以我可以做一个简单的winform层来操作数据。 darthnosaj ,谢谢,我也是这样做的,搜索互联网并找到了很多信息(这个网站上装满了很多人:) :)
而 Danny ,这就是我认为我需要的...将使用mvvm查看一些示例应用程序,看看它是否对我有用。因为我所听到的几乎是一种罪行,在这种情况下我不想使用这种隔离。
再次感谢所有人:)
答案 5 :(得分:0)
我建议你保留你的申请N-Tier。使所有实体,数据适配器和业务逻辑与实际桌面应用程序分离。这样您就可以在Windows平台上使用WPF并在Linux / Mac平台上使用Mono / GTK#。
您只需要编写重复的代码来支持实际的GUI应用程序功能,而来自单独的实体/数据访问/业务逻辑库(例如DLL /类库)的代码可以在WPF和Mono /中使用GTK#项目。只需添加DLL作为WPF和Mono / GTK#项目的参考。
有一个good video from Channel 9 on building N-Tier applications
还有MSDN documentation and guidelines on building N-Tier applications