NET Conf 2017後初嘗Xamarin Forms 3.0@Linux
對很多.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
usingSystem;
usingXamarin.Forms;
usingXamarin.Forms.Platform.GTK;
usingXFGtk;
namespaceXFGtk.Linux
{
classMainClass
{
publicstaticvoidMain(string[] args)
{
Gtk.Application.Init();
Forms.Init();
var app =newApp();
var window =newFormsWindow();
window.LoadApplication(app);
window.SetApplicationTitle("Hello GTK");
window.Show();
Gtk.Application.Run();
}
}
}
看了下結果,自我感覺良好。
回頭再看看項目還是熟悉的味道,C# , XAML , MonoDevelop . All it is cool
※ASP.NET Core中為指定類添加WebApi服務功能
TAG:dotNET跨平台 |