ฉันมีแอปพลิเคชันบริการ Windows ที่มีอยู่ซึ่งใช้ .NET Framework 4.5 และต้องการเพิ่มอินเทอร์เฟซผู้ใช้สำหรับการกำหนดค่าและการวินิจฉัย
ใน Windows Forms หรือ WPF บริการจะส่งข้อมูลผ่านการเชื่อมต่อ TCP (.NET Remoting หรือ WCF) ไปยังไคลเอนต์ แต่จะต้องมีการกำหนดค่าเพิ่มเติมทั้งบนไคลเอนต์หรือฝั่งเซิร์ฟเวอร์และยังต้องการบริการและไคลเอนต์ให้เหมือนกัน ระดับความเข้ากันได้ ซึ่งในกรณีที่เลวร้ายที่สุดหมายถึงลูกค้าหลายรายสำหรับบริการที่หลากหลาย
ฉันมีแนวคิดที่จะรวมบริการและอินเทอร์เฟซผู้ใช้เข้าด้วยกันในแอปพลิเคชันเดียวโดยใช้ ASP.NET5 Web Application ใหม่ เมื่อบริการ Windows เริ่มต้น อันดับแรกฉันต้องการเริ่มต้นเว็บเซิร์ฟเวอร์ จากนั้นจึงเริ่มบริการที่เหลือ ดังนั้นจึงเป็นไปได้ที่ผู้ใช้จะโต้ตอบกับบริการโดยไม่ต้องติดตั้งซอฟต์แวร์เพิ่มเติมใดๆ เว็บแอปพลิเคชันและบริการ Windows ควรทำงานใน AppDomain เดียวกัน เพื่อให้ฉันสามารถเปลี่ยนออบเจ็กต์ในส่วนติดต่อผู้ใช้และบริการสามารถใช้งานได้ทันที
จนถึงตอนนี้ ฉันเล่นกับ Console Application ใหม่ (dnx451) มาบ้างแล้วและโฮสต์ผ่าน WebHostBuilder และมีเพจที่ใช้งานได้ แต่ฉันไม่คิดว่านั่นเป็นวิธีแก้ปัญหาที่ฉันกำลังมองหา ฉันได้รับผลลัพธ์ของโครงการและไฟล์ cmd เพื่อเริ่มเซิร์ฟเวอร์
ดังนั้นคำถามแรกของฉันคือ: มีการใช้งาน WebHostBuilder สำหรับ .NET 4.5 ที่เทียบเท่าเพื่อรันเว็บไซต์ในโครงการ Visual Studio แบบดั้งเดิมหรือไม่
ความคิดที่สองของฉันคือการเรียกใช้บริการภายใน IIS โดยสมบูรณ์ ดังนั้นฉันจึงมีเว็บเพจที่โฮสต์ฟังก์ชันการทำงานของบริการที่มีอยู่ แต่ฉันไม่ทราบถึงความแตกต่างระหว่างแอปพลิเคชันใน IIS และบริการ Windows แล้ว ASP.NET 4.6 ในกรณีนี้ล่ะ? เพราะฉันคิดว่าฉันจะต้องแปลงไลบรารีที่มีอยู่ให้เป็นไลบรารีคลาส ASP.NET5 ใหม่ (แพ็คเกจ)
ความเป็นไปได้สุดท้ายที่ฉันคิดได้คือการเผยแพร่เว็บแอปพลิเคชันไปยัง IIS และบริการเป็นบริการ Windows และสื่อสารผ่าน WCF NamedPipes เช่นเดียวกับที่ฉันทำกับแอปพลิเคชัน WPF หรือ Windows Forms
สรุปว่ามีแผนอะไรที่จะสนับสนุนแนวคิดแรกของฉันหรือฉันต้องเลือกอย่างใดอย่างหนึ่ง และตัวเลือกไหนน่าจะดีที่สุด?