c #: куда поместить мой API и что должно входить в пространство имен MyCOmpanyName.MyProduct.Core (core)? - PullRequest
2 голосов
/ 19 марта 2011

Может кто-нибудь помочь мне с советами по рефакторингу.

У меня есть мое приложение, которое у меня есть в пространстве имен - эти пространства имен меня устраивают.

  MyCompany.MyProduct.Web (for the web app)

  MyCompany.MyProduct.Windows (for the windows app)

эти приложения должны вызывать мой API. API предназначен специально для этого приложения, ноживет отдельно.В настоящее время у меня есть это в следующем виде.

  MyCompany.MyProduct.Api 

Но мне действительно это не нравится ... я подумал, может быть, лучше поставить его в

  MyCompany.MyProduct.Core

Этохороший способ?

Под Core у меня будут Enums, Exception Classes и т. д.

Так что это будет на самом деле

  MyCompany.MyProduct.Core.Enums.DaysOfWeek (DaysOfWeek is an example)

  MyCompany.MyProduct.Core.Exceptions.ConnectionException (just an example)

Является ли Core хорошей идеей и что должно быть там?. ????

Если у меня есть команда CreateSchedule, которая входит в класс Schedule, который является частью моего API, то что было бы хорошей идеей для полного пространства имен, включая метод и т. Д.

             MyCompany.MyProduct.Core.Schedule.CreateSchedule   ???

Полагаю, я поместил под ROOT (т. Е. CORE) все перечисления / исключения, глобально специфичные для моего API.Это хорошая практика, что мое приложение может использовать Enums / Exceptions из моего API - это то, как у меня есть.если у меня есть перечисление, относящееся только к определенному классу, я оставляю его там в ROOT (ядро) или лучше поставить его

             MyCompany.MyProduct.Core.Schedule.Enums

Я надеюсь, что кто-то может помочь мне в этом

заранее спасибо

1 Ответ

3 голосов
/ 19 марта 2011
  • Я думаю, что если перечисление относится только к определенному классу, то имеет смысл сделать перечисление в этом классе (т.е. не на корневом уровне). Например, для DaysOfWeek имеет смысл находиться в классе Schedule.

  • «Ядро», безусловно, лучше, чем «Api», что выглядит странно, поскольку это аббревиатура.

  • Я не уверен в наличии пространства имен для исключений (т. Е. MyCompany.MyProduct.Core.Exceptions.xxx). Я бы предпочел поместить классы исключений как братьев и сестер того класса, из которого они сгенерированы.

...