تبلیغات تعیین هویت كاربران:
اگر تا به حال توجه كرده باشید در اكثر برنامه ها قسمتی را جهت تعیین هویت كاربران و همچنین ایجاد امنیت قرار داده اند كه این برنامه از این امر مثتثنی نیست برای این منظور كلاسی را با نام User ایجاد كرده ایم و درون این كلاس دو خاصیت با نام های Username و Password تعریف نموده ایم كه وظیفه آن نگهداری نام كاربری و كلمه عبور میباشد .حال در كلاس....اضافه كردن پرسنل :
در بخش قبلی با نحوه اضافه كردن بخش جدید آشنایی پیدا كردید دراین قسمت با نحوه تعریف یك پرسنل جدید در سیستم آشنا می شویم:
بقیه مطالب را از اینجا دانلود كنیدجمعه 13 خرداد 1390
نویسنده: Programmer طبقه بندی: آموزش، Sample،
اضافه كردن بخش :
با توجه به بخش قبلی و همچنین تجزیه و تحلیل هایی كه قبلا انجام شد به این نتیجه رسیدیم كه باید قسمتی برای اضافه كردن بخش به پروژه اضافه نماییم برای این منظور یك فرم جدید ایجاد كرده ایم و با استفاده از ابزار های ویژوال استودیو فرمی را مانند شكل زیر طراحی نموده ایم :
بقیه مطالب را از اینجا دانلود كنید:شرح پروژه:
یك شركت بازاریابی در نظر دارد برخی از فعالیت های روزمره خود را مكانیزه نماید تا بتواند با سرعت و دقت بیشتری آنها را مدیریت كنید .از این رو سعی كرده ایم تا در این پروژه برخی از این نیازمندیها را پیاده سازی نمائیم كه برخی از آنها در زیر درج گردیده است:
تعریف بخش:
هر شركت ممكن است دارای بخش های مختلفی مانند سخت افزار و نرم افزار و .... باشد.بنابراین باید این امكان در برنامه وجود داشته باشد تا بتوانیم بخش های مختلف را در آن تعریف نماییم
تعریف پرسنل:
هر شركت دارای تعدادی پرسنل شاغل است كه در بخش های مختلف مشغول به كارند بنابراین این امكان نیز باید وجود داشته باشد تا پرسنل جدید را در سیستم تعریف كنیم و سپس بخش هایی كه باید در آن كار كنند را مشخص نماییم
اختصاص پرسنل به بخش:
همانطور كه در بالا به آن اشاره كردیم این امكان باید وجو داشته باشد تا پرسنل هایی را كه تعریف نموده ایم به بخش های مختلف اختصاص دهیم لازم به ذكر است كه هر پرسنل فقط می تواند در یك بخش شروع به فعالیت نماید.
امنیت:
جهت بالا بردن امنیت فقط كاربران خاصی باید از برنامه استفاده كنند ،بنابراین باید قسمتی را برای این امر اختصاص داد.
پیاده سازی:
جهت كدنویسی این پروژه از زبان C# و ویژوال استودیو 2010 نسخه Ultimate استفاده شده است و جهت سهولت در نوشتن كدها از بانك اطلاعاتی جهت ذخیره اطلاعات استفاده نشده است بلكه از یك كلاس كمكی جهت ذخیره اطلاعات استفاده شده است كه در ادامه به تفصیل توضیح داده خواهد شد.
برای كد نویسی قسمت های مختلف قصد داریم تا از تكنیك های شی گرایی استفاده نماییم زیرا درك برنامه را راحت تر می كند و همچنین این امكان را به ما می دهد تا با سرعت بیشتری كد نویسی را انجام دهیم .
مایکروسافت قبل از معرفی Entity Framework ، تکنولوژیهای ado , rdo و سرانجام ado.net را ارایه کرده بود و برای اکثر این تکنولوژیها زمان زیادی گذاشته بود ، هر کدام از اینها در زمان خود یک تکنولوژی نوینی و حرکت عظیمی بود . اما با گسترش مفاهیم شی گرایی و نیاز مبرم برنامه نویسان به ایجاد اشیا از داده ها و جداول بانکهای اطلاعاتی مایکروسافت اقدام به توسعه تکنولوژی ado.net کرد و ابتدا امکانات linq و سپس Entity Framework را برای تعامل بهتر با شی گرایی مطرح کرد .
تا قبل از آن برنامه نویسان زمان زیادی را برای برنامه نویسی اشیا جدولهای بانکهای اطلاعاتی و ارتباطات آن صرف می کردند و هر گونه تغییر در جداول بانکها مستلزم تغییرات فراوانی در کد نویسی است .
ابتدا فهرستی از ابزارهای مدل سازی را معرفی می کنم :
1-ERM یا Entity Relationship Model ابزاری برای مدل سازی پایگاههای داده ای رابطه ای .
2- UML یا Unified Modeling Language زبان استاندار ماژول سازی اشیا و کلاسها
3-ORM یا Object-Relational Mappingروشی و ابزاری برای ایجاد تعامل ماژولار میان اشیا بانکهای اطلاعاتی رابطه ای و زبانهای برنامه نویسی شی گرا
4-DFD یا Data Flow Diagram ابزاری برای نمایش نموداری از جریان داده ها و فرآیند سیستم
البته چند ORM دیگر هم وجود دارد یکی NHibernate و SPRINT.net هر دوتای آنها از جاوا مشتق شده اند و توانمنیدهای فراوانی دارند اما بحث ما Entity Framework.Net4 است .
البته لیست بالا لیست کاملی نیست و از حوصله این بحث خارج است .
قبل از ورود به بحث Entity Framework مقدمه ای در مورد Entity Data Model یا مختصرا EDM باید بیان شود .EDM در حقیقت پایه و پیش نیاز Entity Framework است و شامل سه model است
1-مدل مفهومی 2-مدل منطقی 3-مدل ذخیره سازی یا فیزیکی
ما می توانیم بگوییم که EDM یک نسخه تکامل یافته ERM است .ما در مدل EDM در مورد ساختار شی گرای business objects داده ها بحث می کنیم در حالی که در مدل ERM ما در مورد طرح بانک اطلاعاتی بحث می کنیم .که باید تفاوت میان مدل داده و مدل شی را متوجه شویم ، شکل زیر یک مدل داده را نشان می دهد در حالی که شکل بعدی مدل شی گرا از بانک اطلاعاتی ما را نشان می دهد.


Entity چیست ؟
ما برای فهم Entity Framework باید ابتدا مفهوم Entity را متوجه شویم ، البته بعدا در مورد این مفصلا خواهم نوشت ولی فعلا برای فهم بیشتر مقایسه ای با object و relational data انجام می دهم
تشابه Entity با شی یا object
1- Entity مانند شی دارای انواع تعریف شده برای داده ها و فیلدها است
2- Entity مانند شی دارای خصوصیت یا properties است
3- هر Entity یک هویت متمایزی دارد
4- یک خصوصیت Entity می تواند ارجاعی به Entity دیگر باشد
تفاوت Entity با شی یا object
1 -Entity می تواند یک فیلد اصلی یا primary keys داشته باشد
2-Entity می تواند دارای ارتباطی با Entity دیگر باشدمانند ارتباطات موجود در بانک اطلاعاتی
تشابه Entity با داده رابطه ای relational data
1-Entity یک ارتباط چند گانه مانند داده ها با دیگر entity می تواند داشته باشد
2-Entity مانند داده ها می تواند کلید اصلی یا primary key داشته باشد
تفاوت Entity با داده رابطه ای relational data
1-Entity از داده ها با نوع پیچیده complex typesپشتیبانی می کند
2-Entity از وراثت موجود در کلاسها پشتیبانی می کند
3-Entity داده های فیزیکی را ذخیره نمی کند .
پس Entity Framework چیست ؟
درواقع Entity Framework تکنولوژی توسعه یافته ADO.Net است که فاصله بین برنامه نویسی شی گرایی و بانک اطلاعاتی رابطه ای را پر می کند .این فاصله معمولا تحت عنوان عدم تطابق شناخته می شود. و یک تکنیک برنامه نویسی برای تبدیل ارتباطات در Database به مفاهیم Object Oriented در برنامه نویسی است. در واقع میتوان گفت که کلاس ها را به Table ها map میکند. وقتی که شما میخواهید به Database دسترسی پیدا کنید، یا اطلاعاتی را ذخیره کنید، این کارها را مستقیما بر روی اشیاء ( Object تان ) انجام میدهید. Entity Framework مدل داده ها را به سه بخش تقسیم می کند 1-مدل مفهومی یا ادراکی 2-مدل منطقی 3- مدل فیزیکی
سه شنبه 3 اسفند 1389
نویسنده: Programmer طبقه بندی: آموزش،
<startup useLegacyV2RuntimeActivationPolicy="true"> <supportedRuntime version="v4.0"/></startup>تفاوت میان delegate ,Event:
در زیر چند نمونه از تفاوت های میان این دو را ذکر کرده ام و در ادامه با یک مثال نحوه پیاده سازی آن را نشان خواهم داد:
|
Delegates |
Events |
|
یک تابع اشاره گر است که می تواند آدرس هر تابع دیگری را ذخیره کند |
یک آرایه از Delegates ها می باشند |
|
پلی را برای ارتباط بین کنترل ها وتوابع ایجاد میکند |
|
|
فقط یک تابع را می توانند صدا بزنند |
|
|
|
|
مثال: فرض کنید دو فرم داریم یکی با نام Parent . دیگری با نام Child حال میخواهیم ترتیبی تثر دهیم تا هنگامی که کاربر در روی دکمه ای در روی فرم child کلیک می کند رنگ پشت زمینه فرم Parent تغییر کند ولی این کار به چه نحوی امکان پذیر است زیرا فرم child از وجود فرم parent با شی از Parent با خبر نیست :
راه حل استفاده از Delegate : بدین معنی که شما اشاره گری را با استفاده از delegate هب بین فرم Parent و child ایجاد می کنید :
مراحل کار :
در محیط ویژوال استودیو یک پروژه ویندوزی ایجاد نمایید و در فرم با نامهای Parent و child به آن اضافه کند حال در فرم parent یک button اضافه کند تا با استفاده از آن فرم Child نمایش داده شود
حال در فرمchild ، یک button اضافه کنید تا با کلیک بر روی آن بتوانیم رنگ فرم Parent را تغییر دهیم . بر روی فرم Child دوبار کلیک کنید و کد های زیر را در آن وارد نمایید:
public delegate void changebackground(Color color);
public event changebackground changebackcolordelegate;
حال بر روی دکه خود در همین فرم(Child) دوبار کلیک کنید و کد های زیر را در آن وارد کنید
private void button1_Click(object sender, EventArgs e)
{
changebackcolordelegate(Color.Yellow);
}
به فرم Parent باز گردید و دوبار روی فرم کلیک کنید تا محیط کد نویسی آن باز شود
تابع زبر را درآن وارد کنید:
private void set_color(Color c)
{
this.BackColor = c;
}
حال بر روی دکمه خود دوبار کلیک کنید تا محیط کد نویسی آن باز شود و کد های زیر را درآن وارد نمایید
private void button1_Click(object sender, EventArgs e)
{
child frm = new child();
frm.Show();
frm.changebackcolordelegate += new child.changebackground(set_color);
}
با اجرای این برنامه متوجه خواهید شد که وقتی بروی دکمه فرم Child کلیک می کنید رنگ پشت زمینه فرم Parent به صورت زرد در خواهد آمد