- Delphi developer certification – resources – embarcadero website
- Delphi, subject сертификата и tstrings
- Есть ли сертификация по дельфи?
- Как использовать эцп в файле .p12 в delphi?
- Как лицензируется по сделанное в delphi? как лицензируется компоненты?
- Компания embarcadero объявляет о запуске программы сертификации разработчиков delphi
- Этап 1. подготовка к тестированию
- Этап 2. обращение в центр сертификации партнера embarcadero
- Этап 2. регистрация для сдачи экзамена
Delphi developer certification – resources – embarcadero website
The Delphi Certified Developer exam tests your general knowledge of Delphi programming concepts. You will be tested on language syntax, programming techniques, using the IDE, and database development. The test will identify you as a special member of the global Delphi community. Developers who use the study guide and have at least two years of Delphi programming experience should be able to pass the Delphi Certified Developer exam.
This certification may be used as part of an ongoing skills improvement program within a company. Achieving certification may help a developer move forward inside an organization or move into a new job. This certification can be used by a potential employer as one part of a hiring process.
Embarcadero does not certify or represent that the individual has the necessary skills or qualities for a particular project or a particular employer. Since the Delphi Certified Developer exam is taken un-proctored and online by the individual, Embarcadero cannot ensure that the individual taking the Delphi Certified Developer exam is in fact the actual individual named in the test certification.
Delphi, subject сертификата и tstrings
Время от времени мне приходится немного программировать на Delphi. При этом следует отметить, что долгое время Delphi был моим основным профессиональным инструментом – языком и IDE. В свое время он обошел в списке моих предпочтений таких “тяжеловесов” как C и C . Произошло это в середине 90-ых прошлого тысячелетия (😉) – именно тогда я стал пользоваться первой версией этого замечательного продукта, еще на Windows 3.11. Но затем, году так в 2004, меня заинтересовал C# с .Net, а где-то в 2006 я поучавствовал в первом проекте на Java, и аббревиатура JDK, а с ней и сама платформа, постепенно стали моими новыми фаворитами. И теперь я лишь время от времени правлю что-нибудь в legacy проектах на Delphi.
И вот совсем недавно мне пришлось воспользоваться Delphi 6, чтобы реализовать изменения, которые потребовались пользователям небольшой утилитки. Утилита эта отображает информацию о сертификатах, записанных на специализированных носителях, в качестве которых выступают так называемые токены: у нас это обычно eToken или ruToken. Речь шла о небольшой правке – раньше в окне программки информация о Subject сертификата (все эти Е, L, OU и CN) выводилась в виде строки, а теперь пользователи захотели видеть каждый элемент отдельно, да еще и в определенном порядке. Нужно это им было для визуальной проверки сертификатов, выпущенных нашим авторизованным УЦ.
С точки зрения изменений пользовательского интерфейса вопросов у меня практически не возникло: было понятно, что TMemo надо будет заменить на TStringGrid, TListBox или TListView. Да и над тем, как реализовать нужное преобразование, я размышлял не очень долго. Чтобы понять, почему, достаточно взглянуть на то, как выглядит значение Subject в сертификате. Вот самый обычный пример:
CN="Фамилия Имя; АО ""Название организации""", OU=Подразделение, O="АО ""Название организации""", L=Город, S=Регион, C=Страна, E=some@email.com, GN=Имя Отчество
То есть, это значение из себя представляет набор подстрок в формате key=value, разделенных, если внимательно присмотреться, строками ", " (запятая и пробел). К тому же, часть строк, являющихся значениями (частью value), представлены в так называемом “quoted” формате, при использовании которого в начале и в конце строки ставится cимвол " (двойные кавычки), а если эти самые двойные кавычки встречаются в самой строке, то они удваиваются.
Начнем с того, что со строками в фомате key=value в Delphi можно замечательно работать при помощи класса TStrings: у него есть свойство Values, которое, как раз, и позволяет получить значение value по ключу name. Все очень просто:
...
val := StringsList.Values['key'];
...
Но для такой простой записи строку значения Subject сертификата предварительно надо поместить в TStrings. Решение для этой части показалось мне настолько простым и очевидным, что я без малейших сомнений и раздумий написал следующий код:
...
StringsList.CommaText := CertificateSubjectValueString;
...
Эйфория прошла при первом же тестовом прогоне – что все-таки делает время, в течени которого ты не пользуешься инструментом! TStrings в результате заполнился строками, но немного не так, как я ожидал. На самом деле, в документации свойства CommaText все разжевано, но память меня подвела, а заглянуть по приведенной ссылке мне помешала самоуверенность. Проблема была в том, что CommaText под разделителем понимает не только символ , но и пробел и вообще любой непечатный символ.
Первым порывом после неудачи было попробовать свойство DelimitedText, но я вовремя вспомнил, что CommaText и DelimitedText по сути – близнецы-братья, о чем, собственно упоминает и документация, а свойство StrictDelimiter в Delphi 6 еще не изобрели. После осознания этого факта стало понятно, что придется подогнать к нужному виду саму входную строку. И тут, в общем-то, все было довольно очевидно:
- надо заменить все разделительные строки
", "на простые запятые (,); тут на помощь пришел тот факт, что в наших сертификатах внутри строк-значений (частей “value”) последовательность", "не встречалась - надо заменить все оставшиеся пробелы (
" ") на какой-нибудь другой символ, главное, чтобы тот не встречался в первоначальной строке, так как придется выполнять обратное преобразование; я выбрал"~"– его в наших сертификата тоже нет - надо избавиться от “quoted” строк, чтобы
CommaTextне применил каких-нибудь своих правил их обработки; я заменил все"на|, так как этот символ в исходных строках не встречался совсем
Приведенные выше преобразования я выполнил последовательным вызовом метода AnsiReplaceStr, причем именно в том порядке, что привел выше. Получившуюся после преобразований строку просто “скормил” CommaText, который замечательно справился со своей задачей – разбил ее на подстроки.
Но это было только частью работы. При заполнении элемента пользовательского интерфейса надо выполнить обратные преобразования – вернуть двойные кавычки и пробелы, после того, как нужное значение добыто из свойства Values. Это обратное преобразование я выполнял при помощи все той же AnsiReplaceStr. А для того, чтобы потом разобраться с “quoted”-строками я воспользовался методом AnsiDequotedStr. Надо отметить, что этот метод выгодно отличается от AnsiExtractQuotedStr тем, что в случае, если исходная строка не является “quoted”-строкой, последний возвращает пустую строку, а использованный мной метод просто возвращает первоначальную строку без изменений. Это поведение подходит мне как нельзя лучше, так как не все значения атрибутов Subject закодированы в виде “quoted”-строк, есть и самые обычные строки. И если бы не было бы AnsiDequotedStr, то пришлось бы городить дополнительные проверки.
А что касается обеспечения необходимого порядка, то я просто производил обращение к свойству Values используя ту последовательность ключей, которую указали пользователи – сертификаты, выпущенные нашим УЦ, обладают еще такой особенностью, что Subject сертификата всегда содержит строго определенный набор полей. Вот, собственно, что получилось:
// Процедура по заполнению экземпляра TStringGrid-а
// значениями полей Subject-а сертификата
// Параметр aSubject - строка Subject-а сертификата
procedure TTSATCMainForm.SplitSubject(aSubject: string);
var
lst: TStringList;
begin
lst := TStringList.Create;
try
// Заменим символы и присвоим получившееся значение свойству CommaText
lst.CommaText := AnsiReplaceStr( // Заменим '"' на "|"
AnsiReplaceStr( // Заменим ' ' на '~'
AnsiReplaceStr(aSubject, ', ', ',') // Заменим ', ' на ','
, ' ', '~')
,'"', '|');
// Установим значение из UnstructuredName
strgSubject.Cells[0, 0] :=
GetSubjectElementValue(lst.Values['OID.1.2.840.113549.1.9.2']);
// Установим значение из CommonName
strgSubject.Cells[0, 1] := GetSubjectElementValue(lst.Values['CN']);
// Установим значение из SurName
strgSubject.Cells[0, 2] := GetSubjectElementValue(lst.Values['SN']);
// Установим значение из GivenName
strgSubject.Cells[0, 3] := GetSubjectElementValue(lst.Values['G']);
// Установим значение из OrganizationalUnit
strgSubject.Cells[0, 4] := GetSubjectElementValue(lst.Values['OU']);
// Установим значение из Organization
strgSubject.Cells[0, 5] := GetSubjectElementValue(lst.Values['O']);
// Установим значение из State
strgSubject.Cells[0, 6] := GetSubjectElementValue(lst.Values['S']);
// Установим значение из Locality
strgSubject.Cells[0, 7] := GetSubjectElementValue(lst.Values['L']);
// Установим значение из Country
strgSubject.Cells[0, 8] := GetSubjectElementValue(lst.Values['C']);
// Установим значение из EMail
strgSubject.Cells[0, 9] := GetSubjectElementValue(lst.Values['E']);
// Установим значение из ИНН
strgSubject.Cells[0, 10] := GetSubjectElementValue(lst.Values['ИНН']);
// Установим значение из ОГРН
strgSubject.Cells[0, 11] := GetSubjectElementValue(lst.Values['ОГРН']);
// Установим значение из СНИЛС
strgSubject.Cells[0, 12] := GetSubjectElementValue(lst.Values['СНИЛС']);
finally
FreeAndNil(lst);
end;
end;
// Функция получения значения для ячейки экземпляра TStringGrid-а
// Параметр anElement - преобразованная ранее строка значения
// Возвращаемое значение - строка для ячейки
function TTSATCMainForm.GetSubjectElementValue(anElement: string): string;
begin
result := AnsiDequotedStr( // преобразуем "quoted" строку
AnsiReplaceStr( // заменим '|' на '"'
AnsiReplaceStr(anElement, '~', ' '), // заменим '~' на ' '
'|', '"'),
'"');
end;
Вот, пожалуй, и все. Зачем я, собственно, рассказал об этом случае. Самое главное в этой истории то, что если долго не пользуешься инструментом, даже тем, который, казалось бы, знаешь вдоль и поперек, детали начинают стираться. А потому, на мой взгляд, в поддержке legacy проектов есть польза – она позволяет время от времени возвращаться к используемым ранее языкам, IDE, технологиям и так далее и тому подобное, и не дает окончательно их забыть… Вот теперь, действительно, все.
Есть ли сертификация по дельфи?
N A N
(2002-10-29 09:01)
[0]
Есть ли сертификация по Дельфи?
![]()
![]()
← →
Anatoly Podgoretsky
(2002-10-29 09:20)
[1]
Есть
![]()
![]()
← →
N A N
(2002-10-29 09:24)
[2]
А где почитать то про нее ? Я на сайте у них ничего не нашел..
![]()
![]()
← →
Anatoly Podgoretsky
(2002-10-29 09:50)
[3]
Хочешь я тебе сертификат выдам или сам на найди в Интеренете
![]()
![]()
← →
N A N
(2002-10-29 09:58)
[4]
А ты что типа самый умный да? Расдаешь сертификаты? У тя лицензия на это есть???
Я серьезно спрашиваю. Если бы я нашел в инете информацию об этом то не спрашивал бы.
Просто не слышал и не встречал нигде инфы о сертификации по продуктам Борланд.
![]()
![]()
← →
Anatoly Podgoretsky
(2002-10-29 10:05)
[5]
Вернемся в самое начало и посмотрим вопрос, я так понимаю мой сертификат тебя не устраивает, тогда чей тебе подойдет?
А не произойдет ли тоже самое и с другими сертификатами.
Давай сначала уточни КАКОЙ и ЧЕЙ тебе сертификат нужет, модет тебе от Борланда что нибудь подойдет.
![]()
![]()
← →
Кулюкин Олег
(2002-10-29 10:21)
[6]
2 N A N (29.10.02 09:01)
А набрать в Яндексе “сертификат delphi” рука не поднимается?
В первых же десяти ссылках есть адрес сайта, который этим занимается.
![]()
![]()
← →
alxx
(2002-10-29 10:37)
[7]
www.brainbench.com
![]()
![]()
← →
N A N
(2002-10-29 10:43)
[8]
Мне необходима информация о том, есть ли у Борланда что-то подобное MCP от Microsoft. Все что вываливается при поиске на яндексе не то. Это самодельные сертификационные экзамены(по крайней мере то что я видел “Специалист” и “BrainBench”).
![]()
![]()
← →
N A N
(2002-10-29 10:45)
[9]
Ага www.brainbench.com!!! Где гарантия что ты не сдавал его сидя с монстром по дельфи за спиной???
Вот MCP это другое дело. Там все по правилам…
![]()
![]()
← →
N A N
(2002-10-29 10:47)
[10]
2 Anatoly Podgoretsky
>я так понимаю мой сертификат тебя не устраивает, тогда чей тебе подойдет?
Что значит мой сертификат? Подробнее можно?
![]()
![]()
← →
N A N
(2002-10-29 11:31)
[11]
Ну народ! Мастаки?!?! Ну ответьте! Елки палки.Где Вы Anatoly Podgoretsky??? Что там за сертификат Вы выдаете?
![]()
![]()
← →
Nikolay M.
(2002-10-29 11:38)
[12]
> Мне необходима информация о том, есть ли у Борланда что-то
> подобное MCP от Microsoft
На моей прошлой работе (года 3 назад) у ведущего программиста был диплом “Сертифицированный программист на Delphi 4”. Выдавала его наша конторка, сертифицированная Борландом. Диплом стоил 600 зеленых по тем временам. Его получение сводилось к прослушиванию недельных курсов часов по 5 в день, без каких-бы то ни было выпускных экзаменов.
![]()
![]()
← →
LordOfSilence
(2002-10-29 11:47)
[13]
To N A N.
Подождите, не паникуйте!
Могу Вам выслать информацию по курсам
и сертификациям, которая организует одна
московская фирма. Направлений много:
Microsoft, Novell, Borland, Linux и т.д.
Хорошо расписаны сертификаты от Microsoft
(ну еще бы :-)). Остальные расписаны по
обучающим курсам, о сертификатах конкретно
не сообщается, но можно связаться с фирмой
и уточнить. EMail и телефон имеется.
Если Вас это заинтересовало – обращайтесь по почте.
![]()
![]()
← →
Anatoly Podgoretsky
(2002-10-29 12:01)
[14]
Ну теперь ты понял, что сертификат сертификату рознь, мне пока все равно не ясны цели, но наилучшие сертификаты полученные напрямую от борланда или от фирм имеющих сертификат от Борланда на сертификацию других. Надеюсь что ты сходил к первоисточнику, то есть к Борланду и посмотрел их сертификационную программу?
![]()
![]()
← →
N A N
(2002-10-29 12:17)
[15]
Все Ок! Нашел. Спасибо. Тока в России нет похоже центров где принимают экзамены… :-((
![]()
![]()
← →
Opuhshii
(2002-10-29 12:18)
[16]
2N A N (29.10.02 10:45)
“Ага www.brainbench.com!!! Где гарантия что ты не сдавал его сидя с монстром по дельфи за спиной???”
для Вас сертификат – показатель?,.. если да то чего?…
непонятен смысл который вы вкладываете в сертификат,.. и от этого непонятно какой сертификат вам нужен…
рискну предположить что отношение ваше к получению сертификата, примерно такое же как у некоторых личностей к получению значка “Мастер Дельфи”,.. что-то в стиле: он у меня будет, и я сразу буду круче всех крутых яиц,.. и будет все круто…
![]()
![]()
← →
Anatoly Podgoretsky
(2002-10-29 12:19)
[17]
N A N (29.10.02 12:17)
Значит ты не обращался в российское представительство Борланд
![]()
![]()
← →
N A N
(2002-10-29 12:27)
[18]
2 Opuhshii
>для Вас сертификат – показатель?,.. если да то чего?…
>непонятен смысл который вы вкладываете в сертификат,.. и от >этого непонятно какой сертификат вам нужен…
Для чего, зачем, показатель чего -> Все здесь описано
http://www.borland.ru/services/certification/index.html
И еще куча Benefits есть на Microsoft.com.
2 Anatoly Podgoretsky
Что то я там не найду более подробной инфы. Где сдавать, программы?
![]()
![]()
← →
Anatoly Podgoretsky
(2002-10-29 12:36)
[19]
Напиши письмо с запросом условий
![]()
![]()
← →
N A N
(2002-10-29 12:39)
[20]
Спасибо Вам Anatoly Podgoretsky! Извините за грубость выше.
![]()
![]()
Как использовать эцп в файле .p12 в delphi?
Даю пару примеров, чтобы Вы поняли, в каком направлении двигаться:
Пример 1.
// Пример работы с сертификатами. Поиск по номеру сертификата.
// В дельфи номер пишется в обратном порядке!
class function TDigitalSigner.GetCertificateBySerialNumber(const aSerialNumber: string): PCCERT_CONTEXT;
var
hStore: hcertstore;
begin
hStore := CertOpenSystemStore(0, 'MY');
Result := CertFindCertificateInStore(hStore, X509_ASN_ENCODING or PKCS_7_ASN_ENCODING, 0, CERT_FIND_ANY, PChar(aSerialNumber), nil);
end;Пример 2.
function EncryptAndSign(ASignCertContent: string; AEncCerts: TStringList; FileName, OutFileName: string; out ErrText: string): Boolean;
var
hProv : HCRYPTPROV;
hStoreHandle: hcertstore;
pSignerCert : jwawincrypt.PCCERT_CONTEXT;
encCert : jwawincrypt.CRYPT_DATA_BLOB;
SigParams : jwawincrypt.CRYPT_SIGN_MESSAGE_PARA;
pCertContext: PCCERT_CONTEXT;
Stream : TMemoryStream;
Certificates: array [0 .. 100] of PCCERT_CONTEXT;
EncParams : CRYPT_ENCRYPT_MESSAGE_PARA;
cbEncrypted : DWORD;
i : integer;
pszObjId : LPSTR;
const
PROV_GOST_2001_DH = 75;
begin
Result := false;
for i := 0 to 100 do
Certificates[i] := nil;
if not jwawincrypt.CryptAcquireContext(hProv, nil, nil, PROV_GOST_2001_DH, CRYPT_VERIFYCONTEXT) then
exit;
hStoreHandle := CertOpenSystemStore(hProv, 'MY');
if (hStoreHandle = nil) then
begin
ErrText := 'ErrorOpenStore';
exit;
end;
for i := 0 to AEncCerts.Count - 1 do
begin
try
encCert := GetCertContent(FileToStr(AEncCerts.Strings[i]));
except
ErrText := 'ErrorCertLoad';
Continue;
end;
pCertContext := jwawincrypt.CertCreateCertificateContext(MYTYPE, encCert.pbData, encCert.cbData);
pCertContext := jwawincrypt.CertFindCertificateInStore(hStoreHandle, MYTYPE, 0, CERT_FIND_EXISTING, pCertContext, nil);
if (pCertContext = nil) then
begin
ErrText := 'ErrorCertInStoreNotFound';
Continue;
end;
Certificates[i] := pCertContext;
end;
encCert := GetCertContent(FileToStr(ASignCertContent));
// Открываем хранилище сертификатов
pSignerCert := nil;
pSignerCert := jwawincrypt.CertCreateCertificateContext(MYTYPE, encCert.pbData, encCert.cbData);
pSignerCert := jwawincrypt.CertFindCertificateInStore(hStoreHandle, MYTYPE, 0, CERT_FIND_EXISTING, pSignerCert, nil);
if (pSignerCert = nil) then
begin
exit;
end;
with TMemoryStream.Create do
try
LoadFromFile(FileName);
try
try
// Инициализация структуры, необходимой для цифровой подписи
pszObjId := szOID_RSA_MD5; // получение алгоритма сертификата
FillChar(SigParams, Sizeof(CRYPT_SIGN_MESSAGE_PARA), #0);
SigParams.cbSize := Sizeof(CRYPT_SIGN_MESSAGE_PARA);
SigParams.dwMsgEncodingType := MYTYPE;
SigParams.pSigningCert := pSignerCert;
SigParams.HashAlgorithm.pszObjId := pszObjId;
// для Сигнал - Com szOID_RSA_MD5;// 1.2.643.2.2.21
SigParams.HashAlgorithm.Parameters.cbData := 0;
SigParams.cMsgCert := 1;
SigParams.rgpMsgCert := @pSignerCert;
SigParams.cAuthAttr := 0;
SigParams.dwInnerContentType := 0;
SigParams.cMsgCrl := 0;
SigParams.cUnauthAttr := 0;
SigParams.dwFlags := 0;
SigParams.pvHashAuxInfo := nil;
SigParams.rgAuthAttr := nil;
ZeroMemory(@EncParams, Sizeof(CRYPT_ENCRYPT_MESSAGE_PARA));
EncParams.cbSize := Sizeof(CRYPT_ENCRYPT_MESSAGE_PARA);
EncParams.dwMsgEncodingType := MYTYPE;
EncParams.HCRYPTPROV := hProv;
EncParams.ContentEncryptionAlgorithm.pszObjId := szOID_CP_GOST_28147;
// Алгоритм шифрования ГОСТ 28147-89 1.2.643.2.2.21
if CryptSignAndEncryptMessage(@SigParams, @EncParams, AEncCerts.Count, @Certificates, Memory, Size, nil, cbEncrypted) then
begin
Stream := TMemoryStream.Create;
try
Stream.SetSize(cbEncrypted);
if CryptSignAndEncryptMessage(@SigParams, @EncParams, AEncCerts.Count, @Certificates, Memory, Size, Stream.Memory, cbEncrypted) then
begin
Stream.SetSize(cbEncrypted);
Stream.SaveToFile(OutFileName);
Result := True;
end
else
ErrText := SysErrorMessage(GetLastError);
finally
FreeAndNil(Stream);
end;
end
else
ErrText := SysErrorMessage(GetLastError);
except
ErrText := SysErrorMessage(GetLastError);
end;
finally
CertCloseStore(hStoreHandle, CERT_CLOSE_STORE_CHECK_FLAG);
end;
finally
Free;
end;
end;Как лицензируется по сделанное в delphi? как лицензируется компоненты?
Добрый день!
Столкнулся с почти моральной проблемой. Довольно давно знаком с Delphi, у меня на ней есть небольшой проект, который я потихоньку пилю.
Итак вопросы: накладываются ли какие-либо ограничения на софт написанный на Delphi? Т. е. предположим я купил лицензию Delphi, дальше я могу распространять программы на нем писанные? Я подозреваю, что ограничений не должно быть (подскажите если не так).
А в случае если лицензии Delphi у меня все же нет, я могу как то распространять этот софт? Т.е. предположим у меня есть друг у которого есть лицензия – могу ли я использовать его Delphi для компиляции своей программы? Или у меня в вузе есть Delphi, например, могу ли я воспользоваться этим?
Что более важно, (т. к. одну лицензию можно и купить) как ведется работа над Delphi OpenSource проектами? Получается, что все разработчики (а так же конечные пользователи, если распространяться будут только исходники, без бинарников) должны иметь лицензионную Delphi? Нет ли каких либо обходных путей (в рамках закона, разумеется, ибо вне рамок решения более очевидны)?
Но что меня более интересует, это то как лицензируются компоненты Delphi? Т. е. Delphi (насколько я понимаю) включает в свой состав некоторое количество исходного кода, все те подключаемые модули в uses, а так же библиотеку визуальных компонентов. Можно ли использовать этот код? Если есть ограничения на его копирование, то как этот процесс регулируется? Т. е. можно ли заимствовать куски кода? Юниты целиком? Если нельзя копировать кусок юнита, то можно ли внимательно посмотреть на него, понять как он работает и затем написать свой, который просто похож? По идее имея лицензию Delphi я могу свободно распространять писанные на ней программы (я так думаю, поправьте, если не прав).
Но что будет, если грубо говоря: кто-то покупает лицензию, и затем пишет на Delphi другую свою IDE (с нескучными обоями, ага), которая максимально использует исходники поставляемые с делфи – допустимо ли это? Можно ли взять тех же VCL компонентов и сделать из них библиотеку (dll) виджетов аля wxWidgets или Qt? Можно ли будет ее свободно распространять?
Может есть статья которая рассказывает, что можно делать с Dephi, что можно распространять и какие есть ограничения.
P. S. Вариант “не использовать Delphi” вообщем то рассматривается, но пока я хочу понять как обстоят дела именно с ней.
P. S. Lazarus, увы, не подходит, т.к. для того конкретного проекта из-за которого я интересуюсь он не обладает необходимыми фичами
Update: Что происходит в таком случае:
– есть некоторый проект, который переносится с Delphi на Lazarus;
– Lazarus не имеет некоторого компонента, который есть в Delphi; (например какой нибудь компонент отображения графиков)
Можно сделать что-то вроде обертки для этого компонента и засунуть его функционал в dll. Вопрос: можно ли будет свободно распространять этот продукт который использует эту dll?
Если да – то распространнена ли такая практика? Если нет – то почему? Иными словами: если есть крупное сообщество людей которым нужны определенные компоненты Delphi (которые можно вынести таким образом наружу), то могут ли они навытаскивать их таким образом и не перейти на Lazarus? Т. е. получился бы набор бесполатных, но не открытых компонентов, которые можно было б использовать.
Компания embarcadero объявляет о запуске программы сертификации разработчиков delphi
Уважаемые партнеры, компания Embarcaderoначала проводить сертификацию разработчиков Delphi. Подробности программы сертификации находятся здесь:
http://www.my-sertif.ru/ru/certification.
Сертификация очень полезна студентам, разработчикам, менеджерам и организациям, в которых работают дипломированные специалисты. Помогает найти экспертов по программированию на рынке труда.
Преимущества для сертифицированных разработчиков:
• Сертификат (как диплом)
• Логотип сертификата
– Можно использовать в подписях к email, на web-сайтах, в блогах, социальных сетях и т.д.
– Приоритет в участии в бета-программах
• Размещение в разделе Certified Developers
Преимущества для партнеров:
• Партнер зарабатывает на продаже сертификатов на сдачу экзамена.
• Получает возможность предложить заказчику купить лицензии, в случае необходимости.
Есть два уровня сертификации:
– основной: DelphiDevelopercertification
– продвинутый: Delphi Master Developer certification
SKU & prices:
Обратите внимание – экзамены только на английском языке!!!
Целевая аудитория: разработчики и специалисты с опытом работы на Delphi.
Уровень участия партнеров: каждый партнер может продать обратившемуся к нему разработчику (это может быть как частное лицо, так и компания, которая желает сертифицировать своих разработчиков) сертификат на прохождение экзамена Delphi Developer Certification Exam.
В стоимость этого продукта входит одна попытка сдачи экзамена общей продолжительностью 60 минут ( время ограничено). Заказчик может проходить тест с любого компьютера, имеющего доступ к интернету.
В том случае, если заказчик сдает экзамен (80% правильно ответов для успешного прохождения), он получает сертификат (ему по электронной почте приходит сертификат в формате .pdf).
В случае если заказчик не сдаст экзамен, он будет вынужден купить новый активационный код для сдачи экзамена.
Логистика заказа этого продукта для партнера:
1. Партнер размещает заказ в «1С» по стандартной схеме размещения заказов на продукты Embarcadero.
2. «1С» размещает заказ в компании Embarcadero.
3. Конечный заказчик получает код, по которому он заходит на сайт и проходит экзамен:
a. Пользователь активирует код посредством:
b. http://certification.my-sertif.ru/reg
c. Учетная запись EDN
d. После активации кода
e. Пользователь проходит тест
f. Система присылает электронное сообщение, подтверждающее активацию кода
4. Сделка между партнером и «1С», а также между партнером и заказчиком закрывается по факту получения заказчиком.
Партнеры могут посмотреть дополнительные материалы в закрытой части сайта
DelphiMasterDevelopercertification – эта программа будет запущена в ближайшее время. Имеется ряд ограничений. Заказчик может проходить экзамен ТОЛЬКО в центрах сертификации и только в присутствии модератора. Модератор вводит свой личный код, и только после этого пользователь может ввести свой код и прости свой экзамен Master-уровня. Также одна попытка.
В настоящее в программе центров сертификации принимают участие 3 компании – Интерфейс, Софтлайн и iBase. Продавать тесты Master-уровня можно только этим 3 компаниям.
Программа центров сертификации – открыта, приглашаем и другие учебные центры или поставщиков консалтинговых услуг принять в ней участие. Вопросы по участию в продаже сертификатов продвинутого уровня: DelphiMasterDevelopercertification можно задать на адрес Ирины Хоменко homi@1c.ru.
____________________________________________________________________________
По вопросам приобретения продуктов Embarcadero обращайтесь:
Фирма «1С»
направление «1С:Дистрибьюция»
e-mail: dist@1c.ru
сайт: http://my-sertif.ru
тел. (495) 258-44-08, (495) 737-92-57
Этап 1. подготовка к тестированию
Первый этап на пути к получению сертификата — подготовка к сертификационному экзамену. Для сертификации обычно требуется не менее 1-2 лет опыта работы с Delphi.
Учебные материалы доступны в руководстве Delphi Developer Certification Exam Study Guide. В учебном руководстве рассматривается тематический охват сертификационного теста, а также содержатся ссылки на обучающие ресурсы в интернете и список книг по Delphi.
Этап 2. обращение в центр сертификации партнера embarcadero
Экзамен Delphi Master Developer проходит под руководством инструктора. Заказать тест и согласовать время сдачи вы можете:
Этап 2. регистрация для сдачи экзамена
Бесплатный экзамен для пользователей решений Delphi XE и RAD Studio XE
Зарегистрированные пользователи продуктов Delphi XE или RAD Studio XE могут сдать сертификационный тест бесплатно. Каждый зарегистрированный пользователь именной лицензии Delphi XE или RAD Studio XE может запросить бесплатный тестовый код Здесь.
Вы должны запросить код для бесплатного тестирования не позднее 31 июля 2021 г. и использовать его в течение 90 дней. Это предложение не распространяется на владельцев образовательных лицензий.
Embarcadero не удостоверяет и не подтверждает наличие у того или иного лица необходимых навыков и качеств для определенного проекта или работодателя. Поскольку экзамен Delphi Certified Developer сдается через интернет без участия инструктора, Embarcadero не может гарантировать, что лицо, сдающее экзамен Delphi Certified Developer, действительно является лицом, указанным в сертификате.
Сертификационный тест охватывает следующие области знаний:
|
|



