Показаны сообщения с ярлыком Delphi Prism. Показать все сообщения
Показаны сообщения с ярлыком Delphi Prism. Показать все сообщения

вторник, 20 января 2009 г.

Delphi Prism - первое знакомство

Пару дней назад кое-как руки дошли и до нового продукта - Delphi Prism. (Что-то отставать я стал от технологий :)). Буду наверстывать.

Первое что бросается в глаза - разработчики обленились не стали возиться с собственной IDE и воспользовались бесплатным готовым решением компании Microsoft - оболочкой Microsoft Visual Studio.

Собственно, как и обещали разработчики - Delphi Prism совершает скачок из феодализма в коммунизм из .NET 1.1 в .NET 3.5. И первым подключенным по умолчанию модулем является System.Linq. На эту возможность я и решил сегодня посмотреть в первую очередь.

Для первого теста я выбрал LINQ to XML - решил посмотреть как будет выглядеть работа с XML файлами здесь. Файл и задачу выбрал такую же что и в моем предыдущем посте про работу с XML в Delphi. И по аналогии с C# быстро набросал код программы.

Первое, что бросилось в глаза - синтаксис LINQ немного отличается, так например меня ввело в ступор сообщение об ошибке на операторе orderby, оказывается тут он пишется как order by. Так же по привычке объявил переменные перед блоком begin ... end; что тут являлось ошибкой. :)

В конце-концов у меня получился следующий код:


namespace ConsoleApplication1;

interface

uses
System.Linq,
System.Xml,
System.Xml.Linq;

type
ConsoleApp = class
public
class method Main;
end;

implementation

class method ConsoleApp.Main;
begin
var ComputersFile: System.Xml.Linq.XElement;
ComputersFile := XElement.Load('test.xml');
var Elements := from el in ComputersFile.Descendants()
where el.Name = 'DisplayName'
order by el.Value
select el;

for e in Elements do
Console.WriteLine(e.value);

Console.Read;
end;

end.

Такую же программу я написал и на C# и решил их сравнить. Первое - размеры файлов были разные. Файл написанный с помощью Delphi Prism был больше. Мне это показалось странным - решил выяснить. Оказалось все просто: Delphi по умолчанию даже к консольному приложению, по каким-то своим личным соображениям добавляет иконку по умолчанию, удалив ее - размеры файлов стали одинаковы.

Еще не поленился дизассемблировать обе версии программы. IL-код их оказался совершенно разным, как собственно я и предполагал, сам не знаю что я надеялся там увидеть :) Не стал дальше копать и на этом решил пока остановиться.

В общем, первое впечатление осталось приятное - надо бы найти время по плотнее сесть поразбираться, но катастрофически ни на что не хватает времени.

Кстати в поставку Delphi Prism входят провайдеры для доступа к базам данных Interbase и Blackfish SQL, что позволяет писать управляемый код для работы с этими базами данных. Интересно, а как Delphi Prism интегрируется с Visual Studio? Будут ли доступны эти провайдеры при написании кода на C#? Но это уже материал для следующей заметки...