我在Linux上用C和C++编程已经有3年了,最近我对开发商业软件很感兴趣。比方说,我找到了一个我认为我可以成功的利基市场,但他们只使用Windows。然而,我完全没有使用Windows API的经验。我有几个问题:
我应该学习.NET吗?
我需要学习C#才能使用.NET吗,还是可以坚持使用C++?
在Cygwin下使用GCC和--no-cygwin选项进行编译有何感想?我对可移植性很感兴趣,我担心如果我开始为VC++编写代码,我可能会被绑定到Windows上。
哪里是进行基本阅读的好地方?
关于从Linux到Windows编程的过渡,您还能告诉我些什么?
发布于 2009-04-25 17:00:46
我遇到了完全相同的问题,我很高兴我尝试了.NET。我希望这个信息能帮助你:
我应该学习.NET吗?
我会高度评价它。
为了使用.NET,我需要学习C#吗?还是可以坚持使用C++?
你可以坚持使用C++,但我相信你会喜欢学习C#的,请尝试一下。你也可以混合它们。使用.NET的主要挑战是学习所有可以帮助您解决问题的库(因此您不需要重新发明轮子)。经常使用msdn并尝试get a map of the fundamental classes and assemblies。
如果你来自C++,这是一次有趣的经历,你应该不会有大的问题。
哪里是进行基本阅读的好地方?
我会从一些简单的东西开始,查看免费的Visual Studio工具、软件和示例here,转到MSDN文档并用MSDN编译一些示例(如何使用access files,...)。正如您所看到的,您将同时找到C#和C++示例。
当然,像C# via CLR这样的书最终还是需要阅读的。
可移植性
确保在Mono和多个平台上运行代码。
未来投资
对学习.NET框架的投资将会有所回报。现在学习所有的新工具都是很昂贵的,有了.NET,你就知道你可以进化。新的功能和语言出现了,但基础类仍然存在,因此您的时间/精力投资更受控制。
发布于 2009-04-25 16:43:38
我应该学习.Net吗?
这取决于你是否觉得这对你正在寻找的利基市场有利。例如,如果您的利基是一个桌面应用程序,这可能是一个好主意,因为,我的,开发一个WinForms,WPF图形用户界面比C++版本容易得多,
我需要学习C#才能使用.Net吗,还是可以坚持使用C++?
C#不是必需的,使用C++/CLI允许您在仍然使用C++的同时利用.Net。然而,我倾向于只使用C++/CLI组件,这些组件主要关注托管代码和本机代码之间的互操作。它特别擅长这种开发。如果您切换到更主流的应用程序,我想您会发现C#或VB.Net更适合您。大多数在线示例都是针对这些语言的。特别是,该工具的很大一部分与这些语言密切相关(从WinForms和WPF设计器开始)。
担心编写不可移植的代码并被绑定到VC++
我敢肯定这个观点会有点不受欢迎。但您已经提到,您所关注的利基是特定于Windows的。如果你只想在Windows上运行,那么编写可移植代码有什么意义呢?这不是Windows的偏见,如果平台颠倒了,我也会提出完全相同的论点。
我并不是说可移植代码是一件坏事。事实上,这是一件非常好的事情。但是,如果没有使用可移植性的潜力,为什么不利用这个平台呢?
发布于 2009-04-25 16:50:13
答案取决于您想要实现的程序类型。
如果你想实现一些系统实用程序,那么答案和*nx world差不多:你必须用C语言编程才能得到最好的结果,而且你必须非常了解Win API。
至于其他方面,C#可能是当今的发展方向。它是现有dotNet语言中最好的语言。
学习Windows API绝对是一件好事,但我建议使用一些脚本语言来更快地进行实验(Lua with Alien library,Python,AutoIt等)。它的好处是你可能知道其中的一些,来自*nx社区。
既然你担心可移植性,我建议你在使用C#时要特别注意特定于操作系统的东西,比如路径分隔符、文件名区分大小写等。你可以在MonoDeveloper网站上找到一些很好的文章。Java也是不错的选择--我不是专家,但据我所知,为了更好的可移植性,它牺牲了一些语言的复杂性和速度,以及原生的感觉(从C#的角度看)。
最新的MonoDevelop让你甚至可以加载Visual Studio项目,尽管我从来没有亲自这么做过。
https://stackoverflow.com/questions/789278
复制相似问题