PDA

نسخه کامل مشاهده نسخه کامل : تفاوت Visual C++.NET و Visual C#.NET در چيست ؟



fathi67
04-08-2007, 20:07
دوستان سلام

مي خواستم در چند مورد نظر شما را درباره ي تفاوت Visual C++.NET و Visual C#.NET بدانم لطفا بدون هر گونه جهت گيري مطالب خود را بيان نماييد

آيا Visual C#.NET نسبت به Visual C++.NET نقطه ضعفي دارد؟ ( در هر بخش و زمينه اي )

كدام يك از نظر وجود انواع توابع كامل ترند ؟

آيا كسي كه Visual C#.NET بداند لزوما با Visual C++.NET آشنا است ؟

آيا كسي كه تاكنون سراغ برنامه نويسي ويژوال نرفته مي تواند به يكباره Visual C#.NET را شروع كند ؟

در كل Visual C#.NET تركيبي از چه زبان هايي است ؟

در كل آيا هر كاري كه در VB.NET و Visual C++.NET برنامه نويسان انجام مي دهند مي توانند با Visual C#.NET نيز انجام دهند ؟

آيا Visual C#.NET برترين زبان برنامه نويسي جهان است ؟

در آخر اگر حضور ذهن داريد چند برنامه ي معروف در عالم كامپيوتر كه با Visual C#.NET برنامه نويسي شده اند را نام ببريد.

با تشكر فراوان از صبر و تحمل شما عزيزان.:20:

_H2_
05-08-2007, 14:56
سلام


مي خواستم در چند مورد نظر شما را درباره ي تفاوت Visual C++.NET و Visual C#.NET بدانم لطفا بدون هر گونه جهت گيري مطالب خود را بيان نماييد
انشا ا...



آيا Visual C#.NET نسبت به Visual C++.NET نقطه ضعفي دارد؟ ( در هر بخش و زمينه اي )
تقریباً!!!
بهتر است بگوییم کلیه زبانهای تحت دات نت برابر هستند ولی استثناً VC++.Net از کلیه زبانهای تحت دات نت دیگر قوی تر است و امکان کد نویسی غیر مدیریت شده و مدیریت شده را همزمان میدهد.
شما میتوانید با VC++2005 یک dll بنویسید که هم شامل کلاسسهای دات تی باشد و هم شامل API های معمولی برای استفاده عمومی در همه زبانها.



كدام يك از نظر وجود انواع توابع كامل ترند ؟
تقریباً برابر هستند.
توابع موجود از فریم ورک دات نت است و ربطی به هیچ زبان دات نتی خاصی ندارد و همه زبانها میتوانند از این مخزن عظیم چند هزار ماژولی استفاده کنند.



آيا كسي كه Visual C#.NET بداند لزوما با Visual C++.NET آشنا است ؟
نه! هیچ ربطی ندارد!



آيا كسي كه تاكنون سراغ برنامه نويسي ويژوال نرفته مي تواند به يكباره Visual C#.NET را شروع كند ؟
بله، ولی به شرطی که کتاب مناسبی برای شروع از صرف پدا کند
منظورم است که زبانهایی مثل C#.Net یا VB.Net استعداد شروع از صفر و کار حرفه ای را با هم دارند ولی من کتاب خوبی ندیده ام که مفاهیم بنیانی را برای یک تازه کار در محیط Net. به درستی شرح داده باشد، مثلاً مفاهیم پایه ای مثل متغییر و دلیل استفاده از آن و انواع و فرقهایش یا انواع حلقه ها و بلاک های پردازشی یا در مبنای بالاتر شی گرایی و پلی مورفیزم
اما اگر پیش از حداقل با یک زبان برنامه نویسی کرده باشید، خیلی راحت تر خواهید بود
مجدداً تاکید میکنم که ایراد از آن زبانها نیست بلکه مشکل از فقدان آموزش از سطح ابتدا میباشد.



در كل Visual C#.NET تركيبي از چه زبان هايي است ؟
شاید سوال درست و مناسبی نباشد ولی هم C#.Net و هم VB.Net هر دو را میتوان تلفیقی از قدرت ++C و راحتی VB دانست.
گرچه یک زمان یک بنده خدایی ادعا میکرد که برخلاف تصور عموم C#.Net تلفیق ++C و Delphi است و دلیلش هم ان بود که یکی از اعضای تیم برناه نویسان C#.Net یکی از اعضای سابق تیم Delphi بوده!!!!!!! که به نظر من اگر هم درست و صحیح باشد باز هم با یک گل بهار نمیشود!:31:



در كل آيا هر كاري كه در VB.NET و Visual C++.NET برنامه نويسان انجام مي دهند مي توانند با Visual C#.NET نيز انجام دهند ؟
هیچ فرقی ندارد و عموماً خط به خط کدهای این دو زبان قابل تبدیل به همدیگر هستند و میبینیم که برنامه نویسی که به یکی از اینها تسلط دارد دیگری را هم متوجه میشود، شاید نتواند به زبان دیگر برنامه بنویسید یا حداقل به راحتی نتواند ولی کد زبان دیگر را که ببیند بی درنگ متوجه میشود. (منطقی هم است)
(البته بجز C++.Net ! :31:کلاً C++.Net را جدا از دیگر زبانهای دات نتی باید بررسی کرد.
برای تبدیلات بین C#.Net و VB.Net میتوانید به این لینک ها هم نگاهی بیاندازید

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید



آيا Visual C#.NET برترين زبان برنامه نويسي جهان است ؟
!!!!!!!!!
هیچ وقت دنبال این چیزها نباشید! همه میگویند زبانی که کار میکنند بهترین است!
ولی میتوان گفت یکی از بهترین زبانهاست و من خودم یادگیری آن (یا VB.Net) را بهتر و پرسود تر از VC++.Netقدرتمند میدانم، چون سختی اش و طولانی شدن روند تولیدش به چیزی که بدست می آورید نمی ارزد.



در آخر اگر حضور ذهن داريد چند برنامه ي معروف در عالم كامپيوتر كه با Visual C#.NET برنامه نويسي شده اند را نام ببريد.
من که هیچ وقع دقت نکردم تا ببینم برناه هایی که استفاده میکنم با چه نوشته شده اند ولی قریب 100% سایتهای وبی ASP>net که با پسوند aspx هستند با C#.Net و یا VB.Net نوشته شده اند.

khaiyam
09-08-2007, 14:51
من در این حد می دونم که برنامه Accounting مایکروسافت با .NET نوشته شده و همچنین بخشی از فتوشاپ با VbScript نوشته شده درستی ربطی به VB.NET نداره ولی بی ارتباط نیست چون شما تقریبا می توانید از این کد ها استفاده کنید در کل در همینطور که این دوست عزیز گفت بحث C++.NET جداست ولی تو دات نت زبان های از کلاس های مشترکی استفاده می کنند

am_merman01
13-08-2007, 03:12
دوستان اگه اشتباه نکنم Nero 7 رو با دات نت 2033 نوشتن ولی با کدوم زبان ا..واعلم !!

alireza264
10-07-2012, 01:04
مي خواستم در چند مورد نظر شما را درباره ي تفاوت Visual C++.NET و Visual C#.NET بدانم لطفا بدون هر گونه جهت گيري مطالب خود را بيان نماييد

آيا Visual C#.NET نسبت به Visual C++.NET نقطه ضعفي دارد؟ ( در هر بخش و زمينه اي )
به طور کلی دو نوع شیوه هاي برنامه نویسی براي C وجود داره
بومی Native که C++
مدیریت شده Managed که c#
در Native که قدرتمند ترین نوع برنامه نویسی می باشد (مدیریت نشده) ، برنامه شما به طور مستقیم توسط پردازنده مرکزي CPU اجرا می شود و می تواند بر روي نسخه هاي مختلف سیستم عامل ویندوز اجرا شود

Native دو نوع است Win32 و MFC که هر دو مختص پلتفرم ویندوز هستند
مزیت - کارآیی بالا- کمترین میزان نیاز به منابع سخت افزاری مانند حافظه Ram و فضای دیسک و ...
نقص - پیچیدگی بیشتر و دارای زمانبری بیشتر برای کارکردن و نوشتن با آن - وابسته به پلتفرم ویندوز


مدیریت شده Managed - c#
یک محیط runtime به نام CLR فراهم می کند و شما را از این پیچیدگی کار و قرار دادن تحت سیستم عامل و سخت افزار جدا می کند و برنامه نویسی را بسیار سریع تر و آسان تر می کند. اما در هر حال این جدایی ، انعطاف پذیری (flexibility) و به احتمال غریب به یقین کارآیی (Performance) کمتری دارد ، که البته این موارد بستگی به پروژه مورد نظر دارد که آیا کارآیی ، مورد اهمیت می باشد یا خیر.
ضمنا این مورد نیاز به نصب .Net در سیستم مورد نظر دارد.
مزیت – قابلیت حمل (قابل استفاده در هر سیستم دارای CLR) – سهولت در این نوع برنامه نویسی
نقص – احتمال اجرای کند تر – امکان نیاز بیشتر به منابع سیستمی ، حافظه و فضای دیسک و ...
در Native که قدرتمند ترین نوع برنامه نویسی می باشد (مدیریت نشده) ، برنامه شما به طور مستقیم توسط پردازنده مرکزي CPU اجرا می شود و می تواند بر روي نسخه هاي مختلف سیستم عامل ویندوز اجرا شود

Native دو نوع است Win32 و MFC که هر دو مختص پلتفرم ویندوز هستند
مزیت - کارآیی بالا- کمترین میزان نیاز به منابع سخت افزاری مانند حافظه Ram و فضای دیسک و ...
نقص - پیچیدگی بیشتر و دارای زمانبری بیشتر برای کارکردن و نوشتن با آن - وابسته به پلتفرم ویندوز


مدیریت شده Managed - c#
یک محیط runtime به نام CLR فراهم می کند و شما را از این پیچیدگی کار و قرار دادن تحت سیستم عامل و سخت افزار جدا می کند و برنامه نویسی را بسیار سریع تر و آسان تر می کند. اما در هر حال این جدایی ، انعطاف پذیری (flexibility) و به احتمال غریب به یقین کارآیی (Performance) کمتری دارد ، که البته این موارد بستگی به پروژه مورد نظر دارد که آیا کارآیی ، مورد اهمیت می باشد یا خیر.
ضمنا این مورد نیاز به نصب .Net در سیستم مورد نظر دارد.
مزیت – قابلیت حمل (قابل استفاده در هر سیستم دارای CLR) – سهولت در این نوع برنامه نویسی
نقص – احتمال اجرای کند تر – امکان نیاز بیشتر به منابع سیستمی ، حافظه و فضای دیسک و ...


QUOTE=fathi67;1395072] كدام يك از نظر وجود انواع توابع كامل ترند ؟[/QUOTE]
C++ بدون محدودیت هستش مثلا اشارهگر ها در C# وجود ندارند

QUOTE=fathi67;1395072] آيا كسي كه Visual C#.NET بداند لزوما با Visual C++.NET آشنا است ؟[/QUOTE]
تقریبا آره ولی بازم بسته به نوع کاری داره که میخوای ولی بکارگیری دستورات ونحوه نوشتن تقریبا یکیه

QUOTE=fathi67;1395072] آيا كسي كه تاكنون سراغ برنامه نويسي ويژوال نرفته مي تواند به يكباره Visual C#.NET را شروع كند ؟[/QUOTE]
بله برنامه نویسی بطور کلی تخیل گراییست فکر کن چی مخوای و بعد دستورات را بنویس

QUOTE=fathi67;1395072] در كل Visual C#.NET تركيبي از چه زبان هايي است ؟[/QUOTE]
C - NHetFrame Work - API
الببه از هر کتابخانه ای بخوای میتونی توش استفاده کنی مثل OpenGL ِ DirectX , ...

QUOTE=fathi67;1395072] در كل آيا هر كاري كه در VB.NET و Visual C++.NET برنامه نويسان انجام مي دهند مي توانند با Visual C#.NET نيز انجام دهند ؟[/QUOTE]
هرکاری که در VB.NET انجام میشه رو آره ولی C++ همه رو نمی تونه مثلا دسترسی به خانه های حافظه نوشتن -- یا ویروس

QUOTE=fathi67;1395072] آيا Visual C#.NET برترين زبان برنامه نويسي جهان است ؟ [/QUOTE]

بدون شک

QUOTE=fathi67;1395072]
در آخر اگر حضور ذهن داريد چند برنامه ي معروف در عالم كامپيوتر كه با Visual C#.NET برنامه نويسي شده اند را نام ببريد.[/QUOTE]
3DMAX Nero AutoCad با C++

بطور من در برنامه هایی که نیاز به ویژگی های C++ ندارم از C# استفاده می کنم مثل بانک اطلاعاتی - شبکه ولی زمانی نیاز به ویژگی های C++ دارم از C++ مثلگرافیک و انیمیشن فقط بخاطر سرعت

عــــلی
10-07-2012, 06:29
بنام خدا.
سلام.


C++ بدون محدودیت هستش مثلا اشارهگر ها در C# وجود ندارند

3DMAX Nero AutoCad با C++
بطور من در برنامه هایی که نیاز به ویژگی های C++ ندارم از C# استفاده می کنم مثل بانک اطلاعاتی - شبکه ولی زمانی نیاز به ویژگی های C++ دارم از C++ مثلگرافیک و انیمیشن فقط بخاطر سرعت
دوست عزیز.میشه لطفاً اشاره گر رو برای این دوستمون تعریف کنید؟
دسترسی به حافظه در دات نت چندین برابر سی پلاس پلاس هست.
شما به هیچ عنوان نمیتونی Hashtable دات نت رو که دسترسی مستقیم به حافظه داره با سی پلاس پلاس مقایسه کنی.چونکه دومشو میذاره روی کولش و میگه الفرار....
بهتون پیشنهاد میکنم در مورد کامپایلر JIT بیشتر تحقیق کنید.و همچنین سعی کنید در سایت های فارسی دنبال همچین مطالبی نگردید چونکه افراد بسیار زیادی وجود دارند که بخاطر تعصبشون روی سی پلاس پلاس گفتند دات نت خیلی ضعیفه.
مثلاً توی سایت برنامه نویس داشتم دنبال مطالبی در مورد هوک API میگشتم از مدیرش گرفته تا کاربراش هیچکدوم بلد نبودن با دات نت هوک کنن اومدن گفتن بهتره بری با C++ یه dll بسازی بعد از توی دات نت ازش استفاده کنید یه سری هم گفتن برو سراغ دلفی و ++C دات نت همچین کاری نمیکنه.
خنده ام گرفت.با اینکه خودم میتونستم کمکشون کنم و کلاس هوک WIN_SHELL رو بهشون بگم.ترجیح دادم به خاطر این نادانی و دادن اطلاعات نا مفیدش به کاربرا اصلاً جوابشونو ندم.
معمولاً سعی میکنم با این افراد وارد بحث و جدل نشم.چون اطلاعاتشون زیر صفره و فقط ادعای برنامه نویسی میکنند و اکثراً کاربران رو به گمراهی میکشونن.
برای همین بنده ماهی یه بار هم به سایت برنامه نویس سر نمیزنم.
چند تا سوال ابتدایی ازشون بکنی میتونن کمکت کنن.
در مورد Autocad هم باید خدمتتون عرض کنم که درسته چند صد سال پیش با سی پلاس نوشته شده اما الان داره با تکنولوژی های بروز مثل WPF و دات نت توسعه داده میشه و همچنین 3Ds Max.
در مورد قسمت آخر هم که گفتید گرافیک و سرعت فکر نمیکنم کار خوبی کرده باشید.چون اگه با دات نت کار میکردید ترجیح نمیدادید با باباش برنامه نویسی کنید.
کامپایلر JIT یک کامپایلر هست که کدهای دات نت رو مستقیم به Native و ماشین تبدیل میکنه و سرعت بسیار بالایی داره.حتی در برخی مواقع سرعت بسیار بالایی در آنلایز و مدیریت حافظه نسبت به زبان های دیگه داره التبته من بارها تست کردم ولی نمیدونم چیکار کردن باهاش که اینطوریه.
++C هم همچین زبان ماشین نیست.ایشون هم پسر خاله کامپیوتر نیستند و برای اجرا نیاز به کامپایلر دارند ولی خوب مستقیم Native هستند اما من هنوزنم سر در نیاوردم چرا در برخی مواقع جلوی دات نت کم میاره.
اینجا را مشاهده کنید. ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ])
با این رقابت بسیار ضریف کسی که برنامه نویس باشه میدونه کدوم رو انتخاب کنه.
در آخر هم عذر خواهی می کنم بابت طولانی شدن مطالب.ضمن اینکه به دوست عزیزی که مطالبشو نقل کردم باید عرض کنم که به خودشون نگیرند در اکثر حرفها منظور بنده شما نبودید.
پاسخ سوالات رو هم جناب H2 بزرگوار به طور صحیح و صریح دادند.نیازی نمیبینم دیگر کسی برای راهنمایی از خودش مایه بگذارد.البته اگر اطلاعات صحیحی داشته باشند در خدمت هستیم تا ما هم چیزی نصیبمان شود.
موفق و سربلند باشید در پناه حق:10::11:.

_H2_
10-07-2012, 09:36
سلام
ضمن تبریک عضویت آقای alireza264 و اینکه انشاا... شاهد فعالیت بیشتر ایشان باشیم...
فقط درخواست و یادآوری میکنم که لطفاً به تاریخ تاپیک و آخرین پست آن دقت کنید و اگر خیلی قدیمی بود (مثل همین مورد که مربوط به پنج سال قبل است) برای پاسخ یا شروع مجدد بحث تامل بیشتری داشته باشید.
موفق باشید.

newsoft
10-07-2012, 10:40
سلام به دوستان
به نظر من سرعت بیشتر در دات نت مربوط به الگوریتمهای بهینه تر و جدید تره بکار برده شده تو کلاسهای مختلف دات نت هست.ظمن اینکه پشتیبانی از زبانهای دات نتی مثل سی شارپ خیلی بیشتر از زبانهای Native تو مایکروسافت هست.
حتی تو هر نسخه ی جدید ویژوال استدیو عملکرد مورد بازبینی قرار میگیره
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
ولی برای زبانی مثل سی پلاس پلاس جریان اینطوری نیست.حتی Intellisence رو هم به تازگی به VC++ وارد کردن.من فکر میکنم مایکروسافت عمدا زبانهای Native رو خوب پشتیبانی نمیکنه!
زبان سی پلاس پلاس نیاز به یک بازبینی اساسی برای بهبود عملکرد داره.بخصوص تو بحث سینتکس و کامپایلر.
در آخر ما هرطوری حساب کنیم باز هم زبانهایی که توسط ماشین مجازی یا به طور واسطه کامپایل میشن باید کند تر باشن.مگر اینکه روش بکار برده شده تو حالت Native غیر کارامد باشه.
بحث سی پلاس پلاس بیشتر مربوط به پشتیبانی ضعیف هست !

senaps
10-07-2012, 12:16
متاسفانه برنامه نویسی MFC با رابط کاربری خیلی سخته!! مثلا دگمه‌ای که میساختیم، باید براش یه متغییر درست میکردیم و اینا...یه خورده طولانی میشد کار... ولی کیه که قدرت سی پلاس رو ندونه...

من فکر میکنم کم کم باید مهاجرت کنیم به ویژوال سی پلاس..مخصوصا با این چیزی که ویندوز 8 و ایندگانش خواهند بود...
ولی همین سی شارپ هم تو ایران لااقل تا 10 سال دیگه کار میده!! چون امروز داره از تکنولوژی های 10 سال پیش استفاده میشه!!