در این تاپیک می خوام با مشارکت شما دوستان مراحل ساخت یه پروژه ساده رو آموزش بدم:
https://barnamenevis.org/showthread.p...71#post1376271
از این تاپیک می تونید برای بحث و مطرح کردن سوال و گذاشتن کدهاتون استفاده کنید
در این تاپیک می خوام با مشارکت شما دوستان مراحل ساخت یه پروژه ساده رو آموزش بدم:
https://barnamenevis.org/showthread.p...71#post1376271
از این تاپیک می تونید برای بحث و مطرح کردن سوال و گذاشتن کدهاتون استفاده کنید
با سلام خدمت استاد عزیز
می خواستم بدونم این کدها باید با sql باشه یا با access هم می شه.
ممنون
پس استاد چی شد . مامنتظریم ....
قرار دوستان تو این تاپیک کدهاشون رو بذارن تا بعد از بررسی کد نهایی رو توی تاپیک اصلی قرار می دم
سلام
من پروژه رو با EntityFrameWork نوشتم، خوشحال می شم نظرتون رو بگین.
با سلام
با اجازه از مدیر تاپیک که نقش استاد این تاپیک رو دارن من هم یک نظری هر چند ناچیز میدم که امیدوارم به سطح علمی شما کمک بکنه
اگر از طریقه نام گزاری ها یا شیوه نوشتن برخی شرط ها صرفه نظر کنیم و این رو بذارم پای این که کد رو سریع نوشتید و خواستید خروجی بگیرید فقط یک ایراد میشه از کدتون گرفت اونم اینه فرضا شما کد زیر رو در نظر بگیرید :
Customer Tcustomer = new Customer();
Tcustomer.Id = Guid.NewGuid();
Tcustomer.Name = txt_name.Text;
Tcustomer.Family = txt_family.Text;
نظر شخصی من اینه که کد بالا از لحاظ اصول کد نویسی و خوانا بودن و ..... از روشی که من در زیر نوشتم خیلی ضعیفتره.
var tcustomer = new Customer
{Id = Guid.NewGuid(), Name = txt_name.Text, Family = txt_family.Text};
به نظر من از این روش استفاده بکنید خیلی راحترید برای کد نویسی و هم اینکه کدتون اصولی تر میشه.
موفق باشید.
کسی که به خود اطمینان دارد به تعریف دیگران احتیاج ندارد. «گوستاو لوبون»
از Shahrzad87 صمیمانه تشکر می کنم که اولین کدو قرار داد، مرسی!!!
بابت نکته ای هم که mmd2009 عزیز (که همیشه لطفشون شامل حال بچه های سایت هست) اشاره کردن ممنونم. استقبال می کنم که بقیه دوستان هم به من کمک کنن. جناب mmd2009 اگه شما هم بتونید کدتون رو بذارید می تونه جنبه آموزشی خوبی داشته باشه ممنون می شم شما هم مشارکت کنین.
نکته ای رو که جناب mmd2009 اشاره کردن همون بحث object initializer هست که یکی از فیچر های سی شارپ ورژن 3 هست در کنار Linq. فقط در ادامه به این نکته می تونم اشاره کنم که این روش برای ساخت شی و مقداردهی اولیه دقیقا مثل حالتی هست که سازنده پیش فرض رو صدا می زنین یعنی اینکه در این حالت هم اول سازنده پیش فرض صدا زده می شه بعد کدهایی رو که در داخل آکولاد نوشته شده اجرا می شه. بنابراین با خیال راه می تونید جایگزین حالت قبل کنید. و همونطوری که اشاره کردن کد خواناتر خواهد بود البته این روش برای مقدار دهی محدودیت هایی داره که متاسفانه الان حضور ذهن ندارم.
بازهم تشکر میکنم. منتظر کدهای دوستانی که ابراز علاقه کردن هستم
سلام
این یک قسمت از پروژه حسابداری منه که قبلا" نوشتم و الان دارم تصحیح و تکمیلش می کنم
البته تا حدی مربوط به این تاپیک میشه
ممنون میشم تستش کنید و نظرتون رو بگید
http://www.4shared.com/file/_BcjukXw/Customer_2.html
اول تشکر می کنم از دوست خوبمون اقای gwbasic که توضیحاتی که من در شیوه نوشتن کد ندادم رو نوشتن و کارو برای خواننده واضح کردن.
با اجازه در مورد کد های اقای wolf_majid یک نظری هم میدم امیدوارم کارایی براتون داشته باشه.
نکته مثبت اولی که دیدم نوشتن Comment بود برای کدهاتون که واقعا بعد از مدتا یک همچین چیزی دیدم تو این بخش و امیدوارم همیشه به این روش Comment گذاری بکنید
من چندتا نکته در مورد کدهاتون میگم که البته این نظر شخصی منه و ممکنه خیلی ها این رو پسند نکنند
برای شروع به کد زیر نگاه کنید :
public string createCode()
{
DataTable dt = new DataTable();
dt = dal.Select(findCode);
if (dt.Rows[0][0].ToString().Trim() == string.Empty)
{
return "10001";
}
else
{
long lngNum = long.Parse(dt.Rows[0][0].ToString().Trim()) + 1;
return ("1" + (lngNum).ToString("D4"));
}
}
ببینید فرضا این شرط زیر :
dt.Rows[0][0].ToString().Trim() == string.Empty
برقرار بود شما یک مقدار بازگشتی دارید خب حالا دیگه نیازی نیست شما از else استفاده بکنید چون اگر برگرده دیگه اصلا شرط بعد هر چی باشه یا هر کدی باشه اصلا دیگه خوانده نمیشه پس این کد رو بخ این صورت بنوسید خیلی بهتره :
public string createCode()
{
DataTable dt = new DataTable();
dt = dal.Select(findCode);
if (dt.Rows[0][0].ToString().Trim() == string.Empty)
{
return "10001";
}
long lngNum = long.Parse(dt.Rows[0][0].ToString().Trim()) + 1;
return ("1" + (lngNum).ToString("D4"));
}
مقدار else در این جا یک مقدار زائد بود که من حذفش کردم.
حالا در همین متد کد زیر رو ببینید :
DataTable dt = new DataTable();
dt = dal.Select(findCode);
نظر من اینه که شما برای تعریف و انتصاب نیازی نیست در 2 خط این کد رو بنوسید کافیه به این روش کد رو اصلاح بکنید :
DataTable dt = dal.Select(findCode);
یک نکته ی دیگه هم که من تو خیلی از سایت های خارجی میبینم این کد زیر رو که شما می نویسید :
if (!manage.txtNull(_mytxtTell))
{
dgvShow.DataSource = Connect.filterWithTell(_mytxtTell.Text);
}
else
{
dgvShow.DataSource = Connect.selectAll_Farsi();
}
رو به شکل عملگرهای :? می نویسن که واقعا هم از نظر کد نوسی به نظر من استفاده از این عملگر ها ساده هست و نیازی به نوشتن if و else نیست البته درسته که اونا هم شرط هستند ولی نوشتنش حداقل برای من خواناتره
dgvShow.DataSource = !manage.txtNull(_mytxtTell) ? Connect.filterWithTell(_mytxtTell.Text) : Connect.selectAll_Farsi();
از بقیه لحاظ که صرفه نظر کنیم مثلا نام گذاری و روش های فرضا نوشتن ارایه ها که من خیلی حساس هستم به این روش کد نویسی ولی خب هر کس شیوه ای داره و نمیشه ایرادی گرفت چون به هر حال نوشتن هر چه راحتر کد بهتره البته راحت همراه با اصول کد نویسی. ولی در کل کد نویسی شما از نظر من اگر یک سری نکته رو در بتونید برطرف بکنید خیلی خوب هست
البته این حرفارو باید استاد های این انجمن بزنن نه من ولی خب چون اونا کمتر میان سر میزنن به همچین تاپیک هایی ما برای تبادل اطلاعات کدهای خودمون رو میذاریم و با هم مقایسه می کنیم
من هم همین برنامه رو به زودی می نویسم و میذارم و نظرات بقیه رو جویا میشم روی کدنویسی خودم که با هم بتونیم یک روش استاندارد تهیه بکنیم
موفق باشید.
کسی که به خود اطمینان دارد به تعریف دیگران احتیاج ندارد. «گوستاو لوبون»
واقعا" که شاهکار نظر دادید
خیلی خیلی سپاسگذارم
@wolf_majid : خواهش می کنم دوست عزیز.
دوستان نشد زیاد رو برنامه کار کنم و مانور زیادی روش بدم . اگر کمی و کاستی بود ببخشید ولی در هر صورت خوش حال میشم نظری بدید در مورد شیوه کد نوشتن من
این اسکریپت بانک :
USE [EntitySampleDatabase]
GO
/****** Object: Table [dbo].[Customer] Script Date: 11/16/2011 14:31:11 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Customer](
[IdCustomer] [bigint] NOT NULL,
[Name] [nvarchar](30) NOT NULL,
[Family] [nvarchar](50) NOT NULL,
CONSTRAINT [PK_Customer] PRIMARY KEY CLUSTERED
(
[IdCustomer] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
برنامه رو هم ضمیمه کردم
با تشکر
کسی که به خود اطمینان دارد به تعریف دیگران احتیاج ندارد. «گوستاو لوبون»
من این کد رو توی 5 دقیقه نوشتم، ساده نوشتم که برای دوستانی که با EntityFrameWork آشنا نیستن راحت باشه و خواستم پروژه رو شروع کنم تا بقیه هم بیان و نظر و کدهاشون رو بذارن، روشی که گفته بودین جالب بود، ممنون که وقت گذاشتین و ایرادهای کد رو گفتین
راستی پست مدیریت بخش رو هم بهتون تبریک می گم
به آقای جمشیدی هم تبریک می گم، امیدوارم با کمک شما همه تو برنامه نویسی بیشتر پیشرفت کنیم و یاد بگیریم که اصولی و بهینه کدنویسی کنیم.
قبل از هر چیز تشکر می کنم از تمام دوستانی که اینجا کدشون رو گذاشتن و مشارکت کردن. و تعجب می کنم از دوستانی که ابراز تمایل کردن ولی کدشونو نذاشتن. با مشارکت شما این تاپیک ادامه پیدا میکنه پس کم لطفی نکنین و شما هم تو بحث شرکت کنید وگرنه این تاپیک هم مثل خیلی از تاپیک های دیگه نا تمام رها می شه. مطمئن باشید تا خودتون کد ننویسید پیشرفتی حاصل نمی شه از هیچ چیزی هم نترسید. مطلب هم برای خوندن زیاده پس زیاد منتظر جواب نباشید چون تاثیری نمی ذاره این همه کتاب هست به فکر جمع آوری مطلب نباشید خودتون شخصا اقدام کنید.
خوب بریم سراغ دوستانی که کد گذاشتن
من فقط اینجا چند نکته رو برجسته می کنم تا بعد در ادامه بتونم ازش نتیجه گیری کنم.
اول شهرزاد خانم که زحمت کشید و اولین کد رو گذاشت.
1- برای هر عمل Insert یا update ای یک objectContext ایجاد کردن و یک شی از مدل که همون Customer هست ساختن و مقادیر کنترل های فرم رو توی شی ریختن و شی رو به objectContext اضافه کردن و برای ذخیزه در database متد SaveChangesرو فراخوانی کردن و درنهایت datagridرو updateکردن و objectContextرو dispose کردن البته با استفاده از using این عمل بطور اتوماتیک انجام می شود.
2- اگر کاربر سطری از گرید رو انتخاب کرد مقادیرش داخل textBox ها نمایش داده می شود.
آقای mmd2009 هم تقریبا به همین شکل عمل کردن ولی خوب dataGridView توی فرمشون نداشتن.
حالا سوالی که مطرح هست اینه که مدلی که توی objectContext ما توسط Designerساخته می شه یعنی همون customer فقط استفادش اینه که موقع ذخیره یا ویرایش مقداری توش ریخته بشه و این شی فقط واسطی برای ذخیره مقداری توی database هست؟
و اینکه آیا ما باید مستقیم با کنترل های فرم کار کنیم یا اینکه این مدل customer می تونه بیشتر به ما کمک کنه
برای اینکه جواب این سوال رو بگیرید توصیه می کنم به تاپیک زیر مراجعه کنید.
https://barnamenevis.org/showthread.p...-Data-Binding
در ادامه من کد پیشنهادیم رو با توضیحات بیشتر خواهم گذاشت
اما در مورد آقای wolf_majid هم باید به این نکته اشاره کنم که کدها خوب بودن اما چون از EntityFramework استفاده نکردن خوب برای ارتباط با Database کدهای بسیار زیادی نوشتن که با وجود یه همچین ابزارهایی دیگه نیازی نیست به این شکل کد نویسی کرد. در مورد فرمتون کد زیادی نوشتین می شه اینا رو به طرق مختلف تقسیم بندی کرد تا کدی کمتری توی فرم اصلی قرار بگیره مثلا به عنوان مثال شما برای گرفتن عدد یا همون پول از یک textBox استفاده کردین که چند رویداد برای اون گذاشتین و اعداد رو به وسیله کاما سه رقم سه رقم جدا کردین. ممکنه توی فرمتون چند textBox داشته باشین که بخواین کاربر مقدار عددی (پول) وارد کنه اونوقت باید بازم این کدارو تکرار کنید. راه بهتر اینه که یه کنترل جدید می نوشتید که از textBox ارث ببره و این کدها رو یکبار و فقط توی این کنترل می نوشتید به این شکل دیگه هرجا لازم بود این کنترل رو جای textBox توی فرم می انداختین
فعلا تا اینجا رو از من قبول کنید تا زیاد از بحث خارج نشیم
خواهشی که دارم کدهاتون رو حتی الامکان کوتاه بنویسید تا بررسیش وقت کمتری بگیره!
حق با شماستاما در مورد آقای wolf_majid هم باید به این نکته اشاره کنم که کدها خوب بودن اما چون از EntityFramework استفاده نکردن خوب برای ارتباط با Database کدهای بسیار زیادی نوشتن که با وجود یه همچین ابزارهایی دیگه نیازی نیست به این شکل کد نویسی کرد. در مورد فرمتون کد زیادی نوشتین می شه اینا رو به طرق مختلف تقسیم بندی کرد تا کدی کمتری توی فرم اصلی قرار بگیره مثلا به عنوان مثال شما برای گرفتن عدد یا همون پول از یک textBox استفاده کردین که چند رویداد برای اون گذاشتین و اعداد رو به وسیله کاما سه رقم سه رقم جدا کردین. ممکنه توی فرمتون چند textBox داشته باشین که بخواین کاربر مقدار عددی (پول) وارد کنه اونوقت باید بازم این کدارو تکرار کنید. راه بهتر اینه که یه کنترل جدید می نوشتید که از textBox ارث ببره و این کدها رو یکبار و فقط توی این کنترل می نوشتید به این شکل دیگه هرجا لازم بود این کنترل رو جای textBox توی فرم می انداختین
اما همانطور که گفتم من این پروژه را قبلا" (بیش از یک سال پیش نوشتم) و الان قصد تصحیح و تکمیلش رو دارم
اون موقع هنوز با سایر سربارگذاریهای tostring آشنا نبودم
اما حتما" تصحیحشون می کنم
ممنون از پاسختون
ببخشید میشه مال منم یه نگاهی بندازید
آخرین ویرایش به وسیله haniyehghassami : چهارشنبه 25 آبان 1390 در 21:47 عصر
سلام به همه
منم یه خورده کد زدم یه نیگاه بهش بندازین
فقط یه مشکل داره بار اول تو بانک ذخیره میکنه ولی برای داده بعدی که میخوای ذخیره کنی خطا میده و باید برنامه رو ببندی و از دوباره اجرا کنی
http://www.persiangig.com/pages/down...p/customer.rar
ببخشید که هنوز نتونستم آموزشی بذارم.
امروز داشتم ویدیویی آماده می کردم که متاسفانه هارد اصلیم مثل اینکه سوخت. فعلا که 1 ترابایت اطلاعاتم به فنا رفته نمی دونم باید چکار کنم. عذر منو بپذیرید.
دعا کنید درست شه!!!
سلام
ببخشید من بی علم تر از ان هستم که ازتون ایرادی بگیرم اما فکر میکنم اگر فقط از یک نوع کدنویسی برای ذیتابیس استفاده میکردین راحت تر بودین
2 اینکه idدر دیتابیس باید از نوع unidentified باشه و در قسمت کد نویسی اینجور مقدار بگیره تا یه کد منحصر به فرد شامل رقم و حروف درست بشه
id=Guid.new();
//برای تبدیل کردن به این نوع هم باید نوشت
id=(Guid) datagrid.rows(i).cells[0].value;
حالا اگه entity framework اشنا بشیم تمام این کدنویسی های زیادی تمام میشن
با تشکر از دوستان
من تو این چند روز با دستورات ابتدایی oledb و sql تونستم مرحله اول پروژه رو بنویسم ولی وقتی دیدم اساتید دارن از entity framework استفاده می کنن من روم
نیومد برنامه ی ساده و پیش پا افتادمو رو کنم.
از جناب استاد gwbasic و کلیه استاتید خواهش می کنم که در خصوص یاد گیری مفهومی و عمقی entity framework به بنده هم که تازه کار هستم کمک کنید.چ
ممنون از همه استاتید.
با سلام خدمت دوست عزیزم haniyehghassami
شما می تونی راجع به entity framework یه منابعی چیزی معرفی کنی .
ممنون می شم. اگه خودت هم تونستی توضیح بدی که ممنون
از بچه ها دعوت می کنم تا قسمت اول هنوز اماده نشده لطفا پروژه های خوذشون را این جا بگذارن
جا داره از کسانیکه پروژه هاشون گذاشتن تشکر کنم..........................
من منتظر پروژه های شما دوستان هستم،هرجور که نوشته باشین خوبه فقط قصد اینه که شیوه صحیح کدینگ را همه یاد بگیرند
پس یا علی
با تشکر از دوست عزیزم haniyehghassami
ممنون که این قدر مشتاق و پیگیر هستی .
و از استاد هم جناب آقایgwbasic در خواست دارم تا سریعتر آموزش entity رو شروع کنه؟
فقط یه سوال هر چی دوستان کد گذاشتون با vs 2010 بوده یعنی با 2008 نمی شه entity کار کرد. اگه جواب مثبته چند نمونه مثال واسم بذارین .
ممنون می شم.
و اینکه یاذتون باشه entity تنها در DonNet framework 4 فابل اچرا هستش
بفرمایید
اگر بتونم جواب میذم بهتون حتما
دوست عزیز در نسخه 3.5 هم وجود داشت entity
این عکس زیر هم ببینید کاملا متوجه میشید :
Untitled.png
موفق باشید
آخرین ویرایش به وسیله mmd2009 : شنبه 28 آبان 1390 در 00:26 صبح
کسی که به خود اطمینان دارد به تعریف دیگران احتیاج ندارد. «گوستاو لوبون»
سلام این روش کد نویسی منه تو این برنامه فقط درج را نوشته ام و بر اساس 3 لایه حالا نمیدونم درست کار کرده ام یا نه اسکریپ بانک را هم گذاشتم اسکریپ همنام با بانکه توی تعریف ای دی تا حالا از این نوع استفاده نکرده ام نمیدونستم به چه طریق استفاده کنم uniqueidentifier
نظرااتونو منتظرم ببینم
فایل
http://s2.picofile.com/file/71877017...eshat.exe.html
سلام
فاز اول به صورت فیلم اموزشی اماده شده
هوراااااااااااااااااااااا ااااااااااااااااااااا
برید بگریدش و ببینید و سوالاتتون اینجا مطرح کنید
ما منتظریم..............................
دستت درد نکنه بابت آموزش ... فایل منو هم دانلود کنید در چند تاپیک قبلی و نظراتونو بگید
در فیلم آموزشی به راحتی با کمترین کد میشه برنامه را نوشت امت می خواهم بدونم تو بخش 3 لایه باید به چه طریق استفاده کرد
و بعد داخل فیلم از یک storemodel ایجاد کرده اید اما هیچجا ندیدم استفاده بشه همش با دیتا بیندینگ استفاده شد
و اون مشکل که در xml به صورت دستی تصحیح کردید فقط تو طراحی با این مشکل بر می خوریم تو اتمام برنامه وقتی پروژه تمام شد چی به مشکلی بر نمیخوره
لطفا هر چه زودتر آموزشهای بعدی را بزار میخواهم پروژه جدیدم را با این روش درست کنم با کدهای بهینه تر
دستت درد نکنه
دوستان فایل ویدیو رو تصحیح کردم و دوباره گذاشتم. حجمش نصف شد حدود 27mg. البته هنوز یه قسمتهایش مونده که با کدش بعدا میذارم
جناب Noroozifar کدتون رو دیدم خیلی خوب بود منتها چون به این روش نمی خوایم کار کنیم و از entityframework استفاده می کنیم بنابراین اجازه بدید من دبگه نظری ندم فقط خواهشی که ازتون دارم این کدتون رو در بخش پروژه های open source قرار بدین ٰدیدنش می تونه آموزنده باشه.
در مورد سه لایه یا بهتر بگم چند لایه اجازه بدید در فازهای بعدی صحبت کنیم
stroemodel همون فایل EDM ما هست که کدهای مربوط به کار با entityframework اونجا تعریف شده تمام کلاسهای متناظر با جدوال دیتابیس و کلاسی که همه entity ها رو در بر داره و از objectContext مشتق می شه در این فایل تعریف میشه
اون مسئله ای هم که در فایل xml به طور دستی نوشتم هم مشکلی ایجاد نمی کنه مگر اینکه فایل توسط Designerدوباره تولید بشه که چون از بین می ره ما باید یادمون باشه که دوباره بنویسیم ( فرصت نکردم راه بهتری پیدا کنم)
در ضمن آموزشها به مرور آماده می شه و من چیزی الان آماده ندارم. لطفا صبر داشته باشین!
اگه تو فایل XML تغییری ندیم چه اتفاقی میفته؟؟؟
من تغییرش ندادم و در ظاهر هیچ اتفاقی نیفتاد و برنامه هم به درستی کار میکنه!
من خودم با معماری 3لایه و ADO.net کار میکنم، میخواستم بدونم آیا این روش (Entity Framework ) نسبت به ADO.net سرعت بیشتری داره؟؟؟
سلام
من فیلم اموزشی رو دیدم چندتا سوال داشتم :
1 - اگر بخواهیم محتویات یک تکی باکس را همزمان توی 2 تا جدول بریزیم باید چه جور عمل کنیم ؟
2 - اگر بخواهیم یک سری از اطلاعاتمون که مثلا توی تب اول ثبت که شد، اون ایدی که جدید ایجاد شده را بخواهیم از جدول بگیریم که اطلاعات مربوط به جدول دوم را با همین ایدی که جدید ایجاد شده ثبت کنیم باید چه جوری عمل کنیم؟
3 - این کانکشن که ما ایجاد میکنیم از توی ویزارد ایا روی هر سیستمی به صورت محلی یا لوکال جواب میده؟(مثل وقتی که جای اسم سیستم نقطه میگداریم) اگه بخواهیم اونجوری کار کنیم کجای کدنویسی باید اسم سرور را به برنامه بدیم؟
4 - چرا context را در زمان بستن فرم dispose کردین؟ و چرا null کردین؟ فرقشون چیه؟ مگه dispose از بین نمیبردش؟ پس چرا باید هم dispose بشه هم null؟
5 - چرا تابع () context.SaveChange را مستقیم تو رویداد کلیک صدا نکردین؟ چه فرقی داره که توی متد جدا گذاشتین و متد را صدا زدین؟
ببخشیدا، من یک مبتدی هستم هنوز راه نیفتادم
اگه من اشاره کردم که فعلا هر طوری که می تونید با database ارتباط برقرار کنید برای اینکه دوستان نترسن و بتونن کدهاشون رو بذارن و همچنین با دیدن کدهای مختلف بتونیم تفاوت رو حس کنیم
درضمن در مورد آموزش EntityFramework و یا کلا هر تکنولوژی دیگر من پیشنهاد می کنم حداقل یک کتاب مطالعه کنید (البته شاید در آینده آموزشی گذاشتم) چرا فکر می کنید توی فورم یک نفر باید از صفر یه چیزی رو آموزش بده در ضمن اگه کسی هم یه کاری رو شروع می کنه جایگاه شما چیه فقط یه استفاده کننده نباید کسی مشارکت کنه!!! ما عادت کردیم دنبال لقمه آماده بگردیم. آقای محبی توی لینک زیر مطلب جالبی رو اشاره کردن که در دل من هم هست Forum Driven Development که ما تصمیم می گیریم کاری انجام بدیم بدون اطلاعاتی بعد میریم توی یک فروم سوال کلی رو مطرح می کنم و توقع داریم یکی بیاد از سیر تا پیاز بهمون آموزش بده.
http://blog.afsharm.com/2011/11/foru...velopment.html
پیشنهاد می کنم کتاب Apress pro entity framework 4.0 رو که حدود 250 صفحه هست در حد حداقل چند فصل مطالعه کنید و یا کتابی رو که آقای بهروز راد ترجمه کردن رو مطالعه کنید (نمی دونم ترجمه همین کتاب هست یا نه)
مرسی از سوال های خوبتون
1- من سعی دارم این روش کدنویسی رو توضیح بدم که کنترل های روی فرم به یه موجودیت وشی ای بایند هستند. کاش یه مثال می زدین ولی در کل فرض کنید ما یک شی در context داریم از جنس Customer و یک شی دیگه داریم از جنس Product خوب این دو شی رومی تونیم هرجور که دوست داریم پر کنیم مثلا مقدار Text یک TextBox رو به یک پراپرتی از Customer و یک پراپرتی از Product بدهیم و در نهایت SaveChanges رو صدا بزنیم تغییرات ذخیره خواهد شد.
2- در مورد این سوال وقتی فرم Order رو بخواهیم بسازیم جوابتون رو خواهید گرفت در ضمن باز به ین نکته اشاره می کنم که بهتره با شی کار کنیم نه اینکه ID بین فرمها جابجا کنیم.
3- بحث Connection string هم که مستقل از EF هست. اما معمولا توی App.Config این مقدار تنظیم می شود. در مورد امنیتش هم نکته دیگری هست که می تونیم اونو Encrypt کنیم یا اصلا یک dll برای اون بنویسیم. که بحث جداگانه ای رو می طلبه
4- معمولا اشیاء سنگین و یا اشیایی که منابع از سیستم می گیرند را باید در اولین فرصت آزاد کنیم. ObjectContext هم از این دسته هست. و اما اینکه چرا null می کنیم کار از محکم کاری عیب نمی کنه!!!
5- وقتی پشت یک رویداد می خوایم عملی رو انجام بدیم بهتره که اون عمل رو توی یک متد بنویسیم و سپس متد رو فراخوانی کنیم. مزیت این کار اینه که هم به خوانایی کمک می کنه هم اینکه ممکنه فرضا هنگام ذخیره بخوایم کار دیگه ای رو انجام بدیم مثلا فرم رو پاک کنیم پس بهتره همه این موارد بصورت یک پارچه در یک متد قرار بگیره حتی اگه بخوایم این متد رو فقط یک جا صدا بزنیم
میشه جواب من رو هم بدید؟!
اگر از vs 2008 استفاده مي كنيد بايد SP1 اش رو نصب كنيد.فقط یه سوال هر چی دوستان کد گذاشتون با vs 2010 بوده یعنی با 2008 نمی شه entity کار کرد. اگه جواب مثبته چند نمونه مثال واسم بذارین .
قفل مخفی تلگرام، واتس اپ و همه برنامه ها - قفل حرفه ای برای دستگاه اندرویدی شما - با امکان مخفی شدن و جلوگیری از Unisntall شدن
--آموزش ایجاد برنامه های چند زبانه در WPF
-BeRMOoDA File Encrypter-open source-using WPF, C# and MVVM Pattern
-نمونه برنامه ساده و کامل با الگوی MVVM برای کار با دیتابیس با استفاده از Entity Framework در WPF
-WPFMessageBox فارسی/انگلیسی - با قابلیت تغییر Skin
شما از چه نسخه ای از Visual Studio استفاده می کنید 2010. آیا سرویس پک یک رو نصب کردید؟ وقتی چند آیتم رو اضافه می کنید موقع ذخیره مشکلی پیش نمیاد؟!
در مورد EF هم باید بگم که چیزی جدا از ADO.Net نیست و در برخی موارد هم چون Command نهایی رو خودش تولید می کنه و چون این Command بهینه هست سرعت بیشتری نسبت به استفاده از روش استفاده از DataSet و ساختن Command توسط خودمون رو داره