Route.config файлында не бар?



Легкие вопросы

1.1.  Расскажите порядок действия при создании проекта по технологии ASP.NET MVC;

1.2.  Какая архитектура приложений, созданных по технологии ASP.NET MVC?

1.3.  Какие преимущества технологии ASP.NET MVC перед другими технологиями?

1.4.  Какие составные части приложения ASP.NET MVC Вы знаете?

1.5.  Какие папки содержат приложения, сосзданные по технологии ASP.NET MVC?

1.6.  Какие файла могут находиться в папке Controllers?

1.7.  Какие файла могут находиться в папке Models?

1.8.  Какие файла могут находиться в папке App_Data?

1.9.  Какие файла могут находиться в папке Views?

1.10. Что содержится в файле Global.asax?

1.11. Что содержится в файле Web.config?

1.12. Что содержится в файле Route.config?

1.13. Что содержится в файле _Layout?

1.14. Как осуществляется маршрутизация приложения, созданного по технологии ASP.NET MVC?

1.15. Расскажите о порядке работы веб-сайта, созданного по технологии ASP.NET MVC?

1.16. Для чего предназначен файл Global.asax?

1.17. Как осуществляется фильтрация данных в приложении, созданного по технологии ASP.NET MVC?

1.18. Как создается контроллер в приложении, созданного по технологии ASP.NET MVC?

1.19. Как создается представлении в прилдожении, созданного по технологии ASP.NET MVC?

1.20. Что определяется в файле, созданного в папке Models, когда необходимо работать с базой данных?

1.21. Для чего используется технология Entity Framework в приложении, созданного ASP.NET MVC?

1.22. Какие действия нужно предпринять, чтобы присоединить Базу данных по технологии ADO.NET в приложение, созданного по технологии ASP.NET MVC?

1.23. Чем отличается технология ADO.NET от технологии ASP.NET MVC? Какие создаются файлы при применении технологии Entity Framework?

1.24. Какие действия нужно предпринять, чтобы присоединить Базу данных по технологии Entity Framework в приложение, созданного по технологии ASP.NET MVC?

1.25. Расскажите вкратце о методах Entity Framework для создания модели Базы данных? В чем причина, для какой цели используется модель Базы данных вместо ее самой?

1-деңгей1.1. АSP.NET MVC технологиясын пайдалана отырып, жобаны жасау кезінде әрекеттің тәртібін айтыңыз.

ASP.NET MVC 5 платформасында веб-қосымша құру үшін - Visual Studio 2013 немесе Visual Studio 2015қажет .

Visual Studio 2015 орнатылғаннан кейін оны ашып, мәзірде File (Файл) New Project... (Құру жобасы) тармақты таңдаймыз. Алдымызда жобаны құру диалогтық терезесі ашылады, мұнда Visual c# шаблонының ішінде, веб бөлімінде ASP.NET Web Application (.NET Framework): шаблонын таңдап, төменде осы жобаға атау береміз.

Осыдан кейін жаңа қосымшалар үлгісін таңдау терезесі ашылады.Әдепкі бойынша, қазірдің өзінде MVC үлгі таңдалған.

Сонымен қатар, осы тілқатысу терезесі тестілеу қою опциясына мүмкіндік береді.

Сондай-ақ, терезесінің оң жақ бөлігінде бізге қосымшада аутентификация тетігін таңдау қол жетімді (Change Authentication тетігі). Әдепкі бойынша Individual User Accounts түрі орнатылған. Оны өзгертуге болады.

Егер біз Change Authentication батырмасын бассақ, онда бізге сәйкестендіру типтерін таңдау келесілері қол жетімді:

"Олар

• No Authentication: - қосымша аутентификация талап етпейді

• Individual User Accounts:жеке аутентификация талап етіледі, пайдаланушылардың есеп жазбалары деректер базасында сақталады, сонымен қатар, аутентификация әлеуметтік желілердің көмегімен қол жетімді.

• Organizational Accounts: негізінен Active Directory немесе Office 365 пайдаланатын корпоративтік қосымшаларға арналған

• Windows Authentication: шоттарды басқару үшін intranet-қосымшасы деп аталатын Windows аутентификациясы пайдаланылады.

 OK түймесін басыңыз, және жаңа жоба құрылады. Оның құрамында тармақталған құрылым бар және біраз әдепкі толтыруларға ие. Жобасы орындауға іске қосамыз, және бізге біршама контент бейнеленеді.

MVC 5 Жобаның құрылымы

Барлық осы функционал мынадай құрылым жобасымен қамтамасыз етіледі:

• App_Data: құрамында қосымшаға пайдаланылатын файлдар, қорлар, деректер базасы бар.

• App_Start: қосымшаны іске қосу кезінде баптандыру логикасын қамтитын бірқатар статикалық файлдарды сақтайды.

• Content: құрамында c# немесе javascript кодын қамтымайтын көмекші файлдар болады, және олар қосымшасымен бірге өрістетіледі, мысалы, css стильдер файлдар

• Controllers: бақылау(контреллер) класстарын қамтитын файлдарды сақтайды. Әдепкі бойынша, бұл папкаға екі контроллер қосылады - HomeController және AccountController

• fonts: қосымшаға пайдаланылатын қаріптер файлдарды сақтайды

• Models: құрамында модельдер файлдары болады. Әдепкіде, Visual Studio есептік жазбаны сипаттау үшін және аутентификация қызметын сипаттауға бір-екі модельдерді қосады.

• Scripts: javascript тіліндегі скрипттар және кітапханалармен каталог.

• Views: мұнда ұсыныстар(представлениялар) сақталады. Барлық ұсыныстар әрқайсысы бір бақылаушыға сәйкес келетін папка бойынша топтастырылады. Сұрау салуды өңдегеннен кейін, контроллер осы ұсыныстардың бірін клиентке жібереді. Сондай-ақ, мұнда құрамында жалпыға ортақ ұсыныстар сақтайтын Shared каталогы бар.

• Global-ды.asax:, қосымша қосылған кезіндегі және бастапқы инициализацияны орындайтын файл. Әдетте, мұнда App_Start қалтадағы айқындалған класстар әдістері жүзеге асырылады.

• Startup.cs: MVC 5 қосымшада OWIN ерекшелікті қолданатын кітапхана пайдаланылатын болса, онда осы файл OWIN және қосымша арасындағы байланысты ұйымдастырады. (OWIN қосымша компоненттері арасындағы өзара іс-қимылды сипаттайтын ерекшелікті ұсынады)

• Web.config: қосымша конфигурациясың файлы

1.2.ASP.NET MVC технологиясы бойынша жасалған қосымшалардың (бағдарламаның) архитектурасы қандай?

ASP.NET үлкен коммерциялық жетістікке айналды, бірақ веб-дамудың қалған әлемі де дамып келеді және Microsoft Web Forms жақсы дамығанымен, оның негізгі дизайндары өте ескірген.
2007 жылдың қазанында Техас штатындағы Остин қаласындағы ALT.NET конференциясында Microsoft корпорациясының вице-президенті Скотт Гутри жаңа ASP.NET платформасына негізделген жаңа MVC дамыту платформасын жариялады және көрсетті, ол осындай технологиялардың дамуына тікелей жауап ретінде тұжырымдалды. Төмендегі бөлімдерде бұл жаңа платформа Web Forms шектеулерін қалай жеңіп шығып, ASP.NET-ді қайтадан асыра сипаттайды.
MVC архитектурасы
Архитектуралық MVC үлгісін және ASP.NET MVC Framework арасындағы айырмашылық маңызды. MVC үлгісі жаңа емес, оның тамыры 1978 жылы Xerox PARC кезіндегі Smalltalk жобасы, бірақ ол мынадай себептер бойынша веб қолданбалар үшін үлгі ретінде қәзіргі уақытта үлкен танымалдылыққа ие болды:
MVC қолдану пайдаланушылық интерфейс табиғи цикл мынадай: Пайдаланушы орындайды бағдарламаға жауап іс-қимыл, оның деректер моделін өзгерткен және жаңартылған көрініспен пайдаланушыға береді. Содан кейін цикл қайталанады. Бұл HTTP сұраулары мен жауаптарының сериясы ретінде ұсынылған веб-бағдарламалар үшін өте пайдалы.
Бірнеше технологияларды (мысалы, деректер қорлары, HTML және орындалатын код) біріктіру үшін веб-бағдарлама қажеттілігі әдетте бірнеше қабаттар немесе қабаттарға бөлінеді. Осы комбинациялардан шығатын модельдер MVC тұжырымдамасы үшін табиғи.
ASP.NET MVC Framework MVC үлгісін орындайды және осылайша, тұжырымдамалардың әлдеқайда жетілдірілуін қамтамасыз етеді. Шын мәнінде, ASP.NET MVC MVC үлгісінің заманауи нұсқасын іске асырады, ол веб-қосымшалар үшін жарамды. Сіз осы архитектураны қолданудың теориясы мен тәжірибесі туралы көбірек білесіз.
MVC үлгіні қолдану және бейімдеу, ASP.NET MVC Framework қатты Rails және ұқсас платформаларында Ruby бәсекелеседі, және негізгі .NET әлеміне MVC үлгісін әкеледі. Басқа платформаларды қолдана отырып, әзірлеушілердің тәжірибесі мен озық тәжірибелерін жинақтап, ASP.NET MVC Rails-дан көп ұсына алады деп айтуға болады.
ASP.NET MVC дизайнерлері сізге MVC Framework компонентінің әрқайсысына үш нұсқаны беру үшін осылай жасады:
1.Компонентің ағымдық пішінде әдепкі орындалуын қолданыңыз (ол көптеген қосымшалар үшін жеткілікті болуы керек).
Оның мінез-құлқын теңшеу үшін әдепкі орындалудың қосалқы сыныбын шығарыңыз.
2.Интерфейсті немесе абстрактілі базалық классты жаңа енгізу арқылы компонентті толығымен ауыстырыңыз.
3.Бұл әлі ASP.NET 2.0 үлгісіне ұқсайды, бірақ MVC Framework-дың орталығында тікелей әрі қарай қарайық. Сіз әртүрлі компоненттер туралы білесіз, олардың әрқайсысын қалай және неге орнатуға немесе ауыстыруға болады.

1.3.ASP.NET MVC технологиясының басқа технологиялардан артықшылығы қандай?

ASP.NET MVC негізгі артықышылықтары.

ASP.NET ұлкен коммерциялық жетістікке жетті, алайда, атап өткендей, веб құрылғының басқа әлемі де дамып келді, Microsoft Web Forms-қа шаң жуытпаса да,оның негізгі құраушылары ескірген болып көрінді. 2007 ж. қазан айында Microsoft-та ASP.NET негізінде құрылылған, MVC-дің жаңа веб-құрылымын(разработка) таныстырды. Ол Rails-қа ұқсас технологиялардың дамуына жауап ретінде және, Web Forms-қа қойылған сынға жауап ретінде құрылған. Келесі бөлімдерде бұл жаңа платформа Web Forms-тың шектеулерін жойып өтіп, ASP.NET –ті жаңа деңгейге қалай алып өткендігі жайлы көрсетілетін болады.

MVC-дің архитектуралық шаблоны.

Важно различать архитектурный шаблон MVC-дің архитектуралық шаблоны мен ASP.NET MVC Framework инфрақұрылымының ара жігін ажырата білген жөн. MVC шаблоныайтарлықтай жаңа емес (1978 ж. пайда болып, ол Xerox PARC-тегі Smalltalk жобасымен байланысты), алайда, ол, бүгінгі таңда веб қосымшалар үшін шаблон ретінде келесідей себептер арқылы үлкен танымалдылыққа ие болыды:

· Қолданушының MVC қосымшасымен өзара байланысуы табиғи циклге сәйкес жүзеге асырылады: қолданушы қимыл жасап, жауабы ретінде қосымша өзінің мәліметтер моделін өзгертеді де, жаңартылған түрін қолданушыға жеткізеді. Кейіннен цикл қайталады. Ол запростардың кезектілігі мен HTTP жауабы ретінде берілетін веб-қосымшалардың тізбегіне жақсы орналасады.

· Бірнеше технологиялардың біріктірілуін қажет ететін веб-қосымшалар (мысалы, HTML-разметкалар мен орындалатын кодтың мәліметтер базасы),әдетте, бірнеше қатарлар мен деңгейлерге бөлінеді. Нәтижесінде алынған шаблондар табиғи жолмен MVC концепциясына кіреді.

ASP.NET MVC Framework инфрақұрылымы MVC құрылымын жүзеге асырады,және жауапкершіліктің сәтті бөлінуін қамтамасыз етеді. ASP.NET MVC-де MVC-дің заманауи нұсқасы енгізілді, ол веб қосымшалар үшін жақсы сәйкес келеді.

MVC шаблонын қабылдаудың және үйренудің арқасында MVC моделін .NET.өмірінің даму авангардына шығара отырып, ASP.NET MVC Framework инфрақұрылымы Ruby on Rails – қа және аналогиялық платформаларға күшті бәсекелестік құрайды. 

MVC Framework-тің әр бөлігі үшін 3 мүмкіндік беріледі :

· Бөлікті өз қалпында стандартты орындауды қолдану. (ол көп көлемдегі қосымшалар үшін жеткілікті болуы тиіс).

· Қолданыстағы қимылдарды жөндеу мақсатымен стандартты орындаудан класс астын құру.

· Бөлікті жаңа интерфейті немесе абстарктілі жаңа класты орындаумен толығымен ауыстыру.

Әр түрлі бөліктер, және олардың мүмкін болатын жөндеуі мен ауыстыруы келесі мақалаларда қарастырылатын болады.

Тестілеу.

MVC архитектурасымен қорғалатын, бағдарламалық қамтамасыз етудің бір бірінен қосымшаның тәуелсіз бөліктерінің әр түрлі жауапкершілігінен табиғи бөлу - жеңіл тестіленетін қосымшаны құруға мүмкіндік береді. Алайда, ASP.NET MVC –ді құрастырушылар мұнымен тоқтаған жоқ. Жобаның әр бөлігі үшін олар модульді тестілеу мен имитация құралдарының қажеттіліктерін қанағаттандыруға қажетті құрылыммен қамтамасыз етті.

Visual Studio ортасына модульді тестілеу жобаларын автоматты құру үшін арналған мастерлердің жиынтығы қосылды. Олар  NUnit және xUnit секілді ашық коды бар модульді тестілеудің құралдарымен интеграцияланады.Сіз бұрын соңды модульді тестілеу құрмағанның өзінде, сізге сәтті бастау жасау үшін қажеттінің барлығы болады.

1.4.ASP.NET MVC бағдарламасының қандай компоненттерін (қосымша бөлімдерін) білесіз?

MVC тарихы

model-view-controller  термині 1970-шы жылдардың соңында қолданылып, Xerox PARC –тағы Smalltalk жобасынан пайда болды. Ол ертеректегі GUI қосымшасын ұйымдастырудың бір тәсілі ретінде құрастырылды.

Алғашқы MVC-паттерннің шағын қызметтері Smalltalk-тың экран мен құралдар (screens и tools) секілді нақты түсініктеріне жақын орналасты. Алайда, кең түсіктер бұрынғыдай қосымшаларға қолданылатын еді және ол веб қосымшаларға жақсы сәйкес келеді.

Ол веб қосымшалардың негізінде жатқан HTTP запростарымен, жауаптарымен жақсы үйлеседі. Сонымен қатар, MVC мынадай түсініктерді ажыратып бөлуді көздейді: доменді (доменная) модель мен бақылаушы (контроллер) логикасы –қолданушылық интерфейстен бөлінеді. Ол веб қосымшаларда HTML- нің қосымшаның басқа бөліктерінен бөлек сақталатынын білдіреді; техникалық қолдау мен тестілеуді оңай әрі жеңіл етеді. Ruby on Rails MVC-ге деген қызығушылықтың жандануына алып келді, және ол MVC-дің «үлгілі» баласы болып қала береді. .

Сол уақыттан бері көптеген MVC фреймуоркерлер пайда болды, олар MVC-дің артықшылықтарын көрсетті, атап айтқанда, ASP.NET MVC.

MVC паттернді түсіну.

MVC паттерн MVC қосымшалардың, кем дегенде 3 бөлікке бөлінетінін білдіреді :

Модельдер - қолданушылырдың жұмыс істейтін мәліметтерін сипаттайды.

Это могут быть простые модели представления, которые только представляют данные, передаваемые от контроллера представлению, или они могут быть доменными моделями, которые содержат данные домена, а также операции, преобразования и правила работы с этими данными.

Ұсыныстар(Представления)- қолданушылық интерфейс ретіндегі модельдің бірқатар бөліктерін өңдеу үшін қолданылады.

Бақылаушылар(Контроллеры)- ,келіп түскен запростарды өңдейді, модельдер үшін операциялар жасайды және қолданушыға көрсетуге арналған ұсыныстарды (представления) таңдайды.

Модельдер- сіздің қосымшаңыз жұмыс істейтін ғалам болып табылады. Банктік қосымшада, мысалы, модельдер, қосымша түсіндіретін банк ретінде ойнайды: яғни, шоттар, клиенттерге арналған бас кітап пен кредиттік лимиттер, сонымен қатар, модельдегі мәліметтерді манипуляциялауға арналған операциялар (мысалы, құралдардың депондалуы(депонирование) және шоттардан құралдардың алынуы. Модель, сонымен қатар, мәліметтердің жалпы жағдайының сақталуына да жауапты. Мысалы, ол барлық келісім шарттардың кітапқа жазылатынына, және клиенттің өзі ала алатын сомасының барлығын және банктегі барлық соманы шеше алмайтынына кепілдік етеді.

Модельдер, сондай-ақ, не үшін жауап бермейтіндігімен де анықталады: модельдер UI –мен және тапсырыстарды өңдеумен айналыспайды – это ұсыныстар ( представления) мен бақылаушылардың (контроллер) жұмысы.

Ұсыныстар (Представления) қолданушыға қажет модельдер элементін сипаттайтын логиканы біріктіреді. Олар модельді тікелей түсінбей, модельмен ешқандай жолмен тікелей хабарласпайды.

Контроллерлер - өкілдер мен модельдер арасында көпір рөлін атқарады: клиенттерден тапсырыстар келіп, бақылаушымен (контроллермен) тексеріледі. Ол қолданушыға көрсетуге сәйкес ұсыныстарды (представление) таңдап, қажет болғанда, модельмен бірге жасау қерек сәйкес іс-қимылдарды да таңдайды. 

MVC-дің әр элементі нақты анықталған әрі автономды болып келеді – ол түсініктердің ажыратылуы немесе бөлінуі деп аталады. Бұл модельдерге манипуляция жасайтын логика тек модельдерде ғана кездеседі; мәліметтерді сипаттайтын логика тек ойларда кездеседі, ал, қолданушылардың тапсырыстарын және келетін мәліметтерді өңдейтін код- тек бақылаушыда (контроллерде) кездеседі. Әр бөліктің арасындағы міндеттерді нақты бөлу арқылы сіздің қосымшаңыз, қаншалықты үлкейетініне қарамастан, жеңіл қолдап,кеңейіп отырады.

 

1.5.Қандай папкаларда ASP.NET MVC технологиясы арқылы жасалған бағдарламалар бар?

Controllers папкасы

Контроллер MVC сәулетінің негізгі компоненті болып табылады. Контроллер пайдаланушы кірісін алады, өңдейді және өңдеудің нәтижесін, мысалы, көрініс ретінде жібереді.

Контроллерлерді пайдаланған кезде кейбір конвенциялар бар. Сонымен атау конвенцияларына сәйкес контроллерлердің атаулары «контроллер» жұрнағымен аяқталуы керек, қалған бөлігі осы жұрнақтың алдында контроллер атауына жатады.

Веб-браузерден контроллерге қол жеткізу үшін мекенжай жолына site_name / controller_name / түрін енгізу керек. Сонымен, сұраныс бойынша site_name / Home / әдепкі бағыттау жүйесі кіріс сұрауды өңдеу үшін HomeController индексінің әдісін шақырады. Егер белгілі бір контроллер әдісіне сұрау жібергіміз келсе, біз бұл әдісті айқын көрсетуіміз керек: Site_address / Controller_name / Controller_ Әдіс, мысалы, Site_Address / Home / Buy - HomeController сатып алу әдісіне қол жеткізеді.

Контроллер базалық класс жүйесінен мұраланған тұрақты класс болып табылады. Web.Mvc.Controller. Өз кезегінде, контроллер класы дерексіз базалық сыныпты ControllerBase және оның көмегімен IController интерфейсін жүзеге асырады. осылайша, ресми түрде, өзіңіздің контроллер классыңызды жасау үшін, IController интерфейсін іске асыратын және атаудағы контроллер жұрнағын қолданатын сынып құру жеткілікті.

Models папкасы

Модель нақты клас немесе интерфейс емес. Клас модельге сілтеме жасайды, өйткені ол интерфейсті жүзеге асырады немесе белгілі бір базалық кластың мұрагері болып табылады. Сынып MVC ASP.NET қосымшасында ойнайтын ролмен және бағдарлама қалталарының құрылымындағы орналасуымен модель бөлігі болып табылады. ASP.NET MVC бағдарламасындағы үлгі класы браузерден кіріс енгізуді тікелей емес, сондай-ақ, HTML шығарылымын браузерге шығармайды.Модельді анықтауМодельдік нысандар домен логикасын іске асыратын, сонымен қатар іскери логика деп аталатын бағдарламаның бөлігі болып табылады. Домен логикасы дерекқор мен пайдаланушы интерфейсі арасында өткізілген деректерді өңдейді. Мысалы, қойма жүйесінде модель тауарлардың түгендеу қорларын бақылайды және қоймадағы тауардың болуын анықтау логикасын жүзеге асырады. Бұдан басқа, мұндай модель тауарларды қоймадан сату және тасымалдау кезінде дерекқордағы деректерді өзгертетін қосымша бөлігі болуы мүмкін. Жиі модель дерекқордан модельді күйді сақтау және алу үшін жауап береді.Модель класстарын Visual Studio бағдарламасының ASP.NET MVC бағдарламасының үлгісінің бөлігі ретінде ұсынылған Үлгілер қалтасына орналастыру ұсынылады. Алайда, көбінесе модельдік сыныптар бірнеше қондырғыларда қайта пайдалану үшін бөлек жинаққа орналастырылады.

Views:Көрулер мұнда сақталады. Барлық көріністер әрқайсысы бір контроллерге сәйкес келетін папкалар бойынша топтастырылған. Сұрауды өңдегеннен кейін контролер осы көріністердің бірін клиентке жібереді. Сондай-ақ, барлық көріністер үшін жалпы болып табылатын Shared каталог бар.
MVC қолданбасының жұмысы негізінен контроллерлермен бақыланады, бірақ тікелей пайдаланушыға қолданба қосымшаның көрінісін қалыптастыратын көрініс түрінде қол жетімді болады. ASP.NET MVC 5-дегі көріністер - бұл пайдаланушы тілдесу кодын қамтитын cshtml кеңейтімі бар файлдар, негізінен html тілінде.
Көріністе негізінен html коды болса да, бұл html беті емес. Талап етілген көрініске негізделген бағдарламаны құрастырған кезде, алдымен C # -те класты жасап, оны құрастырасыз.

 

1.6.Controllers папкасында қандай файлдар болуы мүмкін?

Контроллер MVC сәулетінің негізгі компоненті болып табылады. Контроллер пайдаланушы кірісін алады, өңдейді және өңдеудің нәтижесін, мысалы, көрініс ретінде жібереді.

Контроллерлерді пайдаланған кезде кейбір конвенциялар бар. Сонымен атау конвенцияларына сәйкес контроллерлердің атаулары «контроллер» жұрнағымен аяқталуы керек, қалған бөлігі осы жұрнақтың алдында контроллер атауына жатады.

Веб-браузерден контроллерге қол жеткізу үшін мекенжай жолына site_name / controller_name / түрін енгізу керек. Сонымен, сұраныс бойынша site_name / Home / әдепкі бағыттау жүйесі кіріс сұрауды өңдеу үшін HomeController индексінің әдісін шақырады. Егер белгілі бір контроллер әдісіне сұрау жібергіміз келсе, біз бұл әдісті айқын көрсетуіміз керек: Site_address / Controller_name / Controller_ Әдіс, мысалы, Site_Address / Home / Buy - HomeController сатып алу әдісіне қол жеткізеді.

Контроллер базалық класс жүйесінен мұраланған тұрақты класс болып табылады. Web.Mvc.Controller. Өз кезегінде, контроллер класы дерексіз базалық сыныпты ControllerBase және оның көмегімен IController интерфейсін жүзеге асырады. осылайша, ресми түрде, өзіңіздің контроллер классыңызды жасау үшін, IController интерфейсін іске асыратын және атаудағы контроллер жұрнағын қолданатын сынып құру жеткілікті.

IController интерфейсі сұраудың мәтінмәнін өңдеуге жауап беретін жалғыз Орындау әдісін анықтайды:

public interface IController

{

void Execute(RequestContext requestContext);

}

Енді осы интерфейсті іске асыратын қарапайым контроллерді жасаңыз. Жоба ретінде біз алдыңғы тараудан жобаны аламыз. Сонымен, төмендегі мазмұнмен жобаның контроллерлер қалтасына жаңа сыныпты (класс емес, контроллер) қосыңыз:

using System.Web.Mvc;

using System.Web.Routing;

namespace BookStore.Controllers

{

public class MyController : IController

{

public void Execute(RequestContext requestContext)

{

string ip = requestContext.HttpContext.Request.UserHostAddress;

var response = requestContext.HttpContext.Response;

response.Write("<h2>Ваш IP-адрес: " + ip + "</h2>");

}

}

}

Кез келген контроллерге қол жеткізгенде, жүйе сұрау мәтінмәнін оған жібереді. Бұл сұрау контекстінде барлығы: cookie файлдары, пішін деректері, сұрау жолдары, пайдаланушының тіркелгі деректері және т.б. қамтылады.

IController интерфейсін іске асыру сұраудың контекстін RequestContext параметрі арқылы Execute әдісімен алуға мүмкіндік береді. Біздің жағдайда requestContext.HttpContext.Request.UserHostAddress сипаты арқылы пайдаланушының IP мекенжайын аламыз.

Сонымен қатар, пайдаланушыға Response нысанын және оның жазу әдісін пайдаланып жауап жібере аламыз.

Осылайша, My / мекен-жайына бару арқылы пайдаланушы IP-мекен-жайын көреді.

Стандартты контроллер жасау үшін контроллерлерге қарапайым класс қосып, контроллер класынан мұра аламыз, мысалы:

using System.Web.Mvc;

namespace BookStore.Controllers

{

public class BookShopController : Controller

{

public ActionResult Index()

{

return View();

}}}

Алайда, Visual Studio бізге контроллер жасау үшін ыңғайлы құралдарды ұсынып, олардың икемді конфигурациясын ұсынады. Оларды пайдалану үшін Controllers (Тізім) папкасында тінтуірдің оң жақ түймешігімен нұқыңыз және Add -> Controller тармағын таңдаңыз. Бұл терезеде біз жаңа контроллер жасау терезесін көреміз:

1.7.Models папкасында қандай файлдар болуы мүмкін?

Модель нақты клас немесе интерфейс емес. Клас модельге сілтеме жасайды, өйткені ол интерфейсті жүзеге асырады немесе белгілі бір базалық кластың мұрагері болып табылады. Сынып MVC ASP.NET қосымшасында ойнайтын ролмен және бағдарлама қалталарының құрылымындағы орналасуымен модель бөлігі болып табылады. ASP.NET MVC бағдарламасындағы үлгі класы браузерден кіріс енгізуді тікелей емес, сондай-ақ, HTML шығарылымын браузерге шығармайды.Модельді анықтауМодельдік нысандар домен логикасын іске асыратын, сонымен қатар іскери логика деп аталатын бағдарламаның бөлігі болып табылады. Домен логикасы дерекқор мен пайдаланушы интерфейсі арасында өткізілген деректерді өңдейді. Мысалы, қойма жүйесінде модель тауарлардың түгендеу қорларын бақылайды және қоймадағы тауардың болуын анықтау логикасын жүзеге асырады. Бұдан басқа, мұндай модель тауарларды қоймадан сату және тасымалдау кезінде дерекқордағы деректерді өзгертетін қосымша бөлігі болуы мүмкін. Жиі модель дерекқордан модельді күйді сақтау және алу үшін жауап береді.Модель класстарын Visual Studio бағдарламасының ASP.NET MVC бағдарламасының үлгісінің бөлігі ретінде ұсынылған Үлгілер қалтасына орналастыру ұсынылады. Алайда, көбінесе модельдік сыныптар бірнеше қондырғыларда қайта пайдалану үшін бөлек жинаққа орналастырылады.Контроллерде модельдік сыныптарды пайдалану, әдетте, контроллер әрекеттеріндегі өздерінің даналарын жасау, үлгі нысандарында әдістерді шақыру және олардың көріністерінде көрсету үшін дұрыс деректерді алу үшін төмендейді. Бұл әрекеттерді орындаудың ұсынылған жолы. Ол сондай-ақ қолданушы интерфейсіне қажеттіліксіз қолданба логикасын тестілеуді жеңілдететін қолданбалы элементтердің логикалық бөлінуін қолдайды.Төмендегі мысалда адамның қарапайым үлгісі көрсетілген.

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

namespace MvcSimpleModelBinding.Models

{

public class Person

{

   public int Id { get; set; }

   public string Name { get; set; }

   public int Age { get; set; }

   public string Street { get; set; }

   public string City { get; set; }

   public string State { get; set; }

   public int Zipcode { get; set; }

}

}

Модель байланыстарыMVC моделі Binding - бұл .NET Framework түрімен ұсынылған нысанда мәндерді салыстыру және параметр ретінде іс-қимыл әдісі осы түрін өтуге оңай жолы. Байланыстар әрекеттер әдістеріне жіберілген түрлердің десерленуін бақылауға мүмкіндік береді. Үлгі байланыстары түрлендіргіштерге ұқсас, себебі олар HTTP сұрауларын әрекеттер әдістеріне жіберілген нысандарға түрлендіре алады. Бұдан басқа, олар сонымен қатар ағымдағы контроллердің контексті туралы ақпаратты қамтиды.моделін түптеу сіз іс-қимыл әдісі немесе түрдегі параметрімен, интерфейс IModelBinder сынып, іске байланыстыру мүмкіндік береді. Интерфейс IModelBinder нақты параметр немесе түрдегі мәнді шығарып алу үшін тұғырнама деп аталатын GetValue әдісі қамтиды. Сынып DefaultModelBinder торларда IList, ICollection және IDictionary қоса алғанда, .NET Framework ең түрлері, жұмыс істейді.Модельді байланыстың үлгісіКелесі мысал қарапайым модельді байланыстыру әдісін көрсетеді. Осы мысалда, алдыңғы мысалда анықталған Жеке класс үлгі ретінде пайдаланылады. Мысал PersonController сыныбын, сондай-ақ Индекс, Жасау және Мәліметтер көріністерін пайдаланады. PersonController сыныбы Person нысандарын сақтауға арналған тізімді жасайды. Индекс көрінісі тізімдегі әрбір адам нысанына Id және атау сипаттарын көрсетеді. Жасау көрінісі пайдаланушыға адам туралы ақпаратты енгізуге мүмкіндік береді. Толық көрініс таңдалған адам туралы барлық ақпаратты көрсетеді.

1.8.App_Data папкасында қандай файлдар болуы мүмкін?

App_Data Папка
Папка App_Data для хранения данных приложения.
Содержимое папки используется для статических файлов , таких как таблицы стилей (CSS - файлы), иконки и изображения.
Visual Web Developer автоматически добавляет папку Темы для содержимого папки. Папка темы заполняется со стилями и картинками JQuery. В этом проекте вы можете удалить папку тем.
Visual Web Developer также добавляет стандартный файл стилей для проекта: файл site.css в папке содержимого. Файл стилей представляет собой файл для редактирования, если вы хотите изменить стиль приложения.
Мы будем редактировать файл таблицы стилей (Site.css) файл в следующей главе данного руководства.
В эту папку помещаются закрытые данные, такие как XML-файлы или базы данных, если используется SQL Server Express, SQLite или другие хранилища на основе файлов.
Папка APP_DATA
Папка APP_DATA используется для хранения баз данных, XML-файлов или любых других данных, необходимых для вашего приложения. Рабочая среда ASP.NET распознает эту папку, и не будет давать пользователю возможность напрямую обращаться к файлам данной папки. Только созданное вами приложение может читать и записывать файлы в эту папку.

Для хранения данных приложению нужна база данных. Мы можем использовать различные СУБД, но, как правило, в качестве базы данных в связке с ASP.NET MVC используется база данных MS SQL Server, на примере которого мы и посмотрим весь процесс создания БД и подключения к ней.

Мы можем создать базу данных прямо в проекте, либо же создать ее на сервере MS SQL. Для хранения баз данных проекте предназначена папка App_Data. Итак, нажмем на папку App_Data правой кнопкой мыши и в появившемся контекстном меню выберем Add-> New Item.... В появившемся окне добавления нового элемента выберем SQL Server Database и назовем новую базу данных Bookstore.mdf:

После этого в папку папку App_Data будет добавлена база данных, и мы можем начинать с ней работать - добавлять таблицы и данные. Но перед этим посмотрим, что у нас будет хранится в БД. Для работы с БД возьмем модели из предыдущих глав - модель Book:

1 2 3 4 5 6 7 public class Book { public int Id { get; set; } public string Name { get; set; } public string Author { get; set; } public int Price { get; set; } }

И модель Purchase:

1 2 3 4 5 6 7 8 public class Purchase { public int PurchaseId { get; set; } public string Person { get; set; } public string Address { get; set; } public int BookId { get; set; } public DateTime Date { get; set; } }

Пусть для работы с ними определен следующий контекст данных:

1 2 3 4 5 public class BookContext : DbContext { public DbSet<Book> Books { get; set; } public DbSet<Purchase> Purchases { get; set; } }

Чтобы связать приложение, контекст данных и БД, добавим в файл web.config строку подключения к этой базе данных. Для этого после секции configSections вставим следующую секцию:

1 2 3 4 <connectionStrings> <add name="BookContext" connectionString="Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename='|DataDirectory|\Bookstore.mdf';Integrated Security=True" providerName="System.Data.SqlClient"/> </connectionStrings>

 

1.9.Views папкасында қандай файлдар болуы мүмкін?

Views:Көрулер мұнда сақталады. Барлық көріністер әрқайсысы бір контроллерге сәйкес келетін папкалар бойынша топтастырылған. Сұрауды өңдегеннен кейін контролер осы көріністердің бірін клиентке жібереді. Сондай-ақ, барлық көріністер үшін жалпы болып табылатын Shared каталог бар.
MVC қолданбасының жұмысы негізінен контроллерлермен бақыланады, бірақ тікелей пайдаланушыға қолданба қосымшаның көрінісін қалыптастыратын көрініс түрінде қол жетімді болады. ASP.NET MVC 5-дегі көріністер - бұл пайдаланушы тілдесу кодын қамтитын cshtml кеңейтімі бар файлдар, негізінен html тілінде.
Көріністе негізінен html коды болса да, бұл html беті емес. Талап етілген көрініске негізделген бағдарламаны құрастырған кезде, алдымен C # -те класты жасап, оны құрастырасыз.

Жаңа көріністі жасау

Жаңа көріністі жасау үшін жобадағы Views қалтасын таңдаңыз және ондағы Home ішкі каталогты тінтуірдің оң жақ түймешігімен нұқыңыз және пайда болған тізімде Add - > View... пәрменін таңдаңыз. Жаңа көрініс қосу терезесінде бірнеше нұсқауларды баптай аласыз:
Барлық осы параметрлерді талдайық:

• View Name: жаңа көріністің атауы. Жасалғаннан кейін, cshtml кеңейтімі оған автоматты түрде тағайындалады.

• Template: жаңа көрініс үшін үлгі. Келесі үлгілер тізімінен таңдай аламыз:
Көру үлгілерінің түрлері:

· Empty (without model): бастапқы таңбамен бос көріністі жасайды.

· Empty: бос көрініс де жасалады, бірақ қазір біз @model директивасын қолданып, көріністе қосылатын үлгіні таңдай аламыз

· Create: Жаңа үлгі нысандарды жасау үшін пішінмен көріністі жасайды. Бұл пішінде әр үлгі сипаты үшін жеке өріс жасалады.

· Delete: модель нысандарын жою үшін пішінмен көріністі жасайды. Бұл пішінде әр үлгі сипаты үшін жеке өріс жасалады

· Details: модельдің барлық қасиеттерінің мәндерін көрсететін көрініс пайда болады

· Edit: бар үлгі нысандарын өңдеуге арналған пішінмен көріністі жасайды. Бұл пішінде әр үлгі сипаты үшін жеке өріс жасалады

· List: модельдер тізімінен барлық нысандарды кесте ретінде көрсететін көріністі жасайды. Осы көріністегі нысандардың тізімін жасау үшін контроллер әдісінен IEnumerable<Тип_модели> түрінің мәнін өтуіңіз керек. Көрініс құрамында жасау / өңдеу / жою әрекеттерін орындау әдістеріне сілтемелер бар.

· Model class: Егер сіз Empty (without model) нұсқасын қоспағанда, алдыңғы нұсқалардың біреуін таңдасаңыз, бұл өріс бізге көріністі үлгілеу үшін үлгі көрсете аламыз. Бұл ұсыныс қатаң жазылған деп саналады, яғни модельдің бір класына байланады.

· Data context class: Empty (without model) параметрінен басқа, алдыңғы нұсқалардың біреуін таңдағанда, бұл өріс бізге қол жетімді, онда біз деректер контекстінің класын таңдаймыз.

· Create as a partial view ішінара көріністі жасауға мүмкіндік береді.

· Reference Script Libraries: Бұл нұсқа көріністің jQuery кітапханаларының стандартты жиынтығын және басқа JavaScript файлдарын автоматты түрде қосатынын көрсетеді.

· Use a layout page: бұл параметр негізгі беттің пайдаланылатынын немесе көріністің өзі жеткілікті екендігін көрсетеді. Бұл опцияны орнатқаннан кейін негізгі бетті таңдауға болатын төменгі өріс қол жетімді болады. Razor қозғалтқышы үшін, _ViewStart.cshtml файлында әдепкі бойынша анықталған басты бетті пайдаланатын болсаңыз, негізгі бетті көрсетіп міндетті емес. Дегенмен, негізгі бетті елемеу керек болса, осы параметрді пайдалануға болады.

Файлдарды қарау жолдары:

Барлық қосылған көріністер, әдетте, Views каталогындағы сәйкес папкаларда контроллерлермен топтастырылады. Home контроллерінің әдістеріне қатысты көріністер жобада Views/Home папкасында орналасады. Алайда, қажет болған жағдайда, біз өзімізді Views директориясында өздігінен аты бар папканы жасай аламыз, мұнда контроллердің кейбір әдістерімен міндетті түрде байланысты емес қосымша көріністер сақталатын болады. Көріністі шығыс ағынына шығару үшін View () әдісін қолданамыз. Егер осы әдіске ешқандай өкілдік аты берілмесе, әдепкі бойынша, бағдарлама аты әрекет әдісінің атымен сәйкес келетін көрініспен жұмыс істейді.

 

Global.asax файлында не бар?

Global.asax файлы жаһандық оқиғаларға жауап беретін оқиғалар өңдегіштерін жазуға мүмкіндік береді. Пайдаланушылар global.asax файлын тікелей сұрау мүмкін емес. Global.asax файлы белгілі бір бағдарлама оқиғаларына жауап ретінде өз кодын автоматты түрде орындайды.

Global.asax файлындағы код веб-пішінге дәл сол сияқты жазылған. Айырмашылық, global.asax файлында HTML немесе ASP.NET дескрипторлары болмайды. Оның орнына, алдын-ала анықталған атаулары бар әдістер бар.

<%@ Application Language="C#" %>

<script runat="server">

protectedvoidApplication_OnEndRequest()

{   Response.Write("<hr />Этастраницабылазагружена " + DateTime.Now.ToString()); }

</script>

Бұл көрсетілген кодта көрсетілмегенімен, әрбір әдіс бір класс үшін қолданылатын жаһандық әдістерді анықтайды. Қолданба класы HttpApplication бағдарламасынан мұраланған, ол барлық ашық және қорғалған мүшелерімен кодта жұмыс істеуге мүмкіндік береді. Бұл мысалда, Respect нысаны пайдаланылады, ол HttpApplication сыныбының кіріктірілген сипаты, Бет сыныпының кірістірілген сипаты сияқты, пайдаланылады.

Веб-пішіндер сияқты, global.asax файлының мазмұны екі файлға бөлінуі мүмкін: біреуі декларациямен, екіншісі кодпен тікелей. Дегенмен, global.asax файлдарының дизайны беті қамтамасыз етілмегендіктен, бұл қажет емес, сондықтан Visual Studio бөлінген код сыныбы бар global.asax файлын жасау параметрін ұсынбайды.

Егер веб-қосымшаны веб-жоба ретінде жасасаңыз, Visual Studio бөлінген кодты қолданады және екі файлды жасайды: global.asax (ол дерлік бос болады) және байланысқан global.asax.cs (барлық оқиғалар өңдегіштері бар қолданбалы класс бар) ). Нәтиже дәл осындай болады.

Global.asax файлы міндетті емес, бірақ әрбір веб-бағдарламаға оның бір ішкі каталогында емес, бағдарламаның түбірлік каталогында болуы керек бірден көп global.asax файлы болмауы керек. Global.asax файлын жобаға қосу үшін Веб-сайт мәзірінен Жаңа элементті қосу пәрменін таңдаңыз (немесе веб-жобаның үлгісін қолданып жатсаңыз, Project мәзірінде) және Global Application Class үлгісін көрсетіңіз ( Global қосымшалар класы). (Егер жобада global.asax файлы бар болса, бұл үлгі көрсетілмейді.)

Оқиғалар

Оқиғалардың келесі екі түрі global.asax файлында өңделуі мүмкін:

- әр сұрау үшін әрдайым болған оқиғалар. Мұндай іс-шараларға сұрау салумен байланысты оқиғалар және жауапқа қатысты оқиғалар жатады;

- белгілі бір жағдайларда ғана болатын оқиғалар.

Қажетті оқиғалар келесі тәртіпте жүргізіледі:

- Application_BeginRequest (). Бұл әдіс әр сұраудың басында шақырылады.

- Application_AuthenticateRequest (). Бұл әдіс түпнұсқаландыру жүргізілгенге дейін аталады. Бұл өзіңіздің аутентификация логикасын жасаудың бастапқы нүктесі.

- Application_AuthorizeRequest (). Пайдаланушы түпнұсқаландыру рәсімінен өткеннен кейін (анықталатын болады), пайдаланушының құқықтарын анықтау қажет болады. Арнайы артықшылықтарды тағайындау үшін осы әдісті қолдануға болады.

- Application_ResolveRequestCache (). Бұл әдіс әдетте шығу кэштеуімен бірге қолданылады. Шығарылған деректер кэштелгенде, веб-пішіннің жасалған HTML коды сіздің кодыңыздың біреуін орындаусыз қайта пайдаланылады. Дегенмен, бұл оқиға өңдеуші жұмысын жалғастыруда.

 

Web.config файлында не бар?

Web.config - ASP.NET веб-бағдарламасының параметрлерін анықтайтын файл. Шындығында, web.config файлы XML құжаты болып табылады. Ол сеанстық мемлекеттер провайдерлерінің параметрлері туралы ақпаратты сақтайды, мүшелік, қате беттеріне сілтемелер анықталған. Сондай-ақ, web.config деректер қорлары бар байланыс желісін, бақылауды басқару құралдарын қамтиды.

Әрбір веб-бағдарламада root каталогында web.config файлы болуы керек. Дегенмен, еншілес каталогтарда өздерінің ASP.NET конфигурациялық параметрлері болуы мүмкін (кейбір конфигурациялар болмаған жағдайда негізгі конфигурация файлынан ерекшеленеді).

ASP.NET конфигурация файлдары үшін мұра тетігі болып табылады

1) алдымен machine.config ішіндегі параметрлерді қолданыңыз

2) Содан кейін қосымшаның түбірінде орналасқан web.config файлынан параметрлер қолданылады.

3) Сонымен қатар, егер кейбір қосымшалар каталогтарында web.config файлы болса, одан параметрлер қолданылады.

4) конфигурация файлдары табылғанша 3-қадамды қайталаңыз.

Сондай-ақ, кейбір ішкі каталогтарда орналасқан web.config файлының параметрлерінен қайшылықтар туындаған жағдайда, ішкі каталогтан параметрлер ата-аналық каталогтың теңшелім файлынан параметрлерді қайта анықтайды. Дегенмен, кейбір параметрлік бөлімдердің бұғатталуына себепші болатын ерекше жағдай бар: бұл бір конфигурация файлындағы параметрлердің бірнеше топтарын анықтайтын <location> элементі.

Мысал:

<configuration>

<!--...-->

<system.web>

        <!--...-->

</system.web>

<location path="/ExampleDirectory">        

        <system.web>

                  <!--Здесь идут параметры для подкаталога ExampleDirectory-->

        </system.web>

</location>

<!--...-->

</configuration>

Мұндай файл web.config конфигурация файлдарының рөлін атқарады. Осылайша, сіз кез-келген сандық каталогты және олардың параметрлерін көрсете аласыз.

Route.config файлында не бар?

Жай жолды жасау және тіркеу URL үлгісіне ие болсаңыз, оны бағыттауды анықтау үшін пайдалануға болады. Бағыттар App_Start жоба қалтасында орналасқан RouteConfig.cs файлында орналасқан. Visual Studio осы файл үшін анықтаған бастапқы мазмұнды 13-5 листингте көре аласыз.

Листинг 13-5: RouteConfig.cs файлының әдепкі мазмұны

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.Mvc;

using System.Web.Routing;

namespace UrlsAndRoutes

{

public class RouteConfig

{

public static void RegisterRoutes(RouteCollection routes)

{

routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

routes.MapRoute(

name: "Default",

url: "{controller}/{action}/{id}",

defaults: new

{

controller = "Home",

action = "Index",

id = UrlParameter.Optional

} ); } }

}

RouteConfig.cs файлында анықталған Static әдісі RegisterRoutes шақырылады Global.asax.cs файлына, кейбір негізгі функционалды орнатады Бағдарлама басталған кезде MVC мүмкіндіктері. Global.asax.cs файлының әдепкі мазмұнын 13-6 листингте көруге болады және біз RouteConfig.RegisterRoutes әдісіне қоңырауды бөлектейік, ол Application_Start әдісінен жасалады.

RouteConfig.cs файлында анықталған Static әдісі RegisterRoutes шақырылады Global.asax.cs файлына, кейбір негізгі функционалды орнатады Бағдарлама басталған кезде MVC мүмкіндіктері. Global.asax.cs файлының әдепкі мазмұнын 13-6 листингте көруге болады және біз RouteConfig.RegisterRoutes әдісіне қоңырауды бөлектейік, ол Application_Start әдісінен жасалады.


Дата добавления: 2018-02-15; просмотров: 437;