ПРЕДПОСЫЛКА: Я сейчас работаю над приложением .NET WinForms (C#) с базой данных ADO.net для слоя данных.как можно будущая миграция локального слоя данных ADO.net на будущий веб-интерфейс (веб-сервис или REST)?
ВОПРОС: Как я сейчас это создаю, чтобы было легко перенестись в модель, где слой данных абстрагируется через веб-службу HTTP или интерфейс REST?
Например, просто использовать стандартный интерфейс C# с фабрикой, чтобы получить конкретную реализацию интерфейса, где это использует ADO.net, лучше?
благодаря
Если мне все еще нужно указывать интерфейсы, контейнер IOC должен быть переполнен только для того, чтобы связать код клиента с кодом с кодом доступа к данным? Просто интересно, какое большое/сложное приложение должно быть перед добавлением IOC, сделает его более простым, а не более сложным? – Greg
Поддержка консорциума во многих популярных контейнерах .Net IoC делает входной порог очень низким. Я бы сказал, если у вас есть более четырех или пяти интерфейсов, для которых вам необходимо предоставить различные реализации на основе конфигурации или контекста, пришло время начать просмотр контейнера IoC. К тому времени, когда вы доберетесь до десяти или более, вы определенно там. Как всегда, YMMV. И, конечно же, вам не нужно указывать интерфейс для ваших операций DAL (a la 'ISession' для NHibernate), но хорошая практика программирования зависит от абстракций, когда это возможно. – Dathan