PDA

View Full Version : گفتگو: بررسی محیط توسعه Visual Studio و بررسی نقاط قوت و ضعف این IDE



Felony
دوشنبه 04 دی 1391, 15:12 عصر
سلام ؛

مدتی هست بنا به دلایلی Net Framework. به ابزاری مناسب جهت توسعه برنامه های سازمانی که نیاز شدیدی به پشتیبانی و توسعه دارند تبدیل شده که از جمله این دلایل میشه وجود منابع غنی ( داکیومنت های خود مایکروسافت ، ویدئو های Channel9 و سایت های دیگر ) ، تکنولوژی هایی مثل Entity Framework و ابزارهایی مثل LINQ و از همه مهمتر فراوانی برنامه نویسان این Framework نسبت به زبان های دیگر که کار جایگزینی برنامه نویس و توسعه رو راحت تر میکنه ، را نام برد .

چند روزی هست توی شرکت بنا به همین دلایل داریم روی این Framework سوئیچ میکنیم تا یکسری از برنامه ها که زیاد نیاز به تغییرات و کار با بانک های اطلاعاتی و ... دارند و بعضی موارد ناخوشایند این بستر براشون مهم نیست رو در این محیط بازنویسی کنیم .

همونطور که میدونید حوزه اصلی تخصص من Delphi هست و با IDE مربوط به اون که RAD Studio باشه آشنایی کامل دارم و کمتر زمانی سراغ Visual Studio رفتم و اون زمان ها هم که سراغش رفتم فقط برای کار با ++VC بوده که دیگه اونجا زیاد به IDE توجه نداشتم ، تو این چند روز که با #C شروع به کار کردیم تا روند تغییرات رو شروع کنیم کاستی هایی تو این محیط مجتمع ( Visual Studio ) دیدم که حداقل برای من و دوستانی که با RAD Studio کار کردن غیر قابل چشم پوشی هست ، حالا نمیدونم این کاستی ها واقعا وجود داره یا از اطلاعات کم من در مورد این محیط نشأت میگیره .

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

در آخر امیدوارم تو این تاپیک مقایسه ای منطقی بین دو محیط مجتمع Visual Studio و RAD Studio صورت بگیره .

از دوستان عزیز هم خواهش میکنم از بحث های که جنبه کل کل و صحبت از روی احساسات و ... دارند جدا پرهیز کنند و اگر در این حوزه تخصص کافی ندارند وارد بحث نشند تا شاهد یک بحث فنی باشیم ، در صورت عدم رعایت موارد ذکر شده با کاربر(ان) خاطی به شدت برخورد خواهد شد .

موفق باشید .

Felony
دوشنبه 04 دی 1391, 15:31 عصر
مورد اول :

فرض کنید یک Button روی فرم قرار دادیم و مثلا رویداد Click رو برای این دکمه تعریف کردیم ، حالا میایم تو کد و بنا به هر دلیلی وسط کار این رویداد رو کدش رو حذف میکنیم ؛

1- چرا فایل مربوط به Designer که اطلاعات مربوط به کامپوننت های و رویدادهای آن ها در آن نگهداری میشود به صورت خودکار به روز رسانی نمیشود و در صورت سعی در کامپیال پروژه با خطا رو به رو میشیم که فلان رویداد که در فایل Designer معرفی شده در یافت نمیشه و باید دستی به این فایل سوئیچ کنیم و کد مربوط به اون رویداد رو حذف کنیم ؟

2- چرا وقتی کد مروبط به این Event رو حذف میکنیم و وارد محیط Design میشیم همچین پنجره ای نمایش داده میشه :


97177

در صورتی که میشد با رفع همون مشکل اول راحت این مورد رو کنترل کرد .

3- چرا وقتی اون لینک Ignore and Continue که در بالای همون عکس هست رو میزنیم با تایید پیغام کلا صفحه ای که با کلی بدبختی Design کردیم به فنا میره در صورتی که باز مایکروسافت با رفع اون مورد اول میتونست این مشکل رو برطرف کنه ؟

البته میدونم که این مشکلات همگی با حذف دستی اون Event از فایل Designer مربوط به اون فرم حل میشه ولی تو RAD Studio تمام این کارها به صورت خودکار مدیریت میشه ، آیا اینجا راهکاری ارائه شده ؟ در غیر این صورت ابزار جانبی برای خودکار سازی این عملیات موجود هست ؟

gwbasic
دوشنبه 04 دی 1391, 17:24 عصر
چرا وقتی یک رویدادگردان Event Handler حذف می شود باید کدی که رویدادگردان را به رویداد نسبت می دهد، حذف شود؟!
همانطور که می دونید برای نسبت دادن یک رویداد گردان به یک رویداد به صورت زیر عمل می کنیم:

btn.Click += btnClickHandler;

public void btnClickHandler(object sender, EventHandler e)
{
}


حالا اتفاقی که می افته وقتی شما در Designer روی button دابل کلیک می کنید این دو بخش کد توسط designer در دو فایل جداگانه ایجاد می شه و این تصور برای شما پیش می یاد که خوب حالا که من این متد رو نمی خوام و پاکش می کنم، خود بخود اون کد هم در designer پاک می شه. اما این تنها سناریوی موجود نیست شما این حالت رو در نظر بگیرد:
فرض کنید نسبت دادن رویداد به رویدادگردان از طریق کد انجام شده باشد (نه توسط designer و در فایل مربوط به آن) در این صورت آیا باید با پاک شدن متد توسط شما اون قسمت از کد هم باید پاک شود!!!

به بیان ساده تر این حالت رو در نظر بگیرید که شما متد رو cut کردید و چند خط بالاتر یا پایین تر می خواین اون متد رو paste کنید. حالا اگر VS به محض پاک کردن متد اون خط کد معروف رو پاک کنه و سپس شما paste کنید که دیگه این متد می ره رو هوا !!! یعنی دیگه این متد به اون رویداد وصل نیست.

در حقیقت این امکان اگه وجود داشت یه جورایی کمک که نبود هیچی دردسر هم میشد. IDE فقط می تونه کمک کنه نه اینکه فضولی کنه تو کار برنامه نویس.

برای استفاده بهتر از VS توصیه می کنم Resharper رو نصب کنید (البته کم باعث کندی می شه) اونوقت می بینید که محیط VS خودش یک کلاس درس حرفه ای هست برای شما

در ضمن هیچ وقت فایل Designer رو به صورت دستی تغییر ندید زیرا با هر تغییر در فرم دوباره توسط Code Generator ویژوال استودیو ایجاد می شه (مگر اینکه واقعا بدونید کی مشکلی پیش نمیاد)
هیچ وقت Ignore نکنید چون ممکنه خیلی از کدها پاک بشه و حتما هم از یک Source control استفاده کنید که قطعا می کنید. با استفاده از Source control و گرفتن تغییرات Desginer می تونید به راحتی متوجه بشید که چرا فرم کرش شده.

در ضمن حتما می دونید که خالق سی شارپ چه کسی هست

Felony
دوشنبه 04 دی 1391, 19:39 عصر
به بیان ساده تر این حالت رو در نظر بگیرید که شما متد رو cut کردید و چند خط بالاتر یا پایین تر می خواین اون متد رو paste کنید. حالا اگر VS به محض پاک کردن متد اون خط کد معروف رو پاک کنه و سپس شما paste کنید که دیگه این متد می ره رو هوا !!! یعنی دیگه این متد به اون رویداد وصل نیست.
نه ، چرا با كات كردن اين كار انجام بشه ، تو RAD Studio در زمان كامپايل unused event ها به صورت خودكار حذف ميشن ، در حقيقت تو محيط RAD Studio اين مشكلي كه عرض كردم هست البته به نوعي ديگه كه خيلي راحت هم قابل حل هست ، تو RAD Studio اگر event ي رو به صورت دستي حذف كنيد بايد اعلان اون رويداد رو هم از كدها حذف كنيد ولي عوضش اگر فقط داخل event كدي ننويسيد در هنگام كامپايل unused event ها از سورس حذف ميشن ، يعني هم خود رويداد و هم اعلانش و اين واقعا يك قابليت عالي هست .


در ضمن حتما ميدونيد كه خالق سي شارپ چه كسي هست
اينكه استاد اعظم آندرس هلزبرگ مديريت تيم #C رو بر عهده داره ربطي به Visual Studio نداره ، ايشون طراح سينتكس و كامپايلر هستن نه IDE ويژوال استاديو ...

gwbasic
دوشنبه 04 دی 1391, 20:07 عصر
ببینید اینکه به قول شما Unused event ها اگه وجود داشته باشن یعنی به عبارتی ما متدی رو نسبت دادیم به رویدادی که وجود خارجی ندارد بنابراین یک خطا هست و این وظیفه کامپایلر هست که اونو هشدار بده و برنامه نویس تصمیم نهایی رو بگیره (شاید اشتباها متد رو حذف کرده) این کار وظیفه IDE‌ نیست بلکه کامپایلر هست و همینطور بهینه کردن کد که کامپایلر این کار رو انجام می ده

باز هم عرض می کنم Resharper رو نصب کنید تا ببینید چه نکاتی رو به شما گوشزد می کنه حتی خطاهای منطقی شما!!! (البته گوشزد می کنه نه اینکه خودش دست به کار بشه و هر کاری که خواست رو کد انجام بده)

خالق سی شارپ رو برای انتخاب زبان سی شارپ و دات نت اشاره کردم

Felony
دوشنبه 04 دی 1391, 21:35 عصر
متاسفانه منظور من رو متوجه نشديد ، آقا من يك رويداد براي يك Button ايجاد ميكنم ولي توش كدي نمينويسم ، تو RAD Studio بعد اذ اجرا اين رويداد كه كدي داخلش نوشته نشده به صورت خودكار حذف ميشه ، پس همچين قابليتي نداره ، مرسي .

در مورد دليل انتخاب هم حاجي ما خودمون مشتري آندرسيم ( دلفي هم شاهكاره همون پير فرتوته ) .

masoud_z_65
سه شنبه 05 دی 1391, 11:21 صبح
آقا بهترین کار نصب Resharper هست من هر روز بیشتر از روز قبل عاشق این ابزار میشم

mehdi.fni
چهارشنبه 06 دی 1391, 09:25 صبح
سلام دوستان
یک مشکل از قدیم در دلفی دیدم که هنوز هم در delphi ex2 وجود داره این مشکل انقدر برام مهم بود که حالا بخاطر اون Vs رو انتخاب کردم و دارم با اون کار میکنم مشکل اینه که بعضی از کامپوننت های مهم داریرکشن لفت و رایت را ندارند و یا دارند و درست کار نمیکنه ولی من در vs به این مشکل برخورد نکردم . آقای تاجیک شما این مشکل را در دلفی چگونه حل کردید ؟

Felony
چهارشنبه 06 دی 1391, 09:40 صبح
سلام دوستان
یک مشکل از قدیم در دلفی دیدم که هنوز هم در delphi ex2 وجود داره این مشکل انقدر برام مهم بود که حالا بخاطر اون Vs رو انتخاب کردم و دارم با اون کار میکنم مشکل اینه که بعضی از کامپوننت های مهم داریرکشن لفت و رایت را ندارند و یا دارند و درست کار نمیکنه ولی من در vs به این مشکل برخورد نکردم . آقای تاجیک شما این مشکل را در دلفی چگونه حل کردید ؟
سلام ؛
این یکی از مشکلاتی هست که اکثر تازه کارها در دلفی با اون رو به رو میشن و براشون خیلی هم دردسر ساز میشه ، اصولا این کامپوننت ها با سورس عرضه میشن و اگر یکم وقت و تخصص در طراحی کامپوننت ها داشته باشید امکان رفع این مشکل وجود داره ، البته همونطور که گفتم این کار برای کاربران عادی قابل انجام نیست ، شرکت های ایرانی هم هستند که این کامپوننت ها رو تغییر میدن ( مثلا همین قابلیت Right To Left رو بهش اضافه میکنن ) و میفروشن ، ولی در کل من مشکل Right To Left در تعداد معدودی از کامپوننت های دلفی رو قبول دارم و راه حل مناسب و کم دردسری برای کاربران عادی توش سراغ ندارم .

در آخر این موضوع ربطی به بحث قدرت یا ضعف IDE نداره ، اینها بر میگرده به طراحی کامپوننت ها که صورت میگیره که این مشکل از کم کاری برنامه نویسان این کامپوننت ها هست نه RAD Studio ، کم نیستن کامپوننت هایی که قابلیت Right To Left و ... رو دارن و به خوبی هم در محیط RAD Studio قابل استفاده هستند .

rezarko
شنبه 09 دی 1391, 17:38 عصر
یه وقت این ویژوال استودیو نقاط قوت و خوبی نداره؟ یه کم هم در مورد توانایی هاش بحث کنید

esafb52
یک شنبه 10 دی 1391, 09:33 صبح
واقعا از Resharper لذت بردم ممنون كه معرفيش كردين

yashar666
یک شنبه 10 دی 1391, 12:49 عصر
مورد اول :

فرض کنید یک Button روی فرم قرار دادیم و مثلا رویداد Click رو برای این دکمه تعریف کردیم ، حالا میایم تو کد و بنا به هر دلیلی وسط کار این رویداد رو کدش رو حذف میکنیم ؛

1- چرا فایل مربوط به Designer که اطلاعات مربوط به کامپوننت های و رویدادهای آن ها در آن نگهداری میشود به صورت خودکار به روز رسانی نمیشود و در صورت سعی در کامپیال پروژه با خطا رو به رو میشیم که فلان رویداد که در فایل Designer معرفی شده در یافت نمیشه و باید دستی به این فایل سوئیچ کنیم و کد مربوط به اون رویداد رو حذف کنیم ؟

2- چرا وقتی کد مروبط به این Event رو حذف میکنیم و وارد محیط Design میشیم همچین پنجره ای نمایش داده میشه :


97177

در صورتی که میشد با رفع همون مشکل اول راحت این مورد رو کنترل کرد .

3- چرا وقتی اون لینک Ignore and Continue که در بالای همون عکس هست رو میزنیم با تایید پیغام کلا صفحه ای که با کلی بدبختی Design کردیم به فنا میره در صورتی که باز مایکروسافت با رفع اون مورد اول میتونست این مشکل رو برطرف کنه ؟

البته میدونم که این مشکلات همگی با حذف دستی اون Event از فایل Designer مربوط به اون فرم حل میشه ولی تو RAD Studio تمام این کارها به صورت خودکار مدیریت میشه ، آیا اینجا راهکاری ارائه شده ؟ در غیر این صورت ابزار جانبی برای خودکار سازی این عملیات موجود هست ؟

من هم سال ها با دلفی کار کردم از دلفی دل فریب 7 تا همین الان که گا ه بی گاه سرکی به دلفی .XE3 می کشم که اونم به نظر من بسیار جالب ساخته شده ولی؟؟! من اکنون حدود 4 سال هست که با سی شارپ کار می کنم ولی به مراتب راضی تر از دلفی هستم .net به واقع همه چیز داره و پشتیبان گردن کلفتی مثل microsoft البته همه چیز به صورت نسبی مطاقا هیچ کدوم کامل نیست 100% اینوقبول دارم .این چیزی که شما میگید نقص نیست ! فقط نگاه کردن به دو شکل مختلف (2 دیدگاه ) همه چیز در این موارد عادت ,!اگر کمی صبر داشته باشید عادت می کنید و لذت و از Object-oriented بودن فوق العاده سی شارش لذت می برید .فرض کنید در delphi کاربرات عادت دارن برای دیدن یه متد ctrl+spe رو بزنن ولی در سی شارپ خود به خود این عمل انجام میشه آیا این نقص دلفی یا سی شارپه ؟ خیر یه عادت ؟ یا اینکه دلفی forech نداره ایا به خاطره ای کاستی یعنی بدر نمیخوره ؟ نه ! باید نسبی مقایسه کنید به نسبت به نظر من Object-oriented بودن c# خیلی لذت انگیز تر از دلفی هست (این یه این معنی نیست که دلفی کلاس نداره ولی c# خیلی کاملتره )
نظرشخصی من بود

younes221
یک شنبه 10 دی 1391, 19:55 عصر
.فرض کنید در delphi کاربرات عادت دارن برای دیدن یه متد ctrl+spe رو بزنن
سلام ، اگه دقت کرده باشین این تاپیک مربوط به نقاط قوت و ضعف Visual Studio هست و نه اینکه سی شارپ Object Oriented هست یا نیست . در جواب اون گفته بالاتون نیازی به زدن ctrl + space هم نیست در تنظیمات Rad Studio ، گزینه ای هست به نام Auto Invoke که اگه فعالش کنید نیازی به زدن اون دکمه ها هم نیست ! همچنین میتونین cnPack رو هم نصب کنید و از ویژگیهاش لذت ببرید!


یا اینکه دلفی forech نداره ایا به خاطره ای کاستی یعنی بدر نمیخوره
foreach نداره ولی for...in داره !


اید نسبی مقایسه کنید به نسبت به نظر من Object-oriented بودن C#‎ خیلی لذت انگیز تر از دلفی هست (این یه این معنی نیست که دلفی کلاس نداره ولی C#‎ خیلی کاملتره )
دوست عزیز با مدرک حرف بزنید ! رو هوا نمیشه که دو چیز رو مقایسه کرد !

لطفا بحث تاپیک رو هم منحرف نکنید ! دوستان اگه مطالبی دارید بگید تا هممون استفاده کنیم

yashar666
یک شنبه 10 دی 1391, 21:04 عصر
جواب اون گفته بالاتون نیازی به زدن ctrl + space هم نیست در تنظیمات Rad Studio ، گزینه ای هست به نام Auto Invoke که اگه فعالش کنید نیازی به زدن اون دکمه ها هم نیست ! همچنین میتونین cnPack رو هم نصب کنید و از ویژگیهاش لذت ببرید!

دوست عزیز من میدونم در تنظیمات دلفی در tools->option ->editor option->Atuo invoke میشه این کارو کرد این ویژگی جذابی به قول شما نیست یه نوع عادت و سلیقه هست !

هیچ دلفی کار محضی هم نیست که این خاصیت رو فعال کنه ! چون به شکل معمول عادت داره !

yashar666
یک شنبه 10 دی 1391, 21:14 عصر
دوست عزیز با مدرک حرف بزنید ! رو هوا نمیشه که دو چیز رو مقایسه کرد !

فکر نکن در Object-oriented بودن سی شارپ نسب به دلفی در کل این سایت کسی شک داشته باشه (.net مهد کلاس )جستجو کنید در همین سایت در این باره ؟!!! حرفهای استاد کرامتی و بقیه اساتید ..الان وقت ندارم در این مورد مدرک بیارم در اینترنت بسیار است .! جستجو کنید رو هوا هم حرف نمیزم من تجربه خودم و نظر خودم را گفتم

حمیدرضاصادقیان
یک شنبه 10 دی 1391, 22:18 عصر
دوست عزیز بحث رو لطفا منحرف نکنید.
یکی از مشکلاتی که الان خود من باهاش برخورد کردم در بحث OOP این بود که در Delphi شما میتونید از یک فرم یک Instance مشتق کنید و کل فرم رو براتون طراحی میکنه و کافیه اشیای مورد نیاز رو برای اون کلاس مشتق شده بنویسید. ولی در دات نت خیلی به سختی میشد این مورد رو پیاده سازی کرد تازه نه به کامی دلفی.
اینجا بحث سر این نیست کی خوبه کی بده.
بنا به دلایلی فعلا داریم با دات نت کار میکنیم و برای مواردی که آقای تاجیک فرمودن دنبال راه حل میگردیم.
خواهشا خارج از بحث صحبت نکنید که مجبور به حذف پستهاتون نشیم. چون از این بحثهای فاقد محتوا که این بده و اون خوبه نمیخواهیم انجام بدیم.دنبال راه حل داریم میگردیم.!!

gwbasic
دوشنبه 11 دی 1391, 07:25 صبح
قبل از هر چیز این نکته رو همگی می دونیم که سوئیچ کردن از یک زبان به زبان دیگه ای از طریق گشتن دنبال تناظر یک به یک روش اصولی ای نیست چراکه هر زبان ساختار و نگارش خودش رو داره. این قبیل مشکلات که چرا این زبان اینطوریه و اون یکی نیست در اول راه باعث آزار هست. مثلا برنامه نویس هایی رو در نظر بگیرید که از وبی به سی شارپ یا وبی دات نت اومدن، اگه درکی از دات نت نداشته باشن و به سبک وبی بخوان برن جلو نه تنها هیچ پیشرفتی نمی کن بلکه اون کاری هم که بلد بودن دیگه نمی تونن انجام بدن بنابراین نیاز به مطالعه جدی هست. مثال دیگه در مورد javascript هست هر برنامه نویس که با یک زبون شی گرا کار کرده باشه مطمئنا با javascript مشکل خواهد داشت بطور مثال مفهوم this. که همه اینها با درک درست از اون زبان قابل حل است.

هرچند که اینها هیچ کدوم به IDE برنمی گردد ولی چون بحثش پیش اومد اشاره می کنم.



یکی از مشکلاتی که الان خود من باهاش برخورد کردم در بحث OOP این بود که در Delphi شما میتونید از یک فرم یک Instance مشتق کنید و کل فرم رو براتون طراحی میکنه و کافیه اشیای مورد نیاز رو برای اون کلاس مشتق شده بنویسید. ولی در دات نت خیلی به سختی میشد این مورد رو پیاده سازی کرد تازه نه به کامی دلفی.

اگر درست متوجه شده باشم شما دنبال BaseForm ها هستین
در دات نت هر فرم یک کلاس هست که از Form ارث می برد بنابراین مفاهیم شی گرایی برای فرم صادق هست و شما می تونید یک BaseForm تعریف کنید که از Form ارث برده و هر پراپرتی یا کنترلی رو که فکر می کنید در بقیه فرم ها عمومیت داره رو میتونید داخل اون تعریف کنید و در نهایت بقیه فرمهاتون رو از BaseForm ارث ببرید و از اعضایی که در BaseForm تعریف کردید استفاده کنید

اگر منظورتون ساخت فرم از روی Table یا مدل هست که این هم از طریق Drag Drop قابل انجام هست هرچند که این قبیل امکانات هیچ لطفی به یک برنامه نویس حرفه ای نمی کند

NasimBamdad
دوشنبه 11 دی 1391, 10:46 صبح
برنامه Resharper نصب کردم و بسیار جالب بود . اما سوال اینجاست . من اکثر متغیر هایی که تعریف کردم رو مثلا String ها رو پیشنهاد می کنه از نوع VAR قرار بدم .

آیا این کار و تکنیک OPTIMIZE هست ؟ قابلیت خوبی که داشت این بود که USING های غیر قابل استفاده رو هم گوشزد می کرد برای حذف کردن

gwbasic
دوشنبه 11 دی 1391, 11:58 صبح
برنامه Resharper نصب کردم و بسیار جالب بود . اما سوال اینجاست . من اکثر متغیر هایی که تعریف کردم رو مثلا String ها رو پیشنهاد می کنه از نوع VAR قرار بدم .

آیا این کار و تکنیک OPTIMIZE هست ؟ قابلیت خوبی که داشت این بود که USING های غیر قابل استفاده رو هم گوشزد می کرد برای حذف کردن

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

Felony
دوشنبه 11 دی 1391, 12:14 عصر
اگر درست متوجه شده باشم شما دنبال BaseForm ها هستین
در دات نت هر فرم یک کلاس هست که از Form ارث می برد بنابراین مفاهیم شی گرایی برای فرم صادق هست و شما می تونید یک BaseForm تعریف کنید که از Form ارث برده و هر پراپرتی یا کنترلی رو که فکر می کنید در بقیه فرم ها عمومیت داره رو میتونید داخل اون تعریف کنید و در نهایت بقیه فرمهاتون رو از BaseForm ارث ببرید و از اعضایی که در BaseForm تعریف کردید استفاده کنید
منظور همین مورد بود ، خوب ما فرم رو به ارث بردیم ، اما یه مشکلی هست ، الان فرض کنید رو فرم 1 یک Button قرار دادیم و فرم 2 رو از فرم 1 به ارث بردیم ، این Buttom در فرم 2 هم نمایش داده میشه ولی روش علامت قفل هست و اجازه نمیده Property های اون رو تغییر بدیم ، مثلا من میخوام فرم دومم تمام خصوصیات فرم اول رو به ارث ببره اما مثلا رنگ فلان Button رو عوض کنم ، باید چه کنم ؟

gwbasic
دوشنبه 11 دی 1391, 13:55 عصر
فرم و کنترلها همگی کلاس هستند و وقتی کنترلی روی فرمی قرار می گیرد در حقیقت یک پراپرتی از جنس آن کنترل به فرم اضافه می شود و دراین بین Designer بر اساس مفهوم Encapsulation آن را به صورت private قرار می دهد در نتیجه ار فرم مشتق شده (بر اساس مفاهیم شی گرایی) دسترسی به پراپرتی (کنترل) فرم پایه وجود ندارد بنابراین در Desginer این موضوع به خوبی تشخیص داده شده و آن کنترل قفل می شود. اما مطمئنا همانطور که حدث زدید با تغییر Modifier آن کنترل در فرم پایه به public امکان تغییر در فرم ارث برده شده فراهم می شود.

masoud_z_65
دوشنبه 11 دی 1391, 14:25 عصر
برنامه Resharper نصب کردم و بسیار جالب بود . اما سوال اینجاست . من اکثر متغیر هایی که تعریف کردم رو مثلا String ها رو پیشنهاد می کنه از نوع VAR قرار بدم .

آیا این کار و تکنیک OPTIMIZE هست ؟ قابلیت خوبی که داشت این بود که USING های غیر قابل استفاده رو هم گوشزد می کرد برای حذف کردن
Resharper خیلی پیشنهاداتی داره که شاید شما هیچ وقت نخواین ازش استفاده کنین مثل همین مورد که خودتون گفتین
توی تنطیماتش میتونید اون مورد رو غیر فعال کنید که دیگه براتون نیاد
یادم نیست چجوری اما یه خورده خودتون توی تنطیماتش بگردین چیزای زیادی دستتون میاد بد نیست

NasimBamdad
شنبه 16 دی 1391, 09:23 صبح
Resharper خیلی پیشنهاداتی داره که شاید شما هیچ وقت نخواین ازش استفاده کنین مثل همین مورد که خودتون گفتین
توی تنطیماتش میتونید اون مورد رو غیر فعال کنید که دیگه براتون نیاد
یادم نیست چجوری اما یه خورده خودتون توی تنطیماتش بگردین چیزای زیادی دستتون میاد بد نیست

گشتم ولی پیدا نکردم ، اگه شما جاش رو بلدی بهم بگو !

و اینکه الان میاد کد ها رو در خطوط جدا لیست می کنه ، میشه کاری کرد مثل سابق در خود VS پشت سر هم باشند ؟

masoud_z_65
شنبه 16 دی 1391, 10:28 صبح
فقط باید یه تاپیک جدا زد برای تنظیمات ریشارپر برای مورد اولت من دقیق نمیدونم اینجا رو چک کن:
VS>resharper>Option>C#>ContextAction

برای مورد دومت هم قبلا توی وبلاگم نوشته بودم بخون:

Here (http://www.zayyanim.blogfa.com)

gwbasic
شنبه 16 دی 1391, 10:53 صبح
و اینکه الان میاد کد ها رو در خطوط جدا لیست می کنه ، میشه کاری کرد مثل سابق در خود VS پشت سر هم باشند ؟

Resharper بر اساس یک سری اصول و استاندارد به شما پیشنهاد می ده بنابراین سعی کنید همگام بشید با اون. اینکه می یاد کدها رو در خطوط جدا لیست می کنه دلیلش خوانایی هست و اینکه نیاز نباشه برای دیدن کد Srcoll افقی انجام بشه (هرچند که مانیتورهای الان خیلی پهن هستند). اون روشی که برنامه نویس های سنتی همه کد رو در یک خط می نوشتند "سیخ کبابی" می گن!!!
البته چند خطی کردن کد زمانیکه LINQ می زنید و طولانی هست در شرایط خاص Resharper درست عمل نمی کند. اما شکستن کد به چند خط کار پسندیده ای هست

ingenuous67
دوشنبه 09 بهمن 1391, 10:14 صبح
دوستان سلام
خسته نباشيد
كسي نمي دونه كه چطور ميشه توي ويژوال استوديو كامنت فارسي و انگليسي تايپ كرد.
توي محيط سي شارپ كه خيلي سخته همش بايد با كليدهاي مكان نما به چپ و راست حركت كرد
از توي ورد هم كپي مي كنم قبول نمي كنه
مثلا اين متن رو كه مي خواي بنويسي پدرت درمياد :
aيك ds دو ew سه
ممنون ميشم كمك كنيد
اگه تونستيد يه ميلي بهم بزنيد
ali.daroudi@gmail.com
با تشكر

saeed_sho
پنج شنبه 24 اسفند 1391, 17:42 عصر
شرمنده میدونم به بحث ربطی نداره اما این ریشارپر فقط برای سی شارپه؟ در vb.net هم میشه ازش استفاده کرد؟
اگه پست رو پاک کردین میشه لطفا جوابشو پیغام خصوصی کنید

gwbasic
پنج شنبه 24 اسفند 1391, 18:24 عصر
شرمنده میدونم به بحث ربطی نداره اما این ریشارپر فقط برای سی شارپه؟ در vb.net هم میشه ازش استفاده کرد؟
اگه پست رو پاک کردین میشه لطفا جوابشو پیغام خصوصی کنید
Resharper رو می تونید برای #C و VB.NET و ASP.NET و MVC و JavaScript‌ و XAML و ... استفاده کنید

linux
جمعه 25 اسفند 1391, 15:37 عصر
منظور همین مورد بود ، خوب ما فرم رو به ارث بردیم ، اما یه مشکلی هست ، الان فرض کنید رو فرم 1 یک Button قرار دادیم و فرم 2 رو از فرم 1 به ارث بردیم ، این Buttom در فرم 2 هم نمایش داده میشه ولی روش علامت قفل هست و اجازه نمیده Property های اون رو تغییر بدیم ، مثلا من میخوام فرم دومم تمام خصوصیات فرم اول رو به ارث ببره اما مثلا رنگ فلان Button رو عوض کنم ، باید چه کنم ؟

دوست عزیز شما یک چند وقتی کار کنید با این IDE بعد همه چیز دستتون میاد. این سوالها از شما که برنامه نویس حرفه‌ای هستی بعید هست.

linux
جمعه 25 اسفند 1391, 15:40 عصر
دوستان سلام
خسته نباشيد
كسي نمي دونه كه چطور ميشه توي ويژوال استوديو كامنت فارسي و انگليسي تايپ كرد.
توي محيط سي شارپ كه خيلي سخته همش بايد با كليدهاي مكان نما به چپ و راست حركت كرد
از توي ورد هم كپي مي كنم قبول نمي كنه
مثلا اين متن رو كه مي خواي بنويسي پدرت درمياد :
aيك ds دو ew سه
ممنون ميشم كمك كنيد
اگه تونستيد يه ميلي بهم بزنيد
ali.daroudi@gmail.com
با تشكر

من که نمی‌پسندم کسی عنوان برنامه نویس کامنت فارسی این مدلی بنویسد. بدلیل مشکلات چپ به راست این چیزها پیش میاد فعلا هم راه‌حلی نداره