PDA

View Full Version : سوال: چگونه در asp.net razor کلاس بسازیم ؟



حمید . ه
شنبه 11 خرداد 1392, 14:22 عصر
چطوری میتونم داخل razor یه چیزی شبیه به کلاس بسازم ؟
از انجمن خود asp.net که پرسیدم گفتند یا از controller استفاده کن یا model . حالا مشکل اینجاست که من اصلا نمیدونم طرز کار اینها رو . اگه شما هم باهاشون موافقید پس اگر امکانش هست یه توضیحی در مورد این چیزایی که گفتم بدید یا لینکی بدید که مراجعه کنم بهش . ممنون

مهدی کرامتی
شنبه 11 خرداد 1392, 15:16 عصر
شما اول باید طرز کار Razor را یاد بگیرید. Razor چیزی نیست جز کد سی شارپ. برای ساخت کلاس، یک کلاس عادی به پروژه اضافه کنید و چیزهای مورد نیاز رو در اون بنویسید، سپس در Razor ازش استفاده کنید.

اگر این پاسخ کافی نیست توضیح بیشتری بدید تا می خواهید چه کار کنید.

حمید . ه
شنبه 11 خرداد 1392, 22:13 عصر
ببینید من زمانیکه با web form کار میکردم یک کلاس ساختم که داخلش همه عملیات های بانکی رو به تابع تبدیل کردم و یک سری تابع های دیگه هم که خیلی استفاده میکردم رو داخلش قرار دادم تا حجم کدنویسی کم بشه . حالا همین کارو من میخوام برای razor انجام بدم . البته میدونم که نحوه بازیابی اطلاعات و دسترسی به پایگاه داده خیلی تغییر کرده نسبت به web form ولی هنوز توابعی وجود داره که باید به شکل کلاس ازشون استفاده کنم . حالا چطوری میتونم این کارو بکنم ؟

مهدی کرامتی
شنبه 11 خرداد 1392, 22:48 عصر
مثل سابق. یک کلاس بسازید، هر جا لازمه فراخوانی اش کنید.

حمید . ه
شنبه 11 خرداد 1392, 22:55 عصر
مشکل اینجاست که نحوه کد نویسی مثلا برای اتصال به بانک برای razor فرق کرده . اول همین کار رو خواستم انجام بدم ولی خیلی مشکل خوردم . داخل انجمن asp.net هم نوشته بود که چیزی به مفهوم کلاس در razor نداریم و باید از مدل سازی و کنترلر ها استفاده بشه

مهدی کرامتی
یک شنبه 12 خرداد 1392, 00:04 صبح
فکر کنم شما اشتباها دارید به ASP.NET MVC می گوئید Razor.

در ASP.NET MVC برای دسترسی به داده ها از Linq to Entities استفاده می شود، کافی است کار کردن با Linq و Entity framework را یاد بگیرید.

حمید . ه
یک شنبه 12 خرداد 1392, 00:07 صبح
نه asp.net mvc 4 همون razor هست .
این Entity framework رو جای دیگه هم شنیده بودم . میشه بیشتر دربارش توضیح بدبد ؟ لینک آموزشی چیزی هست که بتونم یاد بگیرم از روشون ؟

parvizwpf
یک شنبه 12 خرداد 1392, 01:44 صبح
ef یک orm برای کار با دیتا میباشد.
اصولا توی mvc دو نوع کارکرد با صفحات داریم: 1- razor
2- web form
شما همینجا هم میتونید کلاس داشته باشید. منتها باید بدونید که چطور دیتای خود رو به سمت view ها ببرید.
برای این کار میان مدلی از نوع دیتا رو سمت ویو تعریف میکنن . حالا ویو آمادس تا دیتا بهش پاس داده بشه. دیتا از طریق کنترلر شما به ویو شناسایی میشه جایی که شما کوئری هاتون رو مینویسید(نه لزوما همیشه). حالا دیتا کجا میره؟ میره تو بخش model . مدلها همون جداول یا مخزنهای اطلاعاتی شما هستن.
بهترین روش یادگیری اینها :
www.asp.net/mvc

مهدی کرامتی
یک شنبه 12 خرداد 1392, 03:26 صبح
نه asp.net mvc 4 همون razor هست .
Razor یک View Engine است که در ASP.NET MVC استفاده می شود.

forestasphalt
یک شنبه 12 خرداد 1392, 10:04 صبح
آقای کرامتی یه سوال!
در razor میتونیم از دستور زیر استفاده کنیم database.query یا دستورهای مشابه برای کوئری نوشتن به صورت sql استفاده کنیم(احتمالا اینو گذاشتن که اگه ویژگی مورد نظر ما باشه که در linqیا ef قابل انجام نبود از این روش استفاده کنیم درست میگم؟)
به نظرتون چرا این امکان رو گذاشتن؟معماری جداسازی لایه ها رو بهم نمیزنه؟
با تشکر

مهدی کرامتی
یک شنبه 12 خرداد 1392, 11:01 صبح
استفاده از EF در MVC اجبار نیست. شما می توانید در MVC از هر تکنولوژی دسترسی به DB به غیر از EF نیز استفاده کنید، اما دیگه خبری از تولید همه چی بدون زحمت نیست.

اگر چنین چیزی خواستید البته می توانید قالب های T4 پیش فرض ویژوال استودیو برای تولید Controller و View ها را دستکاری کنید که Query زدن روی دیتابیس و کار کردن با نتایج آن در View را به صورت دلخواه شما انجام دهد.

forestasphalt
یک شنبه 12 خرداد 1392, 11:23 صبح
بله حق با شماست دردسر خیلی زیاد داره!
من بیشتر منظورم این بود که چرا همچنین امکانی رو در view سایت گذاشتن؟
برای کار با تکنولوزی های دیگه مثلا همین ado.net کلاسیک میشه داخل قسمت منطق برنامه استفاده کرد نه در قسمت نمایش
با تشکر

مهدی کرامتی
یک شنبه 12 خرداد 1392, 12:14 عصر
در MVC هم میشه گفت تمام اعمال مربوط به دیتابیس در Controller (همون Code Behind سابق) انجام میشه. چیزی که به کمک Razor در View ها نوشته میشود جهت نمایش اون داده هاست.

حمید . ه
دوشنبه 13 خرداد 1392, 19:57 عصر
خیلی ممنون از همه دوستان که کمک میکنند . ولی دقیقا مشکل من با کار کردن با همین مدل ها و کنترلر هاست . من مفهوم ، تفاوت ، کارایی و نحوه استفاده از این هارو درست متوجه نشدم نمیدونم شایدم بد متوجه شدم . اگر کسی از دوستان یه مقاله کلی در مورد اینها داره میشه معرفی کنه ؟ اگه فاسی هم باشه که دیگه عالیه

forestasphalt
سه شنبه 14 خرداد 1392, 00:14 صبح
کتاب آقای بهروز راد واقعا عالیه،واقعا هر خط کتاب ایشون ارزش چندین بار مطالعه کردن رو داره

mo.esmp
سه شنبه 14 خرداد 1392, 00:47 صبح
آقای کرامتی یه سوال!
در razor میتونیم از دستور زیر استفاده کنیم database.query یا دستورهای مشابه برای کوئری نوشتن به صورت sql استفاده کنیم(احتمالا اینو گذاشتن که اگه ویژگی مورد نظر ما باشه که در linqیا ef قابل انجام نبود از این روش استفاده کنیم درست میگم؟)
به نظرتون چرا این امکان رو گذاشتن؟معماری جداسازی لایه ها رو بهم نمیزنه؟
با تشکر
چون سمت View میشه هر کاری میشه کرد دلیل نمیشه شما بیایید توی View مشغول به نوشتن Logic بشی و یا اینکه مستقیمن با DataAccess کار کنی. هیچ منتقی نمیگه Business logic رو توی Hmtl بکار ببری.

younesdoost
چهارشنبه 15 خرداد 1392, 00:31 صبح
می تونید تو پروژتون یه فولدر به نام Components بسازید و بعد یه کلاس به اسم Utility داخلش ایجاد کنید و بعد همه توابع رو به فرم public static اونجا تعریف کنید و هر جا خواستید تو view ازش استفاده کنید.

حمید . ه
چهارشنبه 15 خرداد 1392, 18:43 عصر
کتاب آقای بهروز راد واقعا عالیه،واقعا هر خط کتاب ایشون ارزش چندین بار مطالعه کردن رو داره
از راهنماییتون ممنون ولی میشه اسم کتاب رو هم بدید و اینکه مال کدوم انتشاراته ؟

forestasphalt
شنبه 18 خرداد 1392, 17:53 عصر
مرجع کامل asp.net mvc انتشارات پندار پارس