Вопросы с тегом «c#»

C # - это многопарадигмальный управляемый объектно-ориентированный язык программирования со сборкой мусора, созданный Microsoft параллельно с платформой .NET.

2
Должны ли мы компилировать наш сайт в одну DLL или DLL на страницу?
Мы разрабатываем новый проект, который должен быть развернут на большом количестве клиентских сайтов. Проект содержит веб-интерфейс в качестве одной из «точек доступа». Скорость веб-интерфейса является приоритетом для этого проекта, уступая только безопасности. В прошлом мы всегда создавали «веб-сайты» в Visual Studio, которые при публикации приводят к одному файлу dll и …

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 …

8
Можно ли сохранить код регистрации полностью вне бизнес-логики?
С помощью AOP я могу удалить код регистрации из моей бизнес-логики. Но я думаю, что он может быть использован только для регистрации простых вещей (например, вход / выход метода регистрации и значения параметров). Однако что, если мне нужно что-то записать в моей бизнес-логике? например public void SomeDomainMethod(string id) { //Get …

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

5
Подводные камни доменного дизайна с Entity Framework
Многие учебники по DDD, которые я изучал, в основном охватывают теорию. Все они имеют примеры элементарного кода (Pluralsight и аналогичные). В Интернете также предпринимаются попытки нескольких людей создать учебники по DDD с EF. Если вы начнете их изучать ненадолго - вы быстро заметите, что они сильно отличаются друг от друга. …

2
Является ли интерфейс IComparable устаревшим / «вредным»?
IComparable работает только в одну сторону Допустим, у вас есть Employeeкласс. В одном представлении вы хотите показать все Employeesотсортированные по имени - в другом по адресу. Как вы собираетесь достичь этого? Не с IComparable, по крайней мере, никаким идиоматическим способом. IComparable имеет логику в неправильном месте Интерфейс используется при вызове …
11 c#  sorting  comparison 

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

5
Шаблон подсчета ссылок для языков с управлением памятью?
Java и .NET имеют замечательные сборщики мусора, которые управляют памятью, и удобные шаблоны для быстрого освобождения внешних объектов ( Closeable, IDisposable), но только если они принадлежат одному объекту. В некоторых системах ресурс может потребляться независимо двумя компонентами и освобождаться только тогда, когда оба компонента освобождают ресурс. В современном C ++ …

1
Как я могу применить шаблон MVC к приложению C # WinForms?
Я разработчик C ++, который с тех пор использует шаблон MVC для разработки GUI. Недавно я хотел вернуться в C # и настроить приложение Windows Forms, но теперь я немного растерялся, как перенести его в MVC-совместимую структуру. В настоящее время я пытаюсь «объявить» класс, который мне дан для WinForms в …
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.