C# 跨平台.NET/Mono应用程序开发

C# 跨平台.NET/Mono应用程序开发,c#,.net,mono,C#,.net,Mono,我对开始学习[C#].NET很感兴趣,想检查一下我的理解是否正确。我想为Windows创建基于GUI的程序,但有一天可以将它们移植到其他平台(例如Mac、iOS)。我意识到从Windows到iOS有一个巨大的学习曲线,我不能简单地“编写一次,然后在任何地方编译”。我在看C#NET;它有一个大型支持社区,我的工作场所有VS站点许可证。我想我可以创建相对较小、速度较快的Windows可执行文件(正确吗?)(b)使用Mono(我猜是Xamarin)在以后为Mac和/或iOS创建应用程序版本时至少使用部

我对开始学习[C#].NET很感兴趣,想检查一下我的理解是否正确。我想为Windows创建基于GUI的程序,但有一天可以将它们移植到其他平台(例如Mac、iOS)。我意识到从Windows到iOS有一个巨大的学习曲线,我不能简单地“编写一次,然后在任何地方编译”。我在看C#NET;它有一个大型支持社区,我的工作场所有VS站点许可证。我想我可以创建相对较小、速度较快的Windows可执行文件(正确吗?)(b)使用Mono(我猜是Xamarin)在以后为Mac和/或iOS创建应用程序版本时至少使用部分代码。(对吗?)


如果我的其他问题的答案是“是”,那么我可以从一开始就做些什么来提高我在不止一个Windows上使用代码的可能性?(例如,“仅使用MonoDevelop”或“仅使用.NET2.0库”)。我看到了,但有些事情我现在无法理解。我是一个爱好者,真的是一个新手,所以有时我会努力去理解我在网上能找到的大量信息。

通过MVVM方法,我认为你可以走很长的路。Forms(用于iOS和Android)、WPF(?)和WinForms(用于Windows、Linux和Mac)。看看你的MVVM框架,它支持所有这些。。。我将了解更多,但简单地说,这与保持模型和视图代码独立的其他方法大致相同吗。MVVM是非web应用程序中的首选方法,因为它实际上将所有逻辑排除在UI层之外,这使得在保持核心不变的情况下(在最佳情况下)更容易连接其他UI。