當前位置:
首頁 > 最新 > NET Conf 2017後初嘗Xamarin Forms 3.0@Linux

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

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 dotNET跨平台 的精彩文章:

ASP.NET Core中為指定類添加WebApi服務功能

TAG:dotNET跨平台 |