یادگیری سی شارپ
سلام و عرض خسته نباشید به بچه های گل انجمن برنامه نویسی
یک سوال ازتون دارم که اگر بتونید راهنماییم کنید من رو حسابی مدیون خودتون کردید.
من یکی دو سال هست که با مقوله برنامه نویسی آشنا شدم. فوق العاده به برنامه نویسی علاقه مند شدم و تونستم علی رغم اینکه رشتم شیمی بود توی این مبحث خوب پیش برم.
بخاطر نداشتن تجربه و ... انتخاب اولم (انتخاب زبان برنامه نویسی) انتخاب آگاهانه ای نبود.
توی محیط AutoPlay Media Stduio و با زبان برنامه نویسی Lua شروع به کار کردم.
حتی تونستم توی این مدت کوتاه یکی دوتا پروژه تجاری هم بسازم.
نوپا بودن زبان برنامه نویسی Lua، نداشتن یک محیط یکپارچه و قدرتمند برای نوشتن کد، رایج نبودن این زبان در ایران و کلی مشکلات از این قبیل من رو به سمت یادگیری یک زبان بهتر و قدرتمندتر سوق داد.
البته یادگیری Lua هم خالی از لطف نبود و خیلی از مباحث پایه برنامه نویسی رو یاد گرفتم که می تونه پیشینه خوبی برای یادگیری یک زبان قدرتمند باشه.
کلی جستجو کردم تا مثل انتخاب اولم دچار اشتباه نشم و یک زبان قدرتمند رو پیدا کنم تا ارزش وقت گذاشتن و یادگیری رو داشته باشه.
نتیجه جستجو هام شد زبان برنامه نویسی C#.NET.
به اندازه کافی در موردش تحقیق کردم، در مورد سادگی، انعطاف پذیری، قدرت بالا، رایج بودن در دنیا و کلی چیزای دگیش تحقیق کردم و مطمئنم انتخاب بجایی بوده.
از اونجا که میدونستم یادگیری زبانی مثل سی شارپ دات نت و محیط ویژوال استودیو، به سادگی لوا نیست و یک شروع ناموفق می تونه به قیمت دل سرد شدنم از دنیای برنامه نویسی تموم شه تصمیم گرفتم از یک نفر خبره توی این راه کمک راهنمایی بگیرم.
برای شروع و نحوه یادگیری با خودم فکر کردم مشورت با اساتید و کسانی که توی این زمینه مهارت دارن کمک خیلی زیادی بهم می کنه.
حالا دو تا سوال اساسی دارم.
هدفم از یادگیری سی شارپ اول یادگیری در مرحله اول ساخت نرم افزار های تحت ویندوز و در مرحله دوم ایجاد برنامه های مبتنی بر وب هست.
1) در مبحث سی شارپ گزینه Windows Form Application بهتره یا WPF؟
2) برای یادگیری حرفه ای سی شارپ (حرفه ای به معنی دقیق کلمه) از کجا شروع کنم و چه مسیری رو طی کنم؟
خیلی سرتون رو درد آوردم.
امیدوارم بتونید راهنماییم کنید چون از راهنمایی های افراد متعصب و ناآگاه خسته شدم.
یک دنیا از لطف همتون ممنون
10 پاسخ
دوستان دقت کنید
ایشون سوالشون چیز دیگه ای هست
1) در مبحث سی شارپ گزینه Windows Form Application بهتره یا WPF؟
2) برای یادگیری حرفه ای سی شارپ (حرفه ای به معنی دقیق کلمه) از کجا شروع کنم و چه مسیری رو طی کنم؟
راهشون رو انتخاب کردن و دو تا سوال واضح پرسیدن و از شما انتظار دارن که دقیقاً جواب همین سوا رو بدید
من خودم سی شارپ در حد کار راه اندازی خودم کار کردم
من اول یک کتاب فارسی رو شروع کردم به خوندن در حدود سه چهار تا فصل رو باهاش جلو رفتم تا با محیط و دستورات و... آشنایی پیدا کردم
بعد شروع کردم به نوشتن برنامه ها ساده مثل ماشین حساب ، دفترچه تلفن
نوشتن این برنامه ها باعث شد چیزای جدید یاد بگیریم
معلومه WPF پیش winform خدایی میکنه
اما و اما
یادگیریش به نسبت وینفرم یکم سخته ولی خیلی انعطاف خیلی بالایی داره و شما میتونید UI حرفه ای تری برای برنامتون بنویسید
در مقابلش وینفرم هست که خیلی آسان اما انعطاف پذیری کم داره مثلا با WPF میشه راحت فرمتو هر چند درجه که بخوای بچرخونی اما با وینفرم اگر بخوای این کاررو انجام بدی .....
من خودم از کتاب C# انتشارات Wrox استفاده کردم فارسیشم فکر کنم ترجمه شده انتشارات ساحر داره خیلی جامعه ولی یکم صقیله
C# تالبلو هم برای شروع خوبه با یه سرچ کوچیک میتونید پی دی افشو دانلود کنید
ممنون دوستان از راهنمایی های همتون
ولی فک کنم نهایتا فقط سعی و تلاش خود آدم بهتر از هرچیز دیگه ای باشه
ممنون
والا خوب ساختی!!!!
البته همش ماژوله!!!
ببین Lua فوق العاده قدرتمند هست مخصوصا برای کارای سیستمی و خوبیش اینه که چند سکویی هست
من خودم با اکثر زبون های برنامه نویسی کار کردم و برنامه نوشتم
ولی اینو بگم سی شارپ خیلی جالب نیست چون 1- توی لینوکس جواب نمیده (چند ماه پیش ردهت یه پروژه ایرو برای اینکار استارت زد ولی میدونم همون نمیشه) 2-توی چهارچوب .net هست
به نظر من پایتون رو انتخاب کن هم راحته هم ماژولاش زیاذه هم هرکاری که شما بگین من باهاش انجام میدم هم چند سکویی هست
هم میشه باهاش تحت وب برنامه نوشت
هم الان غول هایی مثل گوگل دارن از این زبون استفاده میکنن
سلام به همگی
داداش ممنون از راهنمایی های خوبتون
حرف های بالا باعث شد به انتخابم (C#.NET - WPF) بیشتر ایمان پیدا کنم، اما مشکل اساسی من بیشتر سوال دوم بود!
از کجا شروع و چه مسیری رو طی کنم؟ عجله ندارم اما خیلی از مباحث پایه و اولیه رو طی یادگیری لوا یاد گرفتم. تصویر چندتا از نمونه کارهامو گذاشتم بلکه بتونید با توجه به سطح کارم بهتر راهنماییم کنید!
تقویم حرفه ای: پشتیبانی از سه تقویم قمری، شمسی و میلادی در یک دوره 3000 ساله و تسهیل اعمالی مثل تبدیل تاریخ و جمع و تفاضل تاریخ های مختلف با هم
گزارشکار ساز: تولید گزارشکار (نمی دونم تا حالا در دانشگاه گزارشکار نوشته باشید یا نه، اما شما فکر کنید ارائه یک مقاله درباره آخرین آزمایش انجام شده) با چهار فرمت رایج PDF، ،TIFF، HTML application و PDF.
سلاام دوست عزیز
طبق تجربه ای که من از آموزش های برنامه نویسی در کلاس های دانشگاه و کلاس های متفرقه دارم ، آموزش برنامه نویسی بهتره که توسط خودت تا حد متوسط باشه. کلاس ها فقط وقت تلف کردنه و پول هدر دادن .من خودم به آموزش c# و کلاس های .net پرداختم و با یک انگیزه بالا و یک معلم معروف . ولی متاسفانه کلاس هم خیلی کند پیش می رفت هم مفید نبود و هم نصفه کاره به علت به حد نساب نرسیدن دوره های بعدی تعطیل شد و من بعد از چندین ماه آموزش نصفه و نیمه و سرد شدن در این زبان کلا بیخیال این زبان شدم.
به نظر من شما یک کتاب از یک نویسنده معروف بگیرید و از اول خودتان شروع کنید و از آموزش های اینترنتی هم (که خیلی به من کمک می کنند همیشه )استفاده کنید و سوالات خود را در انجمن ها ی برنامه نویسی مطرح کنید تا نظرات مختلف را بررسی کنید و سعی کنید از همون ابتدا هرآنچه را که یاد می گیرید در محیط مربوطه بنویسید و خطاها را خودتان بررسی کنید .
تا حد متوسط را به این شیوه پیش بروید و برای سطح پیشرفته می توانید از کلاس هایی استفاده کنید.من که خودم در مورد زبان جاوا چنین کاری را پیش گرفته ام و تا الان که راضی بوده ام.
موفق باشید.
سلام درود دوست من
خیلی خیلی کار خوبی میکنی قبلش مشورت میکنی که این خودش جای تحسین داره برای ادامه کار در نهایت شما تصمیم گیرنده هستید ولی با مشاوره کسانی که آشنایی بیشتری دارن.
سوال شما جواب طولانی داره امیدوارم خسته نشی و بخونی.
1-راجع به سوال اولتون باید بگم از نظر من WPF بهتر هست از windows Application که میتونیم تفاوت هاش رو بگیم و مورد بررسی قرار بدیم و قضاوت رو میزارم به عهده خودتون
این دو تا از قالب های معروف طراحی برنامه تحت دسکتاپ و بر پایه پلتفرم دات نت هستند. Windows Form Application سابقه طولانی داره و برنامه نویسان با این قالب آشنایی بیشتری دارند ولی Wpf Application قالب جدیدیه و به عبارتی کلا تکنولوژی جدیدی است که چند سال بیشتر نیست که اومده و در حال رشده.
قصد ندارم به صورت فنی این دو تا قالب برنامه نویسی رو با هم مقایسه کنم چون اصولا کاملا از لحاظ ساختاری با هم متفاوت هستند، و توضیح زیادی می طلبه.
پس بزارید خیلی ساده به شما بگم که در Wpf خیلی راحت و سریع تر می تونید هر نوع عنصر گرافیکی رو ایجاد کنید ولی در Windows form تغییرات گرافیکی خیلی محدوده. Windows Form تا زمانی با شما راه می آد که نخواهید تغییرات اساسی در واسط کاربری برنامه تون و کنترل هایی که استفاده میکنید ایجاد کنید، به محض اینکه چنین تصمیمی بگیرید مشکلات و نا توانی های خودشون رو نشون می دهند. ولی Wpf قدرت مطلق و بسیار بسیار بیشتری در اختیار شما قرار میده.
البته شرکت هایی از این فرصت استفاده کردند و کنترل های سفارشی رو طراحی کردند و در اختیار برنامه نویسان قرار دادند، ولی باز هم نیاز ها کاملا بر طرف نشد و هنوز هم نیاز به انعطاف بیشتری بود تا زمانی که Wpf ظهور کرد.
بزارید با چند تا مثال به شما بگم، با Wpf می تونید خیلی راحت یک فرم رو دایره ای طراحی کنید در صورتی که در windows form خیلی سخت میتونید این کارو انجام بدید چون به صورت دیفالت همه فرم ها مربع یا مستطیل هستن.
در WPF خیلی راحت می تونید یک دیتاگرید کاملا سفارشی طراحی کنید , و همچنین می تونید از جلوه های انیمیشنی خیلی خیلی زیبایی استفاده کنید . با Wpf می تونید کنترل ها رو به هر شکلی که دوست دارید طراحی کنید و در نهایت با Wpf هر نوع افکت و جلوه گرافیکی رو که در مخیله تون بگنجه می تونید پیاده سازی کنید!
البته فقط برتری های Wpf به winform از لحاظ گرافیک و جلوه های انیمیشنی نیست ولی بارزترین تفاوتش همینه.
قابل توجه است که شیوه کد نویسی در این دو تا تکنولوژی کاملا با هم متفاوته. مثلا در Window Forms کدهای مرتبط با واسط کاربری برنامه با کدهای مرتبط با منطق برنامه در هم آمیخته هستند ولی در Wpf ظاهر و منطق برنامه از هم جدا هستند، ظاهر برنامه و کنترل های معمولا با زبان XAML طراحی میشه که خیلی ساده یه چیزی شبیه کد نویسی XML است و منطق برنامه هم توسط زبانی مثل سی شارپ نوشته میشه. یکی از برتری های بزرگ Wpf همینه که ظاهر و منطق برنامه از هم جدا میشه، و طراحان و گرافیست ها می توانند به صورت مستقل روی ظاهر برنامه کار کنند و برنامه نویسان هم الگوریتم های منطق برنامه رو پیاده سازی کنند که این واقعا مدیریت و پیشرفت پروژه رو خیلی سریعتر میکنه و البته نگهداری پروژه هم خیلی خیلی بهبود پیدا میکنه.
آخرین ورژن برنامه روبی و همچنین Soluto رو دانلود کنید، جلوه ها و گرافیکی که این برنامه ها دارند به هیچ وجه به راحتی نمیشه با Window Form طرحی کرد و اگر هم بشه خیلی خیلی زمانبر و دشواره، این نوع جلوه های گرافیکی فقط و فقط در حوزه Wpf است.
توضیحاتی که ارائه شد به هیچ وجه فنی و تخصصی نبود، فقط این موارد رو ذکر کردم تا با خروجی این دو قالب آشنا بشید و در صورت مبتدی بودن درگیر جزئبات فنی نشید. لذا اگه توضیحات دقیقتر و جزئی تری هم خواستید می تونم ارائه بدم.
و میتونید به این لینک برید و بخونید wpf چی هست.
و نکته و سوال بسیار مهم برای شما اینه که WPF بخونی یا Win Form ?
چون سی شارپ رو خوب بلد نیستید بهتره با Window Form شروع کنید. حتی اگه عمیقتر و بهتر می خواهید روی طراحی الگوریتم و آشنایی با ساختار کتابخانه دات نت آشنا بشید توصیه میکنم ابتدا Console Application کار کنید تا پس از آشنایی با ساختار های اصلی برنامه نویسی و طراحی الگوریتم به سمت وین فرم بیایید و بعد از آشنایی با وین فرم می تونید اطلاعاتتون رو بسط بدید به Wpf.
تصور نکنید که Wpf چیزی کاملا جدا از سی شارپه . همانطور که گفتم Wpf فقط در بخش طراحی واسط کاربری تغییرات گسترده ای ایجاد کرده ولی برای پیاده سازی منطق برنامه تون همچنان به سی شارپ نیاز خواهید داشت، پس سی شارپ و یا ویژوال بیسک دات نت به عنوان پیش نیازهای Wpf هستند. چون یادگیری Wpf شما رو درگیر جزئیات گرافیکی و یادگیری زبان XAML میکنه و چون قبلا پیش زمینه ای از برنامه نویسی نداشتید بخش اعظمی از کدهای مرتبط را درک نخواهید کرد و نیاز به سوئیچ مداوم بین مفاهیم مختلف خواهید داشت.
پس ابتدا سعی کنید Windows Application یاد بگیرید و با ساختار دات نت کمی آشنا بشید بعدش حرکت کنید به سمت WPF و سایر تکنولوژی ها.
فریم ورک دات نت خیلی خیلی گسترده است. پس زیاد عجله نکنید. چیزی که مهمه این هستش که مفهومی و عمیق موضوعات رو یاد بگیرید. زیاد خواندن بدون درک عمیق بدترین ظلمیه که به نظر من یک برنامه نویس در حق خودش میکنه. پس اشکالی نداره که پیشرفت کمی دارید، مهم اینه که خوب و درست یاد بگیرید.
2-در مورد سوال دومتون هم لینک های مرتبط با سوالتون هم در زیر اوردم حتما ببینید نظر دیگر دوستان رو در این خصوص.