چرا اینجا کسی درباره ASP و دات نت صحبت نمیکنه؟


#1

سلام . من برنامه نویسی رو با سی شارپ و تکنولوژی های مربوط به اون شروع کردم . رفته رفته وقتی وارد فروم ها و کامیونیتی های مختلف شدم متوجه دید بد نسبت به دات نت شدم . خیلی ها دات نت و برنامه نویساش رو سطح پایین میدونستن و خیلی ها هم براش نقاط ظعف بی شماری طرح می کردن. مثل اپن سورس نبودن و هزینه بالا و سرعت پایین (مخصوصا در دسکتاپ) ُ مالتی پلتفرم نبودن و غیره . تا اینکه تصمیم گرفتم رفته رفته بیام سمت لینوکس و زبان های برنامه نویسی اپن سورس. الانم دارم جنگو کار میکنم . اما همونطور که میدونین مدتیه دات نت هم رفته سمت اپن سورس و در زمینه وب هم ASP.Net Core رو داریم که خیلی راحت تو لینوکس میشه دولوپش کرد و تو سرورهای لینوکسی هم دیپلوی میشه. زبان برنامه نویسیش سی شارپه که خصوصیات زبانهای کامپایلی رو داره. کسی که سی شارپ بلده میتونه هم برنامه دسکتاپ به زیبایی WPF بزنه و هم برنامه تحت وب و هم موبایل .ناگفته نمونه اون موقع که من تحت دات نت برنامه مینوشتم هم با WPF کار کردم هم با ASP و هم با زامارین فرم ولی الان برای وب دارم با جنگو (زبان پایتون) کار میکنم و برای موبایل هم از ریکت نیتیو استفاده میکنم که به نظرم مزیت عمده ای نسبت به زامارین فرم نداره و خیلی سخت تر شده کارم . ASP.Net Core از تکنولوژی هایی که مایکروسافت قبلا میخواست به وب تحمیل کنه فاصله گرفته و با تکنولوژی روز کاملا سازگاره. سرعت نسبتا خوبی هم تو بنچمارک ها ازش دیده میشه . تو استارت آپ های داخلی هم زیاد دیدم استفاده شه . پس موندم چرا هنوز تو کامیونیتی های برنامه نویسای وب باز هم انقدر فاصله هست بینشون . تو همین انجمن که تقریبا چیزی نیست درموردش . میشه نظرتون رو درمورد ASP.Net Core هم بگین و اینکه چه مزیت ها و نقایصی نسبت به این تکنولوژی هایی که تو این سایت ازش بحث میشه میتونه داشته باشه و آیا هنوز اون دید قبلی بهش وجود داره ؟ ممنون


#2

سوال بسیار خوبیه،
دیگران رو نمیدونم اما من سالهاست ASP اصلا به چشمم نخورده و دلیلش هم اینه که روی ویندوز و محصولات مایکروسافت کار نمیکنم، اما خب زمانی واقعا به C# علاقه داشتم.
اما اگر شما به ASP و دات نت علاقه دارید و استفاده می کنید خیلی هم خوب میشه که در موردش مطلب بزارید. بعضی از مواردی هم که فرمودین رو من اصلا نمیدونستم و باعث شد چند تا نکته جالب یاد بگیرم :+1:


#3

اینکه اینجا کم ازش صحبت میشه به خاطر اینه که ما چیزای دیگه‌ای رو دوست داریم :slight_smile:
ولی اگه به C# و تکنولوژیهای مایکروسافتی علاقه دارید میتونید تاپیکهای مربوط بهشون رو اینجا بنویسید. آموزش، ویژگی جدید و…


نظر شخصی:
مایکروسافت مگه محصول درست حسابی هم داره؟

زبان C# برای توسعه‌ی سریع خوبه. برای همین استارت‌آپها میرن سمتش ولی وقتی پروژه بزرگ بشه، شروع میکنه به زشت شدن.
در کل .net تو ایران زیاد استفاده میشه چون تو دانشگاهها تدریس میشه و فارغ‌التحصیلی که از دانشگاه میاد بیرون و چیزی بجز درسهای دانشگاه بلد نیست، مسلما با .net کار میکنه.
در کل محصولات مایکروسافت توی هیچ‌جا بجز استارت‌آپها و شرکتهای دولتی و بانکهای ایرانی استفاده نمیشه. و البته خود شرکت مایکروسافت.
سریع develop میکنن بعد یه کم که فشار به سیستم میاد، ram اضافه میکنن. (کم نیستن ادارات دولتی که ۱۰۰گیگ رم سرورشون پره و شاید همون کارایی رو بتونن با یه سرور ۸گیگ رم داشته باشن)

زمان خیلی زیادی از وقتی که .net کار میکردم گذشته و همون موقع هم بیشتر vb کار کردم تا C#. بنابر این نمیتونم دقیق و با ذکر مثال مشکلات فریم‌وورک .net رو توضیح بدم.
ولی میبینم که از سیستم GC توی C# ایراد میگیرن (میگن هروقت دلش بخواد آبجکت رو از رم بیرون میکنه) و مثلا lock(this) (مطمئن نیستم درست نوشته باشم) وقتی روی به آبجکت گلوبال بیاد احتمال deadlock خیلی زیاد میشه و اینطور چیزها.
توی فورومهای مربوط به game engineها هم بحثهایی رو دیدم که میگن بهتره از C# برای کد نویسی بازی استفاده نشه.

خلاصه ندیدم کسی از دیزاین خوب زبانهای مایکروسافتی تعریف کنه یا از یه ویژگی خفن یکی از اینا صحبت کنه. فقط اینو شنیدم: «ببین C# چه خفنه. یه برنامه‌ی cd-writer نوشتم خودم!»

درمورد زامارین (که اولین باره اسمشو میشنوم و همین الآن یه کم سرچ کردم) باید بگم اینطور چیزها هدفشون جذب کسانیه که یه زبانی بلدن و حال ندارن برن سراغ یاد گرفتن چیزهای دیگه. (درمورد react native هم همینطوره) و طرفدارهای خودشونو پیدا میکنن.
درحالی که مطمئنا اگه من با java/kotlin برای اندروید برنامه بنویسم و با objective-c/swift برای ios اپ بسازم، نتیجه‌ی نهایی محصولم خیلی حرفه‌ای تر میشه. (نقطه‌ی ضعفش اینه که باید ۲تا پروژه رو آپدیت کنم)
ولی وقتی JS کار کرده باشم و میبینم لایبرری و فریموورک داره برای front-end و back-end و mobile و desktop اصلا اهمیت نمیدم که آیا واقعا بهترین گزینست یا نه. نتیجش میشه spotify و atom که در واقع موزیک‌پلیر و ادیتور هستن ولی به کمک همدیگه کمر سخت‌افزار کاربر رو میشکنن!
یادش به خیر. یه زمانی رو ۱۲۸مگ رم میشد موزیک‌پلیر و ادیتور رو همزمان اجرا کرد!

مطمئنا برای کسی که C++ کار کرده باشه، Qt قایق نجاته.
برای کسی که Python کار کرده باشه، Kivy راه حل تمام مشکلاته.
کار راه میندازن، همه جا میشه ازشون استفاده کرد، ولی بهترین راه نیستن!


الآن که اینهمه نوشتم اینم بگم که واقعا هیچ دلیل منطقی نمیبینم که یه پروژه رو با asp بنویسم بعد رو سرور لینوکسی اجراش کنم.
لینوکس به این قشنگی داره کار میکنه حیف نیست روش .net اجرا کنم؟


#4

به عنوان کسی که بیش از ۵ سال تجربه با سی شارپ و توسعه روی محصولات مایکروسافت داره (ولی یک سالی هست به پایتون و لینوکس مهاجرت کرده :sunglasses: ) می‌تونم بگم سی‌شارپ زبان خوبی هست (همون قدر که جاوا خوبه :grin: ) و همچنین فریم‌ورک دات نت. sql server هم خوب هستش ولی این ویندوز هست که (واقعا ببخشید که اینو می‌گم) آشغاله. الان مایکروسافت تازه فهمیده open source خوبه و داره با پول زیادی که داره تو این زمینه کار می‌کنه و همین باعث میشه تو کامیونیتی های اپن سورس کمتر به این زبان پرداخته بشه. در کل اینها همه ابزار هستند و این ما هستیم که باید ازشون درست استفاده کنیم. من خودم چون تجربه با دات نت داشتم وقتی خواستم روی لینوکس از سی شارپ و asp استفاده کنم بزرگترین مشکلی داشتم این بود که برای لینوکس مستندات کمی وجود داشت. ترجیح دادم سمتش نرم.
در نهایت زبان خوبی هست و داره خوب رشد می‌کنه. :wink:


#5

اینو خوب گفتی.


#6

در حال حاضر توی دانشگاه های مطرح، سی پلاس پلاس و جاوا تدریس میشن، نه سی شارپ!


#7

شاید انگشت شمار از دانشجویان حتی اون درس ترم رو یاد گرفته باشند که بعدا وارد بازار کار بشند که بخواند وارد موردی که فرمودی بشند و ادامه بدند !!! حداقل نسبت به پیام نور می تونم بگم ۹۹ درصد اصلا دانشی ندارند و اون یک درصد از قبل داشتند !! و افراد بعد از دانشگاه بر اساس تجربه شخصیم تازه یادشون می افته که باید پول در بیارند و اونجا تازه وارد یادگیری می شند


#8

درود
ببینید من نزدیک 10 سال روی دات نت کار کردم ینی از زمانی که برنامه نویسی نرم افزار با دلفی رو گذاشتم کنار به خاطر عدم پشتیبانیش رفتم سراغ دات نت که یادمه نسخه vs 2003 بود که از محیطشم یادمه یکم ذوق کرده بودم و بعدش نسخه vs 2005 اومد تا نسخه های 2015 و 2017 که الان نزدیک 100 گیگ فقط حجم vs هست با کل ابزارها و پلت فرما و …
من روی دات نت win app , asp web form, wpf , … تو اون مدتی که بودم پروژه های مختلفی نوشتم اما تا زمانی که وارد دنیای لینوکس نشده بودم هیچ درکی از برنامه نویسی واقعی و دنیای اوپن سورس اینا نداشتم روی ویندوز به خاطر سیاست های ماکروسافت یه برنامه نویس ابزاری شده بودم ینی وقتی مایکی می یاد هر روز یه الگو میده بیرون که هنوز با الگوی قبلی چندتا پروژه نزدی که این قضیه رو از اوایل کارم روی محیطش تا اواخر که به شدت زیاد شده بود و هر مورد جدیدی تو دنیای برنامه نویسی و ابزارهاش ارایه میشد می چسبوندن به محیطش دیگه واقعا حوصله بر شده بود ینی احساس می کردم شدم یه موش آزمایشگاهی که باید منتظر یه تست دیگه و یه روال دیگه باشم که مایکی با محیط خودش ادغام کنه
وقتی وارد کار با لینوکس شدم تازه فهمیدم این مدت زیادی که روی ویندوز بودم داشتم خود زنی می کردم و یه برنامه نویس ابزاری بودم واقعا درسته سی شارپ و زبان های دیگه هم روی همون محیط بود اما چیزی که کار رو خراب می کرد همین کار با ویندوز و بحث اوپن سورس نبودن و محدودیت های مختلفی که روی ابزارهای مختلفش داشتی و سیاست های منفعت جویانه مایکی بود حتی بعد اینکه بحث اوپن سورس رو مطرح کرد و کم کم ابزارهاش رو کشید سمت لینوکس من باز زیاد استقبال نکردم چون روی لینوکس با مورد های خیلی بهتری آشنا شده بود تو هر پلت فرم و واقعا از کار کردن با لینوکس و برنامه نویسی رو این سیستم عامل لذت می برم و همین الانم واقعا برام یه شکنجه بزرگه برم روی ویندوز


#9

که روی ویندوز بودم داشتم خود زنی می کردم

:smile: :smile: :smile:


#10

تو این زمینه نطرم باهاتون مخالفه . تا جایی که من میدونم زبونایی مثل پایتون با فریمورکاش مثل جانگو برای توسعه سریع خوبه . برای پروژه های بزرگ زبونهای کامپایلی و دارای تایپ بهترن . ما روی پروژه بزرگ سراسری کار میکردیم که کلی ماژول مختلف داشت ولی به محض وجود مشکل در یک نقطه خیلی راحت با یک دیباگ ساده مشکل پیدا میشد ولی برای زبانهای تفسیری چنین چیزی امکانش نیست و فقط دلخوش به متن ارور هایی که میده هستیم که به نظرم کار رو خیلی سخت میکنه .


#11

تا حدودی میتونه درست بشه ولی خیلی از دانشگاه ها دات نت تدریس نمیشه . به نظرتون به طور مثال دولاپرای سایت varzesh3 همونایی هستند که چون تو دانشگاه دات نت یاد گرفتند اومدند سمت اون. من موارد زیادی دیدم که از جاوا یا زبونهای دیگه خوششون نیومده و اومدن دات نت کار شدن . کسایی که پروژه های زیادی با اون زبون ها انجام داده بودن . به نظرم سلیقه هر شخص میتونه متفاوت باشه


#12

چنین چیزی رو من بهش برخورد نکردم ولی خب طبیعیه هر زبانی مشکلات خاص خودش رو داره . بارها شنیدیم که php چقدر مشکل داره و این مشکلات چقدر ساختارین یا مثلا همین پایتون چقدر ساختار برنامه نویسی نامتقارنش مشکل داره و خیلی از زبون های دیگه . به نظرم خیلی نظرهای شخصی و بدون دلیل منطقی و از روی تعصب میتونه به دید نسبت به زبان رو تغییر بده .


#13

برنامه هایی که تو حوالی خودم میبینم چیزی فراتر از نوشتن یک سی دی رایتر هست :grin:


#14

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


#15

خب این هم سلیقه ایه . سلیقه و منطق من هم میگه اینکه بتونم با یه زبان استاتیک تایپ و کامپایلی با سرعت بالا تو محیط زیبای لینوکس سایت رو دولاپ کنم بازدهی کارم زیادتره. البته اینم بگم سی پلاس پلاس و جاوا هم همین قابلیت رو دارند .


#16

جمله بسیار خوبی بود . کامل موافقم


#17

الان وضع فرق کرده . برای دات نت کور تا دلتون بخواد داکیومنت هست


#18

آشغال که چه عرض کنم خیلی دست و پا گیره . وقتی رو ویندوزم انگار تو یه زندون گیر افتادم :smile:


#19

سوال اینجاست که آیا اصلا نیازی به دیباگر هست؟
ارور مسیجهایی که مشکل رو از ابتدا تا انتها (تا خود لایبرری) ترک میکنن. آیا دیباگر باید چیزی غیر از این باشه؟

به نظر شما دلیل فنی پشت قضیه بوده؟ یا چون چیزی بجز ویندوز بلد نبودن دارن روش کار میکنن؟

پس احتمالا بهتره بریم سراغ یه زبان برنامه نویسی که این مشکلات رو نداره.

آیا فراتر از مشابه‌های خودشون تو زبانهای دیگه هستن؟ سرعت develop، سرعت اجرا، مدیریت منابع، پایداری، استفاده‌ی بهینه از منابع…
آیا با زبانهای .net میشه چیزی داشت که بهترش رو نشه داخل زبانهای اوپن سورس داشته باشیم؟

پس چرا وجود داره؟ هر ابزاری ساخته میشه که یه مشکلی رو حل کنه. هدفشون از ساخت زامارین چی بوده؟
با توجه به چیزی که شما میگی احتمالا هدفشون این بوده که برنامه‌نویسهایی که چیزی جز .net بلد نیستن، چیزی جز .net یاد نگیرن.

سلیقه نیست. منطقه.
لینوکس چیزی بیشتر از زیبایی داره. در حدی که میشه گفت «تنها چیزی که نداره زیباییه». (منطقا زیبایی بصری مربوط به gnu میشه)


#20

عاخه تو دانشگاه هم اگر دات نت درس بدند بیشتر ویندوز فرم یا وب فرم یاد میدن . من جایی سراغ ندارم بیان WPF یا مثلا ASP.Net Core یاد بدن