PDA

View Full Version : آیا سی شارپ پورتابل است؟



smt1383
شنبه 17 فروردین 1392, 12:02 عصر
با سلام خدمت دوستان
در ویژگی های زبان جاوا می خوانیم که جاوا یک زبان پورتابل و قابل حمل است چون برنامه ای که به زبان جاوا می نویسیم توسط کامپایلر به بایت کد تبدیل می شود و این بایت کد در هر سیستمی که JVM نصب باشد قابل اجرا است. با توجه به اینکه عملکرد CLR در دات نت شبیه عملکرد JVM در جاوا است آیا می توان گفت سی شارپ نیز یک زیان پورتابل است؟

linux
شنبه 17 فروردین 1392, 13:30 عصر
شعار جاوا: یک زبان برای همه پلت‌فرمها(سیستم عاملهای)
شعار .نت : یک پلت‌فرم(سیستم عامل + فریم‌ورک) برای تمام زبانها
در صورتیکه ماکروسافت .نت را در سایر سیستم عامل‌ها پیاده سازی کند این کار شدنی هست کما اینکه mono برای لینوکس پیاده سازی شده ولی در عمل چون ماکروسافت به این کار علاقه ندارد خیلی آینده در این مورد روشن نیست.

Abbas Naghdi
شنبه 17 فروردین 1392, 13:38 عصر
شعار جاوا: یک زبان برای همه پلت‌فرمها(سیستم عاملهای)
شعار .نت : یک پلت‌فرم(سیستم عامل + فریم‌ورک) برای تمام زبانها

خیلی جالب نوشتی ... آفرین


در صورتیکه ماکروسافت .نت را در سایر سیستم عامل‌ها پیاده سازی کند این کار شدنی هست کما اینکه mono برای لینوکس پیاده سازی شده ولی در عمل چون ماکروسافت به این کار علاقه ندارد خیلی آینده در این مورد روشن نیست.

اینم اظافه کنم که mono خیلی عقب مونده ... مایکروسافت در اوایل میخواست زبانی مثل جاوا رو تحویل بده اما انحصاری بودن اینه دیگه ... مایکروسافت خود خواه هست ... البته باید بهش حق داد

FastCode
شنبه 17 فروردین 1392, 13:54 عصر
اینم اظافه کنم که mono خیلی عقب مونده
من اینطور فکر نمیکنم
http://www.mono-project.com/Mono_LLVM
http://www.ikvm.net/
http://docs.go-mono.com/?link=N%3AMono.Simd

smt1383
شنبه 17 فروردین 1392, 14:13 عصر
پس اینطور که من فهمیدم سی شارپ یک زبان پرتابل نیست. چون نمیشه برنامه ای که در سیستم عامل ویندوز نوشتیم رو در سیستم عامل لینوکس اجرا کنیم. چون اصلاً دات نت در لینوکس قابل نصب نیست.
اما آیا برعکس این قضیه امکام پذیره؟ یعنی JVM در ویندوز نصب میشه؟

leylaamini
شنبه 17 فروردین 1392, 14:17 عصر
سلام
دیدم بحث سی شارپِ اومدم اینجا مشکلمو بگم
بجه ها من تازه کارم دارم با سی شارپ سایت طراحی میکنم
به ارورِ expected catch or finally بر خورد میکنم
چه کنم ؟؟؟؟؟؟

FastCode
شنبه 17 فروردین 1392, 15:11 عصر
پس اینطور که من فهمیدم سی شارپ یک زبان پرتابل نیست. چون نمیشه برنامه ای که در سیستم عامل ویندوز نوشتیم رو در سیستم عامل لینوکس اجرا کنیم. چون اصلاً دات نت در لینوکس قابل نصب نیست.
اما آیا برعکس این قضیه امکام پذیره؟ یعنی JVM در ویندوز نصب میشه؟
سه سالی هست که من با لینوکس C# کار میکنم. و باید بگم خیلی از برنامه های ویندوز در لینوکس بهتر اجرا میشن.

FastCode
شنبه 17 فروردین 1392, 15:28 عصر
فکر نمیکنم مشکل این دوستمون کد زدن بازبان سی شارپ تو محیط لینوکس باشه مهندس. منظورش دوستمون اجرای فایل های اجرایی هستند که قراره توی WINE اجرا یشه!!؟
برنامه های CIL با مونو اجرا میشن نه wine

alvandlinux
شنبه 17 فروردین 1392, 15:31 عصر
ببخشید از اول نخانده بودم.بلافاصله باک کردم.

FastCode
شنبه 17 فروردین 1392, 15:58 عصر
در ضمن portable با cross-platform فرق داره.
این مطالب همه مربوط به cross-platfrom بودن بود.
برای portable بودن aot و xenocode دو تکنولوژی قابل قبول هستن.چند تا دیگه هم هست که به درد نمیخورن.

linux
شنبه 17 فروردین 1392, 16:41 عصر
پس اینطور که من فهمیدم سی شارپ یک زبان پرتابل نیست. چون نمیشه برنامه ای که در سیستم عامل ویندوز نوشتیم رو در سیستم عامل لینوکس اجرا کنیم. چون اصلاً دات نت در لینوکس قابل نصب نیست.
اما آیا برعکس این قضیه امکام پذیره؟ یعنی JVM در ویندوز نصب میشه؟

بله، jvm روی یخچال خونه ما هم نصب می‌شه فقط مونده چای‌ساز و توستر!

smt1383
یک شنبه 18 فروردین 1392, 11:29 صبح
سه سالی هست که من با لینوکس C#‎ کار میکنم. و باید بگم خیلی از برنامه های ویندوز در لینوکس بهتر اجرا میشن.

خوب این که به معنای پورتابل بودن نیست. واضحه که میشه در لینوکس در محیط هایی مثل مونو برنامه نویسی c# انجام داد. اما منظور از پورتابل بودن یا به تعبیر صحیح تر Cross-Platform بودن اینه که من برنامه ای که در محیط ویندوز با سی شارپ نوشتم و کامپایل کردم را بدون نیاز به کامپایل مجدد بتونم مثلاً در لینوکس اجرا کنم که این امکان وجود ندارد.

پس با توجه به بحث هایی که انجام شد می توان نتایج زیر را گرفت:
1. در لینوکس در محیط هایی مانند مونو می توان برنامه نویسی سی شارپ انجام داد.
2. زبان سی شارپ یک زبان پورتابل نیست چون نمی توان برنامه ای را که در ویندوز نوشته ایم و کامپایل کرده ایم را بدون نیاز به کامپایل مجدد در یک سیستم عامل دیگر مثلاً لینوکس اجرا کرد.
3. زبان جاوا یک زبان پورتابل است زیرا برنامه ای را که در یک سیستم عامل با جاوا نوشته و کامپایل کرده ایم بدون نیاز یه کامپایل مجدد می توان در سیستم عامل های دیگر اجرا کرد با این شرط که JVM روی آن سیستم عامل نصب شده باشد.

اگر اشتباه نتیجه گیری کردم دوستان راهنمایی کنند. ممنون

Abbas Naghdi
یک شنبه 18 فروردین 1392, 14:28 عصر
من اینطور فکر نمیکنم
http://www.mono-project.com/Mono_LLVM
http://www.ikvm.net/
http://docs.go-mono.com/?link=N%3AMono.Simd


.net 4 و 4.5 رو پشتیبانی میکنه ؟
C# 5 رو پشتیبانی میکنه ... !
با هسته ی Linux کاملا ساز گاره ؟
سرعتش تغییری نکرده ؟




سه سالی هست که من با لینوکس C#‎ کار میکنم. و باید بگم خیلی از برنامه های ویندوز در لینوکس بهتر اجرا میشن.

جالبه ... FastCode جان داری میگی با زبانی که برای ویندوز پیاده سازی شده داخل لینوکس برنامه مینویسی خیلی بهتر ...
یا شایدم میگی ( خیلی از برنامه های ویندوز در لینوکس بهتر اجرا میشن ) ... !
چطور ... ! اگر شما تونستی یک برنامه که با C# نوشته شده رو داخل لینوکس اجرا کنی ..............‍!!!!

FastCode
یک شنبه 18 فروردین 1392, 17:35 عصر
.net 4 و 4.5 رو پشتیبانی میکنه ؟
C#‎‎ 5 رو پشتیبانی میکنه ... !
با هسته ی Linux کاملا ساز گاره ؟
سرعتش تغییری نکرده ؟


جالبه ... FastCode جان داری میگی با زبانی که برای ویندوز پیاده سازی شده داخل لینوکس برنامه مینویسی خیلی بهتر ...
یا شایدم میگی ( خیلی از برنامه های ویندوز در لینوکس بهتر اجرا میشن ) ... !
چطور ... ! اگر شما تونستی یک برنامه که با C#‎‎ نوشته شده رو داخل لینوکس اجرا کنی ..............‍!!!!

بله
بله
در ابتدا برای لینوکس ساخته شده
در تست های من از ۱۰٪ تا ۳۰٪ بیشتر بوده

من برنامه فروش مویرگی خودم رو در لینوکس اجرا کردم و مشکلی نداشت.
حجم کد ۳۰ مگ
حجم فایل اجرایی ۱۴ مگ

زمان تست constraint ها و map کردن اطلاعات از ۷۷۰ میلی ثانیه به ۶۰۰ میلی ثانیه کاهش یافت

Amir Oveisi
یک شنبه 18 فروردین 1392, 17:55 عصر
2. زبان سی شارپ یک زبان پورتابل نیست چون نمی توان برنامه ای را که در ویندوز نوشته ایم و کامپایل کرده ایم را بدون نیاز به کامپایل مجدد در یک سیستم عامل دیگر مثلاً لینوکس اجرا کرد.
هر کی گفته شایعه بوده شما جدی نگیرید!
اگر Mono بر روی توسعه لینوکسی که استفاده می کنید نصب شده باشه، قایل .exe خروجی یک win app یا wpf app (که با دات نت نوشته شده) رو ببرید رو لینوکستون (به همراه dependency هایی که داره صد البته) و اجراش کنید.

Abbas Naghdi
یک شنبه 18 فروردین 1392, 18:43 عصر
بله
بله
در ابتدا برای لینوکس ساخته شده
در تست های من از ۱۰٪ تا ۳۰٪ بیشتر بوده

من برنامه فروش مویرگی خودم رو در لینوکس اجرا کردم و مشکلی نداشت.
حجم کد ۳۰ مگ
حجم فایل اجرایی ۱۴ مگ

زمان تست constraint ها و map کردن اطلاعات از ۷۷۰ میلی ثانیه به ۶۰۰ میلی ثانیه کاهش یافت


پس از این قرار C#‎ برای لینوکس نوشته شده .... !
توجه از این به بعد کسی حق نداره بگه که سیشارپ پرتابل یا چند پلاتفرمی نیست ...
نکته : C#‎ توسط ناول ساخته شده و مایکروسافت اون رو برای ویندوز تغییر داده ... !
که این تغییرات کلا استاندارد نیستند ... !
با عرض پوزش کسی بی جا میکنه بگه .netframework بر پایه ی ویندوز هست و البته کسی بی جا میکنه بگه CLR و IL مال میکروسافته ...( اینا مال ناول هستند )

توجه : نسخه ی 5 فرامورک و نسخه ی 6 سیشارپ تا پایان سال 2013 توسط ناول ارئه میشه ... :لبخند:

Fast Code عزیز من قبول دارم که مونو یکم پیشرفت داشته و اندروئید و ... هم اظافه شده + .net 4 (شاید) ... اما به این توجه کن که چه چیز هایی مینویسی ... شما خودت باشی باور میکنی پروژه ای که مال ناول نیست ... حلا بیاد ناول از مایکروسافت بهتر درستش کنه !!!

FastCode
یک شنبه 18 فروردین 1392, 21:22 عصر
پس از این قرار C#‎‎‎ برای لینوکس نوشته شده .... !
توجه از این به بعد کسی حق نداره بگه که سیشارپ پرتابل یا چند پلاتفرمی نیست ...
نکته : C#‎‎‎ توسط ناول ساخته شده و مایکروسافت اون رو برای ویندوز تغییر داده ... !
که این تغییرات کلا استاندارد نیستند ... !
با عرض پوزش کسی بی جا میکنه بگه .netframework بر پایه ی ویندوز هست و البته کسی بی جا میکنه بگه CLR و IL مال میکروسافته ...( اینا مال ناول هستند )

توجه : نسخه ی 5 فرامورک و نسخه ی 6 سیشارپ تا پایان سال 2013 توسط ناول ارئه میشه ... :لبخند:

Fast Code عزیز من قبول دارم که مونو یکم پیشرفت داشته و اندروئید و ... هم اظافه شده + .net 4 (شاید) ... اما به این توجه کن که چه چیز هایی مینویسی ... شما خودت باشی باور میکنی پروژه ای که مال ناول نیست ... حلا بیاد ناول از مایکروسافت بهتر درستش کنه !!!
من نگفتم C#‎‎ برای ناول هست(ناول خیلی وقت هست که ورشکست شده)
من گفتم مونو در ابتدا برای لینوکس ساخته شد

Edit:
.Net 4.5 الان در مراحل آزمایشی هست(یک ماه پیش که تست کردم اینطوری بود.الان روخبر ندارم)
.Net‎ 4 خیلی وقت هست که کامل ساپورت میشه

linux
یک شنبه 18 فروردین 1392, 22:59 عصر
خیلی از این مطالب را با رجوع به سایت مونو می‌توانید خودتان بررسی کنید.
من الان نزدیک یکسال هست که روی کامپیوترم فقط لینوکس نصب هست و با مونو هم مشکلی ندارم و خیلی بهتر هم کار می‌کنه.
فقط با توجه به سوال که پرسیده بود C# و .نت پرتابل هستند جواب دادم که از نظر منطقی می‌شه گفت نه نیستند. این وسط چند گروه اقدام کردند به ساختن کامپایلر سی شارپ و فریمورکی که .نت را در شبیه سازی کنه چیزی که پرتابل یا همون کراس پلت فرم هست مونو هست نه .نت فریمورک
شما نمی‌تونید .نت فریم ورک ماکروسافت را تو لینوکس نصب کنید ولی می‌تونید مونو را تو ویندوز نصب کنید