PDA

View Full Version : گفتگو: کدام شیوه کدنویسی بهتر است؟



alonemm
سه شنبه 19 مرداد 1389, 14:24 عصر
باسلام:
این سوال شاید سوال خیلی از کاربران باشه که من انجا مطرح کردم.
کدام از روش های زیر ازنظر سرعت و سهولت کدنویسی بهتر؟
1- استفاده از کدهای sql
مثلا به طور کدنویس به پایگاه داده وصل شیم و تقاضا را اجرا کنیم مثلا یک رکورد رو بخونیم و توی یک گرید نشون بدیم.
2-استفاده از DataSours ها
مثلا کانفیگ کردن یک sqldatasourc و اجرای یک تقاضا و نمایش بروی یک گرید.
3- استفاده از کلاس LINQ to SQL
مثالا تعریف یک نوع کلاس LINQ و بعد استفاده از این کلاس در برنامه
4- استفاده از sp در داخل sqlserver
مثلا تعریف یک رویه ذخیره شده در داخل دیتابیس و ارسال پارامتر ها به آن.

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

mahallat
سه شنبه 19 مرداد 1389, 16:35 عصر
با سلام
خوب مشخص هست که استفاده از store procedure هم از لحاظ امنیت و هم از لحاظ سرعت استاندارد و تایید شده هست.

silverfox
جمعه 22 مرداد 1389, 01:55 صبح
خب هرکدوم مورد مصرف خودشون رو دارن دیگه!مثلا برای یه Select ساده که از SP استفاده نمی شه یا برای یه query طولانی و پیچیده از datasource استفاده نمی شه...فکر کنم search کنی مقاله های انگلیسی! و شایدم فارسی مفیدی در اون مورد پیدا کنی!

man of rebellious being
جمعه 22 مرداد 1389, 02:18 صبح
از نظر من بحث سرعت به خیلی عوامل بسنگی داره ملی در این مورد من ترجیح میدم ترکیبی با sp و linq کار کنم

salehbagheri
جمعه 22 مرداد 1389, 02:27 صبح
مواردی رو نام بردید که بعضاً هیچ ارتباطی به هم ندارند.

برای یک برنامه نویس حرفه ای و پروژه بزرگ، استفاده از گزینه 1 و 2 کاملاً منتفیه!

گزینه 3 هم بسته به جایگاهش ازش استفاده میشه و گزینه 4 هم کاملاً منطقیه! چرا که محل ذخیره Stored Procedure ها در Database هست.

حالا چرا استفاده از 1 و 2 منتفیه؟
چون در پروژه های بزرگ دفعات ارتباط گرفتن با Database بسیار زیاد هست. پس اگه قرار باشه برای هر صفحه چندصد خط کد ارتباط با Database بنویسیم نه تنها وقت خودمون رو ضایع کردیم بلکه سرعت و کیفیت و امنیت سایت رو پایین اوردیم. هزاران دلیل دیگه هم هست که استفاده از این روش رو نفی میکنه.
استفاده از DataSource هم تقریباً کاری شبیه به همین روش قبلی هست ولی به مراتب مزخرفتر !

amordad
جمعه 22 مرداد 1389, 06:56 صبح
با سلام
دوستان بنده برای سایت هایی که تبادل اطلاعات زیادی دارند sp استفاده میکنم و از linq فقط در پروژه های کوچک و یا جاهایی که بخواهم از یک جنریک لیست و امثال آن گزارش بگیرم بهره میبرم

fa_karoon
جمعه 22 مرداد 1389, 10:27 صبح
گزینه 3 هم بسته به جایگاهش ازش استفاده میشه
مي شه براي جايگاهش چند تا مثال بزنيد. لطفا!


استفاده از DataSource هم تقریباً کاری شبیه به همین روش قبلی هست ولی به مراتب مزخرفتر !
من در پروژه ام جدولي دارم كه انواع رو نگه مي داره يا جدولي دارم كه ليست مقاطع تحصيلي رو نگه مي داره كه قاعدتا هيچ عملياتي به جز Select بر روي اين جدول صورت نمي گيرد. حال در صفحه ي عضويت سايت مي خواهم اين ليست در يك DropDownList نمايش داده شود كه براي نمايش آن از DataSource مي كنم آيا اين كار هم اشتباه است؟ اگر اشتباه است لطفا بفرماييد بهتر از چه شيوه اي استفاده كنيم؟
پيشاپبش ممنون

salehbagheri
جمعه 22 مرداد 1389, 14:21 عصر
مي شه براي جايگاهش چند تا مثال بزنيد. لطفا!

هدف از ابداع فناوری LINQ، ارائه تسهيلات لازم برای پياده کنندگان جهت کار با داده در بانک های اطلاعاتی SQL و XML عنوان شده است. در واقع ، وجود یک حلقه گمشده بین داده رابطه ای ( بانک های اطلاعاتی ) ، اسناد XML با زبان های برنامه نویسی ، ضرورت ابداع فناوری فوق را توجيه کرده بود . پياده کنندگان مجبور بودند برای کار با هر يک از منابع داده ، از روش های مختلفی استفاده نمایند . LINQ را می توان به منزله حلقه ای گمشده بین دنیای داده و زبان های برنامه نویسی همه منظوره تصور کرد . با استفاده از LINQ امکان دستیابی به داده صرفنظر از نوع داده ، با روشی مشابه و یکسان فراهم می گردد .
پیاده کنندگان نرم افزار در زمان نوشتن برنامه های خود معمولا" از دو زبان مختلف جهت رسیدن به یک هدف مشترک استفاده می نمایند . ما برای نوشتن کدها از یک زبان برنامه نویسی نظیر VB.NET و يا #C و برای گفتگو با سیستم بانک اطلاعاتی از یک زبان دیگر نظیر SQL استفاده می کنيم .

ادامه مطلب رو اینجا (http://www.srco.ir/Articles/DocView.asp?ID=564) بخونید.


من در پروژه ام جدولي دارم كه انواع رو نگه مي داره يا جدولي دارم كه ليست مقاطع تحصيلي رو نگه مي داره كه قاعدتا هيچ عملياتي به جز Select بر روي اين جدول صورت نمي گيرد. حال در صفحه ي عضويت سايت مي خواهم اين ليست در يك DropDownList نمايش داده شود كه براي نمايش آن از DataSource مي كنم آيا اين كار هم اشتباه است؟ اگر اشتباه است لطفا بفرماييد بهتر از چه شيوه اي استفاده كنيم؟

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

حالا با این توضیحات، خودتون تصمیم بگیرید.

salehbagheri
جمعه 22 مرداد 1389, 14:26 عصر
در این لینک هم معایب و مزایای این کنترلها رو کاملاً شرح داده!
http://www.upsizing.co.uk/Art37_VSDataSources.aspx