# برنامه نویسی با محصولات مایکروسافت > برنامه نویسی مبتنی بر Microsoft .Net Framework > C#‎‎ > آموزش: کارگاه عملی : ساخت پروژه ثبت سفارشات مرحله به مرحله

## gwbasic

*به نام خدا* 
اگه تاپیک های منو پیگیری کرده باشین مطالب زیادی برای آموزش گذاشتم ولی اونطور که فکر می کردم استقبال نشد. این دفه تصمیم گرفتم یه پروژه رو مرحله به مرحله آموزش بدم!
به این صورت که من صورت مسئله رو مشخص می کنم و دوستانی که مایل بودن کدشو می نویسن و با هم کدها رو بررسی می کنیم ( البته تا جایی که بتونم) و در نهایت کد بهترو برای اون مرحله توی این تاپیک که تاپیک اصلی هست قرار می دیم.
سعی کردم که پروژه رو خیلی خیلی ساده تعریف کنم که کدنویسیش زیاد وقت گیر نباشه!
قبل از هر چیز یک خواهش: 
کدها و سوالاتتون رو در تاپیک زیر ارسال کنید. و توی این تاپیک لطفا پستی نگذارید اگه نظری هم دارید در مورد نحوه کار از طریق پیام خصوصی به من اطلاع بدید.
https://barnamenevis.org/showthread.p...76#post1376276 
امیدوارم با کمک و پیگیری شما این پروژه آموزشی به سرانجام برسه

----------


## gwbasic

قبل از هر چیز بگم که این پروژه چند فاز داره که توی فاز اول سعی می کنیم که موارد زیر رو داشته باشیم:
1- موجودیت های ما :
مشتری Customerکالا یا محصولات Productسفارش Order2- ساخت فرم برای هر یک از موجودیت های بالا
3- استفاده از EntityFramework‌ برای ارتباط با DataBase

همین!!! دیدید خیلی سادست 

فاز دوم : ساخت گزارش 
فاز سوم : کامل کردن پروِژه (افزایش موجودیت ها و خصوصیات آنها مثلا اضافه کردن User و فرم Login و ...)
فاز چهارم : استفاده از اPattern ها و چند لایه نویسی
فار پنجم : استفاده از Component ها برای فرمها و کنترل ها

البته نظرات خوب شما قطعا می تونه تغییراتی رو ایجاد کنه چون اینها فعلا به ذهنم رسید.

----------


## gwbasic

خوب حالا شروع کار :
یه جدول به نام Customer ایجاد کنید که دارای فیلدهای زیر باشد:
Id as uniqueidentifier کلید اصلی
Name as nvarchar 50
Family as nvarchar 50

یه فرم به پروژه اضافه کنید به اسم CustomerForm و کدی بنویسید که این فرم امکان ایجاد اضافه و ویرایش مشتری رو داشته باشه

درضمن یادتون نره که کدهاتون رو توی تاپیکی که بالا معرفی کردم قرار بدین.

بسم الله ...

----------


## gwbasic

این ویدیو اولین Video آموزشی هست که می ذارم  در ادامه این پست کامل می شه




ساخت databaseایجاد EntityDataModeطراحی و کد نویسی فرم Customer

برای باز کردن فایل نیاز به 7-Zip دارید تا فایل و extract کنید.

----------


## gwbasic

این ویدیو قسمت دوم و تکمیل فرم Customer هست.

کدهای فرم مشتری:

----------


## gwbasic

خوب مرحله بعد:
یه جدول به نام Product ایجاد کنید که دارای فیلدهای زیر باشد:
Id as uniqueidentifier کلید اصلی
Name as nvarchar 50
Price as int

یه فرم به پروژه اضافه کنید به اسم ProductForm و کدی بنویسید که این فرم امکان ایجاد اضافه و ویرایش کالا رو داشته باشه. البته این دفعه از آموزش هایی که دادم کمک بگیرید منتها پیاده سازی کمی فرق می کنه (البته صرفا جهت یادگیری روش دیگه هست). به این شکل که از همون BindingNavigator‌استفاده کنید ولی موارد زیر رو در نظر بگیرید.
1- برای اضافه کردن دکمه add‌ (+) زده شود و وقتی دکمه تایید زده شد (که یک دکمه داخل BindingNavigator هست) ثبت در database صورت گیرد.
2- اگه کاربر سطری رو در datagridview انتخاب کرد در صورتی امکان تغییر و ویرایش وجود داشته باشد که کاربرد دکمه ویرایش را (که در bindingNavigator وجود دارد) زده باشد. . باز هم برای اعمال این تغییر از دکمه تایید استفاده شود
3- یک مورد جالب وجود داشته باشد که کاربر هنگام تغییر امکان cancel را هم داشته باشد (cancel دکمه ای در BindingNavigator) می باشد.
امیدوارم متوجه شده باشید.

در ضمن هر ایده ای دارید می تونید پیاده کنید. محدودیتی وجود نداره. هدف از این کار اینه که کدهای مختلف رو ببینیم البته از این به بعد لطفا از EntityFrameWork استفاده کنید.

منتظر کدهاتون هستم

موفق باشید

----------


## gwbasic

این ویدیو  آموزش ساخت فرم Product هست با قابلیت انصراف بدون استفاده از BindingNavigator و با استفاده از کدنویسی

کد فرم Product:

----------


## gwbasic

مواردی که در  این ویدیو  قابل ملاحظه هستند:
امکان انتخاب یک موجودیت از فرمهای Product و Customer با دابل کلیک بر روی گرید مربوطهآشنایی با DialogResult و استفاده از آن در فرم هایی که می سازیمساخت جداول Order و OrderDetails برای ثبت سفارش و جزئیات آن و قرار دادن Cascade‌برای هماهنگی دو جدول ( با حذف سفارش اقلام سفارش نیز حذف شوند)چگونگی Update‌کردن EDM

----------


## gwbasic

مواردی که در این ویدیو قابل ملاحظه هست:
آشنایی با مفهوم Partial Classروش اضافه کردن پراپرتی و متد به  Entity Type های که با استفاده از Designer تعریف شدهساخت فرم ثبت سفارشارتباط برقرار کردن بین چند فرمفراخوانی فرم Customer در فرم Order برای انتخاب مشتریفراخوانی فرم Product  در فرم Order برای انتخاب کالاچگونگی اضافه و حذف کردن OrderDetail ها با استفاده از DataGridViewچگونه روی ستون کالا در گرید کلیک شود و فرم Product نمایش داده شود و کالا انتخابی در سظر جاری نمایش داده شود.محاسبه قیمت کل سفارشاستفاده از ObjectContext برای ردگیری تغییرات  Entity ها و ذخیره آنها در DataBaseگرفتن داده از یک ObjectContext و استفاده آن در ObjectContext دیگردلیل استفاده از Attach , Detach در ObjectContextحذف یک سطر (یک قلم کالا) از DataGridView و ObjectContext

----------


## gwbasic

سورس کد پروژه به همراه فرم Orders

سورس کد

لطفا در نظر سنجی شرکت کنید

----------

