有史以來第一次,開發(fā)者將能夠看到WPF、Windows Forms和WinUI的技術(shù)在社區(qū)觸手可及。”
微軟高管在12月5日的Microsoft Connect;2018年的活動上興奮地宣布新的開源計劃。
這表明,微軟3個最流行的Windows框架正在迎來開源。它們分別是:
Windows Presentation Foundation(WPF);
Windows Forms;
Windows UI XAML Library(WinUI)。
要知道,微軟在10月27日完成對GitHub的收購,而這次在年度大會上,通過GitHub來開源相關(guān)框架算得上是最大的新聞了。
為何開源?
Windows開發(fā)人員平臺公司副總裁Kevin Gallo表示:
“微軟的三個流行的Windows用戶體驗框架已準(zhǔn)備好為開發(fā)者在GitHub上做出貢獻。開源這些技術(shù)的目的,其實是促進產(chǎn)品團隊與社區(qū)之間的透明度,有助于Windows開發(fā)的民主化,使社區(qū)能夠參與并為此做出貢獻。”
雷鋒網(wǎng)查詢微軟.NET Blog了解到,2014年11月12日,微軟正式宣布了.NET Core的開源。它取得了巨大的成功。.NET平臺已經(jīng)收到來自微軟以外的3700多家公司的超過60000個社區(qū)的拉取請求。
微軟在現(xiàn)場承諾,將在.NET Core上為這些框架做出貢獻。第一波代碼將于今天在GitHub上發(fā)布,未來幾個月將出現(xiàn)更多代碼。據(jù)最新數(shù)據(jù),目前GitHub擁有2800萬開發(fā)者。
Visual Studio 2019首次公開預(yù)覽 與GitHub配合使用
大會上,微軟還推出Visual Studio 2019首次公開預(yù)覽,這意味著外界現(xiàn)在可以下載它用于Windows和Mac。根據(jù)微軟的說法,該版本旨在幫助開發(fā)人員更快,更輕松地啟動和恢復(fù)編碼。此外,Visual Studio 2019還將增加更多的編碼空間、更多的重構(gòu)能力和更智能的調(diào)試。
據(jù)了解,Visual Studio是微軟面向任何開發(fā)者的同類最佳工具,它的功能在于快速編寫代碼、輕松調(diào)試和診斷、增加測試頻率,并根據(jù)個人喜好進行擴展和自定義、有效協(xié)作。
目前,全球有超過1200萬開發(fā)人員使用Visual Studio構(gòu)建新應(yīng)用程序并增強現(xiàn)有應(yīng)用程序。
最新發(fā)布的Visual Studio 2019將與Git存儲庫配合使用,無論是本地存儲、線上Git存儲還是GitHub、Azure存儲,新的拉取請求都將得到更好支持。
.NET Core 3.0 Preview 1可用:“最激動人心的.NET版本之一”
對于微軟來說,.NET Core 3是一項重大更新,它增加了對使用Windows Presentation Foundation(WPF)、Windows Forms和Entity Framework 6(EF6)構(gòu)建Windows桌面應(yīng)用程序的支持。
今年早些時候的Build 2018中,微軟高層表示,使用.NET Core 3.0,開發(fā)人員將獲得使用WPF、Windows Forms和XAML Islands(WinForms和WPF應(yīng)用程序中的本機通用Windows平臺控件)構(gòu)建客戶端應(yīng)用程序的支持。
微軟公共語言運行團隊的項目經(jīng)理Rich Lander表示:“我們認(rèn)為.NET Core 3.0將是我們發(fā)布過的最激動人心的.NET版本之一。”
據(jù)雷鋒網(wǎng)了解,.NET Core 3.0是下一代.NET Core平臺,它承諾對Web、云、物聯(lián)網(wǎng)、AI/ML和Windows桌面工作負(fù)載進行重大更新。而這次的Preview 1則是.NET Core 3的第一個公開發(fā)布。
微軟開源后,.NET Foundation(.NET基金會)宣布組織架構(gòu)調(diào)整
偉大的開發(fā)人員創(chuàng)新的核心是社區(qū),這就是為什么開源是如此重要。
由于微軟一系列的開源動作,導(dǎo)致了.NET Foundation也在當(dāng)天宣布重大消息:可由微軟直接任命一位新的董事進入該組織,并將本身的贊助商陣容進行擴大。這個組織在此前為微軟很多項目做了貢獻。
將董事會從三名成員擴大到七名成員,其中一個單獨的席位由微軟任命,其余六個由社區(qū)選舉產(chǎn)生,這些將于2019年1月開始進行。這種新結(jié)構(gòu)將幫助.NET Foundation擴展.NET開源生態(tài)系統(tǒng),并使整個社區(qū)能夠更多地參與其中。
將目前的技術(shù)指導(dǎo)小組擴展為企業(yè)贊助計劃。除了目前的贊助商紅帽、捷成、谷歌、Unity、微軟和三星,今天還加入了3家企業(yè),分別是Pivotal,Progress Telerik和Insight。
宣布委任董事會成員:Beth Massi(微軟.NET平臺的產(chǎn)品營銷經(jīng)理,此前擔(dān)任.NET Foundation秘書)。
據(jù)雷鋒網(wǎng)了解,.NET Foundation成立于2014年,旨在促進.NET開源開發(fā)和協(xié)作。僅在平臺項目中,.NET平臺上有87%貢獻者其實不在Microsoft工作,并且已經(jīng)貢獻了61,000多個代碼。隨著這種令人難以置信的增長,基金會表示是時候?qū)?NET Foundation提升到一個新的水平。
微軟高管Scott Guthrie:開發(fā)人員的機遇來啦
活動官網(wǎng)特意把開發(fā)者twitter放在首頁
除了這些發(fā)布之外,大會現(xiàn)場還宣布云原生應(yīng)用程序包(CNAB)與Docker密切合作創(chuàng)建,并得到HashiCorp、Bitnami等的支持;微軟向Cloud Native Computing Foundation(CNCF)捐贈Virtual Kubelet項目,鼓勵社區(qū)創(chuàng)新;AzureDB數(shù)據(jù)庫服務(wù)普遍可用,并具備靈活的定價。
在微軟官方博客上,微軟云計算和企業(yè)集團執(zhí)行副總裁Scott Guthrie這樣寫道:
2018年的今天,我們比以往任何時候都更傾向于一個無處不在的計算世界,在這個世界里,技術(shù)有助于改變每一個消費者和商業(yè)體驗。對于開發(fā)人員來說,使用AI、IoT、無服務(wù)器計算、容器等技術(shù)的機會從未如此強大。
開源后,開發(fā)者們,你們迫不及待的想build什么呢?
在Windows平臺上開發(fā)桌面應(yīng)用程序時,WinUI、WPF和WinForms是三種主要的用戶界面框架。每種框架都有其獨特的特點和適用場景。本文將通過示例代碼,詳細(xì)介紹這些框架的優(yōu)缺點及其適用場景,幫助dotnet桌面開發(fā)者更好地選擇適合自己項目的UI框架。
下表列出了 Windows 上最常用的應(yīng)用開發(fā)框架以及每個框架支持的功能:
WinUI(Windows UI Library)是Microsoft最新推出的UI框架,致力于為Windows 10和Windows 11應(yīng)用程序提供現(xiàn)代化的用戶界面。它使用Fluent Design System,支持最新的Windows功能。
示例代碼:選擇框架 WinUI 3
// MainWindow.xaml
<?xml version="1.0" encoding="utf-8"?>
<Window
x:Class="WinUISample.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:WinUISample"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d">
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
<TextBlock Text="Hello, WinUI!" FontSize="32" Margin="0,0,20,0" />
<Button x:Name="myButton" Click="myButton_Click">Click Me</Button>
</StackPanel>
</Window>
// MainWindow.xaml.cs
using Microsoft.UI.Xaml;
namespace WinUISample
{
public sealed partial class MainWindow : Window
{
public MainWindow()
{
this.InitializeComponent();
}
private void myButton_Click(object sender, RoutedEventArgs e)
{
myButton.Content="Clicked";
}
}
}
啟動開發(fā)人員模式
執(zhí)行結(jié)果
優(yōu)點:
缺點:
WPF(Windows Presentation Foundation)是.NET Framework中的一部分,提供強大的圖形處理能力和數(shù)據(jù)綁定功能,適合構(gòu)建復(fù)雜的桌面應(yīng)用程序。
示例代碼:
<!-- MainWindow.xaml -->
<Window x:Class="WPFSample.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WPFSample"
mc:Ignorable="d"
Title="MainWindow" Height="450" Width="800">
<Grid>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
<TextBlock Text="Hello, WPF!" FontSize="32" Margin="0,0,20,0" />
<Button x:Name="myButton" Click="myButton_Click">Click Me</Button>
</StackPanel>
</Grid>
</Window>
// MainWindow.xaml.cs
using System.Windows;
namespace WPFSample
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void OnButtonClick(object sender, RoutedEventArgs e)
{
(sender as System.Windows.Controls.Button).Content="Clicked!";
}
}
}
執(zhí)行結(jié)果
優(yōu)點:
缺點:
WinForms(Windows Forms)是.NET Framework中較早引入的用戶界面框架,易于學(xué)習(xí)和使用,適合快速開發(fā)傳統(tǒng)的Windows桌面應(yīng)用程序。
示例代碼:
Program.cs
namespace WinFormsSample
{
internal static class Program
{
[STAThread]
static void Main()
{
ApplicationConfiguration.Initialize();
Application.Run(new Form1());
}
}
}
Form1.cs
namespace WinFormsSample
{
public partial class Form1 : Form
{
private Button button;
public Form1()
{
InitializeComponent();
this.Text="WinForms Sample";
this.Width=800;
this.Height=600;
button=new Button();
button.Text="Click Me";
button.Width=200;
button.Height=60;
button.Location=new System.Drawing.Point(300, 300);
button.Click +=OnButtonClick;
this.Controls.Add(button);
}
private void OnButtonClick(object sender, EventArgs e)
{
button.Text="Clicked!";
}
}
}
執(zhí)行結(jié)果
優(yōu)點:
缺點:
選擇合適的UI框架取決于項目需求、開發(fā)團隊的技術(shù)棧和預(yù)期的用戶體驗。如果需要現(xiàn)代化的用戶界面和高性能,WinUI是不錯的選擇;如果需要構(gòu)建復(fù)雜的數(shù)據(jù)驅(qū)動應(yīng)用程序,WPF提供了強大的功能;如果需要快速開發(fā)傳統(tǒng)的桌面應(yīng)用程序,WinForms依然是一個可靠的選擇。
通過對WinUI、WPF和WinForms的對比,希望開發(fā)者能夠根據(jù)自己的需求做出最佳的選擇,構(gòu)建出優(yōu)質(zhì)的Windows桌面應(yīng)用程序。
如果本文對你有幫助,我將非常榮幸。
如果你本文有其他的看法,歡迎留言交流。
如果你喜歡我的文章,謝謝三連,點贊,關(guān)注,轉(zhuǎn)發(fā)吧!!!
#頭條創(chuàng)作挑戰(zhàn)賽# #記錄我的2024# #分享今日的感悟# #妙筆生花創(chuàng)作挑戰(zhàn)#