軟體開發(軟件開發)

網智數位主要提供套裝及客製化的軟體系統解決方案,專為客戶量身訂做客製化的軟體,達成客製化、智慧化及網路化的管理功能。

室內設計、裝潢、窗簾報價估算軟體

網智數位主要提供套裝及客製化的軟體系統解決方案,針對室內設計師、木工、裝潢業產業,量身訂做客製化的軟體,達成客製化、智慧化及網路化的商用軟體。

商用軟體-客製化設計

網智數位主要提供套裝及客製化的軟體系統解決方案,專為客戶量身訂做客製化的軟體,達成客製化、智慧化及網路化的管理功能。

IOT 物聯網-系統開發

根據客戶實際狀況,結合雲端與載具進行客製化物聯網IOT導入與軟體開發

雲端VPS虛擬主機租用

我們的雲端VPS虛擬主機是採用雲端(虛擬化)技術所開發之全新雲端伺服器服務,可以選擇多種作業系統(Windows、Linux等),客戶可載入自訂的應用環境,執行自己所要提供的網路服務,我們的雲端服務可為您的網站提供最完美的解決方案。

ERP軟體客製化導入

ERP軟體客製化導入,室內設計、營造業、裝潢、木作工程、系統櫃工程、會計系統,全面提升公司管理營運效率。

搜尋引擎最佳化SEO

搜尋引擎最佳化(SEO)不僅能提高網站在搜尋結果的排名,更能帶來大量對我們產品或服務真正有需求的訪客。SEO 最棒的特質之一就是不像廣告一樣亂槍打鳥而導致用戶的反感,反而更能提升點閱率跟成交率喔。

服務宗旨

網智數位主要提供套裝及客製化的軟體系統解決方案,專為客戶量身訂做客製化的軟體,達成客製化、智慧化及網路化的管理功能。

我們的成立宗旨就是要以最猛的IT技術讓這個世界更Smart,在我們貫徹我們裡想的同時,我們希望可以把我們所開發的系統帶給台灣的中小企業,除了要推薦好的東西之外,我們也希望做點改變,所以我們的第一目標就是要使用最好用的系統再加上您寶貴的創意,不僅僅可以節省你大量的荷包,還可以有一個像樣的網站。我們可以幫你做的有

企業管理
  • 策略管理
  • 目標管理
  • 行銷管理
  • 財會管理
  • ERP導入
  • 企業流程自訂
資訊管理
  • 網站架設
  • 虛擬化/雲端架設
  • 主機代管
  • 私有雲建制與導入
軟體開發
  • UML設計
  • 版本控管
  • 企業軟體開發
  • APP開發
  • 網頁設計
資訊安全
  • 網頁弱點掃描
  • 主機弱點掃描
  • 木馬檢測
  • 資安鑑識
  • 設計網路架構
  • 資安監控
行銷
  • 關鍵字SEO
  • 社群網路行銷
  • 部落格行銷
  • FaceBook 粉絲團
其他
  • 協助企業申請Google Email
好玩工具開發

講出你的創意吧!沒有甚麼是資訊辦不到的

顯示具有 網智數位 標籤的文章。 顯示所有文章
顯示具有 網智數位 標籤的文章。 顯示所有文章

2026年1月16日 星期五

感謝板橋無境設計選擇網智數位 攜手打造室內設計產業專屬 ERP 管理系統

感謝板橋無境設計選擇網智數位

攜手打造室內設計產業專屬 ERP 管理系統

網智數位有限公司非常榮幸地宣布,我們已正式與板橋無境設計達成合作,為其量身打造專屬的室內設計 ERP 系統。這次合作不僅是對網智數位專業能力的肯定,更代表著我們在室內設計產業數位轉型領域邁出了重要的一步。


為什麼室內設計公司需要專業 ERP?

室內設計產業的經營管理極為複雜,從客戶初次接洽、現場丈量、設計提案、報價協商、工程發包到售後服務,每個環節都需要精準的資訊串接與流程控管。傳統的 Excel 表單或紙本作業已無法滿足現代設計公司的管理需求,常見的痛點包括:

常見經營痛點:

  • 資訊分散 — 客戶資料、報價單、工程進度散落各處,難以整合查詢
  • 進度失控 — 多案並行時難以掌握各專案即時狀態,常有延誤風險
  • 請款混亂 — 多期數請款計算複雜,容易出錯或遺漏
  • 成本不透明 — 各工程利潤難以精確計算,影響經營決策
  • 協作困難 — 團隊間資訊傳遞不即時,溝通成本高

網智數位深耕室內設計產業多年,深刻理解業界的實際需求,因此開發出真正符合室內設計公司作業流程的 ERP 系統。


全方位 ERP 系統功能

我們為無境設計導入的 ERP 系統涵蓋了室內設計公司營運的所有核心模組:

🏢 客戶管理

完整的客戶資料庫,追蹤每位客戶從初次接洽到專案完成的完整歷程

🏗️ 廠商管理

建立發包廠商資料庫,記錄合作歷史、評價與報價資訊

📋 專案管理

統一管理所有進行中的設計專案,清楚掌握各案進度

📊 專案工程進度管理

視覺化甘特圖呈現,即時追蹤每個工項的執行狀態

📝 設計約管理

管理設計服務合約,包含服務項目、費用與期程

🔨 工程約管理

工程承攬合約的建立、變更與執行追蹤

💰 多版本報價單

支援報價單多次修改與版本控管,完整保留協商紀錄

💳 多期數請款單

依工程進度建立分期請款,自動計算應收金額

📈 財務報表

自動產出營收、成本、利潤等財務報表

🎯 各工程利潤分析

精確計算每個專案、每個工項的實際利潤

👥 員工薪資管理

薪資計算、獎金、加班費等人事管理功能

⏰ 監工打卡系統

工地現場人員打卡管理,掌握出勤狀況


🎯 亮點功能:專案工程進度甘特圖

其中最受客戶青睞的功能之一,就是我們的「專案工程進度甘特圖」。這個強大的視覺化管理工具,讓專案經理能夠一目瞭然地掌握所有專案的執行狀況。

▼ 專案工程甘特圖系統畫面 ▼



圖:系統自動產生各專案工程進度視覺化甘特圖,支援多專案並行管理

甘特圖核心特色

🔄 多專案並行顯示

同時檢視多個進行中專案的工程進度,統一管理資源調度

🎨 工程階段視覺化

以顏色區分丈量、設計、客變、拆除、工程、發包等各階段

📊 進度追蹤

即時顯示每個工項的完成百分比,掌握實際執行狀況

⚠️ 逾期警示

自動標示逾期工項並計算逾期天數,提早因應處理

🔍 時間軸縮放

可依日、週、月、季調整檢視範圍,靈活掌握不同時間尺度

🏗️ 發包廠商關聯

每個發包工項清楚顯示負責廠商,方便協調聯繫

🖱️ 互動式操作

點擊工項可查看詳細資訊,包含計畫與實際進度比較

系統會自動以不同顏色區分各工程階段:🔵丈量(藍色)、🟢設計(綠色)、🟠客變(橙色)、🔴拆除(紅色)、🟣工程施工(紫色)及🔷發包工項(青色),讓管理者能快速辨識專案狀態。當工項出現逾期情況時,系統會以醒目的紅色警示並顯示逾期天數,確保問題不會被忽視。


導入 ERP 系統的預期效益

系統導入預期效益:

⏰ 提升工作效率

減少 60% 以上的行政作業時間,讓團隊專注於設計創作

✅ 降低出錯率

系統化流程降低人為疏失,報價與請款準確度大幅提升

📈 即時決策支援

隨時掌握各專案進度與成本,做出精準的經營判斷

💼 強化客戶服務

完整記錄客戶歷程,提供更專業的服務體驗

💰 優化資源配置

透過數據分析合理安排人力與發包,控制專案成本


讓我們協助您的設計公司數位轉型

如果您也是室內設計公司的經營者,正為繁瑣的行政作業所苦,或是希望提升公司的專案管理效率,歡迎與網智數位聯繫。我們擁有豐富的產業經驗與專業的開發團隊,能夠根據您的實際需求,提供最適合的系統解決方案。

無論是完整的 ERP 系統導入,或是針對特定模組的客製化開發,網智數位都能成為您最可靠的數位轉型夥伴。


網智數位有限公司

NetQNA Digital Co., Ltd.

室內設計 ERP|工程管理系統|客製化軟體開發

業務窗口:allen@netqna.com
聯繫電話:0920-883-870  公司電話:02-6609-0068

公司地址(業務營運處):台北市中山區錦州街 25 號 5 樓
line:netqna
微信:netqna

歡迎來電洽詢,讓我們為您的公司創造更高的管理效率!


#室內設計 #ERP系統 #工程管理 #專案管理 #數位轉型 #網智數位 #無境設計

2026年1月8日 星期四

AI技術提升衛浴製造效率,實際案例分享

 

當 AI 影像辨識遇上傳統製造業:為台灣毅太淋浴拉門整體衛浴龍頭打造智慧採購系統

在製造業的日常運作中,有些看似簡單的環節,往往隱藏著巨大的效率黑洞。今天要分享的案例,正是我們如何協助台灣最大的淋浴拉門與整體衛浴製造商,透過 AI 影像辨識技術,徹底翻轉玻璃採購流程。


每天數千片玻璃,每一片都不能出錯

這家衛浴領導品牌,每天需要處理數千片客製化玻璃的採購作業。過去的作業流程是這樣的:

研發部門收到終端客戶提供的浴室尺寸圖後,採購人員必須逐一開啟圖檔,人工判讀圖面上標示的長、寬尺寸,再手動輸入系統、與供應商確認規格並下單。

這個流程看似單純,實際執行卻困難重重:

  • 人工判讀耗時:一天數千張圖,每張都要仔細核對,人力成本極高
  • 錯誤風險難控:數字看錯、輸入錯誤、單位換算疏漏,任何一個環節出問題,就是一片報廢的玻璃
  • 交期不斷延誤:人工處理速度有限,訂單量一大就塞車,客戶抱怨接踵而來
  • 人員培訓成本高:新人需要長時間學習如何正確判讀各種圖面格式

對於追求準時交貨與品質穩定的企業來說,這些痛點不只是效率問題,更直接影響客戶滿意度與企業競爭力。




解決方案:影像辨識 × ERP 深度整合

網智數位團隊深入了解客戶的作業流程後,提出了一套完整的解決方案:

AI 影像辨識引擎

我們開發的影像辨識系統,能夠自動解析浴室尺寸圖,精準擷取玻璃的長度、寬度等關鍵尺寸資訊。無論圖面格式如何變化,系統都能正確識別並轉換為標準化數據。

ERP 採購模組無縫串接

辨識後的尺寸資料,直接寫入 ERP 系統的採購單據,省去人工輸入環節。從圖面到採購單,全程自動化,大幅降低人為錯誤。

智慧校驗機制

系統內建多重驗證邏輯,自動比對尺寸是否落在合理範圍、是否符合產品規格限制,異常資料即時示警,讓管理者能在問題發生前介入處理。


導入效益:看得見的轉變

系統上線後,客戶的營運數據出現顯著變化:

指標導入前導入後
單筆採購處理時間5-8 分鐘數秒內完成
人工輸入錯誤率約 2-3%趨近於零
採購作業人力需求多人專職大幅精簡
供應商交貨準時率經常延誤穩定達標

更重要的是,原本負責判讀圖面的同仁,得以轉任更有價值的工作,整體團隊的工作品質與士氣都有明顯提升。


不只是 ERP,更是數位轉型的全方位夥伴

這個專案只是我們與這家衛浴龍頭合作的一部分。除了 ERP 系統開發,我們也協助客戶建置:

  • 行動應用程式(APP):讓業務與服務人員在外也能即時存取系統資訊
  • 車隊管理系統:優化配送路線,掌握車輛動態,提升物流效率

從工廠到門市、從辦公室到配送現場,網智數位提供的是貫穿企業營運各環節的整合解決方案。


您的產業,也有類似的痛點嗎?

每個產業都有其獨特的作業流程與挑戰。我們相信,科技的價值不在於追逐最新潮的名詞,而在於真正解決企業的實際問題。

如果您的企業也面臨:

  • 大量重複性人工作業,亟需自動化
  • 紙本或圖面資料需要數位化整合
  • 既有系統老舊,無法滿足業務成長需求
  • 想要導入 AI 應用,但不知從何著手

歡迎與網智數位聯繫,讓我們一起找出最適合您的解決方案。


網智數位有限公司

專注於 ERP 系統開發、企業應用程式、AI 智慧應用與物聯網整合,服務涵蓋室內設計、衛浴製造、營建工程等多元產業。我們不只寫程式,更與您一起思考如何讓科技真正為企業創造價值。

期待與您展開對話。


#室內設計 #ERP系統 #企業管理 #數位化轉型 #工程管理


網智數位有限公司
以創新科技助力您的設計夢想成真


網智數位-軟體開發團隊一直突破開發技術、累積各種產業知識,而且在出版業、室內設計裝潢業、製造業、機電顧問、貿易、地板、窗簾、窗材、拉門、布料業的商業管理軟體投入有特別的領域知識、也在圖控軟體(圖控軟件)、機械手臂、 Android APP 、iPhone APP、3D列印 開發一直突破再創新,我們也堅持相信好的軟體可以協助企業,不管在管理營運角度、商品創新、決策分析等都絕對是不可缺少的關鍵因素,如果客戶您有任何軟體開發、程式開發委外需求,請聯繫我們讓我們協助您一起討論如何開發一個好的軟體來協助您。


網智數位-軟體開發(軟件開發)
針對各特殊產業都可以量身定做符合貴公司的需求,別人無法克服的就是我們的挑戰
業務合作、軟體委外開發
業務窗口:allen@netqna.com
聯繫電話:0920-883-870
公司電話:02-6609-0068
公司地址(業務營運處):台北市中山區錦州街 25 號 5 樓
line:netqna
微信:netqna
黃先生 Allen

2025年6月13日 星期五

AI 時代還需要 ERP 嗎?會計系統、進銷存系統對中小企業的關鍵影響一次解析!

AI 熱潮下,中小企業更容易誤解的關鍵

近年來,ChatGPT、Copilot、Google Gemini 等 AI 工具大爆發,許多企業主開始懷疑:「既然有 AI,我還需要 ERP 嗎?還要花錢建會計系統或進銷存管理嗎?」
這正是一個令人誤解的陷阱!AI 是助力,不是替代品。就像再聰明的司機,也要有一台好車,才能跑得穩、跑得遠。



AI 再聰明,沒有系統依然做不了事

AI 是資料的處理器,但你需要一個系統來產出 正確的資料、清晰的流程、可追蹤的營運紀錄,這些都不是 ChatGPT 或 Excel 能提供的。以下是中小企業最常見的幾個關鍵系統與它們扮演的角色:

1. ERP 系統:企業流程的整合中樞
  • 客戶、訂單、採購、庫存、製造、財務一條龍整合

  • 沒有 ERP,AI 無法準確了解你公司如何運作

2. 會計系統:公司財務的健康指標
  • 支出、收入、成本、稅務管理,合規又高效

  • 沒有會計系統,再聰明的 AI 也無法算出毛利與損益

3. 進銷存系統:現金流與庫存流的守門員
  • 哪些東西賣得好?該補貨了嗎?貨在哪?

  • 沒有進銷存系統,AI 只能回答你一堆模糊的預測,而無法告訴你「實際庫存剩下什麼」


AI+ERP=中小企業的競爭新武器

現在的趨勢不是 ERP 被 AI 取代,而是 ERP 被 AI 強化!例如:

AI 功能
結合 ERP 帶來的效益

自然語言查詢
用一句話就能查詢銷售排行、庫存剩餘、應收帳款

智慧提醒
系統自動提醒你哪些客戶快到期未付款

預測分析
自動計算未來三個月熱銷品項,協助備貨

文件辨識
自動讀取發票、報價單,免去人工輸入錯誤

這不僅提升效率,更減少人力壓力,讓中小企業用小資源,做大營運


SEO 延伸:搜尋習慣改變,ERP 關鍵詞熱度仍高

根據 Google Trends,近三年來「ERP 系統」、「會計軟體」、「進銷存管理」等關鍵字在台灣仍維持穩定搜尋量。
即使 AI 話題火紅,但企業主在真正尋求解方時,仍會回到以下搜尋:

  • ERP 推薦

  • 中小企業 ERP 解決方案

  • 雲端會計系統比較

  • 進銷存系統哪家好

  • 台灣客製化 ERP 公司

這就是為什麼擁有一個專業 ERP 顧問團隊與落地經驗的公司,比一窩蜂炒 AI 更重要。


網智數位的優勢:懂 AI、更懂 ERP、最懂中小企業

身為台灣在地的軟體開發公司,網智數位已協助數十家設計、製造、進出口、設備租賃、建築與創意產業導入 ERP 系統,並搭配:

  • 雲端部署(AWS / Azure)

  • AI 智能模組(報表查詢 / 銷售預測 / 文件辨識)

  • 客製化開發與在地支援

  • 中文化、人性化操作介面

  • 長期維運服務與後續擴充彈性

無論您是剛起步的新創,還是營運多年的公司,我們都能為您打造符合預算與流程的管理系統,從 ERP 到 AI,一站式實現。


歡迎聯絡我們

網智數位有限公司
www.netqna.com
allen@netqna.com
02-5599-1310| 0920-883-870
Line ID:NetQna

立即預約免費諮詢,讓我們用 AI 與 ERP 的力量,幫助您打造數位轉型的成功方程式!

2022年12月20日 星期二

紅外線異常監測 & 放電檢測報告 & 機電線材報價系統

    感謝新竹科技大廠 聯合機電股份有限公司 以及 啟洋科技工程股份有限公司  因為多次洽談合作,因為專業的信任 給網智數位軟體開發團隊 陸續進行開發 紅外線異常監測、紅外線異常統計表、紅外線異常趨勢圖、以及許多自動化統計報表,異常與檢測報告管理系統機電線材報價系統 ,也讓我們開發團隊更深入了 機電公司 的營運作業流程與產業知識。






          








    

    而服務了該知名產業公司後,更深深發覺客戶主管的經驗與機電專業知識、線材、環境感測專業水準,讓 Allen 我更有使命傳遞公司的企業價值,就是專業服務、與客戶共同努力透過 IT 資訊科技的技術、軟體研發能力,盡可能協助各產業客戶完成系統化管理、數字化管理、智慧化管理。
        【客戶介紹】 啟洋科技工程股份有限公司除了擁有優異的專業技術,能勝任各種高難度工程外,其豐富的經驗、用心的服務與完善的公司制度及人員組織,為客戶提供以最佳的事前規劃與售後服務,更以24小時待命狀態,立即支援客戶施予緊急搶修,以維護生產線之有效運轉,堅持專業技術並提供客戶具有競爭力的服務,是啟洋公司達成企業雙贏的基本理念,也正是您諮商洽詢、安心託付的最佳系統工程專業團隊,更是您信賴的最佳伙伴。



網智數位-軟體開發(軟件開發)
針對各特殊產業都可以量身定做符合貴公司的需求,別人無法克服的就是我們的挑戰
業務合作、軟體委外開發
業務窗口:allen@netqna.com
聯繫行動號碼:0920-883-870
黃先生 Allen

2017年7月3日 星期一

在 .Net 透過 Thread 類別撰寫多執行緒多工作業【軟體開發、軟件開發、客製化軟體】

     此篇文章主要是延續上一篇 【C#多工作業與平行處理技術講解】,講解與實作如何在利用強大的 Thread 類別,使用 C# 來撰寫多執行緒多工作業功能。
     在 .Net 平台中 Thread 類別位於 System.Threading 命名空間中,此類別封裝了多執行緒許多方法與功能,可以讓我們快速建立新的執行緒,進而在新的執行緒執行所需要的程式碼邏輯,在我們建立一個 Thread 的實例(Instance)時,需要透過一個委派(Delegate)與新建立的 Thread 實例和一個現有的方法(Method)進行綁定,當執行緒(Thread)啟動後,就會立即執行這個綁定的方法。
     傳遞給 Thead 的建構子的委派(Delegate)有 2 種,一種是不帶任何參數的委派方法;第二種是可以帶一個 object 參數的委派方法。在我們實體化 Thread 物件後,就可以開始調用 Thread.Start()方法,來啟動執行緒(也會開始執行綁定的方法),而在執行過程隨時可以調用 Thread.Abort()方法,來強制終止執行緒的執行,不過這個 Abort()方法會引發一個 ThreadStateException 例外錯誤。

     現在我就帶一個實際範例來是示範如何 用 C# 使用 Thread 類別,建立一個執行緒作業,這邊為了簡單講解觀念,我使用最簡單的 Windows Form 專案來講解。

Step 1. 透過 Visual Studio 2017(舊版本 2015/2013/2012都行啦)新增一個 Windows Form 專案
2017-07-02_23-33-29


Step 2.在 Step 1建立的 Windos  Form 專案後,會產生一個 Form1的界面表單,打開此表單,然後從工具箱拖拉一個 ProgressBar 控制箱到 Form1 畫面,並排好版面。
step2

          Step 3. 從工具箱在拖拉一個 Button 到 Form1 的畫面,並將 name 屬性命名為 btnTread , Text 修改為【Thread 執行緒 啟動】

step3



Step 4. 在 Form1.cs 後置程式碼裡,我撰寫了一個 DoWok() 方法,裡面撰寫了一下邏輯,程式碼如下:
/// <summary>
/// 此方法將會透過委派(Delegate)指定給新的執行緒(Thread)
/// </summary>
private void DoWork()
{
  int p = 0;

  while (p < 100)
  {
    p++;
    Thread.Sleep(100);

    //更新進度表
    this.BeginInvoke(new Action(() =>
    {
       this.progressBar1.Value = p;
    }));
  }

  this.BeginInvoke(new Action(delegate ()
  {
   //再次啟用按鈕狀態
   btnTreadStart.Enabled = true;
   //重設定進度表為 0 
   progressBar1.Value = 0;
   //顯示執行緒已完成
   MessageBox.Show("執行緒已完成。", "執行緒已完成", MessageBoxButtons.OK, MessageBoxIcon.Information);
  }));

}
 

step4

Step 5. 在 Form1 的 Button 按鈕,雙擊滑鼠 (button1_Click),在button1_Click 事件我撰寫了 核心的 操控 Thread 程式碼
private void button1_Click(object sender, EventArgs e)
{

  //宣告一個 Thread 類別,並將在傳入 Step 4 所宣告的 DoWord 方法
  //待會 Thead 執行時,就會立即執行 DoWord 方法
  Thread newThread = new Thread(DoWork);

  //停用按鈕
  btnTreadStart.Enabled = false;

  //啟用新的執行緒
  newThread.Start();

}

step5


Step 6. Compile 編譯執行(執行F5),就可以看到結果
step 5-1


step 5-2



程式碼補充解釋:
因為基於執行緒的安全考量和包含使用者界面完整性,一般而言,系統是限制跨執行緒去更新修改使用者界面,所以在 Step 4 的 DoWokd方法,我透過呼叫 this.BeginInvoke() 方法傳遞一個 委派,使得可以在使用者界面的主執行緒上面進行更新使用者界面的控制箱(ProgressBar1),所以可以看到進度表一直不斷更新。


透過這一篇文章希望可以說明如何利用 Thread 類別來操作多執行作業,後續我還會抽出時間講解不同的非同步多工作業方式,分成不同的文章來一一描述。



參考文章
C#多工作業與平行處理技術講解
1.透過 Thread 類別撰寫多執行緒多工作業。
2.透過 Delegate 委託支援的方法,撰寫非同步任務。
3-1.透過 Parallel 類別操控多任務平行作業(一)。
3-2. 透過 Parallel 類別操控多任務平行作業(二)。
4.使用 Task 自行控制非同步任務作業。 
5.在非同步作業時,如何取消非同步任務。 
6.多執行緒多任務存取相同變數,但卻各自隔離保留各自任務的值。
7.非同步存取變數的問題。
8.非同步資源鎖定解決方式。



網智數位-軟體開發(軟件開發)
針對各特殊產業都可以量身定做符合貴公司的需求,別人無法克服的就是我們的挑戰
業務合作、軟體委外開發
業務窗口:allen@netqna.com
聯繫電話:0920-883-870
公司電話:02-55991310
公司地址(業務營運處):台北市中山區錦州街 25 號 5 樓
skype: netqna
line:netqna
微信:netqna
黃先生 Allen


2017年3月29日 星期三

徴 .Net 程式設計師數名(軟體開發、客製化軟體、軟體設計)

     因業務的增量,網智數位目前有多個自身產品在研發、也有大型銀行專案在進行,尋求數名資深的系統分析師(尤其對行業ERP 或 銀行資產管理、處分資產財務等經驗)、程式設計師。







1.鄙公司陸續手上有多個進行中的專案,需要找可長期合作的提案人,執行程式設計的設計與開發。
 
2.包含各種領域產業的公司,有製造業、電信業、半導體業,主要開發管理系統,財會系統,或是各項作業流程系統等。
 
3.提案人需有各領域作業的知識,有相關產業經驗佳,才能開發出符合產業需求的系統
 
4.開發工具不拘,以.NET C#為佳,資料庫包括MS-SQL,MY-SL,Oracle等皆可,部分系統可能需要建置類似ERP的規模

5.因案件很多,各案件規格需要與發案方討論,並個別報價
 
6.需有獨立完成一個 WEB(ASP.NET MVC)或 Windows Desktop APP(Windows Form or WPF) 專案經驗過。


PS.如果你是厲害的SOHO族想要長期配合專案,我們也非常歡迎,目前今年快速發展,在商業軟體與工業應用軟體,在空調大廠、機電大廠、馬達承軸器、土地銀行 等產業目前領導廠商都是我們的客戶哦,因為客戶的信賴,給我們團隊不斷的前進...


網智數位科技公司在IT領域已有10年多經驗,在團隊合作下陸續完成許許多多的軟體開發承包、網路架設委外案、系統維護案,也正式跟大型軟體公司、玩具製造業、飾品製造業、知名衛浴公司、窗簾材料業、空調冷氣設備大廠、貿易公司、前進國際、大型上市成衣製造業、連鎖動物醫院、網拍零售業等正式長期合作,開發一系列的不同產業的進銷存系統、圖控軟體、監控軟體、紅外線檢測趨勢圖像報告、獎金計算系統、物流配送、客戶關係(CRM)管理系統、請假出缺勤管理系統、企業資源管理(ERP)系統、電子商務(EC)等,接下來我們將更積極努力的完成客戶的要求與完善的服務,希望如果您有軟體委外、客製,IT建置的需求、網路行銷等,我們將有一套完整的服務模式。


網智數位-軟體開發(軟件開發)
針對各特殊產業都可以量身定做符合貴公司的需求,別人無法克服的就是我們的挑戰
業務合作、軟體委外開發
業務窗口:allen@netqna.com
聯繫電話:0920-883-870
公司電話:02-55991310
公司地址(業務營運處):台北市中山區錦州街 25 號 5 樓
skype: netqna
line:netqna
微信:netqna
黃先生 Allen


2017年3月12日 星期日

跨平台解決方案優缺點細說(軟體開發、軟件開發、客製化軟體)

       在現在智慧型裝置、平板裝置大量普偏化,從企業到個人甚至在企業內部團隊開發者的支持與合作之  下不斷推出大量新型移動應用。面對如此龐大的應用生態圈,認真規劃並調整戰略性技術決策無疑有助於確保應用的成功發布並獲得良好的市場反響。而在實際構建相關平台之前用戶界面(簡稱UI)、用戶體驗(簡稱UX)以及必要功能自然是首先需要明確的要素。而後,則應考慮如何採取適當舉措以推動開發流程。 

      
IC764638

       事實上,單純是原生抑或跨平台這一決策已經能夠帶來諸多後續影響。應用開發所選擇的首要平台及編程語言在產品對用戶的直觀性以及受眾類型方面發揮著巨大作用。例如,您的應用是否只能在Android或者iOS中的一類設備上使用?原生抑或跨平台這一決策最終取決於您的實際業務目標,且其各自都有著自己的優勢與缺點。

原生應用
原生應用採用面向特定平台的編程語言構建。在Android方面,其為Java; 在Windows上則為C#、VB .NET或者C/C++; iOS平台則為Objective-C或Swift。這些應用需要從零開始進行構建,且僅能夠在指定平台上運行。


優勢
用戶界面 (UI) – 應用的外觀以及整體使用方式能夠決定其最終成功與否。由於原生應用能夠與其創建平台無縫對接,因此用戶能夠使用其更為熟悉的界面。這有助於帶來更為積極的用戶體驗,並鼓勵用戶長期使用。
性能(UX) – 原生應用開發中往往涉及大量媒體(例如圖像、視頻或動畫)資源,因此需要進行大量交互與數據處理操作。在這方面,原生應用表現更好,因為其原生代碼能夠直接調用操作系統的獨特硬件與軟件功能,且幾乎不存在任何滯後現象。另外,使用本機代碼開發複雜應用能夠最大程度降低應用卡頓或者崩潰風險。
更佳排位–原生應用通常在用戶中口碑更佳,且能夠在應用商店中得到大力推薦。另外,原生應用也能夠憑藉著出色的性能與用戶友好型界面得到受眾的高度認同。
平台集成–原生應用往往能夠在指定平台上順暢運行,這意味著其功能可以根據用戶偏好進行自定義,並讓用戶擁有將其作為自身移動設備之上固有組成部分的感覺。


缺點
耗時– 面向多種平台開發原生應用往往更為耗時,因為同樣的代碼無法直接運行在其它平台之上,這意味著開發者需要耗費額外時間進行代碼轉換甚至重寫。
對開發技能要求更高–欲面向多種平台開發原生應用,企業需要擁有更多技能水平更高的開發者。取決於您所選定的平台類型,跨平台原生應用開發至少需要兩名開發者——其一負責進行Android版本開發,其二負責iOS版本開發。
高成本 – 開發者數量的增加意味著開發成本也將快速提升。再加上更為漫長的項目開發流程,企業可能需要將整體預算翻倍甚至再次翻倍。


跨平台
跨平台應用所使用的代碼可根據具體操作系統進行定制,而後再行發布。這種多合一式解決方案能夠讓單一應用運行在多種平台之上,因此受到廣大關注時間與成本的企業與開發者的熱烈歡迎。


優勢
節約時間–與原生應用不同,跨平台應用開發可採用單一代碼庫面向多種系統平台,從而幫助企業節約由代碼重寫及平台定制所帶來的時間消耗。
成本低廉–企業能夠有效削減開發項目的人員數量與成本水平。這種“一次編寫,隨處運行”的代碼能夠顯著提升開發效率並加快部署速度。
利潤最大化–除了節約成本外,跨平台應用還能夠同時在多種平台及用戶市場上取得影響力,最終實現利潤最大化。
螝於啟動及更新–企業可以首先啟動應用,並隨後根據需要面向多套平台同步推出更新。

缺點
性能延遲 - 跨平台應用往往無法像原生應用那樣與運行平台無縫對接。因此,此類應用通常會因代碼不能同設備硬件或軟件功能順暢協作而引發卡頓或者延遲。
以特性換通用 – 由於共享同一套代碼庫,因此跨平台應用無法完美與當前平台相集成,這意味著用戶往往不能充分利用平台內的某些功能,例如預設手勢、攝像頭甚至麥克風。

PhoneGap
PhoneGap,亦被稱為Apache Cordova,是一款高人氣開源平台,可用於創建跨平台/混合應用。其採用JS、HTML 5以及CSS 3編程語言。

優勢
編程語言熟知度高 – 由於PhoneGap採用JS、HTML 5與CSS 3等高人氣語言,因此開發者能夠輕鬆上手並開始使用。這不僅能夠減少相關培訓需求,同時也使得企業能夠更快向市場推出應用開發成果。
易在應用商店中被發現 – PhoneGap應用的安裝方式與原生應用類似,因此能夠在應用商店中獲得理想的曝光度。
插件架構– PhoneGap採用一套靈活的插件架構,能夠以模塊化方式擴展原生設備API。
無許可成本– PhoneGap是一套開源項目且可免費使用,因此企業無需承擔任何許可成本。
提供大量庫–開發者能夠輕鬆訪問並尋求各類資源庫的幫助,從而增強自有應用功能。


缺點
性能 – PhoneGap應用的性能表現常常受到批評。一旦應用架構中存在大量圖形或者復雜元素,則可能導致應用無響應甚至崩潰。
插件 – 在多數情況下,開發者必須使用特定插件以避免對其原生指定屬性產生干擾。 PhoneGap擁有一套靈活的插件友好型架構,開發者能夠根據需要選擇必要插件或者自行開發插件。然而,如果開發者無法找到適用的插件或者無法輕鬆編寫自有插件,則開發過程將遭遇嚴重延後。
缺少說明文檔– PhoneGap的用戶指南含糊不清且與用戶界面有關的指導性文件缺少部分關鍵性信息。另外,其中尚不提供可用於強化跨平台應用開發的最佳實踐信息。
內存丟失 - 由於PhoneGap缺少緩存/內存管理功能,因此經常出現內存丟失問題。


Titanium
Appcelerator Titanium是一套可用於開發桌面、原生移動以及跨平台應用的開源開發平台。目前市面上已經有超過3萬5千款利用JS、HTML 5、jQuery以及CSS 3等語言在Titanium中開發完成。


優勢
編程語言熟知度高 – Titanium採用JS、HTML 5與CSS 3等高人氣語言,因此開發者能夠輕鬆上手並開始使用。
可訪問各先進功能 – Titanium擁有獨立的API以訪問設備上的各項功能,包括攝像頭、麥克風、觸控屏幕以及GPS。這意味著用戶能夠將Titanium應用作為其設備中的固有組成部分並獲得良好的使用體驗。
即時反饋 – Titanium能夠縮短應用開發時間,允許開發者以更少代碼進行應用構建。這意味著開發者能夠快速構建應用原型設計,並根據即時反饋評估用戶與UI間的交互方式與效果。
龐大的技術社區 – Titanium/Appcelerator社區擁有超過20萬名開發者,並開放對其Open Mobile Marketplace的訪問。開發者能夠在這裡購買、出售及共享各類模塊、模板、設計元素以及面向Web服務的擴展。


缺點
複雜性更高– 應用複雜性的提升亦會引發成本增長。開發者在遭遇大量崩潰及bug等問題時往往需要投入更多時間與精力加以調試,這在無形中拉高了代碼組織與多平台支持維護的成本。
靈活性有限 – 儘管Titanium的API對代碼行數要求更低,因此能夠幫助開發者節約時間,但這種限制亦會導致應用複雜性上升的問題。另外,其還有可能引發應用中的延遲及其它持續性問題。
功能不穩定 – Appcelerator提供StoreKit模塊,旨在實現指向蘋果App Store的應用內購機制。然而這一功能非常不穩定,且有時無法正常起效。該模塊的部分功能極大影響了Titanium的免費增值定價策略。事實上,這款免費下載的軟件運行狀態極差,且根本無法實現有效的內購效果。而這種不穩定性甚至導致部分用戶徹底放棄相關應用。
工具包故障 – 可能很多開發者都有同感,即自從Titanium Studio(一套基於Eclipse的IDE)出現後,Titanium的學習成本開始大幅增加。 Titanium Studio存在諸多問題,最嚴重的就是會在構建過程中忽略部分變更。這迫使開發者必須在每次更改後進行項目清理,或者使用新項目進行完全重新啟動。


Xamarin
自2011年發布以來,這款知名框架就被廣泛應用於跨平台應用開發。通過API,Xamarin應用能夠以原生方式同iOS、Android以及Windows等設備上的攝像頭、GPS等功能進行通信。

優勢
一套代碼玩轉全部平台 – Xamarin採用C#與.NET框架相結合的方式,確保應用能夠在多平台上正常運行。這意味著開發者能夠復用大部分源代碼以加快開發流程。 Xamarin還能夠與Visual Studio及Xamarin IDE協作,開發者無需在不同開發環境間往來切換。
模擬原生 – 由Xamarin開發而成的跨平台應用在理論上可以被劃歸原生應用,因為其性能指標高度類似於針對單一平台的原生應用。另外,Xamarin應用亦可在應用商店中享受到原生應用的待遇。
原生UX – Xamarin允許用戶面向各平台定制其UI。通過使用Xamarin.Forms工具,開發者能夠構建跨平台應用並為其配備有針對性的UI組件。為了實現更理想的性能表現,開發者還可以使用Xamarin.iOS或Xamarin.Android工具開發具備原生使用體驗的高速、可靠跨平台應用。
功能 – 利用Xamarin,所有硬件兼容性問題都將不復存在。 Xamarin允許開發者訪問多種平台指定型API,並能夠接入原生庫以無縫實現多設備平台跨越,且舉帶來任何功能或者性能問題。
無需昂貴的許可成本 – 在微軟於2016年年中收購Xamarin之前,Xamarin的許可費用高達每開發者、每平台1000美元。這意味極小的開發者團隊即會給企業帶來高昂的許可成本。然而自收購之後,微軟開始免費將Xamarin提供給Visual Studio用戶,且目前亦在將其打造為真正的開源平台。

缺點
社區規模較小 – Xamarin在過去幾年中的發展速度比較穩​​定,且大多數追隨者來自微軟。由於社區規模較小,因此尋找有經驗的Xamarin開發者可能並不輕鬆。
需要更為廣泛的技能儲備 – Xamarin廣泛使用.NET開源資源及其它開源技術,因此希望使用Xamarin的朋友需要熟練掌握.NET,同時具備JS或者Objective-C等其它特定平台的專業知識。
應用體積 – Xamarin需要大量操作性軟件以實現.NET框架與平台特定操作系統間的代碼與引用鏈接,這意味著其應用的體積相對更大。

原文标题:Native vs Cross-Platform App Development: Pros and Cons of PhoneGap, Titanium, and Xamarin
原文作者:Prem Khatri、51CTO

 

 

網智數位-軟體開發(軟件開發)
針對各特殊產業都可以量身定做符合貴公司的需求,別人無法克服的就是我們的挑戰
業務合作、軟體委外開發
業務窗口:allen@netqna.com
聯繫電話:0920-883-870
公司電話:02-55991310
公司地址(業務營運處):台北市中山區錦州街 25 號 5 樓
skype: netqna
line:netqna
微信:netqna
黃先生 Allen

2016年10月27日 星期四

Windows 10 的 UDP 與 TCP 網路通訊實作案例二(軟體開發、軟件開發、程式設計、程式開發)

      這篇文章主要是續之前另外一篇文章 UDP 網路通訊處理,這次是繼續講解 TCP 網路通訊處理,與UDP 協定不同的是,TCP協定是更加嚴謹,它是基於確認連接是可靠性的,也就是在發生通訊傳輸前,客戶端(Client)必須確認是連接到伺服器(Server)端,因為 TCP 對數據封包的次序與完整性要求相對嚴格,這樣才能確保數據傳輸過程可以正確無誤地送達目的地,所以 TCP 就常用在 文件的傳送,如Line聊天的檔案傳送、Skype 檔案的傳送等。






     在 Widnows 10 Universal APP 平台下(UWP ),是透過一個 StreamSocket 類別來提供 TCP 網路通訊傳輸協定的 Socket 功能.
在 Client 端(客戶端)大致我們遵守以下幾個步驟:
1.建立一個 StreamSocket 實體物件。
2.呼叫 StreamSocket.ConnectAsync 方法,來與 Server 端作連接要求。
3.使用 OutputStream 屬性所返回的輸出流(Stream),就可以進行發送資料;
    而 InputStream 屬性則是返回輸入流,是用在接受資料。
4.切記當不再使用 Socket 時,呼叫 Dispose 方法來釋放其所佔用的相關資源。

在 Server 端 (伺服器),我們則需要使用一個 StreamSocketListener 物件,綁定繫結 本機的位址跟Port,來監聽 客戶端(Client)的連接請求服務,而當監聽到客戶發出的請求服務時,會引發另外一個事件 ConnectionReceived 事件,從這個事件的Arg參數,我們可以獲取一個與客戶端進行通訊的 StreamSocket 物件。

上面簡單描述原理,以及程式撰寫大致步驟原理,我一樣習慣來個實際寫作案例來引導,我一樣為了簡單化,我把 Server 端界面與 Client 端界面放在一起,這樣這個範例程式可以充當伺客戶器角色也可以當客戶端角色,在實作案例中 客戶端可以選擇一個圖片已經輸入一些文字內容來描述圖片,最後可以發送圖片跟文字內容給伺服器端,當然伺服器端會馬上監聽到有傳輸服務請求,立即結束資料,並顯示在伺服器端的界面。
系統畫面如下圖

(Server 端)
image


(Client 端)
image



下面是相關的界面 XAML Code:

<Pivot>
           <PivotItem Header="伺服器(Server 端模擬)">
               <Grid>
                   <Grid.RowDefinitions>
                       <RowDefinition Height="Auto"/>
                       <RowDefinition />
                   </Grid.RowDefinitions>
                   <StackPanel>
                       <TextBlock Text="Server IP Address:" Height="30" Margin="0,0,-0.333,0"/>
                       <TextBlock x:Name="tbSvIP" FontSize="24" IsTextSelectionEnabled="True" Height="30" Margin="0,0,-0.333,0"/>
                   </StackPanel>
                   <ListBox Name="lbItems" Grid.Row="1" Margin="6,15,6,5">
                       <ListBox.ItemTemplate>
                           <DataTemplate>
                               <Grid>
                                   <Grid.ColumnDefinitions>
                                       <ColumnDefinition Width="Auto"/>
                                       <ColumnDefinition/>
                                   </Grid.ColumnDefinitions>
                                   <Image Width="50" Height="50" Stretch="UniformToFill" Source="{Binding Path=Image}"/>
                                   <TextBlock Grid.Column="1" TextWrapping="Wrap" FontSize="18" Text="{Binding Path=Text}" Margin="15,0,0,0"/>
                               </Grid>
                           </DataTemplate>
                       </ListBox.ItemTemplate>
                   </ListBox>
               </Grid>
           </PivotItem>
           <PivotItem Header="客戶端(Client 端模擬)">
               <StackPanel>
                   <TextBox Name="txtServerIp" Header="伺服器IP:"/>
                   <Image Name="img" Width="150" Height="150" HorizontalAlignment="Left"/>
                   <Button Content="挑選圖片..." Click="OnPickImagFile"/>
                   <TextBox Name="txtContent" Header="圖片描述:" Height="120"/>
                   <Button Content="傳送資料" HorizontalAlignment="Stretch" Click="OnSend"/>
               </StackPanel>
           </PivotItem>
       </Pivot>


現在來看主要核心程式碼 
一開始我宣告 一個 LISTEN_PORT=“1688”,作為 Server 端監聽的端口。
然後也宣告一個 StreamSocketListener 類別的 listener 欄位。
相關程式我也詳細註解了,主要是在 Loaded事件時,建立對應的監聽事件 ConnectionReceived 、以及使用 BindServiceNameAsync 方法指定監聽的Port。
image


接下來重點在 ConnectionReceived 事件,專門用於接受到 Client 端發出的請求數據。

private async void listener_ConnectionReceived(StreamSocketListener sender, StreamSocketListenerConnectionReceivedEventArgs args)
       {
           string text = string.Empty;
           IRandomAccessStream imgStream = new InMemoryRandomAccessStream();

           // 處理從 Client 端接受到的訊息
           using (StreamSocket socket = args.Socket)
           {
               using (DataReader reader = new DataReader(socket.InputStream))
               {
                   try
                   {
                       // 讀出第一個數字,表示文件的長度
                       await reader.LoadAsync(sizeof(uint));
                       uint len = reader.ReadUInt32();
                       await reader.LoadAsync(len);
                       IBuffer buffer = reader.ReadBuffer(len);
                       // 寫入 Stream
                       await imgStream.WriteAsync(buffer);
                       await reader.LoadAsync(sizeof(uint));
                       // 再次讀入字串長度
                       len = reader.ReadUInt32();
                       // 讀出字串的內容
                       if (len > 0)
                       {
                           await reader.LoadAsync(len);
                           text = reader.ReadString(len);
                       }
                   }
                   catch (Exception ex)
                   {
                       DisplayErrMessage(ex.Message);
                   }
               }
           }

           // 顯示接受到的客戶端訊息內容
           await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
               {
                   BitmapImage bmp = new BitmapImage();
                   bmp.DecodePixelWidth = 50;
                   imgStream.Seek(0);
                   bmp.SetSource(imgStream);
                   imgStream.Dispose();
                   lbItems.Items.Add(new { Image = bmp, Text = text });
               });
       }


再來 Client 端,主要是選好圖片內容、以及輸入文字描述後,執行【傳送資料】按鈕,而對應的程式碼,如下,我也寫上對應的註解
private async void OnSend(object sender, RoutedEventArgs e)
       {
           if (txtServerIp.Text.Length == 0)
           {
               DisplayErrMessage("請輸入伺服器服的IP位置");
               return;
           }
           IBuffer bufferImg = img.Tag as IBuffer;
           if (bufferImg == null)
           {
               DisplayErrMessage("請選擇圖像");
               return;
           }
           Button b = sender as Button;
           b.IsEnabled = false;

           using (StreamSocket socket = new StreamSocket())
           {
               try
               {
                   // 發出連線請求
                   await socket.ConnectAsync(new HostName(txtServerIp.Text), LISTEN_PORT);
                   // 準備傳送資料(圖片跟文字)
                   using (DataWriter writer = new DataWriter(socket.OutputStream))
                   {
                       // 首先寫入圖片
                       uint len = bufferImg.Length;
                       writer.WriteUInt32(len); //長度
                       writer.WriteBuffer(bufferImg);
                       // 寫入文字內容
                       if (txtContent.Text.Length == 0)
                       {
                           writer.WriteUInt32(0);
                       }
                       else
                       {
                           len = writer.MeasureString(txtContent.Text);
                           writer.WriteUInt32(len); //長度
                           writer.WriteString(txtContent.Text);
                       }
                       // 正式提交
                       await writer.StoreAsync();
                   }
                   txtContent.Text = "";
               }
               catch (Exception ex)
               {
                   DisplayMessage(ex.Message);
               }
           }
           b.IsEnabled = true;
       }
 


整個程式執行結果畫面 
(客戶端)

image












(伺服器端) 



網智數位-軟體開發(軟件開發)
針對各特殊產業都可以量身定做符合貴公司的需求,別人無法克服的就是我們的挑戰
業務合作、軟體委外開發
業務窗口:
allen@netqna.com
聯繫電話:0920-883-870
skype: netqna
line:netqna
微信:netqna
黃先生 Allen