天天看點

如何在Winform、WPF和未來占據主導地位的UWP之間最大程度實作代碼重用1 Winform架構2 WPF架構3 UWP架構4 如何實作代碼最大程式重用

1 Winform架構

該界面架構現在可謂如日中天,使用及其友善,直接拖拽控件。但非常不幸的是,微軟正在把該架構送入墳墓。

2 WPF架構

微軟2006年引入,非常成熟的界面架構,真正實作了界面代碼(interface code)和邏輯代碼(logic code)的徹底分離。能夠設計出絢麗的軟體界面,但是技術非常複雜,往往讓.NET初學者望而卻步,

使用WPF,需要掌握标記語言XAMP,更需要掌握複雜的依賴屬性,路由事件等。

但是使用标記語言做界面設計已是大勢所趨,Qt也開始引入Quick架構,使用QML标記語言。

在了解Qt的過程中,發現怎麼和WPF那麼像,Quick架構等價于WPF架構,如果說XAML是強化的HTML,那麼QML則是加強版的JavaScript。

3 UWP架構

誇張一點說,這是微軟打算在未來統一宇宙程式設計開發的界面架構。也是使用XAML标記語言。在我看來,該架構目前還不成熟,目前微軟正忙于争奪雲市場,還無暇東顧。不得不說微軟2017年8月14日釋出的.NET Core非常強悍,主要瞄準跨平台,雲技術,但是對桌面級應用可謂沒什麼進展。如果現在開始學習微軟的技術,最值得學習的是ASP.NET Core,基于RESTful架構的WebAPI輕量級Web服務的開發和基于新Razor Page技術的WebApp應用開發。

4 如何實作代碼最大程式重用

答案已非常明顯了,在邏輯代碼層不要使用任何有關架構的代碼。如果你的DLL中使用了Winform窗體或者WPF窗體,那麼這将是非常糟糕的架構設計。

可封裝的DLL專門處理GUI控件,隻在使用DLL的最上層exe中使用界面架構技術。在其他的DLL中不要使用任何窗體,甚至不引用有關窗體的任何程式集。