3

我必须开发一个基本的“业务线”应用程序,它具有订单、库存控制、销售、报告等常用功能。

我将使用 WPF 开发此应用程序以在 Windows 上运行,但我想将其开发为“开放式”,这样我就可以使用相同的结构(可能在Mono上运行)甚至是Silverlight模块来开发 Windows 窗体应用程序。做过类似事情(并且幸存下来)的人可以给我一个指导方针或类似的东西,我可以找到好的做法吗?我是一名Delphi开发人员,对 C# 有一些中级知识,但是有这么多“令人惊叹的”库、框架和模式,我对什么对那个项目有好处有点迷茫。

类似的东西:使用 EF(也许等待 ef4?)或 nHibernateADO.NET,并使用 WCF 或 Web 服务公开您的数据,或者由于灵活性损失而忘记 Mono 等。有人可以给我一个关于您如何使用的提示会做吗?如果有人在此类项目中有不好的经历,也很高兴收到您的来信。在错误的决定中也有很多学习:)

4

6 回答 6

3

Mono 没有实现 WPF,它甚至不在路线图上。我不确定实体框架...

您可能可以在 Silverlight(它有一个开源实现)中做到这一点,但它并不适合创建桌面(尽管从 Silverlight 3 开始就有可能)

于 2009-08-04T22:57:11.643 回答
3

我从哪说起呢?

首先,从你的描述来看,你是在你的头上。
其次,当一切对您来说都是新事物时,您会尝试选择一个技术堆栈。

在最好的情况下,我会推荐你​​提到的一些技术的良好培训课程,以便你更好地理解它们。我还推荐一位导师,以前做过这件事的人。

但现实可能不允许培训或导师。在这种情况下,我建议编写几个现实生活中的一次性程序。拿一个业务功能,并尝试用你提到的一些技术来编写它。如果一个人感觉更好,并给你你想要的决定!不要停止第一个似乎有效的方法,多尝试一些。

你还应该听一些好的播客。我推荐Dot Net Rocks以更好地掌握这项技术。该站点的早期播客也是一些设计讨论StackOverflow 播客的一个很好的来源

祝你好运。

于 2009-08-04T23:08:53.273 回答
1

最近我不得不在 WPF 中做一些非常相似的事情。我有 ASP.NET 背景,但我从未使用过 WPF(或 WinForms),这让我有一段时间感到困惑,但我研究它的时间越长(现在大约 3 周),就越容易它已经得到了。我真的只是在 Stack Overflow 和 Google 上搜索了与我正在做的类似的代码片段,并根据需要处理并更改它们。我的公司也买了一本帮助我的书(它是 Sams 出版的 WPF Unleashed),非常好。祝你在你的第一个 WPF 应用程序上好运。

于 2009-08-04T23:20:46.073 回答
1

如果您将业务模型和业务逻辑与用户界面分离,
使用 MVC(模型视图控制器)或 MVVM(模型视图视图模型)或类似的设计模式,
那么您可以将多个用户界面连接到同一个业务模型 +业务逻辑,甚至将相同的用户界面连接到其他业务模型+业务逻辑。

于 2009-08-04T23:48:15.863 回答
0

我建议您保留您的应用程序 N-Tier。使所有实体、数据适配器和业务逻辑与实际桌面应用程序分离。这样您就可以在 Windows 平台上使用 WPF,在 Linux/Mac 平台上使用 Mono/GTK#。

您只需要编写重复的代码来支持实际的 GUI 应用程序功能,而来自单独的实体/数据访问/业务逻辑库(例如 DLL/类库)的代码可以在您的 WPF 和 Mono/GTK# 项目中使用. 只需添加 DLL 作为对 WPF 和 Mono/GTK# 项目的引用。

第 9 频道有一个关于构建 N 层应用程序的精彩视频

还有关于构建 N 层应用程序的 MSDN 文档和指南

于 2010-01-09T05:55:15.713 回答
0

谢谢大家的支持......布拉德,我已经在听从你的建议,做一些测试用例看看什么看起来不错......我的问题是尽管我可以在 WPF 中开发一个应用程序并且对使用有一个中等的理解wpf 数据绑定、泛型、linq、匿名对象、所有很酷的东西,我总是听说这个和那个作为解决世界上所有问题(如 mvvm、并行编程或函数式语言等)的解决方案,让我觉得“如果我不使用任何这些好技术,我的决定和一个糟糕的开发人员是错误的”。我知道概念但不主宰它,似乎有很多东西要学,可惜我没有那么多时间。 托马斯,正是因为 mono 不支持 WPF,我想让应用程序尽可能地隔离,所以我可以做一个简单的 winform 层来操作数据。 darthnosaj,谢谢你,我也在这样做,搜索互联网并找到了很多信息(这个不错的网站充满了地狱般的人:))

Danny,这就是我认为我需要的......将查看一些使用 mvvm 的示例应用程序,看看它是否适合我。因为我听到的几乎是在那种情况下不使用的犯罪,我想要那种孤立。

再次感谢大家:)

于 2009-08-05T12:58:48.257 回答