[以下屬隨堂筆記,純粹記錄關鍵字供日後回憶,為常飲用孟婆湯之中年人士求生必備]

Windows 7相容性

  1. Windows Resource Protection(WRP) ,保護作業系統目錄、檔案、Registry不被一般程式更動,唯二的例外是Automatic Update、Windows Update程式
  2. Win7 x64: 必須使用64位元的驅動程式且需要經數位簽章;不能由x86升級而成,要重新安裝;不支援16位元程式;透過WoW64可執行32位元程式(但32, 64位元不能並存在同一個Process中)
  3. Win7的TCP/IP重寫過,IPv4/IPv6共用相同的API,部分程式在取IP位址時會取到IPv6位址,與IPv4格式不同,可能會導致問題。 (相關文章)
  4. GINA(Graphical Identification and Authentication,使用IC卡、指紋、人臉識別... 等登入Windows)架構修改,以前是用串連的,IC卡認證出錯可能會導致接在後面執行的其他認證程序也失效),Win7改用Credential Provider的概念。
  5. Win7在超大螢幕下會自動放大字型,一些排版很密的舊程式可能因此版面亂掉,可在Manifest設定<dpiAware>false</dpiAware>避免之。(參考)
  6. 過去UserA使用Direct3D功能後,桌面切換為UserB登入,會因3D功能被UserA獨佔而無法也使用3D,Win7起無此限制。
  7. Manifest檔(*.exe.config)中可以透過supportedOS指定支援的OS版本(參考), requestExecutionLevel指定提升權限(參考)。
  8. UAC: Admin身分使用者登入時,同時具有Filtered Token(權限受限)及Unfiltered Token,提升權限時就是切換使用Unfiltered Token。
  9. 檔名有setup或install等字眼的程式會自動觸發提升權限。
  10. 提升權限時的對話框有三種: 作業系統自己的程式、有數位簽章的程式、來源不明的程式
  11. Win7的UAC設定分成四級: 什麼都問 -> Windows自己的不問 -> 不啟用安全桌面(背景不會黑掉,其他程式可繼續使用,但也會衍生被惡意程式動手腳的風險) -> 關掉UAC,盡情地裸奔吧~~
  12. Mandatory Integrity Control: 程式會依Integrity Level分級: 低-受保護的IE模式、中-LUA(Least-privilege User Account)程式、高-提升權限後的程式、系統-Windows系統行程。可使用icacls設定IL。(相關文章)
  13. UAC虛擬化: Win7用App_Data\Local\VirtualStore目錄下模擬出讓程式可以寫入Program Files等目錄的效果,保護了OS且程式不會壞掉。工作管理員可新增一個"UAC模擬"的欄位來監看各Process有無啟動UAC模擬。
  14. 預設exe, vbs, bat不啟用UAC模擬,可修改HKLM\System\CurrentControlSet\Services\Luafv\Parameters\ExcludedExtensionsAdd。
  15. SysInternals工具組: 茶包射手的好朋友
  16. ProcessExplorer可以查Integrity Level(但設為High的會一片空白看不到)
  17. 好用的問題畫面擷取工具--psr.exe,一步步操作,會得到一個圖文並茂的操作畫面mht檔案。
  18. Windows Application Compatibility Toolkit(ACT)、Application Verifier(查Unmanaged Code的問題)以及Standard User Analyzer(SUA)
  19. 指定程式搭配Shim DLL(微軟提供讓API轉向,克服不相容問題的補丁,例如: WinXPSP3VersionLie、Win2000SP3VersionLie、VirtualRegistry),可自訂什麼程式用什麼Shim的規則,設定存在Windows\AppPatch\Custom\*下,可使用sdbinst工具在不同機器間搬移自訂資料庫。

Windows Phone 7 SDK 7.1

註: David老師已把投影片同步PO出來了,另外還加贈180分鐘的教學影片,佛心呀~~~

  1. 7.1起程式可建立動態磚(Tile)、更新動態磚上的數字、文字及背景圖,動態磚也變成雙面會翻轉。分為Appilcation Tile(使用者自行釘選)、Secondary Tile(由程式建立)。
  2. ShellTile.ActiveTiles.Where(x => x.NavigationUri…),可使用LINQ操作動態磚集合
  3. ShellTileSchedule: 定期抓取網路資料更新動態磚資訊(例: 氣象、最新消息...),可指定單次/多次、開始時間、間隔、更新次數... (採批次處理,不會馬上生效,可能要等到一個小時)
  4. PushNotification: WP7程式向MS PushNotficationService取得一個Unique URI,交給Server,Server用它當成參數送交PushNotficationService就可以推送資訊給WP7,可以傳Raw(Binary)資料給App處理、更新Tile、彈出Toast突顯式訊息(在最上方出現,可連結至特定App特定頁面)
  5. BackgroundAudioPlayer可在背景放音樂,程式不執行時也會繼續,音樂可來自Internet或IsolatedStorage,透過BackgroundAudioPlayer.Instance.PlayStateChanged事件掌握撥放狀態變化。實做時要多建立一個AudioPlayerbackAgent專案實現撥放的細節,由另一個程式參照它並透過BackgroundAudioPlayer.Instance操控之
  6. BackgroundTransfer: 程式未執行時繼續上傳或下載檔案。檔案會放在IsolatedStorage /Shared/transfers資料夾下,TransferProgressChanged、TransferStausChanged事件加入自訂邏輯。檔案大小有限制: 插電+WiFi無限制、WiFi可下載100MB、3G可下載20MB,上傳一律5MB。
  7. Scheduled Actions:
    * Scheduled Notfications: 分為Alarm(有音樂)、Remider(Toast訊息,可設連結)
    * Scheduled Task: 分為PeriodicTask(只用少量資源, 15秒內執行完畢)、ResourceIntensiveTask(限手機插電、有WiFi、螢幕已鎖定、未使用電話下才會執行,限10分鐘)
  8. ScheduledTask跟AudioPlayerbackAgent,要建立一個SchedulerAgent專案,由另一個專案參照並ScheduledActionService.Add(someTask)
  9. 7.1起支援多執行緒,按Back離開後,按著Back不放,WP7會列出還沒結束的程式供你選擇(類似Windows的Alt-Tab),表示程式仍在記憶體中。這種狀態稱為Domant,輸入欄位值等狀態資料仍被保留的,不像7.0一定要在Deactivated時自行保存寫到IsolatedStorage、Activated時自行還原。但當記憶體不足時,還是可能會進入Tomestonded模式,這意味著Deactived還是要保存狀態、Activated時由ActivatedEventArgs.IsApplicationInstancePreserved來判斷是Domaint還是Tombstoned
  10. 7.1支援Local Database。但現階段沒有GUI工具,所以要Hardcoding自行產生ORM的DataContext及Entity物件,就可以用LINQ的方式儲存或更新資料到IsolatedStorage。(註: 沒工具搞ORM挺累的,若不需要Relationship等功能,用LINQ to Object再配合Serialization也許更簡單)
  11. 7.1起可以使用LINQ去查連絡人、行事曆。Contacts.SearchCompleted += 在結束事件接收結果; Contacts.SearchAsync(….)
  12. 7.1的新Lauchers: Bing Maps Directions Task(導航)、Bing Maps Task(導航)、Connection Settings Task(設定連線方式)、Share Link Task & Share Status Task(丟到Facebook, MSN)、Address Chooser Task、Game Invite Task、Save Contact Task(儲存連絡人)、Save Ringtone Task(儲存來電鈴聲)
  13. 可以錄製影片囉! System.Windows.Media.CaptureSource,會以mp4存在IsloatedStorage,利用FileSink儲存,用MediaElement撥放
  14. 模擬器有注音輸入與中文手寫輸入,可模擬手機移動、傾斜方向感知...
  15. ISETool,將IsolatedStorage的資料Copy到PC,或由PC複製過去。要從WPAppManifest.xml取得Product GUID當參數。
  16. Marketplace Test Kit: Automated Tests、Monitored Tests(故意Crash看程式是否可正常關閉)、Manual Tests
  17. Windows Phone Profiler: 找出CPU、Memory耗用狀況。(Debug->Start Windows Phone Performance Analysis或Alt-F1)

Comments

Be the first to post a comment

Post a comment