發表文章

Blazor Hello world

圖片
同事分享了關於ASP.NET Blazor實作Web Assembly相關的文章,今天試著玩看看。嗯..新手入門,當然是Hello world了..。
如何安裝 在擴充功能搜尋Blazor,安裝ASP.NET Core Blazor Language Service,看到套件名字就知道了,要.Net Core才可以喔~~
選擇專案樣板 安裝後,在新增專案時會多出三個樣板
最基本的Client Side的專案,選擇這個,基本上就可以執行,但我們通常會切分Client及後端取資料的API,所以不會選這個。 ServerAPI+Shared(共用專案)+Client Side,通常會選這個,這個是標準的Server API與Client架構。 ps::第1,2的樣板會將dll載入前端,並透過blazor.webassembly.js Render Html。 ServerAPI+Shared(共用專案)+Server Side,這個跟第2點很像,差在它不會下載dll到前端,而Html是逶過blazor.server.js跟Server的溝通取得,若Server此時無法回應,那當你在切換Url時會無法Render。
Hello World 本範例選擇第二個樣板,會建立三個專案如下所示:
Client : 前端View Server :  後端Web API,此為主要執行的專案 Shared : 共用專案 例如:Model 測試網頁,只要執行Server就可看到網頁了,此專案會將Client的View載入來顯示。

關於後端API呼叫
預設Server專案會有一個SampleDataController,示範讓Client取得資料顯示 SampleDataController.cs
Client View叫用API
以上.....都是預設產生的,一行程式都沒寫XD
相關參考
https://koukia.ca/blazor-spa-framework-on-net-via-webassembly-b7a0046e7f21
https://www.slideshare.net/WillHuangTW/writing-spa-using-aspnet-blazor
https://github.com/AdrienTorris/awesome-blazor

VS2017.15.8.4 錯誤修正

圖片
最近一直不太敢安裝Vs2017的更新,尤其是跳版號的,每次裝都有問題,這次要從15.7.x升上15.8.4,安裝後,果然不出所料...專案全部無法載入..
解決方式 根據訊息到開發論壇找到了解答如下:
1.使用管理者權限打開Developer Command
2.輸入以下的命令列 gacutil /i "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\Microsoft.Build.Framework.dll" gacutil /i "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\Microsoft.Build.dll" gacutil /i "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\Microsoft.Build.Engine.dll" gacutil /i "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\Microsoft.Build.Conversion.Core.dll" gacutil /i "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\Microsoft.Build.Tasks.Core.dll" gacutil /i "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\Microsoft.Build.Utilities.Core.dll"
完成後,需重新打開方案才會正常載入。
參考來源 https://developercommunity.visualstudio.com/c…

SQL Server傳遞資料集到預存程序

今天同事提到他將資料集用參數的方式丟到預存程序裡面,大致的作法如下:
1.資料庫宣告資料表型別 CREATETYPEdbo.USER_TABLE_TYPE ASTABLE(        USER_NOVARCHAR(8) )
2.C#宣告一個DataTable及參數 vartable =newDataTable();             table.Columns.Add(newDataColumn("USER_NO", System.Type.GetType("System.String")));             table.Rows.Add(table.NewRow());             table.Rows[0]["USER_NO"] ="Abc"; varpar =newSqlParameter             {                 ParameterName ="userTable",                 Value = table,                 SqlDbType = SqlDbType.Structured,                 TypeName ="dbo.USER_TABLE_TYPE"             };
3.預存程序參數宣告 CREATEPROCEDUREdbo.GetUsers        @userTable USER_TABLE_TYPE READONLY AS BEGIN SELECT*FROM@userTable

IIS 設定只允許特定IP進入

圖片
公司有兩台Web Server,一台對外,一台對內,現在要合併在一起,。預設網站將針對特定IP開放,而某幾個網站則對外完全開放。
如何使用 
1.新增功能- IP and Domain Restriction

安裝後,在IIS Root或各網站下可以看到功能圖示
2. 設定IIS Root的存取從Allow改成Deny

3.IIS Root針對特定IP或範圍打開,本例的Mask設為255.255.255.0 代表著192.168.2.0~255可以存取

4.將特定網站對外開放
由於在第2點的IIS Root已設為deny,所有網站會繼承這個設定,而子網站自行修改值的話,則會以子網站為主,這樣就達到預設是deny,而部份是Allow

所有的設定會儲存在IIS的組態內
%windir%\System32\inetsrv\config\applicationHost.config
上述的設定操作,也可以透過Power Shell 執行
$value=@{allowed="true";ipAddress="192.168.0.1";subnetMask="255.255.255.0"} #1.Setting Root Site as deny Set-WebConfigurationProperty-Filter/system.webserver/security/ipsecurity-NameallowUnlisted-Value$false #1.1 Setting Root Site denyAction as NotFound Set-WebConfigurationProperty-Filter/system.webserver/security/ipsecurity-NamedenyAction-Value'NotFound' #2.Root Site add Allow Ip add-webconfiguration/system.webServer/security/ipSecurity-value$value-pspathIIS:\ $SiteName="ConnIIsLab-PRD" #3.Setting Sub Site as Allow Set-WebConfiguratio…

Jenkins- PowerShell 引用共用模組

圖片
在Jenkins上的工作,有一段Power Shell的Script會被多次引用,例: 向資料庫取得DataTable的共用方法。 若分別寫在多個Job上,日後會變得難以維護。針對此問題,找到了一個外掛可以解決。
安裝方式 1.安裝外掛-Managed Scripts
2.管理Jenkins的畫面,進入Managed files的設定連結

3.新增Script Config Name:此為使用時的識別名稱。 Content:執行的Script
使用方式

1.引用剛加入的config,Target:將config檔,輸出到工作目錄
2.執行Power Shell Import-Module 剛輸出到工作目錄的共用檔案,並呼叫裡面的Function,來執行SQL 取得筆數


參考來源 Managed Script Plugin https://wiki.jenkins.io/display/JENKINS/Managed+Script+Plugin Power Shell Sql Query http://mattslay.com/sql-server-queries-using-powershell-lesson-1/

VS2017-建置錯誤-FindDependenciesOfExternallyResolvedReferences

圖片
最近的VS2017只要安裝完更新後,在建置時就會出現如下訊息:

版本資訊:Visual Studio 2017 Enterprise 15.7.4 (從15.6.X開始就存在此問題)
解決方式
到討論區尋求答案,得到的暫時處理措施如下:
打開檔案 C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets
找到如下紅框,將它移除即可
參考來源

https://developercommunity.visualstudio.com/content/problem/208668/the-finddependenciesofexternallyresolvedreferences.html

Console程式執行Async非同步方法

圖片
今天用主控台應用程式,測試一個非同步方法,如下程式,
建置時會出現錯誤

解決方法 修改專案的建置設定,改成7.1以上(含)的版本
參考來源 https://stackoverflow.com/questions/9208921/cant-specify-the-async-modifier-on-the-main-method-of-a-console-app