10 สิงหาคม 2556

Silverlight *.ClientConfig แก้ไขโดยไม่ต้องแก้ code build - deploy ใหม่

Silverlight *.ClientConfig ใน IIS

เป็นไฟล์ xml ไว้กำหนดค่าต่างๆ รวมทั้ง server IP address ของ wcf web services สำหรับติดต่อฐานข้อมูล
แต่พอเราเอาไป deploy ใน IIS แล้วจะเห็นแต่ไฟล์ /ClientBin/{app.name}.xap 

Solution

ที่จริงแล้วไฟล์ .xap มันคือ zip package นี่เอง

1. เปิดหาไฟล์ /ClientBin/{app.name}.xap เปลี่ยนนามสกุล (file extension) เป็น .zip 

2. extract ด้วยโปรแกรมจัดการ zip (7zip, winrar, peazip) ก็จะเห็นไฟล์ *.dll และ *.ClientConfig แล้ว

3. edit แก้ไขค่าในไฟล์ .clientconfig เสร็จแล้ว save 

4. zip กลับเข้าไปใหม่ (.zip format) แล้วเปลี่ยน file extension to .xap เหมือนเดิม

ปล. ไม่ต้อง restart IIS แต่ในฝั่ง client ต้อง delete browser cache ด้วยเพราะ xap จะถูก cached

7 สิงหาคม 2556

Visual Studio เปลี่ยน MVC web application ให้เป็น Class Library ด้วย ProjectTypeGuids

วันนี้วุ่นวายกับการสร้าง web app ใน visual studio

เปลี่ยนโปรเจค MVC web application ให้เป็น Class Library
เปลี่ยน asp.net web site ต้องเปลี่ยนเป็น web application

VS รู้ได้ยังไงว่า project เราเป็น library, mvc หรือ web app ธรรมดา มันอยู่ในไฟล์ *.csproj นี่เอง


tag ProjectTypeGuids เป็นตัวบอกชนิดของโปรเจคใน VS แกะมาจาก registry path

HKEY_CURRENT_USER\SOFTWARE\Microsoft\VisualStudio\10.0_Config\Projects
ถ้าลง visual studio สำหรับทุก users จะอยู่ใน HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\10.0\Projects

หรือตามหา google ก็จะได้ลิสมาบางอัน
Windows (C#)           {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
Windows (VB.NET)       {F184B08F-C81C-45F6-A57F-5ABD9991F28F}
Windows (Visual C++)   {8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}
Web Application        {349C5851-65DF-11DA-9384-00065B846F21}
Web Site               {E24C65DC-7377-472B-9ABA-BC803B73C61A}
WCF                    {3D9AD99F-2412-4246-B90B-4EAA41C64699}
WPF                    {60DC8134-EBA5-43B8-BCC9-BB4BC16C2548}
XNA (Windows)          {6D335F3A-9D43-41b4-9D22-F6F17C4BE596}
XNA (XBox)             {2DF5C3F4-5A5F-47a9-8E94-23B4456F55E2}
XNA (Zune)             {D399B71A-8929-442a-A9AC-8BEC78BB2433}
Silverlight            {A1591282-1198-4647-A2B1-27E5FF5F6F3B}
ASP.NET MVC            {F85E285D-A4E0-4152-9332-AB1D724D3325}
ASP.NET MVC 4          {E3E379DF-F4C6-4180-9B81-6769533ABE47}
Test                   {3AC096D0-A1C2-E12C-1390-A8335801FDAB}
Solution Folder        {2150E333-8FDC-42A3-9474-1A3956D46DE8}      
อยากแก้โปรเจคเราให้เป็น Type ไหนก็ใส่ Guid เข้าไปเลย ยกเว้น Class Library จะไม่มี ProjectTypeGuids ลบ tag นี้ทิ้งไป csproj เราก็จะกลายเป็น Library ธรรมดาทันที