Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2006.03.12;
Скачать: [xml.tar.bz2];

Вниз

А кто что думает про RemObjects Chrome?   Найти похожие ветки 

 
vuk ©   (2006-02-16 11:50) [0]

Я посмотрел документацию... Вроде ничё так... Оно, конечно, олько под .NET, но там есть многие возможности, которых от Borland просили давно, но так и не дождались. И есть подозрение, что не дождемся теперь...


 
vuk ©   (2006-02-16 16:56) [1]

Тэ-э-эк... Никто ничего не думает?
Ну тогда вот для затравки.

По синтаксису Chrome - это на 80% Delphi.
Но есть некоторые отличия и расширения.

То что бросилось в глаза.

1. Generics.
Выглядит примерно так:
type
 PersistentCollection<T> = public class(ArrayList, IPersistentCollection)
   where T is PersistentObject, T has constructor;
 private
   method GetItem(aIndex: Integer): T;
 protected
   method GetItemName: String; virtual;
 public
   method LoadFromXml(aNode: XmlNode); virtual;
   method SaveToXml(aNode:XmlNode); virtual;
   property Items[aIndex: Integer]: T read GetItem;
   method AddNew: T;
   method AddNew(aName: String): T;
 end;


Method - можно писать вместо procedure и function

2. Обработка исключений почти такая же, но есть доп. фичи
try
 // :
except
 on E: SocketException where E.Errorcode = 10054 do begin
     // connection was closed gracefully
 end;
end;


3. Делегаты. В Delphi - "of object"
type
 MyEvent = delegate (Sender: Object; Args: MyCustomArgs);


4. with до кучи имеет такой синтаксис:

with p: Person := PersonArray[i] do begin
 :
 p.Name := "Klaus";
 :
end;

with b: Button := new Button do
 with c: Color := b.BackColor do begin
   :
   b.Text := "Hello World";
   self.Text := c.ToString;
   :
 end;
end;


5. using. примерно как в C#
using f := new FileStream(..) do begin
 :
end;


6. contracts
method MyObject.Add(aItem: ListItem);
require
 assigned(aItem) : "List Item for MyObject cannot be nil";
begin
 InternalList.Add(aItem);
ensure
 Count = old Count +1 : "MyObject: Count logic error";
End;


7. Invariants. Привожу цитату из Help


> In contrast to pre and post
> conditions, Invariants are used to define a fixed state
> the object must
> fulfill at any given time. Invariants can be public or private.
>  Public
> invariants will be checked at the end of every public method
> (after the
> method"s "ensure" block, if present, has been checked) and
> if an invariant
> fails, an assertion is raised. Private invariants will be
> checked at the end
> of every method call, public or private. The idea behind
> this separation is
> that public invariants must not be met by private methods,
>  so theoretically
> a public method can defer work to several private worker
> methods, and public
> invariants would only be checked after the public method
> finishes
> Examples:

type
 MyClass = class
 public
   : some methods or properties
 public invariants
   fField1 > 35;
   SomeProperty = 0;
   SomeBoolMethod() and not (fField2 = 5);
 private invariants
   fField > 0;
 end;


8. case по типу объекта
case somebody type of
 Person: msg := msg_Person;
 Employee: msg := msg_Employee;
end;


 
Игорь Шевченко ©   (2006-02-16 17:24) [2]

Все бы хорошо, еще бы документация на русском была - цены бы не было :)


 
vuk ©   (2006-02-16 18:28) [3]

>еще бы документация на русском была - цены бы не было
Это с каких это пор ты отказываешься доки на англицком читать? :)


 
Игорь Шевченко ©   (2006-02-16 18:30) [4]

vuk ©   (16.02.06 18:28) [3]

Да я не отказываюсь, просто настолько уже басурманский текст приелось читать, а главное, вникать в него :)


 
Суслик ©   (2006-02-17 12:35) [5]

Вопрос, а зачем он нужен?
Это для работы или для образования? (их сайт посмотрел, времени глубоко внимать нет).


 
DrPass ©   (2006-02-17 13:36) [6]

Для работы. В .NET компилятор существует не сам по себе, он пользуется общей средой и библиотеками. Так что вся мощь Visual Studio доступна и пользователям Chrome. В свете последних веяний есть вероятность, что любители Паскаля рано или поздно будут работать именно на Chrome :-)


 
vuk ©   (2006-02-17 14:22) [7]

Да, вот еще про исключения. В отличие от Delphi, где два типа блоков - try..except..end и try..finally..end, в Chrome только один - try..except..finally..end, что несколько удобнее, не нужно делать вложенных блоков для обработки исключений и финализации.

to Суслик ©   (17.02.06 12:35) [5]:
>Вопрос, а зачем он нужен?
Хороший вопрос. Зачем нужен компилятор? Компилировать, ясен пень! :o)
А вообще говоря, см DrPass ©   (17.02.06 13:36) [6]. Тут ведь в чем дело, большинство возможностей, отличающих Chrome от Delphi - это то, что давно просили у Борланд и на что были ответы в духе "идите на фиг" и "может быть в следующей пятилетке".


 
Игорь Шевченко ©   (2006-02-17 14:26) [8]

vuk ©   (17.02.06 14:22) [7]


> Да, вот еще про исключения. В отличие от Delphi, где два
> типа блоков - try..except..end и try..finally..end, в Chrome
> только один - try..except..finally..end, что несколько удобнее,
>  не нужно делать вложенных блоков для обработки исключений
> и финализации.


Что несколько неудобнее, так как не каждый раз используются два блока вместе (try..except и try..finally вокруг него или наоборот, внутри). В моей практике чаще встречались либо try..finally, либо try..except


 
Суслик ©   (2006-02-17 14:30) [9]


> Хороший вопрос. Зачем нужен компилятор? Компилировать, ясен
> пень! :o)

Т.е. это что-то типа компилятор delphiподобного языка в net?


 
Igorek ©   (2006-02-17 14:41) [10]

http://www.remobjects.com/testimonials/


 
vuk ©   (2006-02-17 15:56) [11]

to Игорь Шевченко ©   (17.02.06 14:26) [8]:
>Что несколько неудобнее, так как не каждый раз используются два блока
>вместе
Любой из блоков except и finally можно пропускать, что позволяет получать полные эквиваленты Delphi-шным.

to Суслик ©   (17.02.06 14:30) [9]:
>Т.е. это что-то типа компилятор delphiподобного языка в net?
Угадал. :o)


 
Игорь Шевченко ©   (2006-02-17 16:00) [12]

vuk ©   (17.02.06 15:56) [11]


> Любой из блоков except и finally можно пропускать, что позволяет
> получать полные эквиваленты Delphi-шным


Вот же сволочи.

Ну точно, осталось документацию на русском, и чтобы в VS Express Edition встраивался.


 
Igorek ©   (2006-02-17 16:40) [13]

> Игорь Шевченко ©   (17.02.06 16:00) [12]
> Вот же сволочи.
>
> Ну точно, осталось документацию на русском, и чтобы в VS
> Express Edition встраивался.

Попробую что-нибуть сделать. ;)


 
Джо ©   (2006-02-17 16:54) [14]

Хороший язык.
Мне очень понравились async methods. Многопоточность без лишней писанины и очень наглядная.


 
jack128 ©   (2006-02-17 16:59) [15]

Игорь Шевченко ©   (17.02.06 16:00) [12]
и чтобы в VS Express Edition встраивался


не знаю, как в EE, а в обычную студию встраивается http://www.chromesville.com/articles/?id={E7D39DFF-B0AE-4EE9-8C98-4F2BC22E5231}


 
Игорь Шевченко ©   (2006-02-17 17:36) [16]

jack128 ©   (17.02.06 16:59) [15]

Обычная денег стоит, ЕЕ в течение года вроде бесплатная.



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2006.03.12;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.017 c
1-1139152821
t0mk4
2006-02-05 18:20
2006.03.12
shurtcut - ссылка на компонент


15-1139825192
Интересующийся
2006-02-13 13:06
2006.03.12
Кактеровки на валюты, акции, нефть и золото


3-1137869326
Alex222
2006-01-21 21:48
2006.03.12
Компилятор ругается на несовпадение типов.


3-1137241298
vol
2006-01-14 15:21
2006.03.12
Как установить нужную кодировку MySql в Дулфи


15-1140432721
kaZaNoVa
2006-02-20 13:52
2006.03.12
Алгоритм ограничения числа запусков программы/времени работы





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский