صفحه شخصی سید علا سبزپوش

برنامه نویس دات نت و sql_server --ریاضیات

صفحه شخصی سید علا سبزپوش

برنامه نویس دات نت و sql_server --ریاضیات

ما خون دل خورده ایم اما ساکتیم .

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

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

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

مشکل در کجاست .

دوستان از دیدگاه فروشنده و هر تعبیر دیگر گله های خود را مطرح کرده اند . من اینجا می خواهم از دیدگاه کارشناسی (شاید این تعبیر به مذاق دوستان خوش نیاید ) بررسی می کنم . بنده قبول دارم که در بخشهای سازمانی اعم از دولتی و خصوصی این مشکلات هست . مانند بی سوادی کارشناس ، تنبلی کارشناس ، مقاومت در برابر تغییر بدلیل ترس از دست دادن موقعیت شغلی ، بروز نبودن ، تکنولوژیهای قدیمی و ... اما شخصا مشکلی که با آن برخورد کرده ام . 2 چیز است یکی تعهد و دیگری مسولیت است

1-تعهد : کلمه ای پرمحتوا که از دهان همه شنیده می شود اما در عمل کمتر کسی به آن عمل می کند . تعهد را باید از دیگاه دو طرف کارفرما و فروشنده بررسی کرد . از دیدگاه کارفرما معمولا در قالب پشتیبانی خلاصه می شود، متاسفانه برخی شرکتهای نرم افزاری نه همه ، تصور می کنند که کارشان فقط فروش نرم افزار است و پشتیبانی فقط باید پولش را پرداخت کرد آن هم با کمترین خدمات هر چند که این مشکل ریشه های مفصلی دارد اعم از فرهنگی و غیره . اما در این گیر و دار و دعوا هر دو طرف دعوا ،حرفهایی شنیدنی برای گفتن دارن هم شرکتهای نرم افزاری و هم مشتریان آنها . در جهت مقابل شرکتهایی را دیده ام که حتی در صورت نداشتن قرارداد پشتیبانی و پرداخت پول باز هم برای حفظ اعتبار خودشان و شاید هم در برخی مواقع تعهد ، حاضر به ارایه خدمات پشتیبانی هستند . اما مقصود کلام من کجاست . چیزی که برای من دغدغه است و با آن مواجه شدم شرکتی با دریافت مبالغ هنگفتی از سازمان بابت پشتیبانی ، اما خدا را شاهد می گیرم که بعد از گذشت سالها همچنان باگهای نرم افزار را برطرف نکرده بود و به نوعی فقط موقتی اشکالات را برطرف می کرد . خوب این بی تعهدی متاسفانه باعث دید بدی می شود.

2-مسولیت : در سازمانهای بزرگ ایرانی اعم از خصوصی و دولتی ، معضلی به نام تغییر اتوبوسی مدیران وجود دارد . این تغییرات قدرت ریسک را از کارمندان می گیرد . یه جو و سو تفاهم بدی وجود دارد که اگر مدیری بخواهد نرم افزاری را سفارش دهد بدنه مجموعه تصور می کنند که آن فرد از این نرم افزار سودی می برد . لذا سعی می کنند مقاومت کنند . علاوه بر آن بر فرض موافقت و تایید عمل در صورتی که نیمه راه  مدیریت عوض شود . مدیر جدید مسلما کارهای قبلی را قبول ندارد و اگر هر گونه ایرادی داشته مسولیت را بر عهده پرسنل می گذارد . لذا پرسنل در این حالت برای خلاص شدن از دردسر سعی می کند در مقابل تغییر مقاومت کند .همچنین مساله دیگر مسولیت آموزش و فهماندن دیگر پرسنل سازمان بر عهده واحد فنی است ، علاوه بر آن همیشه با این مشکل مواجه بوده  ام که در صورت عدم جوابگویی شرکت نرم افزاری ، همه تقصیرات بر گردن کارشناس فنی خواهد بود لذا این کارشناس بر اساس ترس و دغدغه ای که دارد مسلما سعی در رد تغییر می کند.البته این حالت یک حالت نرمال است و من کاری با حالتهای فساد اداری و باند بازی ندارم . اما برخی از پرسنل بهره بردار متاسفانه در اکثر سازمانها دارای برخی ازخصوصیات زیر هستند .

1-سواد پایین چون با پارتی بازی استخدام شده اند و حالا فکر می کنند یک نخبه هستند در نتیجه باید در مورد همه چیز خودشان تصمیم بگیرند

2-دارای سابقه بالا هستند و فعلا به فکر پر کردن سنواتشان هستند تا زودتر بازنشست شوند و حال و حوصله تغییر را ندارن

3-حقوق پایین دارن اما از سر ناچاری مجبورن اینجا کار کنند . لذا براشون نمی صرفه که با نرم افزارهای جدید کار کنند

4-ترسو هستن . و می ترسن دست به هر دکمه ای بزنن چون می ترسن همه چیز را خراب کنند و مسولیت آن به عهده آنان بیفتد لذا ریسک نمی کنند و برای هر کاری با واحد فنی تماس می گیرن

5-کلا با واحد فنی مشکل دارن چون اون روزی قرار بود برای بچه شون در سایت کنکور ثبت نام کنند واحد فنی قبول نکرده لذا هر چی واحد فنی میگه ، آنها بر عکس عمل می کنند تا یه جورایی حالش را بگیرن

6-با واحد فنی مشکل دارن چون وقتی درخواست فیلتر شکن کردن و یا خواستن براشون آموزش فیس بوک بزارن ، واحد فنی قبول نکرده ، لذا هر چی واحد فنی می گه ، الزاما غلط است .

مقایسه بین Linq to SQL و Entity Framework

شاید برای شما هم این سوال مطرح شده باشد که Linq To Sql  و Entity Framework  چه تفاوتهایی دارند ، در این تایپیک این دو مورد را از جنبه های مختلفی مقایسه خواهم کرد .

1-complexity  یا پیچیدگی : البته منظور از پیچیدگی از نگاه سخت و آسان بودن نیست بلکه از نگاه امکاناتی که در اختیار شما قرار می دهد . مسلما LINQ  امکانات و پیچیدگیهای کمتری دارد.

2-model    یا مدل سازی : ما در Entity Framework  براحتی می توانیم مدل سازی کنیم علاوه بر آن از تمام ارتباطات بین جدولها پشتیبانی می کند LINQ  از یک ارتباط یک به یک بین کلاسها و جدولهای بانک اطلاعاتی پشتیبانی می کند .

3-پشتیبانی از بانک اطلاعاتی : LINQ to SQL  فقط از بانک اطلاعاتی Sql_Server  پشتیبانی می کند در حالی که Entity Framework  می تواند از بانکهای اطلاعاتی مختلفی پشتیبانی کند .

4-زمان توسعه پذیری :To SQL LINQ   می تواند به راحتی استفاده شود و به سرعت کار شما را پیش ببرد . اما در نرم افزارهای پیچیده و بزرگ بدلیل داشتن امکانات محدود و کم دیگر جوابگو نیست .

5-وراثت : Entity Framework  از وراثت بین کلاسها براحتی استفاده و پشتیبانی می کند در حالی که این خاصیت در LINQ  وجود ندارد .

6-نوع فایل : LINQ  در فایلی با پسوند DBML  ذخیره می شوند در حالی که Entity Framework  در فایلهای EDMX  و CSDL ,SSDL  که با فرمت xml  است ذخیره می شوند .

7-نوع مرکب : ما در  Entity Framework می توانیم فیلدی مرکب complex type  تعریف کنیم . این فیلد چیزی شبیه به ساختار ها است . اما این امکان درTo SQL  LINQ  وجود ندارد

8-کویری : همانطور که در آموزشهای خودم نوشتم . Entity Framework  از چندین سبک برای اجرای کویری استفاده می کند . Linq to Entity , EntitySQL , Query With Method

9-کارایی : هر دو از نظر سرعت در اولین اجرا شاید بتوان گفت کند هستند . اما Eitity Framework از نظر کارایی بهتر عمل می کند .

10-توسعه آینده : مایکروسافت چندان علاقه ای به توسعه و ادامه راه LINQ to SQL  ندارد اما در عوض بیشتر تمرکز و توسعه را بر مبنای تکنولوژیهای دیگری گذاشته است از جمله Entity Framework

11-ساخت بانک اطلاعاتی از مدل : ما فقط در Entity Framework  می توانیم ابتدا مدل خودمان را طراحی کنیم و سپس با استفاده از آن مدل ، بانک اطلاعاتی را تولید کنیم.

جایگاه Entity Framework در معماری 3 لایه

اگر تا به حال با برنامه نویسی سه لایه سرو کار داشتید و با آن برنامه نوشته اید حتما می دانید که این معماری از سه لایه  

  1-    Data access layer 

  2- Business layer  

  3- Presentation layer 

تشکیل شده است سوالی که مطرح می شود این است که جایگاه EDM  در این معماری کدام لایه است شکل زیر تصویری بسیار گویا است که این جایگاه را به خوبی در لایه data  نشان می دهد.