.Net constants, Settings.settings, Resources.resx

ไม่รู้คนอื่นเป็นหรือเปล่า แต่เรามีความสับสนในการกำหนดค่าต่างๆ ในโปรแกรม ไม่รู้ว่าควรจะกำหนดยังไงดี

  • กำหนดเป็นค่าคงที่ใน Code
  • กำหนดใน Settings.settings
  • กำหนดใน Resources.resx
ก็ไปอ่านเจอบทความหนึ่ง ซึ่งรู้สึกว่าอ่านแล้วกระจ่างมาก เลยแปลมาให้กัน สำหรับใครที่อยากอ่านต้นฉบับดูที่ที่ลิงค์ท้ายบทความค่ะ

เค้าบอกว่าเกณฑ์ในการเลือกว่าควรจะกำหนดค่าอะไรไว้ยังไงมีดังนี้
  1. ถ้าเป็นค่าที่ไม่ได้ให้ผู้ใช้แก้ไข และเกี่ยวข้องกับ class ใด class หนึ่งโดยเฉพาะ ให้กำหนดเป็นค่าคงที่ใน class นั้นๆ
  2. ถ้าเป็นค่าที่ไม่ได้ให้ผู้ใช้แก้ไข แต่เกี่ยวข้องกับหลาย class ให้กำหนดเป็นค่าคงที่ใน class กลางของโปรเจค
  3. ถ้าเป็นค่าที่ให้ผู้ใช้แก้ไขได้ ให้กำหนดใน Settings.settings.
  4. ถ้าเป็นค่าที่ต้องแก้ไขโดยขึ้นกับ locale ให้กำหนดใน Resources.resx
  5. ถ้าเป็นค่าที่ต้องเปลี่ยนแปลงตามกลุ่ม (เข้าใจว่า เช่นค่าที่กำหนดสำหรับแต่ละหน้าจอ เหมือนที่เรากำหนด label ในหน้าจอ) ก็ให้กำหนดใน Resource.resx ตามโฟลเดอร์
และในบทความก็สรุปว่า Resources.resx จะกำหนดได้ก่อน build เท่านั้น ผู้ใช้ไม่สามารถเปลี่ยนค่าได้ ในขณะที่ Settings.settings สามารถแก้ได้โดยผู้ใช้ แต่ Settings.settings จะไม่เปลี่ยนตาม locale เหมือนกับ Resources.resx

References:

No comments:

Post a Comment