發表文章

目前顯示的是 11月, 2017的文章

關於bot framework (7) - 快速建立並測試MS Teams bot

圖片
MS最近推Teams推得很兇,但不知道有多少台灣企業開始使用MS Teams? 如果你也開始用,應該會知道裡面有一個T-Bot,也就是MS teams的bot,它可以擔任一些基礎的引導工作,但也僅此而已。不過,類似Slack一樣,你可以自己開發一個chat bot,掛在MS Teams裡面,做一些日常的查詢功能,例如查詢分機、檢索資料位置、一般員工 Q & A、教育訓練索引、或是更進一步的與ERP整合,來查詢訂單、庫存…等。 而且開發方式極其簡單,只需要透過MS bot framework就可以了,也就是說,IT人員可以透過bot framework,幾乎不用寫什麼code就完成一個可以運行在MS Teams裡面的T-Bot。 你可以先從透過azure建立一個bot開始: 在azure站台中,你可以透過搜尋 bot service找到(上圖),點選後,請選下圖中的建立: 接著填妥底下的資料,最後按下建立: 完成後,portal會自動跳到底下這樣的設定畫面,請依照您的需要選擇,如果您熟悉C#,您可以不勾選任何項目,以預設的值進行配置: 選擇Next之後,會出現底下畫面: 由於bot framework會需要您建立一個Microsoft App,因此azure portal會透過上圖的畫面引導你建立一個App,最終我們需要得到App Name, AppID與Password這三組資訊,請點選上圖中的Create…,接著,會自動跳出底下這樣的畫面: 系統已經自動為您產生同樣名稱的App,以及所需要的App ID,你只需點選上圖中的藍色按鈕『Generate…』,在接下來出現的畫面中,牢記你的Password(因為只會出現一次): 記好password之後,按下『Finish…』鈕回到原本的畫面,這時,你要填入剛才記得的密碼即可: 所有的設定完成之後,就會看到底下這個畫面,這表示你的bot已經被自動建立完成,到目前為止我們還沒寫任何一行程式碼: 當你點選上圖物中的這個『→test』鈕,azure portal會出現一個web的測試UI,讓你可以直接跟chat bot對話,當然,目前這個chat bot只會echo,但已經很不錯了。 如果你希望調整chat bot的功能,讓它多做一些事情,你可以點選上圖中的Download zip file下載source code,...

使用C#開發LineBot(14) – 新版建立Line Bot流程(2017年底)

圖片
2017年底,Line又改了一些東西,比較重要的影響是建立Line bot的入口,過去我們習慣從Line@ Manager那邊進去,現在建立Line Bot建議讀者可以從底下位置: https://developers.line.me 進入後請點選: 如果你還沒登入Line,會跳出一個登入畫面讓你先登入: 登入後就會到選取Provider的畫面: 這個Provider是什麼呢? 你可以建立『公司』或『個人』,這是便於你日後管理Line bot使用,如果只是測試,你可以隨意建立一個。 點選了上圖的Next Page之後,會出現底下畫面: 說明如下: A>你的line bot的Icon B>你的Line bot的名稱 C>說明文字 D>方案,如果你要測試,請選擇Developer Trial,因為這個方案才有Push API,否則Free方案只能回覆訊息,無法主動發送訊息。但Developer Trial方案有50個好友的限制。(但如果你要申請正式帳號,則需要先申請Free,然後再付費升級它成為正式帳號,即可享有Push API的功能) E>帳號類型,依照你的用途選擇即可。 F>管理者Email 完成後按下 Confirm 鈕,接著會出現讓你非同意不可的條款,請乖乖打勾: 然後按下Create,就建立完成啦: 你點選上面這個頭像後,依舊可以看到熟悉的管理後台,包含建立Channel Access Token的位置,設定WebHook的位置,都在: 基本上,這是個沒甚麼真正改變的改變,大致上申請流程都完全相同,就是開發人員可以在單一介面上控管與bot申請、開發、設定有關的 所有工作,重點還是在WebHook的設定以及Channel Access Token的取得,沒什麼太大變化。 ------------------ 相關課程: http://www.studyhost.tw/NewCourses/LineBot 電子書: http://studyhost.blogspot.tw/2017/12/line-bot.html LineBotSDK: https://www.nuget.org/packages/LineBotSDK 如果需要即時取得更多相關訊息,可按 這裡 加入FB專頁。若這篇文章對您有所幫助,請幫我們分享出去,謝謝您的...

MS Enterprise Library 6.0 (六) - 透過Attribute處理Exception

圖片
在 上一篇 我們談過了AOP的概念以及如何透過attribute來實作類AOP的機制之後,你一定會想,要說Infrastructure Logic最容易跟Business夾雜在一起的情境,莫過於try…catch了,任何Business Logic中夾雜著try…catch,都很容易造成程式碼的過度相依,我們是否可以透過前面學習到的概念,利用Attribute來處理Exception呢? 我們看底下這段Code: 上面這段程式碼和上一篇我們介紹時的一樣,唯一的差別是第13行我們多加了一個ExceptionNotify的Attribute,這個Attribute會讓Calculate()這個Method發生Exception之後,自動將Ecception的狀態寫入LogFileName指定的log.txt檔。而無須把這樣寫log的程式碼用try…catch的方式寫在Calculate()這個Method當中…怎麼實現的呢? 我們看ExceptionNotify這個Attribute: 我們只需要繼承 PolicyInjectionAttributeBase,建立一個自己的ExceptionNotify,並且override OnException(sender,e)這個Method,在其中進行我們想做的錯誤處理即可。 如此一來,當掛上該Attribute的Method發生Exception時,就會觸發你在OnException中寫的code,將Log儲存到LogFileName所指定的檔案位置了: 如此一來,就再也不需要把處理例外的程式碼雜亂的混入Business Logic程式碼中了,不失為降低相依性的一個好方法。 完整程式碼可以參考: https://github.com/isdaviddong/isRock.Framework.AOP-Examples ----------------- 相關教育訓練: http://www.studyhost.tw/NewCourses/Architecture 若這篇文章對您有所幫助,請點選 這裡 加入FaceBook專頁按讚並追蹤,也歡迎您幫我們分享出去,謝謝您的支持。

MS Enterprise Library 6.0 (五) - 再談AOP, 如何實作?

圖片
這系列的上一篇居然是2013年…沒說錯,是2013,四年前!!! MS Enterprise Library 6.0(一) - Unity Application Block MS Enterprise Library 6.0 (二) - Logging Application Block MS Enterprise Library 6.0 (三) - Exception Handling Application Block MS Enterprise Library 6.0 (四) - Policy Injection Application Block 說真的,如果不是因為開了課,我根本早忘記我曾經寫過上面這幾篇文章。 上週六,是『 團隊開發 與 架構設計 實務 』這個課程的第二天上課,在課程中我們談到了一個框架設計上我常用的技巧,也就是如何透過Attribute來實作AOP(嚴格說起來是廣義的AOP)。如果你不確定明白AOP(Aspect-Oriented Programming)的基本概念,可以參考四年前的 這篇 。(天啊,四年前…) 課程中,我做了一個範例(具體內容後面說),和某位學員討論的時候,突然看到學員的螢幕上出現了一篇看似有點眼熟的文章,語氣跟我好像…咦? 作者怎麼是我?是了,就是剛才說的四年前寫的 那篇 , 這篇 文章中介紹了PIAB(policy injection application block),這是當年我在Tech Days介紹MS Enterprise Library時,特別喜愛的一個application block,它很精采的把Business Logic和Infrastructure Logic做一個非常有效的切割,達成cross-cutting concerns的獨立性。 這一系列的文章或許是因為點擊率不很高,也或者是當時有別的事情再忙…我寫著寫著居然就忘了…也因此這個系列就沒了下文。時過境遷,這次上課的時候,我也不再介紹PIAB,因為這個PIAB Library的nuget套件很不爭氣的始終停留在2013年都沒更新,因此我們只能從底層架構說明透過Attribute實現AOP概念的作法。 不過這樣也好,學員可以從根本理解實現AOP可能的幾個方式 。然而,美中不足的是這樣去實現AOP的Method呼叫時,就得要有另一個Loa...

好工具其實就藏在民間 - 圖檔去背

圖片
有一個很讚的網站,叫做 https://clippingmagic.com/ 這個神奇的網站,可以幫助你用簡簡單單的一筆一畫完成圖檔的去背。 你只需要像是上面這樣,用綠筆把圖檔要保留的部分畫起來,再用紅筆劃掉不想保留的部分,就能得到一個去背後的圖檔,剛出來的時候炫爆了。 最近這個網站不炫了,原因是,它…開始收費了。 以前去背靠這網站現在該怎麼辦呢? 雖然其實也不貴,但還是潛意識反射動作的在拿出信用卡前,找找有沒有其他的替代方案…上網查了一下,哇靠,原來我們偉大的PowerPoint內建這個功能!! 你只需要點選要去背的圖檔,然後選擇格式->背景移除,就可以了,它除了會幾乎自動化的幫助完成去背,也一樣可以讓你用綠紅兩色的筆,選擇自己要保留或是移除的部分。 完成之後,把去背成功的圖檔另存新檔就可以了: PowerPoint…還真是不能小看你的啊

the DevOps journey - VSTS預設Build當中說好的程式碼測試涵蓋率沒出現?

圖片
有一天上課,講到單元測試,學員聽到VSTS預設的範本就可以在CI/Scheduled Build當中自動運行單元測試,並且產生出測試涵蓋率的報表,大家都很興奮(雖然我不知道為何大家都那麼興奮…) 然後Lab時就開始下手開幹了,Build裡面運行unit test沒問題,出來的結果如下: No Build Code Coverage Data Avaliable???? 什麼鬼?說好的測試碼涵蓋率呢? 莫急莫慌莫害怕… 請回到Build Step中的Test Assemblies, 預設狀況下Code Coverage Enabled是沒有勾的… 勾上之後,老闆要的測試碼涵蓋率就出現囉… (A:上面那個範例只寫了一個測試,啊是有什麼好涵蓋的啦…) (B:沒關係,讓PM看到圖就大家開心了…) ----------------------------- 本系列文章索引位於 http://studyhost.blogspot.tw/2017/02/the-devops-journey-index.html 相關教育訓練: http://www.studyhost.tw/NewCourses/ALM 若這篇文章對您有所幫助,請點選 這裡 加入FaceBook專頁按讚並追蹤,也歡迎您幫我們分享出去,謝謝您的支持。