軟體開發(軟件開發)

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

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

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

商用軟體-客製化設計

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

IOT 物聯網-系統開發

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

雲端VPS虛擬主機租用

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

ERP軟體客製化導入

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

搜尋引擎最佳化SEO

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

服務宗旨

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

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

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

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

顯示具有 微軟 標籤的文章。 顯示所有文章
顯示具有 微軟 標籤的文章。 顯示所有文章

2017年5月14日 星期日

勒索軟體大規模攻擊微軟的Windows系統

在5月13日的可靠消息,根據各大國內外媒體報導,大規模的勒索軟體攻擊已破壞英格蘭醫院的運作,也感染全球數十個國家的電腦。

wKiom1kWr9zChehWAABHDOkvIiA50.jpeg-wh_651x-s_2026428311_thumb[8]

而微軟今天表示,它的工程師已針對該攻擊加強了檢測和保護。
 
微軟發言人在聲明中稱,“今天,我們的工程師已針對名為Ransom:Win32.WannaCrypt的新惡意軟件加強了檢測和保護。”它說,公司正與客戶合作提供額外的幫助。
 
勒索軟件是一種能夠持續阻止計算機正常運作的軟件,除非受害者交出勒索贖金。新的WanaCrypt0r 2.0勒索軟件尤其致命,因為它利用了竊取自美國國家安全局(NSA)的黑客工具。
3月,微軟成功補上了讓該名為EternalBlue的NSA工具能夠運作的安全漏洞。
 
今天,針對WanaCrypt0r勒索軟件,Windows更新了兩款安全工具——Windows Defender antivirus和Windows Security Essentials。
卡巴斯基實驗室今天發現,全球74個國家共計發生數万起WanaCryt0r攻擊。該攻擊導致英國的醫院系統拒絕病患看病,西班牙電信公司出現大面積的停工,俄羅斯內務部有1000台計算機被感染。
 
該勒索軟件所使用的EternalBlue工具是一個名為ShadowBrokers的組織所流出的NSA黑客工具,該組織自夏季以來一直在放出這種工具。 EternalBlue於4月放出,就在微軟剛剛填補了安全漏洞之後。
 
ShadowBrokers一開始曾嘗試拍賣那些工具,隨意流出了至今仍很危險的工具來證明自己擁有其所聲稱的工具。由於不滿報價和其它的貨幣化機制,該組織於1月打消了拍賣計劃。
4月,ShadowBrokers放出一攬子新的工具,稱該舉是為了抗議美國總統特朗普做出中立派決策而非極右翼決策。
 
專家們認為,及時更新電腦軟件系統對於避免遭受黑客和惡意軟件的攻擊至關重要


目前具體做法與媒體報導,可以參考以下介紹
XP也有救!WannaCry 2.0勒索軟體肆虐,微軟破例再釋Windows XP修補
WannaCry 2.0勒索蠕蟲狠襲全球,上百個國家受駭,台灣也是重災區
勒索病毒爆發 安全專家預警周一上班要小心
中職/系統當機頭一回 尚不確定為勒索病毒
病毒軟體勒索恩主公醫院 病患個資無虞



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

2017年3月12日 星期日

網智數位與群環科技正式合作成為 微軟 Azure 雲端解決方案經銷商

        今年網智數位與群環科技正式簽約合作,網智數位也將正式成為雲端平台 Azure 經銷商與解決方案提供者,未來網智數位的客戶,可以透過我們採取微軟的雲端平台,而我們將可以提供良好的技術服務、更好的軟體開發品質,讓軟體使用更加便利性、跨越裝置、區域性地限制性。




下載




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

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

       在現在智慧型裝置、平板裝置大量普偏化,從企業到個人甚至在企業內部團隊開發者的支持與合作之  下不斷推出大量新型移動應用。面對如此龐大的應用生態圈,認真規劃並調整戰略性技術決策無疑有助於確保應用的成功發布並獲得良好的市場反響。而在實際構建相關平台之前用戶界面(簡稱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

2017年2月7日 星期二

微軟可能推出 Win10雲端版系統 (軟體開發、軟體客制化、ERP 軟體)

      微軟正在開發新的Windows 10雲端版,有望成為該公司針對Chromebook發起的最新挑戰,而這款系統的最新版本已經在網上洩露。

Cfem-fyafqxp5657404

據多家媒體報導,Windows 10雲端版是一款輕系統,可能是針對微軟的ARM戰略設計的。一個 Twitter用戶在網上披露了Windows 10雲端版的ISO鏡像文件,甚至可以直接下載安裝。但業內人士推薦在虛擬機上安裝這款系統。


與之前的報導相同,Windows 10雲端版只允許用戶運行通過Windows Store購買的UWP應用,如果安裝其他應用則會顯示“不適配該系統”的提示信息。另外,系統對話框還會提醒用戶,“該版本希望保護您及您的設備,而且只能運行Windows Store應用。”

但值得注意的是,用戶可以從Windows Store下載部分Win32應用。這些Win32應用是通過微軟自己的桌面應用轉化器進駐Windows Store的,因此雖然可以通過Windows Store下載,但卻無法真正安裝在Windows 10雲端版上。

由於這只是早期版本的Windows 10雲端版,所以現在還不能完全確定微軟不允許用戶運行通過Windows Store下載的Win32應用。微軟有可能會在不遠的將來支持這項功能。

業內人士認為,Windows 10雲端版繼承了Windows RT的“遺志”,後者因為Windows Store的應用數量較少而未能取得成功。然而,從Windows Store和UWP應用的現狀來看,目前似乎與之前並無太​​大不同,很多用戶仍然非常依賴經典的Win32應用。

Windows 10雲端版可能幫助微軟與穀歌Chromebook直接競爭,通過廉價Windows 10設備提供一流的性能和順暢的用戶體驗。

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

2016年12月4日 星期日

微軟- 物聯網 Internet of Things , 成功企業案例的影片(軟體開發、客製化軟體、客製化設計)

微軟在雲端、物聯網、大數據分析在企業運用方面成功案例非常多,今天看到一個微軟的好的企業運用成功案例分享影片,真的講解的非常清楚,各位可以看一看


影片介紹
https://channel9.msdn.com/Series/Rolls-Royce/Solution 



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

2016年11月6日 星期日

Windows 10 UWP 存取 JSON 格式 - 程式實作講解(軟體開發、客製化軟體、程式設計、程式開發)

      在我們開發各種專案時,一定多少都會需要存取各種跨平台傳輸的資料,目前最普遍的傳輸格式為 XML 與 JSON , 而今天我想要深入講解在 Windows 10 Universal APP (UWP)平台下,如何讀取跟儲存 JSON 格式資料。

      images


    JSON 的全名為 Java Script Object Notation , 它是一種輕量級的資料傳輸交換格式語言,特點是容易閱讀、依字串為基礎,格式都是經過壓縮地所以在網路傳輸過程,佔用的頻寬極小,因此被廣泛地應用在跨平台、跨程式語言。
JSON 的格式在宣告一個類別/物件,是用 大括號 { };宣告一個陣列使用 中括號 [ ] ;而在大括號裡面,是使用 名稱 :值 ,下圖是官方的範例圖解釋
1356331778-696014507


例如 我在此 有個 員工類別 ,分別屬性有員工編號、姓名、職位、學歷,則對應的 JSON 格式為 
(JSON Code)
var empJsonObj = { “員工編號”:“emp001”, “姓名”: “台灣李奧納多,”“職位”: “技術總監”,"年齡”:33 } ;

接下來,就是要開始講解如何在 Windows 10 Universal APP (UWP)平台,存取 JSON 格式的支援與程式開發技巧。
在 Windows 10 UWP 平台,主要有 2 種技巧來存取 JSON 格式,第一種是使用 DataContractJsonSerializer (MSDN 介紹),透過 DataContractJsonSerializer 來對 JSON 數據進行序列化與反系列化動作 ;而第二種是使用 JsonObject 類別來自行定義 JSON 物件。這兩種方式我都會在這篇完整介紹。


1.透過 DataContractJsonSerializer 對 JSON 資料進行序列化與反序列化
      使用 DataContractJsonSerializer 類別來對 JSON 數據進行序列化與反序列化,這是最簡單的方式,所謂序列化過程就是把 實體類別物件 轉成 JSON 格式化的字串,反之 反序列化 過程,就是把 JSON 物件字串({ 名稱:值,名稱1:值1….}) 轉換成對應的 .NET 類別。

下圖,是實際程式範例
image


image



2.透過使用 JsonObject 類別來自行定義 JSON 物件
這個就讓我直接用實際程式碼來講解….
首先我先新增2個類別 ,分別為 員工類別 (Employee)和研發群組類別(RDGroup),在此我假設一個員工可以同時歸屬多於于一個研發群組以上。

底下為 員工類別程式碼:

   /// <summary>
   /// 員工類別
   /// </summary>
   public class Employee
   {
       private const string idKey = "id";
       private const string nameKey = "name";
       private const string rdKey = "rd";
       private const string ageKey = "age";
       private const string enableKey = "enable";

       public Employee()
       {
           Id = "";
           Name = "";
           RDGroups = new ObservableCollection<RDGroup>();
       }

       public Employee(string jsonString) : this()
       {
           JsonObject jsonObject = JsonObject.Parse(jsonString);
           Id = jsonObject.GetNamedString(idKey, "");
           Name = jsonObject.GetNamedString(nameKey, "");
           Age = jsonObject.GetNamedNumber(ageKey, 0);
           Enable = jsonObject.GetNamedBoolean(enableKey, false);

           foreach (IJsonValue jsonValue in jsonObject.GetNamedArray(rdKey, new JsonArray()))
           {
               if (jsonValue.ValueType == JsonValueType.Object)
               {
                   RDGroups.Add(new RDGroup(jsonValue.GetObject()));
               }
           }
       }
       public string Stringify()
       {
           JsonArray jsonArray = new JsonArray();
           foreach (RDGroup group in RDGroups)
           {
               jsonArray.Add(group.ToJsonObject());
           }

           JsonObject jsonObject = new JsonObject();
           jsonObject[idKey] = JsonValue.CreateStringValue(Id);
           jsonObject[nameKey] = JsonValue.CreateStringValue(Name);
           jsonObject[rdKey] = jsonArray;
           jsonObject[ageKey] = JsonValue.CreateNumberValue(Age);
           jsonObject[enableKey] = JsonValue.CreateBooleanValue(Enable);

           return jsonObject.Stringify();
       }

       public string Id { get; set; }
       public string Name { get; set; }
       public ObservableCollection<RDGroup> RDGroups { get; set; }
       public double Age { get; set; }
       public bool Enable { get; set; }

   }

底下為 研發群組類別(RDGroup)程式碼:

  /// <summary>
  /// 研發群組 類別,一個員工可以歸屬多個研發群組
  /// </summary>
  public class RDGroup
  {
      private const string idKey = "id";
      private const string rdKey = "rd";
      private const string nameKey = "name";

      public RDGroup()
      {
          Id = "";
          Name = "";
      }

      public RDGroup(JsonObject jsonObject)
      {
          JsonObject schoolObject = jsonObject.GetNamedObject(rdKey, null);
          if (schoolObject != null)
          {
              Id = schoolObject.GetNamedString(idKey, "");
              Name = schoolObject.GetNamedString(nameKey, "");
          }
      }

      public JsonObject ToJsonObject()
      {
          JsonObject schoolObject = new JsonObject();
          schoolObject.SetNamedValue(idKey, JsonValue.CreateStringValue(Id));
          schoolObject.SetNamedValue(nameKey, JsonValue.CreateStringValue(Name));

          JsonObject jsonObject = new JsonObject();
          jsonObject.SetNamedValue(rdKey, schoolObject);
          return jsonObject;
      }

      public string Id { get; set; }
      public string Name { get; set; }
  }



再來我設計一個前端UI界面,作為讀取與寫入 JSON 的案例實作

前端界面
image



在執行存檔時,我們將新增一個 Employee 類別,並透過 JsonObject 轉成(序列化)為 JSON 字串,儲存在設定檔。
image

而在【讀取資料】時,是透過 JsonObject 進行反序列化,將 Json String 轉回成 .Net 的 Employee 類別(Class)
image



程式執行結果畫面
存檔
image


讀取資料
image






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





2016年9月22日 星期四

系統分割 - 無法刪除 使用 diskpart 指令 (軟體開發、軟件開發、程式開發)

 今天 Allen 我在整理公司機房的機器設備,也把多年專案開發的系統要做備份,順道買了一個行動硬碟 4 T的容量,但在 MAC Pro 先進行格式化後,再插入回 Windows 作業系統環境後,使用磁碟管理發現該顆硬碟最前面出現200MB的EFI磁碟分割,而磁碟管理圖形界面無法進行刪除該多餘磁碟分割,雖然才 200 M,但就覺得浪費了空間,所以忽然想到使用 DiskPart 指令,以下就是簡單的指令操作步驟教學… 
diskpart-list-volume

我們要如何刪除多餘的EFI磁碟分割呢?

此時選擇[開始] -> [執行], 執行"cmd"出現終端機視窗

此時輸入 diskpart 指令並按[Enter]鍵

DISKPART> list disk

磁碟###   狀態         大小        可用     Dyn  Gpt
--------      ----------   -------     -------   ---    ---
磁碟 0       連線         1000 GB   0 B
磁碟 1       沒有媒體   0 B         0 B
磁碟 2       沒有媒體   0 B         0 B
磁碟 3       連線         37 GB     37 GB   *


DISKPART> select disk 3

磁碟 3 是所選擇的磁碟。

DISKPART> list partition

磁碟分割 ###   類型                大小         位移
----------------   ----------------  -------       -------

磁碟分割 1        系統                200 MB    20 KB

DISKPART> clean

DiskPart 成功地清理了磁碟。

DISKPART> exit

最後再使用 clean 指令清除磁碟時務必確定選擇的磁碟是否正確。




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

2016年8月18日 星期四

Windows Server 2016 七大 Hyper-V 功能 (網智數位﹣軟體開發﹣程式開發)

      雖然目前雲端技術正在不斷流行、成熟化,可是事實上仍有大量工作負載需求是企業內部必須依靠虛擬伺服器作為服務載體。
images
所以下面我整理了其中的各項windows server 2016 hypber-v 全新功能或者經過突破改進的特性功能:
1.分立設備配置(又稱DDA)。
使用者用戶在PC當中中接入部分PCIe設備,並将其直接交付虚拟机使用。这项性能强化机制允许各虛擬主機直接存取 PCI 設備,即绕过虚拟化堆栈。与该功能相关的两大关键性PCI设备类型包括GPU与NVMe SSD控制器。
2.主機資源保護:
常常有时候,虛擬機器之前就是會為了自身顺畅运行而拒绝彼此共享資源服務。而在這個時候有一個新功能的支持下,各虛擬機器將只能夠使用自身被分配到的資源分配額度。如果某套虚拟机被发现擅自占用大量资源,则其资源配额会进行下调以防止其影响其它虛擬機器的效能。

3.
虛擬網絡適配器(Adapter)的記憶體“熱”變更:
這些功能允許大家隨意添加或者移除適配器(僅適用於Gen 2 虛擬機),而无需进行关闭以及重启。另外,大家也可以随意对尚未启用的动态内存进行调整(同时适用于Gen 1與第2代虛擬機)。

4.嵌套虛擬化:
大家在子虛擬機器内运行Hyper-V,從而可以其作為主機伺服器來進行使用。如此一来,大家将能够在一套Hyper-V服務器之上運行的Hyper-V Server,從而進行開發、測試与教育訓練工作——不過目前還很難想象是否其可用於真的生產環境中(Online)。
生產型虛擬機檢查點:与快照功能非常類似,上代版本中的检查点能夠為虛擬機器的當前狀態保存了快照(SnapShot),從而用於開發/測試復原。不過這些“標準”的檢查點并未使用陰影複製服務(又簡稱VSS),因為它并不適合用來作為實際生產環境下的備份(Backup)的用途。新的線上型檢查點完美整合了VSS,因此完全能夠適應線上作業環境的實際需求。 


5.PowerShell Direct: 允許管理者在遠程方式管理運行在視窗10或者在Windows Server 2016之上的虛擬機器。大家可经由VMBus利用PowerShell命令进行操控,而无需亲手对主机或者虚拟机进行网络配置或者远程管理设置。这项新功能相信会受到PowerShell脚本語法愛用者粉絲的支持。

6.虛擬TPM与屏蔽虛擬機
受信平台模組(簡稱TPM)允许大家利用微軟(Microsoft)的 BitLocker 技術,來進行加密動作,其具體方式與使用物理TPM保護實體磁碟槽一樣。屏蔽虛擬機同樣是利用虛擬TPM由BitLocker(或者其它加密工具)實現加密。

所以在這2種情況下虛擬機器能够利用TPM預防惡意有心人士對設備的不當存取訪問。


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

2016年4月12日 星期二

.NET C# 7 語法 新特性 快速預覽 (軟體開發)

目前最新的 Visual Studio 15 發表的預覽版中,我們可以看出來,微軟決定為眾多的 .NET C# 開發人員,而新增了下列的 C# 7 語法新功能特色 。

元組值類型
.NET 提供了一個元組(Tuple)類型,但具體在 C# 中使用時卻存在著各種各樣的問題。由於元組類型是一個引用類型(Reference),而也因此在一些對於性能相當敏感的程式碼行中,開發者很可能會避免因使用它而造成 GC(Garbage Collection) 的開銷成本。同時,元組類型是不可變的,雖然這使跨線程( Thread) 共享變得更安全,但也意味著每次進行變更都必須分配一個新的對象。
下載

為了應對這一問題,C# 7 將提供一個值類型(Value)的元組。這是一個可變類型,對那些重視性能的程式碼來說,這種方式將更為高效。同時,作為值類型,它在每次進行分配時都會生成一個拷貝,因此幾乎沒有產生多線程(Multi-Thread) 問題的風險。
程式開發人員現在可以透過下列語法創建一個元組:
var result = (6, 20);
你也可以選擇對元組中的值進行命名,這一點並不是必須的,只是讓程式碼具有更好的可讀性。
var result = (count: 6 sum: 20);

你可能會想,“很棒的特性,但我自己也能寫得出來”。但下一個特性才是重頭戲。
多返回值,在類C風格的語言中,要在一個函數中返回兩個值始終是一件麻煩事。你只能選擇將結果封裝成某種結構,或是使用輸出參數。與許多函數式編程語言一樣,C#選擇了第一種方式為你提供這一特性:
(int, int) Tally (IEnumerable<int> list)

可以看到,在這裡使用泛用的元組有一個基本問題:我們將無從得知每個字段的作用。因此,C#選擇通過一個編譯器花招對結果進行命名:
(int Count, int Sum) Tally (IEnumerable<int> list)

我們在此需要強調一點:C#並沒有生成一個新的匿名類型,你所獲得的仍舊是一個元組,但編譯器將假設它的屬性為 Count 和 Sum,而不是 Item1 和 Item2。所以,以下程式碼行的作用都是等價的:

var result = Tally (list);
Console.WriteLine (result.Item1);
Console.WriteLine (result.Count);

請注意一點,我們現在還不具備多賦值語法,如果這種語法最終實現,那麼它的用法可能是這樣的:
(count, sum) = Tally (list);

除了提供簡單的功能性函數之外,多返回值的實用性還體現在非同步的程式碼的編寫上,因為在 async 函數中是不允許使用 out 參數的。
模式匹配:改進的 Switch 語法塊
VB 與函數式程序員對於 C# 抱怨得最多的一點就是 C# 中的 switch 語句功能十分有限。 VB 開發者希望能夠進行範圍匹配,而習慣了F#或 Haskell 的開發者則希望能夠使用分解式的模式匹配。 C#打算同時提供這兩種特性。

在對類型進行模式匹配時,你可以創建一個變量以保存轉型的結果。舉例來說,在對一個 System.Object 使用 switch 語句時,你可以編寫以下程式碼:
case int x:
如果該對像是數值類型,則變量x將得以賦值。否則的話,程序將按從上至下的順序檢查下一個 case 語句塊。如果你想更具體地進行匹配,還可以使用範圍檢查:
case int x when x > 0:
case int y:
在這個示例中,如果該對像是正整數,則x程式碼塊將被執行。如果對像是 0 或負整數,而y程式碼塊將被執行。
如果需要檢查 null 值,則只需使用以下語法:
case null;

模式匹配:分解
目前為止,我們僅僅展示了某種對 VB 中已有的特性所做的增量式改進,而模式匹配真正的強大之處在於分解,它可以將某個對象完全拆開,考慮一下以下語法:
if (person is Professor ​​{Subject is var s, FirstName is "Scott"})
這段程式碼完成了兩件事:
它創建了一個本地變量s,將其賦值為((Professor) person) .Subject。
它執行了一次相等性檢查 ((Professor) person) .FirstName == "Scott"。
如果將其用C# 6 程式碼改寫則是這樣:

var temp = person as Professor;
if (temp != null && temp.F​​irstName == "Scott")
{
    var s = temp.Subject

在最終發布中,我們預計能夠同時看到對 switch 語句塊的這兩種改進。
引用返回對於大數據結構進行引用傳遞比起值傳遞要快得多,因為後者需要對整個結構進行拷貝。與之類似,返回一個大數據結構的引用一樣能夠提升速度。
在類似於C這樣的語言中,可以通過指針返回某個結構的引用。這種方式會帶來一個常見的問題,即指針所指向的內存可能會因為某種原因而已經被回收了。
C#通過使用引用的方式迴避這一問題,引用本身是一個附加了規則的指針。最重要的一條規則是,你不能夠返回某個本地變量的引用。如果你嘗試這樣做,那麼該變量所引用的棧信息在函數返回時就已經變得不可訪問了。

在微軟的展示程式碼中,它所返回的引用指向一個數組中的某個結構。由於它實質上是指向數組中某個元素的指針,因此隨後可以對數組本身進行修改。舉例來說:

var x = ref FirstElement (myArray)
x = 5; //MyArray[0] now equals 5

這一語法的用例是對性能高度敏感的程式碼,在大多數應用中都無需使用這一特性。
二進製字面值(Binary Literals)
此次發布還引入了一個小特性,即二進製字面值。這一語法只是一個簡單的前綴而已,例如 5 可以表示為“0b0101”。這一特性的主要用例是設置基於 flag 的枚舉,以及創建位掩碼(bitmask),以用於與C風格語言的互操作。
本地函數
本地函數是指在另一個函數中所定義的函數。第一眼看來,本地函數似乎只是比匿名函數稍好的一種語法。但它實際上還存在幾個優點:
首先,你無需為其分配一個委託以保存該函數。這不僅減少了內存壓力,同時還允許編譯器對該函數進行內聯操作。
其次,在創建閉包時,也無需為其分配一個對象,因為它能夠直接訪問本地變量。這一點同樣能夠改善性能,因為它也減少了 GC 的壓力。
按照第二條規則推算,你將無法創建一個指向本地函數的委託。這一點對於程式碼的組織其實是一個優點,因為你無需創建獨立的函數,並且將現有函數的狀態作為顯式的參數進行傳遞。
部分類的改進
最後演示的特性是一種處理部分類的新方式。在過去,部分類的應用是基於程式碼生成優先的概念而出現的。所生成的會程式碼將包含一系列部分方法,開發者可以選擇實現這些方法,以調整類的行為。
通過新的“replace”語法,開發者就多了一種新選擇,能夠以最直接的方式編寫程式碼,隨後再引入程式碼生成器,並重寫這些方法。以下將通過一個簡單的示例表現開發者的程式碼編寫方式:
public string FirstName {get; set;}
簡單又清晰,但完全不符合 XAML 風格應用的寫法。因此,程式碼生成器將生成如下程式碼:
private string m_FirstName;
static readonly PropertyChangedEventArgs s_FirstName_EventArgs =new PropertyChangedEventArgs ("FirstName")
 
replace public string FirstName {
    get {
        return m_FirstName;
    }
    set {
        if (m_FirstName == value)
            return;
    m_FirstName = value;
    PropertyChanged?.Invoke (this, m_FirstName_EventArg);
}

通過“replace”關鍵字,所生成的程式碼將直接替換手寫的程式碼,添加所缺失的功能。在這個示例中,我們甚至還能夠處理一些開發者經常會忽略的麻煩的部分,例如對 EventArgs 對象進行緩存。
雖然這個官方示例僅用於屬性變更通知,但這一技術還可用於各種“面向切面編程(AOP)”的場景,例如在程式碼中的日誌記錄、安全檢查、參數校驗以及其他各種繁瑣的樣板式程式碼。

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

2016年3月30日 星期三

微軟收購 Xamarin 了,未來透過 Visual Studio 開發 Android & IOS APP

       微軟剛​​剛收購了一家熱門初創企業 Xamarin,這家初創企業主要幫助開發者編寫應用並將開發者編寫的作品投放到任何智能手機或操作系統之中。
      下載
       對微軟而言,收購Xamarin 有著重要的意義,因為在最近幾年中,微軟一直努力將更多的應用引入自己的Windows Store 應用市場之中——這也是微軟大力推行Windows 10 系統的重要舉措之一。
諸如 JetBlue 和 Coca-Cola Bottling 之類的客戶都使用 Xamarin 來節省大量的時間和金錢。開發者也不需要學雜費時間來為 iPhone、Android 或其它的任何系統重新編寫相同的應用,這些應用一旦編寫完成之後,往往都具有更大的生產效率。
微軟在將更多的 iPhone 和 Android 應用引入 Windows 10 方面面臨著較大的挑戰,為了解決這些問題,微軟已經大力投資技術,以此幫助開發者更加無縫地將他們的應用引入 Windows 之中。
Xamarin-Microsoft-1
Xamarin 當然非常支持微軟的這些舉措,同時也能夠讓微軟支持的大量開發者更加容易地利用他們的 .​​NET 和 C# 標準編寫程序代碼,並將他們的應用引入諸如 Android 和 iPhone 等平台之中。
微軟與 Xamarin 的歷史較為久遠,但雙方之間的關係曾經也飄忽不定:雙方曾經是長期的合作夥伴,與聯合客戶合作,並幫助他們打造應用,同時也給這些應用提供支撐。但是,曾有一段時間,微軟被認為是 Xamarin 業務的秘密投資方,因而早在 2014 年就有過一段傳聞,宣稱這一併購交易即將進行。
針對這一交易,微軟雲業務主管斯科特·古斯瑞(Scott Guthrie)表示,“通過今天宣布這一收購交易,我們將進一步推動這一工作,以便讓我們世界級的開發者工具和服務更好地進行深度整合,從而為開發者帶來無縫的移動應用開發體驗。”
2015 年底,Xamarin 與甲骨文簽署了一份協議,以此將開發者引入甲骨文云業務(Oracle Cloud)之中,而甲骨文云業務與微軟的 Azure 雲平台之間存在競爭關係。 Xamarin 與甲骨文的這份協議,或許是刺激微軟最終採取措施並完全收購 Xamarin 的重要原因。
從 Xamarin 的角度來看,該公司是一個非常成功的初創型企業,宣稱在全球擁有 1.5 萬家客戶。最近,BI 還將 Xamarin 定義為秘密運行互聯網的 9 家初創型企業之一。
與此同時,微軟在吸引開發者以便為全新的 Windows 10 操作系統打造應用方面也一直存在困難。通過收購 Xamarin,微軟如今也能夠為客戶提供全新且更加便捷的方式,從而更好地為 Windows 編寫應用,並通過微軟的 Azure 雲業務來支持這些應用。總而言之,對微軟而且,這一交易是一個非常重要的舉措。
另外,Xamarin 也提供所謂的測試雲產品,這一產品能夠讓開發者查看應用在各種設備的運行表現——包括在 Android、iPhone 和 BlackBerry 等設備上。如今,所有的這些業務都將整合到微軟的業務之中,這樣或將更能夠引開發者。
對微軟而言,最終的一大目標就是打造更大規模和更具吸引力的雲產品。隨著微軟與亞馬遜都在爭著吸引更多的客戶,因此,從這個角度而言,收購 Xamarin 對微軟將起著重要作用。另外,此次交易還將對 Windows 10 的應用戰略起到巨大的支撐作用。由此看來,收購 Xamarin 的確是微軟的一個明智抉擇。
來源:goo.gl/KUWbEQ1

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

2015年11月28日 星期六

Entity Framework 實戰 - 多對多自我關聯 Many to Many , Self Referencing 模型實作 (二)

此篇文是 Entity Framework 實戰 - 多對多自我關聯 Many to Many , Self Referencing 模型實作 (一)的續篇 , 當我們把基本模型 Product Class 建立好後,我們開始實作一個繼承 DbContext 的子類別,在這邊你可以把 DbContext 當做是資料庫的層次意義角度來看待
新增一個Class 名為 ProductContext.cs
image
然後按【新增】按鈕,並在 ProductContext 宣示繼承 DbContext 類別,如以下程式碼
  1: using System;
  2: using System.Collections.Generic;
  3: using System.Data.Entity;
  4: using System.Linq;
  5: using System.Text;
  6: using System.Threading.Tasks;
  7: 
  8: namespace EF6_ManyToManyAndSelf
  9: {
 10:     public class ProductContext : DbContext
 11:     {
 12: 
 13:     }
 14: }

接著加入 DbSet<Product> 的宣告,用於表示 存放著 Product Table(Class)的集合清單
public DbSet<Product> Products;
然後為了完成透過 Product 本身的 Class 來完成 多對多自身關聯,需要 override OnModelCreating Method , 程式碼如下

   1:   protected override void OnModelCreating(DbModelBuilder modelBuilder)
   2:          {
   3:              base.OnModelCreating(modelBuilder);
   4:   
   5:              modelBuilder.Entity<Product>()
   6:                          .HasMany(p => p.RelatedProducts)
   7:                          .WithMany(p => p.AboveProducts)
   8:                          .Map(m =>
   9:                                    {
  10:                                        m.MapLeftKey("ProductID");
  11:                                        m.MapRightKey("RelatedProductID");
  12:                                        m.ToTable("RelatedProduct");
  13:                                    }
  14:                          );
  15:          }

到這邊基本上已經完成 EntityFramework 的宣告….

然後讓我們在前端界面使用我們實作好的 ProductContext ,來看看如何使用….程式碼如下


   1:  using System;
   2:  using System.Collections.Generic;
   3:  using System.Linq;
   4:  using System.Text;
   5:  using System.Threading.Tasks;
   6:   
   7:  namespace EF6_ManyToManyAndSelf
   8:  {
   9:      class Program
  10:      {
  11:          static void Main(string[] args)
  12:          {
  13:              using (var context = new ProductContext())
  14:              {
  15:                  var product1 = new Product { ProductName = "美容業零售管理系統", Price = 59888M };
  16:                  var product2 = new Product { ProductName = "窗簾業ERP系統", Price = 3500000M };
  17:                  var product3 = new Product { ProductName = "玩具製造業ERP系統", Price = 6700000M };
  18:                  product2.RelatedProducts.Add(product3);
  19:                  product1.RelatedProducts.Add(product2);
  20:                  context.Products.Add(product1);
  21:                  context.SaveChanges();
  22:              }
  23:              using (var context = new ProductContext())
  24:              {
  25:                  var product2 = context.Products.First(p => p.ProductName == "窗簾業ERP系統");
  26:                  Console.WriteLine("Product: {0} ... {1}", product2.ProductName, product2.Price.ToString("C"));
  27:                  Console.WriteLine("Related Products");
  28:                  foreach (var prod in product2.RelatedProducts)
  29:                  {
  30:                      Console.WriteLine("\t{0} ... {1}", prod.ProductName, prod.Price.ToString("C"));
  31:                  }
  32:                  foreach (var prod in product2.AboveProducts)
  33:                  {
  34:                      Console.WriteLine("\t{0} ... {1}", prod.ProductName, prod.Price.ToString("C"));
  35:                  }
  36:              }
  37:   
  38:              Console.ReadKey();
  39:          }
  40:      }
  41:  }


 
 



執行結果為


image





網智數位-軟體開發(軟件開發)

2015年11月20日 星期五

微軟實際行動回歸開發者為中心擁抱全平台開發者

      微軟在今日舉辦的年度開發者大會上宣布了大量新款和升級後的開發者工具,包括了Visual Studio雲訂閱和全新Azure Service Fabric的預覽。為了賦予開發者更大的權力,微軟還介紹了全新免費且已即時上線的Visual Studio Dev Essentials項目。通過這項技術,開發者們將能夠在其喜歡的任何設備和任意系統上打造應用,從而減少其額外的投資成本。全程無尿點,全是亮點,就連開場都是一大亮點霍金的開場如同美國大片,使用面部表情控制電腦,進行交流,使用Visual studio 為霍金提供的全新交互方式:微軟在今日舉辦的年度開發者大會上宣布了大量新款和升級後的開發者工具,包括了Visual Studio雲訂閱和全新Azure Service Fabric的預覽。為了賦予開發者更大的權力,微軟還介紹了全新免費且已即時上線的Visual Studio Dev Essentials項目。通過這項技術,開發者們將能夠在其喜歡的任何設備和任意系統上打造應用,從而減少其額外的投資成本。全程無尿點,全是亮點,就連開場都是一大亮點霍金的開場如同美國大片,使用面部表情控制電腦,進行交流,使用Visual studio 為霍金提供的全新交互方式:






一、發布.NET Core RC和 ASP.Net RC
一年前的2014年11月,Connect(); 為開源開發者開啟了一段新的旅程- 宣布了.NET Core開源,以及可以在Linux, Mac OS 以及Windows 操作系統上運行的Visual Studio Code,這也標誌著微軟在開放和開源的道路上邁出了堅實的一步。昨晚微軟同時升級了.Net Core 和ASP.Net,開發者可以開始在生產環境使用微軟開源的.Net Core 跨平台框架和ASP.Net Web 平台。
微軟發布了.Net Core 5 和ASP.Net 5 的RC 版本,支持Linux,Windows 和Mac OS X 平台,這兩個軟件在一年前就已經開源了。 .Net Core 現在主要是從數據中心擴展到觸摸屏設備,添加了CoreCLR runtime 和CoreFX 庫,主要是由ASP.Net 工作流驅動。
最重要的是.NET Core 和ASP.Net 添加'go live' 協議,允許用戶在生長環境部署,可以反饋在生產環境是如何運作的。並且,現在.Net Core 已經完全支持Mac,Linux 和Windows 三個平台,特性都已完整。 .Net Core 還新增了大量APIs,包括key ones for localization 和networking。 ASP.Net v5 修改了hosting model,所以可以持續跨平台,支持Mac,Linux 和Windows。
自從開源了.Net Core,微軟還提供了其他開源的技術,包括CLR 和NuGet 包技術,還包括之前開源的Roslyn 編譯器項目。上個月微軟還宣布了與Red Hat 的合作,這些都說明,微軟已經走上了全新的開源之路!
二、開源Visual Studio Code 跨平台編輯器
微軟今天正式開源Visual Studio Code 跨平台編輯器,支持Mac,Linux 和Windows 平台。微軟同時還發布了VS Code v0.10.1 Beta 版本,最重要的是Visual Studio Code 支持擴展/插件(圖庫擴展,SDK 擴展,示例擴展)。

程式碼現已託管到GitHub:https://github.com/microsoft/vscode

Visual Studio Code 編輯器部分代碼來自GitHub Atom,但是有一些Atom 編輯器沒有的功能,比如智能感應。
Anders這位大神演示VS Code上開發AngularJS,他介紹了Google如何使用VS Code和TypeScript來開發AngularJS的下一版本

AngularJS團隊現場演示推薦AngularJS用戶使用VS Code。
三、微軟送大禮Visual Studio Dev Essentials
全新免費且已即時上線的Visual Studio Dev Essentials項目。通過這項技術,開發者們將能夠在其喜歡的任何設備和任意系統上打造應用,從而減少其額外的投資成本。


參與該項目的開發者們可訪問Visual Studio社群、程式碼和團隊服務、Parallells Desktop等工具和資源,以及在Pluralsight、Wintellect和Xamarin上培訓(明年年初上線,可選$25美元的Azure credit)。

微軟還介紹了按月或按年付費的Visual Studio專業版與企業版的雲訂閱服務。為了讓開發者的生活更加輕鬆,該公司還向所有人開放了其Microsoft Graph API(只需通過單一授權即可訪問)。

免費獲取成套的開發資源,包含下列內容:
開發工具
Visual Studio Community*
Visual Studio Code
Visual Studio Express
Team Foundation Server Express
學習資料
Pluralsight (為期 3 個月的訂閱)*
WintellectNOW (為期 3 個月的訂閱)*
Microsoft 虛擬學院、
HackHands Live Programming 幫助(25 美元信用)*
優先級論壇支持*
雲端資源
Azure 信用25 美元/月,提供12 個月)*
供五名用戶使用的Visual Studio Team Services 帳戶*
App Service 免費層
PowerBI 免費層
HockeyApp 免費層
Application Insights 免費層
跨平台開發資源
Parallels Desktop® for Mac Pro Edition (為期3 個月的訂閱)*
Parallels® Access (為期3 個月的訂閱)*
Windows 10 Enterprise VHD (為期 60 天)
Office Online 應用
獲取地址:https://www.visualstudio.com/free-developer-offers-vs
四、Visual Studio安卓模擬器可以運行在Mac上
Visual Studio 2015中提供了一個獨立的安卓模擬器,這個模擬器的運行速度是Google模擬器的3-5倍,佔用內存僅有不到1/3,對於移動應用開發者來說是非常好用的武器。現在這個模擬機也可以運行在Mac OSX上了。這個模擬器可以獨立安裝,獨立運行,即使你不使用Visual Studio進行開發,也可以使用這個模擬器作為你的安卓開發環境的一部分。
下載地址: https://www.visualstudio.com/zh-cn/features/msft-android-emulator-vs.aspx
昨晚的直播除了上面這些還有非常多的亮點,可以通過https://channel9.msdn.com/ 上觀看回顧。
內文來源為:tinyurl.com/pdpzvav

網智數位-軟體開發