Presentation is loading. Please wait.

Presentation is loading. Please wait.

Customizing Controllers Controllers Customizing කර ගැනීම

Similar presentations


Presentation on theme: "Customizing Controllers Controllers Customizing කර ගැනීම"— Presentation transcript:

1 Customizing Controllers Controllers Customizing කර ගැනීම
Module Omal Perera | @omalperera Microsoft Virtual Academy

2 Module Overview Actions Add කර ගැනීම Model Binding Filters Vanity URLs
Controller Best Practices

3 Actions Add කර ගැනීම Module 3 Microsoft Virtual Academy

4 Actions Add කර ගැනීම Controller එකක් කියන්නේ class එකක්
Action එකක් කියන්නේ method එකක් Action එකක් create කරනවා කියන්නේ සරලවම, class එකකට method එකක් add කිරීමකට.

5 Action Signature Parameters Return Types Normal parameters
MVC model binding Return Types ActionResult FileResult JsonResult ViewResult

6 Get සහ Post Create/Update/Delete සදහා පියවර දෙකක් ඇත
Present the form Accept the input Create two actions Form presentation via HttpGet (default) Accept data via HttpPost

7 Model Binding Update an action to use FormCollection
Execute and show off generated form (with name attributes) Show via debugger the generated form collection Highlight id vs name Model Binding

8 Model Binding Module 3 Microsoft Virtual Academy

9 Default Model Binder Input elements වල name attribute එක පාවිච්චි කරයි
Simple data types සදහා automatically parameter names match කර ගනී. Complex objects වලදී property name එකෙන් map කර ගනී. dotted notation <input type="text" name="Album.LinerNotes" /> Song SongID Title Length Lyrics Album AlbumID Title Label LinerNotes

10 Model Binding control කිරීම
Need සියලු දේ edit කල හැකි විදියට form එකක් create කර ගැනීමට අවශ්‍යයි. නමුත් lyrics ඒ form එකේ අඩංගු නොවිය යුතුයි Challenge Default model binder එක මගින් automatically සියලුම inbound properties bind කර ගනී Song SongID Title Length Lyrics

11 විසදුම සරලවම අනෙකුත් විසදුම්
Bind කල යුතු properties indicate කිරීමට bindattribute එක use කරන්න Edit([Bind(Include = "SongID,Title,Length")] Song song) අනෙකුත් විසදුම් view model එකක් create කර ගැනීම

12 BindAttribute

13 Filters Module 3 Microsoft Virtual Academy

14 Filters Filters කියන්නේ attribute වර්ගයක්
controllers සහ actions වලට informations add කරන්න use කරනවා Goal : Execution වෙන ආකාරය වෙනස් කරනවා Security config කරන්න පුළුවන් built-in filters රාශියක් MVC සමග පැමිණෙනවා

15 Normal Action Execution
MVC Instantiates Controller User Request Action is Executed HTML Returned Model is Combined with View

16 Actions with Filters MVC Instantiates Controller
User Request Pre-execution Filter Code Executes Action is Executed HTML Returned Model is Combined with View Post-execution Filter Code Executes

17 Filters Add කරගැනීම Action Controller Global FilterConfig.cs

18 Security Filters Authorize ValidateAntiForgeryToken RequireHttps
controller/actions access කරන usersලව control කිරීමට හැකි වීම Properties Users Roles ValidateAntiForgeryToken Defends against cross-site request forgery Requires anti-forgery token to be added to view RequireHttps SSL

19 SSL Traffic Encryptions සහ හානි අවම කරයි Authenticates server
SSL use කල යුත්තේ කුමන වෙලාවටද? sensitive information ලබා දෙන විට After authentication

20 Security Filters

21 Vanity URLs Module 3 Microsoft Virtual Academy

22 Standard URL URL එක refer කරන දෙය ගැන usersලට අදහසක් නොමැති වීම
URL එක refer කරන දෙය ගැන usersලට අදහසක් නොමැති වීම URL එක refer කරන දෙය ගැන search engines සදහා අදහසක් ගනිඅමට අපහසු වීම

23 Vanity URL පගේ එකෙන් ලබා දෙන දෙය ගැන usersලට අදහසක් ගැනීමට හැකි වීම
පගේ එකෙන් ලබා දෙන දෙය ගැන usersලට අදහසක් ගැනීමට හැකි වීම Search engines සදහා පහසු වීම මේ නිසා vanity URLs ඉතාමත් වැදගත් වීම

24 MVC Routing Vanity URLs handle කරනු ලබන්නේ routing මගින්
දෙනු ලබන URL එකකට අදාලව controller/action ඉදිරිපත් කිරීම, MVC වල routing විසින් කරනු ලබන දෙයක් Routing update කිරීමේ ක්‍රම RouteConfig.cs AttributeRouting

25 RouteConfig.cs

26 Attribute Routing Attributes මගින් routing/URL control කල හැක
RouteAttribute [Route("Album/Edit/{id:int}")] public ActionResult Edit(int id) Edit action එක call කරයි Parameter එක මගින් ID එක pass කරයි ID එක int විය යුතුයි

27 RoutePrefix Controller එකට add කරයි Adds prefix to all routes
[RoutePrefix("Album")] public class AlbumsController : Controller { [Route("Album/Edit/{id:int}")] public ActionResult Edit(int id) // code }

28 Attribute Routing

29 Controller Best Practices
Module 3 Microsoft Virtual Academy

30 Controller Design Guidelines
High Cohesion හැකි තරම් closely relate වෙන ආකාරයට actions create කරන්න Low Coupling Controllers should know as little about the rest of the system as possible Testings සහ changes පහසු කරයි Repository pattern Wrap data context calls into another object

31


Download ppt "Customizing Controllers Controllers Customizing කර ගැනීම"

Similar presentations


Ads by Google