ورود

نسخه کامل مشاهده نسخه کامل : ارتباط فایل ها



alireza1411
27-03-2011, 13:52
اول از همه سال نو رو بر همه ی هم میهنان گرامی تبریک میگم.
بچه ها من میخوام ارتباط فایلها رو تو انواع پرو ژه هایی که تو ویژوال استدیو 2010 تشکیل میدیم بدونم.
مثلا بدونم یک پروژه از نوعMVC که شامل سه قسمت "کنترل "و"ویو"و"مدل" هست فای لهاش چه ازتباطی با هم دارن؟
(یعنی مثلا تو یکی کلاسش رو میسازیم و تو اون یکی از اون کلاس شیی میسازیم و در سومی هم مثلا توابع شی ای که ساختیم رو فراخوانی میکنیم.
در کل وظایف فایلها و نقش هر کدوم تو پروژه.
من تازه کارم .کلیت کدها رو میفهمم ولی نمیدونم که جای نوشتنشون کجاست.:41:
دنبال یک طبقه بندی برای مطالب میگردم؟

_H2_
28-03-2011, 19:41
سلام
در واقع MVC یک جور تفکر لایه بندی سازمان یافته شده است.

محل و بخش نگه داری مقادیر سازمان یافته هم مجزا و مشخص است.
محل کدهای html که شکل و قالب و UI برنامه را میسازد کاملاً مشخص و مجزا است.
محل کدهای اجرایی هم که فرامین و اعمال آنها را شکل میدهد هم محل کاملا مجزایی دارد.


فایلهاش چه ازتباطی با هم دارن؟
با توجه به کمی وقت توضیح مختصری روی نحوه برقراری ارتباط این سه جزء در برنامه میدهم:

موارد فوق به ترتیب در دایرکتوری های Models و View و Controllers قرار دارد که سرنام MVC هستند.
در این مدل هر صفحه شما وراثتی از System.Web.Mvc.ViewPage است.
که میتواند به وسیله قابلیت Generic در دات نت به یک شی مدل مشخص مرتبط شود.
مثلاً صفحه aspx میتواند از کلاس <System.Web.Mvc.ViewPage<ModelName1 باشد.

کلاس مدل مربوطه (معمولا) در مسیر پوشه اصلی Models قرار میگیرد.

به این ترتیب View به Model مشخصی مرتبط میشود و در داخل View به سادگی و به دلیل وجود قابلیت Generic میتوانید از محتویات فیلدها استفاده کنید.
مثلاً میتوانید برای قرار دادن یک TextBox روی فرم که با فیلد FieldName1 در کلاس ModelName1 رابطه داشته باشد از کدی مشابه این استفاده کنید:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

=====

در دایرکتوری View یک سطح دایرکتوری دیگر ایجاد میکنید که فایلهای Aspx لایه View شما در این محل قرار خواهد گرفت.
معادل هر DirectoryControlName1 در این مسیر شما کلاس کنترلی به نام DirectoryControlName1Controller (معمولاً) در مسیر پوشه اصلی Controllers میسازید.

سپس در موارد مختلف و بسته به شرایط یا دستورات مستقیم شما DirectoryControlName1 یک کنترکننده با نام مشخص خواهد بود که کدهای کلاس مربوطه اش اجرا خواهد شد.

مثلاً اگر به هاپرلینکی نیاز دارید که با کلیک کد خاصی را اجرا کند، برای ساخت این هاپرلینک کدی مثل این در View قرار میدهد.

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
این کد لینکی با متن مشخص میسازد و در صورت کلیک متدی از کنترل کننده مشخصی را اجرا میکند.

=====

پس به طور چکیده، شما (درصورت نیاز) کلاس مدلی در مسیر Models میسازید که شامل فیلدهای دیتای مربط کارتان است.
سپس پوشه ای به نام کنترل کننده در مسیر View میسازید و صفحات را در ان ساخته و (درصورت وجود) به مدل دلخواه وصل میکند.
در نهایت کلاس کنترل کننده شامل کدهای اجرایی را با نام خاص گفته شده میسازید.
سال نو مبارک و موفق باشید.