代码之家  ›  专栏  ›  技术社区  ›  Rachel

ASP.Net或WPF(C#)?[关闭]

  •  50
  • Rachel  · 技术社区  · 14 年前

    我们的团队对此意见分歧,我想听听第三方的意见。

    我们正在构建一个应用程序,无法决定是否要将.Net WPF桌面应用程序与WCF服务器一起使用,或使用jQuery使用ASP.Net web应用程序。我想我应该问这个问题,有一些规格,看看使用任何一方的利弊。我有自己的最爱,觉得自己有偏见。

    理想情况下,我们希望以尽可能快的速度构建软件的初始版本,然后放慢速度,并花时间构建我们稍后需要的其他功能/组件。最重要的是我们希望软件速度快。用户整天查看记录,加载记录或刷新屏幕的延迟会降低他们的工作效率。

    申请详情:

    • 我估计在最初版本中大约有100个不同的屏幕,计划在最初版本发布之后再添加更多的屏幕。
    • 我们希望在提醒和事件系统中使用双向通信
    • 目前必须支持大约100个用户,尽管我们被告知允许最多500个用户的增长
    • 我们有多个地点

    要考虑的项目(在某些情况下可能不是最初的,而是在将来的版本中):

    • 在初次发布后,还可以添加其他组件(有很多这样的组件。。。可能比最初的申请有效)
    • 键盘导航
    • 表演是必须的
    • 生产速度到初始版本
    • 低维护开销
    • 未来支持
    • 软电话/扫描仪集成

    我们的开发商:

    • 我们有一个程序员谁一直学习WPF在过去几个月,是谁建议我们使用WPF这个。
    • 我们有一个熟悉ASP.Net的第二个程序员,他将来可能会帮助我们完成这个项目,尽管他在最初的版本发布之前不会做太多工作,因为他花时间维护我们当前的软件。
    • 有我,他和两个人都工作过,而且在任何一个方面都很舒服
    • 我们有一家外部公司做项目管理,他们是一家ASP.Net公司。
    • 我们计划雇佣1-2名员工,但我们首先需要知道我们的发展方向

    环境:

    • 一般用户在带有终端服务的Windows2003服务器上。它们通过RDP连接使用WYSE瘦客户机进行连接。管理人员有自己的XP或更高的个人电脑。用户可以指定自己的分辨率,尽管他们仅限于使用IE作为web浏览器。
    • 其他位置通过MPLS连接连接到我们的网络

    基于此,你会选择什么?为什么?

    我特别感兴趣的是从开发人员那里听说,他们对ASP.Net和WPf都有经验。

    7 回复  |  直到 14 年前
        1
  •  39
  •   Ray Burns    14 年前

    选择WPF的原因:

    • 比ASP.NET和jQuery更快更容易的开发
    • 更容易实现数据的快速增量后台加载
    • 更容易实现常用数据的客户端缓存(对远程办公室很重要)
    • 更高效的服务器数据传输(可以使用web浏览器无法使用的高级WCF功能)
    • 键盘导航更好,因为您可以轻松定义快捷方式等,而不受浏览器的限制
    • 维修费用 许多的 更好地使用MVVM模式
    • 软电话集成容易

    选择ASP.NET和jQuery的原因:

    • 我看不见

    在你的情况下,我肯定会选择WPF。

        2
  •  9
  •   Dean Chalk    14 年前

    为什么不考虑一个混合的解决方案-Silverlight

    使用Silverlight,您可以获得WPF的大部分优点和状态(使用几乎完全相同的XAML和代码),还可以获得ASP.NET的部署特性

    很多人认为Silverlight是继ASP.NET/AJAX之后的下一步,它肯定会提供WPF与您的场景相关的所有好处。

        3
  •  8
  •   Artemiy    14 年前

    首先,我会坐下来写下业务需求和规范。你使用什么技术并不重要——正确的计划比技术选择更能影响你的项目时间表。对于一个内部定制的应用程序来说尤其如此。

    在开发方面,我会考虑需求并布置后端功能。实际上,不管客户端技术如何,我都会在WCF中实现后端——这样,如果需要的话,您可以同时使用这两种技术(例如,对于电话集成,您可以编写一个独立的WPF应用程序)。带有jQuery的ASP.NET可以很容易地与桌面客户端一起使用WCF服务(JSON或XML版本)。

    至于客户端表单的开发,这在很大程度上取决于开发人员的经验和您未来的计划。我不打算在这里讨论开发web软件的优缺点——在过去的10年里,有很多关于基于云/web的软件的文章(例如salesforce)。我更愿意专注于可交付成果——你的团队今天和将来最满意的是什么。从开发的角度来看,WPF和web开发有很大的不同,它需要完全不同的经验。

        4
  •  5
  •   Richard Harrison    14 年前

    毫无疑问,WPF是一条路。我同意“雷伯恩斯”所说的一切。

    因为:

    • 你会得到一个更丰富,更流畅,更快的应用程序。
    • 建造起来会更容易 1个 .
    • 软电话/扫描仪(即硬件)集成将需要浏览器插件等,这对于基于浏览器的应用程序来说可能是一场噩梦。
    • 对于本机应用程序,键盘导航更好。
    • 对于WPF应用程序,IME维护更容易。

    明确使用WCF通过实体框架提供后端,请参见 The Entity Framework In Layered Architectures . 在本机应用程序中,您可以与后端进行更好的集成,因为它可以被称为内联的—不需要回调或ajax。我已经为WPF构建了组件,这些组件通过EF链接到业务逻辑,为验证之类的简单事情提供感知控件。把一个客户名称字段放到表单上是非常好的,它只是起作用。

    要添加其他组件,您需要使用经过深思熟虑的插件体系结构来构建它。这在两种环境中都是一样的。我有一些想法,我写在我的日记里,题为 Designing a plugin architecture for an application

    构建WPF应用程序时,您将使用一种语言(例如C#)+标记(XAML)编写。在构建asp.net时,您最终会使用两种语言+标记,因为您总是需要编写一些Javascript代码。

    因此,根据您的需求,它必须是WPF/WCF(EF)。基于Web的应用程序将有更多的工作,更复杂,而不是很好。

    大约12个月前,我很幸运,可以自由选择新应用的技术。我花了将近一个月的时间来评估所有的选择 conclusion 它必须是C#WPF实体框架。在写了申请表之后,我可以确认这是一个正确的选择。。。


    1个 . 即使您的程序员必须先学习WPF,它仍然会更容易。WPF是更好的考虑,伟大和可爱。非常可爱。它只是工作正常。

        5
  •  4
  •   Rev    14 年前

    您好!
    我想 The question at issue is Windows-application or Web application (win应用的WPF与web应用的asp), 哪一个更适合你和你的项目? . 在这种情况下,您的平台是网络,您的程序必须在网络上工作。因此,对于这种用法,Web应用程序是更好的,但是存在很多可以很难做出决定的点。网络平台有很大的挑战

    使用asp.net开发web应用程序几乎很困难。您必须尝试处理web应用程序的许多事情(请求时间、会话管理,甚至与WPF、j-query等相比,UI较差)。记住,这并不像简单的网站那么简单。

    但是win应用程序在这种情况下很适合网络:“本地网络”(mpls几乎相同)。开发win应用程序绝对比web应用程序容易(“至少有多少用户精通网络程序开发”)。在这种情况下,WPF有许多优点(UI、命令等),也有许多挑战点(如多线程和缺乏该领域的专家开发人员)。 I'm rather with wpf than asp but decisions is yours

    以及 粉笔 指向好东西Silverlight,但如果要使用它,必须查看prism框架: http://compositewpf.codeplex.com/
    我最近用asp和silverlight(prism框架)分别开发了一个项目。开发silver light版本太困难,比asp.net版本需要更多的时间 but at the end SL-ver have great look nothing else!

    烧伤 指出了关于wpf的好问题。同时考虑 阿泰米的 邮政。你们两个的环境条件都是一样的。WPF/ASP可以与扫描仪和软电话一起使用 cuz the base of both is on C# and .net library
    最后,你的决定是你必须雇用高级开发人员,至少为网络平台开发一个商业应用。

        6
  •  3
  •   roberto    12 年前

    你的应用是桌面应用还是网络应用。

    如果桌面wpf是最好的。 如果基于web的asp.net是最好的。

    不要用你的快速启动场景来提前加载你的开发。这永远不会起到很好的作用,而且会导致部署的草率。慢慢来,涵盖所有步骤(业务需求、系统设计、程序设计、代码、更多测试和测试、部署)

        7
  •  2
  •   Mischa Kroon    14 年前

    要为ASP.NET指出的一些要点:

    NET开发人员的池比WPF开发人员的池大得多。 这意味着您可能会更容易找到合格的ASP.NET开发人员。

    ASP.NET可能更具未来性,WPF得到较大更改和难以移植到更高版本的可能性可能更大。 还请记住,MS的重点似乎是Silverlight,因此可能会有一个整合的道路,使WPF过时。

    更为成熟的ASP.NET生态系统使得更多的开箱即用的解决方案可以用来解决问题。

    有了多个位置,你可以跳过几层,直接进入一个网站?