PDA

View Full Version : گفتگو: بهترین روش برای لرتباط با دیتابیس



amir4015
شنبه 24 فروردین 1392, 01:12 صبح
با سلام
بنظر شما بهترین بانک برای سایت چیه
از نظر سرعت برای زمانی که حجم بانک بالاست و تعداد کاربرا زیاد است بهتر دستورا به صورت کوری داخل sql بنویسیم یا داخل برنامه بنویسیم.
اطلاع دارید سایتی مثل سازمان سنج که در یک روز چند ملیون مراجعه کننده داره از چه روشی استفاده کردن

tc1000
شنبه 24 فروردین 1392, 01:44 صبح
با سلام
دیتا بیس های زیادی وجود دارند
mySQL , PostgerSQL, Oracel,...
بستگی داره تو چه محیطی برنامه نویسی کنید
SQL خوبه
از اون بهتر اوراکل هستش
خوب اگر در دیتا بیس نوشته بشه بهتر (بستگی به سرعت پردازش اطلاعات در سرور داره)
خوب سازمان سنجشی که می بینید به نظر بنده چند مسئله دارد
1- سرور های قدرتمند.
2- تقسیم کانکشن ها در سرور ها (Load Balance).
3- جدا بودن وب سرورها از دیتا سرورها.
3- تکنیک های برنامه نویسی جهت کوئری گرفتن از دیتا بیس ها.
4- کش کردن اطلاعات تکراری جهت استفاده برای یوزر ها.

اگر اینها رو رعایت کنید مطمنا شما هم وب سایتی سریع و بهینه خواهید داشت.
با تشکر

sh.eng
شنبه 24 فروردین 1392, 01:52 صبح
سلام. دوستمان کاملا درست گفتن... سرعت فقط به کد نویسی شما بستگی نداره. ولی برای ارتباط با بانک من پیشنهاد میکنم از ترکیب Entity Framework و SP استفاده کنید.
موفق باشید.

amir4015
شنبه 24 فروردین 1392, 01:53 صبح
3- تکنیک های برنامه نویسی جهت کوئری گرفتن از دیتا بیس ها.

می شه نام ببرید

tc1000
شنبه 24 فروردین 1392, 02:05 صبح
خود
هر چقدر برنامه مه های که برای برنامه نویسی update می شن ، همون طور هم تکینکها و کلاس هایی برای آسانتر بدست آمدن و پردازش اطلاعات آسان تر می شود.
به طور مثال شما کلاس هایی در Visual Studio 2012 می بینید که در Visual Studio 2008 نیست
خوب خود بنده هم ممکنه از این کلاس ها بی خبر باشم، ولی با مقداری خواندا مقالات، تحقیق در مورد این کلاسها مطمئا خواهید توانست دستیابی به اطلاعات از مثلا یه بانک اطلاعاتی را خیلی سرعتر کنید
در ضمن فراموش نکنید سایتی مانند سازمان سنجشی که هر روز به تعداد خوانندگان این سایت و کسانی که با این ساید سرو کار دارند بیشتر می شوند ، همان طور در پشت پرده تیم تحقیق و توسعه (R&D) دست از فعالیت برنداشته و همواره در تلاش برای بهتر کردن و سریعتر بودن دستیابی به اطلاعات می باشد.

به این شکل نیست که برنامه ای نوشته شود و بگویند خود در حال حاضر کار میکند و ولش کنند.

به طو رمثال یادمه در چند سال پیش سایت مهر امام رضا که در خصوص ثبت نام وام ازدواج فعالیت داشت.
حدودا 500 یا 800 نفر آنلاین ثبت نام انجام می دادن این سایت دیگه بالا نمی آمد. و خیلی بد باز می شد و بعضی مواقع Error از نرم افزار می داد که نمی تواند به دیتا بیس وصل شود (Request Time Out)

با تشکر

amir4015
شنبه 24 فروردین 1392, 02:13 صبح
شما چه روشی رو پیشنهاد می دید که مشکل سایت مهر امام رضا(ع) پیش نیاد

tc1000
شنبه 24 فروردین 1392, 02:24 صبح
پیشنهاد میدم دوره های زیر رو آموزش ببینید و یا حداقل کتاب آون رو مطالعه کنید یا مقالاتی در مورد این مطالب بخونید.
1- ADO.NET
2-Entity Framework

این 2 و به نظر بنده ADO.NET به شما جهت ارتباطات دیتا بیس بسیار کمک شایانی خواهد کرد
با تشکر

saeed31641
شنبه 24 فروردین 1392, 08:47 صبح
دیگه الان کسی که میخاد رنامه نویسی بکنه از ado.net استفاده نمیکنه چون یه اشتباهم محضه .چون Entity Framework که یه orm هست خیلی کمک میکنه مخصوصا مشکلاتی که در پست بالا ذکر شده

tc1000
شنبه 24 فروردین 1392, 10:23 صبح
دیگه الان کسی که میخاد رنامه نویسی بکنه از ado.net استفاده نمیکنه چون یه اشتباهم محضه .چون Entity Framework که یه orm هست خیلی کمک میکنه مخصوصا مشکلاتی که در پست بالا ذکر شده
با سلام
حرف شما درست هستش ولی به هر حال ADO.NET نمی شه کنار گذاشت

ahmad156
شنبه 24 فروردین 1392, 10:38 صبح
مسلما استفاده از ORM ها با در نظر گرفتن 5 مورد زیر بهتر است.(منبع dotnettips.info)
الف) یک ابزار ORM زمان تحویل پروژه را کاهش می‌دهد

اولین و مهم‌ترین دلیلی که بر اساس آن در یک پروژه، استفاده از ORM حائز اهمیت می‌شود، بحث بالا بردن سرعت برنامه نویسی و کاهش زمان تحویل پروژه به مشتری است. این کاهش زمان بسته به نوع پروژه بین 20 تا 50 درصد می‌تواند خود را بروز دهد.
بدیهی است ابزارهای ORM کار شگفت انگیزی را قرار نیست انجام دهند و شما می‌توانید تمام آن عملیات ‌را دستی هم به پایان رسانید؛ اما اجازه دهید یک مثال کوتاه را با هم مرور کنیم.
برای پیاده سازی یک برنامه متداول با حدود 15 تا 20 جدول، حدودا به 30 شیء برای مدل سازی سیستم نیاز خواهد بود و برنامه نویسی این مجموعه بین 5000 تا 10000 سطر کد را به خود اختصاص خواهد داد. بدیهی است برنامه نویسی و آزمایش این سیستم چندین هفته یا ماه به طول خواهد انجامید.
اما با استفاده از یک ORM ، عمده وقت شما به طراحی سیستم و ایجاد ارتباطات بین اشیاء و دیتابیس در طی یک تا دو روز صرف خواهد شد. ایجاد کد بر اساس این مجموعه و با کمک ابزارهای ORM ، آنی است و با چند کلیک صورت می‌گیرد.


ب) یک ابزار ORM کدی با طراحی بهتر را تولید می‌کند

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

ج) نیازی نیست تا حتما یک متخصص دات نت فریم ورک باشید تا از یک ORM استفاده کنید

قسمت دسترسی به داده‌ها یکی از اجزای کلیدی کارآیی برنامه شما است. اگر طراحی و پیاده سازی آن ضعیف باشد، کل برنامه را زیر سؤال خواهد برد. برای طراحی و پیاده سازی دستی این قسمت از کار باید به قسمت‌های بسیاری از مجموعه‌ی دات نت فریم ورک مسلط بود. اما هنگام استفاده از یک ORM مهمترین موردی را که باید به آن تمرکز نمائید بحث طراحی منطقی کار است و ایجاد روابط بین اشیاء و دیتابیس و امثال آن. مابقی موارد توسط ORM انجام خواهد شد و همچنین می‌توان مطمئن بود که پیاده سازی خودکار انجام شده این قسمت‌ها، بر اساس الگوهای طراحی شیء‌گرا است.


د) هنگام استفاده از یک ابزار ORM ، مدت زمان آزمایش برنامه نیز کاهش می‌یابد

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

ه) استفاده از یک ابزار ORM ، کار برنامه نویسی شما را ساده‌تر می‌کند

توضیح این قسمت نیاز به ذکر یک مثال دارد. لطفا به مثال زیر دقت بفرمائید:


try {
Employees objInfo = new Employees();
EmployeesFactory objFactory = new EmployeesFactory();

objInfo.EmployeeID = EmployeeID;
objFactory.Load(objInfo);

// code here to use the "objInfo" object
}
catch(Exception ex) {
// code here to handle the exception
}




به نظر شما کار کردن با یک یا چند شیء تولید شده که نمایانگر ساختار دیتابیس شما هستند و با استفاده از اینترفیس عمومی آن‌ها می‌توان تمامی اعمال بارگذاری، درج و حذف و غیره را انجام داد، ساده‌تر است یا کار کردن با کوهی از دستورات ADO.Net ؟

masoud60
شنبه 24 فروردین 1392, 11:26 صبح
شما چه ORM ای رو پیشنهاد میدین؟


------------------------
http://www.kohan-co.net/

ahmad156
شنبه 24 فروردین 1392, 11:41 صبح
من به شخصه EF رو به همه ترجیح میدم ولی انتخاب EF Code First یا EF Model First یا EF DataBase First بستگی به نیازتون داره.
اگر طراحی DataBase با خودتون هست بهتره با Code First کار کنین یا Model First ولی اگر طراحی database با خودتون نیست و مثلا تیم DataBase دارین بهتره از DataBase First استفاده کنین.