قابلیت Scaffolding در ASP.NET MVC

سه شنبه 13 مرداد 1394

در این مقاله می خواهیم قابلیت قدرتمند مایکروسافت بنام Scaffolding در محیط برنامه نویسی ASP.NET MVC را بررسی کرده و با یک مثال آن را پیاده سازی کنیم.

قابلیت Scaffolding در ASP.NET MVC

قابلیت Scaffolding در مدل ASP.NET MVC به برنامه نویسان  کمک می کند تا چهار عمل اصلی CRUD را به راحتی انجام دهند، که به جدول بانک اطلاعاتی وصل شده و کارهایی مثل Create، Retrieve، Update و Delete را انجام می دهد.

Scaffolding از قالب T4 برای ایجاد Controllers، View, Models استفاده می کند. Scaffolding با Entity FrameWork ترکیب شده و برای ما یک نمونه Model ایجاد کرده وچهار عمل CRUD را برای ما در آن می نویسد. این موضوع بسیار جذاب است و باعث صرفه جویی زمان و افزایش بهره وری برنامه نویس می شود.

حال قصد داریم این کار را به صورت واقعی پیاده سازی کنیم.

راه اندازی نرم افزار

در اینجا، بعنوان پیش نیاز، فرض را بر این می گذاریم که می دانیم چگونه با استفاده از Entity FrameWork بانک اطلاعاتی و جدول آن را پیاده سازی کنیم.

Visual Studio خود را باز کنید و یک پروژه از نوع MVC ایجاد کنید.

اطمینان حاصل کنید که ما از Entity Framework 5.0 یا بالاتر برای پروژه استفاده می کنیم.

اگر Entity FrameWork وجود نداشته باشد، نگران نباشید، زیرا کنسول بسته Nuget کمک می کند تا آن را داشته باشیم. برای این کار تنها نیاز است که دستوری را که در شکل زیر مشخص شده است را بنویسید تا شروع به نصب کند. از منوی Tools گزینه NuGet Package Manager Console را انتخاب کنید تا صفحه زیر ظاهر شود.

در اینجا می خواهیم با استفاده از EntityFramework’s Code-First approach یک نمونه بانک اطلاعاتی ایجاد کنیم. همانطور که در شکل زیر می بینید، ابتدا یک کلاس در Model ایجاد کنیم. با ساخت این کلاس و فیلدهای آن، در واقع جدول را می سازیم.

دوباره یک کلاس جدید به نام BookDbContext بسازید تا از کلاس DbContext ارث بری کند. و خصوصیت DbSet را بسازید. لطفا به نامگذاری ها دقت کنید.

BookDbContext رشته اتصال به جدول است که از DbContext ارث بری می کند. در حال حاضر نکته مهم بعدی برای ما این است که پروژه بدون خطا کامپایل شود.

یک Controll جدید به نام BookController ایجاد کنید. صفحه ویزارد یک گزینه به نام Scaffolding options نشان می دهد. از شما موارد زیر را می پرسد:

Template:  گزینه MVC Controller With views, using Entity Framework را انتخاب کنید. این گزینه چهار عمل اصلی CRUD و Views را بطور خودکار ایجاد خواهد کرد.

Model class : در اینجا Entity به یک الگو برای Class Model نیاز دارد. در اینجا برای ما BOOKModel  است.

Data context class: گزینه DbContext را انتخاب کرده، که به BookModel اشاره می کند. Add را انتخاب کنید.

 

می بینید که BookController به طور خودکار با DbContext و کدهای چهارعمل اصلی ترکیب شده است.

برای مثال، متد ()Index که یک View را برمی گرداند، یک لیست از کتاب هایی که از بانک اطلاعاتی Entity Framework برداشته است را، نمایش می دهد. اگر به کدهای متد ()Index نگاه کنید، خواهید دید که کد بازخوانی لیست آن بسیار ساده و تنها یک خط است.

 

همچنین Scaffolding چهار ماژول View، که برای چهار عمل اصلی CRUD نیاز است را  به طور خودکار می سازد. تصویر آن در زیر نشان داده شده است. 

هنگامی که برای اولین بار برنامه خود را اجرا می کنیم، تا زمانی که کنترلر Default/Index را نداشته باشیم، صفحه 404 را دریافت خواهیم کرد. BookModel/Index/ را در نوار آدرس اضافه کنید. بانک ما خالی است و صفحه Index خالی لود خواهد شد.

 

روی گزینه Creat New کلیک کنید تا وارد صفحه Create شوید. این فرم همان گزینه های جدول است که با ساخت کلاس BookModel ایجاد شدند. فرم را پر کنید تا جدول مان پر شود.

پس از ورود اطلاعات در فرم،  دوباره می توانیم به صفحه Index برگردیم و اطلاعات وارد شده را در آنجا مشاهده کنیم.

scaffolding، تنها ویژگی های پایه را می سازد و نمی توان به طور کامل به آن تکیه کرد. بلکه در راه اندازی اولیه به ما کمک کرده و ما می توانیم برای رسیدن به قابلیت های کامل آن را افزایش دهیم.

فایل های ضمیمه

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

نویسنده 3355 مقاله در برنامه نویسان

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید