Как мне сделать мою библиотеку простой, но ориентированной на разные фреймворки? - PullRequest
1 голос
/ 08 июля 2010

Я создал API-оболочку с именем Chargify.NET , и я начинаю видеть разработку шаблона, который потенциально может быть решен путем нацеливания на .NET 4.

Проблема в том, что, поскольку они улучшают API, мне нужно создавать все больше и больше перегруженных функций для обработки одного конкретного действия (в данном случае создание подписки). Прямо сейчас у меня МНОГО (я думаю, слишком много) перегруженных функций CreateSubscription, и становится сложно управлять различными сигнатурами.

Возможно ли (и / или предложено) создать библиотеку для .NET 4 и использовать необязательные параметры и надеяться, что пользователи библиотеки смогут использовать библиотеку .NET 4? Или я должен продолжать идти по пути, по которому я еду с 3.5? Или как-то нацелиться на обоих?

Нужно обсудить это ...

Ответы [ 3 ]

1 голос
/ 08 июля 2010

Дополнительные параметры были полностью поддержаны .NET задолго до 4.0. Тем не менее, они только недавно получили поддержку языка C #. Помните, что необязательные параметры не обязательно должны полностью поддерживаться CLS-совместимым языком - компилятору разрешено игнорировать заданные вами значения по умолчанию.

1 голос
/ 08 июля 2010

Там действительно нет правильного ответа.Если вы начнете использовать функции .NET 4, вы, вероятно, захотите просто нацелиться на .NET 4, так как попытка нацелить оба будет ограничивать вас более старыми функциями (то есть, нет причин для обновления) или потребует 2 пути кода (плохо для обслуживания).

Использование .NET 4 ограничит ваш целевой рынок теми людьми, которые используют .NET 4. Вам решать, нужна ли дополнительная гибкость и мощь с новыми функциями, а также упрощенный API (то есть: возможности дополнительных параметров) стоит ограничить вашу аудиторию.

Если ваша аудитория - коммерческие магазины, это может быть большой проблемой - если ваши целевые пользователи - маленькие разработчики или, в основном, другие разработчики с открытым исходным кодом - скорее всего, ониВы будете гораздо чаще готовы перейти на .NET 4, чтобы использовать вашу обертку, если это потребуется.

0 голосов
/ 08 июля 2010

Точно так же, как вы знаете, когда компилятор C # компилирует вашу программу, и ваша программа использует необязательные параметры, все, что делает компилятор, это заменяет эти необязательные параметры для перегруженных функций. Таким образом, вы не получите преимущества в скорости или сокращении кода, переключившись на дополнительные параметры.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...