Должен ли я продолжить работу с моим самодельным ORM?

#.net #orm

#.net #orm

Вопрос:

это мой первый вопрос по Stack Overflow, поэтому заранее благодарю вас за вашу помощь! 🙂

За последние два года я разработал самодельный .NET ORM, который я использую в некоторых проектах малого и среднего размера. Его основными функциями являются:

  • отображение из базы данных в объекты с использованием атрибутов
  • богатый объектный синтаксис для написания SQL-запросов к различным СУБД с использованием поставщиков
  • подключения и транзакции к различным СУБД с использованием поставщиков
  • отложенная загрузка, связанные объекты, автоматическая проверка
  • автоматическое кэширование результатов предыдущего запроса
  • автоматическая генерация схемы базы данных с использованием структуры сущностей
  • автоматическая локализация объектов на основе культуры потоков

Теперь я на распутье: я должен решить, продолжать ли мое решение и внедрять другие функции, такие как управление параллелизмом, или объявить его мертвым и начать с существующего решения, такого как NHibernate.

Я из тех парней, которым нравится когда-нибудь изобретать колесо и так далее … 🙂

Я что-то упускаю? Подходящий ли это момент, чтобы начать идти по более безопасному пути?

Большое вам спасибо и извините за мой базовый английский.

Алессандро

Комментарии:

1. Я бы сказал, что сейчас самое подходящее время вместо этого помочь с существующими ORM, поскольку вы уже знаете основы их создания. Вероятно, вы могли бы действительно помочь с проектом с открытым исходным кодом, который уже существует. ORM не являются великолепной работой, поэтому они, вероятно, могли бы использовать кого-то, кто способен ее написать.

2. Если у него отличные возможности и потрясающая производительность, вам следует продолжить… Если нет, вам следует переключиться на более надежное решение

3. Он обладает хорошей производительностью, потому что он маленький и прямолинейный. Я боюсь, что NHibernate или другие большие ORM могут быть излишними и обречены на провал для моих нужд.

Ответ №1:

Я из тех парней, которым нравится когда-нибудь изобретать колесо и так далее … 🙂

Другое название для этого — разработчик программного обеспечения. Время от времени всем нам нравится создавать собственные решения проблем, которые уже были решены. Доступ к данным — это одна из тех областей, где люди продолжают создавать свои собственные решения по разным причинам (некоторые из них более законны, чем другие).

Однако суть в том, что, как только вы дойдете до того, что вам понадобятся такие вещи, как управление параллелизмом и другие расширенные функции, вам следует серьезно подумать о принятии одного из более зрелых ORM, будь то NHibernate, ADO.NET Entity Framework или другое решение. Это вдвойне верно, если это ваша работа, а не просто хобби; тратить время на изобретение того, что устоялось и стабильно, — пустая трата денег вашего работодателя.

Независимо от того, насколько хорош тот, который у вас есть сейчас, поддерживать его самостоятельно просто непрактично или неразумно. У вас есть два реальных варианта:

  1. Если ваш ORM просто потрясающ, тогда откройте его сообществу и посмотрите, какова реакция. Если вам помогут другие единомышленники, это может стать практичным. Кто знает; возможно, это будет следующий NHibernate. Просто имейте в виду, что ваш работодатель (если это ваша работа), скорее всего, не заинтересован в помощи сообществу и больше заинтересован в том, чтобы вы создавали программное обеспечение, которое работает. Также поймите, что если ваш ORM был разработан в рабочее время компании, то вы, возможно, не имеете права открывать его сообществу
  2. Просто переключитесь на обычный ORM.

Комментарии:

1. 1 только за комментарий «Другое название для этого — разработчик программного обеспечения», хотя весь пост превосходный.

2. Да, я думаю, вы здесь правы. Я забыл сказать, что это занятие больше на уровне хобби. У меня есть основное занятие (с пользовательским ORM компании, но это уже другая история), но мне нравится экспериментировать с чем-то новым и, по возможности, время от времени зарабатывать еще немного денег! 🙂

3. @Alessandro: Если это на уровне хобби, то не чувствуйте себя обязанным что-либо делать! Если это хобби, вы должны заниматься этим, потому что вам это нравится. Если вам нравится работать с ORM, продолжайте работать над ним, но подумайте о том, чтобы открыть его.

4. (Кроме того, @Alessandro, пожалуйста, не забудьте отметить это как принятое, если это ответило на ваш вопрос)

5. Да, я только что это сделал! Спасибо