TechDay Taiwan Day 3 Note
Windows Phone 開發及管理概論
WP8 目前還不能說,有幾個重點:
- App相容WP7
- 與跟windows8共享核心
- 三種解析度:WVGA,WXGA,720p
- NFC及電子錢包
- In-App-Purchase
- 公司專屬應用程式
- 可用Native C++開發
- 有語音辨識
- 離線地圖,整合Skype
開發
安裝SDK 7.1.1
256MB的記憶體對於APP是很嚴苛的考驗,很容易就跳出直接關閉
規劃工具
- 手繪
- 下載範本PDF:Wireframe Paper Sketch Template
- 便利貼的方式
- 白板
- PPT:很容易表現全景式的版面規劃
- WireFrame Template for VIsio ,OmniGraffle for Mac & iPad
封面設計
以雜誌首頁為例:重點有產品商標,主題,主題相關描述,主題相關視覺元素,次主題,次主題相關描述
而不是先列出功能Icon,應該是列出有什麼對使用者有幫助的資訊才對
UI設計重點:排版的整齊,字型大小,配色。
請不要Button,漸層,陰影,3D物件
Panorama全景畫面,適合首頁運用
Pivot,適合用在同類型的資料分類呈現
XAML(發音:zammel)
DataBinding
資料物件ViewModel,要實作INotifyPropertyChanged,跟WinForm新版的資料更新方式相同
連接資料庫,WP7.1.1內建SQLCE,執行於應用程式的執行緒之中,使用Linq to SQL,存放於Isolated Storage:每個App獨立,移除時就清除
模擬器可以安裝Isolated Storage Tool取出SQL CE資料庫
行動裝置管理
品質衡量準則
商業智慧的全新視覺體驗--設計Power View 報表
Power View 是什麼?
- Reporting Service 內的全新產品
- 未來整合進Excel2013
- 基於 Silverlight 5<==怎麼不是HTML5? 可能還會有下一個版本出現
- 並非取代原本的工具,而是資料視覺化的工具
- 針對平板手勢最佳化???? (這個部份SL5可以在iPad上運用?)
- 很像PPT
可以整合
- Power Pivot
- Tabular 資料模型,SQL2012 SSAS 新功能
- BISM,Business Intelligence Semantic Model ,商業智慧語意模型
-
- DAX 用來取代MDX
- 可以有Having子句的篩選功能
- 明細會比OLAP慢一點
- 例如:原本只能單筆交易超過10萬元,現在可以找最近一年內加總交易金額超過5千萬的客戶
系統需求
- SQL2012
- Sharepoint2010
- 或未來Sharepoint2013
- 或未來Excel2013 Power View 活頁簿,可以維護多個Table的資料
限制
- 需要Sharepoint2010,明年可能會整合至SharePoint2013
卡片檢視方式
並列分析:不同年度,水平/臿直圖表及分析
可以直接匯出成PPT
有迷你工具列可以再進行篩選
交叉分析篩選器,同一個投影片中,可以放好多層的篩選器
並排顯示=動態磚,有Tab的方式,也有CoverFlow的方式
圖片的方式有兩種:Binary存放,或者是URL超連結
動態的泡泡圖,依時間播放,泡泡的大小會變化
Excel2013有重大的改版
M$ BigData 解決方案與案例分享
講師認為 BigData 過去的觀念都有用,只是沒有包裝
預測:資料每5年,會成長一倍
各種資料都會出現,例如:XML,JSON,IMAGE....
Hadoop,分散式運算的代表,創辦人兒子的玩具名稱
- Grid Computing
- Map & Reduce
Volume,容量
- TB變PB
Velocity,:每個人有4.3個裝置連接
- 批次跑,現在變成要串流的方式來進行處理
Variety,變異:很多新的型別的資料
- 非關聯性,非結構化資料
Walmart:「以前我們將尿布和啤酒放在一起而創造新的業績」==>現在我們將比老爸更早一步知道他女兒懷孕
- 搜尋記錄中就知道你想要做什麼事情,進一步寄一些行銷DM刺激消費
LOG都保留下來進行分析,放在資料庫之外
BigData 不等於 Big Databae
當我們的資料量,已經沒有辦法在指定時間內處理完成時,那這就是BigData了!!!!
- 設備升級
- 處理技術升級
- 在外面處理好資料後再轉進資料庫
OpenSource 在微軟原本是不能談的,現在心胸變寬大了,擁抱Hadoop!!
Streaming的搜尋
- 找影片裡面有Microsoft Logo
- 現在有車牌辨識系統eTag
Excel 可以直接拿 Hadoop 資料來進行分析
- Hive Query
海量資料怎麼來的?
- 搜尋
- 裝置
- 爬蟲程式
- 記錄檔
需不需要買Appliance?
見仁見智,講師認為因為海量,所以初期會無法預估,可以先租用雲端。
DEMO
上傳文字檔,用javascript來分析,回存JSON
將Join的想法實作在Hadoop上,這是海量資料很難做到的地方,因為要分散式運算,以前的觀念要轉變一下
案例分析
T-Drive:設計好一點的GPS,有即時的交通資訊加入進行路徑規劃分析
跟北京市政府合作合作
打造跨Windows8與Windows Phone 應用
Windows Store App vs Windows Phone App
差異
- 裝置特性差異:平板,桌上型,手機
- 開發的API範圍不同,支援的namespace範圍大小不同
- WS App 以FlipView取代Panorama/Pivot
- WS App 以ListView取代ListBox
- 動態磚的Logo路徑上有很大的不同
- 非同步的寫法也不同 await + even
跨裝置的建議:
- 採用ICommand/MVVM + Portable Class提高可維護性
- 用XAML寫UI,少寫CODE
- 能放在雲端就別寫在CLIENT
- 不要期待write one run everywhere,而是期待新裝置/平台寫得快一點
- 請多花一點時間在XAML上
展示層開發技術的持續改變是必然的趨勢
愈容易跨平台,也愈容易失去平台特性
推送訊息差異
Notification extension很好用
Toast(推送訊息) Enable=Yes
排程訊息
檔案存取差異
IsolatedStorage:WP7,Sliverlight,winform,web form
新增加Application Data:有Local,Roaming ,temp
windows.storage.applicationdata.current.local/roaming
Url 很好用:ms-appx=安裝目錄,ms-appdata=appdata目錄
FileOpenPicker,FileSavePicker
DataBinding
沒有WebClient,要改為HttpClient
有SyndicationClient來抓RSS/Atom資料
非同步的寫法: var result = await hc.GetStringAsync(<uri>);
如何開發PortableClassLibrary
- 整理前端可重用的邏輯,再用MVVM
- 不應該Focus在UI處理的部份,而是資料的部份
- 通訊錄的例子
-
- 很棒的範例,手機與平板的UI中都沒有寫程式,均用PortableClassLibrary
- 定義屬性Item及Collection
- 維護功能 RelayCommand:ICommand 用XAML Binding技巧
- 查詢功能
- XAML Binding=> StaticResource
-
- Mode=two way,會寫到記憶體中,就會在查詢中直接出現
ASP.NET MVC4
新功能
- 可建立空白範本
- 靜態檔案CSS/Javascript的最佳化(壓縮)
-
- debug=false 就會啟動壓縮
- 支援CDN,若CDN失效的話,就會採用本機的
- 自定忽略檔案清單
-
- min.js
- -vsdoc.js
- debug.js
- 網際網路應用程式範本(初學者必看)
-
- 驗證採用oAUTH
- ActionFilter範例
- ErrorMessage傳至前端的方式
- 響應式設計:不同的視窗大小都支援
- Web API範本
-
- Restful
- 習慣取代配置
- oData目前獨立一個專案:原因為不太完整,先使用Nuget下載「發行前版本」
- 行動開發,Display Mode來區分桌上版及行動版
-
- 在原本的VIEW Name加上mobile即可,若有支援wp7的話,就將檔名改wp7
- jqMobile有Cookie的話就可以切至桌上版
- windows Azure SDK 支援
- 非同步簡化支援,此部份使用.net4.5新功能
-
- public async Task<string> GetWebDataSync
- 程式內部寫 await
- Controller 可以不用放在Controller目錄中
-
- 命名的習慣,去搜尋Class
- AllowAnonymous
-
- 可以在Class層級中定義了ActionFilter後,在Method層級中有[AllowAnonymous]時,也可以跳過
- javascript intellisense 可以設定在_reference.js 即可,粉貼心吶
- PageInspector,可以快速的找到UI上的程式碼,及CSS,還有Partial View
-
- 因為低耦合性,所以常常會找不到…XD