PDA

View Full Version : برنامه نویسی شبکه با VC++.Net



sepehr.net
یک شنبه 15 دی 1387, 20:25 عصر
سلام به همه ی دوستان
من در حال ساختن یک برنامه ایی هستم که تحت شبکه کار میکنه.(با سی شارپ)
این برنامه تقریبا تمامی کار های صورت گرفته در شبکه رو انجام میده . (یعنی میشه گفت از اکثر کلاسهای شبکه در آن استفاده میشود)
سرعت در این برنامه خیلی اهمیت داره. چون اطلاعات حجیمی در شبکه جریان داره
در ضمن میخوام تقریبا" روی همه ی سیستم عامل ها هم جواب بده (Xp,Vista,Linux و سیستم عامل های سرور)
حالا به نظر شما بهتره که با C# بنویسم یا شروع به یادگیری Visual C++.Net کنم ؟

Nima_NF
یک شنبه 15 دی 1387, 22:29 عصر
اگر منظورتان از visual C++.Net همان C++/CLI یعنی برنامه نویسی غیر Native هست در این صورت نه تنها چیز چندان برتری نسبت به #C نصیبتان نخواهند شد بلکه محدودیت هایی نیز خواهید داشت. (جز بزرگترین مزیت آن که می توانید از قابلیت ترکیب با برنامه نویسی native بهره ببرید)

گفتید linux ،پس باید از پروژه mono استفاده کنید و احتمالا از محدودیت ها و معایب آن هم باخبرید... در اینجا با این پروژه open source ،دوباره C++/CLI ناتوان هست.

پس در کل اگر حرف بر روی برنامه نویسی .Net هست از همان #C استفاده کنید.
اگر هم می خواهید از برنامه نویسی native با ++C استفاده کنید نیز به قدر کافی در مورد مزایا و معایب آن در بخش گفتگوی فنی C توضیح داده شده است که مطالعه کنید. برنامه نویسی Native خصوصا برای کسانی پیشنهاد می شود که قصد برنامه نویسی cross-platform دارند (برای چندین سیستم عامل مختلف)

sepehr.net
دوشنبه 16 دی 1387, 09:07 صبح
اگر منظورتان از visual C++.Net همان C++/CLI یعنی برنامه نویسی غیر Native هست در این صورت نه تنها چیز چندان برتری نسبت به #C نصیبتان نخواهند شد بلکه محدودیت هایی نیز خواهید داشت.
میشه در مورد محدودیت هایی که به انها اشاره کردید بیشتر توضیح بدین؟
مگه در برنامه نویسی غیر native برنامه ی ساخته شده به زبان میانی دات نت ترجمه نمیشود؟ پس نباید فرق چندانی با دیگر زبان ها داشته باشد؟
سوالی که من دارم اینه که اگه برنامه ایی غیر native نوشته شده باشه سرعت اجرای ان با برنامه ایی که در C# نوشته باشه متفاوته؟

جز بزرگترین مزیت آن که می توانید از قابلیت ترکیب با برنامه نویسی native بهره ببرید
میشه در این مورد کمی بیشتر توضیح بدین؟
یعنی ما میتونیم برنامه ایی بنویسیم که هم وابسته به FrameWork باشه و هم نباشه؟

Nima_NF
دوشنبه 16 دی 1387, 15:46 عصر
به این سوالات قبلا پاسخ داده شده است:
http://www.barnamenevis.org/forum/showthread.php?t=94381
سوال 8 و 9 از مقاله فوق و همین طور پست شماره 8 ، محدودیت های کنونی و رویه آینده مایکروسافت در برابر C++/CLI را مطرح می کند.

در ضمن، وقتی صحبت از Framework .Net می شود آن را کلا با CLR اشتباه نگیرید که فقط بخشی از آن است:
http://barnamenevis.org/forum/showpost.php?p=630997&postcount=6

در پروژه mono برای لینوکس کامپایلر و کدها فقط برای #C پیاده سازی شده است.


یعنی ما میتونیم برنامه ایی بنویسیم که هم وابسته به FrameWork باشه و هم نباشه؟
اگر کل برنامه را به شکل native بنویسید اصلا نیازمند .Net نیست.

در MFC نیز می توانید با استفاده از قابلیت interop برنامه ای بنویسید که بخشی از آن با C++/CLI و .Net نوشته شود:
ترکیب برنامه نویسی Native با NET. بدون تغییر کل پروژه به CLR (http://www.barnamenevis.org/forum/%D8%AA%D8%B1%DA%A9%DB%8C%D8%A8%20%D8%A8%D8%B1%D9%8 6%D8%A7%D9%85%D9%87%20%D9%86%D9%88%DB%8C%D8%B3%DB% 8C%20Native%20%D8%A8%D8%A7%20NET.%20%D8%A8%D8%AF%D 9%88%D9%86%20%D8%AA%D8%BA%DB%8C%DB%8C%D8%B1%20%DA% A9%D9%84%20%D9%BE%D8%B1%D9%88%DA%98%D9%87%20%D8%A8 %D9%87%20CLR)



سوالی که من دارم اینه که اگه برنامه ایی غیر native نوشته شده باشه سرعت اجرای ان با برنامه ایی که در C# نوشته باشه متفاوته؟


بله، کلا برنامه های نوشته شده توسط دات نت کمی سرعت کمتری دارند، که البته با توجه به نوع برنامه این تفاوت می تواند غیر محسوس باشد و یا حتی به مقدار بسیار زیاد محسوس باشد.
موارد در مقاله توضیح داده شده است.

C++Lover
سه شنبه 17 دی 1387, 01:14 صبح
در مورد Native اگر نوع پروژه، تکنولوژیها و کارهایی را که برای برنامه تان نیاز دارید بگید میتونیم یک کتابخانه Open Source و Cross-Platform رو معرفی کنیم.
برای شروع میتونید یه نگاه به کتابخانه Boost asio بندازید.
اگر کارتون مبتنی بر SOAP هستش میتونید از gSOAP استفاده کنید.