فروم تخصصی - پشتیبانی CPSD
آشنایی با اکسس - بخش اول , دید کلی - نسخه‌ی قابل چاپ

+- فروم تخصصی - پشتیبانی CPSD (http://cpsd.ir/forum)
+-- انجمن: آموزش (/forumdisplay.php?fid=9)
+--- انجمن: عمومی (/forumdisplay.php?fid=21)
+--- موضوع: آشنایی با اکسس - بخش اول , دید کلی (/showthread.php?tid=43)



آشنایی با اکسس - بخش اول , دید کلی - CPSD Admin - ۲۵ دي ۱۳۸۹ ۰۷:۴۱ عصر

ضمن سلام

به نظرم رسید که مقاله ای در خصوص Access و حواشی اون بنویسم , روی صحبتم بیشتر مسیری هست که مایکروسافت در جهش از نقطه 2003 به نقطه 2010 انجام داده

بالطبع در این میان , بهبود های مطرح شده در نسخه 2007 رو سعی میکنم در دل همون نسخه 2010 هضم کنم و کاستی های نسخه 2007 رو اگر در نسخه 2010 مرتفع شده دیگه نامی ازشون نبرم

وجود این مقاله الزامی به نظر میرسه چرا که بسیاری از دوستان , به دلایلی مختلف همچنان در نسخه 2003 مشغول به کار هستند

جهت همگام شدن با تغییر فرصت زیادی ندارید

دو گزینه دارید ; یا همچنان با نسخه 2003 کار کنید و مشکلات آتی اون رو بپذیرید و یا آماده پرش بشید

به نظر مياد در گام نخست بايد اندكي با خود اكسس آشنا شد ، چرا كه در ابتدا اين برنامه بايد به مصونيتي خاص در قبال تفسيرهايي غلط كه در خصوص اون وجود داره دست پیدا کنه

به نکات زير نيز توجه داشه باشيد :

برخي اصطلاحات همچنان به صورت انگليسي مورد استفاده قرار خواهند گرفت ، چرا كه يا معادل فارسي منطقي ندارند و يا اينكه در اينجا اطلاع از معناي دقيق اون اصطاح چندان ضروري نيست

ضمن اینکه در همين ابتدا يك نكته دیگه رو هم مد نظر قرار میدیم و اون هم , فاكتور گرفتن از رقباي واقعي اكسس هستش ، رقبايي كه در هيچ جا نامي از اونها برده نميشه ، سيستمهایی همچون Alpha Five و File Maker ، سيستمهايي كه دقيقا الگوبرداريهايي خاص از اكسس هستند

به دلايلي , همچنان اين دو گزينه هم قابل استفاده توسط شما نيستند , فرضا Alpha Five زبان فارسی رو به درستی پشتیبانی نمیکنه و یا File Maker جهت سیستم عامل مکینتاش طراحی شذه

بر همين اساس اگر نكته اي زير سئوال ميره ، بدون توجه و در نظر گرفتن اينگونه محصولاتي و امکانات اونهاست , چرا که اونها رو رقبایی با پتانسیل بالفعل , لااقل در ایران نمی دونیم

در ابتدا به تعريفي از يك محيط IDE بپردازيم

IDE در واقع سر واژه Integrated Development Environment و يا همون محيط توسعه يكپارچه هستش

در تعريف IDE , الزامات اوليه اينگونه محيطهايي , وجودCompiler,Debugger,Code Editor ذكر گرديده

اكسس علاوه بر برآورده كردن کلیه اين الزامات ، ديگر جوانب يك توسعه هوشمند و كارا رو هم به همراه داره

اكسس محيطي يكپارچه , متشكل از محل ذخيره سازي اطلاعات ( با تعبيري ساده : ديتابيس ) ، پرس و جوها جهت واكشي ، پردازش و استخراج اطلاعات ، فرمها كه در واقع به نوعي تشكيل دهنده و شالوده اصلي نماي كاربر و يا همون Interface هستند ، گزارشات ، كه به شما امكان مشاهده گزارشات نهايي و يا احيانا ذخيره سازي خروجيها در فرمتهاي متفاوت رو خواهند داد و محيط برنامه نويسي , كه جهت انجام عمليات اتوماسيون بوسيله كد نويسي در اختيار شما قرار گرفته

به بررسي Macro ها و Web Page ها نخواهيم پرداخت چرا كه اين امكانات , انحصاري اكسس هستند و در محيطهاي ديگه كم و بيش بدین گونه وجود ندارند ، و اين موارد به راهكارهاي فوري شبيه هستند كه در اكسس پياده سازي شدند

فرضا ماكروها شما رو در انجام بسياري كارها بي نياز از برنامه نويسي خواهند كرد و يا Web Page ها , بدون نياز به داشتن اطلاعاتي تخصصي در اين مبحث , به شما در زمینه توسعه مبتنی بر Web كمك ميكنند

با اطمينان خاطر میشه اعلام كرد كه چنين مجموعه يكپارچه اي منحصر به فرد بوده و نظير ندارد

حال يك سئوال كليدي مطرح ميشه ، كسي ممكنه از شما سئوال كنه :

من يك برنامه دارم كه شركت توليد كننده مدعي شده : برنامه با زبان برنامه نویسی X نوشته شده .

هم اطلاعات رو ذخيره ميكنه ( پس ديتابيس داره ) هم نماي كاربري كه داره بسيار شكيل هستش ( پس فرم داره و خروجي زيبا و كاربر پسند ) ، هم گزارشات خروجي داره ( پس سيستم طراحي گزارش داره ) هم محيط طراحي برنامه نويسي داشته , كه داره دستورات من رو اجرا ميكنه ، پس اختلافش با اكسس چيه ؟!

بسياري از ديگر محيطهاي توسعه چند تفاوت عمده با اكسس دارند ، گو اينكه هر دو در دسته IDE ها قرار ميگيرند ، ولي اكسس مواردي ديگه رو هم به صورت يكپارچه ارائه كرده كه در ديگر محيطهاي توسعه بدين صورت وجود نداره

ديتابيس يا محل ذخيره سازي اطلاعات

بسياري از اينگونه محيطهايي فاقد يك رويه درون ساخت جهت طراحي ديتابيس هستند و معدود مواردي هم كه از اين قابليت بهره ميبرند با توجه به امكانات داخلي بسيار ضعيفشون در اين رابطه ، طراحان كمتر به سراغ اين امكان داخلي اونها خواهند رفت
در اين حالت اتصال به يك ديتابيس ثالث الزامي هستش ، اين ديتابيس ميتونه انتخابي متنوع از Access Database تا Oracle رو شامل بشه
پس اطلاعات ذخيره شده در اينگونه برنامه ها , مستقل از خود اون محيط توسعه هستش و در واقع شما نياز به استمداد از يك ديتابيس خارجي ( برون سیستمی ) دارید

فرمها

اگر كسي حداقل يك بار با ديگر محيطهاي توسعه كار كرده باشه به اين نكته پي خواهد برد ، كه كنترلهاي استاندارد موجود در داخل اين محيطها ، كاملا كنترلهايي با ظاهري ساده هستند ، ايجاد نماي كاربر جذاب , فرآيندی كاملا جانبي بوده و تماماً توسط كامپوننتها و اكتيو ايكسهاي جانبي ( افزونه هاي جانبي ) محقق ميشه
شركتهاي بسياري در اين زمينه فعاليت ميكنند كه نتيجه خروجي اونها ، ظاهري شكيل تر براي نرم افزار هستش

گزارشات

همچون مبحث ديتا بيس ، در خصوص گزارشات هم عيناً همون موضوع صادقه ، امكانات داخلي جوابگو نبوده و يا خروجي به صورتي كاملا مطلوب نيست ، در اين حالت باز هم مقوله استفاده از كامپوننتها و اكتيو ایکسهای جانبي نمود پيدا ميكنه
بسياري از خروجيهايي كه شما در اينگونه نرم افزارها ملاحظه ميكنيد ، محصول خروجي كامپوننتهاي جانبي هستند و نه امكانات داخلي خود اون نرم افزار

برنامه نویسی

تفاوت عمدتا در نوع كدينگ هستش كه با توجه به زبان برنامه نويسي متفاوت خواهند بود ، در اين خصوص مقايسه منطقي به نظر نميرسه ، چرا كه زبانهاي برنامه نويسي هر يك از اين محيطها متناسب با هدفشون طراحي شدند


نتيجه گيري اوليه :

محصول خروجي ديگر محيطهاي توسعه ( به غير از اكسس ) محصول مشترك اون محيط خاص با محصولات ديگر شركتها هستش

به طور مثال شما ممكنه بتونيد با استفاده تلفيقي از چهار محصول , فرضاً , #C ( به عنوان محيط توسعه و طراحي اينتر فيس ) و SQL Server ( به عنوان ديتابيس ) ، Crystal Report ( جهت خروجي گزارش ) و فرضاً مجموعه كامپوننت DevExpress ( جهت بهبود نماي كاربر و زيبا سازي ) ، اقدام به طراحي محصول نهايي كنيد
شما در واقع نياز به يادگيري 4 محصول متفاوت داريد تا بتونيد يك محصول نهایی رو توليد كنيد
ضمن اينكه اتصال اين چهار محصول با همديگه نيازمند طي روالي خاص هستش ( فرضا خيلي از دوستان هنوز توي پروسه اتصال به SQL Server با مشكلات جدي مواجه هستند و ...) ، شما نياز به آموزشهايي مضاعف و مستمر تر داريد

هر يك از اين محيطها با معضلات خاص خودشون همراه هستند و در برخي مواقع با توجه به اينكه اين محصولات ساخته و پرداخته شركتهاي ثالث هستند ، مشكلاتي رو در هنگام توسعه ممکنه به بار بیارن
شما در استفاده از برخي محصولات جانبي با گلوگاههايي جدي روبرو ميشيد ، فرضا يكي از الزامات اين هستش كه اون كامپوننت خاص از Unicode پشتيباني كنه تا عمليات فارسي نويسي در اون به درستي انجام بشه ، همين امر محدوده انتخابي اين محصولات رو كوچكتر ميكنه چرا كه برخي از اونها از اين خصیصه پشتيباني نمي كنند

توضيح اينكه اكسس نيز همچون بسياري از محيطهاي توسعه ، پذيراي توسعه تكنولوژي ActiveX بوده و امكان استفاده از كامپوننتهاي سازگار با خودش رو به شما ميده
( در مبحث آتی در خصوص ActiveX ها هم اندکی توضیح داده میشه )

پايان بخش اول

پي نوشت :

در حال حاضر ابتدا بايد به يك مرز بندي مشخص بين اكسس با ديگر محيطهاي توسعه برسيم تا در ادامه به بحثهاي داخلي خود اكسس منتهي بشه
در فصل بعدي توضيحات تكميلي در همين خصوص ارائه خواهد شد
همونطوری که عرض کردم , موضوع در قالب مقاله هستش , شاید در چندین قسمت , بدیهیست نظرات شخصی بنده هستش و بس , خواه اشتباه و خواه درست , تصمیم گیری با خواننده

موفق باشید



RE: آشنایی با اکسس - بخش اول , دید کلی - abolfazlnabavi - ۲۳ بهمن ۱۳۹۱ ۰۳:۰۷ عصر

سلام

استاد قبلا کمی اکسس کار کرده ام و اکنون با vb و sql کار می کنم.

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

همیشه بین اینکه بانک یک برنامه اکسس باشد یا سی کیو ال مردد هستم نمی دانم :
1-حداکثر جداول بانک اکسس چقدر می تواند باشد که کارائی ان را پایین نیاورد؟(سرعت و ....)
2-حداکثر رکورد هر جدول اکسس چقدر می تواند باشد که کارائی برنامه را پایین نیاورد؟
3-آیا می توان برای حجم اطلاعاتی که کارائی اکسس را دراز مدت کاهش ندهد حدی بیان کرد؟(مقایسه با سی کیو ال)

مثلا برنامه مدیریت اژانس املاک طراحی کرده ام با بانک اکسس اما نمی دانم ایا در آینده افزایش رکوردها مشکلی ایجاد خواهد کرد یا خیر؟برنامه را با سی کیو ال طراحی کنم یا خیر؟

تشکر


RE: آشنایی با اکسس - بخش اول , دید کلی - CPSD Admin - ۲۳ بهمن ۱۳۹۱ ۰۶:۵۰ عصر

ضمن سلام

جناب آقای نبوی در ابتدا شما رو به یک نمونه مطلبی که قبلا در سایت برنامه نویس درج کرده بودم , ارجاع میدم تا از تکرار اونها جلوگیری به عمل بیاد :

مقایسه Access و SQL Server !؟


( مطالب زیادی درج کردم ولیکن میبایست در داخل نامهای کاربری nabeel و Zero Defect به دنبال اونها بگردید )


حال در خصوص صورت مساله شما :

دوست گرامی جامعه هدف ابزار مورد نیاز شما رو تعیین میکنه , با توجه به نرم افزار مطرح شده از سوی شما ( مدیریت آژانس املاک ) , قطعا شما نیازی به مهاجرت به سمت SQL ندارید

فرض کنیم شما برای بنگاهی برنامه نوشتید که در روز 50 خونه رو خرید و فروش میکنه , در 365 روز سال و به مدت 25 سال !!

تعداد رکوردها با فرض شرایط محال فوق 456250 رکورد خواهد شد که هیچ مشکلی برای فایل اکسس ایجاد نمیکنه

ممکنه در خصوص امنیت شبهاتی رو برای شما مطرح کنند :

از اونجایی که شما قصد ارسال فایل SQL رو در مد Client دارید و در واقع فایل دیتابیس SQL بر روی سیستم کاربر نهایی قرار داره , امنیت این فایل ذره ای بیشتر از یک فایل اکسس نیست

بخش بزرگی از امنیت اکتسابی SQL سرور ناشی از محدودیتهای اعمال شده از سوی Windows Server و یک پارچه سازی اون با SQL Server هستش

در مجموع توصیه میکنم شما کارخودتون رو ادامه بدید و نگران هیچ چیزی نباشید

موفق باشید