豔陽,你就是我最想要的丫頭(二)
Sunny在最初階段就被設計成一款開源工程,Git地址:https://github.com/TangramDev/Sunny,編譯版本下載地址:https://github.com/TangramDev/Sunny/releases/download/v1.0.0.5/Sunny.zip。
現代桌面軟體面臨的三個關鍵問題
- 缺乏與之適配的軟體生態,這一點直接導致大量成熟的軟體元件(.NET、Java、COM、C++、Web元件)積累, 以及廣泛的軟體人力資源難以根據對應的軟體形成有針對性的軟體增值服務, 會在根本上制約軟體成為網際網路服務的前端環節,更難以為之建立具有服務性質的後端服務;
- 與主流開源專案缺乏對接,使得軟體依賴的關鍵技術缺乏強有力的技術社群支援。以Chrome、Eclipse為 例,由於是開源的,擁有了天然的社群支援,使得軟體本身的發展會變得良性、有持續生存的依據;
- 現代瀏覽器本身就是一款桌面軟體,由於支援html文件,使得內容生態變得非常豐富。毋庸置疑, 瀏覽器軟體的很多品質侷限於瀏覽器本身是對軟體生產力的一種禁錮, 而瀏覽器本身的很多優勢恰恰是桌面軟體缺乏的,就是說,桌面軟體缺乏瀏覽器內在的結構, 使得其適應網際網路的發展方面顯得力不從心。
從技術、人力等角度看,以上三個問題,極大的超越了一個軟體團隊的技術駕馭範圍以及人力基礎能夠承載的界限, 也就是說,很難想象一個團隊可以同時系統的面對如上三個問題。桌面軟體發展至今有接近30年的歷史了,來自.NET、 Java、COM、C++、Web等領域的成熟技術是海量的,有沒有一個通用的技術途徑,使得軟體團隊可以規避整體的技術、人力儲備侷限, 直接將成熟的技術用於他們關注的軟體服務本身,這個問題是一個富有挑戰性的問題。
從軟體複用的角度看,軟體服務團隊,不應該將精力放在如何實現大範圍整合的具體技術上, 事實上,應該有一種通用的技術途徑,使得軟體服務團隊專注於如何用成熟的軟體資源內容“組織”軟體服務,這一點需要在巨集觀上解決一個合理的、 通用的適配問題,也就是說,當前大環境需要一類簡單的技術,使得應用程式在基礎結構的根基環節, 一次性的(與技術相對無關的)解決好一個桌面軟體與“Web、.NET、Java”等主流技術的基於生態技術的銜接問題, 這個銜接對軟體服務團隊而言是一致的、幾乎無門檻的、可以最大限度利用軟體元件資源以及人力資源的“一站式”解決方案。
Sunny的解決方案
Sunny定義了一個應用程式的基礎結構
- 軟體生態鏈(面向.NET元件資源、Java資源、Web資源的內容生態鏈)
- 主流開源專案對接(Chromium Project、Eclipse、.NET Core等開源專案)
- 整合現代瀏覽器全部功能(全功能Built-in WebBrowser 支援)
通過一個單一的技術架構,一次性的提供給軟體架構者,使得每一款基於Sunny技術開發 的.NET桌面應用,直接具備以下幾個關鍵特徵:
- 支援Common Layout Engine:耳目一新的動態佈局引擎, 將盤活各種.NET元件、C++元件以及Web元件...,為形成軟體生態奠定現實的基礎。
動態佈局一動態佈局二動態佈局三動態佈局四動態佈局五動態佈局六 - 支援Common Web Runtime:獨特的Built-in瀏覽器技術, 使得您可以以各種靈活的方式駕馭"Web-Desktop"混合內容,您的桌面軟體可以最大限度、最靈活的方式適應網際網路各種服務,一個更大的DOM, 允許您實現Web端對桌面端最佳的控制,使得應用頁面化成為現實,進而使得軟體可以基於Web技術構建網際網路內容生態。
- 支援Common Eclipse Runtime:Bulit-in Eclips支援, 使得您可以自由駕馭Java元件,將Java、.Net、JavaScript巧妙的融合在一起,實現強大的“Web-桌面端”的互操作。 結合Eclipse本身的生態技術,Sunny藉助於CER,使得應用開發者可以構建以Java基礎的應用生態。
Sunny試圖通過一個單一的技術架構,整合:
- Microsoft .NET(Core)
- Google Chromium
- IBM Eclipse
使得軟體生態可以建立在龐大技術社群基礎之上,同時使得網際網路服務成為桌面軟體的基礎部分,開發者只需充分利用,而不用擔心銜接問題。