View Full Version : مبتدی: سوالات ابتدایی درباره مفاهیمی همچون VCL، Cross-platform و غیره در دلفی
php_qq
پنج شنبه 24 تیر 1389, 11:29 صبح
سلام به همگی, من یه چند تا سوال مبتدی داشتم شاید خیلی آسون باشه ولی بعضی هاشو من جوابای متفاوت شنیدم یکمی گیج شدم اگه می شه به صورت کوتاه پاسخ بدید خیلی خیلی ممنون می شم: :لبخندساده:
1) آیا دلفی یک زبان برنامه نویسی است؟ یا یک IDE؟ (اگر زبان است پس delphi for php چیه دیگه؟ و اگر IDE است چه زبانی توش می نویسن؟ "پاسکال؟")
2) آیا منظور از VCL همان button و textbox و ... هست؟
3) clx چیه؟
4) آیا kylix معادل delphi در لینوکس هست؟
5) اصطلاح cross-platform آیا منظور اینه یه نرم افزار رو وقتی کامپایل کردیم بتونیم توی چند سیستم عامل اجرا کنیم یا منظور اینه که همون سورس رو یه بار مخصوص ویندوز و یه بار مخصوص لینوکس بدون دستکاری بتونیم کامپایل کنیم؟ یا هر دو اینا؟
6) آیا معادل نرم افزار Visual Studio نرم افزار Rad Studio هست؟ یعنی Rad Studio یه IDE هست که چندین زبون رو می تونه پشتیبانی کنه؟
7) آیا منظور از متودولوژی Rad اینه که بشه نرم افزار رو سریع تولید کرد یعنی مثلا در دلفی ساخت GUI از متودولوژی Rad پیروی می کنه؟
8) چه دلیلی داره بعضی ها هم دلفی 7 و 2010 رو با هم نصب می کنن؟ مگه در دلفی 2010 برنامه نویسی به صورت win32 نیست؟ آیا در دلفی 2010 می شه net. هم کار کرد؟
9) در دلفی اونایی که با حرف T شروع می شن معمولا کلاس هستند؟
10) delphi prism چیه؟ ( آیا موقعی که دلفی.نت اومد و شکست خورد بجاش دلفی prism اومد؟ و اینکه آیا IDE هست یا پلاگین؟)
11) آیا منظور از manage code اینه برنامه به یه زبان واسط ترجمه می شه و native یه مستقیم به زبان اسمبلی(اسمبلی یا ماشین؟)
12) اونایی که manage code هستند حتما cross-platfrom اند؟
شرمنده ها ولی گیج شدم یکم :گیج:
vcldeveloper
پنج شنبه 24 تیر 1389, 17:53 عصر
سلام،
باید هر سوال (یا سوالات مرتبط با هم) را در تاپیک های جداگانه ایی بپرسید. من اینجا به طور خلاصه جواب این سوالات رو میدم، اما تاپیک رو قفل می کنم. اگر نیاز به توضیح بیشتری درباره هر کدام داشتید، اون رو در تاپیک جداگانه ایی، و در تالار مناسب آن مطرح کنید.
1) آیا دلفی یک زبان برنامه نویسی است؟ یا یک IDE؟ (اگر زبان است پس delphi for php چیه دیگه؟ و اگر IDE است چه زبانی توش می نویسن؟ "پاسکال؟")
یک نام همه گیر برای زبان برنامه نویسی مورد استفاده در دلفی وجود نداره، بعضی بهش Object Pascal میگن، چون واقعا از روی اون گرفته شده؛ ولی بعضی بهش میگن همون Delphi، چون در دلفی قابلیت های متعددی به Object Pascal اضافه شد.
از نظر IDE، قبلا اسم IDEاش هم Delphi بود، ولی در نسخه های جدید، اسم IDE آن RAD Studio هست، و Delphi اسم زبان برنامه نویسی هست.
درباره Delphi for PHP، مشکل از نامگزاری شرکت CodeGear هست که این مشکل رو برای شما بوجود آورده. Delphi for PHP با دلفی نوشته شده؛ و یک IDE برای کار با PHP هست، و ارتباطی با زبان برنامه نویسی دلفی نداره؛ اما CodeGear سعی کرد مجموعه ایی از کتابخانه های اوپن سورس PHP را در یک مجموعه مشابه کتابخانه VCL دلفی جمع آوری کنه، و در Delphi for PHP ارائه کنه. اما وجود نام Delphi در عنوان این محصول باعث شده که خیلی ها فکر کنند این محصول ارتباطی با زبان برنامه نویسی دلفی داره، در حالی که اینطور نیست.
2) آیا منظور از VCL همان button و textbox و ... هست؟
دلفی یک کتابخانه کلاس داره، بعضی ها به کل کتابخانه کلاس دلفی میگن VCL، ولی دقیقش این هست که بگیم VCL فقط اون بخشی از کتابخانه کلاس های دلفی هست که به کامپوننت های بصری (Visual) برای طراحی کاربر مربوط میشه.
اگر دات نت کار کردید، مفهوم مشابهی رو اونجا دارید؛ در دات نت یک کتابخانه کلاس بزرگ دارید که همه کلاس ها در آن از کلاس پایه Object مشتق میشند. حالا در داخل این کتابخانه کلاس، یک مجموعه کلاس برای طراحی رابط کاربر دارید، که بهش WinForms گفته میشه.
توی دلفی هم همینطور هست، یک کتابخانه کلاس دارید که از کلاس TObject مشتق شده، و یک مجموعه کلاس های Visual برای طراحی رابط کاربر که به آنها VCL گفته میشه.
3) clx چیه؟
CLX یک کتابخانه معادل VCL بود، با این تفاوت که از کنترلهای آن می شد هم در ویندوز و هم در لینوکس استفاده کرد. VCL فقط برای استفاده در ویندوز طراحی شده بود.
4) آیا kylix معادل delphi در لینوکس هست؟
بله، بود. الان دیگه Kylix توسعه داده نمیشه.
5) اصطلاح cross-platform آیا منظور اینه یه نرم افزار رو وقتی کامپایل کردیم بتونیم توی چند سیستم عامل اجرا کنیم یا منظور اینه که همون سورس رو یه بار مخصوص ویندوز و یه بار مخصوص لینوکس بدون دستکاری بتونیم کامپایل کنیم؟ یا هر دو اینا؟
هر دوی اینها؛ البته این دو موردی که گفتید، دو رویکرد مختلف هستند. در جاوا یا دات نت، شما یک سورس کد می نویسید، و این سورس کد برای یک پلت فرم خاص نیست، بلکه برای یک پلت فرم مجازی هست. وقتی این برنامه روی سیستم مقصد میخواد اجرا بشه، به تنهایی قابل اجرا نیست، بلکه باید ماشین مجازی جاوا یا دات نت روی سیستم کاربر نصب باشه، اون وقت اون ماشین مجازی، برنامه را به کدهای قابل فهم برای آن پلت فرم ترجمه میکنه. برای همین هم هست که شما یک کد در جاوا می نویسید، و می تونید به شرط نصب بودن ماشین مجازی آن روی سیستم عامل های مختلف، آن کد را روی آن سیستم عامل ها اجرا کنید. در این حالت فایل خروجی کامپایلر شما برای همه سیستم عامل ها یکسان بود، ولی در زمان اجرا روی هر سیستم عامل، فایل شما تبدیل به کدی مخصوص همان سیستم عامل میشد.
برای Cross-platform در دلفی، شما یک سورس را می نویسید، ولی از آنجایی که کد تولید شده توسط دلفی Native هست، و نیاز به واسطی برای ترجمه روی سیستم مقصد نداره، باید همان کد را به ازاء هر پلت فرم یک بار کامپایل کنید؛ مثلا یک بار آن را برای لینوکس کامپایل کنید، و یک بار برای ویندوز. در این صورت دو فایل خروجی دارید که یکی روی ویندوز اجرا میشه، و یکی روی لینوکس.
6) آیا معادل نرم افزار Visual Studio نرم افزار Rad Studio هست؟ یعنی Rad Studio یه IDE هست که چندین زبون رو می تونه پشتیبانی کنه؟
بله.
7) آیا منظور از متودولوژی Rad اینه که بشه نرم افزار رو سریع تولید کرد یعنی مثلا در دلفی ساخت GUI از متودولوژی Rad پیروی می کنه؟
هدف اینه که بعضی مسائل دست و پا گیر در روند توسعه نرم افزار از پروسه تولید نرم افزار حذف بشند، و بطور کلی از جهات مختلف این روند بهینه سازی بشه. البته توضیح این مطلب طولانی میشه، اما کلا متدولوژی هایی از این سبک مزیت های مختلفی دارند. می تونید درباره Rapid Application Development و یا حتی Agile Methodologies مطالعه کنید.
در دلفی سعی شده تا حدودی بعضی از پروسه های تولید نرم افزار، بخصوص Prototyping با توجه به RAD انجام بشند. مثلا در متدولوژی هایی از این دست، شما باید بتونید با صرف انرژی و زمان نسبتا کم، یک نمونه اولیه (prototype) از محصول برای ارائه آماده کنید، و اگر این Prototype مناسب بود، سایر مراحل توسعه را بر روی همین Prototype پیاده کنید.
8) چه دلیلی داره بعضی ها هم دلفی 7 و 2010 رو با هم نصب می کنن؟ مگه در دلفی 2010 برنامه نویسی به صورت win32 نیست؟
دلایل مختلفی میتونه داشته باشه؛ اما عمده ترین دلیلش داشتن کدهای قدیمی ناسازگار با یونیکد هست؛ مثلا بعضی افراد کدهای قدیمی دارند که باید از آنها نگهداری کنند، ولی برایشان به صرفه نیست که این کدهای قدیمی را تغییر بدند و پشتیبانی از یونیکد را در آنها فراهم کنند. دلفی 7 ANSI هست، و با یونیکد مشکل داره؛ اما دلفی 2010 همچین مشکلی نداره و کاملا یونیکد هست. البته افراد مختلف ممکنه علت های دیگه ایی هم برای این کار داشته باشند. من به همشون اشاره نکردم.
آیا در دلفی 2010 می شه net. هم کار کرد؟
نه؛ برای دات نت در دلفی باید از Delphi Prism استفاده کنید.
9) در دلفی اونایی که با حرف T شروع می شن معمولا کلاس هستند؟
در دلفی استفاده از پیشوند T برای نوع های داده مرسوم هست. این یک رسم هست که از این پیشوند برای نوع های داده ایی که کاربر خودش میسازه (از جمله کلاس ها) استفاده بشه. پیشوند T به معنی Type هست؛ مثلا TForm اسم کلاس مربوط به فرم در دلفی هست، یا TButton اسم کلاس مربوط به Button.
در ++Visual C معمولا از پیشوند C (به معنی Class) در ابتدای نام کلاس ها استفاده میشه؛ مثلا CButton برای کلاس مربوط به دکمه.
10) delphi prism چیه؟ ( آیا موقعی که دلفی.نت اومد و شکست خورد بجاش دلفی prism اومد؟ و اینکه آیا IDE هست یا پلاگین؟)
Delphi Prism نسخه ایی از دلفی هست که کدهای تحت دات نت تولید میکنه. کدهای Delphi Prism عینا کدهای دلفی نیستند، ولی شباهت بسیار زیادی به آن دارند. Delphi Prism مثل سایر زبان های دات نتی، در داخل Visual Studio نصب میشه، و ارتباطی به RAD Studio نداره.
11) آیا منظور از manage code اینه برنامه به یه زبان واسط ترجمه می شه و native یه مستقیم به زبان اسمبلی(اسمبلی یا ماشین؟)
در حد بسیار بسیار ساده اش میشه اینطور گفت.
12) اونایی که manage code هستند حتما cross-platfrom اند؟
نه لوزما؛ اما cross-platform کردن آنها ساده تر هست، چون اغلب کارهای مربوط به cross-platform کردن را شرکت تولید کننده ماشین مجازی مربوطه انجام میده، و برنامه نویس چندان با این موضوع درگیر نمیشه. اما در محیط های Native برنامه نویس خودش باید درگیر بسیاری از مسائل مربوط به تفاوت پلت فرم های مختلف بشه.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.