Запитання з тегом «c#»

C # - це багатопарадигмна керована об'єктно-орієнтована мова програмування, що збирається сміттям, створена Microsoft паралельно з платформою .NET

2
Чи слід складати наш веб-сайт до одного dll або dll на сторінку?
Ми розробляємо новий проект, який потрібно розгорнути на великій кількості клієнтських сайтів. Проект містить веб-інтерфейс GUI як одну з його "точок доступу". Швидкість веб-інтерфейсу є пріоритетом цього проекту, поступаючись лише безпеці. У минулому ми завжди створювали "веб-сайти" у Visual Studio, яка, публікуючись, приводить до одного dll та одного aspx-файлу для …

5
Чи модифікація об'єкта, переданого посиланням, є поганою практикою?
У минулому я зазвичай робив більшу частину маніпуляцій з об'єктом в рамках основного методу, який він створюється / оновлюється, але останнім часом я виявив себе іншим підходом, і мені цікаво, чи це погана практика. Ось приклад. Скажімо, у мене є сховище, яке приймає Userсутність, але перед тим, як вставити сутність, …

6
Які недоліки незмінних типів?
Я бачу себе в застосуванні все більше непорушних типів, коли екземпляри класу не будуть змінені . Це вимагає більше роботи (див. Приклад нижче), але полегшує використання типів у багатопотоковому середовищі. У той же час я рідко бачу незмінні типи в інших програмах, навіть коли незмінність нікому не принесе користі. Питання: …
12 c#  immutability 

1
Використання шаблону відвідувачів з великою ієрархією об'єктів
Контекст Я використовував з ієрархією об'єктів (дерево виразів) "псевдо" шаблон відвідувача (псевдо, так як в ньому не використовується подвійна відправка): public interface MyInterface { void Accept(SomeClass operationClass); } public class MyImpl : MyInterface { public void Accept(SomeClass operationClass) { operationClass.DoSomething(); operationClass.DoSomethingElse(); // ... and so on ... } } Цей …

4
Бізнес-об'єкти в рівні доступу до даних
Тож я створював рівень доступу до даних за допомогою TDD і дещо викликав занепокоєння. Я б краще не починав неправильний шлях, тому я подумав, що попрошу вас, хлопці, дізнатись, чи мої думки узгоджуються з чистою архітектурою. Методи в моєму шарі доступу до даних (DAL коротко) досить прості. Вони відповідають збереженим …

5
Чому є метод, який повертає bool / int і має фактичний об'єкт як вихідний параметр?
У кодовій базі моєї компанії я бачу таку схему коду (додаток .NET 3.5): bool Foo(int barID, out Baz bazObject) { try { // do stuff bazObject = someResponseObject; return true; } catch (Exception ex) { // log error return false; } } // calling code BazObject baz = new BazObject(); …

8
Чи можливо тримати код журналу повністю поза діловою логікою?
За допомогою AOP я можу вилучити код журналу зі своєї логіки бізнесу. Але я думаю, що його можна використовувати лише для реєстрації простих речей (тобто методів входу / виходу методу входу та виходу та параметрів). Однак що робити, якщо мені потрібно щось записати у свою ділову логіку? напр public void …

4
Найпростіший спосіб написати логічно процедурне програмне забезпечення мовою ОО
Я інженер-електромонтажник, і я не знаю, що, до біса, роблю. Будь ласка, збережіть майбутніх утримувачів мого коду. Останнім часом я працюю над низкою менших програм (в C #), функціональність яких логічно "процедурна". Наприклад, одна з них - це програма, яка збирає інформацію з різних баз даних, використовує цю інформацію для …

5
Підводні камені дизайну, керованого доменом з Entity Framework
Багато навчальних посібників з DDD, який я вивчав, здебільшого охоплюють теорію. Всі вони мають рудиментарні приклади коду (Pluralsight та подібні). В Інтернеті також є спроби кількох людей створити навчальні посібники, що охоплюють DDD за допомогою EF. Якщо ви почнете їх вивчати лише коротко - ви швидко помітите, що вони сильно …

2
Чи застарілий / "шкідливий" інтерфейс IComparable?
IComparable працює лише одним способом Скажімо, у вас Employeeклас. З одного виду, ви хочете показати всі Employeesвідсортовані за назвою - в іншому за адресою. Як ти збираєшся цього досягти? Не з IComparable, принаймні, не в жодному ідіоматичному вигляді. IComparable має логіку в неправильному місці Інтерфейс використовується при виклику .Sort(). У …
11 c#  sorting  comparison 

2
Тест блоку для перевірки створення об’єкта домену
У мене є модульний тест, який виглядає приблизно так: [Test] public void Should_create_person() { Assert.DoesNotThrow(() => new Person(Guid.NewGuid(), new DateTime(1972, 01, 01)); } Я стверджую, що тут створюється об'єкт Person, тобто перевірка не проходить. Наприклад, якщо Посібник є недійсним або дата народження є раніше 01.01.1900 р., Перевірка завершиться невдало, і …

5
Шаблон підрахунку посилань для мов, керованих пам'яттю?
Java та .NET мають чудові сміттєзбірники, які керують пам’яттю для вас, та зручні схеми для швидкого звільнення зовнішніх об’єктів ( Closeable, IDisposable), але лише у тому випадку, якщо вони належать одному об’єкту. У деяких системах ресурс, можливо, потрібно буде споживати незалежно двома компонентами і вивільнятися лише тоді, коли обидва компоненти …

1
Як я можу застосувати шаблон MVC до програми C # WinForms?
Я розробник C ++, який з тих пір використовує шаблон MVC для проектування графічних інтерфейсів. Нещодавно я хотів повернутися в C #, і я створив додаток Windows Forms, але зараз я трохи розгублений, як перенести його на структуру, сумісну з MVC. Наразі я намагаюся зробити «оголосити» клас, який я даю …
11 c#  mvc  winforms 

4
Як вказати передумову (LSP) в інтерфейсі на C #?
Скажімо, у нас є такий інтерфейс - interface IDatabase { string ConnectionString{get;set;} void ExecuteNoQuery(string sql); void ExecuteNoQuery(string[] sql); //Various other methods all requiring ConnectionString to be set } Передумовою є те, що ConnectionString повинен бути встановлений / ініціалізований перед тим, як запустити будь-який із методів. Цю передумову можна дещо досягти, …

3
Entity Framework та уникнення анемічної моделі домену
У нашій бізнес-логіці періодично є методи, визначені приблизно так: User.ResetCourse(Course courseToReset) Проблема полягає в тому, що і користувач, і курс є проксі-об'єктами Entity Framework. Це означає, що коли ми потрапляємо на властивості навігації або на користувачі, або на курс, це може спричинити величезне потрапляння в базу даних, тому що ці …

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.