คำถามติดแท็ก c#

C # เป็นภาษาการเขียนโปรแกรมเชิงวัตถุที่มีการจัดการและรวบรวมขยะที่สร้างขึ้นโดย Microsoft ควบคู่ไปกับแพลตฟอร์ม. NET

2
การฉีดพึ่งพากับโซลูชัน n-tier Entity Framework
ขณะนี้ฉันกำลังออกแบบโซลูชัน n-tier ซึ่งใช้ Entity Framework 5 (.net 4) เป็นกลยุทธ์การเข้าถึงข้อมูล แต่ฉันกังวลเกี่ยวกับวิธีรวมการฉีดพึ่งพาเพื่อให้สามารถทดสอบ / ยืดหยุ่นได้ เค้าโครงโซลูชันปัจจุบันของฉันมีดังนี้ (โซลูชันของฉันชื่อ Alcatraz): Alcatraz.WebUI : การ asp.net เว็บฟอร์มโครงการส่วนติดต่อผู้ใช้ปลายด้านหน้าอ้างอิงโครงการAlcatraz.BusinessและAlcatraz.Data.Models Alcatraz.Business : โครงการห้องสมุดระดับมีตรรกะทางธุรกิจโครงการอ้างอิงAlcatraz.Data.Access , Alcatraz.Data.Models Alcatraz.Data.Access : ห้องสมุดชั้นโครงการบ้านAlcatrazModel.edmxและAlcatrazEntitiesDbContext อ้างอิงโครงการAlcatraz.Data.Models Alcatraz.Data.Models : โครงการห้องสมุดคลาสมี POCO สำหรับรุ่น Alcatraz ไม่มีการอ้างอิง วิสัยทัศน์ของฉันสำหรับวิธีการแก้ปัญหานี้จะทำงานเป็น web-UI จะยกตัวอย่างพื้นที่เก็บข้อมูลภายในห้องสมุดธุรกิจที่เก็บนี้จะมีการพึ่งพา (ผ่านตัวสร้าง) ของสตริงการเชื่อมต่อ (ไม่ใช่AlcatrazEntitiesอินสแตนซ์) web-ui จะรู้จักสตริงการเชื่อมต่อฐานข้อมูล แต่ไม่ใช่ว่าเป็นสตริงการเชื่อมต่อของเฟรมเวิร์กเอนทิตี ในโครงการธุรกิจ: public class InmateRepository : …

2
Webkit เป็น GUI ใน. Net / Mono
ฉันต้องการสร้างแอปพลิเคชันข้ามแพลตฟอร์มซึ่งจะมีเว็บไซต์ที่แอปพลิเคชันเดสก์ท็อป (Windows, iOS, Linux) จะพูดคุยกับเซิร์ฟเวอร์และทำให้ข้อมูลผู้ใช้ตรงกัน จนถึงตัวเลือกที่ฉันเห็นคือ: เขียน GUI พื้นฐานสำหรับแต่ละ 3 ระบบปฏิบัติการดังนั้นฉันจะมีรหัสฐาน 3 GUI (และระบบแบ็กเอนด์เดียว) ใช้บางอย่างเช่น GTK ดังนั้นฉันจึงสามารถใช้ระบบเดียวได้พร้อมการสนับสนุนในแพลตฟอร์มที่กล่าวถึงทั้งหมด แต่ข้อที่สามที่ฉันไม่สามารถหาข้อมูลได้มากนัก (บางทีฉันไม่ได้ค้นหาคำศัพท์ที่เหมาะสมเนื่องจากฉันยังใหม่กับ C # และ. Net) คือมีหน้าต่างที่มีอินสแตนซ์ WebKit ฝังอยู่ในตัว ซึ่งจะทำให้ฉันสามารถใช้ระบบ GUI เดียวกับที่ฉันจะใช้สำหรับเว็บไซต์ ซึ่งจะทำให้แอปไคลเอนต์และเว็บไซต์ดูใกล้เคียงกันมากที่สุดเพื่อให้ผู้ใช้คุ้นเคยกับอินเทอร์เฟซ ตัวเลือกสุดท้ายนี้มีความน่าเชื่อถือของ WebKit หรือไม่ ฉันรู้จัก JavaScript / HTML ดีแล้วและถ้าฉันสามารถใช้ความรู้นั้นเพื่อสร้างอินเทอร์เฟซได้ นอกจากนี้ยังเป็นวิธีที่ยอดเยี่ยมในการอนุญาตให้ผู้ใช้ปรับแต่งส่วนต่อประสานกับปลั๊กอินและพวกเขาสามารถซิงค์การตั้งค่า UI ใด ๆ จากท้องถิ่นกับเว็บ
12 c#  .net  javascript  gui  mono 

5
วิธีการสาธารณะทั้งหมดในคลาสนามธรรมควรถูกทำเครื่องหมายเสมือนหรือไม่?
ฉันเพิ่งต้องอัปเดตคลาสพื้นฐานที่เป็นนามธรรมใน OSS บางตัวที่ฉันใช้เพื่อให้สามารถทดสอบได้มากขึ้นโดยทำให้เป็นเสมือน (ฉันไม่สามารถใช้อินเทอร์เฟซได้เมื่อรวมสอง) ทำให้ฉันคิดว่าฉันควรทำเครื่องหมายวิธีทั้งหมดที่ฉันต้องการเสมือนหรือถ้าฉันควรทำเครื่องหมายทุกวิธีสาธารณะ / ทรัพย์สินเสมือน ฉันโดยทั่วไปเห็นด้วยกับรอย Osherove ว่าวิธีการทุกคนควรจะทำเสมือน แต่ฉันมาข้ามบทความนี้ว่ามีฉันคิดเกี่ยวกับว่านี่คือความจำเป็นหรือไม่ ฉันกำลังจะ จำกัด ชั้นเรียนนี้เป็นคลาสที่เป็นนามธรรมเพื่อความเรียบง่าย แต่ (ไม่ว่าวิธีสาธารณะทั้งหมดที่เป็นรูปธรรมควรจะเป็นที่ถกเถียงกันโดยเฉพาะฉันแน่ใจหรือไม่) ฉันเห็นว่าคุณอาจต้องการอนุญาตให้คลาสย่อยใช้วิธีการ แต่ไม่ต้องการให้มีการใช้งานแทน อย่างไรก็ตามตราบใดที่คุณเชื่อมั่นว่าหลักการของการทดแทนของ Liskovจะเป็นไปตามนั้นทำไมคุณถึงไม่ยอมให้มันล้มล้าง? โดยการทำเครื่องหมายมันเป็นนามธรรมคุณกำลังบังคับให้มีการแทนที่อย่างใดอย่างหนึ่งดังนั้นฉันคิดว่าวิธีการสาธารณะทั้งหมดภายในคลาสนามธรรมควรถูกทำเครื่องหมายเสมือนจริง อย่างไรก็ตามฉันต้องการถามในกรณีที่มีบางสิ่งที่ฉันอาจไม่ได้คิด วิธีการสาธารณะทั้งหมดในคลาสนามธรรมควรทำเป็นเสมือนจริงหรือไม่?

11
ตัวอย่างของการบรรทุกเกินพิกัดซึ่งสมเหตุสมผล [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว ในขณะที่ฉันเรียนรู้ C # ฉันพบว่า C # รองรับการบรรทุกเกินพิกัด ฉันมีปัญหากับตัวอย่างที่ดีซึ่ง: Make sense (เช่นเพิ่มคลาสที่ชื่อแกะและวัว) ไม่ใช่ตัวอย่างของการต่อข้อมูลสองสตริง ตัวอย่างจาก Base Class Library ยินดีต้อนรับ
12 c#  .net  operators 

4
อะไรคือผลของการมีการอ้างอิงและการใช้ที่ไม่จำเป็น?
ฉันเป็นคนที่คลั่งไคล้และมีแนวโน้มที่จะทำให้โครงการของฉันโดยการทำความสะอาดข้อมูลอ้างอิงusingในแต่ละชั้นเรียนเพื่อรักษาเฉพาะสิ่งที่ใช้จริง ฉันสามารถโต้แย้งอะไรได้อีก (นอกจากทำให้สงบประสาท OCD ของฉัน) ในการรักษาสิ่งจำเป็น? ฉันคิดว่าการอ้างอิงระบบส่วนใหญ่การอ้างอิงใด ๆ กับงานที่กำหนดเองจะนำมาซึ่งปัญหาความเข้ากันได้แบบย้อนหลัง การปล่อยรอยเท้าใหญ่ขึ้นหรือไม่? รวบรวมเวลานานขึ้น?
12 c# 

3
Entity Framework และการแยกชั้น
ฉันพยายามทำงานกับ Entity Framework เล็กน้อยและฉันมีคำถามเกี่ยวกับการแยกชั้น ฉันมักจะใช้ UI -> BLL -> วิธี DAL และฉันสงสัยว่าจะใช้ภาษา EF ที่นี่ได้อย่างไร DAL ของฉันมักจะเป็นอะไรที่ชอบ GetPerson(id) { // some sql return new Person(...) } BLL: GetPerson(id) { Return personDL.GetPerson(id) } UI: Person p = personBL.GetPerson(id) คำถามของฉันคือ: เนื่องจาก EF สร้างแบบจำลองและ DAL ของฉันมันเป็นความคิดที่ดีหรือไม่ที่จะห่อ EF ไว้ใน DAL ของฉันเองหรือแค่เสียเวลา? ถ้าฉันไม่ต้องการห่อ EF ฉันจะยังคงวาง Model.esmx …

4
ขีด จำกัด ขนาดที่ใช้ได้จริงของ Hashtable และ Dictionary ใน c #
อะไรคือข้อ จำกัด ในทางปฏิบัติสำหรับจำนวนรายการที่พจนานุกรม C # 4 หรือ Hashtable สามารถมีได้และจำนวนไบต์ทั้งหมดโครงสร้างเหล่านี้อาจมีเหตุผล ฉันจะทำงานกับวัตถุจำนวนมากและต้องการทราบว่าโครงสร้างเหล่านี้เริ่มมีปัญหาเมื่อใด สำหรับบริบทฉันจะใช้ระบบ 64 บิตกับหน่วยความจำมากมาย นอกจากนี้ฉันจะต้องค้นหาวัตถุโดยใช้รูปแบบบางอย่างหรือ 'คีย์' เมื่อพิจารณาถึงความต้องการประสิทธิภาพวัตถุเหล่านี้จะต้องอยู่ในหน่วยความจำและส่วนใหญ่จะมีอายุการใช้งานยาวนาน อย่าลังเลที่จะแนะนำวิธีการ / รูปแบบอื่น ๆ แม้ว่าฉันจะต้องหลีกเลี่ยงการใช้ห้องสมุดบุคคลที่สามหรือโอเพ่นซอร์ส สำหรับเหตุผลในสเปคฉันต้องสามารถสร้างสิ่งนี้โดยใช้ native C # ( หรือ C ++ \ CLI )

4
อะไรคือข้อเสียของการใช้ / writting a. Net Custom Membership Provider
เมื่อเร็ว ๆ นี้ฉันโพสต์คำถามต่อไปนี้ใน SO: /programming/7197337/using-asp-net-membership-provider-with-an-existing-user-database ดังที่คุณอาจสังเกตเห็นว่าฉันสิ้นสุดการตอบคำถามของฉันเองโดยระบุว่าดูเหมือนว่าการเขียน / ใช้ "ผู้ให้บริการสมาชิกที่กำหนดเอง" เป็นหนทางที่จะไป ตามตัวอักษรไม่กี่นาทีต่อมาฉันเจอคำถามนี้: /programming/7222306/simple-login-attempt-counter-using-mvc-3-and-ajax/7222407#7222407 ฉันพยายามที่จะตอบและรับความคิดเห็นกลับว่าผู้ให้บริการสมาชิก. Net "แย่มากในหลาย ๆ ระดับ" ฉันจะยอมรับนี่เป็นครั้งแรกที่ฉันใช้ผู้ให้บริการสมาชิก แต่แน่ใจว่ามันเนียนสำหรับฉัน ฉันไม่ได้เห็นอะไรเลยที่สนับสนุนการอ้างสิทธิ์ "แย่มาก" ดังนั้นก่อนที่ฉันจะนำสิ่งที่ "น่ากลัว" มาใช้ฉันหวังว่าจะได้รับคำติชมจากชุมชน

6
เอกสารใดที่บอกว่าช่วงใดของ. NET BigIntegers ที่ออกแบบมาเพื่ออะไร?
ฉันกำลังเล่นกับ. NET BigIntegerและโดยทั่วไปฉันสงสัยว่าจำนวนใด - คำตอบโดยประมาณน่าจะดี - คือจุดเบี่ยงเบนของเส้นโค้งของ (กราฟของ (เพิ่มเวลาที่จำเป็นสำหรับการปฏิบัติการ) vs (มูลค่าของ BigInteger))? หรือพวกมันถูกออกแบบโดยไม่มีการเบี่ยงเบนเช่นนั้นถ้าเราวางแผนการเพิ่มเวลาที่จำเป็นสำหรับการดำเนินการเทียบกับมูลค่าของ BigInteger จาก 1 ถึงอินฟินิตี้เราจะมีเส้นโค้งที่ราบรื่นไปตลอดทาง? ตัวอย่างเช่นสมมติว่าอาร์เรย์ได้รับการออกแบบที่มีความสามารถในการจัดการ 50 รายการ หมายความว่าถ้าฉันมี 1 รายการการดำเนินการจะเป็นเวลา f (1) และเมื่อฉันมี 2 รายการการดำเนินการคือ f (2) เวลา หากฉันมี 50 รายการการดำเนินการจะเป็นเวลา f (50) แต่เนื่องจากมันถูกออกแบบมาสำหรับการจัดการ 50 รายการเท่านั้นการดำเนินการเมื่อเรามี 51 รายการจะเป็น g (51) โดยที่ g (51)> f (51) หากดำเนินการอย่างเหมาะสมความซับซ้อนของ BigInteger …
12 c#  .net  vb.net  numbers 

8
การออกแบบคลาสที่เน้นวัตถุ
ฉันสงสัยเกี่ยวกับการออกแบบคลาสเชิงวัตถุที่ดี โดยเฉพาะอย่างยิ่งฉันมีเวลาตัดสินใจยากระหว่างตัวเลือกเหล่านี้: วิธีการคงที่ vs อินสแตนซ์ method ที่ไม่มีพารามิเตอร์หรือ return value vs method กับพารามิเตอร์และ return value ฟังก์ชันการใช้วิธีการที่ทับซ้อนกัน vs ที่แตกต่างกัน วิธีส่วนตัวและสาธารณะ ตัวอย่างที่ 1: การใช้งานนี้ใช้วิธีการแบบอินสแตนซ์โดยไม่มีค่าส่งคืนหรือพารามิเตอร์โดยไม่มีการซ้อนทับฟังก์ชันการทำงานและวิธีการทั้งหมดสาธารณะ XmlReader reader = new XmlReader(url); reader.openUrl(); reader.readXml(); Document result = reader.getDocument(); ตัวอย่างที่ 2: การใช้งานนี้ใช้วิธีการคงที่มีค่าตอบแทนและพารามิเตอร์ที่มีฟังก์ชั่นที่ทับซ้อนกันและวิธีการส่วนตัว Document result = XmlReader.readXml(url); ในตัวอย่างที่หนึ่งวิธีทั้งหมดเป็นแบบสาธารณะซึ่งทำให้ง่ายต่อการทดสอบหน่วย แม้ว่าวิธีการทั้งหมดจะแตกต่างกัน readXml () ขึ้นอยู่กับ openUrl () ใน openUrl () นั้นจะต้องถูกเรียกก่อน …

3
คำถามเกี่ยวกับการออกแบบการปรับใช้หน้าปัจจุบัน
ฉันได้ตรวจสอบการแบ่งหน้าใน asp.net mvc โดยเฉพาะและฉันรู้สึกว่ามีบางสิ่งบางอย่างที่มีประสิทธิภาพน้อยกว่าในการใช้งาน ประการแรกการใช้งานทั้งหมดใช้ค่าเลขหน้าดังนี้ public ActionResult MostPopulars(int pageIndex,int pageSize) { } สิ่งที่ฉันรู้สึกผิดคือ pageIndex และ pageSize ทั้งหมดควรเป็นสมาชิกของคลาส Pagination มิฉะนั้นวิธีนี้จะดูมีประโยชน์มาก นอกจากนี้ยังช่วยลดความยุ่งยากของพารามิเตอร์ที่ไม่จำเป็นในการใช้งาน สิ่งที่สองคือพวกเขาใช้ด้านล่างส่วนต่อประสาน public interface IPagedList<T> : IList<T> { int PageCount { get; } int TotalItemCount { get; } int PageIndex { get; } int PageNumber { get; } int PageSize { …

5
เหตุใด Windows Forms / Swing frameworks จึงสนับสนุนการสืบทอดแทนที่จะเป็น Composition
วันนี้ศาสตราจารย์ของฉันคนหนึ่งให้ความเห็นว่าเขาพบว่ามันแปลกที่ในขณะที่ปรัชญาของ SWT เป็นหนึ่งในการควบคุมของคุณเองโดยการจัดองค์ประกอบสวิงดูเหมือนว่าจะสนับสนุนมรดก ฉันแทบไม่ได้ติดต่อกับเฟรมเวิร์กทั้งคู่ แต่จากสิ่งที่ฉันจำได้ในแบบฟอร์ม Windows ของ C # มักจะขยายการควบคุมเช่นเดียวกับ Swing โดยทั่วไปแล้วคนมักจะชอบแต่งเพลงมากกว่าการถ่ายทอดทางพันธุกรรมทำไมคนใน Swing / Windows Forms จึงไม่ชอบการแต่งเพลงมากกว่าการถ่ายทอดทางพันธุกรรม?
12 c#  java  swing  forms 

6
เรียนรู้ C # และติดอยู่ในร่อง [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน4 ปีที่แล้ว ฉันได้เรียนรู้ C # /. NET 4.0 ประมาณ 2/3 เดือนมันเป็นภาษาการเขียนโปรแกรมที่จริงจังครั้งแรกของฉัน (ฉันเคยดู PHP, HTML, CSS, JavaScript และ VBA มาก่อน แต่ไม่เคยเจาะลึกขนาดใหญ่) และฉัน เริ่มที่จะติดอยู่เล็กน้อย: ฉันประสบปัญหากับการเรียนรู้เนื่องจากขาดโครงการ 'ใหญ่' ... การขาดการทำงานในโครงการที่ซับซ้อนทำให้ฉันสงสัยในความสามารถของฉัน ... 2 สัปดาห์ที่ผ่านมาฉันได้สัมภาษณ์งานโปรแกรมเมอร์จูเนียร์และสามารถตอบคำถามส่วนใหญ่ที่ฉันตอบได้ แต่ฉันยังไม่ได้งานเนื่องจากขาดประสบการณ์จริงฉันไม่แน่ใจว่าจะทำอย่างไร ทำ! อย่างที่ฉันพูดไปก่อนหน้านี้ฉันจะไม่สนับสนุนโครงการโอเพนซอร์ซ แต่ฉันไม่รู้ว่าจะเริ่มต้นอย่างไรฉันคิดว่าโครงการใหญ่จะต้องการโค้ดดี ๆ เท่านั้น :( มีรูปแบบของการทดสอบการเขียนโปรแกรมออนไลน์ใดบ้างที่จะแสดงให้ฉันเห็นว่า 'ดี' (หรือ 'ไม่ดี') ในขณะนี้? …

1
ฉันจะทดสอบตรรกะของฐานข้อมูลได้อย่างไร
ฉันยังคงมีปัญหาในการแก้ไขปัญหาเล็ก ๆ เมื่อพูดถึง TDD ฉันต้องการวิธีที่จะได้รับชุดบันทึกข้อมูลที่กรองจากชั้นข้อมูล (linq2SQL) โปรดทราบว่าฉันใช้ linq สร้างชั้นเรียนจากที่สร้างขึ้นจาก DBML ตอนนี้ปัญหาคือฉันต้องการเขียนแบบทดสอบนี้ ฉัน: ก) ใส่บันทึกในการทดสอบก่อนแล้วจึงดำเนินการวิธีการและทดสอบผลลัพธ์ b) ใช้ข้อมูลที่อาจอยู่ในฐานข้อมูล การไม่สนใจเหตุผลนี้อาจทำให้สิ่งต่าง ๆ แตกหักได้ c) คุณเคยแนะนำอะไรบ้าง
12 c#  unit-testing 

5
เหตุใดจึงมีรหัสผู้ใช้ / ลายมือน้อยที่สุดและทำทุกอย่างใน XAML
ฉันรู้สึกว่าชุมชน MVVM มีความคลั่งไคล้เหมือนโปรแกรมเมอร์ OO ในยุค 90 - มันเป็นชื่อเรียก MVVM ที่เรียกชื่อผิดโดยไม่มีรหัส จากคำถาม StackOverflow ที่ปิดของฉัน: หลายครั้งที่ฉันเจอโพสต์ที่นี่เกี่ยวกับคนที่พยายามทำสิ่งที่เทียบเท่าใน XAML แทนที่จะเป็นโค้ดด้านหลัง เหตุผลเดียวที่พวกเขาต้องการให้รหัสของพวกเขาอยู่เบื้องหลัง 'สะอาด' แก้ไขให้ฉันถ้าฉันผิด แต่ไม่ใช่ในกรณีที่: XAML ถูกคอมไพล์ด้วย - ใน BAML - จากนั้นที่จะต้องมีการแยกวิเคราะห์โค้ดในรันไทม์ XAML อาจมีข้อผิดพลาดรันไทม์มากขึ้นเนื่องจากคอมไพเลอร์จะไม่ได้รับในเวลารวบรวม - จากการสะกดผิด - ข้อผิดพลาดเหล่านี้ยากต่อการดีบัก มีโค้ดอยู่แล้ว - ชอบหรือไม่ InitializeComponent (); จะต้องมีการเรียกใช้และไฟล์. gics ที่อยู่ในนั้นมีรหัสจำนวนมากถึงแม้ว่ามันจะถูกซ่อนอยู่ มันเป็นจิตวิทยาอย่างหมดจด? ฉันสงสัยว่าเป็นนักพัฒนาซอฟต์แวร์ที่มาจากพื้นหลังของเว็บและชอบมาร์กอัปซึ่งต่างกับรหัส แก้ไข: ฉันไม่เสนอรหัสด้านหลังแทน XAML - ใช้ทั้งคู่ - ฉันชอบที่จะผูกมัดใน …
12 c#  wpf 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.