روی یه پروژه ی شخصی دارم کارم میکنم تحت معماری سه لایه، اما فعلا تو همون لایه ی DAL لنگ موندم
میخوام تا یه جاهایی از کاره همین لایه هم به صورتی باشه که تو پروژه های دیگه هم بشه ازش استفاده کنم.
کلاسایی که تا اینجا تعریف کردم به صورت زیر بوده:

1- یه کلاس به اسم ConnectionManager که به صورت sealed تعریف شده با سازنده ی private و متدهایی static برای خوندن کانکشن استرینگ از کانفیگ و ایجاد کانکشن و همینطور دوتا متد برای open و close کردن کانکشن

2- یه کلاس به اسم DbUtility که به صورت abstract تعریف شده که یه سری متدهای پایه ای مثل ایجاد کانکشن( با استفاده از متدهای کلاس بالا)، ایجاد یک SqlCommand و اختصاص اون کانکشن به SqlCommand و متدایی دیگه مثه انواع Execute کردن ها و ...

این تا اینجای کار بود....
=====>حالا چندتا ابهام دارم!

من میخوام الان یه کلاس بنویسم واسه انجام کارایی مثله Select و Insert و Update و Delete و البته به هردو روش متصل و غیر متصل!
حالا چندتا سوال دارم:
1- بیام این متدهارو توی کلاس Dbutility به صورت Abstract تعریف کنم و بعد دو کلاس جدا تعریف کنم و این متدها رو یه بار به صورت متصل و یه بار غیر متصل توش پیاده کنم؟
2- بیام این متدهارو توی یه Interface قرار بدم و بعد بیام این دوتا کلاس متصل و غیر متصل رو بنویسم؟
3- اصلا 2 تا کلاس جداشون کنم درسته یا غلط؟
ووووو

4- میدونم که روش اصولی اینکار استفاده از Design Pattern هاست، اما در حد آشنایی مطالعه کردم دربارشون! و دقیق نمیدونم از کدوم الگو باید استفاده کنم واسه انجام این کارا! و چجوری پیاده سازیش کنم
میخواستم اگه امکان داره دوستانی که تجربه ی عملی کار با معماری سه لایه و استفاده از الگوهای طراحی رو دارن راهنماییم کنن، تو اینترنتم زیاد گشتم اما یه چیزه کامل و کاربردی دستگیرم نشده، همه اشون مثالای ناقص و جسته گریخته هستن
این چیزیه که واقعا همه ی مبتدیای مثل من واسه پیشرفت یادگیری بش نیاز داریم
پیشاپیش ممنونم از کمکتون.

پ ن : من قبلا php کار میکردم، و جدیدن اومدم سمت .net یه چند ماهی میشه . مشکلی هم با سی شارپ ندارم و الانم 2 هفته اس mvc رو شروع کردم
خیلی مشتاقم و علاقه دارم اصولی برنامه نویسی کنم و پروژه هام رو حرفه ای کار کنم (نه مثله قدیما...)


جدیدترین سوالات

در قسمت 9 ویدیو یاد داده شد که چگونه دو تا ایتم به سبد خرید اضافه کنیم با این کد ها

  protected void AddToShoppingCart_Click(object sender, EventArgs e)
 
{

Button btn = (Button)sender;
if (Session["shoppingCart"]!= null)
{
Session["shoppingCart"] += "," + btn.ToolTip;
}
else
{
Session.Add("shoppingCart", btn.ToolTip);

}

// Response.Redirect("shoppingCart.aspx");
}


و این کد
protected void Page_Load(object sender, EventArgs e) { if (Session["status"] != null && Session["status"].ToString() == "Login") { //successful login sql_addedProds.SelectCommand = "SELECT * FROM [Products] WHERE ([id] in (" + Session["shoppingCart"].ToString() + "))"; } else { Response.Redirect("login.aspx"); } }
ولی وقتی دو ایتم یه سبد اضافه می کنم این ارور را می دهد
Server Error in '/' Application.
Input string was not in a correct format.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.FormatException: Input string was not in a correct format.

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace:


[FormatException: Input string was not in a correct format.]
System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal) +14286670
System.Number.ParseInt32(String s, Num
{
if (Session["status"] != null &&
Session["status"].ToString() == "Login")
{


//successful login
sql_addedProds.SelectCommand = "SELECT * FROM [Products] WHERE ([id] in ("
+ Session["shoppingCart"].ToString() + "))";


}
else
{
Response.Redirect("login.aspx");
}




جستجو در بانک سوالات
در این قسمت می توانید بخشی از متن سوال را وارد نموده و به دنبال سوال مورد نظر خود بگردید:

بخشی از متن سوال:

برنامه نویسی c#

برنامه ای بنویسید که با استفاده از یکtextBoxیک عددی از ورودی دریافت کنه که اون عدد بین 2تا10 باشه و باتوجه به دادهی ورودی فاکتوریل عدد ورودی رو حساب کنه و در یک lableچاپ کنه. علاوه براین عدد فاکتوریل محاسب شده را 5بار انجام بده وحاصل را در ارایه نیز قرار دهد .حال اگر حاصل فاکتوریل ها اعداد زوج بود رنگ مستطیل ها ابی و اگر فرد بود رنگ مستطیل ها قرمز شود لطفا اگر بلدید زودتر پاسخ بدین خواهش میکنم ازتون



0
امتیاز

جواب های موجود برای این سوال:


ازین پس می توانید به کاربرانی که دوست دارید هدیه بدهید! کافیست بر روی علامت    در کنار تصویر آنها کلیک کنید!

1


جواب برای این سوال ثبت شده است!

تازه ترین


جواب ها رو اول نشون بده

پرامتیاز ترین


جواب ها رو اول نشون بده

1 جواب برای این سوال ثبت شده!

چینش بر اساس زمان ثبت


چینش بر اساس امتیاز


اول از همه بیا به سوال اصلی بپردازیم که چطور می‌تونیم برنامه‌ای بنویسیم که فاکتوریل یک عدد رو حساب کنه و اونو توی یک لیبل نمایش بده. من با فرض اینکه تو می‌خوای این کارو با زبان برنامه‌نویسی C# انجام بدی، یک مثال ساده آماده کردم.

فرض کنیم که داریم از ویندوز فرم‌های C# استفاده می‌کنیم، برای نوشتن چنین برنامه‌ای نیاز داریم که:
1. یک `TextBox` برای ورود عدد توسط کاربر داشته باشیم.
2. یک `Button` برای اجرای محاسبه فاکتوریل.
3. یک `Label` برای نمایش نتیجه فاکتوریل.
4. یک آرایه برای ذخیره نتایج پنج مرتبه محاسبه فاکتوریل.
5. تغییر رنگ بر اساس زوج یا فرد بودن عدد فاکتوریل.

کد مربوط به محاسبه فاکتوریل و ذخیره در آرایه به صورت زیر خواهد بود:


 
private void factorialButton_Click(object sender, EventArgs e)
{
int inputNumber;
if(int.TryParse(textBox1.Text, out inputNumber) && inputNumber >= 2 && inputNumber <= 10)
{
int[] factorialResults = new int[5];
int factorial = 1;
for (int i = 1; i <= inputNumber; i++)
{
factorial *= i;
}
label1.Text = factorial.ToString();

for (int i = 0; i < 5; i++)
{
factorialResults[i] = factorial;
// اینجا می‌تونیم رنگ مستطیل‌ها رو تغییر بدیم
// برای نمونه می‌تونیم از شرط زیر برای تشخیص زوج یا فرد بودن استفاده کنیم
if(factorial % 2 == 0)
{
// رنگ آبی برای مستطیل - مثلا با استفاده از کنترل RectangleShape از Visual Basic PowerPacks
// rectangleShape1.FillColor = Color.Blue;
}
else
{
// رنگ قرمز برای مستطیل
// rectangleShape1.FillColor = Color.Red;
}
}
}
else
{
MessageBox.Show("لطفا یک عدد بین 2 تا 10 وارد کنید.");
}
}


توی کد بالا، اول از همه چک می‌کنیم که عدد ورودی در بازه معتبر (۲ تا ۱۰) قرار داره یا نه. بعد فاکتوریل رو محاسبه می‌کنیم و در آخر حاصل فاکتوریل رو درون آرایه ذخیره می‌کنیم. البته فرض کردیم که می‌خوایم رنگ مستطیل‌هایی رو عوض کنیم، ولی
لطفاً توجه داشته باشید این پاسخ توسط هوش مصنوعی و به صورت خودکار تولید شده و ممکن است دقت کامل را نداشته باشد و حتی در مواردی کاملا اشتباه باشد. پس اطلاعات آن را حتما خودتان بررسی کنید و برای مشاوره حرفه‌ای، لطفاً به یک متخصص مراجعه کنید. ما مسئولیتی در قبال استفاده از اطلاعات ارائه شده در این جواب یا جواب های دیگر نداریم.


0





جواب تو چیه؟
userImage
کاربر میهمان

25000 امتیاز هدیه بهترین جواب

30000 امتیاز هدیه بهترین جواب

27500 امتیاز هدیه بهترین جواب


22500 امتیاز هدیه بهترین جواب



















پرسش سوال جدید :: تبلیغات در سوال و جواب :: گروه های سوال و جوابی

تمامی حقوق مادی و معنوی، متعلق به وب سایت سوال جواب (soja.ai) و تیم مدیریتی آن می باشد.

طراحی و اجرا : گروه مشاوران فناوری اطلاعات

پاسخ های موجود در سایت توسط کاربران سایت ثبت می شود،
سایت سوال و جواب هیچ مسئولیتی در قبال صحت و محتوی پاسخ ها ندارد، هرچند تا حد امکان نظارت بر محتوی آنها صورت می گیرد.