VSS 2012 VB.NET เวลา add module แล้วมันเอ๋อๆ น่ะแจ่ะ พวกเธอเป็นอย่างนี้หรือเปล่าจ้ะ
ส่วนนี้เป็นรูปปลากรอบ จอที่ถูกยิง (Screen short ตึ่งโป๊ะ)
แล้วจะมี side effect ด้วยนะ คือ syntax ใน module เนี่ยจะ error แหลกราญ
ขีดแดงๆจะมาเพียบ แต่มัน build แล้วรันผ่านนะเออ
อ้อ อีกอย่างผมขึ้นวันที่ล่าสุดแล้ว (ตึ่งๆโป๊ะ update) เป็น vss 2012 update 4 นะครัช!
Date :
2015-02-12 14:34:51
By :
BIG BAD DOG
ไม่เคยเจอครับ ผ่านตลอด ไม่ว่าจะใช้ภาษาอะไรในการพัฒนาก็ตาม
Date :
2015-02-12 16:16:12
By :
หน้าฮี
ปล.ที่ต้องเป็น Module เพราะแยกเขียนพวก Static method กับ Extension method
อันนี้ผมไม่รู้จักและไม่เคยใช้ มันคืออะไร? ครับ
Date :
2015-02-12 16:19:35
By :
หน้าฮี
คือความจำเป็นที่ต้องใช้ module ใน vb.net นั่นน่ะครับ เพราะจะแยก code แบบ static เก็บมัดรวมไว้
code พวกนี้เรียกใช้ได้เลยโดยไม่ต้องสร้าง instance ใน memory แบบ class ปกติ ให้เป็นภาระของระบบ
ซึ่งจะได้ทั้งความเร็วและขนาดที่รัดรูปกำลังดีครับ
เคยใช้ VSS 2008 ก็แอด module แล้วก็เรียกใช้จบ ไม่ต้องไป 1. 2. 3. อะไรตามที่ว่ามาข้างตันให้พิรี้พิไร
มาเจ้าตัวนี้ VSS 2012 ทีแรกเจอเข้าไปนี่ก็งงสิครับ จนแกะๆแงะๆไปมาเจอวิธีแก้นั่น
ตอนนี้มันก็ run ได้ แต่มันก็งง เออ feature ใหม่หรอ แล้วมันใช่หรอ มันควรจะง่ายขึ้นไม่ใช่หรอ
เลยเอามาโพสแสดงให้ปรากฏหากไม่ใช่เรื่องประหลาดก็น่าจะมีเพื่อนร่วมชะตากรรมอยู่บ้าง
แล้วที่อยากทราบจริมๆ คือสาเหตุ มันมาจากไหน อะไร ยังไง จะได้เอาไว้ยัดใส่กลีบขี้เลื่อยในหัวบ้างอะไรบ้าง
Code (VB.NET)
'Method ของ Class ปกติ
Public Class LetsShine
Public Sub New()
End Sub
Public sub Tada()
Print "Tadaaaa!"
End Sub
End Class
'USAGE
Dim Foo As New LetsShine ()
Foo.Tada()
'Static method ของ Module ปกติ
Public Module BeShineWithMe
Public Sub ShineAnywhere()
Print "Wink!"
End Sub
End Module
'Usage
'At any part of code
ShineAnyWhere()
ปล.ถึงแม้ว่า class ทั่วไปจะใช้ Public Shared Sub/Function ได้แต่ก็ยังต้องมี Instance แบบ Static อยู่ดี
ไม่เหมือน Module ที่อย่างจะถูก Init อัตโนแม้ดโดยกลไกของ IL Code ใน C# ก็มีแล้วเห็นได้ชัดเจนกว่าด้วยนะครัช
ส่วน Extension Method นั้น สร้างมาเพื่อ LINQ เพราะ LINQ มันเขียนได้ 2 แบบคือแบบ Query กับ Extended น่ะครัช
ประวัติการแก้ไข 2015-02-12 16:50:04
Date :
2015-02-12 16:47:02
By :
BIG BAD DOG
ที่ greatfriend นั่นเคยๆไปถามหลายเรื่องครับ แต่เข้าใจว่าผมหัวไม่ถึงผมไม่ค่อยเข้าใจ
บางทีก็โดนให้ไปอ่านหนังสือเพิ่มซึ่งผมก็คิดในใจมันเกี่ยวหรอวะ?
อย่างไปถามเรื่อง reflection ของ class อะไรสักอย่าง
เวลาส่งข้อมุลผ่านไปทาง message queue ของ windows หรืออะไรประมาณนี้แหละ
แล้วท่านๆให้ไปอ่าน design pattern ต้องเข้าใจว่าเป็น MVC กันหลายท่าน ปอโท ก็หลายคน
ผมว่าผมไปอ่าน บอร์ด - บล้อก - ฟอรั่ม ของฝรั่งผมเข้าใจง่ายกว่านะ
สรุปคือถ้าไม่ใช่เรื่องที่ลำบากหรือติดจริมๆ ผมไม่ไปรบกวนท่านๆแถวนั้นหรอก จะบอกให้ .... นะครัช
ประวัติการแก้ไข 2015-02-12 17:38:29 2015-02-12 17:39:46 2015-02-12 17:41:51
Date :
2015-02-12 17:36:11
By :
BIG BAD DOG
@DOG{B}
ปัญหาของคุณผมเดาว่า
1. คุณสร้าง Web Site และเขียนโค๊ด 1., 2., 3., ... (Menu File --> New Website)
2. คุณใช้ Name Space XXX
สิ่งที่ผมทำ (ผมใช้ VS2010/VB.NET เป็นหลัก)
1. ผมสร้าง Empty Solution ขึ้นมา (Menu File --> Other Project Type)
2. ผมสร้าง Web Project และเขียนโค๊ด 1., 2., 3., ... (Menu File --> New Project)
---- 1 Project, 2 Project, 3 Project, ... ภายใต้ข้อที่ 1. (อย่างน้อยฯ >5 ขึ้นไปครับ)
3. ผมไม่ได้ใช้ Name Space
---- Name Space ของ VB.NET มันไม่สมบูรณ์ (ผมรู้อยู่เต็มอก) ซึ่งต่างกับ C#
Date :
2015-02-13 04:20:10
By :
หน้าฮี
4. Sourcecode ของผมไม่ได้วางเอาไว้ในโฟล์เดอร์ App_Code (ผมไม่ใช้)
ปล. ผมมีเพื่อนสนิทชื่อ นาย/นางสาว/นาง "ปัญหาและอุปสรรค"
Date :
2015-02-13 04:34:51
By :
หน้าฮี
จาก #NO 11 นั่นคือเหตุผลว่า ทำไมผมถึงไม่ใช้ Name Space
คุณลองแบบนี้ก็ได้ สร้าง DLL ขึ้นมา 2 ตัว อาจจะมี 2-3 Property
ตัวที่ 1. ลองใช้ Name Space
ตัวที่ 2. ไม่ต้องใช้ Name Space
โหลด DLL 2 ตัวนี้ ขึ้นมาแบบ runtime
--- คุณลองเข้าถึง Property นั้นฯ โดยใช้ System.Reflection ผมคิดว่าคุณน่าจะเห็นข้อแตกต่าง
ปล. อีกนานกว่าที่ผมจะเปลี่ยนไปใช้งาน VS version 2012 หรือสูงกว่า
Date :
2015-02-13 14:25:00
By :
หน้าฮี
Load balance : Server 04