[ChatGPT] 兩個好用的瀏覽器套件 WebChatGPT , YouTube Summary with ChatGPT
最近 ChatGPT 爆火,感覺要蹭一下流量,今天測試了兩個好用的外掛,可以介紹給大家
我這邊測試環境都是使用 Microsoft Edge ,不過因為可以安裝 Chrome 的,我就姑且直接這樣測試了
[VS] Team Explorer TFS 改變專案對應本地目錄
最近電腦突然掛掉,幸好資料都有上 Visual Studio Online ,專案簽下來後,我發現我 C槽 被配置的很小
所以我想要轉到 D碟 去,但是我找了一下才找到,想筆記一下,如果改變 TFS 的對應目錄
首先,您應該已經連接上專案 並且在 Visual Studio 有開啟 Team Explorer ,這時候點選 原始碼管理員
標籤: .Net , TFS , Visual Studio
[C#] PuppeteerSharp - 針對 QuerySelector 出來的 Elements 分別快照成圖片
上一篇我們談到 PuppeteerSharp - 快照網頁並產出 PDF + 設定 PDF 格式 ,繼續上篇
原始的畫面長這樣子
這時候,客戶希望我能夠,將每一個產品都進行快照成圖片
後來我發現其實是可以透過 PuppeteerSharp 做到的,感覺到強大阿
[C#] PuppeteerSharp - 快照網頁並產出 PDF + 設定 PDF 格式
Puppeteer-Sharp 是一個可以在.NET環境下運行的工具,它可以讓開發人員使用C#程式碼控制Headless Chrome或Chromium瀏覽器。
甚至你可以用自己的瀏覽器 ex.firefox
你可以透過這個工具來模擬人類使用瀏覽器的行為,像是瀏覽網頁、填寫表單、截圖或是生成PDF檔案。這篇文章將會介紹Puppeteer-Sharp 來將蝦皮某一個搜尋網頁
快照成 PDF,這套件有一個好處他自建瀏覽器核心,所以理論上應該是可以 Linux 運行,看一下網路上文件應該是沒啥問題。
[C#] 使用 HTML Agility Pack 抓取 Azure 上面的某區域的各服務狀態
HTML Agility Pack 是一個基於 C# 的開源庫,旨在幫助開發人員處理 HTML 文檔。
它提供了一種簡單易用的方法來解析和操作 HTML 內容,比起使用正則表達式或原生 C# 內置函數要容易得多。
HTML Agility Pack 的核心功能是把 HTML 文檔轉換為一個可操作的頁面物件,方便開發人員進行各種 HTML 操作,如遍歷頁面節點,修改頁面元素,抓取頁面內容等。
同時,HTML Agility Pack 也支持頁面解析過程中的錯誤回調,可以幫助開發人員處理不完整或錯誤的 HTML 文檔。
使用 HTML Agility Pack 實現任務非常簡單。開發人員可以通過一些簡單的 C# 程序代碼將 HTML 文檔轉換為頁面物件,然後就可以通過頁面物件進行各種操作。
上篇文章 大概講過 如何操作 HTML Agitlty Pack 最近剛好遇到 Azure 東南亞區域掛掉 24小時事件,剛好測試一下來抓某一區域的狀態
[C#] 簡單測試一下 MaxBy , MinBy
今天介紹一個 .NET6 之後才有的東西,MinBy 還有 MaxBy
其實我只是看到後想說跟原本的 Min 跟 Max 有啥不同,其實就字面上跟很多網路上的範例都可以知道這是幹嘛的
但是我很好奇如果是遇到一樣的值的呢,很多案例都是測 int[] 但是如果是 Object[] 的某屬性一樣那他是會拿到一個還是多個
[C#] 使用 iCal.NET 產生 .ICS 行事曆事件+附加檔案
今天接續之前透過 iCal.NET 來建立 .ics 的行事曆預約檔案的延伸
我們天才的業主希望在事件裡面加入 COUPON 圖片,我原本以為不行的想說婉拒
但是我後來查了一下好像可以,測試一下竟然成功,那就筆記一下
[C#] ASP.NET Core 6.0 - 一種可以將 Page 當 WebAPI 用的方法 + __RequestVerificationToken
繼續上一篇文章 ( ASP.NET Core 6.0 - 一種可以將 Page 當 WebAPI 用的方法,但不推薦 )沒說得事情,其實是有一個方法
可以增加安全性不用加上 [IgnoreAntiforgeryToken] ,還是適當的增加了安全性可以簡單防禦了 XSRF/CSRF 攻擊
但是不一樣的是上一篇文章,你可以純用 .html 去用 AJAX 呼叫,但是這不行只能乖乖地開 Page
[C#] ASP.NET Core 6.0 - 一種可以將 Page 當 WebAPI 用的方法,但不推薦
今天來寫一個不推薦使用的小技巧,但是又是一個可以解決一些小問題的方法
簡單說一下情境,在 ASP.NET Webform 時代,有時候真的有時候給客戶一個東西要 retun JSON 的答案
但是我又不想使用一大個框架來解決問題,我會就把 Page 清乾淨後 直接處理POST過來的參數再 retun 我要的 JSON string
這陣子我又遇到了,當然最好的解決方法,請使用 WebAPI ,這不是一個好的範例
用這方法請自己知道自己在做啥危險性有多高在評估使用。
[C#] .NET 6 - Enumerable.Chunk 寫分頁資料的新好幫手
今天來寫一個不算新但是很好用的東西 LINQ - Chunk , 這是 .NET 6 之後才有的
這東西很快只要一行就解決我每次都很不想寫的東西,就是分頁
以前寫分頁都要這樣下 LINQ AllData.Skip((page-1)*perPageDataCount).Take(perPageDataCount)
現在只要一行解決
[C#] 一個無聊的冷知識關於已知運算常數編譯後的MSIL
寫一個有趣的小東西,大概算是 C# 冷知識,大概就跟台灣本島最北的國際機場是桃園中正機場而不是松山機場一樣冷知識
今天好奇問同事一個問題 假設我要 1+2+3+...+100 這答案
1. 我手動打 return 1+2+3+4+5+...+100;
2. 我用迴圈 for (var i = 1; i <= 100; i++) 最後 return sum;
3. 用梯形公式解 return ((1+100)*100)/2
這三個到底 哪一個執行比較快
[C#] 使用 iCal.NET 產生 .ICS 行事曆事件+鬧鐘
雖然已經 21 世紀了,我也不知道為何業主非常喜歡 .ICS 這東西
不過,沒辦法收費辦事情,之前,我是自己大概看一下規格後自己產生,
但是最近客戶要做一些改動需求,不能夠這麼單幹了,查詢了一下,有一套一直有在更新的套件 Ical.Net
[C#] 在執行期下取得所有用到的套件版號資訊
最近跟同事在測試一個 .NET Core 3.1 跟 .NET 6 的套件問題
我們再抓到底當時候用哪一個套件所產生的錯誤,因為我們一值 Nuget 換不同版本測試
這時候我們必須要知道到底現在(執行期)用的套件是哪一個版本
所以今天簡單筆記一下,就是在執行期的時候抓取所用的 package 版本
[C#] 關於MemoryCache GetOrCreate 遇到 thread-safe 的問題
同事 Roger 碰到一個小雷,跟我說過後,決定記錄一下
因為一些專案的緣故,開發環境是 ASP.NET Core 6 他使用的
Microsoft.Extensions.Caching.Memory.MemoryCache
但是在大量用戶存取(非同步) 的時候造成 Exception
[C#] 判斷某個時段有沒有壓到另一個時段
關於時間問題,這我在專案中寫過多次每次寫都要重新考慮一次
這次就索性整理一下,然後就是直接複製貼上,懶得重寫
簡單的說因為常常寫訂單系統,就是有像是家教那樣他假設 12:00~13:00 有課,所以他的客戶不選擇這時段
這時候程式怎麼判斷時段有沒有壓到
[C#] 關於 JsonConvert.SerializeObject 的 二三事 - 如果 List 是空得(非null) 就不顯示
最近遇到的一個問題,就是關於 Json.NET 的 SerializeObject 的顯示問題
其實一般狀況下我就是直接無腦的 JsonConvert.SerializeObject(object)
但是,最近在維護一個系統因為物件要改成 Nullable 就有點麻煩,所以看看能不能直接再 SerializeObject
解決盡量的不使用 Attribute 或是改寫 Nullable 去解決
[C#] IntersectBy , ExceptBy 常忘記的兩個好用的 LINQ 方法
寫一個其實很基本,但是我每次都用蠢方式解決的東西,其實 .NET LINQ 都準備好好地給你用
認識我的人都知道我碰 NOSQL 比較多,所以我常常是在Sever 變成物件後解決一些事情
最近同事說到為何不用 IntersectBy 我才想起來有這東西,就筆記一下我怕自己又忘記有好用的東西
[C#] ASP.NET Core 6.0 - 一些基本概念使用 BindProperty , HtmlHelper , 不透過 AJAX 純用 POST 做雙連動下拉選單
今天寫一個對很多人來說是很基礎的東西,不過因為之前我是從 ASP.NET Webform 寫的比較熟
中間的 ASP.NET MVC 時代,我比較沒有去觸碰 ,之前有測試過一些東西,但是因為很多原因所以還是主要不會去用此開發
現在到了 ASP.NET 6 的時代,有些基本功可能跟當初的 Webform 不太一樣今天筆記一下
也怕自己忘記
SUZUKI SWIFT 的車鑰匙(遙控器)更換電池
最近遇到的問題,車遙控器沒電了,然後車有提示 low battery
然後自己測試一下,發現 Suzuki 的好像沒有很難,看起來比拆手機簡單很多
在拆的時候有拍照,想說就記錄一下吧..
標籤: 說好今夜不談程式
[C#] ASP.NET Core 6.0 - 移除 wwwroot 下特定類型的檔案支援
上篇文章 ASP.NET Core 6.0 - 放置 .7z 檔案至 wwwroot 可被下載 ( 加入 MIME 支援 ) 說到了原本其實 ASP.NET
原本就支援很多副檔名只要你放在 wwwroot 中就可以下載
有多少檔案類型可以被支援呢,文章下半部分有可以查詢的地方,其實直接去找 github .netcore 原始碼也可以找到
[C#] ASP.NET Core 6.0 - 放置 .7z 檔案至 wwwroot 可被下載 ( 加入 MIME 支援 )
一樣概述之前遇到的問題然後筆記一下,在 ASP.Net Core 中靜態的東西都會放在 wwwroot 下面基本上大家都知道
之後我會用程式動態產生一些資料對方下載或是網站呈現需要用到,大部分的檔案都會沒事,但是就遇到了 7z 不能下載
當然在IIS 下我可以調整透過 Web.Config 設定,但是如果不是呢?
[C#] ASP.NET Core 6.0 - 取得 appsettings.json 的資料兩種方法
最近因為在改專案,ASP.net 6 中,已經消失了 Startup.cs ,一切操作都在 Program.cs 中
這邊記錄一下,兩種方法讀取 appsettings.json 的值,筆記一下,看這走向應該 .Net7 不會再改了吧
應該吧...
[C#] ASP.NET Core 6.0 - 不透過 Web.Config 處理錯誤導頁 ex. 404 , 500 ...等錯誤
今天討論一下如何將客戶導向錯誤訊息,以前再寫 ASP.net Webform 時代,可以設定 Web.Config 來解處理這問題
但是現在到了 .Net Core 時代,機器不一定是跑在 IIS 上面,可能是 Linux ,所以這得處理一下
[C#] TRON(波場) 取得目前區塊高度
最近有在處理一些區塊鏈的東西,基本上是基於 Tron ,因為一些需求所以我透過程式知道目前的區塊高度
想說就筆記一下,主要知道高度是有助於送出一筆交易後,之後的高度必須要筆交易該區塊的高度高上一個數值
基本上才會是公認為已經是穩定的區塊了。
[C#] .ASP.NET Core 6.0 - 上傳多個檔案到 Server 簡單範例
今天一樣筆記一下,最近就是被踢下去寫 code 而且使用 .Net 6 翻寫 Webform
所以,遇到一些跟以前不一樣的狀況我就簡單紀錄一下,當然對很多高手來說已經是跟喝水一樣的事情
不過我就是筆記一下。
[Javascript] 關於檢查字串的 HTML 是否符合規範 ( Check the HTML string for the unclosing tag )
最近剛好朋友問我一個問題,就是因為他在後台允許讓可以下 HTML Code 存入 Database
但是,有的客戶會放入</div> 或是 </p> 簡單的說就是一些沒有收尾,或是只有開頭的 HTML 標籤
這時候當插入在前端 render 的時候,會造成問題,簡單的說就是跑版。
標籤: ASP.net , Javascript , WebService
[C#] .Net 6 - ASP.net 中處理關於 Checkbox 的一些基礎操作
今天開始要還一些基本的技術債,很久沒有寫到前端了,最近因為開發一些 .NetCore 6 ASP.net 的專案
所以接下來,應該會分享一些稍微比較麻煩的東西,以後也方便我複製貼上,可能會有點瑣碎
不過都是我再重新製作比較容易懂的範例,這篇要分享的是,前端的 CheckBox 群,如何動態產生可以被選擇的選項、如何載入預先選好的選項、還有客戶在前端選取好後送回的資料
[C#] .Net 6 - 關於跳轉發生錯誤 InvalidOperationException: Invalid non-ASCII or control character in header: 0x
最近碰到小問題,就順手筆記一下,因為以前在寫 Webform 的時候比較沒有遇到
寫 .NetCore 3.1 的時候有沒有這錯誤我忘記了,但是最近在 .Net 6 的網站應用程式中有碰到這問題
InvalidOperationException: Invalid non-ASCII or control character in header: 0x
[C#] 在 .Net 6 下 Microsoft.Extensions.DependencyInjection.IServiceCollection 的 AddLoggin, BuildServiceProvider 消失問題
最近在改寫一些東西,將 .Net Core 3.1 的專案,轉成 .Net 6 的專案,其中我有實作
Microsoft.Extensions.DependencyInjection.IServiceCollection ,但是遇到一些問題,就是 AddLogging , BuildServiceProvider 消失了
我記得我在 .Net Core 3.1 沒有這問題 VS 都會自動引用但是我再用 .Net 6 改寫時候卡了一下,所以筆記一下
[ASP.net] Webform .Net Framework 4.7 做 RegisterRoutes , Route Page
今天要來考古了,因為以前的專案要做 SEO ,所以得對一個 .Net Framework 4.7 的 ASP.net Webform 專案進行處理網址的 Route
因為其實以前沒有客戶要求基本上是不會特別去做的,但是這次因為被要求而且加上太久沒碰了就筆記一下。
[C#] .NET 6 - 把網頁轉成 PDF 存為靜態檔案下載
最近碰到一個需求 如何將HTML或URL轉換為PDF文件時,SelectPdf是一個不錯的選擇。
它是一個方便易用的.NET PDF生成套件,支持多種自定義選項和高級功能。
我測試兩套最後使用了 SelectPDF
[C#] ASP.NET Core 6.0 - 簡單實作 Razor 元件( Razor Component ) + form submit 測試
上一篇文章 ASP.NET Core 6.0 - 簡單實作 Razor 元件( Razor Component ) ,只是做簡單的 Binding 物件
這一篇文章我主要測試如果配合 form submit 後是不是一樣的好用,今天問 一下同事好像很少使用到
今天心血來潮測一下,其實還蠻好用的,這樣可以一些 重複的 code 可以被有效率的 reuse.
[C#] ASP.NET Core 6.0 - 簡單實作 Razor 元件( Razor Component )
之前大部分都在寫 WebForm 有一段 ASP.NET MVC 我沒有在專案上面使用
現在轉到 .NET CORE 下看到有一個東西叫做 Razor 元件 ,今天大概來測試一下關於 Razor Compoent 的東西
[C#] 簡單試用 HTML Agility Pack 抓取 Azure 上面的區域跟子區域
[VS] 如何在 Visual Studio 2022 中安裝 .net framework 4.5 Developer Tool
標籤: .Net , ASP.net , C# , Visual Studio
[C#] 初探 iBoxDB 關於百萬資料的測試數據
昨天聊聊有關於 iBoxDB 關於 Transaction 的操作測試 ,這一篇來聊聊關於自己測試上面的數據
一樣我使用 User 這物件,我寫入一百萬的資料試試看,然後我按照範例試試看做 index 之後測試一下數據
[C#] 初探 iBoxDB 關於 Transaction 的操作測試
上一篇文章( 初探 iBoxDB 建立資料,列出所有 Tables ,查詢資料 )簡單的說說了 iBoxDB 的一些操作
不過關於資料庫怎麼可能不去測試關於 transaction 的部分,今天就接續上篇文章 我們來測試一下修改一筆 Id 為 DONMA-ID-4 的資料
透過 throw exception 模擬如果操作失敗時候會怎樣
[C#] 初探 iBoxDB 建立資料,列出所有 Tables ,查詢資料
[C#] 字串列出所有的排列組合 Parallel For 版本
最近再寫一個東西,不過很像是大學時代在練習的題目就是有一個字串 "abc" 我要得到所有的組合
也就是 "abc" , "acb" , "bac" , "bca" , "cab" , "cba" ,也就是有 n! 的組合,目前沒有想到比較快的方法
於是就是暴力破解,反正都寫了寫下程式碼吧
[C#] .Net6 中在 Console 中呼叫 Windows Notification.
這需求主要就是有遇到,所以就才研究一下,畢竟提這需求的人很少,主要是跑 console 但是需要一個 Windows Notification 來提醒有事件發生
當然,然後執行環境是 .net6 再 Windows 裡面,我就想說應該叫一下 API 就好了,結果也是花了一點時間..T.T.. 碰到了就記錄一下吧
[GMAIL] 一個我遇到的 MX 設定狀況關於 550 5.7.1 Our system has detected that this message is likely unsolicited mail.
今天遇到一些狀況,排查且筆記一下,真的有點麻煩,因為跟官方寫的設定不太一樣導致寄信會出現
伺服器的回應如下:
550 5.7.1 [xxx.xx.xxx.xx 12] Our system has detected that this message is likely unsolicited mail.
To reduce the amount of spam sent to Gmail, this message has been blocked.
Please visit https://support.google.com/mail/?p=UnsolicitedMessageErrorfor more information. j20-20020a508a94000000b0045810194e5bsor743064edj.66 - gsmtp
[C#] 一些關於 CBOR 實作 - Server 端 C# 編碼 + 前端 Javascript 解碼
上一篇文章,我們將 Javascript 那邊的 物件透過 CBOR 編碼後又轉 base64 編碼,然後讓 Server 端將物件還原
今天我們來聊一下,如何在 Server 端傳第一個透過 CBOR 編碼後的 物件(資料) 到 前端然後透過 Javascript 來還原使用
[C#] 一些關於 CBOR 實作 - Javascript 編碼 + C# 解碼
最近因為專案關係有碰到 CBOR ( Concise Binary Object Representation ) ,關於 CBOR 是啥可以看看 這篇,對我來說是很少接觸的東西,所以大概看了一下
不過這篇沒有打算要細講解他的規格,主要是因為很多地方都說得很完整了,這篇主要偏於筆記跟實作