База данных нейтральное приложение.NET

Вот то, что я делаю для любого действия, и оно работает в Firefox, IE, Opera и Safari.

<script type="text/javascript">
  $(document).ready(function(){
    doMethod();
  });
  function actionIframe(iframe)
  {
    ... do what ever ...
  }
  function doMethod()
  {   
    var iFrames = document.getElementsByTagName('iframe');

    // what ever action you want.
    function iAction()
    {
      // Iterate through all iframes in the page.
      for (var i = 0, j = iFrames.length; i < j; i++)
      {
        actionIframe(iFrames[i]);
      }
    }

    // Check if browser is Safari or Opera.
    if ($.browser.safari || $.browser.opera)
    {
      // Start timer when loaded.
      $('iframe').load(function()
      {
        setTimeout(iAction, 0);
      }
      );

      // Safari and Opera need something to force a load.
      for (var i = 0, j = iFrames.length; i < j; i++)
      {
         var iSource = iFrames[i].src;
         iFrames[i].src = '';
         iFrames[i].src = iSource;
      }
    }
    else
    {
      // For other good browsers.
      $('iframe').load(function()
      {
        actionIframe(this);
      }
      );
    }
  }
</script>
5
задан skaffman 8 November 2009 в 16:32
поделиться

3 ответа

Microsoft ADO.NET Entity Framework - это среда объектно-реляционного сопоставления от Microsoft, которая позволяет писать код, который (отчасти ) DB-агностик. Все основные СУБД поддерживают Entity Framework, хотя для многих (например, MySQL, Postgres) вам потребуется загрузить что-то отдельно от установленной вами .NET Framework.

Примечание: мне еще предстоит поработать над одним большим проектом с использованием инструмента O / RM, где не было хотя бы одного случая, когда нам пришлось бы использовать собственный SQL - либо для специфической функциональности БД, либо для производительности причины (необходимо было написать запрос определенным образом, чтобы получить хороший план запроса). Но хороший O / RM может работать большую часть времени, чтобы не писать SQL.

Тем не менее, текущая версия Entity Framework довольно ограничена по ряду параметров - другие структуры O / RM, такие как NHibernate , SubSonic и т. д., гораздо более зрелые, где «зрелые» означает поддержку более широкого спектра функций СУБД без необходимости использовать собственный SQL, более широкую поддержку сообщества, лучшую производительность и т. д.

Это мой вежливый способ сказать, что для реального, относительно сложного проекта я не Не думаю, что текущая версия Entity Framework - лучший вариант по сравнению с другими доступными инструментами O / RM.

По-видимому, грядущая версия Microsoft Entity Framework .NET 4.0 / VS2010 значительно улучшена, поэтому в следующем году приведенное выше утверждение может оказаться неверным. В новой Entity Framework добавлена ​​поддержка DDL, например, поэтому вы можете создавать таблицы и индексы независимо от СУБД. Кроме того, .NET 4.0 Entity Framework использует классную функцию под названием T4 Templates , которая представляет собой удобную функцию для автоматической генерации кода во время сборки, что важно для таких вещей, как оболочки O / RM, которые должны синхронизироваться с внешней схемой БД - и это должно дать лучшую (также известную как предварительно скомпилированную) производительность, чем инструменты O / RM, которые не знают типы столбцов базы данных до времени выполнения.

12
ответ дан 18 December 2019 в 11:57
поделиться

Как я понял, вы ищете инструмент для написания независимого от СУБД SQL, но не ORM. Это очень актуальная проблема, которую разные производители ORM решают по-разному. Я просто могу упомянуть инструмент Xtensive SQL DOM , который был разработан для их ORM - DataObjects.Net . Это абстракция над SQL, позволяющая писать запросы с использованием полнофункциональной модели DOM. В настоящее время SQL DOM не продвигается отдельно от DataObjects.Net, но это продукт с открытым исходным кодом, и вы, безусловно, можете спросить об этом его авторов. Насколько мне известно, он успешно используется в некоторых сторонних проектах.

2
ответ дан 18 December 2019 в 11:57
поделиться

Не напрямую от Microsoft. Эти инструменты обычно называются объектно-реляционными преобразователями или сокращенно ORM. NHibernate, например, является распространенным и широко используемым ORM, который наверняка соответствует вашим потребностям. Конечно, есть и другие коммерческие продукты, такие как Telerik OpenAccess ORM, DevExpress XPO или RemObjects DataAbstract, которые помогут вам не зависеть от базы данных.

1
ответ дан 18 December 2019 в 11:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: