Webkit เป็น GUI ใน. Net / Mono


12

ฉันต้องการสร้างแอปพลิเคชันข้ามแพลตฟอร์มซึ่งจะมีเว็บไซต์ที่แอปพลิเคชันเดสก์ท็อป (Windows, iOS, Linux) จะพูดคุยกับเซิร์ฟเวอร์และทำให้ข้อมูลผู้ใช้ตรงกัน

จนถึงตัวเลือกที่ฉันเห็นคือ:

  • เขียน GUI พื้นฐานสำหรับแต่ละ 3 ระบบปฏิบัติการดังนั้นฉันจะมีรหัสฐาน 3 GUI (และระบบแบ็กเอนด์เดียว)
  • ใช้บางอย่างเช่น GTK ดังนั้นฉันจึงสามารถใช้ระบบเดียวได้พร้อมการสนับสนุนในแพลตฟอร์มที่กล่าวถึงทั้งหมด

แต่ข้อที่สามที่ฉันไม่สามารถหาข้อมูลได้มากนัก (บางทีฉันไม่ได้ค้นหาคำศัพท์ที่เหมาะสมเนื่องจากฉันยังใหม่กับ C # และ. Net) คือมีหน้าต่างที่มีอินสแตนซ์ WebKit ฝังอยู่ในตัว ซึ่งจะทำให้ฉันสามารถใช้ระบบ GUI เดียวกับที่ฉันจะใช้สำหรับเว็บไซต์ ซึ่งจะทำให้แอปไคลเอนต์และเว็บไซต์ดูใกล้เคียงกันมากที่สุดเพื่อให้ผู้ใช้คุ้นเคยกับอินเทอร์เฟซ

ตัวเลือกสุดท้ายนี้มีความน่าเชื่อถือของ WebKit หรือไม่ ฉันรู้จัก JavaScript / HTML ดีแล้วและถ้าฉันสามารถใช้ความรู้นั้นเพื่อสร้างอินเทอร์เฟซได้ นอกจากนี้ยังเป็นวิธีที่ยอดเยี่ยมในการอนุญาตให้ผู้ใช้ปรับแต่งส่วนต่อประสานกับปลั๊กอินและพวกเขาสามารถซิงค์การตั้งค่า UI ใด ๆ จากท้องถิ่นกับเว็บ


ฉันกำลังมองหา Sencha ExtJS สำหรับงานประเภทนี้ แต่ฉันยังไม่เชื่อว่านี่เป็นวิธีที่ดีที่สุดในการใช้งาน
jfrankcarr

คำตอบ:


10

ไม่เห็นสาเหตุ แต่คุณสามารถเรียกใช้ Chrome ในโหมด "windowless" แทนหรือ IE ในโหมด "hta" (เราเขียนแอปเดสก์ท็อปโดยใช้เทคโนโลยีเว็บโดยปรับใช้เป็น hta บน Windows เมื่อสิบปีที่แล้ว)

วันนี้ฉันจะทำสิ่งที่ไม่มี IE / IIS และใช้ websockets เพื่อประสบการณ์การโต้ตอบที่มากขึ้น

มีส่วนประกอบที่อนุญาตให้ webkit ฝังอยู่ในแอพ C #: ดูโพสต์นี้จาก SO (ฉันทามติคือการใช้Webkit.NET )

ฉันจะใช้องค์ประกอบ QtWebkitแทนจากนั้นคุณจะเขียนแอป 'เดสก์ท็อป' ข้ามแพลตฟอร์มที่มีน้ำหนักเบาและใช้งานได้บน Qt ข้ามแพลตฟอร์มที่ฝัง GUI เว็บของคุณไว้


อืมดูเหมือนว่านี่เป็นคำตอบที่ดี ฉันจะรอนิดหน่อยเพื่อดูว่ามีใครตีระฆังด้วยหรือไม่ก่อนทำเครื่องหมายเป็นคำตอบ แต่ Webkit.Net ดูเหมือนว่ามันอาจทำงานได้ หนึ่งในลิงค์ในคำถามที่คุณเชื่อมโยงไปยัง GitHub repo CefSharpซึ่งเขามีโครเมียมอินสแตนซ์ฝังอยู่ แม้ว่าฉันจะไม่แน่ใจว่าฉันจะต้องใช้เบราว์เซอร์ทั้งหมดหรือไม่เมื่อเทียบกับ webkit ป่วยต้องดูเพิ่มเติม
skift

สำหรับ 'วันนี้ฉันจะทำบางสิ่งโดยไม่มี IE / IIS และใช้ websockets เพื่อประสบการณ์การโต้ตอบที่มากขึ้น' ฉันต้องการใช้โมโนดังนั้นฉันจึงสามารถใช้. net และมีการสนับสนุนข้ามแพลตฟอร์มรวมทั้งสามารถโฮสต์ไซต์บนสิ่งที่ต้องการ nginx หรือ Cherokee หากพวกเขามีการสนับสนุนโมโนหรือ apache ฉันไม่รู้ IIS และ windows admin พอ แต่ฉันรู้และมีเว็บเซิร์ฟเวอร์ linux จนถึงตอนนี้ฉันจะไม่มีการโต้ตอบกับผู้ใช้แบบสดๆดังนั้นฉันอาจไม่ต้องการ websockets และการซิงโครไนซ์ฐานข้อมูลจะใช้ couchdb แม้ว่าอาจจะดูที่ websockets หรือ socket.io ในภายหลังเมื่อฉันทำสิ่งที่สูงขึ้น
skift

สำหรับผู้พัฒนาเว็บลองใช้ Linux stack แต่ Windows ก็เป็นตลาดอันดับที่สองในตลาด ฉันจะไม่สนใจโมโนด้วยเพราะมันลดลงเมื่อโนเวลล์อยู่ภายใต้ฉันบอกว่ามันเป็นเทคโนโลยีที่ตายแล้วดีกว่าที่จะยึดติดกับหนึ่งในเทคโนโลยีข้ามแพลตฟอร์มอื่น ๆ แทนที่จะให้ประสบการณ์ dev บน Linux ที่ดีกว่า การใช้การสนับสนุนแบบโมโนและการอัปเดตในอนาคตนั้นมีความเสี่ยงเล็กน้อยสำหรับรสนิยมของฉัน
gbjbaanb

ใช่มันไม่ใช่มือขวาของฉันเหมือนกัน ฉันชอบไปที่ javascript และ node.js แต่ฉันต้องเรียนรู้ c # /. net เพื่อการทำงานดังนั้นฉันจึงคิดว่าฉันอาจจะสร้างโครงงานเล็ก ๆ ขึ้นมาเพื่อช่วยในการเรียนรู้ ฉันคิดว่า. Net มีคุณสมบัติเจ๋ง ๆ ถ้าฉันทำส่วนใหญ่เป็นการพัฒนา windows และเว็บ ดังนั้นฉันจึงพยายามใช้ประโยชน์จากสิ่งที่ฉันรู้ว่าจะใช้ในที่ทำงานซึ่งเป็นการผสมผสานระหว่างเว็บและแอพเดสก์ท็อป
skift

0

ฉันทำงานกับกรอบงานแอปพลิเคชันสำหรับโครงการเช่นของคุณ มันขึ้นอยู่กับกรอบเนื้อหาของโครเมียม อนุญาตให้ใช้ GUI ของแอปพลิเคชันที่จะใช้งานกับ html / css / js / svg ฯลฯ และตรรกะของแอปพลิเคชันที่จะใช้งานใน javascript หรือ c #

เป้าหมายของฉันคือสามารถพัฒนาแอปพลิเคชันเดสก์ท็อป 'หนา' ที่มีคุณลักษณะครบถ้วนโดยใช้เทคโนโลยีเว็บซึ่งเป็นแพลตฟอร์มข้ามและไม่ต้องการฝั่งเซิร์ฟเวอร์ใด ๆ


แม้ว่าในขณะที่ฉันต้องการทำสิ่งต่าง ๆ ด้านเซิร์ฟเวอร์ (ตามที่ผู้ใช้สามารถซิงค์ข้อมูลไปยังเซิร์ฟเวอร์กลางและใช้แอปออนไลน์) แต่ฉันสนใจที่จะรู้ว่าคุณใช้โครเมียมอย่างไร สำหรับฉันแล้วเวอร์ชันเดสก์ท็อปจะเป็นสำเนาของอะไรบนเซิร์ฟเวอร์เพื่อให้ทำงานได้เร็วขึ้นและไม่ต้องรอการอัปเดตและสามารถใช้งานออฟไลน์ได้
skift
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.