net-core


[活動]Insider Dev Tour 2019 Taipei - 幕後花絮

01.jpg
Insider DevTour 2019 Taipei

不知不覺一個禮拜就過去了,還記得上個禮拜 (06/22) 的時候是今年Insider Dev Tour在台北的場次。

很榮幸,這一次除了作爲講師有上臺25分鐘介紹.NET Core 3在桌面應用程式(Desktop Applicaton)帶來的一些好處之外,也是現場的工作人員。相信有參加的人應該都還記得幫各位發吊牌的就是我啦。

言歸正傳,這一篇主要想總結一下那天的情況 - 由於大部分時間都是工作人員,因此應該沒有太多技術的部分 算是為這一次活動做個記錄,並且留下一些參考資料給有興趣的朋友去嘗試。


[faq]如何故障排除ASP .NET Core網站啟動失敗問題

[faq]如何故障排除ASP .NET Core網站啟動失敗問題.jpg
圖片來源:https://pixabay.com/en/despair-alone-being-alone-archetype-513528/

辛辛苦苦開發的Asp .Net Core網站做完了,在local測試也沒什麽問題了,接下來肯定是要發佈到正式機器讓世界看看你的傑作。

但是,當發佈到Azure Web App上面,卻出現了An error occurred while starting the application,然後其他除了執行環境訊息之外什麽訊息都沒有。

這個時候該怎麽辦?我只是想要把網站run起來怎麽那麽困難!!!

這篇將介紹如何偵錯這類的問題。


[.net core]如何在開發階段透過Visual Studio設定不同的執行環境 (環境變數)

[.net core]如何在開發階段透過Visual Studio設定不同的執行環境 (環境變數).jpg
圖片來源:https://pixabay.com/en/despair-alone-being-alone-archetype-513528/

在上一篇([faq]ASP .NET Core 如何在開發的情況下讓Controller不需要過Authorization (驗證))介紹了如何透過當執行環境是Development的時候不要過驗證。

透過那樣的設定可以讓開發者在開發階段的時候不用擔心驗證的部分。不過有時候需要把驗證的部分一起考慮進去怎麽辦?

例如想要做整合測試,確保需要權限的api邏輯沒有錯誤的時候怎麽辦?總不能夠直接打staging的機器吧。

這件事情其實在Visual Studio可以很容易的辦到,來看看如何切換執行環境。


[faq]ASP .NET Core 如何在開發的情況下讓Controller不需要過Authorization (驗證)

ASP .NET Core 如何在開發的情況下讓Controller不需要過Authorization (驗證).jpg
圖片來源:https://pixabay.com/en/key-tag-security-label-symbol-2114047/

最近常開發以及維護ASP .NET Core Web API的網站,其中一個會遇到問題就是,如何在開發的情況下繞過驗證/授權(Authorization)

這篇將介紹,如何透過設定的方式一次開啓驗證以及不驗證。


[Bot Framework V4][01]開篇

[Bot Framework V4][01]開篇.jpg
圖片來源:https://pixabay.com/en/books-spine-colors-pastel-1099067/ 

還記得沒多久之前介紹的另外一個系列(「chatbot + AI = 下一代操作模式」),那個時候介紹了新一代的操作模式俗稱的Chatbot,以及看Chatbot結合Cognitive Service這種AI API所帶來的另外一種使用者體驗。

那時候因爲V4還在Preview,所以介紹了使用Bot Framework V3(準確一點說是Bot Builder SDK V3)。

而V4在9月底的時候正式發佈GA了(進入Stable),因此有了這個系列的開始,來看看V4改變了什麽。


[Data Science 到底是什麼從一個完全外行角度來看][10]用.Net Core跑Hadoop MapReduce - Streaming介紹

image
圖片來源: https://pixabay.com/en/books-spine-colors-pastel-1099067/https://pixabay.com/en/math-blackboard-education-classroom-1547018/

上一篇([09]了解Hadoop裡的MapReduce到底是什麼?)了解了什麼是MapReduce,並且了解了怎麼用Java寫一個MapReduce的Hello World程式:WordCount。

馬上會想到的一個問題是,難道只有Java可以寫MapReduce的程式嗎?

這篇將會介紹Hadoop的Streaming服務,讓任何語言只要透過Standard Input和Standard Output就可以寫出MapReduce程式。 將會使用最熟悉的語言,.Net Core來完成這個事情。

在這篇也會介紹另外一種測試Hadoop的方式,使用Docker來測試。


[faq]解決C#呼叫有ssl憑證問題的網站出現遠端憑證是無效的錯誤問題

image
圖片來源:https://pixabay.com/en/despair-alone-being-alone-archetype-513528/

有時候需要在C#的程式裡面發出request和內部或者外部的服務溝通,如果內部或者外部的服務只允許https連線,而且的ssl憑證並沒有經過認證(有可能是用self signed certifcate),那麼C#會直接出錯:

image
錯誤訊息範例畫面

system.security.authentication.authenticationexception the remote certificate is invalid according to the validation procedure

System.Net.Http.HttpRequestException: 傳送要求時發生錯誤。 ---> System.Net.WebException: 基礎連接已關閉: 無法為 SSL/TLS 安全通道建立信任關係。
---> System.Security.Authentication.AuthenticationException: 根據驗證程序,遠端憑證是無效的。

一般來說要解決這個問題有兩個做法:

  1. 把self sign的certificate裝到程式的機器上面並且信任那個憑證
  2. 在送出request的時候做一些特殊處理

這篇將會對於第二個做法,調整程式讓發出request遇到這種問題的時候能夠處理這種問題。


[.net framework 工程師看.net core][04]真跨平台.Net Core介紹

image
圖片來源:https://pixabay.com/en/annual-report-book-brochure-686343/

在上一篇介紹完C#之後(工程師的語言 C#),基本上對於.Net Framework的整個開發環境也是有個基本的了解和概念之後,在這篇將會對新的framework:.net core做個基本介紹。


[.net framework工程師看.net core][01]開篇

image

作為.net 工程師來說,最近最夯的應該就是.net core 2.0的正式發佈。

如果你和我一樣,是一個從頭到尾只使用Windows並且以開發C# .net為主的工程師,那麼.net core最明顯的跨平台可能沒什麼吸引力,畢竟只用Windows還需要夸平台嗎?

那麼是否.net core就不重要了呢?是否應該花時間學習呢?在這個系列希望能夠給目前.net為主的工程師節省一些查資料的時間,並且了解.net core的重要性。


[.Net Core 與 .Net Standard 實戰教學][Lab][03-3].Net Standard 2.0能夠直接Reference .Net Framework Library

image
圖片來源:https://pixabay.com/en/workshop-rustic-hammer-wrench-tool-2608390/

透過上一個lab: 了解到了如何更容易評估把.net framework程式碼port到.net Standard之後,接下來的問題就是,可是有些第三方.net framework library沒有source code但是又要用怎麼辦?

在這個lab將會介紹.Net Standard 2.0帶來的一大優勢,能夠直接reference .net framework的library。將會使用一個2012的library:NQuery,主要目的是可以用sql語法來查詢資料。將會調整改成這種方式來查資料。

上個lab的最後成果的程式碼可以再github看到:https://github.com/alantsai-samples/2017-10-14-net-core-workshop

git標籤:lab3/1-port-net-standard-finish

兩種方式取得:

  1. 用git clone然後在checkout到lab3/1-port-net-standard-finish
  2. 從github release下載:下載鏈接

[.Net Core 與 .Net Standard 實戰教學][Lab][03-2]使用.NET API Portability分析API支援程度

image
圖片來源:https://pixabay.com/en/workshop-rustic-hammer-wrench-tool-2608390/

在上一個lab:[03-1]現有.Net Framework Lib 改成 .Net Standard 了解了如何把一個現行的.Net Framework邏輯移轉到Target .Net Standard以達到最大跨平台共用邏輯的需求。在操作的過程中有特意轉成.Net Standard 1.6來模擬不支援的api DataSet, 並且了解如何使用 Api Browser來查看api支援度。

不過,難道沒有工具能夠分析現行程式碼是否支援那些target嗎?

在這一個lab將會使用.NET API Portability來達到分析支援度的情況。

上個lab的最後成果的程式碼可以再github看到:https://github.com/alantsai-samples/2017-10-14-net-core-workshop

git標籤:lab3/1-port-net-standard-finish

兩種方式取得:

  1. 用git clone然後在checkout到lab3/1-port-net-standard-finish
  2. 從github release下載:下載鏈接

[.Net Core 與 .Net Standard 實戰教學][Lab][03-1]現有.Net Framework Lib 改成 .Net Standard

image
圖片來源:https://pixabay.com/en/workshop-rustic-hammer-wrench-tool-2608390/

在前兩個lab 2裡面([Lab2-1]了解Framework Dependent Deployment(FDD)執行(發佈)模式[Lab2-2]了解Self Contained Deployment(SCD)執行(發佈)模式)了解了.Net Core和.Net Framework 不同執行模式以後。

在lab 3將會切換到另外一個很重要的部分,.Net Standard 2.0的到來。

這個lab將會介紹如何移轉現有target .net Framework的程式改成.Net Standard以達到多runtime使用重複邏輯。

一般來說會先port test程式碼,在port實際的業務程式碼,不過做法都類似,以這個範例就直接port業務程式碼。

[.Net Core 與 .Net Standard 實戰教學][Lab][02-2]了解Self Contained Deployment(SCD)執行(發佈)模式

image
圖片來源:https://pixabay.com/en/workshop-rustic-hammer-wrench-tool-2608390/

在上一個Lab:了解Framework Dependent Deployment(FDD)執行(發佈)模式建立了一個.Net Core Console程式, 並且用發佈看產出的結果 - 最後得到的是FDD的執行模式。

在這一個lab將會沿用上一個lab的Solution接下去建立另外一種執行模式,Self Contained Deployment (SCD)。

上個lab的最後成果的程式碼可以再github看到:https://github.com/alantsai-samples/2017-10-14-net-core-workshop

git標籤:lab2/1-fdd-finish

兩種方式取得:

  1. 用git clone然後在checkout到lab2/1-fdd-finish
  2. 從github release下載:下載鏈接

[.Net Core 與 .Net Standard 實戰教學][Lab][02-1]了解Framework Dependent Deployment(FDD)執行(發佈)模式

image
圖片來源:https://pixabay.com/en/workshop-rustic-hammer-wrench-tool-2608390/

在上個Lab:[01]準備環境準備好環境之後,接下來就是建立一個.Net Core Console的Hello World範例程式。

建立出來之後,了解.Net Core在發佈出來的成果為 Framework Dependent Deployment(FDD)類型並且了解這個和以前.Net Framework的有何不同。


[.Net Core 與 .Net Standard 實戰教學][Lab][01]準備環境

image
圖片來源:https://pixabay.com/en/workshop-rustic-hammer-wrench-tool-2608390/

要開始開發.Net Core程式之前,一定需要先把環境準備好。

這篇lab主要介紹如何以VS 2017為主的開發模式來準備需要的環境。