PDA

View Full Version : کدنویسی استاندارد و بهینه در ASP.NET



eshpilen
سه شنبه 20 اردیبهشت 1390, 11:39 صبح
ظاهرا خیلی افراد با ASP.NET به شیوهء صحیح کار نمیکنن!
مثلا خودشون سیستم لاگین و Role و اینطور چیزها رو میخوان طراحی کنن درحالیکه اینها بصورت کامپوننت های آماده در ASP.NET وجود دارن.
همینطور درمورد جزییات ریزتر برنامه نویسی هم ممکنه ASP.NET خودش کنترل و ساختار خاصی داشته باشه، اما افراد مختلف ظاهرا از روی بی اطلاعی نسبت به وجود این کنترل ها یا ساختارها و روشها بازم خودشون چیزها رو به شکل دستی پیاده میکنن.
بنظر بنده، البته تا جاییکه تا الان که هنوزم درحال یادگیری دات نت هستم و خوندن رفرنس کلاسهاش رو هنوز تموم نکردم درک کردم، روش صحیح استفاده از ASP.NET اینه که تاجای ممکن از کنترل ها و ساختارهای خودش استفاده کنیم. ASP.NET یک فریمورک کامپوننت گراست و بیشتر نیازهای برنامه نویسی وب عادی درش درنظر گرفته شده و کنترل یا راهکار استانداردی دارن.
بنظر بنده یک بخش قابل توجه از مزیت ها و بهینگی کار برنامه نویسی و طراحی وب با ASP.NET همین کامپوننت ها و کنترل ها و روشها و ساختارهای استاندارد خودش هستن. چون اینها با هم انسجام و هماهنگی دارن و توسط برنامه نویسان و طراحان حرفه ای ایجاد شدن و تاحد زیادی کامل و امن و ضمنا انعطاف پذیر هستن. بعید میدونم حتی در مورد چیزهای نسبتا کوچک و ساده، پیاده سازیهای دستی بیشتر افراد در حد کمال و امنیت و انعطاف امکانات آمادهء ASP.NET برسن. و ظاهرا خیلی افراد نمیدونن چقدر نکات کاربردی و اصولی و مسائل امنیتی در خیلی موارد وجود دارن. مثلا یک سیستم ثبت نام و لاگین و Role غیره خودش چیز کمی نیست و درحد یک پروژهء جدی مجزا هست؛ بسیاری مسائل عملیاتی و امنیتی در این سیستمها وجود دارن که اگر رفرنس این سیستمها و کلاسها و کنترل هاشون رو بخونید متوجه میشید چقدر امکانات و تنظیمات مختلف دارن که بخشی از اونها هم به مسئلهء امنیت مربوط میشه. فکر نمیکنم بیشتری افرادی که اینطور سیستمها رو خودشون پیاده میکنن حتی نسبت به نصف نیازهای عملیاتی و امنیتی مربوطه هم اطلاع یا حضور ذهن داشته باشن، چه برسه به اینکه به خودشون زحمت بدن و همهء اونا رو بصورت اصولی و امن پیاده سازی و تست کنن!
وقتی شما از کنترل های آمادهء دات نت استفاده میکنید، همهء این کارها قبلا برای شما بصورت قابل اطمینانی انجام شدن.

پس چرا ظاهرا خیلی افراد از کنترل ها و روش ASP.NET استفاده نمیکنن و میخوان خیلی چیزها رو خودشون پیاده سازی کنن؟

مشکل احتمالا یادگیری ناقص و ضعیف دات نت هست.
بنده قبلا هم گفتم و خودم چند ماه هست دارم این کار رو میکنم که رفرنس کلاسهای دات نت رو بصورت کامل مطالعه کنم؛ بغیر از مقاله های جانبی دیگری که تاحالا مطالعه کردم. حتی یک کتاب دات نت هم همون ابتدا خوندم (کتاب آقای هاشیمان). هرچند خیلی افراد بهم گفتن که این کار (مطالعهء کامل رفرنس) لازم و چندان مفید و بهینه نیست، اما شخصا فکر میکنم نه تنها مفید بلکه لازمه.
دات نت رو باید کامل یاد گرفت و ساختار و استانداردهاش رو کامل و عمیق درک کرد و برنامه های دات نت رو به روش صحیح دات نت نوشت. وقتی ما ندونیم دات نت چه کلاسهایی و هر کلاس برای چه کارها و سناریوهایی با چه امکاناتی داره چطور میتونیم ساختار دات نت رو بصورت کامل و عمیق با اطمینان درک کنیم و طراحی و کدنویسی کاملا منطبق بر اون انجام بدیم؟ خب مسلما آدم تمام جزییات و اسم کلاسها و متدها و غیره رو یادش نمیمونه، اما وقتی قبلا مطالعه کرده باشی خیلی چیزهای مفید و لازم ته ذهن باقی میمونه و آدم فقط کافیه سرنخ به ذهنش بیاد و به رفرنس مراجعه کنه. ضمنا اون بینش کامل و عمیق فقط با مطالعهء کامل بدست میاد. یعنی بنظر بنده! یا در طول سالها با تجربه و مطالعه های پراکنده. خب آدم از اولش چند ماه وقت میذاره و کل رفرنس رو میخونه بهتره که! نه؟

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

در پایان، از استادان ASP.NET تقاضا میکنم اگر نقص یا اشتباهی در نظرات بنده هست یا روش و راهکار دیگری به نظرشون میرسه بیان کنن.

eshpilen
سه شنبه 20 اردیبهشت 1390, 12:14 عصر
بنده قبل از دات نت PHP رو یاد گرفتم و کار کردم. بنظر من اگر علاقهء خاص به کدنویسی دستی دارید زیاد جالب نیست با ASP.NET کار کنید چون کدنویسی دستی در ASP.NET برای چیزهایی که خودش داره از چند نظر مسخره و غیربهینه و بی معناست و مزایا و استاندارد این فریمورک رو خدشه دار میکنه.
با یک فریمورک کامپوننتی باید بصورت کامپوننتی کار کرد.
اگر شما از این مزایا استفادهء کامل نمیکنید پس چرا نرید دنبال PHP که بازمتن و مجانی هم هست و در وب هم کاملا فراوانه و سرورهاش هم ارزونتر هستن؟
PHP هم زبان خوبیه. میتونم بگم حتی درمورد بعضی پروژه ها از ASP.NET مناسبتره. PHP شیرینی خودش رو داره و یادگیری و استفادهء اون برای خودش قدرتی هست (البته این در کارهای عادی تجاری مشخص نمیشه احتمالا).
خب طبیعی هست که برنامه نویسان ASP.NET ممکنه از نظر کدنویسی یخورده احساس کمبود و ضعف و وابستگی بیش از حد بکنن و اینکه انگار خودشون هیچ کاری نمیکنن و هرکسی میتونه اون کار رو بکنه و مثلا به ویژوال استودیو وابسته هستن و از این حرفا، اما راهش این نیست که در ASP.NET بیایم و خودمون چیزها رو پیاده سازی کنیم. این کار چیز زیادی به ما نمیده و کارمون هم اصولی و باکیفیت از آب درنمیاد. درواقع علت وجود و مزایای ASP.NET رو با این کار خدشه دار کردیم فقط.
با هر ابزاری باید به شکل بهینه و استاندارد خودش کار کرد تا از حداکثر کارایی اون بهره برد.
با یه دریل برقی بصورت دستی اره کشی نمیکنن.
یا اینکه بیایم و از یک دستگاه چند کاره فقط برای یکی از اون کاربردها استفاده کنیم کار عاقلانه ای نیست.
ضمنا باید اضافه کنم که بنظر بنده فریمورک هایی مثل دات نت ابزار مناسبی برای یادگیری خود برنامه نویسی نیستن.
برای یادگیری اصولی و پایه ای و کامل برنامه نویسی باید از زبانهای سطح پایین تری استفاده کرد.
دات نت برای برنامه نویسی تجاری و RAD و این حرفهاست. یعنی برای انجام هرچه سریعتر و راحتتر اینطور کارها.
یه برنامه نویس حرفه ای میتونه از دات نت بصورت بهینه استفاده کنه و حالش رو ببره. میتونه با استفاده از دات نت وقت و انرژی خودش رو بجای انجام کارهایی که بلده روی مسائل مفیدتر مثل یادگیری زبانهای دیگر یا موضوعات و حیطه های دیگر برنامه نویسی یا تهیهء کتابخانه های ویژه یا برنامه ها و فعالیت های شخصی مورد علاقهء خودش صرف کنه. خصوصا بنظرم هیچکس دلش نمیخواد برای یک کار تجاری بیش از حد وقت و انرژی صرف کنه و تازه دست آخر هم نسبت به کیفیت و امنیت برنامش کمتر مطمئن باشه.
باید برنامه نویسی رو قبلا با زبانها و کارها و برنامهء یادگیری دیگری یاد گرفت و اینکه یادگیری برنامه نویسی رو با دات نت شروع کنیم و پایان بدیم معنا نداره و احتمالا به این شکل حتی در همون کارهای عادی و تجاری و یادگیری و استفادهء اصولی از فریمورک دات نت هم چندان موفق نخواهیم بود.

L_eskandary
سه شنبه 20 اردیبهشت 1390, 12:30 عصر
خوب شما که این همه دارین از مزایای یاد گرفتن اصولی دات نت صحبت می کنین لطفا راهکار هم ارائه بدین ...
یعنی نقطه صفر کجاست ؟ از کجا باید شروع کنیم و قرار هست به کجا برسیم ؟
در ضمن من با این کار هم که بشینیم و کل رفرنس کلاس های دات نت رو یاد بگیریم کاملا مخالفم . چون یه سری مباحث هستن که بحث های آکادمیک هستن و در عمل اصلا به درد نمی خورن . البته این رو هم باید بگم که داشتن اطلاعات بیشتر در یه زمینه تو یه جاهایی می تونه منجر به انتخاب بهتر و بهینه تر بشه ولی اینکه بشینیم و همه ی مطالب رو بخونیم یه خرده ...:متفکر:
خوب هر کی یه نظری داره ولی به نظر من باید براساس نیازهامون به دنبال یادگیری مباحث بریم . مثل اینکه من بشینم اسم همه کشورها ، پایتخت ها ، شهرها و روستاهای و ... دنیا رو حفظ کنم ولی خوب نهایتا شاید از بین اینا فقط اسم یه چندتا شهر و کشور به دردم بخوره ! شاید مقایسه درستی نباشه ولی خوب میشه یه گذری زد و نهایتا به جواب درستی هم رسید.
راستی یه سوال هم دارم :
خود مایکروسافت که امتحان های mcsd رو برگزار می کنه چقدر به این مباحث پرداخته فک می کنم اونها هم نمی گن که باید بشینی و همه رفرنس کلاس ها رو بخونی و بلد باشی!
اگه اشتباه می کنم دوست دارم در این زمینه منو راهنمایی کنین.
موفق باشین.

aserfg
سه شنبه 20 اردیبهشت 1390, 14:58 عصر
کدنویسی استاندارد و بهینه در ASP.NET



کد نویسی استاندارد چیزی جدا از استفاده از کنترلهای سمت سروری است . و این استاندارد سازی در mvc به خوبی صورت می گیره . و حتی کاربران سطح پایین که در وب فرمها دچار hard coding می شدند در mvc ملزم به رعایت چهارچوب خاصی می شن . (معمولا این افراد همان دسته ای هستند که asp.net رو به عدم داشتن کارایی مناسب به نسبت سایر زبانها مانند php متهم می کنند )

eshpilen
چهارشنبه 21 اردیبهشت 1390, 20:59 عصر
خوب شما که این همه دارین از مزایای یاد گرفتن اصولی دات نت صحبت می کنین لطفا راهکار هم ارائه بدین ...
یعنی نقطه صفر کجاست ؟ از کجا باید شروع کنیم و قرار هست به کجا برسیم ؟

راهکار خاصی مد نظرم نبود. تا اینجا خواستم چیزی رو که بنظرم نمود واضحی داره مشخص کنم و اونم اینکه خیلی افراد با دات نت به نحو ناشیانه ای کار میکنن. چون رفتار و گفتارشون این نتیجه رو به ذهن متبادر میکنه که هنوز ساختار دات نت رو درک نکردن و/یا نمیدونن چه امکاناتی داره و یا میدونن امکاناتی داره اما چون با جزییات و ساختار اون امکانات خاص آشنا نیستن نمیتونن ازش استفاده کنن و باهاش مانوس بشن و بنابراین فکر میکنن اگر خودشون یه چیزی رو درست کنن راحتتره.
خب یادگیری دات نت همچین کار راحتی هم نیست و اولش زمان و انرژی میبره تا آدم بفهمه ساختارش چطوره و چه امکاناتی داره. بعضیا ظاهرا تنبلیشون میاد و میخوان این راه رو دور بزنن و بنابراین بجای آشنایی کافی با ساختار و امکانات دات نت میخوان با سمبل کردن کدهای خودشون سر و ته برنامه ها رو هم بیارن!
درسته این کار ظاهرا شدنی هست و این برنامه ها هم کار خواهند کرد اما مسلم بدونید این کدهای دستی و سیستمهای شخصی از نظر امکانات و امنیت و کیفیت اکثرا خیلی ضعیف تر از امکانات و ساختار آمادهء دات نت هستن.
چرا بجای یادگیری اصولی و مقداری هزینه کردن در ابتدای کار که بعدش بتونیم برای مدتها و بارها ازش استفادهء بهینه و اصولی ببریم میخوایم زود شروع کنیم و برنامه بنویسیم و صرفا چیزها رو راه بندازیم؟ آیا این عاقلانه هست؟

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


چون یه سری مباحث هستن که بحث های آکادمیک هستن و در عمل اصلا به درد نمی خورن .
بطور مثال؟
بنده مباحث خاصی در رفرنس کلاسها ندیدم که آکادمیک باشه. اصلا در رفرنس کلاسها که مباحث آکادمیک نداره!! فقط کلاسها هستن و امکانات و روش کاربرد اونها رو و اکثرا همراه با مثال ذکر کرده.
منظورتون از بحث آکادمیک چیه؟


البته این رو هم باید بگم که داشتن اطلاعات بیشتر در یه زمینه تو یه جاهایی می تونه منجر به انتخاب بهتر و بهینه تر بشه ولی اینکه بشینیم و همه ی مطالب رو بخونیم یه خرده ...:متفکر:
البته خیلی از کلاسها هستن که خیلی سریع و سطحی میشه خوند و جسته و گریخته رد کرد (و بعضی ها رو هم کلا میشه Skip کرد)، چون کاربرد عملیشون خیلی کم هست یا به علل مختلف مهم نیستن و نیازی نیست دقیق و کامل خونده بشن. ولی بهرحال باید به هر مورد عملا رسید و آدم خودش تشخیص میده کدوم کلاس و مطلب چرا ارزش خوندن دقیق و کاملی رو نداره. اصلا خیلی از اینطور مطالب واقعا محتوای زیاد یا سنگینی ندارن که آدم بتونه روش وقت و انرژی قابل توجهی صرف کنه و خودبخود حذف میشن. خیلی جزییات و مطالب هم تکراری هستن که در موارد بعدی که بهشون برمیخورید ازش میگذرید. بطور مثال خیلی از پراپرتی ها و متدهای بخش بزرگی از کلاسها و کنترل ها کاملا مشترک هست.
کلا رفرنس اونقدرها هم وحشتناک و طولانی نیست و بخش زیادی از اون جزو مطالب اصلی و مهم بحساب نمیاد، اما بازم درکل کاملا حجیم هست و حداقل چند ماه باید هر روز حداقل چند ساعت مطالعه کرد تا تموم بشه. بهرحال آدم اگر قدم به قدم مطالعه نکنه حتی لابلای مطالب ظاهرا بی ربط و بی اهمیت هم گهگاه چیزهای مهم و مفیدی هست که ممکنه از زیر دست در بره. بعضی چیزها هم کاربرد عملی مستقیم ندارن، اما ساختار زیرین و طرز طراحی و پیاده سازی ها رو نشون میدن که میتونه از نظر دادن بینش و مهارت های دیگر برای آدم مفید باشه و به درک ساختار دات نت کمک کنن.



خوب هر کی یه نظری داره ولی به نظر من باید براساس نیازهامون به دنبال یادگیری مباحث بریم . مثل اینکه من بشینم اسم همه کشورها ، پایتخت ها ، شهرها و روستاهای و ... دنیا رو حفظ کنم ولی خوب نهایتا شاید از بین اینا فقط اسم یه چندتا شهر و کشور به دردم بخوره ! شاید مقایسه درستی نباشه ولی خوب میشه یه گذری زد و نهایتا به جواب درستی هم رسید.
یوقت فکر نکنید ما چیزی رو حفظ میکنیم. اصلا نمیشه حفظ کرد. من تا حالا تعداد زیادی رفرنس خوندم ولی جزییات بیشترشون رو یادم نیست. حجمشون خیلی زیاد هست. گذشته از اینکه حفظ کردن تمام جزییات اگر غیرممکن نباشه بسیار دشوار هست و وقت و انرژی خیلی زیادی میبره، اصلا هیچ ضرورتی در حفظ کردن بیشتر جزییات وجود نداره چون همیشه رفرنس در دسترس هست و به کمک امکانات سریع و گسترده و راحت و رایگان رایانه هم که سریع میشه به هر اطلاعاتی بازگشت، فقط کافیه جستجو کنیم و اگر چیز بیشتری درحد سرنخ برای جستجو هم بیاد داشته باشیم که کارمون خیلی سریعتر میشه. این سرنخ ها خیلی وقتا توی ذهن من بوده که کار جستجوم رو خیلی راحتتر و سریعتر کردن.
هدف از خوندن رفرنس این نیست که جزییات رو حفظ کنیم، بلکه دنبال کلیات و ساختار و بینش هستیم و اینکه از امکانات و کارهایی که میشه کرد و نمیشه کرد و روش استاندارد اونها چیزی در ذهن داشته باشیم تا به موقع لازم (که قدم به قدم ممکنه در برنامه نویسی لازم بشه) بتونیم براحتی و سرعت و با اطمینان بیشتری راه صحیح رو پیدا کنیم.
دانش و قدرت و مهارت اصلی مورد نیاز تنها این هست که بتونیم استنباط و استخراج کنیم و بکار ببندیم، نه اینکه مقدار عظیمی از جزییات رو حفظ کنیم. البته حافظه هم هرچی قویتر باشه خب خوبه ولی فکر نمیکم حافظهء هیچکس در اون حدی باشه که بتونه تمام جزییات رو برای طولانی مدت حفظ بکنه.
یه مهندس، یه برنامه نویس، همیشه میتونه و باید رفرنس زیر دستش باشه. رفرنس مثل بقیهء ابزارهای کار هست؛ مثل کامپایلر و ادیتور برنامه نویسی و غیره. هیچ فرق اساسی ای نداره از نظر بنده.
البته آدم به مرور حافظش تقویت میشه و چیزهای بیشتری رو راحتتر و با اطمینان بیشتر و برای مدت طولانی تری حفظ میکنه که خب این کمک میکنه ولی این یه جریان طبیعی هست و بصورت محدود و ما نمیایم کلی وقت و انرژی بذاریم و به خودمون فشار بیاریم که همه چیز رو حفظ کنیم.

eshpilen
چهارشنبه 21 اردیبهشت 1390, 21:03 عصر
کد نویسی استاندارد چیزی جدا از استفاده از کنترلهای سمت سروری است . و این استاندارد سازی در mvc به خوبی صورت می گیره . و حتی کاربران سطح پایین که در وب فرمها دچار hard coding می شدند در mvc ملزم به رعایت چهارچوب خاصی می شن . (معمولا این افراد همان دسته ای هستند که asp.net رو به عدم داشتن کارایی مناسب به نسبت سایر زبانها مانند php متهم می کنند )
بله درسته.
اما در اینجا بحثی درمورد این سطوح و مباحث دیگه نداریم.
فعلا درمورد همون پایه و ساده ترین چیزها که خیلی افراد ظاهرا درش مشکل دارن خواستیم بحث کنیم.
بهرحال طرف اول باید با همون اصول پایه و بدون اجزای خارجی و سطح بالاتر هم بقدر کافی کامل و عمیق آشنا شده باشه و بتونه تا یه حداقل مناسبی ازشون استفادهء بهینه بکنه و نشون بده که فهمیده جریان چیه و باید چیکار بکنه، وگرنه بنده خودم هم خیلی وقتا بخاطر عجله یا تنبلی یا اینکه اصولا صرف نمیکنه (مثلا یه برنامهء کوچیک و شخصی هست و معمولا برای تست و نمونهء اولیه و این حرفا) بعضی اصول رو رعایت نمیکنم ولی مهم اینه که میدونم چه اصول مهم و عمده ای وجود دارن و اگر بخوام میتونم دنبالشون برم و بکار بگیرم، حتی اگر نیاز به کمی تجربه و یادگیری بیشتر داشته باشن، نه اینکه اصلا ندونم و نتونم.
ضمنا ضرورتی وجود نداره و همه جا هم نمیشه یا صرف نمیکنه از یک روش و فریمورک خاص استفاده کنیم.

L_eskandary
چهارشنبه 21 اردیبهشت 1390, 23:19 عصر
با سلام
امیدوارم تو این تاپیک بتونیم به یه نتیجه درست و منطقی برسیم و اما:


هدف از خوندن رفرنس این نیست که جزییات رو حفظ کنیم

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

eshpilen
پنج شنبه 22 اردیبهشت 1390, 00:20 صبح
شما تاحالا یک رفرنس رسمی رو کامل مطالعه کردید که از نتیجش مطمئن باشید؟
منکه هیچوقت از این کار پشیمون نشدم. کمترین چیزی که به آدم میده اعتماد بنفس و توان تبادل نظر حداقلی در تقریبا همهء جنبه های کلی ای که اون زبان، فریمورک یا هر چیز دیگری که اسمش هست پوشش میده هست. اولین بار هم دقیقا بخاطر همین رفرنس رو خوندم چون آدم تا یه بار امتحان نکرده باشه نمیتونه از نتیجش مطمئن باشه. ضمنا از طرف دیگه قبلا کتابهایی خونده بودم اما بعدا متوجه شده بودم که اکثرشون یا ناقص بودن و بعضی موارد رو پوشش نمیدادن و یا کلا کم کیفیت بودن و اشتباهاتی داشتن.
تازه بنده یکی دوتا رفرنس نخوندم، فقط رفرنس چهار پنج زبان برنامه نویسی بوده به اضافهء چند رفرنس دیگه در زمینه های دیگه و یکسری منابع و مقاله های مختلف دیگه. واسه همین تعجب میکنم چطور آدم وقتی یکی دو زبان بیشتر یاد نمیگیره و سالها باهاش کار میکنه و کتابها و منابع مختلف زیادی رو در طول این مدت مطالعه میکنه یک بار رفرنس رسمیش رو نمیخونه. چون بنظرم این کار به نسبت خیلی راحته و به امتحان کردنش هم می ارزه. رفرنس رسمی منبع اصلی و اولیه و کاملترین و دقیق ترین منبع به شمار میاد اغلب. این دلایل منطقی واضحی هم داره. بهرحال رفرنس رسمی رو خود طراحان اون زبان و فریمورک نوشتن و این رفرنس رسمی هست که لازمه کامل و دقیق تمام امکانات و استاندارد و ساختار اون زبان و فریمورک رو پوشش بده. معمولا از خود اون افراد هم مسلط تر و آگاه تر وجود نداره. البته شاید این کمی اغراق باشه، ولی بهرحال میشه اطمینان زیادی داشت که پشت چنین منابعی افراد کاملا آگاه و مسلط و مسئول هستن که مسلما اغلب در سطح کاملا بالایی قرار دارن. زبان طراحی کردن و مفسر و Parser و کامپایلر ساختن که کار هرکسی نیست، هست؟
البته نمیدونم شایدم من دیگه خیلی خوره ام! خب چرا اینهمه زبان رو یاد گرفتم. چون میخواستم همه چیز رو بدونم و بتونم. از روی ادعا و خودنمایی نبود، از روی علاقه به دونستن و تونستن بود. بخاطر همین همیشه اینم برام عقده میشد اگر رفرنس های رسمی رو نمیخوندم و نمیفهمیدم، چون یجورایی بیشترشون خیلی فنی و خشک و دقیق هستن و خبره ترین آدمهایی که جزو بهترین ها هستن و میتونن مدعی بالاترین سطوح باشن اونا رو نوشتن. شاید میخواستم خودم رو محک بزنم و قوی کنم تا بتونم توان خودم رو به اونا نزدیک ببینم. بسیاری از رفرنس های رسمی منابع خاصی هستن. بعضی از اونا حکم Specification رسمی و علمی اون زبان یا ابزار رو هم دارن و خب بنابراین طبق اصول دقیق و علمی ای نوشته میشن که بخاطر همین اکثرا خیلی خشک و دشوار بنظر میان. یعنی این مستندات از دقیق ترین و علمی ترین و کاملترین منابع علم نرم افزار و برنامه نویسی هستن. البته نه همشون همهء این خصوصیات رو با هم داشته باشن، ولی بهرحال داستان از اینطور چیزا شروع میشه و کمترین چیزی که گیر آدم میاد اینه که تونسته یه داکیومنت کامل و دقیق رو از افراد اصلی که طراح و سازندهء اون زبان بودن مطالعه بکنه. حالا در بعضی موارد هم شاید دقیقا همون افراد نباشن، اما بهرحال اغلب بازم آدمهای مسلط و نزدیک و صاحب صلاحیتی هستن.

iman_ad
پنج شنبه 22 اردیبهشت 1390, 01:25 صبح
این صرفا نظر شخصی شماست
این کنترل ها کاملا برای نیازهای عمومی نوشته شدند نه برای پروژه های اینترپایز
به نظر بنده این کنترل ها برای جذب بازار .net نوشته شده تا نشون بده چقدر سریع می شه یک پروژه ایجاد کرد
من اصلا دوست ندارم دستم بسته باشه و خودم تصمیم می گیرم کی و کجا از چی استفاده کنم
در مورد پروایدر بیس بودن .net حرف شما کاملا صحیح و این بخاطر باز گذاشتن دست برنامه نویس
کلا استاندارد نویسی ربطی به .net یا کنترل هاش نداره بحث دیگه ای داره

eshpilen
پنج شنبه 22 اردیبهشت 1390, 09:30 صبح
این کنترل ها کاملا برای نیازهای عمومی نوشته شدند نه برای پروژه های اینترپایزخب کاربرد اصلی دات نت هم بنظر بنده همین نیازهای عمومی هست.
برای اینترپرایز پلتفرمهای دیگه به علتهای مختلف منجمله رایگان بودن، بازمتن بودن، امنیت و پایداری بالاتر سرورها و غیره میتونن ترجیح داده بشن.
برای اینترپرایز اتفاقا اغلب برنامه نویسان بهتر و بیشتر و منابع دیگر منجمله از جهت مالی و زمانی بیشتری در اختیار هست و نیاز به کدنویسی سفارشی خیلی بیشتری وجود داره، بطوریکه گاهی نرم افزارها رو خودشون مینویسن و حتی فریمورک خودشون رو ایجاد میکنن و گهگاه حتی کامپایلر و مفسرها رو هم دستکاری میکنن (دقیقا مثل کاری که فیسبوک کرده). در این محیطها کنترل هرچه بیشتر و هزینهء مجوزها (بخاطر وسعت کار / تعداد زیاد سرورها) و در دسترس بودن کد منبع و اختیارات کامل نسبت به اون خیلی برجسته تر میشه. من واقعا فکر نمیکنم دات نت بیشتر برای اینترپرایز باشه. بنظر من در اینترپرایز رقبای خیلی قابل توجهی برای دات نت وجود دارن. بنظر من عمدهء کاربرد دات نت در پروژه های کوچک تا متوسط و کمی بزرگتر هست عملا. البته ساختارش از نظر فنی اجازهء کاربرد بیشتر رو هم میده، ولی همونطور که گفتم بعد فنی تنها بعد مهم در عمل نیست.


به نظر بنده این کنترل ها برای جذب بازار .net نوشته شده تا نشون بده چقدر سریع می شه یک پروژه ایجاد کرداگر به ساختار دات نت خوب دقت کنید درواقع خواستن تاحد ممکن شبیه بخش برنامه نویسی دسکتاپ باشه. خیلی چیزها کاملا مشخص هست که شبیه و نسخه برداری (یا شبیه سازی) از نسخهء دسکتاپ هستن. مدل رویدادگرا، و کنترل ها که دقیقا هم از نظر اسم و هم از نظر شکل و روش استفاده شباهت زیادی به کنترل های GUI و بقیهء اجزای برنامه نویسی دسکتاپ دارن.
ساختار دات نت اینطوریه. کامپوننتی هست و اصولا بر این اساس طراحی شده. حالا شما میتونید هر چیزی رو خودتون به روش دیگری بنویسید یا کنترل ها رو خودتون درست کنید، اما این کار چرا باید انجام بشه و چه مزیتی داره؟


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

aspismylove
پنج شنبه 22 اردیبهشت 1390, 09:37 صبح
اگر شما از این مزایا استفادهء کامل نمیکنید پس چرا نرید دنبال PHP که بازمتن و مجانی هم هست و در وب هم کاملا فراوانه و سرورهاش هم ارزونتر هستن؟

شما PHP نویس ها و... دنبال چیزهای مفت و مجانی هستید .... (بخدا قسم قصد توهین ندارم به کسی هم بر نخوره :افسرده:)

ولی شما یا همه PHP کاران عزیز و محترم فقط بلدید بگید ( بازمتن و مجانی ، بازمتن و مجانی ) .

باز هم پوزش

eshpilen
پنج شنبه 22 اردیبهشت 1390, 12:31 عصر
خب چه اشکالی داره؟ چیز مجانی که بد نیست، خیلی هم خوبه.
دوما فقط مجانی بودن نیست. بازمتن/آزاد بودن هم مزیت بسیار بزرگی هست.
این دوتا عملا مزایای کوچکی نیستن و در واقعیت خیلی جاها واقعا مهم و موثر هستن.
به همین خاطر این انتخاب خیلی افراد و شرکتهای حرفه ای و بزرگ هم بوده و هست. یعنی استفاده از نرم افزارهای بازمتن، که این نشون میده این نرم افزارها بحد کافی قابل استفاده و اتکا هستن و مزایا و نتایجی که بازمتن و رایگان بودن اونا ببار میاره در عمل اهمیت داره.

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