.NET Conf 2017后初尝Xamarin Forms 3.0@Linux

编者语:身体很重要,像我这样腰酸背痛的就是IT老毛病了,痛得辛苦,但有些事情是必须做的(身体会好起来,有些东西错过了就是错过了)。

       对很多.NET粉,.NET Conf 2017的东西估计提前一个月都熟悉了,Xamarin粉估计最大惊喜不是Xamarin Live Player, 也不是Xamarin.Forms混合NativeControl ,而是Xamarin.Forms 3.0,因为它融入到 Linux平台. Xamarin.Forms 跨平台,一次编写生成原生界面是在跨平台移动开发中很大的优势。从1.0 诞生开始,用XAML构建多平台原生界面就成为了我项目中必不可少的,也是每次我演讲必讲的话题。
       
       如果说大家寄望Xamarin.Forms有更大的进步空间或者会是能更高效的编写界面,和融入更多的原生控件。在5月Build,Xamarin就满足了大家。而这次给大家更多的惊喜莫过于Xamarin Forms可以进入Linux Desktop,整合Gtk Sharp让你更快速的完成跨Desktop的开发。更可喜的是它不再是PPT上的东西,而是可以把弄的好玩具。
       
       我趁着这个周末,亲自玩了下Xamarin.Forms 3.0 ,把一些经验分享给大家.
       1.学习资料:

       https://github.com/jsuarezruiz/forms-gtk-progress  这里是最官方的,也是最方便了解Xamarin.Forms.gtk的地方。现阶段Xamarin .Forms.gtk还在开发中,你通过这里可以关注更多咨询,也可以贡献一下代码。话说我也准备在这里做点贡献,将会在接下来的日子分享给大家了。
       https://github.com/jsuarezruiz/xamarin-forms-samples/tree/gtk  官方示例,是现阶段最好的教程。
       https://channel9.msdn.com/Events/dotnetConf/2017/T326  .NET Conf 2017介绍Xamarin.Forms 3.0 的视频
       2.开发环境
       在Linux上装好你的mono和MonoDevelopIDE(总有一天会叫Visual Studio for Linux), 如果你还不会,那就去http://www.mono-project.com/ 上面有教程。
       Nuget配置,由于现在Xamarin.Forms在很早的阶段,所以不存在在Nuget上,但你可以通过刚才提到的示例,做一个本地Nuget(Sample中Nuget 文件夹包含了Xamarin.Forms 3.0, Xamarin.Forms.GTK等新的包)。打开MonoDevelop通过Tools -> Add Custom Tool -> Nuget -> Source 引入。
       
       3. 开发,现在Windows/MacOS上创建一个Xamarin.Forms的项目(现在还不能在Linux上创建Xamarin.Forms项目,现在Xamarin.Forms.GTK项目还没有正式引入Xamarin.Forms的解决方案模版), 然后在Linux中打开,在创建好的项目中添加一个GTK#项目。
       
       并把Windows.cs和相关的User Interface文件夹对应的界面删除。

       接下来把解决方案内的Xamarin.Forms替换成3.0版本(如果你刚才添加Nuget成功,你可以看到下图的引用),并对创建的GTK#项目添加Xamarin.Forms引用

               

       最后要做的事是修改Program.cs      
using System;
using Xamarin.Forms;
using Xamarin.Forms.Platform.GTK;
using XFGtk;


namespace XFGtk.Linux
{
    class MainClass
    {
        public static void Main(string[] args)
		{
			Gtk.Application.Init();
			Forms.Init();

            var app = new App();
			var window = new FormsWindow();
			window.LoadApplication(app);
			window.SetApplicationTitle("Hello GTK");
			window.Show();
			Gtk.Application.Run();
        }
    }
}
        
        看了下结果,自我感觉良好。
        回头再看看项目还是熟悉的味道,C# , XAML , MonoDevelop . All it is cool 
        
        

猜你喜欢

转载自blog.csdn.net/u014388424/article/details/78078597