Случайно наткнулся на
сообщение из чьего-то блога касаемо NAV 2009 и появившегося там (а, может, и не там, а раньше, - я не в теме) некоего аналога сервера приложений Аксапты - Service Tier. В сообщении есть очень интересные моменты (в вольном переводе):
Цитата:
Что такое Service Tier?
Очень кратко - это промежуточный уровень в Microsoft Dynamics NAV 2009. Именно на этом уровне [теперь?] выполняется весь доступ к БД и вся бизнес-логика, что также означает, что именно на этом уровне выполняется код приложения.
...
А этот Service Tier занимается интерпретацией кода C/AL?
Как вы, вероятно, уже знаете, ответ на этот вопрос - нет. В NAV 2009 большая часть этого самого Service Tier написана на C# и выполняется в виде управляемого кода, кроме того, приложение тоже конвертируется в C# и во время работы также выполняется в виде скомпилированного управляемого кода.
Это происходит за счет того, что каждый раз, когда вы компилируете объект в C/SIDE, этот объект "за кулисами" транслируется в C#, и этот исходный код C# сохраняется в таблице Object Metadata в BLOB-поле с названием User Code. Кроме того, в таблице Object Tracking обновляется поле Object Timestamp, что позволяет Service Tier'у увидеть и подхватить эти изменения. Когда ему нужно выполнить код объекта, соответствующий объекту исходный код C# записывается на диск и посредством неких манипуляций компилируется в модуль, который может быть загружен на динамически, что позволяет Service Tier на лету заменять отдельные code unit'ы, страницы, etc.
Вот ведь... конечно, там начинаются всякие веселые вищи с отладкой, когда пишешь код на одном языке, а отлаживаешь на другом. Но в целом занимательно... Кто-нить в курсе, не планируется ли такое в Аксапте?