คำถามติดแท็ก asp.net-mvc

ASP.NET MVC Framework เป็นเฟรมเวิร์กแอปพลิเคชันเว็บของ Microsoft ที่ใช้รูปแบบ model-view-controller (MVC)

2
. NET MVC สถาปัตยกรรมโครงการ / ชั้น
เมื่อวางแผนสถาปัตยกรรมสำหรับเว็บแอ็พพลิเคชัน MVC ขนาดกลางขนาดใหญ่คุณจะใช้เลเยอร์ให้เป็นแบบแยกย่อยได้มากที่สุดและง่ายต่อการทดสอบอย่างไร (โดยทั่วไปปฏิบัติตามแนวทางปฏิบัติที่ดีที่สุด) สมมติว่าฉันใช้รหัสก่อนเพื่อเข้าถึงข้อมูลของฉัน ฉันต่อสู้กับสิ่งที่จะกำหนด "ตรรกะทางธุรกิจ" เป็นและวิธีที่มันหมายถึงการโต้ตอบกับชั้นข้อมูล ยกตัวอย่างเช่นแอปพลิเคชันการขายยานพาหนะตรรกะทางธุรกิจจะเป็นคลาสที่ทำงานเช่นการคำนวณวงภาษีสำหรับยานพาหนะที่กำหนดเปรียบเทียบสถิติไมล์ต่อแกลลอน ฯลฯ หรือไม่ สำหรับองค์กรธุรกิจ (เช่นรถยนต์รถตู้รถจักรยานยนต์) ฉันจะใส่สิ่งเหล่านี้ในชั้นข้อมูลพร้อมกับDataContextชั้นเรียนของฉัน นอกจากนี้สิ่งที่จะเป็นตรรกะของแอปพลิเคชันซึ่งตรงข้ามกับธุรกิจ - ฉันคาดเดาสิ่งต่าง ๆ เช่นการตรวจสอบการป้อนข้อมูลเซสชัน / ผู้ใช้? ตัวอย่างเช่นตัวควบคุมรถอาจส่งคืนผลลัพธ์การกระทำ / มุมมองที่แสดงรายการรถยนต์สิบอันดับแรกที่กรองตามประเภทและ mpg ที่ดีที่สุด ดังนั้นสมมติว่าฉันมีICarRepository'carRepo' ฉีดเข้าไปในคอนโทรลเลอร์ของฉัน (โดยใช้รูปแบบพื้นที่เก็บข้อมูล / DI) ฉันกรองรถยนต์ของฉันจากพารามิเตอร์วิธีการกระทำเช่นvar cars = carRepo.getCarsByType("hatchback"); ดังนั้นฉันจึงเก็บความรู้การเข้าถึงข้อมูลออกจากตัวควบคุมของฉันโดยใช้ที่เก็บตอนนี้เพื่อให้ตรรกะทางธุรกิจออกจากตัวควบคุมโดยใช้รูปแบบโดเมน - var result = new MpgCalculator (cars); - สมมติว่าฉันต้องการคลาสเครื่องคิดเลขเพราะมันต้องใช้ตรรกะเพิ่มเติมเพื่อคำนวณประสิทธิภาพการใช้เชื้อเพลิงที่ดีที่สุดมากกว่าแค่การโหลด / กรองเอนทิตีจาก DB ดังนั้นตอนนี้ฉันมีชุดข้อมูลสำหรับมุมมองของฉันในการเรนเดอร์ที่ใช้ที่เก็บเพื่อดึงข้อมูลจากเลเยอร์การเข้าถึงข้อมูลและวัตถุเฉพาะโดเมนเพื่อประมวลผลและดำเนินงานที่เกี่ยวข้องกับธุรกิจในข้อมูลนั้น ฉันทำผิดพลาดที่นี่ …

3
Entity Framework Entity - ข้อมูลบางอย่างจากบริการบนเว็บ - สถาปัตยกรรมที่ดีที่สุด?
ขณะนี้เรากำลังใช้ Entity Framework เป็น ORM ในเว็บแอปพลิเคชั่นไม่กี่แห่งและจนถึงตอนนี้มันเหมาะกับเราและข้อมูลทั้งหมดของเราจะถูกเก็บไว้ในฐานข้อมูลเดียว เราใช้รูปแบบพื้นที่เก็บข้อมูลและมีบริการ (โดเมนเลเยอร์) ซึ่งใช้สิ่งเหล่านี้และส่งคืนเอนทิตี EF โดยตรงไปยังตัวควบคุม ASP.NET MVC อย่างไรก็ตามข้อกำหนดได้เกิดขึ้นเพื่อใช้ API ของบุคคลที่สาม (ผ่านบริการบนเว็บ) ซึ่งจะให้ข้อมูลเพิ่มเติมที่เกี่ยวข้องกับผู้ใช้ในฐานข้อมูลของเรา ในฐานข้อมูลผู้ใช้ในพื้นที่ของเราเราจะจัดเก็บ ID ภายนอกซึ่งเราสามารถมอบให้กับ API เพื่อรับข้อมูลเพิ่มเติม มีข้อมูลค่อนข้างน้อย แต่เพื่อความเรียบง่ายหนึ่งในนั้นเกี่ยวข้องกับ บริษัท ของผู้ใช้ (ชื่อผู้จัดการห้องชื่อตำแหน่งงาน ฯลฯ ) ข้อมูลนี้จะถูกใช้ในสถานที่ต่าง ๆ ทั่วทั้งเว็บแอปของเราซึ่งต่างจากการใช้งานในที่เดียว ดังนั้นคำถามของฉันคือที่ที่ดีที่สุดในการเติมและเข้าถึงข้อมูลนี้ที่ไหน เนื่องจากมีการใช้งานในสถานที่ต่าง ๆ จึงไม่เหมาะสมที่จะดึงข้อมูลมาใช้เป็นหลักในทุกที่ที่เราใช้ในเว็บแอปพลิเคชัน - ดังนั้นจึงเหมาะสมที่จะส่งคืนข้อมูลเพิ่มเติมนี้จากเลเยอร์โดเมน ความคิดเริ่มต้นของฉันคือการสร้างคลาสโมเดล wrapper ซึ่งจะมีเอนทิตี EF (EFUser) และคลาส 'ApiUser' ใหม่ที่มีข้อมูลใหม่ - และเมื่อเราได้รับผู้ใช้เราจะได้ EFUser …

4
ในการทดสอบหน่วยเหตุใดฉันจะสร้างที่เก็บสองครั้ง
เมื่อวันก่อนฉันอ่านเกี่ยวกับการทดสอบหน่วยเล็กน้อยและฉันเห็นตัวอย่างที่ผู้คนสร้างส่วนต่อประสานที่เก็บ (เช่นIExampleRepository) จากนั้นสร้างที่เก็บจริง ( public class ExampleRepository : IExampleRepository) และที่เก็บที่จะใช้สำหรับการทดสอบหน่วย ( FakeExampleRepository : IExampleRepository) ในIExampleRepositoryพวกเขาใช้วิธีการเดียวกันกับในExampleRepositoryแต่ด้วยคำสั่ง Linq ที่แตกต่างกัน อะไรคือวัตถุประสงค์ตรงนี้? ฉันคิดว่าส่วนหนึ่งของการทดสอบหน่วยของคุณคือตรวจสอบให้แน่ใจว่าวิธีการทำงานถูกต้องหรือไม่ แต่เมื่อฉันใช้แบบสอบถามที่แตกต่างกันสองข้อคำถามหนึ่งสำหรับ 'จริง' และอีกคำถามหนึ่งในการทดสอบการทดสอบมีความรู้สึกมากเพียงใด

1
วิธีการสร้างเลเยอร์บริการที่ดีใน ASP.NET?
ฉันได้ดูคำถามเทคโนโลยีการสร้างเลเยอร์บริการที่ดี แต่ฉันมีคำถามบางอย่างเกี่ยวกับเรื่องนี้ที่ฉันต้องการความช่วยเหลือ ก่อนอื่นข้อมูลเกี่ยวกับสิ่งที่ฉันมีสำหรับความต้องการ ขณะนี้เรามีแอปพลิเคชั่นเว็บจำนวนมากที่พูดคุยกันในแบบแมงมุมใยแมงมุม (ทั้งหมดพูดคุยกันในลักษณะสับสนผ่านเว็บเซอร์และฐานข้อมูล) เราต้องการเปลี่ยนแปลงสิ่งนี้เพื่อให้แอปพลิเคชันทั้งหมดผ่านเลเยอร์บริการที่เราสามารถทำงานได้มากขึ้นด้วยแคชและแค็ปซูลฟังก์ชั่นทั่วไปและอีกมากมาย เราต้องการให้เลเยอร์นี้มี Web API เพื่อให้ลูกค้าบุคคลที่สามสามารถใช้ข้อมูลจากบริการได้ ปัญหาที่ฉันเห็นคือถ้าเราสร้างเลเยอร์บริการด้วยพูด MVC4 Web API เราไม่จำเป็นต้องสื่อสารระหว่างแอปพลิเคชันที่ใช้ webAPI ซึ่งหมายความว่าเราต้องสร้าง URL และใช้ JSON / Xml ที่ไม่ได้เสียงที่มีประสิทธิภาพเกินไป ฉันคิดว่าวิธีที่ดีกว่านี้คือการทำงานกับเอนทิตีและ WCF เพื่อสื่อสารระหว่างแอปพลิเคชัน แต่ถ้าอย่างนั้นเราอาจจะสูญเสียเวทย์มนตร์ Web API? ดังนั้นคำถามคือหากมีวิธีการใช้เลเยอร์บริการทั้ง Web API (JSON / XML) และเป็นเลเยอร์บริการแบ็คเอนด์ที่มีเอนทิตี้มากกว่า หากเราถูกบังคับให้ใช้ 2 ชั้นบริการที่แตกต่างกันเราอาจต้องทำซ้ำฟังก์ชั่นบางอย่างและสิ่งเลวร้ายอื่น ๆ หวังว่าคำถามจะชัดเจนเพียงพอและโปรดถามหากคุณต้องการข้อมูลเพิ่มเติม

3
พื้นที่เก็บข้อมูลจำเป็นต้องใช้อีกต่อไปใน ASP.net 5 และ EF7 หรือไม่
ฉันโพสต์คำถามเกี่ยวกับ GitHub ให้กับทีม EF ฉันได้รับคำตอบว่าจะเป็นการดีกว่าถ้าถามคำถามนี้ที่นี่ดังนั้นฉันจะคัดลอกและวางไว้ที่นี่เนื่องจากเราเป็นลิงก์เพื่อให้คนอื่นเห็นการตอบกลับใน GitHub ไม่กี่ครั้ง คำถาม: ฉันกำลังทำการวิจัยและมีคนชี้ให้เห็นว่า Line 24 ของ DBContext Class กล่าว DbContext เป็นการรวมกันของรูปแบบของหน่วยงานและที่เก็บข้อมูล นี่หมายความว่าเราไม่จำเป็นต้องแยก EF ออกจากพื้นที่เก็บข้อมูลแล้วใช้และส่วนต่อประสานเพื่อแทรกเข้าไปในคอนโทรลเลอร์ โพสต์ต้นฉบับบน Github: https://github.com/aspnet/EntityFramework/issues/4899 เหตุผลที่ฉันถามนี่คือฉันดูเหมือนจะเข้าไปในจุดที่ฉันเพิ่มวิธีการมากมายในพื้นที่เก็บข้อมูลเช่น GetById, GetByName, GetWithIncludesABC, GetWithIncludes123 ฯลฯ และดูเหมือนจะทำให้ repo สกปรกในใจ

3
ความแตกต่างระหว่างสถาปัตยกรรม 3-Tier และ MVC (Model, View Controller) ใน ASP.Net
ฉันชอบที่จะรู้ว่าสถาปัตยกรรม 3 ชั้นแตกต่างจาก MVC (Model, View Controller) ใน ASP.Net อย่างไรเนื่องจากดูเหมือนว่าฉันจะใช้สถาปัตยกรรมเดียวกัน ใน 3 ชั้นเรามีUser Services Layer, BusinessLayerและDataAccessLayerในมืออื่น ๆ ที่เรามีModel, และView Controllerดูเหมือนสถาปัตยกรรมแบบเดียวกันกับฉัน มีใครอธิบายได้บ้างว่าสถาปัตยกรรมทั้งสองแตกต่างกันอย่างไรแต่ละชั้นแตกต่างกันอย่างไร

6
มีดโกนหรือ XSLT ดีกว่าสำหรับโครงการของฉันหรือไม่ [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา ฉันอยู่ในช่วงเริ่มต้นในการออกแบบระบบที่จะถูกแยกออกเป็นสองส่วน ส่วนหนึ่งคือบริการส่วนอีกส่วนหนึ่งเป็นส่วนต่อประสานกับบริการที่ให้ข้อมูลผ่านทาง OData หรือ XML แอปพลิเคชันจะขึ้นอยู่กับรูปแบบสถาปัตยกรรม MVC สำหรับมุมมองเรากำลังพิจารณาใช้ XSLT หรือ Razor ภายใต้ ASP.NET XSLTหรือRazorจะช่วยแยกข้อกังวลโดยที่ XML ดั้งเดิมหรือการตอบสนองแทนแบบจำลองของคุณ XSLT หรือ 'Razor view' แทนมุมมองของคุณ ฉันจะปล่อยตัวควบคุมออกสำหรับตัวอย่างนี้ ข้อเสนอการออกแบบเบื้องต้นแนะนำ XSLT แต่ฉันแนะนำให้ใช้มีดโกนแทนเป็นเอ็นจิ้นการดูที่เป็นมิตรมากกว่า นี่คือเหตุผลที่ฉันแนะนำให้ใช้กับมีดโกน (C #): ทำงานกับและสร้างเพจที่ซับซ้อนได้ง่ายขึ้น สามารถผลิตเอาต์พุตที่ไม่ใช่ * ML ได้อย่างง่ายดายเช่น csv, txt, fdf เทมเพลต verbose น้อยลง รูปแบบมุมมองถูกพิมพ์อย่างรุนแรงโดยที่ XSLT จะต้องพึ่งพาการประชุมเช่นค่าบูลีนหรือวันที่ มาร์กอัปสามารถเข้าถึงได้ง่ายขึ้นเช่นการขึ้นบรรทัดใหม่การปรับมาตรฐานค่าการปรับมาตรฐานและกฎช่องว่าง …
9 c#  asp.net-mvc  xslt  razor 

5
มาตรฐานสำหรับการสร้างแบบจำลองการใช้งานที่ทันสมัยก่อนการพัฒนาคืออะไร?
ฉันกำลังใช้งานแอปพลิเคชันระดับองค์กรครั้งแรกของฉันและฉันต้องการให้ทีมของฉันสร้างแบบจำลองแอปพลิเคชัน ASP.NET MVC C # ทั้งหมดก่อนที่เราจะแตะโค้ดหนึ่งบรรทัด UPDATE: สิ่งนี้ไม่ได้มีวัตถุประสงค์เพื่อการอภิปรายเชิงปรัชญาเกี่ยวกับเวลาที่จะจัดทำเอกสาร / แบบจำลองแอปพลิเคชัน โปรดให้คำตอบสำหรับ "วิธี" กับเอกสาร / รุ่นเท่านั้น ความจริงก็คือฉันเคยอ่านในแผนกนี้มาตลอดและฉันไม่เคยทำแบบจำลองแอปพลิเคชันมาก่อน วิธีมาตรฐานในการทำเช่นนี้คืออะไร? ควรใช้ไดอะแกรมชนิดใดและเอกสารประกอบจะเป็นอย่างไร ลิงก์ไปยังไดอะแกรมตัวอย่างและเอกสารประกอบได้รับการชื่นชม เมื่อค้นหาฉันสามารถค้นหาสิ่งต่าง ๆ มากมายในเน็ต แต่ฉันต้องการดูว่ามีฉันทามติสมัยใหม่ในปัจจุบันเกี่ยวกับวิธีการทำสิ่งนี้หรือไม่ ขอบคุณล่วงหน้า! คำชี้แจงการปิด ฉันไม่รู้ว่านี่เป็นเรื่องที่เหนียวมาก ขอขอบคุณทุกท่านที่สามารถแยกความขัดแย้งที่เห็นได้ชัดและให้คำตอบที่เป็นประโยชน์ มันเป็นการสนทนาที่น่าสนใจที่จะพูดน้อยที่สุด :) ลิงค์ที่มีประโยชน์อื่นที่ฉันค้นพบคือ: /programming/61487/do-you-use-uml-in-agile-development-practices/61519#61519
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.