PDA

View Full Version : گفتگو: به نظر شما چرا ما باید از کلاس ها و کامپوونت های داخلی دات نت استفاده کنیم ؟



aminghaderi
یک شنبه 15 آبان 1390, 22:47 عصر
سلام به همه دوستان و اساتید بزرگوار Asp.NET .
اصولا من از استفاده از کاموننت های آماده (حتی مربوط به مالکروسافت) خوشم نمی یاد و اعتقاد دارم کامپوننت و کلاسهای که خودم طراحی کردم سریعتر عمل می کنه و همچنین اینکه من اونها رو با توجه به نیاز خودم پیاده سازی می کنم و از پیچ و خمش و نقاط ضعف و قدرش با خبر هستم و از همه مهمتر که غیر از خودم کسی از الگریتم و کارکرد اونها خبر نداره و از لحاظ امنیتی کمی خیالم راحت تر هست.
اما....
اما چند روز پیش زمانیکه داشتم با استادم که ایشون دکترای نرم افزار دارند بحث در محدوده علم نرم افزار داشتیم متوجه شدم که ایشون به شدت اعتقاد داره که باید از کد های ریلیز شده که توسط متخصصین نوشته شده استفاده کرد .(کلاس ها و توابع دات نت و که حالا من بستش می دم و کامپوننت ها رو هم قاطی این بحث می یارم.) .
دلیل ایشون این هست که چون کسانیکه این کلاس ها رو نوشتند خود اونها از برجسته ترین افراد در ضمینه نرم افزار بودند ، پس کد اونها به مراتب بهینه تر از کدی ما خواهد بود.
و اینکه الگریتم کار اونها شاید حاصل تفکر یه تعداد متخصص باشه و همچنین شاید (که البته به نظر من 100%) از زیر فیلتر های کیفیتی ماکروسافت رد شده و بعد انتشار داده شده.
و....

و حالا ... امروز که برنامه نویسی اساتید برجسته خارجی (اسمشون رو نمی دونم) رو که بروی اسلاید شو می دیدم که بحث اون در محدوده پردازش تصویر بود و اونها اومده بودند مباحث پایه ریاضی رو با تفکر برنامه نویسی میکس کرده بودند و بهترین نتیجه رو گرفته بودند ، واقعا برای من تعجب انگیز بود ؟!
مثلا مسئله ای که من الگریتمش رو پیشنهاد دادم و استادم اون رو به دلیل سنگینی پردازش نقض کرد و به جای اون الگریتمی رو بهم نشان داد که به 0.1 زمان برنامه من نتیجه رو اعلام می کرد و اون هم کوتاهتر و هم سرعتش بیشتر بود ، در حالی که فهمش خیلی سنگین بود و برای فهمیدن اون باید مبانی آمار و احتمالات مهندسی رو یاد می داشتی که بماند باید مشتق گیری و شاید انتگرال گیریت هم خوب بود تا می تونستی ازش سر در بیاری ؟!:کف:

حال شما نظرتون رو راجبه این معقوله بفرمایید ؟

با تشکر فراوان ؛
امین قادری

mmnoody2006
دوشنبه 16 آبان 1390, 00:11 صبح
دوست عزیز خیلی ببخشید خودت متوجه شدی چی گفتی :گیج: از خودت تعریف کردی مالکروسافت رو بد کردی
از مایکروسافت تعریف کردی خودتو بد ؟ :اشتباه:

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



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

مطمئن باش اینطور نیست


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

دوست عزیز در مبحث پردازش گرافیک همیشه بحث ریاضی داغه چیز تازه ای نیست


حال شما نظرتون رو راجبه این معقوله بفرمایید ؟

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

با تشکر

mehran_sh_t
دوشنبه 16 آبان 1390, 00:51 صبح
سلام
من هم متوجه منظور شما نشدم، از موضوع تاپیک این برداشت میشه که شما مخالفید، ولی از متن هر دو حالت رو میشه برداشت کرد!

بیشتر کامپوننت ها (تا جایی که من می دونم) برای راحتی کار برنامه نویس هستش، و اگر شما کامپوننتی با کار یکسان برسید، در بهترین حالت به همون کامپوننت اولیه می رسید.

** البته این بحث جدا از سفارشی سازی کامپوننت هستش! در مورد دو کامپوننت یکسان، من ترجیح می دم از نوع اماده استفاده کنم.


اعتقاد دارم کامپوننت و کلاسهای که خودم طراحی کردم سریعتر عمل می کنه

میشه یک نوع کامپوننتی رو که پیاده کردید مثال بزنید و قابلیت ها و برتری هاش رو بگید؟

programer-ir
دوشنبه 16 آبان 1390, 14:02 عصر
شما با این طرز تفکر بهتر به open source بپیوندید..... وقتی خواستی از محصولات ماکروسافت استفاده کنی باید خودتو اماده کنی که همه چیز رو آماده دریافت کنی؟؟؟ میگن تعداد کلاس های .net حدود 3400 .

aminghaderi
دوشنبه 16 آبان 1390, 16:58 عصر
سلام خدمت تمام دوستان و عرض تبریک به مناسبت عید قربان.
ببنید این که در صبحت های من ابهام هست ، خوب پرواضح هست ، اگر غیر این بود که تاپیک نمی زدم؟! (گفتم گفتگو کنیم تا تا این ابهام حل بشه...).
و اما در باره بحث ، ببینید دوستان دلیل های شخصی نمی خوام ، دلیل های علمی و کاملا منطقی می خوام.
مثلا اینکه :

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

سعی کن بهینه ترین روش رو انتخاب کنی
چطوری می شه تشخیص داد بهینه ترین چی هست؟؟؟؟ با(منطق / دلیل / مدرک) ؟

آیا در وبسایت داتنت صفحه ای مثلا برای کاموننت گرید ویو گذاشته شده که توضیحی بدهد در باره ساختار اون و اینکه چه کسانی اون رو طراحی و پیاده سازی کردند و....کلا بیاد بررسی کارشناسی کنه؟؟؟
من دنبال این جور دلایل هستم .

دوست عزیز در مبحث پردازش گرافیک همیشه بحث ریاضی داغه چیز تازه ای نیست
آخه فقط بحث به گرافیک بر نمی گرده ، بنده شخصا ارائه الگریتم رو از دید یه استاد ریاضی که ایشون برنامه نویس هم بودند ، دیدم ، تفاوت ها خیلی هست؟!
کاری که ما با 5 تا حلقه for انجام می دهیم اونها از قوائد ریاضی استفاده می کنند و حلقه ها رو دور می زنند و بعد می بینیم کلا با یه حلقه کار رو انجام دادند.
یا همین بحث شیرین توابع بازگشتیی که شخصا ازشون خوشم نمی یاد ، حالا چنان ازش استفاده می کنند که بعد شخصا می مونم ...!


میشه یک نوع کامپوننتی رو که پیاده کردید مثال بزنید و قابلیت ها و برتری هاش رو بگید؟
آره عزیزم چرا نشه..
مثلا یک گریدویو دارم که کاملا اجکسی هست ، یعنی حتی ساختارش هم به صورت اسنکرون تولید می شه و اینکه بسیار قابلیت شخصی سازیش بالا هست .(به نظر خودم.) و دیگه چی بگم ؟...
دومی همین معقوله اجکس هست که یه کلاسی دارم که این کار رو مثل باقلوا انجام می ده و روش هم از روشی هست که اینجا (http://barnamenevis.org/showthread.php?222404-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%AC%D8%A7%D9%85%D8%B9-%DA%A9%D8%A7%D8%B1-%D8%A8%D8%A7-%D9%87%D8%B3%D8%AA%D9%87-Ajax) توضیح دادم.
معقوله های زیادی هست و حتی یکی از جدیدترین ها که هنوز هم دارم روش کار می کنم که کتابخونه بر بستر دات نت هست ، حالا حقیقتا بیشتر از این نمی تونم بازش کنم ، ولی می خوام متوجه بشید که منظورم از ساخت یه کاموننت یا یه کلاس یه کلاس ساده و پیش پا افتاده نیست ، کمی سطحش بالا تر است.


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

mehran_sh_t
دوشنبه 16 آبان 1390, 17:52 عصر
ی خوام متوجه بشید که منظورم از ساخت یه کاموننت یا یه کلاس یه کلاس ساده و پیش پا افتاده نیست ، کمی سطحش بالا تر است.

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


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

شما در این کامپوننت گریدویوتون، از خود گریدویو هم استفاده کردید(و اون رو توسعه دادید)؟ یا یک کامپوننت رو از اول پیاده سازی کردید؟

mmnoody2006
دوشنبه 16 آبان 1390, 18:53 عصر
برادر عید شما و بقیه دوستان خوب برنامه نویس هم مبارک

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

aminghaderi
دوشنبه 16 آبان 1390, 19:17 عصر
شما در این کامپوننت گریدویوتون، از خود گریدویو هم استفاده کردید(و اون رو توسعه دادید)؟ یا یک کامپوننت رو از اول پیاده سازی کردید؟
نه ، یه ساختار کاملا منحصر به فرد داره و کاملا مستقل از سکو عمل می کنه ، یعنی اگر من PHP کار بودم و می تونستم کد های سمت سرور این گریدویو رو به PHP برگردونم راحت می تونستم ادعا کنم که این قطعه در هر دو محیط اجرا می شه.


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


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

سعی کن بهینه ترین روش رو انتخاب کنی
چطوری می شه تشخیص داد بهینه ترین چی هست؟؟؟؟ با(منطق / دلیل / مدرک) ؟

آیا در وبسایت داتنت صفحه ای مثلا برای کاموننت گرید ویو گذاشته شده که توضیحی بدهد در باره ساختار اون و اینکه چه کسانی اون رو طراحی و پیاده سازی کردند و....کلا بیاد بررسی کارشناسی کنه؟؟؟

mehran_sh_t
سه شنبه 17 آبان 1390, 00:08 صبح
خوب آقای قادری.
با توجه به جواب شما، کار شما تحسین برانگیزه، شخصا از کارتون خوشم اومد.

جواب یا توجیحی که بر این اساس برای سوال شما (موضوع تاپیک) دارم، می تونه این باشه که مایکروسافت برای راحتی برنامه نویسان، کامپوننت هایی رو در اختیار اونها قرار می ده، که ممکنه کامل نباشند و کارایی شون در حد عالی نباشه (در مقایسه با کامپوننت طراحی شده توسط شما گفتم)

در مورد بهینه بودن کامپوننت ها، بنده نمی تونم نظری بدم، امیدوارم دوستان با دلایل معتبر در این بحث شرکت کنند

موفق باشید

Z_Bagheri
سه شنبه 17 آبان 1390, 09:58 صبح
من با توجه به تجربه ی خودم میگم یکی از کامپوننت های مایکروسافت که اصلا خوب نیست چارت های مایکروسافته، فکر می کنم این رو همه می دونند که این چارت ها ضعیفه، و بنا به نیاز و زمان و بودجه معمولا برنامه نویس ها یا محصولات شرکت های دیگر رو می خرند یا سعی می کنند یوزر کنترل بنویسند و اونچه رو که می خواند پیاده سازی کنند که خیلی قدرتمند تر و انعطاف پذیر ترند، اما در مورد خیلی از کامپوننت ها و ابزار های دیگه جای بحث هست ، فکر می کنم بیس اون چیزی که ارائه شده توسط مایکروسافت خوبه وخوب هم عمل می کنه البته این به نیاز کاربر بستگی داره،و اما بعضی هاشون ایراداتی دارند و باید رفع بشند، مثلا تکست باکسی که برای پسورد استفاده می شه ، با هر پست بک خالی میشه ، خب این کاربر رو اذیت می کنه،ما میایم یک تکست باکس custom می نویسیم که پسورد رو با پست بک حذف نکنه.

mmnoody2006
سه شنبه 17 آبان 1390, 14:45 عصر
من با توجه به تجربه ی خودم میگم یکی از کامپوننت های مایکروسافت که اصلا خوب نیست چارت های مایکروسافته، فکر می کنم این رو همه می دونند که این چارت ها ضعیفه،

صد در صد تایید می شه چون به شدت ضعیت طراحی شدن برعکس زرق و برقی که دارن

mehran_sh_t
چهارشنبه 18 آبان 1390, 19:21 عصر
تکست باکسی که برای پسورد استفاده می شه ، با هر پست بک خالی میشه ، خب این کاربر رو اذیت می کنه،ما میایم یک تکست باکس custom می نویسیم که پسورد رو با پست بک حذف نکنه.

به نظرم دلیل این کار از لحاظ امنیتی هستش، یعنی فرض می شه که کاربر بعد از وارد کردن پسورد، دیگه کنترل لاگین رو نمی بینه، و در صورتی می بینه که اشتباه وارد کرده باشه.

** البته این خاصیتی که شما گفتید، محدود به کنترل مایکروسافت نمی شه، شما در هر جایی که پسورد دارید، همچین خاصیتی هستش، همین سایت مثلا!

dorparasti
چهارشنبه 18 آبان 1390, 23:45 عصر
در اصل حرفتون با شما موافقم .
شرکت های زیادی در دنیا هستند که کامپوننت هایی رو برای دات نت یا هر ابزار توسعه دیگری طراحی می کنن و می فروشن و یا به رایگان در اختیار توسعه دهنده ها قرار می دن .
ولی پیش نیاز اون انجام کار توسط یک گروه ( نه شخص ) خبره در زمینه های مرتبط هستش تا اونچه ساخته میشه حرفه ای ، پایدار و امن باشه . بخصوص برای کامپوننت های سطح بالا که عملیات های ویژه ای رو انجام میدن .

Z_Bagheri
پنج شنبه 19 آبان 1390, 10:11 صبح
شرکت های زیادی در دنیا هستند که کامپوننت هایی رو برای دات نت یا هر ابزار توسعه دیگری طراحی می کنن و می فروشن و یا به رایگان در اختیار توسعه دهنده ها قرار می دن .
.
نمونه اش کریستال ریپورت، قبلا باید جدا خریداری می شد و نصب می شد و این به دلیل عدم قدرتمند عمل کردن ریپورت های مایکروسافت است، خب معلومه که وقتی توجه یک تولید کننده معطوف به تولید یک محصول خاص مثلا همین گزارش ساز باشه کیفیت بالا تر میره، حالا اگر یک نمونه چارت را یک شرکت برای دات نت پیاده سازی کنند ابتدا ممکن است برای استفاده از آن نیاز باشد آنرا خرید ولی بعد وقتی همه از آن استفاده کنند خود مایکروسافت آن محصول را به یک کامپوننت تبدیل میکند برای محصولش.