| 
			
			 | 
		#1 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
			
			
			В NAV 2009 код C/AL конвертится в C#, а что же будет в DAX?
			 
			
			Случайно наткнулся на сообщение из чьего-то блога касаемо 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.  | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: Lemming (1). | |
| Теги | 
| .net, msil, x++, компиляция | 
| 
	
	 | 
	
		
  |