امشب داشتم پست یکی از دوستان تالار در مورد نقاط ضعف اکسس رو میخوندم که احساس کردم نیاز به یک توضیح مبسوط داره !
در پست شماره 26 این تاپیک نظر دوستمون این بود که بخاطر برخی نقاط ضعفی که ایشون در اکسس دیدن تصمیم گرفتن که از اکسس خداحافظی کنن. البته نظر ایشون قطعا محترمه و من هم احترام میذارم ولی اعتقاد دارم اکسس اینقدرها هم ضعیف نیست که نیاز به خداحافظی باشه. شما حتی اگر تصمیم به یادگیری کامل vb .net یا دلفی یا هر چیز دیگه ای بگیری قطعا تسلط داشتن به اکسس یه روزی بدردت میخوره. حالا در ادامه بیشتر بررسی میکنیم.
من قدیما با vb6, access و vb .net زیاد کار میکردم ولی در 2-3 سال اخیر بیشتر روی android java, php, html, css کار میکردم. با اکسس (اکسس 2003) چندین نرم افزار نوشتم: حسابداری، انبارداری، چند نرم افزار با استفادۀ سازمانی، نرم افزار تحلیل آمار و اینجور چیزا. برنامه هایی که هنوز بعد 8-9 سال دارن کار میکنن و خیلی خوب جوابگو هم هستند.
در تمام این سالها چه موقعی که خیلی درگیرش بودم و چه موقعی که زیاد باهاش کار نمیکردم، همیشه اکسس برای من یک موجود دوست داشتنی بود تا اینکه مدتی قبل نیاز داشتم که یکی از برنامه هام رو بازنویسی کنم. کمی در مورد ویژگیهای نسخه های جدید اکسس بررسی کردم و دیدم ظاهرا این اکسس دوست داشتنی بوده، دوست داشتنی تر هم شده ! امکانات خوبی بهش اضافه شده، برخی از امکانات رو هم دیدم که خیلی عالیه و دقیقا نمیدونم قبلا وجود داشته و من نمیدونستم یا اینکه جدیدا اضافه شده (پیگیر نشدم)
به هر حال اکسس با تمام نقاط ضعف و قدرتش همچنان نرم افزار محبوب من هست و همیشه هم بکارم میاد.
ببینید دوستان ما باید از هر ابزاری به اندازۀ خودش انتظار داشته باشیم. یکی میاد میخواد با اکسس نرم افزار درست کنه و کلی کارهای عجیب غریب باهاش انجام بده و بعد بعنوان یک محصول نرم افزاری در تمام کشور توزیع کنه! خوب چرا؟! کی گفته اکسس برای این کار مناسبه؟! شما میخوای توسعه دهندۀ اپلیکیشن ویندوزی باشی؟ برو سراغ vb .net ، برو سراغ C# .net ، برو سراغ دلفی. ولی اگه یک نرم افزار کوچیک برای شرکت خودتون، یا برای بخش سازمانی خودتون یا کلاً برای محل کار خودتون یا حتی برای امور روزمره زندگی تون میخواید که مبتنی بر بانک اطلاعات هست اکسس میتونه تنهاترین و بهترین انتخاب شما باشه.
درسته اکسس یکسری نقاط ضعف داره.
مثلا خیلی ها میگن امکانات امنیتی اکسس پایینه ولی به نظر من اگر نگاهمون به اکسس (همونطوری که در بالا توضیح دادم) نگاه درستی باشه، شاید به این نتیجه برسیم که اطلاعاتی که ما داریم ذخیره و بازیابی میکنیم احتمالا ماهیت فوق سری نداره(!) که نیاز به اعمال تدابیر شدید امنیتی داشته باشه!!! به همین دلیل به نظر من دلواپسانِ امنیت اکسس، بیشتر نگران امنیت زحمتی که برای طراحی نرم افزار کشیدن هستند تا امنیت اطلاعات، که البته پر بیراه هم نیست. نهایتا با توجه به اینکه در حالت mde یا accde تمامی کدهای ویژال بیسیک کامپایل میشن و امکان تغییر در دیزاین فرمها و گزارشات هم نیست، بنابراین اگر نحوۀ توزیع اطلاعاتمون در جداول (یعنی همون نرمال سازی دیتابیس) درست باشه مطمئنا امنیتِ زحمتی که ما برای نرم افزارمون کشیدیم هم تامین میشه. چرا؟ چون شخص دیگری که به کدها دسترسی نداره و اطلاعات خام هم معمولا بدرد کسی نمیخوره حتی اگر بتونن پسورد دیتابیس رو پیدا کنن.
یا اینکه میگن اکسس در تعیین سطح دسترسی کامل به یوزرها جالب عمل نمیکنه. جالبه که بدونید که ظاهرا مایکروسافت در نسخه های جدید اکسس، بحث سطح دسترسی رو بطور کامل حذف کرده و به کاربران توصیه کرده اگر سطح دسترسی خیلی براشون مهمه از امکانات sql server یا sharepoint استفاده کنند.
به نظر من تنها مشکلی که در اکسس وجود داره، مشکلاتی هست که بعضا در استفاده از افزودنی هایی مثل اکتیوایکس ها و dllها بوجود میاد. این مورد رو منم قبول دارم. علت این مسئله اینه که اکسس یک پلتفرم کاملا مستقل نیست و با نوعِ پکیجِ آفیسِ نصب شده روی سیستم کاربر، ارتباط مستقیم داره. مثلا فرض کنید سی دی نصب آفیس مشکل نرم افزار داشته و کامل روی ویندوز کاربر نصب نشده یا اینکه کاربر موقع نصب بعضی قسمتهای آفیس رو نصب نکرده که از قضا برنامۀ شما دقیقا به همون قسمتها نیاز داره و ... . به همین دلیل همیشه موضع من این بوده که تا حد امکان از توابع و ابزارهای استاندارد و داخلی خود اکسس استفاده کنیم و از استفادۀ اکتیوایکس و dll و این چیزا پرهیز کنیم. شما اگر از ابزارهای استاندارد اکسس استفاده کنید تا سالهای سال نیازی نیست نگران اجرا شدن یا نشدن برنامتون باشید. همونطوری که گفتم من برنامه با اکسس 2003 نوشتم و الان داره اکسس 2016 میاد و هنوز اون برنامۀ من داره به درستی و بدون مشکل کار میکنه! بعضی وقتها دیدم دوستان برای یک message box ساده میرن سراغ dll و اکتیواکس! چرا؟! واقعا دلیلی نداره. یا بعضی دوستان اصرار عجیبی دارن که از تقویم برای درج تاریخ استفاده کنن. هر چند همین تقویم رو اگر شما به vba مسلط باشی یکبار میشینی ماژولش رو با کدها و ابزارهای داخلی خود اکسس مینویسی و در تمام پروژه هات همونها رو ایمپورت میکنی. UI زیبا خیلی خوبه ولی تا جایی که اولا امکانات بهتون اجازه بده و ثانیا وسواس گذاشتن روی زیباتر کردن رابط کاربری زنجیر پای شما نشه.
حالا بهتره در مورد مزیت های اکسس هم حرف بزنیم دیگه! مزیت ها رو در پایان مطلب نوشتم تا بیشتر در ذهن بمونه چون اون نقاط ضعفها واقعا موانع غولی نیست!
* من میتونم به جرات بگم توانایی که اکسس در توسعه و آماده سازی یک نرم افزار مبتنی بر بانک اطلاعاتی داره بی نظیره. واقعا به معنای کامل کلمه، بی نظیره! مثلا در vb .net یادمه خیلی از مواردِ کلی، مثل بحث ساخت فرم مناسب ثبت اطلاعات یا بحث گزارش گیری در کریستال ریپورت که داستانی بود واسه خودش، یا حتی مسائل بسیار جزئی مثل این که با زدن کلید اینتر بین فیلدهای فرم حرکت کنی، یا مثلا یک data grid روی فرم بذاری و اطلاعات رو داخلش نشون بدی، یا کمبوباکسی بذاری که یک auto complete کاربردی + رویدادهای متناسب داشته باشه، در vb6 و vb .net خیلی داستان داره ولی اینجور موارد برای اکسس مثل یک شوخی میمونه! در حالیکه در نرم افزارهای دیگه واقعا باید چندین برابر اکسس زحمت بکشید.
* بستر مورد نیاز برای توسعه، برنامه نویسی و اجرای نرم افزار مبتنی بر اکسس به سادگی هر چه تمام تر در دسترسه (فقط کافیه آفیس نصب باشه. همین!) در صورتیکه در همون vb .net تا اونجایی که من یادمه ساخت یک پکیج setup که همیشه درست کار کنه کار همچین راحتی نبود.
* همونطوری که گفتم سرعت ساخت آبجکتها (مثل جداول، فرمها، گزارشات و ...) بصورت حیرت آوری بالاست.
* شما در اکسس میتونی امکان کدنویسی ویژوال بیسیک + کدنویسی sql + ماکرونویسی اکسس + فرمول نویسی اکسل رو بصورت یکجا با هم داشته باشی! واقعا برای یک نرم افزار مبتنی بر بانک اطلاعاتی بهتر از این چی وجود داره؟!!!
* شما حتی میتونید توسط expression builder توابع داخلی خود اکسس یا حتی نوابع نوشته شده توسط خودتون رو داخل یک دستور sql قرار بدید و استفاده کنید! این فوق العاده ست. شما هیچ جایی و در هیچ نرم افزاری شما نمیتونی همچین امکانی رو داشته باشی! (یا حداقل من ندیدم)
* شما میتونید با طراحی نرم افزارتون با معماری BackEnd/FrontEnd و استفاده از گزینۀ link table از اکسس در یک شبکه کوچک محلی بصورت چند کاربره بدون مشکل استفاده کنید.
* در نسخه های جدید اکسس یعنی 2010 و مخصوصا 2013 شما میتونید از ترکیب اکسس و شیرپوینت یک محصول بی نظیر در سطح ملی بسازید! مثلا شما همون معماری BackEnd/FrontEnd رو در نظر بگیرید که BackEnd در یک سروری که شیرپوینت داره قرار بگیره و کلاینت ها میتونن با FrontEnd ی که در اختیار دارن در هر جای دنیا که باشن امکان دسترسی، مشاهده و ثبت اطلاعات داشته باشند. شما مطمئن باشید در آینده از زوج طلایی اکسس-شیرپوینت خیلی خواهید شنید.
در یک کلام اکسس برای نرم افزارهای مبتنی بر بانک اطلاعات کوچک تا متوسط که کاربردهای درون سازمانی یا شخصی دارند بهترین انتخابه. توصیه هم میشه برای اینکه کمترین دردسر و مشکل با نسخه های مختلف اکسس داشته باشین از افزودنی هایی مثل اکتیوایکس و dll کمتر استفاده کرده و بیشتر متکی به ابزارها و امکانات داخلی خود اکسس باشید.
البته هنوز در مورد قدرت ترکیب اکسس-شیرپوینت اطلاعات کامل ندارم ولی مطمئنم این ترکیب انقلابی به پا خواهد کرد چون (اکسس-شیرپوینت) یعنی قدرت اشتراک گذاری شیرپوینت + قدرت توسعۀ نرم افزارهای کلاینتی اکسس ---> که میشه انقلابی در تولید محصولات دورکاری سازمانی و تجاری...