一哥科技採用.NET技術打造補教業即時通報雲端應用 - 使用 SignalR、Xamarin、Web API 技術
研發主管的技術抉擇及團隊建立的心路歷程
一哥科技位於中台灣人文薈萃的台中市,MSDN採訪團隊第一次聽到「一哥」如此響亮的公司名稱,心想該公司的研發團隊應該都是哥之輩的,又聽聞他們的研發團隊使用了一些新的.NET技術 – 包括SignalR、Xamarin、Web API來開發物連網及雲端的應用,因此特別南下採訪了他們的研發團隊。一哥科技曾經設計出第一個結合電子鎖與通訊功能的智慧鎖具C-Lock,爾後再將相關的技術應用在新產品– C-Home,透過兼具保全通報、監視系統、雲端門禁、考勤管理功能的雲端控制服務,搭配專屬服務平台即時遠端操作。它可運用在學校、補習班及安親班,家長只要從手機下載 C-Home補教-學習樂的 App,就可隨時得知孩子是否正常上學及離班情形,讓家長安心孩子的安全。目前共有50間以上的補習班正在使用,台中也已經有學校引進,學生家長們的總使用人數已突破五千人。
▲一哥科技研發部經理廖志明Gary (左2)及其研發團隊成員,主動學習 .NET最新技術,讓公司及個人的技術能力走在最尖端,團隊的向心力更好。
一哥科技研發部經理廖志明Gary過去曾經是台灣半導體廠MES高級工程師,也曾經在某Embedded領域的電腦廠擔任工程師及PM,常需要評估新產品開發所需使用的技術,帶領團隊成員開發並如期交付。當初剛進一哥科技接下了C-Home 這個新產品的研發,除了時程需在3個月內完全上線外,另外還有兩個技術難題 - 「高負載量及高可靠性的即時通訊技術」、以及「跨平台 App開發」。「這對一個新的研發團隊而言,是一個壓力很大的挑戰,因此對於技術的評估及採用,我們特別謹慎」Gary特別指出。
打造五萬人上線數的即時通訊 App – SignalR技術提供高度的延展性
一哥科技引以為傲的C-Home App端有一個極具挑戰的需求,就是即時通訊。當學生一到班後,透過手機或是晶片卡打卡簽到,系統需馬上發出訊息到家長的手機,告知學生已經安全到校,學生家長無須支付簡訊費用,即能快速掌握孩子的出缺勤狀況,甚至家長與補習班間的即時對話,連對方已讀未讀都能一目瞭然,大幅節省人力及管理費用。「以往要開發這類的即時通訊、聊天室這樣的應用,需熟悉Socket及網路通訊的開發,再加上一旦訊息量大時,又得確保穩定性及訊息能夠快速且頻繁地交換,類似即時通訊App軟體LINE服務。」Gary提到當初想到這些開發的難題,所以最後採用了.NET/C#技術搭配Visual Studio 2013做開發,並使用SignalR技術打造即時通訊的App。
「去年我幾乎每場微軟的研討會都有參加,也會為了參加研討會而專程北上。因為從課堂中可以獲得很多最新技術的資訊及應用,提供我日後在開發專案時的更多選擇。」Gary分享自己就是透過參加MSDN研討會的機會,了解SignalR即時互動技術。「專案一開始時,初步研究了三項不同的即時通訊技術,最後選擇SignalR,最主要的原因是看到了SignalR的技術改進得很快,再加上網路上的學習資源也很充足,更重要的是.NET技術的人力較容易培養及後續程式的可維護性。」「另外我們開發的專案有Web、App,使用的技術有C#、Java、JavaScript等,SignalR在跨平台及不同技術都提供了API支援,考量到未來的延續性,因此就全心投入研究SignalR並應用於專案中。」
提到對於C-Home補教系統的架構及未來擴充的規劃,Gary特別指出「我們預計系統會超過數十萬人註冊,同時上線人數可達五萬人以上,因此在設計系統架構時,特別注重大量使用者同時上線的狀況,確保網站及App穩定不會出狀況,剛好你們來採訪前一天,我們正在進行上線前的壓力測試,成果頗令人滿意,驗證了 SignalR技術可以負載大量的即時資訊。」
縮短 App 開發時程以衝刺產品上市–採用Xamarin的跨平台開發
▲一哥科技研發部經理Gary提到: 「招募熟悉微軟技術的人才,培育其技術能力較容易、能更有效率的完成專案」
當初帶領團隊第一要務就是人員的招募及培養,Gary回憶起一開始建立一哥科技研發團隊時的心路歷程提到:「因為開發App不同平台的特性及API都不同,也使用不同的開發技術及工具,像我們原本打算找懂iOS平台Objective-C的開發者,但因App開發本來就是較新的技術,懂這方面的人實在是不好找。我本身熟悉.NET/C#等微軟開發技術,當得知Xamarin這產品技術,讓C#工程師就可以開發不同平台的App,馬上就投入時間評估並決定採用;而且我們的App開發中會使用到SignalR 即時通訊技術,都是 C#/.NET的程式碼,因此與Xamarin的整合運用也很順利,更讓我們有信心可以在短時間內完成C-Home的產品並上市。」依Gary自己評估,採用 C# + Xamarin 來開發跨平台的App,至少省下30%以上的開發時間,大幅降低同時打造不同平台App的時程。
一旦決定了開發技術及架構,他們就開始招募工程師,因為採用的技術大都以 .NET為主,在人員技術的養成及後續同仁接手維護都較容易,這些都是身為開發主管需考量的因素。「我們在招募 ASP.NET及C#技術人才也很有優勢,與使用iOS App原生開發工具及技術 Objective-C比較,除了更容易入門外,開發時程也容易掌握,而且同仁們除了可以懂 App開發外,針對Server-Side 的開發也會更加了解,學習的廣度也會較其它技術人廣。這對 RD工程師而言會更有動力,因為他們可以學習到新技術,而不是只懂同一個平台或技術而已。」一哥科技研發部目前團隊總共有11個同仁,分為Web、API、DB及App開發組,除了SignalR、Xamarin外,也帶領大家使用MVC跟Web API等新一代的 .NET技術開發,團隊成員現在合作及分工更有默契。Gary同時強調:「我們使用這些新技術不是為了嘗試或好玩,而是因為身邊有足夠資訊去支援,希望能使用最好的技術帶領團隊開發,讓產品跟競爭對手有差異性,同時團隊成員的技術能力也能因此成長。」他們僅用三個月時間完成這C-Home產品,相信這就是該團隊能力最好的佐證。
一哥科技原先網站架構是以PHP開發,但由於穩定性及維護不易,未來也將改採ASP.NET改寫並重新設計。他也特別提到重新設計系統架構的重點及好處:「採用ASP.NET Web API這樣的技術來串接,讓各種Client端透過API存取資料,大大地提升系統的共用性並支援不同的Client端應用,這些都會是我們接下來會擴大使用並持續學習的技術」
迎向未來 - 響應式網頁設計及雲端是趨勢
採訪到最後,問了Gary團隊接下來的計畫有哪些?他提到「響應式網頁設計」(Responsive Web Design, RWD)的必要性,他計畫將公司一些重要的網頁重新設計,讓使用各種裝置,包括電腦、手機或平板的使用者瀏覽網頁時有更好的操作經驗。「看到了Visual Studio 2013中的ASP.NET範本都支援響應式網頁了,我們內建了Bootstrap的JavaScript/CSS 框架,相信改版會更容易」。一哥科技目前已開始進行響應式網站開發設計。
此外Gary也提到了雲端平台的應用:「因為我們C-HOME產品的服務,需能承載快速成長的使用者,考量到未來Server端的延展性及成本,我們也在評估採用雲端平台,尤其是目前一哥科技的服務大量採用 SignalR即時通訊技術,機房的網路品質及對於瞬間大量能快速地自動延展的要求很高,會評估未來將Server移到 Microsoft Azure,以降低後續的維護成本並增加延展的彈性。」看到一哥科技在設計產品以及提供服務的前瞻性,讓人期待其未來的發展。
推薦SignalR相關教學影片:
。講師:王育民 05 |打造即時互動網站(Real-time web)的秘訣-ASP.NET SignalR入門 (台北場)
。講師:朱明中 06 |打造即時互動網站(Real-time web)的秘訣-ASP.NET SignalR入門 (高雄/台中場)
推薦SignalR相關文章
SignalR 再次超越你對 Web 的想像 - 建立即時互動的 Web 作者:王育民 - Dino