บันทึกการปรับ format data ที่ใช้รับส่งผ่าน TCP จาก BinaryFormatter มาเป็น JSON แทน

เรื่องมีอยู่ว่ามี Code เก่าอยู่ชุดนึงที่ใช้ TCPClient+TcpListener ส่ง Data ระหว่าง App กัน โดยก่อนจะส่งใช้ตัว BinaryWriter + BinaryFormatter อย่างที่หลายคนน่าจะทราบกันตัว BinaryFormatter จะถูกเอาออกใน .NET8 ถาวร เนื่องจากเรื่องของความปลอดภัย ตอนนี้ยังใช้ได้อยู่นะ แต่เจ็บแล้ว ทำทีเดียวให้จบเลยดีกว่า และไม่อยากมาแก้ไขเยอะ เพราะยังมีบางส่วนทียังเป็น .NET 4.7.2 และไป .NET6 ต่อไม่ได้อย่าง VSTO ด้วย ภาพรวมเป็นตามนี้เลยครับ Code เดิม – Client Snippet – Server Snippet ตอนนี้อย่างน้อย Class หลักๆของ Protocol TCP อย่างตัว TcpClient Class / TcpListener และ IPAddress ยังได้ไปต่ออยู่ครับ เหลือแต่ BinaryFormatter เท่านั้น Code ใหม่ ลองมาปรับใช้ตัว JSON แทน มันมีหลาย Case ที่ต้อง Handle เช่น ตัว JSON เราสามารถเขียน Contract ตอน Serialize ได้ครับ เขียน Contract และทดสอบครับ จะได้เป็น Helper Class ประมาณนี้ครับ – Client Code Snippet – Server Code Snippet จบไปแล้วการการแก้ปัญหาตัว BinaryFormatter ที่แบบว่าตัวมันเองสารพัดประโยชน์จริงๆ นอกจาก TCP แล้ว จริงๆ มันใช้กับ REST ได้ด้วย แต่ Client…