.NET桌面開發的一些思考

在22日,我在公眾號上發布了一條短文字,內容如下:

其實在.NET開發大軍中,還有一股力量,那就是桌面程序的開發者們。他們很少發聲,可能技術成熟,可能太企業化了,也可能我沒關注到。最近也在思考,是不是應該也分享一下這方面的技術。不知道大家是否關注?或你有什么好的建議,可以留言給我,謝謝🙏

到現在(24日早)收到了30多個公眾號朋友的留言,內容雖然形形色色,但從語義和字數上來看,這是大家真實心理寫照,大家對桌面技術熱愛,希望社區對桌面技術的分享還是很強烈的。

還有一部分人希望在上位機方面分享技術,但由于本人沒有從事過相關工作,所以很遺憾,不能給大家帶來實踐分享,雖然業務場景不熟,如果有什么技術問題,可以交流,如果有代表性,可以形成一篇技術文章,一起記錄下來,聯名發布在公眾號上,為他人的類似問題提供一點幫助。

202b235a32dcd71258f3488da1363e24.jpeg

我自己做過10多年的CS開發,雖然現在一直從事web開發和架構工作,但對桌面開發仍情有獨鐘。近期也一直在思考,桌面開發方面的事情,主要有以下幾個方面:

技術層面:.NET的桌面開發一直是以WinForm,WPF為主,雖然之后推出UWP以及最近推出的MAUI,但與WPF的基調雷同。在傳統行業,桌面開發應該還是WinForm占有量比較多一些,也有相當的傳統應用在向WPF遷移(這只是個人從身邊的信息感覺,沒有真實的調查)。不管WinForm還是WPF,推出也有相當長的時間了,技術都相對成熟,近期最大的變化就是從.NET Framework轉到.NET(core),這不意味著他們可以跨平臺到Linux下了,只是為了統一.NET的基礎框架庫而已。MAUI反倒可以在跨平臺上更得心應手一些。與日新月異的web技術不同,.NET桌面的這兩個框架沒有發生大的改變,但這不代表CS架構沒有改變,WinForm和WPF更多的是UI層,展示層,CS架構的程序不只有UI,后面有與數據打交道的ORM,與三方API交流的http通信,與資源打交通的IO等,隨著.NET的進化而在進化著。舉簡單的例子,比如訪問數據,IO和Http的異步化(雖然不是近幾天的升級),就是一個重要的改變;還有HttpClient的不斷優化,也證明了.NET類庫的演進和提升。所以說,我們廣義說的WinForm和WPF是老技術,是說在UI層次上沒有更多的新東西,比較控制,UI渲染機制,以及UI性能提升等方面沒有太多的變化。

人力層面:.NET本身在高等院校教育中的課程占比比較低,從大學里面出來的真正愛好和使用者就寥寥無幾了,那分到.NET桌面開發上的人,就鳳毛麟角了,所以期待從大學生這個穩定的人力資源市場招到合適的人是難上加難。通常情況企業都是讓一些有開發經驗的程序員轉或兼做桌面開發,畢竟WinForm和WPF"拖拖拽拽"就開發完了。

基于這兩個層面,想把WinForm和WPF這兩個老瓶,裝上新酒,和大家小酌一杯。一是把傳統的面面UI和日新月異的Web技術的結合,讓它們互相借鑒,相互搭配,來提升桌面系統的性能和降低開發成本。二是希望與您聯合署名推出一些系列性的文章(比如上位機),來為新人提供一些力所能及的幫助,讓.NET桌面后繼有更優秀的人。

我也知道,我的能力和時間也很有限,畢竟也要養家糊口,不可能把全部精力投入到社區,但本著“不積跬步無以至千里”的精神,還是希望記錄下來,讓需要之人取所需。

對CS架構,或相關領域有想法的您,可以加我微信,線下交流。

千里之行,始于足下,近期會寫一些基礎的,并且有自己拙笨見解的WinForm文章,以開始對CS框架的探討。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/284339.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/284339.shtml
英文地址,請注明出處:http://en.pswp.cn/news/284339.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【ArcGIS錯誤異常100問】之003:屬性表中文亂碼解決辦法總結

測試環境: 操作系統:windows7ArcGIS版本:10.X、Pro結果:通過測試 文章目錄1. 錯誤提示2. 原因分析3. 解決方法4. 問題驗證1. 錯誤提示 如圖所示,安裝完ArcGIS Pro后,由于計算機系統和應用軟件字符編碼的問…

大型網站架構演化(二)——應用服務和數據服務分離

隨著網站業務的發展,一臺服務器逐漸不能滿足需求:越來越多的用戶訪問導致性能越來越差,越來越多的數據導致存儲空間不足。這時就需要將應用和數據分離。應用和數據分離后整個網站使用三臺服務器:應用服務器、文件服務器和數據庫服…

再不自動化就晚啦!優云教你4步打造基于CentOS的產品鏡像

隨著Linux程序的增多,軟件的安裝過程中經常出現如下問題: 1、硬件配置類似或者相同時,批量安裝系統和軟件,希望實現自動化安裝,減少安裝時間和人為出錯。 2、工程實施人員在不同客戶現場進行系統和軟件安裝(硬件配置不…

【ArcGIS錯誤異常100問】之004:ArcGIS表轉Excel超了65535限制解決辦法

測試環境: 操作系統:windows7ArcGIS版本:10.2 文章目錄1. 錯誤提示2. 原因分析3. 解決方法1. 錯誤提示 如下圖,當矢量shp圖斑數目過多,文件超過了65535條記錄時,利用ArcGIS的表轉Excel工具處理成Excel文件…

[轉]硬核 | Redis 布隆(Bloom Filter)過濾器原理與實戰

在Redis 緩存擊穿(失效)、緩存穿透、緩存雪崩怎么解決?中我們說到可以使用布隆過濾器避免「緩存穿透」。 碼哥,布隆過濾器還能在哪些場景使用呀? 比如我們使用「碼哥跳動」開發的「明日頭條」APP 看新聞,如…

Senparc.Weixin.Sample.MP源碼剖析

Senparc.Weixin.Sample.MP是微信公眾號樣例的.NET6源碼,項目配置文件appsettings.json的修改和微信公眾號測試環境的搭建參考:微信公眾號調試與Natapp環境搭建。接下來從項目結構,項目應用和項目源碼3個角度來進行講解。一.項目結構角度項目代…

解決java.lang.NoClassDefFoundError: org/aopalliance/intercept/MethodInterceptor問題

hibernate整合spring當在spring配置文件中加入如下代碼 <!--2.配置事務屬性,需要事務管理器--><tx:advice id"txAdvice" transaction-manager"transactionManager"><tx:attributes><tx:method name"get*" read-only"t…

Packagist / Composer 中國全量鏡像

Packagist / Composer中國全量鏡像 本鏡像共緩存了 186695 個項目(package)、Millions 個(zip)安裝包。最后同步時間&#xff1a;2018/1/28 上午11:01:13 。Composer 最新版本&#xff1a;1.6.2 立即使用 贊助 Packagist 鏡像使用方法 還沒安裝 Composer 嗎&#xff1f;請往…

mock.js使用

一、Mock.js入門 1&#xff0e; 什么是mock.js? Mock.js &#xff08;官網http://mockjs.com/&#xff09;是一款模擬數據生成器&#xff0c;旨在幫助前端攻城獅獨立 于后端進行開發&#xff0c;幫助編寫單元測試。提供了以下模擬功能&#xff1a; 1,根據數據模板生成模擬數據…

面向對象——概念(成員變量、靜態變量、成員方法、靜態方法、垃圾回收機制、重載、包)...

靜態變量和成員變量的區別&#xff1a; 1、成員變量描述的是對象的特征&#xff0c;包含在對象之中。不同的對象成員變量彼此獨立。一個對象成員變量的改變&#xff0c;不會影響其他對象。 靜態變量獨立在對象之外&#xff0c;是所有對象共享的變量。靜態變量改變后會影響所有對…

【ArcGIS微課1000例】0042:ArcGIS自帶取色器工具的妙用

在ArcGIS中作圖時,通常要進行顏色對照填充,輸入特定的RGB值,本文介紹ArcGIS自帶取色器工具的妙用,及第三方顏色拾取工具。 文章目錄 一、ArcGIS自帶取色器二、第三方取色器工具一、ArcGIS自帶取色器 很多人可能不知道,ArcGIS中自帶取色器工具,如下圖所示。 當然了,自帶…

第一輪復習完畢,kmp走起

//代碼via:http://blog.csdn.net/v_JULY_v/article/details/6111565 //簡單思路via:http://study.163.com/course/courseLearn.htm?courseId468002#/learn/video?lessonId1024414&courseId468002 1 #include<iostream>2 #include<string>3 #include<vecto…

微信.NET SDK-Senparc資料整理

微信生態系統包括微信公眾號、小程序、微信支付、微信開放平臺、企業微信、小游戲等&#xff0c;官方提供了很多的API接口。Senparc是目前使用最廣泛的微信.NET SDK&#xff0c;同時支持支持.NET Framework 4.5/.NET Core 2.x/.NET Core 3.x/.NET 5/.NET 6。由于在微信生態開發…

7 種提升 Spring Boot 吞吐量神技

目錄 二、增加內嵌Tomcat的最大連接數 三、使用ComponentScan()定位掃包比SpringBootApplication掃包更快 四、默認tomcat容器改為Undertow&#xff08;Jboss下的服務器&#xff0c;Tomcat吞吐量5000&#xff0c;Undertow吞吐量8000&#xff09; 五、使用 BufferedWriter 進…

Atitit.ati?orm的設計and架構總結?適用于java?c#?php版

Atitit.ati orm的設計and架構總結 適用于java c# php版 1. Orm的目標 1 1.1. 動態obj 1 1.2. Hb的api(meger,save,update,del) 1 2. Orm的概念 1 3. 動態obj 2 4. 參考 4 1. Orm的目標 1.1. 動態obj 1.2. Hb的api(meger,save,update,del) 2. Orm的概念 saveOrUpdate后的對象會納…

【ArcGIS微課1000例】0043:ArcGIS縮略圖的創建及應用

縮略圖通常出現在地圖文檔中&#xff0c;便于在啟動頁面中快速打開指定的地圖文檔&#xff0c;提高效率。 文章目錄一、縮略圖預覽二、縮略圖創建一、縮略圖預覽 打開ArcMap軟件&#xff0c;彈出啟動窗口&#xff0c;在最近打開的文檔中&#xff0c;可以看到兩類&#xff0c;一…

JSP簡單登錄系統

Login登陸界面 <body> 登陸 <% session.invalidate();%> <form action"TestPW.jsp" method"post">用戶名<input type"text" name"username"> 密碼<input type"password" name"password&quo…

手動從0搭建ABP框架-ABP官方完整解決方案和手動搭建簡化解決方案實踐

本文主要講解了如何把ABP官方的在線生成解決方案運行起來&#xff0c;并說明了解決方案中項目間的依賴關系。然后手動實踐了如何從0搭建了一個簡化的解決方案。ABP官方的在線生成解決方案源碼下載參考[3]&#xff0c;手動搭建的簡化的解決方案源碼下載參考[4]。一.ABP官方在線生…

Java捕獲并處理線程失敗拋出的異常

使用 UncaughtExceptionHandler 示例代碼如下&#xff1a; Thread.UncaughtExceptionHandler handler new Thread.UncaughtExceptionHandler() { public void uncaughtException(Thread th, Throwable ex) {System.out.println("Uncaught exception: " ex);} }; Th…

【ArcGIS微課1000例】0044:ArcGIS使用山體陰影顯示DEM的3種方法

本文講解了ArcGIS使用山體陰影顯示DEM的3種方法:“影像分析”窗口、使用山體陰影效果和山體陰影效果工具的不同之處。 文章目錄 一、“影像分析”窗口二、使用山體陰影效果三、山體陰影工具一、“影像分析”窗口 使用山體陰影顯示 DEM 的方法有兩種。最簡單并且最具交互效果的…