#.net #orm
#.net #orm
Вопрос:
это мой первый вопрос по Stack Overflow, поэтому заранее благодарю вас за вашу помощь! 🙂
За последние два года я разработал самодельный .NET ORM, который я использую в некоторых проектах малого и среднего размера. Его основными функциями являются:
- отображение из базы данных в объекты с использованием атрибутов
- богатый объектный синтаксис для написания SQL-запросов к различным СУБД с использованием поставщиков
- подключения и транзакции к различным СУБД с использованием поставщиков
- отложенная загрузка, связанные объекты, автоматическая проверка
- автоматическое кэширование результатов предыдущего запроса
- автоматическая генерация схемы базы данных с использованием структуры сущностей
- автоматическая локализация объектов на основе культуры потоков
Теперь я на распутье: я должен решить, продолжать ли мое решение и внедрять другие функции, такие как управление параллелизмом, или объявить его мертвым и начать с существующего решения, такого как NHibernate.
Я из тех парней, которым нравится когда-нибудь изобретать колесо и так далее … 🙂
Я что-то упускаю? Подходящий ли это момент, чтобы начать идти по более безопасному пути?
Большое вам спасибо и извините за мой базовый английский.
Алессандро
Комментарии:
1. Я бы сказал, что сейчас самое подходящее время вместо этого помочь с существующими ORM, поскольку вы уже знаете основы их создания. Вероятно, вы могли бы действительно помочь с проектом с открытым исходным кодом, который уже существует. ORM не являются великолепной работой, поэтому они, вероятно, могли бы использовать кого-то, кто способен ее написать.
2. Если у него отличные возможности и потрясающая производительность, вам следует продолжить… Если нет, вам следует переключиться на более надежное решение
3. Он обладает хорошей производительностью, потому что он маленький и прямолинейный. Я боюсь, что NHibernate или другие большие ORM могут быть излишними и обречены на провал для моих нужд.
Ответ №1:
Я из тех парней, которым нравится когда-нибудь изобретать колесо и так далее … 🙂
Другое название для этого — разработчик программного обеспечения. Время от времени всем нам нравится создавать собственные решения проблем, которые уже были решены. Доступ к данным — это одна из тех областей, где люди продолжают создавать свои собственные решения по разным причинам (некоторые из них более законны, чем другие).
Однако суть в том, что, как только вы дойдете до того, что вам понадобятся такие вещи, как управление параллелизмом и другие расширенные функции, вам следует серьезно подумать о принятии одного из более зрелых ORM, будь то NHibernate, ADO.NET Entity Framework или другое решение. Это вдвойне верно, если это ваша работа, а не просто хобби; тратить время на изобретение того, что устоялось и стабильно, — пустая трата денег вашего работодателя.
Независимо от того, насколько хорош тот, который у вас есть сейчас, поддерживать его самостоятельно просто непрактично или неразумно. У вас есть два реальных варианта:
- Если ваш ORM просто потрясающ, тогда откройте его сообществу и посмотрите, какова реакция. Если вам помогут другие единомышленники, это может стать практичным. Кто знает; возможно, это будет следующий NHibernate. Просто имейте в виду, что ваш работодатель (если это ваша работа), скорее всего, не заинтересован в помощи сообществу и больше заинтересован в том, чтобы вы создавали программное обеспечение, которое работает. Также поймите, что если ваш ORM был разработан в рабочее время компании, то вы, возможно, не имеете права открывать его сообществу
- Просто переключитесь на обычный ORM.
Комментарии:
1. 1 только за комментарий «Другое название для этого — разработчик программного обеспечения», хотя весь пост превосходный.
2. Да, я думаю, вы здесь правы. Я забыл сказать, что это занятие больше на уровне хобби. У меня есть основное занятие (с пользовательским ORM компании, но это уже другая история), но мне нравится экспериментировать с чем-то новым и, по возможности, время от времени зарабатывать еще немного денег! 🙂
3. @Alessandro: Если это на уровне хобби, то не чувствуйте себя обязанным что-либо делать! Если это хобби, вы должны заниматься этим, потому что вам это нравится. Если вам нравится работать с ORM, продолжайте работать над ним, но подумайте о том, чтобы открыть его.
4. (Кроме того, @Alessandro, пожалуйста, не забудьте отметить это как принятое, если это ответило на ваш вопрос)
5. Да, я только что это сделал! Спасибо