none
关于C#和delphi的几个小问题。 RRS feed

  • 问题

  • 请教大家几个小问题哦:
    1,C#和delphi相比,在client-sever结构的软件中有什么大的优势不?
    2,wpf现在看起来还是C#更好。不过现在的wpf是不是成熟了呢?
    2009年12月29日 10:48

答案

  • 1
    两者各有其优势,用哪一种只是习惯而已
    它们都只是工具,重要的是编程思想和工具的适用范围

    2.
    WPF开发于WinForm之后,从技术发展的角度,WPFWinForm先进是不容置疑的。
    伴随着windows7的出现,wpf可能更加流行,做出很多炫效果的界面

    WPF应该是GUI发展的一个延续,原来GUI中复杂的东西,现在通过简单的文本就可以实现。

    http://www.cnblogs.com/nullnoid/articles/1216052.html
    http://hi.baidu.com/%C7%AB%D0%E9%B5%C4%CC%EC%CF%C2/blog/item/7972aa1f965736cba78669b9.html

    努力+方法=成功
    2009年12月29日 11:11
  • 因为您所问的是一些概念上的细节问题,因此我将用较为“精确”的方式向您解释这些细节。
    值得注意的是,有些“细节”可能会和您以往的认知有冲突,这是由于大多数人在交流的过程中并不关心概念细节所造成的。

    1.C#是一种编程语言,严格意义上的编程语言定义了编程的风格,但并不决定使用这种编程语言的时候可以利用哪些外部的功能或资源。
    2.通常我们所说Delphi的时候,是指包含其Object Pascal编程语言、Delphi IDE、VCL/CLX等一系列编程工具在内的总称,在这种前提下和Delphi相比较的“C#”的准确说法应该是“使用C#进行.NET编程”——但是这样说很麻烦不是么?所以平常我们很少这么说,但这一次我需要先向您解释这层关系。

    3.Delphi的VCL/CLX中含有丰富的组件,你还可以找到很多第三方组件,但需要注意的是VCL/CLX中有不少不常用组件都是存在各种各样的缺陷的——因为不常用,所以很少有人去讨论它们。而一旦你的项目中用到这些组件的时候……个人说法:您将陷入同组件缺陷永无止境的斗争当中。很多地方以“专家”自居的人会告诉您是因为您的程序写错了,然后给您一些实际上毫无意义的所谓解决办法。
    如果您出于长远考虑,希望您的程序健壮、稳定,那么您应该小心地使用Delphi,更多地考虑.NET技术。(当然,如果您可以使用C/C++编程,MFC和ATL您也可以选择)

    4.WPF技术.NET技术的一个子集,如果您明白“C#是一种用常于.NET编程的编程语言”,那么您就很容易明白:WPF和C#之间没有“更好”之类的比较关系,因为您本来就可以在WPF中使用C#,它们之间并没有冲突。您的意思可能是将“使用XAML描述窗体”和“使用(IDE自动产生的)C#来构建窗体”相比较,或者是将“WPF窗体”和“WinForm”相比较。
    5.WPF首先被使用在Windows Vista中,而现在Windows 7中的很多附带应用程序也都使用了WPF技术。WPF是为了解决一系列界面呈现问题而出现的,如果您的项目并不需要华丽或者复杂的用户界面,那么您可能感觉不到WPF的优势所在。
    WPF主要解决了这样的一些问题:
    1)传统的Windows窗体(或者WinForm)实现“不均匀半透明”技术细节比较复杂
    2)WinForm中所有控件都是一个实际存在的“Window”对象,不仅占用了很多不必要的资源,还有很多默认行为难以在项目中统一调整
    3)由于前两条的关系,在“不均匀半透明”的WinForm上WM_PAINT消息不会被正常处理的,您只能使用其它方式来模拟WM_PAINT;
    4)由于前三条的关系,在“不均匀半透明”的WinForm上不能使用普通的控件,您必须使用专门设计的控件,或者自行编写程序来模拟控件的行为;
    5)由于第2条的关系,若您想要在项目中使用和系统默认风格完全不同的其它界面风格,您同样只能使用专门设计的控件,或者自行编写自绘过程
    6)“专门设计的控件”除了具有前两条中提到的特性以外,通常还包含一些锦上添花的炫酷功能,但这些控件往往是需要付费购买使用权的第三方控件,然而对于个人或者规模较小的企业而言,无论付费购买还是自行编写都会导致项目成本增加
    7)绝大部分现有的Windows界面技术都不能使用硬件加速,也就是说用户的高性能显卡只有在玩游戏的时候才能发挥其价值,而在不玩游戏的时候就完全浪费掉了。
    以上界面问题困扰了Windows桌面/客户端开发人员很多年,微软也意识到了这个状况,因此才设计了WPF。

    如果我们换一种方式,还可以这样来理解:
    WPF是微软赠予.NET开发人员的一款免费皮肤套件,套件中包含各种方便进行界面设计的工具。使用这款皮肤套件您不仅可以方便地为项目定制统一外观风格,您还因为使用了轻量级窗体而直接获得制作炫酷的“不均匀半透明”界面的能力,并且WPF会根据用户的硬件配置而选择最适合的渲染方式,从而让用户得到更为流畅的界面体验


    Most questions i'm interested in might have two or more possible answers i know or i don't know. So please read question carefully before you try to answer, and explan your question detailedly before asking for help. 很多看起来简单的问题都存在多种可能性,如果您不能详细的解释,别人就不能正确判断出您所遭遇的实际状况,因而不能给出最适合的解决办法。在您没有给出详细信息的情况下,施助者只有张贴大量有可能有关的解决办法。而您可能没有耐心阅读所有这些东西,在这种情况下您就客观地形成了对施助者的伤害——除非“施助者”并没有用心去尝试帮助您。同样地,当您尝试解答一个看起来“好像遇到过”的问题的时候,您也需要详细地阅读和理解这个问题。如果您不了解问题的细节,您可能会给出不相关的或者无助于解决当前问题的解答。
    • 已编辑 Licshee 2009年12月30日 15:07 又忘了标重点了
    • 已标记为答案 小黑桃子 2010年1月11日 13:43
    2009年12月30日 14:56

全部回复

  • 1
    两者各有其优势,用哪一种只是习惯而已
    它们都只是工具,重要的是编程思想和工具的适用范围

    2.
    WPF开发于WinForm之后,从技术发展的角度,WPFWinForm先进是不容置疑的。
    伴随着windows7的出现,wpf可能更加流行,做出很多炫效果的界面

    WPF应该是GUI发展的一个延续,原来GUI中复杂的东西,现在通过简单的文本就可以实现。

    http://www.cnblogs.com/nullnoid/articles/1216052.html
    http://hi.baidu.com/%C7%AB%D0%E9%B5%C4%CC%EC%CF%C2/blog/item/7972aa1f965736cba78669b9.html

    努力+方法=成功
    2009年12月29日 11:11

  • 伴随着windows7的出现,wpf可能更加流行,做出很多炫效果的界面


    为啥子在win 7 , WPF就更成功了呢? 是不是win 7用了一些WPF的技术的说?还是。。。。。。

    这个delphi prism也支持WPF,不过delphi prism怎么看都是披着delphi皮的C#,呵呵。
    2009年12月29日 11:46
  • 我在读书的时候用Java和C#,觉得C#很好用。尤其visual studio比Eclipse好用一万多倍。现在在一个公司做软件,他们用delphi。我不知道是不是应该继续用delphi做以后的project。delphi被几个公司买来买去的,搞得我都没有信心了。唉。。。。。
    2009年12月29日 11:55
  • 技术的采用取决于项目的需求,比如重用以前的代码、维护的费用之类的需求不是你自己可以决定的。不要把你本人的需求放在项目的需求之上。

    The following is signature, not part of post
    Please mark the post answered your question as the answer, and mark other helpful posts as helpful.
    Visual C++ MVP
    2009年12月29日 17:57
    版主
  • 因为您所问的是一些概念上的细节问题,因此我将用较为“精确”的方式向您解释这些细节。
    值得注意的是,有些“细节”可能会和您以往的认知有冲突,这是由于大多数人在交流的过程中并不关心概念细节所造成的。

    1.C#是一种编程语言,严格意义上的编程语言定义了编程的风格,但并不决定使用这种编程语言的时候可以利用哪些外部的功能或资源。
    2.通常我们所说Delphi的时候,是指包含其Object Pascal编程语言、Delphi IDE、VCL/CLX等一系列编程工具在内的总称,在这种前提下和Delphi相比较的“C#”的准确说法应该是“使用C#进行.NET编程”——但是这样说很麻烦不是么?所以平常我们很少这么说,但这一次我需要先向您解释这层关系。

    3.Delphi的VCL/CLX中含有丰富的组件,你还可以找到很多第三方组件,但需要注意的是VCL/CLX中有不少不常用组件都是存在各种各样的缺陷的——因为不常用,所以很少有人去讨论它们。而一旦你的项目中用到这些组件的时候……个人说法:您将陷入同组件缺陷永无止境的斗争当中。很多地方以“专家”自居的人会告诉您是因为您的程序写错了,然后给您一些实际上毫无意义的所谓解决办法。
    如果您出于长远考虑,希望您的程序健壮、稳定,那么您应该小心地使用Delphi,更多地考虑.NET技术。(当然,如果您可以使用C/C++编程,MFC和ATL您也可以选择)

    4.WPF技术.NET技术的一个子集,如果您明白“C#是一种用常于.NET编程的编程语言”,那么您就很容易明白:WPF和C#之间没有“更好”之类的比较关系,因为您本来就可以在WPF中使用C#,它们之间并没有冲突。您的意思可能是将“使用XAML描述窗体”和“使用(IDE自动产生的)C#来构建窗体”相比较,或者是将“WPF窗体”和“WinForm”相比较。
    5.WPF首先被使用在Windows Vista中,而现在Windows 7中的很多附带应用程序也都使用了WPF技术。WPF是为了解决一系列界面呈现问题而出现的,如果您的项目并不需要华丽或者复杂的用户界面,那么您可能感觉不到WPF的优势所在。
    WPF主要解决了这样的一些问题:
    1)传统的Windows窗体(或者WinForm)实现“不均匀半透明”技术细节比较复杂
    2)WinForm中所有控件都是一个实际存在的“Window”对象,不仅占用了很多不必要的资源,还有很多默认行为难以在项目中统一调整
    3)由于前两条的关系,在“不均匀半透明”的WinForm上WM_PAINT消息不会被正常处理的,您只能使用其它方式来模拟WM_PAINT;
    4)由于前三条的关系,在“不均匀半透明”的WinForm上不能使用普通的控件,您必须使用专门设计的控件,或者自行编写程序来模拟控件的行为;
    5)由于第2条的关系,若您想要在项目中使用和系统默认风格完全不同的其它界面风格,您同样只能使用专门设计的控件,或者自行编写自绘过程
    6)“专门设计的控件”除了具有前两条中提到的特性以外,通常还包含一些锦上添花的炫酷功能,但这些控件往往是需要付费购买使用权的第三方控件,然而对于个人或者规模较小的企业而言,无论付费购买还是自行编写都会导致项目成本增加
    7)绝大部分现有的Windows界面技术都不能使用硬件加速,也就是说用户的高性能显卡只有在玩游戏的时候才能发挥其价值,而在不玩游戏的时候就完全浪费掉了。
    以上界面问题困扰了Windows桌面/客户端开发人员很多年,微软也意识到了这个状况,因此才设计了WPF。

    如果我们换一种方式,还可以这样来理解:
    WPF是微软赠予.NET开发人员的一款免费皮肤套件,套件中包含各种方便进行界面设计的工具。使用这款皮肤套件您不仅可以方便地为项目定制统一外观风格,您还因为使用了轻量级窗体而直接获得制作炫酷的“不均匀半透明”界面的能力,并且WPF会根据用户的硬件配置而选择最适合的渲染方式,从而让用户得到更为流畅的界面体验


    Most questions i'm interested in might have two or more possible answers i know or i don't know. So please read question carefully before you try to answer, and explan your question detailedly before asking for help. 很多看起来简单的问题都存在多种可能性,如果您不能详细的解释,别人就不能正确判断出您所遭遇的实际状况,因而不能给出最适合的解决办法。在您没有给出详细信息的情况下,施助者只有张贴大量有可能有关的解决办法。而您可能没有耐心阅读所有这些东西,在这种情况下您就客观地形成了对施助者的伤害——除非“施助者”并没有用心去尝试帮助您。同样地,当您尝试解答一个看起来“好像遇到过”的问题的时候,您也需要详细地阅读和理解这个问题。如果您不了解问题的细节,您可能会给出不相关的或者无助于解决当前问题的解答。
    • 已编辑 Licshee 2009年12月30日 15:07 又忘了标重点了
    • 已标记为答案 小黑桃子 2010年1月11日 13:43
    2009年12月30日 14:56