NamespaceMvcSimpleModelBinding.Model



{

Publicclass Person

{

publicint Id { get; set; }

publicstring Name { get; set; }

publicint Age { get; set; }

publicstring Street { get; set; }

publicstring City { get; set; }

publicstring State { get; set; }

 }

}

4. ASP.NET MVC қосымшасының әлсіз байланысқан компоненттері қалай құрылады

ASP.NET ке арналған,сауатты түрде жобаланған WEB қосымша жеке компоненттерден тұруы мүмкін.Компоненттер деректердің және бизнес логикалардың жеке деңгейлері түрінде ұйымдастырылады.Мұндай компоненттерді кез келген ASP.NET веб парақшаларына қолдануға болады.

Компонентті екі әдіспен құруға болады.

App_Code ішкі каталогында .cs жаңа файылын құру

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

Visual studio-да класстар кітапханасына жаңа проектіні құру.Мұндай проектіде барлық кластар DLL жинағына компиляцияланады.Жинақ дайын болғанда Website (Веб-сайт) мәзіріндегі таңдамамен веб қосымшаға қосыла алады.Бұл жағдай Add Reference пунктында Visual studio проектісінің моделі қолданғанда орындалады.Бұл қадам web.config файлына осы жиынтыққа және жиынтықтың көшірмесіне сілтемелерді қосуға алып келеді.

Екі тәсілде бірдей нәтиже береді.Бірақ оларда код көмегімен басқару әртүрлі жүргізіледі сонымен қатар екінші тәсіл қолданғанда ыңғайлы және жеңіл болып келеді.

Компонентті құру.

Бұл мысалда SherlockQuotes класының коды көрсетілген.Осы классты құру кезінде оның экземпляры XML файлын жүктейді. SherlockQuotes класы GetRANDOM жалпы ортақ әдісінен тұрады және ол веб парақшаның кодында қолданыла алады:

using System;

usingSystem.Xml;

namespaceSherlockLib

{

   public class SherlockQuotes

   {

           privateXmlDocumentquoteDoc;

           privateintquoteCount;

 

           publicSherlockQuotes(string fileName)

           {

                   quoteDoc = new XmlDocument();

                   quoteDoc.Load(fileName);

 

                   quoteCount = quoteDoc.DocumentElement.ChildNodes.Count;

           }

 

           public Quotation GetRandomQuote()

           {

                   inti;

                   Random x = new Random();

                   i = x.Next(quoteCount-1);

                   return new Quotation( quoteDoc.DocumentElement.ChildNodes[i] );

           }

   }

}

 

 

5. ASP.NET MVC қосымшасының архитектуралық шаблонының қандай ерекшеліктерін біресіз

MVC архитектуралық шаблоны MVC-ді кем дегенде үш бөлікке бөлетінін білдіреді. Олар:

-Модельдер , қолданушылар жұмыс істейтін деректердің құрамы мен құрылымы. Олар ұсыныс пен контроллер арасында берілетін деректерді ұсынатын қарапайым модель болуы мүмкін. Модель – сіздің қосымшаңызды анықтайды. Мысалы, банктік қосымшалар моделі қосымшамен қолдайтын банк жүйесінің аспектілерін қарастырады. Сонымен қатарт модель жалпы күйдің сақталуы мен деректердің бүтіндігіне жауап береді.

-Ұсыныстар, қолданушы интерфейсі ретінде модельдердің кейбір бөліктерінің визуализациясы үшін қолданылады. Ұсыныстар қолданушы модельдерінің элементін бейнелеуге керекті логикадан тұрады.

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

MVC стандартты шаблон жобасы бойынша көптеген мамандарға таныс. Веб-қосымшалардың бірнеше түрлері MVC платформасын құруда артықшылыққа ие. Басқаларға ASP.NET веб-үлгі негізінде және кері байланыста дәстүрлі қосымшаларын пайдалану тиімді болуы мүмкін. Кейбір жағдайларда екі жүрісті үйлестіру: бір сызбаны қолдану екіншісін пайдалануға кедергі келтірмейді. MVC платформасына мынадай компоненттер кіреді. Модельдер. Модельдің нысаны болып, аталған қосымшаның домені логикасын жүзеге асыратын қосымшаның өзі болып табылады. Модельдің нысаны үнемі дерекқорды қабылдап, ондағы модельдердің жағдайын сақтайды. Мысалы, Product нысаны дерекқорынан ақпарат алуы мүмкін, онымен жұмыс жасап, содан соң жаңартылған деректерді Products кестесіндегі SQL Server дерекқорына жазып алады. Шағын қосымшаларда бұл модель заңды бөліктерге емес, концептуальды түрде бөлінеді. Мысалы, егер қосымша деректі тек қана жинап алып, көрініске жіберетін болса, онда модельдердің класқа байланысты заңды қабаты болмайды. Мұндай жағдайда деректерді жинау модельдің нысаны ролін атқарады. Қойылым. Қойылым интерфейс қосымшасын пайдаланушыға қызмет етеді. Пайдаланушы интерфейсі әдетте берілген модельдердің негізінде құрылады. Үлгі ретінде қызмет ететін мәтіндік жолдарды құрайтын, жалаушалар мен тізімдерді бояйтын Products кестесін редакциялау қойылымы Product нысанының маңызы ағымдағы жағдайына негізделген. MVC сызбасының күрделі құрылымын нығайтуды толықтыру сонымен қатар қосымшаны тестілеуді веб-үлгі негізіндегі ASP.NET қарағанда жеңілдетеді. Мысалы, ASP.NET веб-қосымшасындағы веб-үлгінің негізінде бір класс нәтижені көрсетуге және нәтижеге қолданушының жауабына пайдаланылады. ASP.NET веб-үлгісі негізіндегі қосымшаларға арналған автоматты түрде тестілеуді құруда қиындықтар туындауы мүмкін, өйткені жеке парақтарды тестілеу үшін парақтардың кластық топтамасын барлық басқарудың серіктес қосымшалар класына қарамастан құрастыру керек болады.

6. ASP.NET MVC қосымшасының қалай құрылады

Visual studio 2013  ашамыз. File -> New Project… жаңа проекті құрамыз. Жаңа проекті мысалы BookStore деп атаймыз. Жаңа проектіні құру терезесінен MVC-ді талдаймыз. Сол терезенің оң жақ бөлігінде қосымшаның аутентификация типін No Authentiction –ға өзгертеміз.

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

Проектте үнсіздік бойынша Models папкасы анықталған. Осы папкада модельдер сақталады. Папкаға тышқанның оң жақ батырмасын басып пайда болған терезеден Add -> Class… таңдап Book жаңа классын таңдап, оған кітаптың модельін анықтайтын код жазамыз.

namespaceBookStore.Models

{public class Book

{// ID книги

publicint Id { get; set; }

   // названиекниги

public string Name { get; set; }

   // авторкниги

public string Author { get; set; }

   // цена

publicint Price { get; set; }

}}

Model-View-Controller (MVC) құрылысы сызбасының қосымшасы үш негізгі бөлікке жіктеледі: модель, қойылым және контроллер. ASP.NET MVC платформасы веб-қосымша құрастыруда ASP.NET веб-үлгі сызбасына балама бола алады. ASP.NET MVC платформасы кең көлемде сынақ жүргізу көрінісінің жеңіл салмақтағы плотформасы болып табылады және сурет 1.4-те көрсетілген. Сонымен қатар веб-үлгі негізі, ASP.NET қолданып жүрген қызметтерін жандандырады, мысалы басты бет және мүшелік негізінің дұрыстығын тексереді.

MVC стандартты шаблон жобасы бойынша көптеген мамандарға таныс. Веб-қосымшалардың бірнеше түрлері MVC платформасын құруда артықшылыққа ие. Басқаларға ASP.NET веб-үлгі негізінде және кері байланыста дәстүрлі қосымшаларын пайдалану тиімді болуы мүмкін. Кейбір жағдайларда екі жүрісті үйлестіру: бір сызбаны қолдану екіншісін пайдалануға кедергі келтірмейді. MVC платформасына мынадай компоненттер кіреді. Модельдер. Модельдің нысаны болып, аталған қосымшаның домені логикасын жүзеге асыратын қосымшаның өзі болып табылады. Модельдің нысаны үнемі дерекқорды қабылдап, ондағы модельдердің жағдайын сақтайды. Мысалы, Product нысаны дерекқорынан ақпарат алуы мүмкін, онымен жұмыс жасап, содан соң жаңартылған деректерді Products кестесіндегі SQL Server дерекқорына жазып алады. Шағын қосымшаларда бұл модель заңды бөліктерге емес, концептуальды түрде бөлінеді. Мысалы, егер қосымша деректі тек қана жинап алып, көрініске жіберетін болса, онда модельдердің класқа байланысты заңды қабаты болмайды. Мұндай жағдайда деректерді жинау модельдің нысаны ролін атқарады. Қойылым. Қойылым интерфейс қосымшасын пайдаланушыға қызмет етеді. Пайдаланушы интерфейсі әдетте берілген модельдердің негізінде құрылады. Үлгі ретінде қызмет ететін мәтіндік жолдарды құрайтын, жалаушалар мен тізімдерді бояйтын Products кестесін редакциялау қойылымы Product нысанының маңызы ағымдағы жағдайына негізделген. MVC сызбасының күрделі құрылымын нығайтуды толықтыру сонымен қатар қосымшаны тестілеуді веб-үлгі негізіндегі ASP.NET қарағанда жеңілдетеді. Мысалы, ASP.NET веб-қосымшасындағы веб-үлгінің негізінде бір класс нәтижені көрсетуге және нәтижеге қолданушының жауабына пайдаланылады. ASP.NET веб-үлгісі негізіндегі қосымшаларға арналған автоматты түрде тестілеуді құруда қиындықтар туындауы мүмкін, өйткені жеке парақтарды тестілеу үшін парақтардың кластық топтамасын барлық басқарудың серіктес қосымшалар класына қарамастан құрастыру керек болады.

 

 

7. ASP.NET MVC архитектурасының негізгі артықшылықтарын атап шығыңыз.

ASP.NET үлкен коммерциялық жетістікке айналды. Артықшылықтары:

1.Mvc архитектурасы қызметі.

- Mvc қосымшасының қолданушымен өзара әрекеттесуі келесі циклға сәйкес келеді: қолданушы әрекет жасайды, осыған жауап ретінде қосымша өзінің деректер моделін өзгертеді және қолданушыға жаңартылған түрде ұсынады.

- Бірнеше технологияларды (мысалы, деректер қоры, HTML) біріктіретін қосымшасына қажеттіліктің туындауы

2.Кеңейтілуі, кеңейтілуінің түрлері

Дербес компьютердің дербес компоненттері интерфейс арқылы құжатталынатын тәуелсіх бөліктер болып табылады. Үш түрлі компонент бар:

- Компоненттің қазіргі түріне байланысты келісім бойынша жүзеге асыруды қолдану;

- Келісім бойынша баптау үшін ішкікласстың жүзеге асуы орындалады;

- Интерфейстің жаңа жүзеге асуы немесе абстарктілі базалық кластың көмегімен компонетті толықтай алмастыру

3.HTML мен HTTP үшін қатаң бақылау – ASP.NET MVC-дің белгілеу стандарттарына сәйкестігін анықтау.

4.Тестіленуі- ASP.NET MVC архитектурасы сіздің қосымшаңыздың оңай сүйемелденуі және тестіленуіне мүмкіндік береді.

5.Маршрутизация жүйесінің қуаттылығы- іздеу жүйесі, интернет қолданушыларының көптігі, нұсқаулықты басқалармен бөлісе алуы, техникалық нақтылануы қарастырылады.

8. ASP.NET MVC қосымшасының архитектурасына сипаттама беріңіз

ASP.NET MVC архитектурасының ерекшеліктеріне келер болсақ MVC қосымшасы кем дегенде төменде сипатталған үш бөліктен тұрады.

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

· Көрініс-қолданушы интерфейс түрінде модельдің кейбір бөліктерін визуализациялауда қолданылады.

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

Model-View-Controller (MVC) құрылысы сызбасының қосымшасы үш негізгі бөлікке жіктеледі: модель, қойылым және контроллер. ASP.NET MVC платформасы веб-қосымша құрастыруда ASP.NET веб-үлгі сызбасына балама бола алады. ASP.NET MVC платформасы кең көлемде сынақ жүргізу көрінісінің жеңіл салмақтағы плотформасы болып табылады және сурет 1.4-те көрсетілген. Сонымен қатар веб-үлгі негізі, ASP.NET қолданып жүрген қызметтерін жандандырады, мысалы басты бет және мүшелік негізінің дұрыстығын тексереді.

MVC стандартты шаблон жобасы бойынша көптеген мамандарға таныс. Веб-қосымшалардың бірнеше түрлері MVC платформасын құруда артықшылыққа ие. Басқаларға ASP.NET веб-үлгі негізінде және кері байланыста дәстүрлі қосымшаларын пайдалану тиімді болуы мүмкін. Кейбір жағдайларда екі жүрісті үйлестіру: бір сызбаны қолдану екіншісін пайдалануға кедергі келтірмейді. MVC платформасына мынадай компоненттер кіреді. Модельдер. Модельдің нысаны болып, аталған қосымшаның домені логикасын жүзеге асыратын қосымшаның өзі болып табылады. Модельдің нысаны үнемі дерекқорды қабылдап, ондағы модельдердің жағдайын сақтайды. Мысалы, Product нысаны дерекқорынан ақпарат алуы мүмкін, онымен жұмыс жасап, содан соң жаңартылған деректерді Products кестесіндегі SQL Server дерекқорына жазып алады. Шағын қосымшаларда бұл модель заңды бөліктерге емес, концептуальды түрде бөлінеді. Мысалы, егер қосымша деректі тек қана жинап алып, көрініске жіберетін болса, онда модельдердің класқа байланысты заңды қабаты болмайды. Мұндай жағдайда деректерді жинау модельдің нысаны ролін атқарады. Қойылым. Қойылым интерфейс қосымшасын пайдаланушыға қызмет етеді. Пайдаланушы интерфейсі әдетте берілген модельдердің негізінде құрылады. Үлгі ретінде қызмет ететін мәтіндік жолдарды құрайтын, жалаушалар мен тізімдерді бояйтын Products кестесін редакциялау қойылымы Product нысанының маңызы ағымдағы жағдайына негізделген. MVC сызбасының күрделі құрылымын нығайтуды толықтыру сонымен қатар қосымшаны тестілеуді веб-үлгі негізіндегі ASP.NET қарағанда жеңілдетеді. Мысалы, ASP.NET веб-қосымшасындағы веб-үлгінің негізінде бір класс нәтижені көрсетуге және нәтижеге қолданушының жауабына пайдаланылады. ASP.NET веб-үлгісі негізіндегі қосымшаларға арналған автоматты түрде тестілеуді құруда қиындықтар туындауы мүмкін, өйткені жеке парақтарды тестілеу үшін парақтардың кластық топтамасын барлық басқарудың серіктес қосымшалар класына қарамастан құрастыру керек болады.

9. ASP.NET MVC қосымшасының қарапайым маршруты қалай құрылады және тіркеледі?

Маршруттарды құру үшін MapRoute әдіснамасын қолданамыз. Мысалы:

public class RouteConfig

{

public static void RegisterRoutes(RouteCollection routes)

{

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

 

routes.MapRoute(

name: "newRoute",

url: "{controller}/{action}"

);

}

}

 

Немесе Route обьектісін құрып одан кейін оны RouteCollection маршруттар жиынтығына қосамыз. Екі маршрутты анықтаймыз:

public class RouteConfig

{

public static void RegisterRoutes(RouteCollection routes)

{

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

 

routes.MapRoute(

name: "Default",

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

);

 

Route newRoute = new Route("{controller}/{action}", new MvcRouteHandler());

routes.Add(newRoute);

}

}

Сонымен бұл жерде екі маршрут анықталған. Бірінші маршрут үш сегментті

бар сұраныстарды қанағаттандырады. Екіншісі newRoute тек қана екі сегменті бар сұраныстармен қанағаттандырылады.

10. ASP.NET MVC-тегі қандай фильтрлерді білесіз?

Фильтрлер-MVC Framework инфраструктурасындағы сұраныстарды өңдеуге қосымша логикаларды қосады.Бұл түсінік барлық қосымша бойында функционалдылыққа қолданылады және тек бір жерде ғана орындалмайды.

Фильтрлердің келесідей типтері бар.

Фильтр типі Интерфейс Стандартты реализациясы Сипаттамасы
Аутентификация фильтрі IAuthenticationFilter жоқ Кез-келген фильтрдің немесе іс-әрекет әдісінің алдында орындалады.Бірақ авторизация фильтрінен соң қайта іске қосылуы мүмкін.
Авторизация фильтрі IAuthorizationFilter AuthorizeAttribute Аутентификациядан соң іске қосылады.Бірақ кез-келген басқа фильтр мен іс-әрекет әдісінің алдында орындалуы тиіс.
Іс-әрекет фильтрі IActionFilter ActionFilterAttribute Іс-әрекет әдісінің алдында немесе соңында іске қосылады.
Нәтиже фильтрі IResultFilter ResultFilterAttribute Іс-әрекет нәтижесі орындалудың алдында немесе соңында іске қосылады.
Ерекше жағдайлар фильтрі IExceptionFilter HandleErrorAttribute Басқа фильтр,іс-әрекет әдісі немесе іс-әрекет нәтижесі ерекше жағдайларда шығарғанда ғана қолданылады.

 

 

11. ASP.NET MVC-тегі фильтрлер не үшін қолданылады?

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

[Authorize]

public class HomeController : Controller

{

//................................}

[Authorize] атрибутты бұл жағдайда авторизация фильтрі ретінде қолданылатын болады. Егер біз бұл фильтрді қолданбасақ, авторизацияны тексеретін логиканы қолмен жазуымызға тура келер еді.

Жоғарыдағы мсылада көргендей, фильтрлерді қолдану үшін атрибутты контроллер класының алдына қою керек – бұл жағдайда фильтр контроллердің барлық әдістеріне қоланылатын болады.Яғни, фильтрді жеке әдіс деңгейінде де қолдануға болады:

public class HomeController : Controller

{ [Authorize]

publicActionResult Index()

{ViewBag.Message = "Приветмир!";

return View();

}}

12. ASP.NET ортасына маршрут таңдау мүмкіндігін берілуі қалай жүзеге асырылады. Маршрут шектеулері қалай енгізіледі

URL адрестердің қолданушымен анықталатын шаблондары маршруттар деп аталады. Маршруттарда URL сұраныстарының процесіне талдау кезінде алынатын, мәндерге сәйкес келетін толтыру орындары көрсетіледі. Толтыру орындарының маршруты({}) жүйелі жақшада қорытынды түрінде анықталады. Маршрутта анықталатын ақпараттар бірыңғай мәндер түрінде түсіндіріледі. Келесі кестеде маршруттардың мүмкін шаблондары және сол шаблонға сәйкес келетін URL сұраныстарының мысалдары көрсетілген:

Маршрутизацияға ерекше маршрутқа сәйкес келетін браузер сұраныстарының шектеулерін қоса аламыз. Мысалы, біздің жағдайда id сандық болуы тиіс:

Маршрутты анықтау URL-адрестің сәйкестік мысалы
{controller}/{action}/{id} /Products/show/beverages
{table}/Details.aspx /Products/Details.aspx
blog/{action}/{entry} /blog/show/123
{reporttype}/{year}/{month}/{day} /sales/2008/1/5
{locale}/{action} /en-US/show
{language}-{country}/{action} /en-US/show

 

routes.MapRoute(

           name: "Role",

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

defaults: new { controller = "Role", action = "Index", id = UrlParameter.Optional },

constraints : new {id = @"\d+"}

       );

"roli/{action}/{id}" жолы defaults бөлігінеконтроллератынбереді. Ал action параметрболыптабылады

 

Қайта бағыттау дегеніміз web парақшаны бір URL бойынша басқа бір URL-ға ауыстыру.Қайта бағыттауды белгілі бір жаңа парақшаны жаңа орынға ауыстыруды,сайттық URL адрестік www бөлігін алып тастауда немесе қолданушыны толығымен басқа сайтқа бағыттауда қолданған тиімді.Мысалы, біз өзіміздің web сайтымызды ауыстырдық немесе оны жапқымыз келеді,бірақ та бұрынғы сайттың барлық парақшалары 404 NOT FOUND деген қателікті шығармауын қалаймыз.Бұл үшін өзге бұрынғы сайттын мазмұнын, оның ішіндегі сілтемелерін жаңа сайтқа қайта бағыттау қажет.Әр уақытта біз URL бойынша бір парақшадан екінші парақшаға ауысамыз немесе браузерде сұранысты орындау арқылы орындаймыз. Браузерден сұранысты орындау үшін гипертексті жіберу хаттамасын қолданамыз. Сұраныстарды жібергеннен кейін http жауабын аламыз.http жауаптың бірнеше кодтары бар,ең танымалы 404 NOT FOUND.Әр бір http жауап 3 санмен белгіленеді.200 қателігін 2xx категориясына жатады немесе ол сәтті сұранысты білдіреді.3хх категориясы,оның ішінде 301multpermanintly.302 found қайта бағыттаудың мысалы.Response.Redirect(“/http/:kaznu.kz”) сайт адресі.

Басқа парақшаларға қайта бағыттаудың көптеген әдістері бар:

1)Парақшаны конфигурациялау көмегімен басқа парақшаға жіберу

2)Шолушыны динамикалық қолдану арқылы.Бұл сенарида сервер контексті басқа парақшаға жібереді кемшілігі шолушы туралы білмейді немесе шолушы журналы жаңартылмайды.Артықшылығы контекст туралы мәліметтер парақшалар арасында таратылады.Шолушы көмегімен қолданушыны басқа парақшаға қайта бағыттау үшін:Buffer Output объектісінің Response мәнін true орнату керек. Response объектісінің Redirect әдісін қайта бағыттау үшін URL адрестеріне жіберіп шақырамыз. ASP.NET-те бірнеше параметрлер бар.Бұл параметрлер мәліметтерді парақшалар деңгейінде сонымен қатар қосымшалар деңгейінде сақтауға мүмкіндік береді.Бұл қасиеттер:Көрсету күйі,элеметті басқару күйі,жасырын өрістер,кіші файлдар сұраныс жолдары,қосымша күйі,сеаныс күйі,профиль қасиеттері. ASP.NET күйі арқылы мәліметтерді сақтауға мүмкіндік береді.Сеаныс күйі,бұл күйлерді басқарудың ең қиын технологиясы,ол мәліметтерді бір бетте сақтап,одан кейін оны басқа парақшадан алуға мүмкіндік береді,сонымен қатар объектінің кез келген типін қолдайды.Сеаныс күйі арқылы келесідей есепті шешуге болады.

-шолушының уникальды сұраныстарын анықтауда;

-клиенттік құралдарды анықтауда;

-серверде мәліметтерді сеанысқа тейістісін шолушының біренеше сұраныстарын орындауда сақтау.

 

13. ASP.NET-те модельдерді қалай бекіту қажет?

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

Visual Studio-да ASP.NET Empty Web Application шаблонын қолдану арқылы ControlState атты жаңа проект құрдық. Біз Models атты папка құрудан бастаймыз. Одан кейін бұл папкаға Person.cs классты файлды қостық және модель класстарын анықтадық:

namespaceBinding.Models { public class Person {

public string Name { get; set; } public int Age { get; set; } public string Cell { get; set; } public string Zip { get; set; }}}

Модельді жалғауды түсінудің ең жақсы жолы – ол оның шешетін мәселесімен танысу: объект моделін толтыруда қолданушының енгізген ақпаратын дұрыс өңдеу мен дұрыстығын тексеру. Мысал ретінде Person.Name және Person.Age қасиеттерін алайық және қолданушы жарамды мәндер ұсынғанына көз жеткізу үшін қолданылатын амалдары қарастырайық. Name қасиеттері үшін тексеру керек:

· Қолданушы мән енгізді (форма жолын бос қалдырғанға қарама-қарсы)

· Енгізілген мәнде тек A-Zсимволдары мен пробел бар

· Мәнде 3 пен 20 аралығында символ бар

Модель жалғау басты мәселені шешеді. Ол – қолданушының ақпаратын тексеретін кодтың көп көлемділігі. Бірінші әрекет формадағы мәндерді қабылдап, оны ары қарай Person объектісінің қасиеттерін толтыруда қолдануды автоматтандыру

 

14. Entity Framework технологиясының Code First әдісі бойынша сыртқы реляциялық дерекқор қалай құрылады

Entity Framework қосымшасын құрған кезде Code First-ті қолданамыз. Бұл өте қолайлы және тиімді. Жаңа проект құрамыз, осыдан кейін мәтіндік деректер қорын құрамыз.

Ашылған Server Explorer терезесінде Connect to Database таңдап жаңа мәліметтер қорына қосыламыз. Қосылуды құру терезесінде сервер ретінде (localdb)\v11.0 таңдаймыз. Бұл жағдайда өңдеу мақсаты үшін арналған MS SQL Server жұмысы үшін localdb –ны таңдаймыз. Мәліметтер қорының аты ретінде userstoredb-ны енгіземіз. Егер мәліметтер қоры болмаса онда оны құру туралы ескерту терезесі ашылады. 'Да' батырмасын басамыз осыдан кейін Server Explorer құрылған мәләметтер қоры көрінеді. Ол әлі бос болғандықтан оған кесте қосамыз. Tables-тың оң жақ батырмасын басып пайда болған мәтін мәндік менюдан Add New Table таңдаймыз.

T-SQL жолында кесте атын, құрылымын, бағандардың типтерін анықтап Update батырмасын басамыз. Жаңа терезеден бізге мәліметтер қорындағы өзгерістер туралы ақпарат көрсетіледі. Update Database батырмасын басамыз бұдан кейін Users кестесәі құрылады. Server Explorer терезесінжаңартып Tables-ті ашқаннан кейін Users жаңа кестесін көре аласыз. Мәліметтер қоры дайын. Енді қосымшаның конфигурациялық файылына іске қосуды қосамыз. В Solution Explorer-дан App.config файылын тауып оны ашамыз. </configuration> жабылу тегінан бұрын connectionStrings жаңа секциясын қосамыз.

<?xml version="1.0" encoding="utf-8"?>

<configuration>

<!--остальноесодержимое-->

<connectionStrings>

<add name="UserDB" connectionString="data source=(localdb)\v11.0;Initial Catalog=userstoredb;Integrated Security=True;"

providerName="System.Data.SqlClient"/>

</connectionStrings>

</configuration>

Енді мәндік және мәліметтер модельі классын таңдаймыз. User модель классын қосамыз.

public class User

{

public int Id { get; set; }

public string Name { get; set; }

public int Age { get; set; }

}

 Сонымен қатар мәндік мәләметтер классын қосамыз.

using System;

using System.Collections.Generic;

using System.Data.Entity;

namespace CodeSecond

{

class UserContext : DbContext

{

public UserContext():

base("UserDB")

{ }

public DbSet<User> Users { get; set; }

}

}

 

15. Entity Framework технологиясының Data Base First әдісі бойынша сыртқы реляциялық дерекқор қалай құрылады

Data Base First тәсілі Entity Frameworк-анықталған алғашқы тәсіл болды. Бұл тәсіл Model First ке ұқсас және құрастырушының деректер қоры болғандағы барлық жағдайға сәйккес келеді.

   Data Base First әдісін іске асыру үшін жаңа проект құрып, содан соң жаңа деректер қорын құрамыз немесе өзімізде бар деректер қорын аламыз.

Visual Studio ортасындағы Solution Explorer терезесінде жобан тышқанның сол жақ батырмасын басу арқылы Add - > New Item таңдаймыз. Содан соң пайда болған терезеде ADO.NET Entity Data Model таңдаймыз. Жаңа компонентке қандай да бір атау береміз, мысалы, User.

Содан соң моделді құру мастерінің терезесі ашылады. Ол жерден біз EF Code First from database таңдауымыз керек. Кейінгі терезе арқылы жаңа деректер қорын құрамыз. Деректер қоры құрылған соң, оны минималды түрде қосымша кодында алу үшін келесі кодты жазамыз:

 

using(userstoredbEntities db = new userstoredbEntities())

{

var users = db.Users;

foreach (User u in users)

Console.WriteLine("{0}.{1} - {2}", u.Id, u.Name, u.Age);

}

 

 

16. Entity Framework технологиясының Model First әдісі бойынша сыртқы реляциялық дерекқор қалай құрылады

Entity Framework-тағы Model First әдісінде ең алдымен модель құрылады, одан кейін сол бойынша деректер қоры жасалады. Сонымен Console Application типінде жаңа жоба құрайық, сосын оған жаңа элемент қосайық. Жобаның Solution Explorer терезесінде тышқанның оң жақ батырмасын басып, пайда болған тізімнен Add->New Item таңдаймыз. Кейін пайда болған терезеден ADO.NET.Entity Data Model таңдаймыз. Модель адамды суреттегендіктен оның атын User деп атайық. ОК басқанда құрылған модельдің мастері ашылады. Бұл терезе модельді құрудың төрт нұсқасын ұсынады, соынң ішінен Empty EF Designer Model таңдаймыз. Finish батырмасын бассақ жаңа бос терезе ашылады. Toolbox панелінен Entity элементінің сол жақ бөлігіне жолды ауыстырып әкелеміз. Үнсіз келісім бойынша тек бір id жолы бекітілген, болашақ модельдің кішігірім сызбасы құрылады.

Server Explorer терезесінде Connect to Database таңдап жаңа мәліметтер қорына қосыламыз. Қосылуды құру терезесінде сервер ретінде (localdb)\v11.0 таңдаймыз. Бұл жағдайда өңдеу мақсаты үшін арналған MS SQL Server жұмысы үшін localdb –ны таңдаймыз. Мәліметтер қорының аты ретінде userstoredb-ны енгіземіз. Егер мәліметтер қоры болмаса онда оны құру туралы ескерту терезесі ашылады. 'Да' батырмасын басамыз осыдан кейін Server Explorer құрылған мәләметтер қоры көрінеді. Ол әлі бос болғандықтан оған кесте қосамыз. Tables-тың оң жақ батырмасын басып пайда болған мәтін мәндік менюдан Add New Table таңдаймыз.

T-SQL жолында кесте атын, құрылымын, бағандардың типтерін анықтап Update батырмасын басамыз. Жаңа терезеден бізге мәліметтер қорындағы өзгерістер туралы ақпарат көрсетіледі. Update Database батырмасын басамыз бұдан кейін Users кестесәі құрылады. Server Explorer терезесінжаңартып Tables-ті ашқаннан кейін Users жаңа кестесін көре аласыз. Мәліметтер қоры дайын. Енді қосымшаның конфигурациялық файылына іске қосуды қосамыз. В Solution Explorer-дан App.config файылын тауып оны ашамыз. </configuration> жабылу тегінан бұрын connectionStrings жаңа секциясын қосамыз.

<?xml version="1.0" encoding="utf-8"?>

<configuration>

<!--остальноесодержимое-->

<connectionStrings>

<add name="UserDB" connectionString="data source=(localdb)\v11.0;Initial Catalog=userstoredb;Integrated Security=True;"

providerName="System.Data.SqlClient"/>

</connectionStrings>

</configuration>

Енді мәндік және мәліметтер модельі классын таңдаймыз. User модель классын қосамыз.

public class User

{

public int Id { get; set; }

public string Name { get; set; }

public int Age { get; set; }

}

 Сонымен қатар мәндік мәләметтер классын қосамыз.

using System;

using System.Collections.Generic;

using System.Data.Entity;

namespace CodeSecond

{

class UserContext : DbContext

{

public UserContext():

base("UserDB")

{ }

public DbSet<User> Users { get; set; }

}

}

17. MVC веб-қосымшасында реляциялық дерекқор қалай құрылады

Реляциялық дерекқор – деректердің реляциялық моделіне негізделген деректер қоры болып табылады. Реляция – қатынас деген мағынаны білдіреді. Дерекқорды құру үшін Visual Studio ортасын іске қосып, Server Explorer ашыңыз. Содан соң Data Connections тармағын оң жақ батырмамен басып Create New SQL Server Database пунктін таңдаңыз, атауын кез келген етіп қоя аламыз, ал өзіміздлің мысалды көрсеу үшін AutoLot деп қоямыз. Қазір AutoLot дерекқоры бос және ешқандай объекттерден тұрмайды. Жаңа кестені қосу үшін Tables тармағын оң жақ баытрмамен бас ыңыз, содан соң контекстті менюден Add New Table пункттін таңдаймыз.

Кесте редакторының көмегімен кестеге төрт деректер бағанды қосыңыз: CarID (автомобиль иентификатор), Make (Модель), Color (Түсі) и PetName (достық аты).

CarID бағанына Primary Key қасиетін орнатамыз,. Барлық операцияларды орындаған соң деректер қорына атау беріп, сақтаңыз.

18. NuGet шебері көмегімен сыртқы реляциялық дерекқормен жұмыс жасайтын Power Shell қандай командаларын білесіз

1. Get-Help
Get-Help көмегімен басқа кез келген команда бойынша анықтамалық ақпаратты алуға болады, мысалы Get-Process командасы үшін толық синтаксисті білу үшін келесі команданы қолдану керек:
Get-Help -Name Get-Process
2. Set-ExecutionPolicy
Set-ExecutionPolicy көмегімен сценарийлардың орындалуына рұқсаттарды басқарады. Оның төрт түрлі қауіпсіздік деңгейлері бар:
• Restricted — сценарийді орындау тыйым салынған. Бұл опция келісім бойынша орнатылады.
• All Signed— тек сенімді баспамен жазылған сценарийлердің орындалуына рұқсат береді.
• Remote Signed — локальді түрде құрылған кез келген сценарийлердің орындалуына рұқсат береді.
• Unrestricted — абсолютті түрде кез келген сценариялердің орындалуына рұсат беріледі .
3. Get-ExecutionPolicy
Таныс емес серверлерді қолдану жұмысында сценарийлердің орындалу әрекетін білген жөн. Бұны білу үшін Get-ExecutionPolicу командасы қолданылады.
4. Get-Service командасы көмегімен жүйедегі барлық орнатылған қызметтердің тізімін алуға болады.

5. ConvertTo-HTML
PowerShell жүйе туралы әртүрлі керекті ақпараттарды алуға мүмкіндік береді, бірақ командалық жол терезесінде бұл ақпараттарды көру жеткіліксіз. Соған орай басқа администраторға жіберілетін есеп берулерді құру қажеттілігі туындайды. Осы жағдайда ConvertTo-HTML командасын басқа командаларға жіберу арқылы қолдануға болады.
6. Export-CSV
Есеп берулерді HTML-да ғана сақталмайды, Microsoft Excel-де көру үшін CSV форматында экспорттауға болады, ол үшін ConvertTo-HTML командасының синтаксисі қолданылады
7. Select-Object
Select-Object командасы деректердің жиынтығын шектеу үшін қолданылады
8. Get-EventLog
Get-EventLog командасы оқиға журналдарының синтаксисті анализі үшін қолданылады.
9. Get-Process
Get-Process командасы сол моментте орындалатын процесстерді шығарады.
10. Stop-Process
Stop-Process командасы белгілі бір процесс істен шыққан жағдайда оның атымен идентификаторын білу үшін қолданылады.

19. Razor амалы қалай қолданылады

Razor өрнегі көмегімен жасалатындардың ең қарамайымы- белгіге мәліметтердің мағынасын қою. Бұл @Model өрнегін қолдану арқылы іске асырылады, ол көрініс моделінің объектінде анықталған қасиеттер мен әдістерге немесе ViewBag объектісінің көмегімен динамикалық түрде анықталған қасиеттерге @ViewBag -өрнегі арқылысілтеме жасайтын болады.

Толық болу үшін Home-ға ViewBag обьектісі және модель обьектісімен қолданатын мәліметтерді ұсынысқа жіберетін DemoExpressions деп аталатын іс әрекеттің жаңа әдісін қосамыз.

Using System.Web.Mvc;

Using Razor.Models;

Namespace Razor.Controllers{

 public class HomeController: Controller{

public ActionResult DemoExpression() {

 ViewBag.ProductCount=1;

ViewBag.ExpressShip=true;

ViewBag.ApplyDiscount=false;

ViewBag.Supplier=null;

return View(myProduct);

}

}

Бұл базалық типтердің өрнегін көрсету views/home папкасында орналасқан DemoExpressions.cshtml деп аталатын қатаң типті файлдағы ұсыныс құрылған.
@model Razor.Models.Product

@{

ViewBag.Title=”DemoExpression”;

Layout=”~/Views/_BasicLayout.cshtml”;

}

<table>

<thead>

<tr><th>Свойство</th><th>Значение</th></tr>

</thead>

<tbody>

<tr><td>Название</td><td>@ModelName </td></tr><tr><td>Цена</td><td>@Model.Price</td></tr>

<tr>

<td>В наличий</td>

<td> ViewBag.ProductCount</td>

</tr>

</tbody>

</table>

 

 

20. Razor көмегімен мәліметтер шамасын енгізу қалай жүзеге асырылады

Razor көмегімен жасалынатын амалдардың ең қарапайымы – мәліметтер шамасын енгізу болып табылады. Бұл @Model өрнегін қолдану арқылы іске асырылады, ол көрініс моделінің объектінде анықталған қасиеттер мен әдістерге немесе ViewBag объектісінің көмегімен динамикалық түрде анықталған қасиеттерге @ViewBag -өрнегі арқылы сілтеме жасайтын болады.

   Біз DemoExpressionsжаңа іс-әрекет әдісін Homeконтроллеріне қостық, ол ViewBag модель объектісін қолдана отырып мәліметреді ұсынысқа жібереді. Сіз бұны келесі кодтан көре аласыз, DemoExpressions іс-әрекетніің әдісі:

using Razor.Models;

using System;

using System.Web.Mvc;

namespace Razor.Controllers

{

publicclass HomeController : Controller

{

Product myProduct = new Product

{

ProductID = 1,

Name = "Kayak",

Description = "A boat for one person",

Category = "Watersports",

Price = 275M

};

public ActionResult Index()

{

return View(myProduct);

}

public ActionResult NameAndPrice()

{

return View(myProduct);

}

publicActionResult DemoExpression()

{

ViewBag.ProductCount =1;

ViewBag.ExpressShip =true;

ViewBag.ApplyDiscount =false;

ViewBag.Supplier =null;

returnView(myProduct);

}

}

}

 

 

21. Razor механизмі көмегімен визуализация қалай жүзеге асырылады

Razor – бұл Microsoft-қа MVC 3 және MVC 4 нұсқаларында енгізілген визуализация механизмінің аты. Визуализация механизмі ASP.NET контентін өңдейді және браузермен жіберілетін динамикалық контентті қорытынды түрінде қоятын инструкцияны іздейді. Microsoft екі визуализация механизмін қолдайды: көп жылдар бойы ASP.NET жасалуында негіз болған <%және %> дескриптормен жұмыс істейтін ASPX механизмі, және @ символ көмегімен белгіленетін, контент облысымен жұмысы бар Razor механизмі.

Егер сіз <% %> синтаксисімен таныс болсаңыз, онда Razor негізімен қиындық туындамайды, дегенмен бұл механизмде бірнеше жаңа ережелер жоқ.

Razor механизмі MVC-дің жасалуымен тығыз байланысты, бірақ ASP.NET 4.5 пайда болғаннан кейін Razor визуализация механизмі ASP.NET Web Pages жасалуын қолдайды.

Пәндік аймақ моделінің қарапайым класын құру жолы:

namespace Razor.Models {

public class Product {

public int ProductID { get; set; }

public string Name { get; set; }

public string Description { get; set; }

public decimal Price { get; set; }

public string Category { set; get; }

}

}

 

 

22. Razor механизмі көмегімен ұсыныс бөлімдері қалай қолданылады

Razor-де барлық MVC қосымшалары талап ететін функционалдылық бар.Арнайы визуализациялау механизмін құру қажеттілігі проекттердің аз бөлігінде ғана кездеседі.

MVC қосымшасындағы ұсыныстар

Қосымшаны іске қосқанға дейін компиляцияланбайды,себебі Razor арқылы құрылған класстарды көру үшін қосымшаны іске қосып /Home/Index бөліміне өту керек. MVC қосымшасындағы бастапқы сұраныс барлық ұсыныстар үшін компиляциялау процесін жасайды.

Сонымен қатар ұсыныстарды іздеу барысында Razor визуализациялау механизмі стандартты шаблон бойынша орындалады. Razor механизмінің көмегімен ұсыныстарды іздеуге арналған адресті анықтауға болады. Razor механизмі ұсыныс файлдарын дискіден іздемейді себеі олар С# класында компиляциядан өткен болатын. Razor механизмі осы ұсыныстарға сәйкес келетін компиляцияланған кластарды іздейді.Жобада адрестің өзгеруін іздеуді көрсету үшін инфраструктура папкасын ашып оған CustomLocationViewEngine.cs атты класс файлы құрылған,ал оның құрамы келесідей:

using System.Web.Mvc;

namespace WorkingWithRazor.Infrastructure

{ public class CustomLocationViewEngine : RazorViewEngine

{ public CustomLocationViewEngine()

   {

       ViewLocationFormats = new string[] { "~/Views/{1}/{0}.cshtml",

"~/Views/Common/{0}.cshtml" };

   }

}}

23. Razor үшін атаулар кеңістігімен жұмыс қалай жүзеге асырылады?

Атаулар кеңістігін мәтінге қоюды using өрнегі арқылы ұсыныстарды ретке келтіре аламыз. DemoArray ұсынысы үшін using өрнегін қолдандық.

@using Razor.Models

@model Product[]

@{

 ViewBag.Title = "DemoArray";

 Layout = "~/Views/_BasicLayout.cshtml";

}

@if (Model.Length > 0) {

<table>

<thead>

<tr>

<th>Product</th>

<th>Price</th>

</tr>

</thead>

<tbody>

@foreach (Product p in Model)

 

{ <tr><td>@p.Name</td>

<td>$@p.Price</td></tr> }

</tbody></table>

 } else {

<h2>No product data</h2>

}

Using өрнегі ұсыныста бірнеше рет қолданылуы мүмкін. Біз Razor.Models атаулар кеңістігін импорттау үшін @using өрнегін қолдандық.

24. Razor үшін шартты операторлар қалай қолданылады?

Razor біздің ұсынысымызда мәліметтердің мағынасына негізделе отырып ұсыныстағы шығыс мәлліметтерін ретке келтіре алатын шартты операторларды өңдей алады. Түсінуге жеңіл болатын қиын әрі икемді макеттерді құруға мүмкіндік беретін Razor-дің түпкілікті мағынасына жетеді. DemoExpression.cshtml ұсыныс файлына шартты оператор қосу үшін оны қайтадан өңдедік.

@model Razor.Models.Product

 @{

 ViewBag.Title = "DemoExpression";

Layout = "~/Views/_BasicLayout.cshtml";

}

<table>

<thead>

<tr>

<th>Property</th>

<th>Value</th>

</tr>

</thead>

<tbody>

<tr>

<td>Name</td>

<td>@Model.Name</td>

</tr>

<tr>

<td>Price</td>

<td>@Model.Price</td>

</tr>

<tr>

<td>Stock Level</td>

<td>@switch ((int)ViewBag.ProductCount) { case 0: @: Out of Stock break; case 1: <b>Low Stock (@ViewBag.ProductCount)</b> break; default: @ViewBag.ProductCount break;

 }

</td>

</tr>

</tbody>

</table>

Шартты операторды жазу үшін осы оператордың басына @ қоямыз. Бұл мысалда switch кілттік сөзінің алдына қойылған.

 

 

25. URL статистикалық сегменті қалай қолданылады

URL-дағы барлық сегменттер айнымалылар болып келмейді.Сонымен қатар статикалық сегменті бар паттерндер құра аламыз.Егер бізге URL-мен сәйкес келетін URL қолдауы табылса онда PUBLIC-тен басталады:

http://mydomain.com/Public/Home/Index

Біз мұны келесі паттерн арқылы жасаймыз.

 URL паттерн статикалық сегментпен:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.Mvc;

using System.Web.Routing;

namespace UrlsAndRoutes

{

publicclass RouteConfig

{

publicstaticvoid RegisterRoutes(RouteCollection routes)

{

routes.MapRoute("MyRoute", "{controller}/{action}",

new { controller = "Home", action = "Index" });

routes.MapRoute("","Public/{controller}/{action}",

new{ controller ="Home", action ="Index"});

}

} }

Бұл жаңа паттерн тек үш сегменттен тұратын URL-ге сәйкес келеді.Үш сегменттің алғашқысы міндетті түрде Public болуы керек.Басқа екі сегмент кез-келген мәннен тұруы мүмкін және controller, action айнымалылары үшін қолданылады.Егер соңғы екі сегмент болмаса онда мәндер үнсіз келісім бойынша қолданылады.

26. URL міндетті емес сегменттері қалай орнатылады?

URL-дағы барлық сегменттер айнымалылар болып келмейді.Сонымен қатар статикалық сегменті бар паттерндер құра аламыз.Егер бізге URL-мен сәйкес келетін URL қолдауы табылса онда PUBLIC-тен басталады:

http://mydomain.com/Public/Home/Index

Біз мұны келесі паттерн арқылы жасаймыз.

 URL паттерн статикалық сегментпен:

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.MapRoute("ShopSchema","Shop/{action}",

new{ controller ="Home"});

routes.MapRoute("", "X{controller}/{action}");

routes.MapRoute("MyRoute", "{controller}/{action}",

new { controller = "Home", action = "Index" });

routes.MapRoute("", "Public/{controller}/{action}",

new { controller = "Home", action = "Index" });

}

}

}

Біз қосқан Роут бірінші сегменті Shop болатын кез келген екісегментті

URL-ге сәйкес келеді. Action мәні URL-дің екінші сегментінен алынады. URL

Паттернінің сегменті controller үшін жоқ, сондықтан , келісім бойынша берілген мән қолданылады. Бұл Shop контроллері әрекетіне арналған сұраныс Home контроллеріне арналған сұранысқа алып келеді. Бұл роуттың қолдану нәтижесін көру үшін қосымша қосу және /Shop/Index URL бойынша жүргізу керек. Біз қосқан роут Home контроллеріндегі Index әрекетіне бейімделуге апарады.

27. WebForms қосымшасы жолдарымен жұмыс жасау ерекшеліктеріне тоқталыңыз

WebConfigurationManager қасиеттері. ConnectionStrings әрқайсысы қосылу жолдарын ұсынатын ConnectionStringSettings обьектілер коллекциясын қайтарады. Егер өңделетін код Entity Framework сияқты абстракция деңгейінде қолданылмай мәліметтер қорымен тікелей байланыста болғанда қосылу жолын оқу мүкіндігі туады. Мысалда келтірілгендей ConnectionString-тің қосымша деңгейінде Web.config –ті файлға қосады. 

<?xml version="1.0" encoding="utf-8"?>

<configuration>

<connectionStrings>

<add name="defaultConnection" providerName="System.Data.SqlClient" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=GameStore;Integrated Security=True"/>

</connectionStrings>

 ...

</configuration>

using System.Web.Configuration;

using System.Collections.Generic;

 using System.Configuration;

namespace ConfigFiles

{

public partial class Default : System.Web.UI.Page

 {

public IEnumerable<string> GetConfig()

{

foreach (ConnectionStringSettings setting in WebConfigurationManager.ConnectionStrings)

{

yield return string.Format("Name: <b>{0}</b><br>connectionString: <b>{1}</b><br><br>",

setting.Name, setting.ConnectionString);

}

}  

}

}

28. WebForms қосымшасында сұраныстарды өңдеу жұмыстарын таңдау және орындауды басқаруға сипаттама беріңіз

Сұраныстарды өңдеудің синхронды және асинхронды түрлері.Ең алдымен асинхронды өңдеу туралы айтпас бұрын, мен қысқаша сұраныстарды өңдеудің синхронды түрінің қалай орындалатынына тоқталып өтейін.Мысалыға алсақ жүйедегі сұраныстар деректер қоры немесе Web API сыртқы ресурсына тәуелді болады. Сұраныс ASP.NET ағындардың бірін алып оның артынан сұранысты бекітеді.Сұраныстарды өңдеу синхронды болғандықтан ол сыртқы ресурсты синхронды түрде шақырады. Бұл шақырылған сыртқы ресурс басқаруын қайтармайынша сұраныс ағынын бұғаттайды.

Бұл суретте екі ағынды пул көрсетілген оның біреуі сыртқы ресурстан жауап күтуде бұғатталады.

Thread Pool Пул ағыны
Request Сұраныс

Сұраныстарды асинхронды әдісі басқаша жұмыс жасайды.Сұраныс түскен кезде ASP.NET өзінің пулындағы ағынның біреуін алып оны осы сұраныстың соңынан бекітеді.Бұл ретте өңдеуші сыртқы ресурсты асинхронды түрде шақырады.Осыдан кейін сыртқы ресурс шақырудағы қайтарылым орындалмағанша сұраныс ағыны пулға оралады.

Бұл суретте екі ағынды пул көрсетілген,сұраныс асинхронды түрде сыртқы ресурстан жауап күтеді.

29. WebForms қосымшасында сұраныстардың орындалуын басқару қалай жүзеге асырылады

PageRequestManager класының жаңа экземплярын тікелей құру мүмкін емес. Экземпляр құру үшін PageRequestManager класында getInstence әдісін шақыру керек. Оның мүшелері:

Аты  Мазмұны 
Конструктор Sys.WebForms.PageRequestManager Sys.WebForms.PageRequestManager класының жаңа экземплярының инициализациялануын орындайды.
Оқиға Sys.WebForms.PageRequestManager beginRequest Асинхронды кері жіберуді өңдеу және серверге кері жіберудің сұранысын жіберуге дейін қалыптасады .
Оқиға Sys.WebForms.PageRequestManager endRequest Асинхронды кері жіберу мен көрушіге элемент қайтуын басқарудан кейін қалыптасады
Тәсіл Sys.WebForms.PageRequestManager.abortPostBack Асинхронды кері жіберу нәтижесінде қалыптасады, барлық жаңартуларды тоқтатады.
Тәсіл Sys.WebForms.PageRequestManager.beginAsyncPostBack Асинхронды кері жіберуді бастайды.
Құрам Sys.WebForms.PageRequestManager isInAsyncPostBack PageRequestManager–де кері жіберудің өңдеу обьектілерін орындайтын мәннің қайтуын нұсқайды

30. WebForms қосымшасының қалып-күйі деректерін басқаруға сипаттама беріңіз

«Сұраныс-жауап» үлгісі Web-технологияда базалық болып табылады және статикалық өңдеу үшін қолданылады. Бұл үлгіде Web-қосымшаның құрылуы сұлбамен шектелген:

                          Сұраныс

 


                       

       

Жауап                                  Сервер

Құрылған Web-қосымшалар иілгіш болатын еді, егер олар программаларды қолданушылардың іс-әрекетіне жауап бере алатын болса. Мұндай жағдай мүмкін болып шықты және оған сәйкес үлгі оқиғалармен басқарылатын үлгі деп аталады. Мұндай сұлба төменде көрсетілген және сонымен қатар оның құрамында «сұраныс-жауап» үлгісі бар.

«Оқиғаларды басқару» үлгісі:

 


                       

 

                       

 

"Сұраныс - жауап" үлгісі жұмысының сұлбасы:

1) HTML-формасы

3. Мәліметтерді жіберу

1. Сервер тек енгізілген қолданушылар мәліметтерін қабылдайды.

Мінездемесі: Сервер HTML формасының элементтерінің әдістері, оқиғалары және қасиеттері туралы ештеңе білмейді.

2) Web-формасы

2. HTMLтүріндегі браузерге

бұл элементтерді жіберу

4. Серверге мәліметтерд жіберу

Мінездемесі: Сервер HTML формасының элементтерінің әдістері, жағдайлары және қасиеттері туралы барлығын біледі.

Web-формасының программалық моделі.

Құрылым: <UI (User Interface) логикасы>

1. Қолданушы интерфейсіндегі элементтерді құру

2. Мәліметтерді енгізу Сервер

<басқарудың визуалды элементтері>

Web-формаларды жіберу.

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

<% Page …

<script….>

Sub Page_Load(…)

If Not Page.IsPostBack then

lblmessage.Text=”Hello World”

End if

End Sub

Sub Subnit(…)

lblmessage2.Text=”FormPosted”

End Sub

 

31. WebForms қосымшасының модулі қалай құрылады және тіркеледі.

Біз әрбір модульді өзінің класының файлында құратын боламыз. Solution Explorer терезіндегі контекстті менюден Add->Class пунктін таңдаймыз. Атауы ретінде LogModule.cs атын койып, Add батырмасын басыңыз, сол кезде жаңа файл құрылады, оның құрамы келесідей болады:

LogModule.cs файлында модуль класын құру

using System; using System.Web;

namespaceCommonModules { public class LogModule : IHttpModule {

public void Init(HttpApplication app) {       app.LogRequest += HandleEvent;   }

public void Dispose() {       // nothing to do   }

protected void HandleEvent(object src, EventArgsargs) {       HttpApplication app = src as HttpApplication;       System.Diagnostics.Debug.WriteLine(           string.Format("Request for {0} - code {1}",               app.Request.RawUrl,

app.Response.StatusCode));       

} } }

Модулді тіркеу үшін орындауы талап етілген операторлардан тұратын класты құуымыз керек. Осы мақсатта ModuleRegistrtion.cs атты класының файлын құрамыз:

using System; using System.Web;

 [assembly: PreApplicationStartMethod( typeof(CommonModules.ModuleRegistration), "RegisterModules")]

 namespace CommonModules {    public class ModuleRegistration {

    public static void RegisterModules() {       Type[] moduleTypes = {

typeof(CommonModules.TimerModule),           typeof(CommonModules.LogModule)       };

        foreach (Type t in moduleTypes) {           HttpApplication.RegisterModule(t);           

}  } }      

32. WebForms қосымшасының модулі не үшін қолданылады

Аутентификацияланбаған қолданушының Params.aspx веб формасын көруді болдырмайтын модульді құрамыз.Ол үшін біз ASP.NET модулін қолдану арқылы ParamsModule.cs атты жаңа элемент құрамыз.Модульдер бұл жай ғана C# класстары,келесі кодта ParamsModule.cs файлынын құрамы көрсетілген.

using System;

usingSystem.Web;

namespace Events { public class ParamsModule : IHttpModule

 {

public void Init(HttpApplication context)

{

context.LogRequest += new EventHandler(OnLogRequest);

}

public void Dispose()

{

}

public void OnLogRequest(Object source, EventArgs e)

{ }

}}

Мұнда IHttpModule интерфейсін іске асыратын ParamsModule атты класс бар және ол HttpApplication.LogRequest оқиғасын өңдейтін бос әдісті өңдейді.

ParamsModule класының функционалдылығын іске асыру:

using System;

usingSystem.Web;

namespace Events

 { public class ParamsModule : IHttpModule

 {public void Init(HttpApplication app)

 { pp.PostAuthenticateRequest += (src, args) =>

{if (app.Request.Url.LocalPath == "/Params.aspx" && !app.User.Identity.IsAuthenticated)

{

app.Context.AddError(new UnauthorizedAccessException());}}; }

public void Dispose()

 { }} }

33. WebForms қосымшасының модулі оқиғаларымен жұмыс жасау қалай ұйымдастырылады

ASP.NET WebForms қосымшасында таралған сценарийлер веб-парақшаларды басқару элементтерәмен толтыру және қолданушы таңдаған қандай да бір басқару элементіне байланысты белгілі бір әрекетті орындаудың тізбектілігі болып отыр.Мысалы, қолданушы веб-парақшада орналасқан System.Web.UI.WebControls.Button басқару элементін басқан кезде оқиға құрылады.

Веб-парақшада батырманы басу кезіндегі оқиғаларды өңдеу

1. OnClick мәні бар Button басқару элементінен тұратын, келесі қадамда анықталып, әдіс атына тең келетін ASP.NET Web Forms парақшасын құрыңыз.

XML

<asp:Button ID="Button1" runat="server" Text="Click Me" OnClick="Button1_Click" />

2. СізOnClickмәніүшінанықтағанатты Click оқиғаделегатыныңсигнатурасынасәйкесоқиғаөңдеулерінанықтаңыз.

C#

protected void Button1_Click(object sender, EventArgs e)

{

// perform action

}

Click оқиғаcыEventHandlerклассынделегаттипіүшінжәнеEventArgsклассыноқиғадеректеріүшінқолданады.

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

34. WebForms қосымшасының өмірлік циклі оқиғасы қалай жүзеге асырылады

Өмірлік циклдың этаптарын өту уақытында оқиғалар туындайды, ол оқиғаларға жазылу барысында құраушы өзінің жеке кодын орындауы мүмкін. Парақшаның өмірлік айналымының барлық оқиғаларынан құраушы үшін тек 5-еуі маңызды болып табылады. Олар:

-PreInit

-Init

-Load

-PreRender

-Unload

Осы оқиғалардың қолдану нұсқаларымен танысайық.

Оқиға Қолданылуы

PreInit Бұл этапта басқару элементтері әлі құрылмаған және null-ға тең. Мұнда құраушы динамикалық басқару элементтерін құра алады.

Init Мұнда конроллердің алғашқы инициализациясы жүреді және мәндер aspx файлынан алынған. Tracking ViewState әлі өшірілмеген. Құраушы өзі енгізген жағдайда, өзгеріс келесі мәндерде орнатылады.

Load Деректер ресурстардан жүктелінеді. Postback болған жағдайда басқару элементтері формадан жіберілген мәндерді қабылдайды.

PreRender Парақшаның сыртқы түрін өзгертудің соңғы мүмкіндігі.

Unload Бос емес ресурстар босатылады. Бұл этапта HTML ұсынысы құрылып қойған. Осы этапта өзгеріс енгізсек, басқару элементтері қолданушыларға жетпей қалады.

 

35. WebForms қосымшасының өмірлік циклі дегеніміз не

Өмірлік айналым:

· Парақшадағы IIS веб-серверін алады және өңейді

· ASP.NET ортасында сұраныстардыңжіберілуі

· Шақырылған парақшаның класын жүктейді

· Парақшаның класының қасиеттрін орнатады

· Элементтер ағашын түзеді

· Request және Response қасиеттерін толтырады

· IHttpHandler.ProcessRequest әдісін шақырады

Осыдан соң орындау ортасы осы парақшаның қалай байланысқанын тексереді, егер парақша басқа парақшадан деректерді жіберу арқылы шақырылған болса онда орта PreviousPage қасиетін орнатады.

Сонымен қатар, өмірлік айналым 8 этаптан тұрады:

1. Парақша сұранысы

2. Өңдеудің бастамасы

3. Парақшаны инициализациялау

4. Жүктеу

5. Валидация

6. Постбэкті өңдеу

7. Рендеринг

8. Шығару

Веб-форманың өмірлік айналымы туралы жалпы түсінік болу керек, себебеі ол арқылы қажет болған жағдайға байланысты код жазу керек болады. Сонымен қатар, өзіңіздің жеке басқару элементін құруда парақшаның өмірлік айналымымен танысып алу керек, ол арқылы дұрыс жұмыс жасайтын басқару элементінің дұрыс инициализациясын анықтауға болады, басқару элементтерінің қасиеттерінің жиынтығын және кез келген басқарушы кодты іске асыруда қолданылады

 

 

36. WebForms программасы қандай бөліктерден тұрады

Веб формамен байланысты әр түрлі файлдар типтері , әртүрлі контенттердің түрлері қолданатының байқай аласыздар. Сіздер біздің айтқан нұсқамамен жүрулеріңіз міндетті емес, бірақ егер осы нұсқамаларды қолданатын болсаңыздар бұл программадан керекті ақпаратты алып қана қоймай , өздеріңізге түйіп алатын заттар өте көп. Кітаптың 1 бөлімінде қаралғандай бұл веб формамен жұмыс істеудің сан түрлі басқа жақтары бар, бірақ қарапайым жоба жасап алған соң, келешекте оны өзгеру қиын болады. Біз осы сияқты жағдайларға жиі тап болатынбыз, бірақ одан шығу жолдарын қарастырып , түрлі басқа амалдар жасауға болатынын жағаланғаг түрінде көрсеттік. Біздің ерекшелігіміз бойынша ASP.NET Framework жұмыс істегенде әр форма немесе жазылған кодтардың жанында анықтамасы болуы керек. Соның көмегімен адам жазылған кодтың не үшін екенін толық түсіне алады.

Егер сіз код-артында сыныптарда айлалы болады элементтері. Біз сізге мазмұн HTML-код қалай түсіндірді құндылықтар, және біз ASP.NET негіздемелік жасалады С # класс жасау үшін веб-нысаны өңделген қалай көрсетті веб-бағдарлама жұмысын жақсарту үшін. Осы тарауда тақырыптардың бірі қайталануын қысқарту қажеттілігі болдыСіздің Web Forms қолдану түзету мен коды. Біз код-артқы ортақ негіздерін жасау арқылы осы әрекетті орындау жолын көрсетті Класс және мастер беттерді пайдалана отырып. Біз ASP.NET негіздің егжей тереңірек және түсіндіруге Егер ASP.NET сұрату мерзімінің, ASP.NET бастап жүріп қалай түсіндіруге өтініштерді қарайтын процесінде отырып Веб нысаны бастап HTML жауап генерациялау үшін арқылы HTTP сұрау салуды алған.

 

37. WebForms программасымен жұмыс жасау принципін атаңыз

Тиімді жақтары

· RAD(Rapid Application Development) үшін тамаша мүмкіндіктерді ұсынады;

· ”Visual Studio”-ның дизайнері үшін керемет қолдау болып табылады;

· Дайын кітапханаларды ұсынатын үшінші компанияның үлкен көлемі;

· Әдеттегі Windows Forma-разработчиктердің тұжырымдама оқиғасы болып табылады, мұндай тәсіл тез жұмыс бастап кетуге мүмкіндік береді.

Әлсіз жақтары

· UI логикасы кодпен тығыз байланысты және қиын ажыратылмайды.

· Unit-тистирование жүргізу қиын;

· ViewState-тің арқасында үлкен көлемді бет;

Мүмкіндіктері

Бизнес-қосымшалар протиптерді жылдам жасау үшін өте ыңғайлы.Бұл өте жақсы жұмыс жасайды және клиенттің алдын-ала жасаған тұжырымдамасымен келісу қажет.

Қауіп-қатерлер

Фреймворков және технологиялар қол жетімді мөлшерде жеткілікті екеніне қарамастан,бір қосымшаға әртүрлі UI қолдану қиын.

 

38. WebForms-мен құрылған веб-қосымшаның басқару элементтерінің оқиғалар өңдеуіші қалай жүзеге асырылады?

Веб парақшанын батырмасын басу кезіңдегі оқиғаны өңдеу.

1. ASP.NET WebForm-да OnClick мағыналы Button басқару элементін құрайтын бет құрыңыз,ол келесі жолда анықталатын әдіске тең

<asp:Button ID="Button1" runat="server" Text="Click Me" OnClick="Button1_Click" />

 

2. OnClick мәні үшін анықталған Click атты оқиғалар делигатты сигнатурасына оқиғалар өңдегішін анықтаңыз.

protected void Button1_Click(object sender, EventArgs e){ // perform action}

 

ASP.NET сайт бетинде жұмыс жасайтын платформа Event Handler экземплярын құрайтын кодты түрлендіреді және бұл делегат экземплярын Click оқиғасының Button экземплярына қосады.

3.Қандай да бір оқиға пайда болмас бұрын,екінші қадамда анықталған,қандай да бір амалдарды орындайтын кодты оқиғаларды құрастырушы әдісіне енгіземіз.

 

39. WebForms-мен құрылған веб-қосымшаның басқару элементтерінің өңдеуіші қалай құрылады және қалай тіркеледі?

Егер басқарудыың элементтері орындалу уақытында динамикалық болса немесе бір-біріне тиісті берілген шаблондар арқылы декларативті құрылатын болса, онда үрдіс осы беттегі басқару элементтерімен синхронизацияланбайды. Мысалы, егер басқару элементі басқару барысында қосылған болса, декларативті ссақталған басқару элементінің үрдісіне қарағанда, Unit және Load үрдісі өмірлік цикл беттерінде анағұрлым кешірек пайда болады. Осылайша, controls құрамына қосылу уаақытында басқару элементтерінің динамикалық құрылу уақыты бойынша және шаблондарда басқару элементтері үрдістердің бір-бірімен аяқталғанына дейінгі үрдістерді шақырады. Бұл қосымша әрекеттерді қажет етпейді, егер берілгенмен біріктірілген басқару элементтерімен қолданылмаса. Егер кішігірім басқару элементі берілгендерге біріктірілген болса, бірақ басқару элементі бұндай контейнерді иемденбейтін болса, берілген кішігірім басқару элементі және берілген басқару элементінің контейнері синхронизациялауды жоғалтуы мүмкін. Бұл орындалады, егер кішігірім басқару элементтері берілгендерді қайта жаңартса.

 

 

40. WebForms-мен құрылған веб-қосымшаның өмір циклінің арнаулы өңдеуіші қалай құрылады?

ASP.NET парақшасын орындау кезінде өңделетін қадамдардың реті орындалатын өмірлік айналым жүзеге асырылады.Жиі жағдайда: жұмыс күйін сүйемелдеп және қайта қалпына келтіру, басқарылатын элементтерді анықтау, инициялизациялау.Қажетті нәтижемен өмірлік айналымның қажетті кодын жазу үшін парақшаның өмірлік айналымымен танысқан дұрыс. Бұдан басқа жеке элементтерді басқаруды құрған кезде элементтерді басқарудың инициялизациясы, басқарылатын элементтердің жиынтығын білу үшін парақшаның өмірлік циклін білу керек.

Парақшаның өмірлік айналымының жалпы кезеңдері.

Жалпы алғанда парақша төменде келтірілген кестедегі кезеңдерден өтеді. В целом страница проходит через этапы, описанные в приведенной таблице.

Кезең Сипаты
Парақшаға сұранысы Парақшаға сұраныс парақшаның өмірлік айналымының алдында іске асырылады. ASP.NET қолданушысында парақшаға ұсыныс тастау кезінде парақшаны өңдеп компиляциядан өткізеді
Қосылу Бастапқы кезеңде парақшаның қасиеттері орнатылады.мысалы Request және Response. Тағыда бұл кезеңде сұраныстың кері сұраныс па алде жаңа сұраныс екендігін анықтайды. IsPostBack қасиеттерін анықтайды.Бұдан басқа бұл кезеңде UICulture парақшасының қасиеттері орнатылады..
Парақшаны инициализациялау Парақшаны инициализациялау кезінде басқарылатын элементтер парақшасы қол жетімді болады. UniqueID басқарылатын элементтер барлық қасиеттері орнатылады. Ағымдағы сұраныс кері сұраныс болса кері сұраныстың мәліметтері жүктелмейді.
Жүктеу Жүктеу кезінде ағымдағы сұраныс кері сұраныс болса элементтерді басқару қасиеттеріне барлық мәліметтер көшіріледі. Басқару күйінен қарау күйіне өтеді.
Тексеру Тексеру кезінде IsValid қасиеттері болатын барлық басқарылатын элементтерді тексеретін Validate әдісі шақырылады. .
Кері сұраныстың оқиғаларын өңдеу Егер сұраныс кері сұраныс болатын болса кез-келген оқиға өңдеушілер шақырылады..
Суреттеу Суреттеу алдында барлық басқарылатын элементтер парақшасын сақтау іске асырылады. Суреттеу кезеңінде OutputStream алынған мәліметтер үшін Render әдісі шақырылады.
Түсіру Түсіру кезеңі суреттеу біткеннен кейін шақырылады. Клиентке жіберу және өшіруге дайындығы.Мысалы Response и Request,.

 

 

41. WebForms-мен құрылған веб-қосымшаның өмір циклінің арнаулы өңдеуіші фабрикасы қалай құрылады?

ASP.NET парақшасын орындау кезінде өңделетін қадамдардың реті орындалатын өмірлік айналым жүзеге асырылады.Жиі жағдайда: жұмыс күйін сүйемелдеп және қайта қалпына келтіру, басқарылатын элементтерді анықтау, инициялизациялау.Қажетті нәтижемен өмірлік айналымның қажетті кодын жазу үшін парақшаның өмірлік айналымымен танысқан дұрыс. Бұдан басқа жеке элементтерді басқаруды құрған кезде элементтерді басқарудың инициялизациясы, басқарылатын элементтердің жиынтығын білу үшін парақшаның өмірлік циклін білу керек.

Парақшаның өмірлік айналымының жалпы кезеңдері.

Жалпы алғанда парақша төменде келтірілген кестедегі кезеңдерден өтеді. В целом страница проходит через этапы, описанные в приведенной таблице.

Кезең Сипаты
Парақшаға сұранысы Парақшаға сұраныс парақшаның өмірлік айналымының алдында іске асырылады. ASP.NET қолданушысында парақшаға ұсыныс тастау кезінде парақшаны өңдеп компиляциядан өткізеді
Қосылу Бастапқы кезеңде парақшаның қасиеттері орнатылады.мысалы Request және Response. Тағыда бұл кезеңде сұраныстың кері сұраныс па алде жаңа сұраныс екендігін анықтайды. IsPostBack қасиеттерін анықтайды.Бұдан басқа бұл кезеңде UICulture парақшасының қасиеттері орнатылады..
Парақшаны инициализациялау Парақшаны инициализациялау кезінде басқарылатын элементтер парақшасы қол жетімді болады. UniqueID басқарылатын элементтер барлық қасиеттері орнатылады. Ағымдағы сұраныс кері сұраныс болса кері сұраныстың мәліметтері жүктелмейді.
Жүктеу Жүктеу кезінде ағымдағы сұраныс кері сұраныс болса элементтерді басқару қасиеттеріне барлық мәліметтер көшіріледі. Басқару күйінен қарау күйіне өтеді.
Тексеру Тексеру кезінде IsValid қасиеттері болатын барлық басқарылатын элементтерді тексеретін Validate әдісі шақырылады. .
Кері сұраныстың оқиғаларын өңдеу Егер сұраныс кері сұраныс болатын болса кез-келген оқиға өңдеушілер шақырылады..
Суреттеу Суреттеу алдында барлық басқарылатын элементтер парақшасын сақтау іске асырылады. Суреттеу кезеңінде OutputStream алынған мәліметтер үшін Render әдісі шақырылады.
Түсіру Түсіру кезеңі суреттеу біткеннен кейін шақырылады. Клиентке жіберу және өшіруге дайындығы.Мысалы Response и Request,.

 

42. WebForms-мен құрылған веб-қосымшаның өмір циклінің жалпыланған өңдеуіші қалай құрылады?

ASP.NET парақшасын орындау кезінде өңделетін қадамдардың реті орындалатын өмірлік айналым жүзеге асырылады.Жиі жағдайда: жұмыс күйін сүйемелдеп және қайта қалпына келтіру, басқарылатын элементтерді анықтау, инициялизациялау.Қажетті нәтижемен өмірлік айналымның қажетті кодын жазу үшін парақшаның өмірлік айналымымен танысқан дұрыс. Бұдан басқа жеке элементтерді басқаруды құрған кезде элементтерді басқарудың инициялизациясы, басқарылатын элементтердің жиынтығын білу үшін парақшаның өмірлік циклін білу керек.

Парақшаның өмірлік айналымының жалпы кезеңдері.

Жалпы алғанда парақша төменде келтірілген кестедегі кезеңдерден өтеді. В целом страница проходит через этапы, описанные в приведенной таблице.

Кезең Сипаты
Парақшаға сұранысы Парақшаға сұраныс парақшаның өмірлік айналымының алдында іске асырылады. ASP.NET қолданушысында парақшаға ұсыныс тастау кезінде парақшаны өңдеп компиляциядан өткізеді
Қосылу Бастапқы кезеңде парақшаның қасиеттері орнатылады.мысалы Request және Response. Тағыда бұл кезеңде сұраныстың кері сұраныс па алде жаңа сұраныс екендігін анықтайды. IsPostBack қасиеттерін анықтайды.Бұдан басқа бұл кезеңде UICulture парақшасының қасиеттері орнатылады..
Парақшаны инициализациялау Парақшаны инициализациялау кезінде басқарылатын элементтер парақшасы қол жетімді болады. UniqueID басқарылатын элементтер барлық қасиеттері орнатылады. Ағымдағы сұраныс кері сұраныс болса кері сұраныстың мәліметтері жүктелмейді.
Жүктеу Жүктеу кезінде ағымдағы сұраныс кері сұраныс болса элементтерді басқару қасиеттеріне барлық мәліметтер көшіріледі. Басқару күйінен қарау күйіне өтеді.
Тексеру Тексеру кезінде IsValid қасиеттері болатын барлық басқарылатын элементтерді тексеретін Validate әдісі шақырылады. .
Кері сұраныстың оқиғаларын өңдеу Егер сұраныс кері сұраныс болатын болса кез-келген оқиға өңдеушілер шақырылады..
Суреттеу Суреттеу алдында барлық басқарылатын элементтер парақшасын сақтау іске асырылады. Суреттеу кезеңінде OutputStream алынған мәліметтер үшін Render әдісі шақырылады.
Түсіру Түсіру кезеңі суреттеу біткеннен кейін шақырылады. Клиентке жіберу және өшіруге дайындығы.Мысалы Response и Request,.

 

43. WebForms-мен құрылған веб-қосымшаның өмір циклінің өңдеуіші мен модулі арасындағы координация қалай жүзеге асырылады?

WEB формалар.

"Сұраныс - жауап" үлгісі жұмысының сұлбасы:

1) HTML-формасы

       

 

                                  3. Мәліметтерді жіберу

 

Сервер тек енгізілген қолданушылар мәліметтерін қабылдайды.

Мінездемесі: Сервер HTML формасының элементтерінің әдістері, оқиғалары және қасиеттері туралы ештеңе білмейді.

1. қолданушы интерфейс элементтерін құру
2) Web-формасы


Дата добавления: 2018-02-18; просмотров: 1243; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!