利用Azure Functions 無伺服器的特性,我們可以使用熟悉的語言,快速打造一個輕量型的函式服務。近來剛好手邊有個需求需要收集大量的數據,就很適合使用 Azure Functions 來完成。
[Azure] 使用Azure Functions與 Blob 儲存體做自動定時資料擷取
- 453
- 0
- 2018-03-01
利用Azure Functions 無伺服器的特性,我們可以使用熟悉的語言,快速打造一個輕量型的函式服務。近來剛好手邊有個需求需要收集大量的數據,就很適合使用 Azure Functions 來完成。
在前一篇文章中針對LUIS的運用可以理解到意圖及關鍵項目(entities)的設計,是整個語意理解精準度的關鍵,一個LUIS App 目前最多可以定義 30個關鍵項目(entities),所以接下來我們來看看在LUIS裡針對自訂義關鍵項目(custom entities)的幾種設計方式。
最近Chatbot突然間火紅了起來,在幾次的交流及課程活動中,常被問到有關LUIS的一些相關問題(誤解?),索性就來寫篇關於LUIS的意圖(intents)及關鍵項目(entities)見解文(可能有不同見解或想法,歡迎交流)。
前幾篇我們談了一些 Xamarin.forms 的頁面導航以及參數的傳遞,但你可能會發現相對於 Navigation.PushAsync & Navigation.PopAsync 方法,還有個 Navigation.PushModalAsync & Navigation.PopModalAsync ,那到底有什麼不一樣呢?
前面文章我們談了導航( navigation )的基本概念,而在導航的過程中有時會需要有傳遞參數的需求,本篇就來談頁面傳遞參數( Navigation Passing Data )的幾種做法。
上一篇,我們利用資源檔搭配程式碼的撰寫方式,實作 App 多語系,本篇我們將改用 Xaml 延伸標記的方式,讓你不用撰寫程式碼,只需要在 Xaml 裡設定好,就可以輕鬆搭配資源檔來實作多語系。
開發一個 App 當然會想最大化市場,所以多語系的支援一定是少不了的,本篇就來談談如何利用資源檔快速實做多語系功能。
上一篇我們說明了 Navigation stack 的機制,並且理解了如何透過程式來操控 Navigation stack 內容,進而返回上一頁或是直接回到 Root Page,接下來我們來看一個比較進階的應用,假設在 App 裡設計了登入頁面以及主功能頁面,而主功能頁面必須是經過登入程序後才會看見的,如果使用者還沒有登入則開啟 App 的第一個頁面就會是 Login Page,反之如果使用者是已經登入的狀態,那麼開啟 App 的第一個頁面就會是 Main Page。
導航(Navigation),在 App 中切換不同頁面的行為,就稱為導航(Navigation),最簡單的是直接由 App 程式定義好導航路徑頁面,例如資料清單頁面提供單筆明細檢視按鈕,直接導航至明細頁面,而這通常不會太困難,但有些時候我們並不希望頁面返回的操作是依序返回,這時候就必須自行處理 Navigation 的 stack。
資料清單是幾乎所有 App 都會有的設計,而資料更新除了背景自動更新,以及提供重新整理的按鈕更新之外,最常見的就是在資料清單上往下拉直接做資料更新,這樣的操作在 Xamarin.forms 的 ListView 控制項上,可以透過 IsPullToRefreshEnabled 屬性打開資料整理的 UI 效果,搭配 Refreshing 事件實作資料更新邏輯。
App 通常需要與遠端伺服器進行資料的交換,在這交換的過程中,由於網路的因素,可能需要花費一定的等待時間,換句話說使用者需要等待資料的取得及載入,因此一個設計較好的App通常會適當的給予一些訊息或 UI 效果,讓使用者了解目前正在處理資料的取得,減少使用者心理的焦慮感。Xamarin.Forms 提供了ActivityIndicator 控制項,讓我們可以很容易的做到加載 Loading 的UI設計,並且是可以轉化為各個平台不同的 Loading 效果。
" No resource found that matches the given name ....." ,先說明一下前因某些原因在電腦重灌以及Visual Studio 2015重裝,並把Xamarin更新至最後版本之後,開啟舊專案就無法編譯成功。
前幾天(2016/10)的windows 10更新後,造成本機IIS網站出現503錯誤,從事件檢視器所記錄的詳細錯誤訊息為: " 無法下載 C:\WINDOWS\system32\inetsrv\aspnetcore.dll 模組 DLL。資料為該錯誤。"(資料為該錯誤....這語意真難懂=_=)。
當專案由Nuget升級Xamarin.forms套件過程中,可能會發現有些相依性的套件是會升級失敗,導致整個專案無法順利編譯成功,如果您跟筆者一樣從Nuget升級Xamarin.forms套件,發生了相同的現象,那麼可以試著採用筆者的方法來處理。
" xamarin forms initializecomponent does not exist in the current context ",在Xamarin.forms專案中從另一專案複製 *.xaml 檔案時,可能會出現這樣的錯誤,導致無法編譯,但事實上InitializeComponent() 方法是Xamarin.forms對XAML 頁面宣告定義進行初始化的函式,而編譯錯誤卻指向不認得此InitializeComponent()方法,以下就來說明要如何解決這個問題(筆者認為這是Visual Studio 2015 Xamarin.forms專案本身的缺陷)。
Cordova App 要使用 Azure Notification Hubs服務,正常來說可以用透過 "cordova-plugin-ms-azure-mobile-apps" + "phonegap-plugin-push" 這二個plugin來達成,詳細可以參考我放在github的範例(https://github.com/iangithub/Cordova-Azure-Notification-Hubs),但這幾天一位朋友告知好像無法正常運作,會有404錯誤,本篇提供另一個替代方案,讓Cordova App可以正常使用Azure Notification Hubs服務
alert 是寫JavaScript的開發人員很常用的功能之一,因此在撰寫Cordova App 時許多開發人員也會常拿alert來製作彈出訊息的功能,然而就個人的經驗會建議大家應該以Notification來取代alert。
類別建構子有時會因為需求的關係,提供具有參數的建構子,在使用Unity 時該如何提供建構子參數呢?或著是說當我的實作類別是具有參數的建構子時,該如何設定Unity ?
Bower是前端套件管理員,其功能與後端領域大家所熟知的NuGet一樣,既然是前端套件的管理員,那麼在Cordova專案自然也有整合Bower,而預設上使用Bower所安裝的套件檔案並不會在Cordova專案的www目錄內,因此必須再多一道手續把套件檔案由bower_components目錄手動複製到Cordova專案的www目錄內,本篇教大家如何透過簡單的設定檔,讓Bower所安裝的套件檔案可以自動放到我們所希望的目錄裡
Unity 是Microsoft推出的IOC Container 套件,使用上除了在程式碼裡進行型別的註冊之外,也可以使用設定檔的方式來設定要註冊的型別,透過設定檔的好處是程式碼不用重新譯就可以抽換實作類別,以ASP.NET Web Sie 來說,會在web.config裡進行設定,多數情況下抽象型別會與實作類別的組件一樣置放在bin的目錄裡,然而在某些特殊或是不得不的情況下,組件會是註冊在GAC(assembly)裡,此時Unity的設定檔就必須稍微注意一下囉。