นี่คือ ASP.NET 8 ขั้นพื้นฐานที่ยังไม่เสร็จและแอปพลิเคชันเว็บ Angular 17 แอพนี้ขึ้นอยู่กับเทมเพลตโครงการ 'Angular และ ASP.NET Core' ใน Visual Studio 2022 เป้าหมายคือการใช้ Devexpress 'Devextreme UI Template Template แอปพลิเคชันเชิงมุมและใช้เป็นฝั่งไคลเอ็นต์ของแอปพลิเคชัน ASP.NET เพื่อแสดงแอพธุรกิจที่ดูดี (LOB)
ฉันสังเกตเห็นมากที่สุดถ้าไม่ใช่แอพ ASP.NET ทั้งหมดใน GitHub ขาด UI ใด ๆ หรือใช้ UI ที่เรียบง่ายมาก ฉันตัดสินใจว่าใครบางคนควรแสดง UI ที่ดี
UI ของ DevExpress ดั้งเดิมได้รับข้อมูลทั้งหมดจากบริการเว็บของ DevExpress ฉันคัดลอกและแก้ไขเวอร์ชันเชิงมุมเพื่อให้ทำงานเป็นส่วนหนึ่งของแอพ ASP.NET เป็นส่วนหนึ่งของเว็บไคลเอ็นต์ ตอนนี้ส่วน 'รายชื่อผู้ติดต่อ' ได้รับข้อมูลจากส่วนหลัง ASP.NET ซึ่งได้รับจากฐานข้อมูล เป้าหมายคือการเปลี่ยนรูปแบบเดียวกันสำหรับส่วนที่เหลือของ UI แต่ฉันหยุดสั้น ๆ และย้ายไปอยู่ที่ Blazor ด้านหลังจะขึ้นอยู่กับรูปแบบสถาปัตยกรรมที่สะอาดและการไหลเวียนของจุดสิ้นสุดเดียวกัน -> บริการ -> ที่เก็บ -> ฐานข้อมูลสามารถนำไปใช้กับแอปพลิเคชันที่เหลือโดยใช้การประชุมเดียวกัน
แอปพลิเคชันไม่ได้ใช้การรับรองความถูกต้องการอนุญาตการเข้าสู่ระบบคอนเทนเนอร์ ฯลฯ หากต้องการใช้คุณสมบัติดังกล่าวโปรดดู Jasontaylordev/Cleanarchitecture สำหรับแรงบันดาลใจและการใช้งาน
UI นั้นขึ้นอยู่กับ Devextreme ของ DevExpress ซึ่งเป็นชุดองค์ประกอบ UI ที่โดดเด่นและขัดเงาและแกลเลอรี่สาธิตเป็นตัวอย่างที่ดี ฉันขอแนะนำเป็นอย่างยิ่ง DevExtreme ฟรีสำหรับแอปพลิเคชันที่ไม่ใช่เชิงพาณิชย์และต้องการใบอนุญาตสำหรับแอพเชิงพาณิชย์
คำแนะนำสำหรับการตั้งค่าฐานข้อมูล:
- ขั้นตอนแรกคือการตั้งค่าฐานข้อมูล แอพใช้ SQL Server หากคุณใช้ SQL Server 2019 หรือสูงกว่าคุณสามารถกู้คืนฐานข้อมูลจากไฟล์สำรองข้อมูล dxfullapp.bak ในโฟลเดอร์ 'MISC_FILES' ในโครงการโครงสร้างพื้นฐาน
- อื่นเรียกใช้สคริปต์ dxfullapp.sql ที่อยู่ในโฟลเดอร์ 'misc_files' เพื่อสร้างและเติมฐานข้อมูลด้วยข้อมูล แก้ไขไฟล์หากจำเป็นเพื่ออัปเดตค่าชื่อไฟล์ไปยังเส้นทางที่เหมาะสมของการติดตั้ง SQL Server ของคุณในระบบของคุณ
- อัปเดตค่า defaultConnectionString หากจำเป็นในไฟล์ AppSettings.json ในโครงการเซิร์ฟเวอร์
คำแนะนำสำหรับการรันแอพ:
- (มีปัญหาที่การแก้ปัญหาใช้เวลาหลายนาทีในการโหลดใน VS 2022 ยังไม่แน่ใจว่าเป็นปัญหาในท้องถิ่นหรือไม่)
- หลังจากตั้งค่าฐานข้อมูลและสตริงการเชื่อมต่อทำให้โครงการเซิร์ฟเวอร์เป็นโครงการเริ่มต้น เรียกใช้แอพและจะเปิดเบราว์เซอร์ด้วยหน้าเว็บที่โหลดพร้อมกับผู้ติดต่อ หน้าเริ่มต้นจะแสดงหน้าหักจากนั้นรีเฟรชอัตโนมัติและแสดงผลอย่างถูกต้อง สิ่งนี้ควรได้รับการแก้ไข
รายการทำ (ปัจจุบันไม่มีแผนจะเสร็จ):
- แปลง UI ทั้งหมดเพื่อใช้ asp.net back end แทนจุดสิ้นสุดของ DevExpress
- สร้าง DTO ทั้งหมดเพื่อให้บริการลูกค้าและแมปเอนทิตีให้กับพวกเขา (ใช้ Automapper หรือ Mapster หากต้องการ)
- เพิ่มหน่วยการใช้งานการรวมและการทดสอบปลายจนจบ
- UI ไม่ได้ทำการอัปเดตใด ๆ เช่นบันทึกการแก้ไขหรือสร้างวัตถุใหม่ ใช้สิ่งเหล่านั้น
- เพิ่มการรับรองความถูกต้องการอนุญาตการบันทึกการตรวจสุขภาพ .. ฯลฯ
- ลองใช้ APIs ขั้นต่ำแทน API ที่ใช้คอนโทรลเลอร์
- ไคลเอนต์เชิงมุมในขณะที่อยู่ที่รุ่น 17 มันไม่ได้ใช้คุณสมบัติเฉพาะของเวอร์ชันใด ๆ ทั้งหมดที่ฉันทำคือแปลงจากเวอร์ชัน 15 ถึง 17
ทำไมต้อง devextreme:
- มันมีส่วนประกอบ UI ที่มีคุณภาพสูงและสามารถขยายได้หลายสิบชิ้นซึ่งสนับสนุนเชิงมุม, ตอบสนอง, vue, juery และจาวาสคริปต์ธรรมดา
- การสนับสนุนทางเทคนิคที่ยอดเยี่ยมและเอกสารประกอบ ออนไลน์ด้วยการสาธิตแบบเรียลไทม์ที่สามารถปรับแต่งได้ซึ่งแสดงคุณสมบัติของแต่ละองค์ประกอบ
- ตารางข้อมูลที่ตอบสนองและมือถือที่ตอบสนองได้ ราคาของห้องสวีททั้งหมดน้อยกว่าราคาของส่วนประกอบ UI เท่านั้นที่ได้รับความนิยมเท่านั้น
- ในขณะที่มันมีค่าใช้จ่ายเงินในระยะยาวมันจะช่วยให้คุณประหยัดเงินเป็นจำนวนมากโดยการลดค่าใช้จ่ายในการพัฒนาและเวลาสนับสนุนเทียบกับการใช้ส่วนประกอบ UI โอเพ่นซอร์สที่ทำงานและดูไม่สอดคล้องกัน ใช้ส่วนประกอบที่ บริษัท ทำมาหากินแทนที่จะพึ่งพาผู้พัฒนาหรือเวลาว่างของชุมชน
- PS: ฉันไม่ได้เป็นพันธมิตรกับ Devexpress นอกเหนือจากการเป็นลูกค้าที่มีความสุข ฉันแค่แสดงความคิดเห็นส่วนตัวของฉัน
- สนุกกับการเขียนโค้ด!