ولی کدامیک? :?:نقل قول:
نوشته شده توسط DelphiAssistant
VB.NET ? C#? Delphi.NET
Printable View
ولی کدامیک? :?:نقل قول:
نوشته شده توسط DelphiAssistant
VB.NET ? C#? Delphi.NET
هر کدام که با آن راحت تر هستید.
با عرض ادب:
یه لینک دستم گرفته بودم و همینجوری می گشتم نمی دونستم کجا بذارمش. گفتم بذازم اینجا:
http://lug.farsilinux.org/PDF%20File...opensource.pdf
کسی سمینار این بابا رو گوش داده؟
یه عشق برنامه نویسی خفن
خیلی خیلی ممنون از دوستان که جواب منو دادن
اگه می شه لطفا کتابی در مورد مباحثی چون C# مدیریت پروژه طراحی الگوریتم و ... معرفی کنید.
یه چیز دیگه:من تصمیم گرفته بودم C# بخونم ولی با چیزهایی که این اواخر از delphi.net شنیدم و تجربه ی کمی که در برنامه نویسی delphi دارم دوباره به شک افتادم.
لطفا یکی از اساتید زحمت بکشن و این شک من رو بر طرف کنن :oops:
راستی سعی کنیم این دم عیدی بیشتر به همنوع خودمون کمک کنیم :wink:
شاد باشین
به قول آقای نصیری
سی شارپ گواهی ایزو گرفته
من هم تصمیم گرفته ام سراغ سی شارپ برم.
ولی من delphi.net را ترجیح می دم. مهم اینه که با کدومشون راحتتر هستی.
خانوم مونا من رو هم بد جووووووووووری شدیییییییییییییدا به یاد یکی میندازه که.... :o
وای بلا به دور عباس جان گرفتم گرفتم....... 8)
میدونید ؟! من در مدت عضویتم در این سایت یکی از بزرگترین اشتباهاتمو مرتکب شدم ):
چرا که این توپیک رو اصلا نگاه نکردم )):
آخه فکرشو نمیکردم بحث تا اینجاها گسترش پیدا کنه.
باید فکرشو میکردم که حتما چیزی بوده که توجه دیگران جلب شده ...
ولی از یه جهت خیلی خوشحالم، از این جهت که در غیاب بنده خانوم Mona زحمت کشیدند و با اطلاعات خودشون همه را در بسیاری از موارد روشن کردند. واقعا ممنون X:
البته دوست داشتم Mona خانوم در جواب ها بیشتر توضیح میدادند که جای شبهه ای برای کسی باقی نماند ولی با توجه به حساسیت موضوع و زمان ارسال جواب ها واقعا جای تقدیر دارد. (:
البته من دقیقا منظورم در مورد وضعیت و آینده MFC بود.
آقای کرامتی با این پاسخ هایشان باعث شدند من 2 دقیقه در کمای مطلق فرو بروم (:
خوب بگذریم ...
من تمام سوالهای پرسیده شده در مورد MFC را بخاطر ندارم ولی بزرگترین چیزی که الان به خاطرم میرسد در مورد آینده MFC است ...
Microsoft پشتیبانیشو از روی MFC بر نخواهد داشت. ( اگر چیزی ضد این شنیدید بدونید کذبه )
من واقعا در عجبم که چرا آقای Inpy در این مورد تا به حال چیزی ننوشته اند ؟!
شاید ایشان هم نظیر بنده دچار افسون ( ندیدن این تاپیک ) شده باشند ...
در آخر به جمله ای از یکی از پیامبران برنامه نویسی ( Tom Archer ) اشاره میکنم که فرمود: ++C کار کنید تا رستگار شوید.
اگر همچنان کسی در مورد جزئیات مربوط به ++VC و MFC سوالی دارد من از الان در خدمتم (:
برادر Anti-Evil
گاهی اوقات فضای یک بحث جوریه که حداقل یکی مثل من به نظرش میاد اینجا نه چیزی یاد خواهد گرفت نه چیزی یاد خواهد داد . روی صحبتم با فرد خاصی نیست ، با نوع برخورد مشکل دارم ، دقیقا" به همین دلیل توی دو سه تا از مباحثی که تو یه ماه اخیر بسیار روش مانور شده شرکت نکردم . برای یکی از تاپیکها یه مطلبی نوشته بودم که پستش نکردم ، فکر میکنم حالا جاش باشه همینجا کپی اش کنم و امیدوار باشم دوستان سایت ، به دقت مطالعه اش کنن :
مجددا" تاکید میکنم هیچ خواهر یا برادری از حضار ( و غیر حضار ) هدف مشخص این نوشته نیست . به کرات توی بحثهای مختلف سایت با پدیدهء تیکه پرونی و حالگیری مواجه شدم و در اغلب موارد در اثر همین برخوردها فضای بحث به گند کشیده شده ( از بحث دلفی و سی بگیر تا مباحث مربوط به دلفی و وی بی و ... مباحث جدید تر ) . من هم به عنوان یکی از مدیران سایت نظرات شخصی خودم رو دارم و تمایل دارم ابرازشون کنم اما دوست ندارم در سایهء برخوردهای غیر تکنیکی هم اعصاب خودم خراب بشه هم وقتی که بابت نوشتن دو صفحه مطلب میزارم دود بشه . به طور جدی از برادران مدیر درخواست میکنم فارغ از نظرات شخصی و عقیده و گرایش ، هر جا "بحث" تکنیکی پیش اومد که بینش به هر ترتیبی مطلب غیر تکنیکی و بصورت "تیکه" یا برای حالگیری مطرح شد ، بلافاصله قیچی کنن ( ر-ک دردسرهای اولیه بخش امنیت و وضعیت فعلی اش :) ) و مطمئن باشن "رفتار صحیح" بعد از مدتی خود به خود نهادینه میشه :)نقل قول:
متاسفانه یکی از بلاهائیکه دامن گیر محیطهای تکنیکی مثل این وب سایت است "حال گیری" ضمن بحث و تبادل نظر با طرف مقابله . این پدیده اگر جنبهء شوخی داشته باشه و برای ایجاد تنوع در محیط بحث اتفاق بیفته البته مباح که هیچ بلکه مستحب است . اما اگر یک نفر خیلی جدی تصمیم بگیره حین بحث و تبادل نظر بخاطر عدم تطابق نظرش با فرد مقابل یا احیانا" حقیر شمردن فرد مقابل سعی کنه حالش رو بگیره ، تصریحا" یا تلویحا" ، نتیجه ای جز خراب شدن فضای بحث و مالیده شدن نتیجه گیری صحیح و منطقی نخواهد داشت . بارها دیدم که وقتی بین دو تا مساله خاص تو مایه های دلفی و وی بی ، ویندوز و لینوکس ، دات نت و جاوا و ... بحثی بین دو یا چند نفر شروع میشه ، از همون ابتدا حرفهای حاشیه ای و تیکه ها حال گیر و مطالب نا مربوط متولد میشن و تا آخر بحث به حیات خودشون ادامه میدن . طبیعیه که ایجاد چنین فضائی باعث میشه بعد از مدتی تمام کاربران سایت با دیدن بحثی این چنین میل و رغبتی برای حضور در اون نداشته باشند چرا که حدس میزنن به احتمال زیاد این وسط حال چند نفر اساسی و حال چند نفر غیر اساسی گرفته میشه و ته داستان چیز خاصی عاید کسی نمیشه . ( اتفاقی که همین حالا تا حدودی افتاده است ) . این نوع رفتار و برخورد فوق العاده مخرب است و به طور جدی و اساسی باید جلوش گرفته بشه . واضح و مبرهن است که یک بحث داغ و خیلی تند و حتی خشن اما تکنیکی اگر هیـــچ فایده ای نداشته باشه ، حداقل کمک میکنه وجوه مختلف موجود یا موجودات مورد بحث توسط طرفین کاملا" بررسی بشن و در بدترین حالت حداقل یه تعداد Keyword و عنوان جدید به دست تازه کارهائی که مدتی بعد دارن اون بحث رو مطالعه میکنن میرسه که حتما" میتونه براشون مفید باشه ، تیکه پرونی و حال گیری نه تنها باعث خط خطی شدن اعصاب طرفین بحث میشه ، و نه تنها "بحث" رو به "مشاجره" تبدیل میکنه ، که باعث میشه به مرور پدیده "بحث" به یک موجودیت مضموم تبدیل بشه که همه ازش فراری هستند ( که همین حالا هم متاسفانه تا حدودی همین طور شده ) . امیدوارم همه رفقا ، از خود این حقیر گرفته تا ...سعی کنیم بجای نگاه عاقل اندر سفیه به طرف مقابل و گل مال کردن حس و حال و اعصاب طرف ، سعی کنیم اگر چیزی در چنته داریم بریزیم رو دایره و اگر حرف خاصی نداریم گوش کنیم و یاد بگیریم و البته اظهر این است که مدیران ، از مدیر سایت گرفته تا مدیران بخشها باید حساسیت خاصی رو این رفتارهای مخرب داشته باشن و بدون کوچکترین تردید این طور مطالب رو از هر کسی که میخواد باشه از بیخ قیچی کنن تا فرهنگ صحیح تبادل اطلاعات بدون حال گیری نهادینه بشه . در عرایض بالا نگاه خاصی به هیچکدام از افراد حاضر در بحث نداشتم و عرایضم مربوط میشه به همه زمانها و همه بحثها و هدف هم چیزی نبود جز بهبود جو سایت که امیدوارم خوانندگان بخوبی درک کنند که حتما" هم همینطور هست :)
اگر رفقائی که در مورد دات نت و تکنولوژی های مربوطه سوال پرسیدند هنوز هم نقاط ابهامی تو ذهنشون وجود داره و رفقای پیش کسوت تر فکر میکنن امکانش هست بی سوادی مثل حقیر هم پنج دقیقه ای منبر بره کلهم اجمعین ندا بدن تا حقیر هم چند سطری در باب " ابزارهای توسعهء دات نت " حرف بزنم :wink:
همگی موفق باشید :kiss:
مطالبی که نوشتم بیشتر ناظر بر بحثهای دیگه بود اما نگاه کردم و دیدم اینجا هم مثل سایر "بحث" های سایت دچار همین آفت شده . یکی به دیگری میگه تو هدفت ضایع کردن بوده اون یکی میگه فحش نده یکی دیگه میگه اصلا جفتتون بی سوادید یکی دیگه ... یکی دیگه ... ؟؟؟ چند تا مطلب "نا مربوط" الان توی این تاپیک هست ؟ اصلا" چرا باید باشه ؟ :?
موافقم. برادران مدیر، یا علی.نقل قول:
به طور جدی از برادران مدیر درخواست میکنم فارغ از نظرات شخصی و عقیده و گرایش ، هر جا "بحث" تکنیکی پیش اومد که بینش به هر ترتیبی مطلب غیر تکنیکی و بصورت "تیکه" یا برای حالگیری مطرح شد ، بلافاصله قیچی کنن
بسما...نقل قول:
اگر رفقائی که در مورد دات نت و تکنولوژی های مربوطه سوال پرسیدند هنوز هم نقاط ابهامی تو ذهنشون وجود داره و رفقای پیش کسوت تر فکر میکنن امکانش هست حقیر هم پنج دقیقه ای منبر بره کلهم اجمعین ندا بدن تا حقیر هم چند سطری در باب " ابزارهای توسعهء دات نت " حرف بزنم
سراپا گوشیم...
ما هم سراپا گوشیم. لطفا تمام جنبهها رو بررسی کنید.نقل قول:
اگر رفقائی که در مورد دات نت و تکنولوژی های مربوطه سوال پرسیدند هنوز هم نقاط ابهامی تو ذهنشون وجود داره و رفقای پیش کسوت تر فکر میکنن امکانش هست حقیر هم پنج دقیقه ای منبر بره کلهم اجمعین ندا بدن تا حقیر هم چند سطری در باب " ابزارهای توسعهء دات نت " حرف بزنم
Inpy جان ما همیشه منتظر شنیدن نقطه نظرهای شما هستیم (:
تو ذهن من نقاط ابهام زیادی باقی مونده امیدوارم نظر شما دوست عزیز رو هم بشنوم.نقل قول:
اگر رفقائی که در مورد دات نت و تکنولوژی های مربوطه سوال پرسیدند هنوز هم نقاط ابهامی تو ذهنشون وجود داره و رفقای پیش کسوت تر فکر میکنن امکانش هست بی سوادی مثل حقیر هم پنج دقیقه ای منبر بره کلهم اجمعین ندا بدن تا حقیر هم چند سطری در باب " ابزارهای توسعهء دات نت " حرف بزنم
همگی موفق باشید
راستی باید بگم من همون ehsaanjoon هستم که به عللی(ضایع بودن id) با اجازه مدیر سایت idم رو عوض کردم.
در مورد حال گیری هم کاملا با نظر شما موافقم.یکی مثل من هیچی از کامپیوتر نمیدونه و یکی مثل شما خدای برنامه نویسیه.
ولی این دلیل نمی شه که کسی دیگری رو تحقیر کنه.
هر چی سواد انسان بالاتر میره باید خضوعش هم بیشتر بشه.
فکر می کنم اومدیم اینجا که در جوی دوستانه از هم چیزهایی یاد بگیریم(از اخلاق گرفته تا کامپیوتر)
یا علی :flower: :kiss:
از اساتید و دوستان عزیزی هم که وقت گرانبهاشون رو برای جواب دادن به دوستانشون میذارن تشکر میکنم. :flower: :flower:
خوب برادر Anti Evil
یه سوال چرا VB به یک باره بازنویسی شد و برای تبدیل اون به دات نت فقط مایکروسافت یه ویزارد در اختیار کاربران قرار داد که البته جوابگو هم بود؟
چرا برنامه های که در ++VJ نوشته شده بود باز هم فقط با یه ویزارد به راه حل های #VJ تبدیل شد؟
خانوم مونا گفتن بسیاری از شرکت ها برنامه هاشون رو با VC و MFC تهیه کردن و کایکروسافت نمیتونه حمایتشو از MFC قطع کنه ولی من فکر میکنم احتمالا بلایی که به سر VB و ++VJ اومد به سر MFC هم خواهد آمد البته من این طور فکر میکنم.
در ضمن فکر میکنم یکی از اون حرفهای نامربوط رو من زدم که امیدوارم منو ببخشین دیگه هم تکرار نمیشه از قدیم گفتن حرف حساب جواب نداره :)
سلام ؛
من قبلا" مطلبی در مورد جاوا ، J2EE و قابلیتها و ویژگی ها و چیستی و چگونگی کاربردهای مبتنی بر اونها نوشتم و لازم میدونم چنین کاری رو برای دات نت هم انجام بدم . هر چند اهالی دات نت در این سایت خیلی فعال هستند و در مورد دات نت بطور جدی بارها حرف زده شده و خودم منم در مورد کم مطلب ننوشتم اما سعی میکنم مطلب حاضر Template ای مطابق مطلب قبلی در باب جاوا داشته باشه تا بتونه بیشتر مفید واقع بشه و برای ارجاعات آینده کاربردی باشه . بعد از اینکه این مطلب تموم شد در مورد بعضی از مطالب مطرح شده توسط رفقا هم چند خطی مینویسم :)
مطلب اول رو به این قسمتها تقسیم میکنم :
- - دات نت دقیقا" چیه
- نقش دات نت در توسعهء نرم افزار
- دات نت و سایر فناوری ها
- ابزارهای مایکروسافت برای توسعهء دات نت
- سایر ابزارها
-- دات نت دقیقا چیه ؟
تعریف اغراق آمیز و با مزهء MSDN در مورد دات نت میگه :
<span dir=ltr>
- The .NET Framework is an integral Windows component that supports building and running the next generation of applications and XML Web services. The .NET Framework is designed to fulfill the following objectives:
To provide a consistent object-oriented programming environment whether object code is stored and executed locally, executed locally but Internet-distributed, or executed remotely.
To provide a code-execution environment that minimizes software deployment and versioning conflicts.
To provide a code-execution environment that promotes safe execution of code, including code created by an unknown or semi-trusted third party.
To provide a code-execution environment that eliminates the performance problems of scripted or interpreted environments.
To make the developer experience consistent across widely varying types of applications, such as Windows-based applications and Web-based applications.
To build all communication on industry standards to ensure that code based on the .NET Framework can integrate with any other code.
</span>
پس جالبه بدونید مایکروسافت ، دات نت رو به عنوان یک عنصر " مبتنی بر ویندوز" و " ویندوز محور" معرفی میکنه و این یعنی صراحتا" مایکروسافت وجود دات نت رو جائی در جائی به غیر از ویندوز به رسمیت نمیشناسه ( و طبیعیه که من و تو و امثال ما اهمیت چندانی نمیدیم که مایکروسافت دقیقا چه چیزهائی رو به رسمیت میشناسه یا نمیشناسه ، چون بیزینس ما و مایکروسافت نقاط مشترک چندانی نداره و دقیقا" به همین دلیل موجوداتی مثل Mono متولد شدن :) )
دات نت یک بستر و پایه است برای تولید نرم افزارهای کاربردی سطح بالا ، برنامه های مبتنی بر شبکه و اینترنت و سرویسهائی که به موارد مذکور مربوط هستند . دات نت دقیقا تشکیل شده از مجموعهء وسیعی از Wrapper که Win32 API رو محصور میکنند ، یک کتابخانهء کلاس نسبتا" کامل برای تولید نرم افزار ، مترجم کد به باینری ، و یک استاندارد برای تولید مترجم .
سوال بی موقع : خوب اینطوری که من میبینم اینجا چیز جدید وجود نداره ، درسته ؟ تک تک اجزاء قبلا" در تکنولوژی های مختلف وجود داشتن و کل این مجموعه هم سالهاست که تحت عنوان جاوا داره کار میکنه ، من درست فکر میکنم یا نفهمم و دات نت کارهائی که تصور میکنن مایکروسافت کار عجیب و بزرگی انجام داده درست میگن ؟
جواب : تو کاملا" درست فکر میکنی :) اینجا هیچ چیز جدیدی وجود نداره . حتی در همین روند تقلیدی الا یک مورد خاص ، هیچ خلاقیتی وجود نداره ( دلائل رو کمی پائین تر خواهید دید ) . اما باید به این نکته توجه بشه که ما همیشه به چیزهای جدید نیاز نداریم :) ما اکثرا" به یه ابزار خوب و پاسخگو برای انجام وظایفمون نیاز داریم و دات نت یه ابزار خوب و پاسخگوست که میشه باهاش وظایف عمومی برنامه نویسی رو انجام داد .
من به شخصه معتقدم مایکروسافت قبل از دات نت حداقل در حوزهء تولید نرم افزار حرف خاصی برای گفتن نداشت :) ویژوال استودیو تشکیل شده بود از این عناصر : ویژوال بیسیک - ویژال سی - ویژوال فاکس پرو - ویژوال اینتر دو - ویژوال دی بیس . اصلا" نمیخام وقتم رو تلف کنم و در مورد مسخرگی ویژوال فاکس و ویژوال بیسیک حرف بزنم . ویژوال اینتر دو برای توسعهء مبتنی بر وب ابزار خوبی بود اما اصولا" فرق چندانی با ابزارهای مشابه نداشت . تنها عنصر موفق مخلوق مایکروسافت ویژوال سی بود به این دلائل :
- کامپایلر قدرتمند
MFC
ATL
که صد البته چه در مورد کامپایلر ، چه در مورد کتابخانهء کلاس و چه در مورد Template رقبای موفقی مثل دلفی حتی گاهی باعث فراموشی ویژوال سی میشدند اما بهر حال چون این ابزار به اندازهء کافی خوب بود ( و هست ) و مهمتر اینکه توزیع کننده / توسعه دهنده اش مایکروسافت بود گسترش زیادی پیدا کرد و بسیاری از بزرگترین و موفقترین نرم افزارها با ویژوال سی مایکروسافت نوشته شده اند . :) اما دات نت باعث شد مایکروسافت هم " مثل چند رقیب دیگه" در دنیای توسعه نرم افزار "امروز" دنیا حرفی برای گفتن داشته باشه . ( جسارتا" : کسانیکه برنامه های درپیت و در حد رده سنی الف با ویژوال بیسیک نوشته اند یا کسانیکه فقط اسم ویژوال سی را شنیده اند و از MFC دم میزنند ، یقینا" این عرایض رو متوجه نمیشن :) آدم باید درگیر کد نویسی ، پروژه های بزرگ ، هزینهء بسیار ، اهمیت بالای حجم کد تولید شده و ... شده باشه تا این حقیقت رو خوب درک کنه . )
یادمه اولین توصیفی که در مورد دات نت توی یه چت خوندم این بود : i like it 'cuz it is quick ! :) دات نت یه محیط واقعی RAD است ( Rapid application Development ) . اهمیت RAD در صنعت نرم افزار فوق العاده بالاست . ( یادمه سر این مورد بحث نسبتا" مفصلی با کامبیز داشتیم ) اهمیت RAD حتی از توانائی کامپایلر یا سیستم عاملهای حمایت شده و ... بیشتره . صنعت نرم افزار دارای بی شمار مشتری است که هر روز و هر روز نیاز به نرم افزار مختلف و کوچک و خاص منظوری دارن که در یک فرصت کوتاه ایجاد بشن و یک کار خاص رو انجام بدن و بعد فوت کنن :) شاید چنین مفهومی در ایران خیلی ملموس نباشه اما دنیای پیشروی امروز به نرم افزار نگاهی مثل ساختمون ، میز ، صندلی ، کارمند و ... داره . یه چیز جدی که باید در یک لحظهء خاص و برای هدفی خاص در دسترس باشه و کاملا" فرمان پذیر . RAD به تحقق این نیاز کمک زیادی میکنه . همین حالا مدیر شرکت تصمیم گرفته از تعداد زیادی سند الکترونیکی موجود یک گزارش خاص منظور بگیره و دادهء خاصی رو ازشون استخراج کنه و به ترتیب خاصی مرتب کنه . دپارتمان نرم افزار سازمان باید بتونه بالافاصله یه نرم افزار کوچولو و جمع و جور رو تحویل مدیر بده . جستجوی تعداد زیادی سند و اجاد یک بانک اطلاعاتی ازشون و جستجو در اون بانک و مرتیب کردن داده ای خاص در یک محیطی مثل ویژوال سی درست مثل یک کابوس میمونه ! :roll: در حالیکه محیط RAD ای مثل دلفی با یک برنامه نویس متوسط میتونه در کمتر از دو ساعت این برنامه رو تحویل بده :) نقش RAD متاسفانه در بحثهای اینچنین خیلی کم مورد توجه قرار میگیره .
حالا مایکروسافت یک محیط RAD داره که توی این محیط ضمن اینکه میشه جزئیات سیستم رو تحت کنترل درآورد ، میشه وظایف عمومی رو به سرعت انجام داد ، از توسعه برای ویندوز گرفته تا توسعه برای وب :) دات نت بر فراز غولهائی مثل VCL ، QT و JDK متولد شد ، از تجربیات مفید اونها استفاده کرد و تمام تلاشش رو کرد برای کسانیکه به هر دلیلی از مایکروسافت و ابزارهاش پیروی میکنن توانائی بیشتر در کنار تلاش و زحمت کمتر رو ایجاد کنه . پس دات نت "جدید" نیست ، "خلاقانه" هم نیست ، امکان و ویژگی محیر العقولی هم نداره . دات نت صرفا" یه ابزار خوبه ، در کنار سایر ابزارهای خوب :) و جلوتر از ابزارهای بد ، که خیلی شون ، سری قبلی محصولات مایکروسافت هستند :wink:
-- نقش دات نت در توسعهء نرم افزار
بلا شک دات نت موفقیت قابل توجهی کسب کرده و هر کسی هم محبوبیت دات نت رو انکار کنه نابینائی خودش رو به اثبات رسونده . اما من تصور میکنم محصولات مایکروسافت به دلیل اینکه خوب هستند موفق نمیشن ( اینجا من از عبارت موفقیت به معنای کسب مزیت اقتصادی قابل توجه استفاده کردم :) ) بلکه کاریزمای خاص مایکروسافت که بخشیش محصول "ویندوز" و بخشی دیگر محصول توانائی قابل توجه اقتصادی- تبلیغاتی است میدونم . این اعتقاد باعث نمیشه من فکر کنم دات نت موجود بیخودی است ، خیر .
اما همین اعتقاده که باعث میشه فکر نکنم که عده ای موجود بی نهایت باهوش و مدبر در مرکز فرماندهی مایکروسافت نشسته اند و طی یک استراتژی بلند مدت و مبتنی بر برنامه دارن اهداف بلند مدت مایکروسافت رو محقق میکنند . :) حرکت جاهلانهء مایکروسافت در طراحی ساختار "دات نت فریم ورک" باعث میشه شما هر از چند گاهی با یه نسخهء جدید دات نت مواجه بشید ، به عنوان کاربر ، و با یه نسخهء جدید SDK ، به عنوان توسعه گر . هر از چند گاهی با یه کادر مکالمه ای حاوی یه پیام خطا مواجه بشید ، به این مضمون که برنامهء مورد تقاضای شما با نسخهء فریمورک نصب شده سازگار نیست ، به عنوان کاربر ، و با کامپوننتهائی مواجه بشید که هر کدام برای نسخهء خاصی از فریمورک نوشته شده اند ، به عنوان توسعه گر و قس علی هذا . من حتی تصور نمیکنم سناریوی بلند مدت و مدونی برای رسیده به "آنجائیکه دات نت قرار است به سمت آن برود" وجود داشته باشه . اینجا بحث رفع باگ یا افزودن قابلیت نیست ، که این رفتار صحیح و پسندیده ایه اگر منطقی اتفاق بیفته ، ( رجوع کنید به JDK ) بلکه اینجا اصولا" اینفرااستراکچر فریمورک تغییر میکنه . این بستر در حال تغییر به شدن به ویندوز وابسته است ، ویندوز هم در حال تحوله ، که محصول این تغییرات چیزی نخواهد شد به غیر از یک محیط ناسازگار که ضمن وابستگی غیر قابل توصیف به ویندوز ( این یکی از اهداف استراتژیک مایکروسافته ) توسعه گران رو به ارتقاء دائمی نرم افزارها ، ویندوز ، سخت افزار و ... هدایت میکنه که نتیجه اش چیز جز سرایز شدن میلیونها دلار به جیب "حضرات" نیست . لازمه توضیح بدم که دقیقا" همین سیاست زیرکانه مایکروسافت رو به چنین غولی مبدل کرده . وقتی ویندوز 3.1 توزیع شد من با یونیکس SVR4 رو دیده بودم و بخوبی با موجودی بنام X آشنا بودم . قبل از اون اپل هم موفقیت بزرگی کسب کرده بود و ...نقل قول:
دات نت صرفا" یه ابزار خوبه ، در کنار سایر ابزارهای خوب :) و جلوتر از ابزارهای بد ، که خیلی شون ، سری قبلی محصولات مایکروسافت هستند
دات نت بلاشک نقش مؤثری در توسعهء نرم افزار خواهد داشت چون هم ابزار خوبی است ، هم محصول بزرگترین غول نرم افزاری دنیاست ، هم با ویندوز ارتباط خوبی داره ، هم سهل الاستفاده است . :)
-- دات نت و سایر فناوری ها
CLR از دنیای جاوا و FrameWork از دنیای VCL و QT آموزه های زیادی دارن . آندره هلسبرگ که اولین نگارش توربو پاسکال رو نوشت و مدتها در راس هرم توسعهء VCL بود گرفته تا خرید محصولات آزمایشگاههای تحقیقاتی بورلند توسط مایکروسافت تا توسعه بی حد و حصر جاوا و مشاهدهء عوامل موفقیتش و ... همگی نقشهای مهمی در سناریوی موفقیت دات نت ایفا میکنن :) و البته نباید خود تیم توسعهء نرم افزار مایکروسافت رو با این دیدگاه که "تولید کنندهء ویندوز" هم هستند ، در این موفقیت نا دیده گرفت . و در کنار همهء این اما ها نباید این امای آخر رو نادید گرفت (!) : اما با همهء این حرفها توسعه گران به همهء بخشهای هدیه ای که مایکروسافت به اونها داده نیاز ندارن در حالیکه باید برای استفاده از بخش کوچکیش هزینه های مادی و غیر مادی همهء اون رو بپردازن . توسعه گران لینوکس از QT براحتی در محیط لینوکس استفاده میکنن و بی شمار برنامهء کاربردی با اون نوشتن که با کمترین هزینه ( و حتی خیلی اوقات مجانی ) اون رو تولید کردن . برنامه نویسان دلفی یا سی بیلدر سالهاست دارن از VCL استفاده میکنن ( که دات نت کارها تازه دارن طعمش رو میچشن ) و ... اما توسعه گرانی که سرنوشت فعالیتهای خودشون رو به نقشه های مایکروسافت پیوند زدند باید دات نت رو با ران تایم حجیم و سرعت بسیار کند و توزیع دشوار و قیمت فوق العاده بالا و پیوستگی جدی با ویندوز تحمل کنند :) در واقع دات نتی که به "خوب" بودنش ایمان دارم ، فضای نه چندان جدید ی برای توسعه گرانش ایجاد کرده که اونها ضمن رسیدن به "هیچ امکان جدید"ی باید هزینهء بیشتری نسبت به راه حلهای قبلی بپردازن . این دقیقا" همون مساله ایه که من بارها سعی کردم توجه توسعه گران دات نت رو بهش جلب کنم اما اغلب عینک آفتابی تعصب ( یا عدم وجود دانش در مورد سایر محیطها ) باعث میشه این حقیقت چندان که باید مورد توجه قرار نگیره . :)نقل قول:
دات نت بر فراز غولهائی مثل VCL ، QT و JDK متولد شد ، از تجربیات مفید اونها استفاده کرد و تمام تلاشش رو کرد برای کسانیکه به هر دلیلی از مایکروسافت و ابزارهاش پیروی میکنن توانائی بیشتر در کنار تلاش و زحمت کمتر رو ایجاد کنه
-- ابزارهای مایکروسافت برای توسعهء دات نت
بصورت پیشفرضبسته های VB .NET و #C و Managed C و #J توسط مایکروسافت توزیع میشن . اگر هدف " توسعهء مبتنی بر دات نت" باشه هیچکدام از این محیطها با هم متفاوت نیستند . همگی نه تنها به Intermediate Language ترجمه میشن ، حتی برای ساختار زبان هم از یک Design Pattern استفاده میکنن . "همهء" این زبانها محصولاتی جدید هستند ، هر چند که اگر توسعه گری تجربه و آشنائی با دلفی یا جاوا داشته باشه محیط سی شارپ و اگر تجربهء جاوا داشته باشه محیط جی شارپ رو آشنا خواهد دید . :) مبدلهای مختلفی هم برای تبدیل کدهای نوشته شده به یک زبان دیگر وجود داره ، چه IL رو داشته باشید چه سورس کد و در هر لحظه که بخواهید میتونید زبان برنامه رو بطور کل تغییر بدید .
اگر هدف توسعهء دات نت در کنار سایر تکنولوژی ها باشه باید سی شارپ و VB .NET رو فراموش کرد . Managed C میتونه بصورت همزمان از کدهای مدیریت نشده و دات نت استفاده کنه . این واقعا" مهمه :) میلیونها میلیون خط کد نوشته شده برای مقاصد مختلف وجود داره که "همین حالا" تبدیل کردن اونها به "کدهای مدیریت شده" غیر ممکنه ، دات نت هم که فقط مبتنی بر ویندوزه ، پس چه خوبه بشه از این کدهای مدیریت نشده در کنار قدرت کتابخانهء کلاس دات نت استفاده کرد . اینجا Managed C خودش رو نشون میده و مطمئنا" یکی از ابزارهای مهم محیط توسعهء دات نت است چرا که همین حالا برنامه نویسان C ( و نه سی شارپ تازه متولد شده ) از سایر توسعه گران بیشتر هستند و منطقا" یک برنامه نویس C در محیطهای جدید هم اول به دنبال دوست خودش میگرده . من "برنامه نویس" نیستم و دانش نسبتا" خوبی در مورد Managed C و #C دارم اما "اول" از همه در محیط دات نت به سراغ Managed C رفتم و به دلائل شخصی بیشتر از بقیه بهش اهمیت میدم :) #J هم میتونه کمک کنه یک برنامهء ویندوز یا وب را با ترکیبی از کدهای مدیریت شدهء مبتنی بر ویندوز و JDK جاوا تولید کنید . یعنی همانطور که Managed C امکان ترکیب دات نت و کدهای معمولی C رو میده ، جی شارپ امکان ترکیب دات نت و JDK رو میده . البته فقط تا JDK 1.3 نه بیشتر :(
نهایتا" اگر هدف توسعه نرم افزار نا مربوط به دات نت باشه باز هم Managed C امکانات زیادی در اختیارتون میزاره . میتونید کماکان از MFC استفاده کنید و برای توسعه کاربردهای مبتنی بر COM همچنان ATL وجود داره و هر دو با نسخه های جدید و بهینه تر رو صحنه ظاهر شدن ، برای توسعهء سرویسهای وب ( نا مربوط به دات نت ) اینجا ATL Server و افزونه های Managed Extentions برای Managed C وجود داره . اگر هدف تولید کاربردهای مبتنی بر وب باشه باز هم ISAPI و ATL Server ها موجود هستند . ( بخش قابل توجهی از سایت خود مایکروسافت خصوصا" بخش دات نت پاسپورت با Managed C نوشته شده ، بصورت ATL Server . احتمالا" موقع ثبت نام برا یک پاسپورت دات نت دیده اید که فایلهائی با فرمت srf. نوع صفحات رو تشکیل میدن . به این فایلها اصطلاحا" استنسیل گفته میشه . این استنسیلها روی ATL Server ها قرار میگیرن و در واقع PlaceHolder ای برای تگهای HTML هستند . ( دلیل اینکه چرا وقتی پای امنیت فوق العاده بالا به میون میاد حتی پای خود مایکروسافت هم روی دات نت میلرزه و ... مفصله که اگر کسی علاقه داشت بعدا" در موردش حرف میزنیم :) )
نتیجتا" شما هر هدفی در حوزهء "ویندوز - وب" داشته باشید چه بصورت مدیریت شده چه مدیریت نشده ، همگی توسط ابزارهای مایکروسافت قابل پاسخگوئی هستند . پس نتیجه میگیریم مایکروسافت هیچ نوع کاربردی رو - بجز ویژوال بیسیک 6 - منسوخ نکرده و خودش هم تلویحا" یا تصریحا" پا فشاری خاصی روی هیچکدام نداره ، خودش هم از ترکیبی از همهء اینها برای توسعهء محیطهای شخصی اش استفاده میکنه :) ( همین حالا اگر زمان اجراهای خاص #J نباشه ، محیط دات نت 2003 اجرا نمیشه ! منظورم DevEnv هست ها ! )
آنچه که گذشت :
- - دات نت دقیقا" چیه
- نقش دات نت در توسعهء نرم افزار
- دات نت و سایر فناوری ها
- ابزارهای مایکروسافت برای توسعهء دات نت
و بخش آخر این مبحث :
-- سایر ابزارها
طبیعی است که انتخاب دات نت از طرف مایکروسافت به عنوان بستری برای آیندهء توسعه نرم افزار تمام تولید کنندگان ابزارهای برنامه نویسی تحت ویندوز رو ترغیب به تولید ابزارهائی مبتنی بر بستر دات نت کنه :) خوب تا دیروز هم همهء این محیطها روی Win32 API کار میکردند که اون هم محصول مایکروسافت بود و هست . به علت کثرت محیطهای مبتنی بر دات نت و مباحث مطرح شده در این تاپیک من فقط در مورد محصولات Inprise ( :wink: ) صحبت میکنم . بورلند هم به عادت مالوف دو محصول جدید مبتنی بر دات نت یعنی C Sharp builder و Delphi 8 for .NET رو توسعه داده و توزیع کرده . وضعیت این دو محصول دقیقا" چیه؟ و با وجود محیطهای مایکروسافتی توجیه لزوم وجود / کاربرد این محصولات منطقی است ؟ برای جواب دادن به این سوال باید اول از همه ببنیم این محیطها دقیقا" چی هستند ، موافقید ؟
سوال : دلفی 8 برای دات نت دقیقا" چیه ؟ چه ویژگیها و توانائی هائی داره ؟
جواب :
( به دقت مطالعه کنید ، اهمیت داره )
<span dir=ltr>
- Delphi™ language RAD development for the Microsoft® .NET Framework, including
VCL Forms, Windows® Forms, ASP.NET, Web Forms, Web Services, ADO.NET, and
more
Type-safe, hardware-independent, and fully object-oriented
PE Verifiable CIL code generation
Imports symbols directly from .NET assemblies; no header file translations or external
declarations needed
Unicode® strings
Class variables/class static data
Operator overloading
Interoperability support through COM+ 1.0 and .NET Framework services with typelibrary-
based access
Program more simply, safely, and productively with garbage collection, structured
exception handling, and type safety
Records with methods (value types)
Support for unsafe mode, for using pointers to manipulate memory that is not under
the control of the Garbage Collector
Nested types
Custom attributes to mark types with information that can be recovered at runtime
Compatibile with existing Delphi source code
Supports pointer operations such as PChar in special unsafe code blocks
Unmanaged C style library DLL export option for use with non .NET code without
COM interop! –Statically link or getproc with Delphi 7 or prior!
Commercial development license for professional software sales
Foundation Class Library (FCL) – More than 4500 classes that encapsulate rich
functionality such as XML, data access, file upload, regular expressions, image
generation, performance monitoring and logging, transactions, message queuing,
SMTP mail, and much more!
Common Language Runtime (CLR) – Improve application reliability, security,
deployment, and performance, and run applications on high-volume, low-cost
hardware
XML SOAP Web Services – Built on XML and incorporates the latest Web Services
standards to facilitate cross-platform integration
.NET Framework remoting – simplifies working with distributed .NET objects
Unified programming model – Leverage the same skills and technologies for both
Web and desktop Windows®-based applications, including XML Web Services as well
as Web and smart-client applications for devices, PCs, and servers
Common Language Infrastructure (CLI) – Applications written in different
programming languages integrate deeply with each other, allowing current
development skills to carry forward without retraining
Designer Integration – .NET Framework features were designed specifically to
improve the quality of the tools that use them, such as integrated debugging and
profiling. Delphi is built to take advantage of the .NET Framework
Component Based Design – Write less code with the .NET Framework, which uses a
highly componentized, plumbing-free design that enables developers to focus on
writing business logic
Direct CLR class access; no need to translate header files
Employ Windows® Application Services with Windows Server™ 2003 and Windows®
2000 Server. For example, .NET Framework-based transactions are COM+
transactions, and all the new COM+ capabilities in Windows Server 2003 can be used
from the .NET Framework
XCOPY deployment – With .NET Framework metadata technology, installing
applications is as easy as copying them into a directory
Side-by-side execution for strong-binding to help eliminate potential versioning
conflicts
No-Touch Deployment – Smart-client applications can be deployed to client desktops
through remote Web servers in the same manner as Web applications
Managed Code Execution – With memory, threads, and processes managed by the
.NET Framework, memory leaks, overwrites, and buffer overflows are eliminated
Role-based security – provides a unified model for authorization and authentication of
principals based on identity and roles
ASP.NET Web Security supports HTTP authentication for Basic, Digest, NTLM,
Kerberos, and SSL/TLS client certificates as well as Microsoft® Passport
authentication and Forms-based (Cookie) authentication
Evidence-based security applies and enforces different levels of trust to all running
code
VCL for the .NET Framework – managed Visual components for rapid application
development
Standard, Data Controls, Dialogs, Internet Direct (Indy), Additional, Win32,® System,
Win 3.1, Data Access, and BDE component categories
Borland® dbExpress, and Borland® DataSnap™ (client) component categories
VCL Visual Form Inheritance and Form linking to reduce coding and simplify
maintenance
Object-oriented, fully extensible and reusable component and application architecture
in VCL for the Microsoft .NET Framework
Object Repository for storing and reusing forms, Data Modules, and experts
TDateTime extensions accelerate your date and time calculations
SubComponent classes combine commonly mixed components for greater utility and
speed the creation of user interfaces
Visual Component creation
Support for Advanced Custom Draw functions for increased control over the Windows
API
Designed for seamless integration of the Unified Modeling Language™ (UML™)
modeling environment, development, and runtime phases with Enterprise Core
Objects (ECO™) for the Microsoft .NET Framework
With the Borland® LiveSource™ model designer, visually create and edit your UML
class diagrams, powered by Borland® Together® technology
Integrated XMI support is engineered to provide seamless import of UML models to
ECO from popular third-party modeling tools such as Borland Together and other
XMI-compliant tools
Delphi code visualization powered by Borland Together technology provides a live
UML Model View of your Delphi code
Instant model-powered .NET enterprise architecture and automatic object-level
capabilities
ECO object-relational persistence mapper for seamless model-powered mapping of
cached objects to SQL database and XML files
ECO Space Designer for configuring UML packages, verifying models, and
generating and evolving the database
Borland Optimizeit™ Profiler for the Microsoft .NET Framework – integrated memory,
CPU, and CLR profiling
High-level performance overview to understand, in real time, whether a performance
issue is related to CPU, memory, or both
Powerful yet easier-to-use WYSIWYG HTML/WebForms designer to enable rapidly
building rich ASP.NET Web applications
Develop ASP.NET User Controls using the Visual Designer
Automatically detect any changes, dynamically compile the files if needed, and store
the compiled results to reuse for subsequent requests
DataSnap (formerly MIDAS) client and ADO.NET connector
Borland® dbExpress data access architecture includes support for MSSQL 2000,
Oracle 9i, and SQL Anywhere® 9
InterBase® Express™ (IBX) applications, based on the custom data access Delphi
component architectures, provide access to advanced InterBase features and offer
the highest-performance component interface for InterBase
Two-way visual UML class designers for ECO applications
State-of-the-art IDE with a fully integrated Code Editor and debugger, view history,
easier-to-understand error messages, and color syntax highlighting
Syntax highlighting for Delphi, C#, C/C++, Visual Basic .NET, HTML, ASPX, and
XML, SQL, Javascript,™ and IDL
Modules/Runtime scope view provides a global runtime view of the namespaces and
classes available to your program, including a list of source files used to build your
programs and assemblie
Create ASP.NET XML Web Services and add XML Web Services running on other
machines easier
</span>
اون حتما" مطالعه کردید در وهلهء اول این حقیقت رو به ذهن متبادر میکنه که دلفی برای دات نت همانطور که دلفی 7 به طور کامل تولید و توسعه برای Win32 رو حمایت میکنه ، به همان خوبی ، تولید و توسعه برای دات نت رو حمایت میکنه و در وهلهء بعد این حقیقت رو پر رنگتر میکنه که برنامه نویسان ویژوال بیسیک باکدها شون خداحافظی میکنند و برنامه نویسان ویژوال سی یا باید مسیر MFC را ادامه دهند یا دوباره برای دات نت کدبنویسند و اینجا " فقط" ( تاکید میکنم "فقط" ) برنامه نویسان دلفی هستند که بخش قابل توجهی از برنامه هایشان بدون تغییر و بخشی دیگر با تغییرات خیلی کم براحتی روی دات نت هم ترجمه میشن و کار میکنن :) این "خیلی خیلی" اهمیت داره :) و در مرحلهء آخر نگاهی اجمالی به قابلیتهای دلفی برای دات نت مشخص میکنه که دارای توانائی هائی است که محیطهای مایکروسافتی ازش بی بهره هستند . خصوصا" Indy که برای تولید برنامه های شبکه ای بی نظیره و برنامه نویسان سی شارپ حتی خواب چنین تولید سریع و راحتی را نمیتوانند ببینند یا ECO که رسما" برنامه نویسی با دلفی را به "نقاشی" تبدیل کرده :) در مورد ECO قبلا" مطلب نوشتم توی بخش مقالات حتما" بخونیدش و ...
نتیجه : دلفی برای دات نت فقط " یه زبون مبتنی بر دات نته دیگه " نیست ، بلکه به جرات قدرتمندترین محیط برای توسعه مبتنی بر دات نته و البته تنها محیطی است که توسعه گران قدیمی ش هنوز هم میتونن از کدهاشون نگهداری کنن :)
در مورد سی شارپ بیلدر هم وضع خیلی متفاوت نیست . اکثریت امکانات موجود در دلفی برای دات نت در سی شارپ بیلدر هم موجودند اما سی شارپ بیلدر فلسفهء دیگری رو دنبال میکنه :) یعنی هر چند کسانیکه با محصولات بورلند اجین هستند و "ادبیات بورلند" رو ترجیح میدن ممکنه متمایل به این محیط باشن ، اگر بخوان با سی شارپ برنامه بنویسن اما هدف سی شارپ بیلدر چیز دیگری است . ضمن اینکه حتما" ویژگیهاش رو مطالعه میکنید ، به مطلبی که مدتها قبل در این باره در بخش سی شارپ نوشتم توجه کنید :
نتیجتا" سی شارپ بیلدر با استفاده از بستر دات نت و زبان سی شارپ سعی میکنه محیط منطقی تر برای توسعه های متوسط و بزرگ نرم افزار ایجاد کنه .نقل قول:
مزیت ها و برتری های بزرگ سی شارپ بیلدر باعث میشه افرادی که اهل تدقیق در امور هستند بهش مثبت نگاه کنند .
1. سیاست بورلند برای ایجاد پلی بین دات نت و J2EE ( معروف به Borland Bridge ) : یکی از اهداف بورلند در تولید ابزارهای تولید نرم افزار ایجاد قابلیتهای ارتباطی غیر انحصاری بین تکنولوژی ها و بسترهای متفاوت است .سی شارپ بیلدر با استفاده از نسخه اولیه تکنولوژی بورلند یعنی Janeva تنها ابزاری است که میتونه بین زمان اجراهای دات نت و جاوا و حتی روشهای اتصالی مثل CORBA تماس ترنسپرنت برقرار کنه !
2. تولید و توسعه گسترده و بهینه : یکی از مشخصات سی شارپ بیلدر هماهنگی اش با ابزارهای قدرتمند بورلند برای مدیریت تولید تیمی - تولید مبتنی بر مدل - تولید مبتنی بر نیازهای و پذیرنده تغییرات حین پیاده سازی و ... . وجود یکدستی بین سی شارپ بیلدر و کالیبر آر ام و استار تیم و بورلند پراجکت پورتال و از همه مهمتر بورلند توگدر و اتصال رویه مدار همزمان ( ریل تایم پروسیجرال ) توگدر و سی شارپ بیدلر برای توسعه کد بدون نگارش متن نرم افزار همزمان با تغییرات مدل نرم افزار حین طراحی پروژه ! ( این مفاهیم رو فقط افرادی که به واقع در پروژه های سازمانی و بزرگ شرکت داشته اند و خصوصا معماران نرم افزار بخوبی درک میکنند . اگر نیت نوشتن هلو ورلد باشه بین کوئیک بیسیک و سی شارپ چه فرقی هست ؟ )
3. ECO ( در موردش در بخش دلفی دات نت مطلب نوشته ام لزومی به تکرار نیست )
4. زمان اجرای ECO : توسط این بستر میتونی در زمان اجرا مدل نرم افزار رو تغییر بدی ! مدل توسط بستر ECO در زمان اجرا به کد مناسب تبدیل میشه . این طلیعه توسعه هوشمند متن نرم افزاره و البته قرار نیست همه ، خصوصا" با توجه به جوان بودن سی شارپ بیلدر ، این رو درک کنند .
5. بهره مندی از LiveTeam به عنوان یک ابسترکشن لی یر برای ارتباط با ابزارهای کنترل سورس مختلف .
6. بهره مندی از borland OptimizIT چه بصورت یک ابزار خارجی چه بصورت شفاف و حین تولید نرم افزار برای بهینه سازی کد تولید شده تا حد ممکن . ( آزمایش شخصی من روی یک برنامه خیلی ساده نشون داد سرعت اجرا برنامه حدود 20 درصد افزایش پیدا کرد )
7. لایه قدرتمند دسترسی به دادهء BDP : BDP یک لفاف است برای ADO .NET با قابلیتهای بیشتر .
8. تولید خودکار پراکسیهائی برای برقراری ارتباط EJB ها ( Enterprise Java Beans ) با اسمبلی های دات نت .
نتیجه : سی شارپ بیلدر مطابق با سیاستهای همیشگی بورلند برای تولید ابزارهای "سازمان مقیاس" برای توسعه برنامه های گسترده است . بورلند ادعا نکرد قرار است ابزاری متفاوت (؟) از آنچه مایکروسافت ساخته است بسازد ! بورلند با تولید Wrapper ها و ترکیب تکنولوژی هاست که همیشه موفق بوده ، هست و خواهد بود . ( ر- ک جوائز دریافتی بورلند حتی از خوانندگان مجله MSDN ! و ایضا" ر-ک مشتریان ابزارهای گسترده مدیریتی بورلند برای توسعه نرم افزار مانند دپارتمان دفاع مشترک امریکا - WhitePaper ای خودشون نوشته اند و برای بورلند ارسال کرده اند برای مشاهده موجوده )
بورلند اینبار هم با استفاده از یکی از بسترهای موجود و اضافه کردن توانائی های خاصی که اغلب مشتریان ناراضی مایکروسافت از آن شکایت دارند ، یعنی عدم وجود سازمان مناسب برای حمایت از تمام مراحل سنجش - بررسی - آنالیز - طراحی - تولید - بهینه سازی و مدیریت نرم افزار که بورلند به همه این درخواستها پاسخ داده است و ابزارهایش را هم برای حمایت از این روند طراحی میکند ! نکته بعدی ارتباط و اتصال دات نت و J2EE است که قبل از توزیع سی شارپ بیلدر ، مهمترین شعاری بود که بورلند روی ان تاکید میکرد . ( یکی از Live Seminar های بورلند هم با حضور CEO اش به همین مساله یعنی Borland Bridge اختصاص داشت )
خلاصه :
سازگاری با ابزارهاپی که Unified Process رو حمایت میکنند ( پوشش کلیه درخواستهای مهندس نرم افزار)
ارتباط با سایر بستر ها و تکنولوژی ها
نتیجه گیری کلی : محیطهای دلفی برای دات نت و سی شارپ بیلدر با رسالتهای خاص خودشون ، امکانات ، ویژگی ها و ... محیطهای فوق العاده قابل تامل و جذاب برای توسعهء مبتنی بر دات نت هستند .
سوال : تو به عنوان یک آدم نسبتا" بی سواد چه محیطی رو برای توسعه و برنامه نویسی دات نت توصیه میکنی ؟
جواب : بی سواد خودتی ! (:D)
بدون مقدمه چینی : اگر برنامه نویس با سابقهء C هستید و تقریبا" با سایر محیطها بیگانه اید بهترین محیط برای شما Managed C خواهد بود . اگر برنامه نویس دلفی هستید ، چه چیزی بهتر از دلفی دات نت ؟ و اگر قرار است با دات نت شروع کنید ، سی شارپ میتونه پیشنهاد بهتری باشه چون آشنائی با ساختار زبانش میتونه مثلا" در یادگیری زبانهائی مثل جاوا و برنامه نویسی با دلفی هم بسیار زیاد مؤثر باشه و "من" محیط سی شارپ بیلدر رو توصیه میکنم . اگر هم بدون توجه به نوع زبان دنبال کسب امکانات خاصی که در محیط مایکروسافتی دات نت نهفته است هستید ، Managed C بهترین انتخاب است . در سایهء ترکیب دات نت و MFC و سورسهای فراوان و تولید ASP .NET با ++C و تولید ATL Server ها گرفته تا COM Programming و ... . طبیعی است برنامه نویسان سابق وی بی ممکنه به VB .NET متمایل باشن که البته و صد البته نه تنها فوائد زیادی در سایهء مهاجرت به دات نت کسب میکنند ، میتونن بعد از تسلط نسبی به VB .NET سایر زبانها مانند سی شارپ را هم براحتی تجربه کنن :)
شاید کمی بی ربط به نظر بیاد اما با عنایت به خبری که در بخش اخبار نوشتم ، کسایکه برنامهء مبتنی بر ویندوزی دارند که با استفاده از QT نوشته شده حالا میتونن ازش خروجی دات نت بگیرن یا با زبانهائی که دات نت را حمایت میکنه برای QT برنامه بنویسن ( QT مهمترین پلت فرم برنامه نویسی اهالیه لینوکسه و وجود چنین قابلیتی باعث هموار تر شدن مسیر حرکت لینوکس کارها به سمت برنامه نویسی دات نت میشه . از طرف دیگه محصولی بنام #QT در دست تهیه است که بر فراز مونو ، برنامه نویسی برای دات نت روی لینوکس رو سریعتر و راحت تر میکنه :) )
آنچه گفته شد :
- - دات نت دقیقا" چیه
- نقش دات نت در توسعهء نرم افزار
- دات نت و سایر فناوری ها
- ابزارهای مایکروسافت برای توسعهء دات نت
- سایر ابزارها
<اتمام بحث در مورد دات نت>
امیدوارم این مطالب تونسته باشه تا حدی روشن کننده بعضی مفاهیم مطرح شده در حوزهء دات نت باشه . یه مقداری از عرایض بنده هم میمونه برای بعد ، اگر حسش بود :?
موفق و خوش باشید :)
آقای SSP، شما لطفا جواب آقای Inprise را مطالعه کنید.
---
خوب قبل از هر چیز از Inpy عزیز تشکر میکنم که مثل همیشه خیلی قشنگ و پر حوصله تقریبا به تمام مسائل مورد بحث دوستان جواب کامل دادند.
خیلی ممنون ای Inpy جان (: X:
یکی از مشکلاتی که من دارم اینه که واقعا نمیتونم این همه مطلب رو تو قالب جملات بگم ...
بعضی موقع ها که میشینم پای کامپیوتر و میخوام شروع کنم به یک پست کلی مطلب تو ذهنمه ولی وقتی شروع به نوشتن میکنم احساس میکنم حتی از ساختن یک جمله ساده هم ناتوانم ):
خلاصه همین که آدم بتونه این حجم اطلاعات رو انتقال بده خودش یه هنره، دوباره تشکر (:
تازه میتونم یه نفس راحت بکشم (:
خلاصه برای آدمای عصر حجری مثل من که حرف عادیشونم به زور میزنن این فوروم یه موهبت آسمانیه !
راستی Inpy جان، من واقعا فکر میکنم حضور و نظریات شما در مباحثی نظیر این واقعا الزامیه (:
با تشکر،
هادی
این مقاله مشکلات موجود در برنامه نویسی تحت ویندوز را مورد بررسی قرار داده و راه حل هایی را که NET. برای رفع آنها ارائه کرده ، بیان می کند.
NET. تکنولوژی جدید مایکروسافت برای رفع مشکلات COM و برنامه نویسی تحت اینترنت است.
قبل از شروع کار با NET. تصور برنامه نویسان، نسخه ای جدید از زبانهای موجود مانند VB با VC++ است اما NET. یک محیط برنامه نویسی جدید است که می توان گفت شباهتهای زیادی با محیط های قبلی دارد. اگر چه برنامه های VB یا VC++ را می توان با تغییرات نسبتاً کم به محیط NET. انتقال داد، ولی اگر می خواهید از توانائیهای NET. بهره مند شوید، چیزهای زیادی برای یادگیری و تغییرات زیادی در برنامه ها دارید (خصوصاً برنامه نویسان VB).
مشکل عدم هماهنگی در نسخه های ویندوز:
هر برنامه نویسی که چند سال در محیط ویندوز برنامه نویسی کرده از تغییرات سریع و زیاد آن گله منداست.
- خود محیط ویندوز در نسخه های 16 ، 32 و 64 بیتی وجود دارد و نوشتن برنامه ای که در همه نسخه ها کارکند مستلزم در نظر گرفتن نکات زیادی است.
- مدلهای مختلفی برای نوشتن برنامه های گرافیکی ارائه شده مانند GDI ، DirectX و Open GL .
- مدلهای مختلفی برای کار با بانکهای اطلاعاتی وجود دارد مثل DAO ، RDOوADO
برنامه نویسان برای استفاده از توانائیهای مدلهای جدید احتیاج به اعمال تغییرات زیادی در برنامه ها دارند.
- Security در محیط های NT ،2000 با 95،98 متفاوت است . COM نیز مدل خود را دارا است. توجه نداشتن به این مسئله از زمان طراحی بخصوص در ایران زیاد دیده می شود.
راه حل در .NET :
.NET یک مدل شی گرا (Object Oriented) شامل صدها کلاس ارائه داده که عدم هماهنگی در محیطهای ویندوز را از دید برنامه نویس مخفی می کند. براساس نسخه های مختلف ویندوز یک کلاس ممکن است برای توابع گرافیکی از GDI ،DirectX و یا Open GL استفاده کند و برنامه نویس نیاز به نگرانی در مورد این عدم هماهنگی ندارد.
Security در داخل محیط NET. قرار داده شده و برنامه نویس یا حتی مسئول نصب و نگهداری برنامه میتواند اجازه دسترسی به منابع مانند فایلها یا registry را از داخل محیط برنامه و یا خارج آن به یک کاربر داده یاسلب کند (مسئول نصب یا Administrator اینکاررا از طریق فایلهای Config انجاممی دهد).
مشکلات COM :
مایکروسافت COM را برای نوشتن برنامه هایی که روی Server ها اجرا می شوند ارائه داد ولی از نظر تکنیکی نوشتن یک برنامه بزرگ با مدل COM مشکل است و احتیاج به طراحی قوی و تیم برنامهنویسی با دانش بالا دارد.
- COM وراثت (Inheritance) را به طور مستقیم حمایت نمی کند و این مسئله استفاده مجدد از کدهای نوشته شده را مشکل می کند.
- COM که به شکل .Ocx, .dll و یا فرم های دیگر وجود دارد احتیاج به ثبت در Registry دارد که از نظر مشکل زا بودن معروف است.
- مسئله دیگر مشکل Version است. در یک زمان نمی توان بیشتر از یک نسخه از COM با یک GUID را برروی یک کامپیوتر داشت.(GUID یک شناسه 128 بیتی منحصر به فرد برای یک COM است).
- نصب COM نیز مشکل دیگری است باید COM را در شاخة خاصی کپی کرده و سپس آنرا Register کرد و امیدوار بود که مشکل عدم هماهنگی با نرم افزارهای نصب شده روی کامپیوتر پیش نمی آید. در چنین حالتی شخصاً با Uninstall کردن بعضی از برنامه ها روی کامپیوتر شروع می کنم و گاهی پروسه ممکن است به نصب مجدد ویندوز ختم شود!
- مشکل Memory Leaking (نشتی حافظه) در COM .
در موقع اجرا در COM object یک شمارنده (Counter) ، تعداد ارجاعات به آن را نگه می دارد و موقعی که این تعداد صفر شود حافظه اختصاص یافته آزاد می شود. فرض کنید برنامه به شیء A اشاره میکند (Pointer دارد) و شیء A به شیء B و همچنین شیء B به شیء A . حال اگر برنامه شی ء A را رها کند شمارندة شیء A به یک کاهش پیدا می کند (ونه صفر) و دو COM object تا زمان اتمام برنامه در حافظه باقی می مانند این مشکل در برنامه هایی که روی سرورها برای مدتهای طولانی اجرا میشوند، مقدار زیادی از حافظه را تلف می کند.
راه حل در NET. :
می توان به NET. به عنوان نسل جدید COM نگاه کرد اما در نحوه عمل آنها کاملاً متفاوت هستند.
(لازم به ذکر است که مایکروسافت استفاده از COM را در محیط NET. پشتیبانی می کند هر چند که مشکلاتی هم در این زمینه وجود دارد)
در NET. به جای Component ،اسمبلی داریم . هر اسمبلی می تواند علاوه بر کد فایلهای دیگری نظیر .html ،.gif و یا حتی یک .dll دیگر را در خود جا دهد . اسمبلی با پسوند .exe یا .dll وجود دارد.
هر اسمبلی مانند COM یک Version دارد ولی در Registry ثبت نمی شود. مایکروسافت تاحدی به روش قدیمی خود یعنی ini فایلها برگشته اما این بار از فایلهایXML برای ذخیره اطلاعات استفاده کرده این فایلها می توانند اطلاعات را بصورت ساختار یافته ذخیره کنند. مسیر و تنظیمات تمام اسمبلیهای یک برنامه در یک Config فایل که در شاخه اصلی برنامه و در کنار فایل اجرایی اصلی برنامه قرار دارد ذخیره می شود. بنابراین شما می توانید یک برنامه و تمام اسمبلی های آنرا در یک شاخه و زیرشاخه های آن داشته باشید و نسخه دیگر برنامه به همراه اسمبلی های آنرا در شاخه دیگر. تنهاکاری که باید بکنید آن است که مسیر اسمبلی ها را در Config فایلها تعیین کنید و هر دو برنامه بدون هیچ تداخلی اجرا می شوند !
سوالی که ممکن است به ذهن برسد این است که با استفاده از Registry منبع مشترکی از Componentها داریم و نیازی نیست که یک نسخه COM را به صورت تکراری داشت.
NET. این مسئله را با مفهوم Shared Assembly حل کرده.
مسئله نصب نیز در محیط NET. بسیار ساده شده همه عملیات نصب با یک Xcopy انجام می شود.
فایل Config اطلاعات دیگری نظیر نحوه نمایش خطاهای برنامه و یا تنظیمات Security را نیز در خود دارد.
.NET مشکل Memory Leaking را با عوض کردن نحوه مدیریت object ها حل کرده. دیگر خود یک شیء اطلاعاتی را که برای زندگی ویااز بین رفتنش احتیاج است، ذخیره نمی کند. تمام اشاره گرها تحت کنترل محیط اجرایی .Net وتوسط Garbage Collector آزاد می شوند. این کار در زمان پر شدن heap (حافظه اختصاص یافته به object ها) ونبود حافظه لازم برای object های جدید انجام می شود.
مشکل استفاده از چند زبان برای تهیه یک برنامه (Cross-Language Interoperability)
با وجود تبلیغات زیاد مایکروسافت برروی این مسئله محیط ویندوز هنوز مشکلات زیادی دارد. زبانهای مختلف روشهای متفاوتی را برای فراخوانی توابع ویندوز (API) استفاده می کنند. بعضی از زبانها مانند C++ از Unsigned Integer استفاده می کنند که در زبانهای دیگر قابل دسترسی نیستند. مشکل دیگر روش اعلان خطاها به محیط بیرون از یک COM یا یک API است که مثل هم نیستند .
راه حل در .NET:
تمام زبانها در .NET مساوی خلق شده اند! اکثر توانایی های محیط .NET در لایة مشترک آن قرار دارد و نه در خود زبانها. به طور مثال کلاس هایی که با متغیرها، فرم ها،فایلها، بانکهای اطلاعاتی و با XML کار می کنند در خود .NET هستند بنابراین قابلیت و سرعت برنامه های VB .NET دیگر کمتر از C# نیست.(خوانده می شود"سی شارپ ")
اختلاف زبانها بیشتر در جزئیات و Syntax آنها است. برنامه نویسان VB بعد از مدتی کار با VB .NET به راحتی می توانند یادگیری C# را شروع کنند.
وراثت (Inheritance) جزء اصول طراحی کلاس های .NET است. کلاس هایی هم که شما می نویسید می توانند کلاس های .NET را به ارث ببرند و این مسئله استفاده مجدد از کد نوشته شده را راحت میکند (Code Reusability) . لازم به ذکر است وراثت به طور مستقیم در مدل COM قابل پیاده سازی نیست.
مشکلات برنامه نویسی اینترنت:
مشکل ASP :
هر برنامه نویس با تجربه ای که برای اولین بار با ASP کار می کند متوجه مشکلات زیادآن می شود. برنامه نویس باید کدهای ASP را در بین تگهای HTML بنویسد و رفع مشکلات برنامه نیز کار بسیار مشکلی است .عملاً نوشتن برنامه های بزرگ با ASP غیر ممکن است .
کدهای ASP هر بار توسط IIS خط به خط تفسیر می شوند( Interprete) که در سرعت اجرای آنها تأثیر منفی دارد.
راه حل در .NET :
خیلی ها ASP .NET را مهمترین قسمت .NET می دانند . برنامه های ASP .NET را می توانید در محیط های VB .NET ، C# و یا هر زبان دیگر .NET بنویسید. ساخت یک برنامه ASP .NET تا حد زیادی شبیه برنامه های VB است. قسمتهایی از کد که شکل ظاهری صفحات HTML را می سازند (تگها) و کدهای ASP کاملاً از هم جدا شده اند و به راحتی قابل debug هستند این کدها کامپایل می شوند که دو مزیت دارد اول اینکه سریعتر اجرا می شود و دوم (حتی شاید مهم تراز مزیت اول) بسیاری از خطاهای برنامه در زمان کامپایل مشخص می شوند و نه در زمان اجرا.
مزیت دیگری که ASP .NET دارد آن است که حتی در حال اجرا نیز می توانید اسمبلی های جدید را جایگزین کنید. ASP .NET قبل از اجرا آنها را در شاخه دیگری کپی کرده و سپس از آنها استفاده می کند بنابراین نسخه اصلی فایل قابل جایگزینی است و در هنگام یک فراخوانی (Call) جدید در صورت تغییر به شاخه ثانویه کپی و سپس اجرا می شود.با این روش کل یک برنامه ASP .NET را بدون توقف وب سایت می توان جایگزین کرد.
ASP .NET می تواند متغیرهای Session را به جای اینکه برروی کامپیوتر کاربر و بصورت Cookie ذخیره کند ،آنها را در سرور و حتی در بانک اطلاعاتی SQL Server ذخیره نماید. بنابراین حتی اگر کاربر Cookie را در Internet Explorer غیر فعال کرده باشد برنامه های ASP .NET باز هم بخوبی کار می کنند.
دنیای جدید اینترنت:
عرصه های جدیدی به دنیای اینترنت در حال اضافه شدن است در دنیای صنعت و تجارت نیاز ارتباط بین دو کامپیوتر بدون دخالت انسان روزافزون است.
یک برنامه کاربری نیاز دارد اطلاعات کالاها و قیمت روزآنها را از کامپیوتر فروشندگان، اطلاعات قیمت ارز را از وب سایت بانک مرکزی و درخواست ها را از برنامة روی کامپیوتر مشتریان بگیرد و آنها را پردازش کند. همه اینکارها بدون استفاده از مرورگرهای وب و یا Email و به وسیله Web Service و به کمک XML انجام می شود.
Web Service یک برنامه کاربردی است که درخواست را روی اینترنت و با فرمت XML گرفته ،دستورات داخل آنرا پردازش کرده و نتیجه را برای آن کامپیوتر با فرمت XML پس می فرستد. نتیجه می تواند حاوی داده های یک بانک اطلاعاتی و یاحتی نتیجه یک پردازش ریاضی پیچیده باشد. برای آشنایی با XML می توانید به مقالاتی که در این مورد در این وب سایت موجود است مراجعه کنید.
کلاس های زیادی در محیط .NET. برای تولید webService موجود است . .NET همچنین یک پردازشگر سریع XML نیز ارائه داده است.
یکی از بحث بر انگیزترین خصوصیات محیط .NET تولیدکد واسط به جای کد زبان ماشین است. در کد واسط (Intermidiate Language), مسقیماً نام CPU registers و یا آدرسهای حافظه ذکر نمی شود. مفاهیمی همچون استثنا (Exception که نام جدیدی برای Error است) و object شناخته شده است. برنامه نویسان Java کاملاً با مفهوم کد واسط (IL) آشنا هستند.
در این مقاله دلایل روی کرد مایکروسافت به این مفهوم بررسی می شود. ولی قبل از آن ببینیم که کدواسط چگونه کار می کند.
وقتی برنامه های نوشته شده در VB.NET و C# و سایر زبانهای تحت .NET ، کامپایل می شوند به جای زبان ماشین کد واسط تولید می شود. کد واسط با پسوند .exe ، .dll و ... ساخته می شود.
در زمان اجرا این کد توسط یک کامپایلر به نام JIT (Just In Time) به زبان ماشین تبدیل شده و سپس اجرا می شود. علت اینکه مایکروسافت آنرا کامپایلر نامیده و نه مفسر (Interpreter) آن است که JIT عملیات تبدیل به زبان ماشین را فقط در اولین فراخوانی یک متد انجام می دهد و در فراخوانی های بعدی تا زمان پایان اجرای برنامه از همان کد ترجمه شده استفاده می کند.
کدواسط را Managed Code نیز می خوانند. من بهترین ترجمه برای آنرا کد قابل کنترل می دانم.
بسیاری هدف مایکروسافت را از کامپایل دو مرحله ای، ایجاد قابلیت اجرای کد برروی سخت افزارهای مختلف می دانند (Cross-platform) که همان ایده اصلی Java و Virtual Machine است. ولی مایکروسافت بیشتر هدف امنیت و تایید کد را مدنظر دارد.
امنیت کد یعنی اینکه کد درست قبل از اجرا تحت بررسی محیط اجرای .NET قرار گیرد.(مفهوم کدقابل کنترل). در این زمان تمام پارامترهای متدها چک می شود (از نظر تعداد ونوع) همچنین همه اشاره گرهای برنامه در زمانی که نقطه اشاره آنها مشخص است (یعنی زمان اجرا) چک می شوند تا اطمینان حاصل شود که برنامه قسمت هایی از حافظه را که خارج ازمحدودة آن است تغییر نمی دهد. اشاره گرهای اشتباه یکی از مهمترین دلایل fatal Error در ویندوز است.
در ویندوزهای 95 و 98 مشکل در یکی از برنامه های در حال اجرا منجر به اشکال در سایر برنامه ها و حتی خود محیط ویندوز می شود. در ویندوز NT،2000 هر قطعه برنامه در یک پروسه جدا قرار میگیرد تا امکان دسترسی به حافظه سایر برنامه ها ممکن نباشد (مفهوم Isolation) . اینکار به قیمت تلف کردن CPU و سایر منابع انجام می شود. حتی با این وجود برنامه نویسان خبره با روشی به نام DLL Injection می توانند به حافظه سایر برنامه ها که به طور همزمان برروی کامپیوتر اجرا می شوند دسترسی یافته و با تغییر محتویات حافظه باعث خرابی آنها و حتی سیستم عامل می شوند. ویروسها از این ضعف نهایت سوء استفاده را می کنند.
.NET با مفهوم کد قابل کنترل می تواند با خیال راحت چند برنامه را در یک پروسه قرار داده و علاوه بر صرفه جویی در منابع، سرعت فراخوانی بین برنامه های مختلف را افزایش دهد.
بنابراین در مقام مقایسه .NET از قابلیت اطمینان بسیار بالاتری برخوردار است.
عملیات چک و تایید کد در زمان اجرا اجباری نیست و Administerator می تواند آنرا برای یک برنامه غیرفعال کند در .NET SDK برنامه ای کمکی با نام PEVerify.exe می تواند عملیات چک و تایید را انجام دهد. بنابراین برنامه نویسان باید این برنامه کمکی را برروی برنامه های خود اجرا کنند تا مطمئن شوند که برنامه از نظر امنیت مشکلی ندارد. در مقالات آتی سرعت اجرای کدواسط و نگرانی های مربوط به آن را بررسی میکنیم.
نکاتی در مورد محیط اجرای.NET :
JIT در فایلی به نام MSCorEE.dll قرار دارد. برای اجرای برنامه های نوشته شده در محیط .NET لازم است خود محیط، برروی ویندوز نصب شود. می توانید محیط .NET را از وب سایت مایکروسافت down load کنید. بدین منظور 20 MB فضای خالی روی کامپیوتر خود احتیاج دارید. این محیط با نصب Visual Studio.NET نیز نصب می شود
با اجازه از بزرگترها بنده به عنوان یه ریز برنامه نویس تمام بحث این تاپیک را خوندم و چیزی که متوجه شدم این بود که عزیزان دلفی کار سنگ Delfi.Net را به سینه می زنند دوستان Vb کار سنگ Vb.Net و یکسری از دوستان هم ++C و #C به نظر من در آینده نه چندان دور دیگه زبانی به نام Delfi.Net یا VB.Net و ++C و... وجود خارجی نخواهد داشت مجموعه عظیمی به نام Visual Stadio.Net به بازار خواهد آمد که در عمل کل زبانهای برنامه نویسی را در خود حل کرده باشد دوستان اگر الان هم Visual Stadio.Net را نگاه کنند موقع انتخاب زبان برنامه نویسی شاید صحبت بنده را تایید کنند
سلام،
ویژوال بیسیک از طرف کسی که سیستم عامل مورد استفاده قریب به اتفاق همه ما برنامه نویسان ایرانی را عرضه می کنه بشدت پشتیبانی میشه، با توجه به انحصار طلبی میکروسافت معلوم نیست در آینده نزدیک چه سرنوشتی در انتظار زبان های ارائه شده توسط کمپانی های دیگر بخصوص بورلند که پدیدآورنده دلفی است باشه ، آیا نگارش های بعدی ویندوز بطور کامل با دلفی سازگارند یا نه من بارها در پروژه های بزرگی که انجام دادم را تا نیمه راه را با دلفی برنامه نویسی کرده ام اما زمانیکه حجم بالا می رود و هنگامیکه اطلاعات با حجم بالا از سرور شبکه که سیستم عامل آن ادونس سرور 2000 یا اکس پی باشد توسط یک ایستگاه کاری لود می شود با خطاهای زیادی مواجه شده ام که مقصر من نبودم بلکه عدم سازگاری دلفی بود و به ناچار پروژه را از ابتدا با ویژوال بیسیک برنامه نویسی کرده و بدون هیچ مشکل خاصی تحویل داده ام.
من یک جورایی حرفای جناب ehsan_ansaripoor را تایید می کنم !
ولی در حال حاضر C# برای برنامه نویسان ز C , C++ خیلی عالی و VB.NET هم برای VB کارا
....
فقط باید گفت که C# آینده خوبی داره ، منظورم طراحی میکرو کرنل سیستم عامل جدید ( آینده )مایکروسافت با این زبان .... بنابر این C# یکم آینده دار تره !
دوست عزیز اگر دقت میکردی این بحث مال دو سال پیش بود
دلیل با مزه ای بود.نقل قول:
نوشته شده توسط برادران
بحث مال 10 سال پیش هم که باشه برای اون کسی که برای اولین بار این رو می خونه تازه است اگر قرار بود با تاپیک های قدیم کاری نداشته باشیم که صاحب این سایت اقدام به حذف آن می کرد چه کاری بود که حجم بانک سایت رو بالا ببره. پس باید نظرمان را در هر تاپیکی که می دونیم بگیم تا دیگران استفاده ببرند.نقل قول:
دوست عزیز اگر دقت میکردی این بحث مال دو سال پیش بود
شما هم اگر دقت می کردی میدیدی که این بحث هم واسه یک سال پیشه. یعنی بعد از یک سال نیازی به گوشزد کردن این نکته بود؟!؟نقل قول:
بحث مال 10 سال پیش هم که باشه برای اون کسی که برای اولین بار این رو می خونه تازه است اگر قرار بود با تاپیک های قدیم کاری نداشته باشیم که صاحب این سایت اقدام به حذف آن می کرد چه کاری بود که حجم بانک سایت رو بالا ببره. پس باید نظرمان را در هر تاپیکی که می دونیم بگیم تا دیگران استفاده ببرند.
با سلام
اول باید خدمت این دوست عزیزمون عرض کنم مایکروسافت تمام کارهاش بدست آقای بیل گیتس نیست.بیل گیتس تقریبا از سال 1998 به بعد مدیریت رو کنار گذاشت و مدیران جدیدی بعد از اون روی کار اومدن و بیل گیست خودش فقط به عنوا ریاست،طراح،نو آور و شاید ناظر بود.بعد از این باید در مورد دات نت یه چیزی بگم.البته اینجا کسانی مثل Inspire و DelphiAssistant از اساتید ما هستند.
ببینید عزیزان دات نت یک Framework Class Library داره که تمام کلاس ها اونجا تعبیه شدن.شما هر کدی و هر نوع پروژهای رو که بخواین بسازین از این کتابخانه کلاس استفاده میشه.حالا شما با هر کدوم از زبان های دات نت از VB.NET گرفته تا j#.NET و C++.NET و C#.NET همه از کلاس های مشترکی استفاده می کنند.پس در کل نمیشه قدرت و برتری رو به یک زبان خاص اختصاص داد به البته درسته ممکنه در اجرا کردن بک سری کد ها و مفاهیم زبانی مثل C#.NET راحت تر و سهولتی نسبت به VB.NET داشته باشه اما قدرت و امکانات یکی است!
آینده دات نت هم که تقریبا معلوم و بسیار روشن است.همونطور که دوستان هم گفتند بهتره وقت تلف نکنیم و سراغ دات نت بریم حالا چه سی شارپ چه دلف یا وی بی دات نت.از طرفی فکر نمی کنم مایکروسافت بتونه برنامه نویسان رو ریشه کن کنه دلایل زیادی مثل سیاست های مبارزه با انحصار طلبی و این چیز ها هستند که جلوگیری می کنند.
سلام دوستان
مدتی بود که به سی # علاقه پیدا کردم. کتابی گرفتم و شروع کردم به یاد گیری، اما یه مدتی که گذشت این سوال برام مطرح شد.
قدرت سی # در چیست؟
آیا فقط به خاطر اینه که سرعت اجرای بالاتری نسبت به وی بی داره (که بعید می دونم به این دلیل باشه).
یه جایی خوندم که دی سی # می شه برنامه هایی رو که زبانهای مختلف رو مورد استفاده قرار داد. این یه کمی برام مبهمه!
اگه دوستان لطفی کنند و در مورد توانایی های سی# قدری توضیح بدن و اینکه چرا به این زبان علاقه مند شدن ما رو مدیون خودشون می کنن.
پیشاپیش ممنونم
تا اونجایی که من میدونم تفاوت VB و #C فقط و فقط توی syntax هست. یعنی تمام زبان های Net. اینگونه هست. دلیل اینکه من به #C علاقه مند شدم یه مقدازی احمقانه هست، پس بیخیال این قسمت میشم. اما از همون syntaxش خوشم میاد.
فقط ایراد بزرگی که اینا دارن اینه که حتی برای اجرای برنامه های کوچک هم باید Net. حتمان نسب باشه.
سی شارپ زبانی از خانواده ی سی است ولی از صفر نوشته شده، سی شارپ و جاوا تنها زبانهای استاندارد ISO هستند، سی شارپ زبان پیشفرض دات نت است، سی شارپ از 100% قابلیت های دات نت با بالاترین کارایی استفاده میکند در حالی که در vb.net اینطوری نیست، مثلا در vb.net، تکنولوژی GarbrageCollection باعث ایجاد سربارحاقظه میشود، نکته ی دیگه اینکه datatype هایی که uint هستد در vb.net به خوبی پیاده سازی نشدن، در نتیجه اگر کامپوننتی به زیان سی شارپ نوشته شده باشد و در ان از نوع های uint استفاده شده باشد و در vb.net آن کامپوننت مورد استفاده قرار گیرد، ممکن است برنامه دچار اختلال شد، یکی دیگر از مزیتهای سی شارپ نزدیکی آن به زبان پدر خود یعنی C++ است، به طوری که میتوان در برنامه های سی شارپ کدهای unmanage C++ نوشتنقل قول:
تا اونجایی که من میدونم تفاوت VB و #C فقط و فقط توی syntax هست
بسه یا بازم بگم ؟؟
امیدوارم جواب سوالتو گرفته باشی.
باتشکر از جواب های شما دوستان
حالا این سوال پیش می یاد، ایا خود پدر سی# یعنی سی ++ قابلیت بیشتری نداره مخصوصا خیلی راحت تر کدهای unmanage رو می شه توی اون اجرا کرد.
ساده تر بگم، با وجود سی ++ که هنوز هم ویژوال استودیو از اون پیشتیبانی می کنه، چرا مایکروسافت، ورژن سی # رو خلق کرد. آیا می شه گفت که انگیزه اصلی، جدا کردن تدریجی سی مایکروسافت از سی بورلند باشه. چون همیشه سی ++ رو با سی بورلند مقایسه می کنند اما من تا حالا ندیدم که سی# رو با بورلند مقایسه کنند.
خب باید در جواب این سوال شما عرض کنم که سی ++ با وجود قدرت و سرعت زیاد پیچیدگی های خاص خودشو داره مخصوصا در مقوله های پیشرفته مثل MultiInheritance یا ارث بری چند گانه که برنامه ها رو خیلی پیچیده و گاه دچار اختلال و ایجاد OverHeading یا سربارگذاری حافظه میشد، از این رو مایکروسافت به فکر ایجاد زبانی افتاد تا علاوه بر قدرت سی ++، راحتی VB رو هم داشته باشه،از طرفی هم توسعه ی خود سی ++ با وجود پیچیدگی زیاد امکان پذیر نبود، این بود که سی شارپ در سال 2000 همزمان با معرفی دات نت متولد شد،زبانی که از لحاظ قدرت با سی ++ رقابت میکنه و از لحاظ سرعت تولید نرم افزار و مدیریت کد همتا نداره، زبانی که از سی ++ و جاوا تشکیل شده.
نقل قول:
سی شارپ از 100% قابلیت های دات نت با بالاترین کارایی استفاده میکند در حالی که در vb.net اینطوری نیست
برای این ها مستنداتی هم دارید؟نقل قول:
مثلا در vb.net، تکنولوژی GarbrageCollection باعث ایجاد سربارحاقظه میشود، نکته ی دیگه اینکه datatype هایی که uint هستد در vb.net به خوبی پیاده سازی نشدن، در نتیجه اگر کامپوننتی به زیان سی شارپ نوشته شده باشد و در ان از نوع های uint استفاده شده باشد و در vb.net آن کامپوننت مورد استفاده قرار گیرد، ممکن است برنامه دچار اختلال شد
آیا برای این هم بنچمارک معتبر دارید؟نقل قول:
لحاظ قدرت با سی ++ رقابت میکنه و از لحاظ سرعت تولید نرم افزار و مدیریت کد همتا نداره،
منظورتون از این عبارت چیه؟نقل قول:
زبانی که از سی ++ و جاوا تشکیل شده.
اصولا چنین مقایسه هایی کار درستی نیست. برای هر مقایسه ای باید معیار در نظر گرفت. هر ابزاری برای رسیدن به هدفی خاص طراحی شده و برای رسیدن به اون هدف هم توسعه داده میشه. زیاد لازم نیست در مورد بحث کنیم چون در این مورد زیاد تاحالا بحث شده و البته بحث بی فایده ای هم هست. این وظیفه طراح هر سیستمی که با توجه به عوامل موثر در پروژه خودش و case study های مختلف، در مورد استفاده از ابزارها تصمیم گیری کنه. برای درک واقعیت باید تعصب رو کنار گذاشت.
http://www.barnamenevis.org/sh...ad.php?t=59570
فکر کنم بهتره پستهای titbasoft رو با دقت بخونید، مطالب قبلی که در مورد مقایسه این دو زبان گفته شده بود کاملا بی اساس هستن و در صورت لزوم می شه همه اونها رو به صورت مستدل رد کرد.
omid_Ahmadi عزیز بهتره یه نگاهی به آموزش سی شارپ در 21 روز بندازی.
من این مورد رو به کرات در جاهای دیگه دیدم... تقریبا میشه گفت که واقعا سی شارپ شی گرائی خودش رو از جاوا گرفته (بعضی موارد هم شنیدم از دلفی) و همونطور که جاوا از سی++ گرفته شده و سی# سعی کرده بیشتر به سی++ نزدیک باشه، پس به احتمال زیاد، منظور دوستمون همین بوده.نقل قول:
زبانی که از سی ++ و جاوا تشکیل شده.
دقیقا من یک پست در قسمت "بحث و گفتگوی فنی پیرامون دات نت" نوشته بودم، که متاسفانه هنوز تائید نشده و روی سایت قرار نگرفت ! ( نمیدونم چرا اون پست من تائید نشد !!! ) در اون پست به یک مقاله انگلیسی برخورده بودم که گفته بود (("همواره سرعت کدهای مدیریت نشده از کدهای مدیریت شده بیشتر نیست")) یعنی در بعضی مواقع کدهای مدیریت شده، سرعت بیشتری به نسبت کدهای مدیریت نشده داشت. جالبه که بدونید سی# کمی ( زیاد نه ) سریعتر از سی++ مدیریت شده بود ! ( البته در اون یک مقایسه نه بصورت کلی ! ) لینکش رو همین زیر میگذارم:نقل قول:
لحاظ قدرت با سی++ رقابت میکنه و از لحاظ سرعت تولید نرم افزار و مدیریت کد همتا نداره
http://www.grimes.demon.co.uk/dotnet/man_unman.htm
البته شاید من اشتباه متوجه شدم، بهر حال خودتون برید ببینید.
یک نکته جالب و خنده داری که خیلی جاها من میخونم اینه که مثلا #C یه چیزهایی رو ازجاوا گرفته یا جاوا یه چیزهایی رو از ++C گرفته ، این طوری به نظر میرسه انگار اینا یه قسمت هایی از کدهاشون رو از هم کش میرن !
تا جایی که بنده میدونم اکثر مواردی که در زبان های برنامه نویسی وجود داره یک فناوری منحصربه فرد هستش که روش تحقیق شده و مرجع علمی داره و زبان های برنامه سازی اون رو پیاده سازی می کنند حالا هر کی اول اونو به کاربرد نمیگن بقیه از اون گرفتنش که!
مثل وراثت چندگانه یا امثالهم!
هر زبانی برای کاربردی طراحی میشه ، بنابراین مقایسه زبان های مختلف به این راحتی ها نیست!
مثلا اگر قرار بود VB همه کارهای ++C رو انجام بده که دیگه به این راحتی نبود !
تنها ارتباط #C با هر زبان دیگه ای فقط Anders Hejlsberg (آرشیتکت #C) می تونه باشه
توی این کتاب چه چیزی گفته شده؟ (تا اونجایی که من می دونم امید اطلاعاتش نسبت به دات نت و البته زبان تخصصیش یعنی #C ، خوبه، پس بیخودی یه حرفی رو نمیزنه)نقل قول:
omid_Ahmadi عزیز بهتره یه نگاهی به آموزش سی شارپ در 21 روز بندازی
این درسته اما چه ارتباطی به قدرت و سرعت تولید نرم افزار داره؟نقل قول:
در اون پست به یک مقاله انگلیسی برخورده بودم که گفته بود (("همواره سرعت کدهای مدیریت نشده از کدهای مدیریت شده بیشتر نیست")) یعنی در بعضی مواقع کدهای مدیریت شده، سرعت بیشتری به نسبت کدهای مدیریت نشده داشت. جالبه که بدونید سی# کمی ( زیاد نه ) سریعتر از سی++ مدیریت شده بود !
سنتکس رو ... !نقل قول:
یک نکته جالب و خنده داری که خیلی جاها من میخونم اینه که مثلا #C یه چیزهایی رو ازجاوا گرفته یا جاوا یه چیزهایی رو از ++C گرفته ، این طوری به نظر میرسه انگار اینا یه قسمت هایی از کدهاشون رو از هم کش میرن !
خب، توی مطلبی که نوشتم، سرعت اجرای نرم افزار رو به عنوان یک قدرت (توانائی) به حساب آوردم، حالا اگر شما این دو رو جدا از هم میدونید، باشه، من هم موافقم.نقل قول:
این درسته اما چه ارتباطی به قدرت و سرعت تولید نرم افزار داره؟
نقل قول:
سرعت اجرای نرم افزار رو به عنوان یک قدرت
----------نقل قول:
این درسته اما چه ارتباطی به قدرت و سرعت تولید نرم افزار داره؟
PC2st.ir عزیز ممنونم ازت، منم منظورم همین بود.نقل قول:
همونطور که جاوا از سی++ گرفته شده و سی# سعی کرده بیشتر به سی++ نزدیک باشه، پس به احتمال زیاد، منظور دوستمون همین بوده.
چیزایی که من گفتم در مورد دلیل به وجود آمدن سی شارپ و همچنین سربار حافظه ای که در vb.net براثر Garbrage Collection رخ میده و بسیاری چیزای دیگه مطرح شده.نقل قول:
توی این کتاب چه چیزی گفته شده؟ (تا اونجایی که من می دونم امید اطلاعاتش نسبت به دات نت و البته زبان تخصصیش یعنی #C ، خوبه، پس بیخودی یه حرفی رو نمیزنه)
من حدود یه سال پیش یه مقاله ای پیدا کردم در مورد performence برنامه های نوشته شده توسط vb و سی شارپ که برنامه های نوشته شده با سی شارپ performence بهتری در اجرا داشتند،البته اصل موضوع مربوط به مقایسه ی دو زبان بود، دارم میگردم پیداش کنم به محض اینکه پیداش کردم لینکشو برای اونایی که از حرفای من تعجب کردن میذارم، در ضمن به جای ایراد گرفتن از حرفای من که استدلال نداره، شما اسنادی رو که بر اساس اون میگید حرف من مستدل نیست بیارید، من هم دارم دنبال اسنادم میگردم.
بهرحال، بد ندیدم که به یک مقاله به زبانی غیر از پارسی (!) بگردم، لینکش رو این زیر ملاحظه میکنید:
http://en.wikipedia.org/wiki/Compari...ual_Basic_.NET
اما یک خلاصه از پاراگرافهای اول از مطالب فوق:
C# has taken concepts from other languages, notably Java and Delphi, combined with a syntax similar to C and Java.
1. ویژوال بیسیک کاربران رو مجبور نمیکنه که حتما به روش شی گرائی برنامه نویسی کنند.
2. سی شارپ ساخته شده که فقط به روش شی گرائی برنامه نویسی کنه.
پس: بعضی از دوستان که میگن سی شارپ، شی گرا تر از بیسیک دات نت است، شاید منظورشون این بوده.
1. بیسیک دات نت برای برنامه های کوچک هست. (small appliaction)
2. سی شارپ برای برنامه های Enterprise application development هست.
پس: خودتون نتیجه بگیرید.
1. There are large VB projects that are unusable in VB.Net due to the size of the project.
2. If your solution is likely to include a large number of classes, C# is highly recommended.
همچنین:
Visual Basic .NET culture :
VB historically was a RAD tool, as well as a tool that was usable by untrained developers, or management. As a result of this wider user base, VB allowed for many shortcuts and ease of use features. These features allowed for the uninitiated to create code, but also contributed to maintenance and debugging issues. Examples of the shortcuts allowed in VB
--- Optional declaration of variables
--- Optional Weak Typing using late binding
--- Optional Parameters
که البته Optional Parameters رو به کمک دات نت، میشه واسه سی شارپ شبیه سازی کرد.
و همچنین:
C# culture :
C# developers tend to be prior C/C++ developers, or Java developers. C# is syntactically very similar to C and Java, the IDEs and command line tools work very similarly, and the culture is the same. Also, C# inherited quite a bit of its style and culture from the Delphi/Object Pascal programming language.
اینا رو از منبع نوشتم و توضیحات خیلی بیشتری که بهتره خودتون برید ببینید.
بله، حالا فهمیدم منظورتون چی بوده...
اگر قدرت یک زبان رو در سطح پائین تر بودن و ارتباط بیشتر با سخت افزار بدونیم، اون وقت سی++ قوی تر از سی# خواهد بود (برای تولید نرم افزار)، اگر سرعت تولید نرم افزار رو مبنای بر زمان اتمام و طراحی یک نرم افزار برای ویندوز در نظر بگیریم، اون وقت سی# سرعت بیشتری در تهیه و تولید نرم افزار خواهد داشت.
ببین این جمله رو با دقت بخون:نقل قول:
اگر قدرت یک زبان رو در سطح پائین تر بودن و ارتباط بیشتر با سخت افزار بدونیم، اون وقت سی++ قوی تر از سی# خواهد بود (برای تولید نرم افزار)، اگر سرعت تولید نرم افزار رو مبنای بر زمان اتمام و طراحی یک نرم افزار برای ویندوز در نظر بگیریم، اون وقت سی# سرعت بیشتری در تهیه و تولید نرم افزار خواهد داشت.
جمله اول داره در مورد قدرت صحبت می کنه. بعد جمله دوم شروع میشه که میگه #C بی همتاست.نقل قول:
لحاظ قدرت با سی++ رقابت میکنه و از لحاظ سرعت تولید نرم افزار و مدیریت کد همتا نداره
نقل قول:
تقریبا میشه گفت که واقعا سی شارپ شی گرائی خودش رو از جاوا گرفته (بعضی موارد هم شنیدم از دلفی) و همونطور که جاوا از سی++ گرفته شده و سی# سعی کرده بیشتر به سی++ نزدیک باشه، پس به احتمال زیاد، منظور دوستمون همین بوده.
شباهت مفهومی و سینتکسی به معنای این نیست که #C شی گراییش رو از جاوا یا ... گرفته. ببین ممکنه من لباسم رنگ لباس شما باشه، یک معلم داشته باشیم به نام Anders Hejlsberg، با هم خیلی هم دوست باشیم و خیلی چیزای مشابه داشته باشیم اما این معناش این نیست که اگر لباس من آبیه و لباس شما هم آبیه پس من لباس شما رو پوشیدم .روشن میگم؟نقل قول:
C# has taken concepts from other languages, notably Java and Delphi, combined with a syntax similar to C and Java.
به جای پاسخ طولانی لطفا دقت کنید که این مطالب:
تحت عنواننقل قول:
. ویژوال بیسیک کاربران رو مجبور نمیکنه که حتما به روش شی گرائی برنامه نویسی کنند.
2. سی شارپ ساخته شده که فقط به روش شی گرائی برنامه نویسی کنه.
پس: بعضی از دوستان که میگن سی شارپ، شی گرا تر از بیسیک دات نت است، شاید منظورشون این بوده.
1. بیسیک دات نت برای برنامه های کوچک هست. (small appliaction)
2. سی شارپ برای برنامه های Enterprise application development هست.
پس: خودتون نتیجه بگیرید.
1. There are large VB projects that are unusable in VB.Net due to the size of the project.
2. If your solution is likely to include a large number of classes, C# is highly recommended.
آورده شده اندنقل قول:
No second class languages
و این مطالب:
در مورد فرهنگ دارن صحبت می کنن و فرهنگ استفاده ربطی به قدرت و قص علی هذا ندارهنقل قول:
Visual Basic .NET culture :
VB historically was a RAD tool, as well as a tool that was usable by untrained developers, or management. As a result of this wider user base, VB allowed for many shortcuts and ease of use features. These features allowed for the uninitiated to create code, but also contributed to maintenance and debugging issues. Examples of the shortcuts allowed in VB
--- Optional declaration of variables
--- Optional Weak Typing using late binding
--- Optional Parameters
که البته Optional Parameters رو به کمک دات نت، میشه واسه سی شارپ شبیه سازی کرد.
و همچنین:
C# culture :
C# developers tend to be prior C/C++ developers, or Java developers. C# is syntactically very similar to C and Java, the IDEs and command line tools work very similarly, and the culture is the same. Also, C# inherited quite a bit of its style and culture from the Delphi/Object Pascal programming language.
titbasoft عزیز شما به چه نتیجه ای میخوای برسی ؟؟؟
خیلی ساده:
نقل قول:
اصولا چنین مقایسه هایی کار درستی نیست. برای هر مقایسه ای باید معیار در نظر گرفت. هر ابزاری برای رسیدن به هدفی خاص طراحی شده و برای رسیدن به اون هدف هم توسعه داده میشه. زیاد لازم نیست در مورد بحث کنیم چون در این مورد زیاد تاحالا بحث شده و البته بحث بی فایده ای هم هست. این وظیفه طراح هر سیستمی که با توجه به عوامل موثر در پروژه خودش و case study های مختلف، در مورد استفاده از ابزارها تصمیم گیری کنه.
سلام
من که نفهمیدم ماجرا چه جوریاست؟
تویه جا بعد از کلی بحث آخرش به این نتیجه می رسند که vb.net و C# فقط تو سینتک با هم فرق می کنند (البته با کمی تفاوت های قابل گذشت)
بعد تو یه جا دیگه بحث به اینجا می رسه که vb.net برا برنامه های کوچیکه!!!!!!!!!!
نقل قول:
1. بیسیک دات نت برای برنامه های کوچک هست. (small appliaction)
2. سی شارپ برای برنامه های Enterprise application development هست.
پس: خودتون نتیجه بگیرید.
آقا تکلیف من و که می خوام یکی از این دو تا رو شروع کنم رو روشن کنید؟؟؟؟؟؟
از نظر من، این دو جمله معانی جدای از هم داشته و منظور از بی همتائی، همون سرعت تولید و مدیریت کدها بوده که البته میتونه بی همتا نباشه ولی جزء بهترین هاست.نقل قول:
نوشته شده توسط titbasoft
در رابطه با جمله اول :
در پست شماره 10 از همین تاپیک، در مورد تفاوت سرعت اجرای سی++ و سی# توضیح دادم که همواره سرعت سی# (Managed) پائین تر نیست، پس میتونه تا حدودی (نه کاملا) با سی++ (Unmanaged) برابری کنه.نقل قول:
لحاظ قدرت با سی++ رقابت میکنه
البته بازهم سوء تفاهم نشه، در این حالت، من سرعت رو جزئی از قدرت (توانائی) یک زبان به حساب میآرم و منظورم قدرت در نوشتن برنامه های سیستمی نیست ! اگر منظور اون باشه، سی# حرفی برای گفتن نداره (فکر کنم اینجا حرف شما رو تائید کرده باشم) و در ضمن نمیدونم که بیسیک دات نت چه سرعتی داره و تا حالا هم درباره سرعت بیسیک، حرف نزدم.
بد نیست بگم که به غیر از نرم افزارهای سیستمی، ابزارهائی مثل Multimedia SDK برای سی++ در نظر گرفته شدن (گفتم خودم بگم که بعدا ازم ایراد نگیرید!)
در رابطه با جمله دوم :
و اگر اون پست قبلیم که توش یک لینک داده بودم رو نگاه کنید، برای مدیریت کدها نوشته، اگر برنامه ای مینویسیم که دارای تعداد زیادی کلاس هست، بهتره که از سی# استفاده بشه (تا بیسیک) چون:نقل قول:
از لحاظ سرعت تولید نرم افزار و مدیریت کد همتا نداره
If your solution is likely to include a large number of classes, C# is highly recommended
در ضمن سی++ پیچیدگیها و ظرافتهای خاص خودش رو داره و طبعا برای ایجاد یک application با سی++، چزئیات بیشتری رو پیاده سازی نمود. (مثلا در سی++ باید یکبار تابع رو اعلان کنید و بعد باید تابع رو پیاده سازی کنید)
من که مخالفتی ندارم :) قدرت بیسیک رو کار ندارم :) سنتکس اش هست که شاید باعث شده که بیشتر به درد small applications بخوره، در حالیکه میشه باهاش برنامه های بزرگتر هم نوشت!نقل قول:
تحت عنوان No second class languages آورده شده اند
این مطالب رو همینجوری گذاشتم :) چون تا یکجائی از اون مقاله غیر زبان پارسی (!) رو به صورت گزینشی در این پست گنجانده بودم و منظوری از قدرت و غیره نبود !!! تازه بقیه مقاله رو بیخیال شدم گفتم خودتون بخونید :) وگرنه حتما ذکر میکردم که سی# MultiLine Comments هم داره :) (البته بیسیک.نت امکانات دیگری داره که به درد ساده سازی برای برنامه نویس میخوره)نقل قول:
در مورد فرهنگ دارن صحبت می کنن و فرهنگ استفاده ربطی به قدرت و قص علی هذا نداره
به نظرم اینجا سوء تفاهمی شده (به احتمال زیاد بدجوری منظور خودم رو عنوان کردم)نقل قول:
شباهت مفهومی و سینتکسی به معنای این نیست که #C شی گراییش رو از جاوا یا ... گرفته.
دقیقا منظور من از شباهت، شباهت Syntax و نحوه برخورد ظاهر با اشیاء از لحاظ ساختار دستوری و ... بود، که در نوشته زیر هم تائید شده و منظورم نحوه برخورد ساختار زبان برنامه نویسی سی# با اشیاء (نه از لحاظ فنی)، داده ها و ... که بعضی هاش رو از جاوا گرفته و بعضی هاش هم از سی و دلفی (منظورم این نیست که تکنولوژی اش رو گرفته، شکل ساختاری زبان برنامه نویسی یا محیط IDE (که البته محیط IDE ربطی به زبان نداره، گفتم خودم این رو بگم تا بعدا ازم ایراد گرفته نشه!) و ...)
C# has taken concepts from other languages, notably Java and Delphi, combined with a syntax similar to C and Java.
معنی: سی#، طرز فکر خودش رو از دیگر زبانها گرفته است، بطور برجسته از جاوا و دلفی، ترکیب شده با یک سنتکس شبیه به سی و جاوا.
و برای همچنین میگه:
C# is syntactically very similar to C and Java, the IDEs and command line tools work very similarly, and the culture is the same.
Also, C# inherited quite a bit of its style and culture from the Delphi/Object Pascal programming language
این دوتا فرقی ندارن، یکیش رو یاد بگیری، اون یکی هم راحت میشه یاد گرفت (چون در واقع در این زبانها، شما با دات نت کار میکنید)نقل قول:
آقا تکلیف من و که می خوام یکی از این دو تا رو شروع کنم رو روشن کنید؟؟؟؟؟؟
از اینکه نوشته شده بیسیک دات نت برای small application هست، نمیدونم شاید من اشتباه فهمیدم! ولی فکر کنم بخاطر این گفته که به احتمال زیاد، برنامه نویس در برنامه های بزرگتر، سخت تر میتونه پروژه اش رو کنترل کنه و فکر نمیکنم بخاطر قدرتش باشه.