рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдореЗрдВ,
рд╣рдо рдиреИрдиреНрд╕реАрдПрдлрдПрдХреНрд╕ рдкрд░ рдкрд╣рд▓рд╛ рдЖрд╡реЗрджрди рдмрдирд╛рддреЗ рд╣реИрдВред рднрд╛рдЧ рдЪрд╛рд░ рд╣рдо рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реИрдВ
, рд╣рдордиреЗ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрд╛ред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рд╣рдо рд╕реБрдкрд░ рд╕рд┐рдВрдкрд▓ рд╡реНрдпреВ рдЗрдВрдЬрди рдЧреНрд░рд╛рдлрд┐рдХ рдЗрдВрдЬрди рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдПрдВрдЧреЗ рдЬреЛ рдмреЙрдХреНрд╕ рд╕реЗ рдиреИрдиреНрд╕реА рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИред
рддреЛ, рдЪрд▓рд┐рдП рдПрдХ рдирдпрд╛ рдореЙрдбреНрдпреВрд▓ рдмрдирд╛рддреЗ рд╣реИрдВ:
using Nancy; namespace NancyFxApplication { public class ViewModule : NancyModule { public ViewModule() : base("/views") { Get["/"] = param => View["View.html"]; } } }
рдФрд░ рд╣рдорд╛рд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреА рдЬрдбрд╝ рдореЗрдВ View.html рдлрд╝рд╛рдЗрд▓ рдЬреЛрдбрд╝реЗрдВ, рдЬреЛ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Super Simple View Engine Rule!</title> </head> <body> <h1>Hello! I'm super Simple View Engine!</h1> </body> </html>
рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЪрд▓рд╛рдПрдБ рдФрд░ рдирд┐рдореНрди рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ:
рдиреИрдиреНрд╕реА рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдлрд╝рд╛рдЗрд▓ рдЖрд╡рдВрдЯрди рдФрд░ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдирд╛рдордХрд░рдг рд╕рдореНрдореЗрд▓рдиреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреА рд╣реИ:
- рдкреНрд░реЗрдЬреЗрдВрдЯреЗрд╢рди рдлрд╛рдЗрд▓ рдХреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд░реВрдЯ рдореЗрдВ рд░рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
- рд╡реНрдпреВ рдлрд╛рдЗрд▓ рдХреЛ рд╡реНрдпреВ рдлреЛрд▓реНрдбрд░ рдореЗрдВ рд░рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
- рдлрд╝рд╛рдЗрд▓ рдХреЛ рдореЙрдбреНрдпреВрд▓ рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд░рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдмрджрд▓реЗ рдореЗрдВ рджреГрд╢реНрдп рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИ
- рдлрд╝рд╛рдЗрд▓ рдореЙрдбреНрдпреВрд▓ рдлрд╝реЛрд▓реНрдбрд░ рдХреА рдЬрдбрд╝ рдореЗрдВ рд╣реЛ рд╕рдХрддреА рд╣реИ
- рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдПрдХ рдореЙрдбрд▓ рдЬреИрд╕рд╛ рдирд╛рдо рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдХрд╣реАрдВ рднреА рд╕реНрдерд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
- рдЖрдк рдлрд╝рд╛рдЗрд▓ рд╕реНрдерд╛рди рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдкреНрд░рд╕реНрддреБрддрд┐ рдХреЗ рд╕реНрдерд╛рди рдкрд░ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╕рдордЭреМрддреЗ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рдЖрдк рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рдмрд┐рдирд╛ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдиреИрдиреНрд╕реА рдХреЗрд╡рд▓ рдкрд╣рд▓реА рджреГрд╢реНрдп рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЪрдпрди рдХрд░рддреА рд╣реИ рдЬреЛ рдирд╛рдо рдХреЗ рдкрд╛рд╕ рджреГрд╢реНрдп рдХреЗ рдкрд╛рд╕ рдЖрддреА рд╣реИред
рдЕрдм рд╣рдо рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛ рдЪреБрдХреЗ рд╣реИрдВ рдХрд┐ рджреГрд╢реНрдп рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдХреИрд╕реЗ рд░рдЦрд╛ рдЬрд╛рдП, рдЪрд▓реЛ рд╕реБрдкрд░ рд╕рд┐рдВрдкрд▓ рд╡реНрдпреВ рдЗрдВрдЬрди рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВред
рд╕реБрдкрд░ рд╕рд┐рдВрдкрд▓ рд╡реНрдпреВ рдЗрдВрдЬрди рд░реЗрдЬрд░ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЗ рд╕рдорд╛рди рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЖрдк рд▓рд┐рдВрдХ
рд╕реБрдкрд░ рд╕рд┐рдВрдкрд▓ рд╡реНрдпреВ рдЗрдВрдЬрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ GitHub рдкрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред SSVE рдиреЗрд╕реНрдЯреЗрдб рд╕рдВрдЧреНрд░рд╣ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЬрдЯрд┐рд▓ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ рд╕рдордп, рд░реЗрдЬрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЕрдзрд┐рдХ рдХреБрд╢рд▓ рд╣реЛрддрд╛ рд╣реИред
рдЗрд╕рд▓рд┐рдП, рдЕрдм рд╣рдо рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рд╕реЗ рдирдХрд▓реА рднрдВрдбрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛрдб рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
using System.Collections.Generic; namespace NancyFxApplication { public static class DishesRepository { public static List<Dish> Dishes = new List<Dish> { new Dish { Id=1, Name = "Porridge", IsSpicy = false, Ingridientses = new List<Ingridients>{new Ingridients{Id = 1, Name = "Porridge"}}}, new Dish {Id = 2, Name = "Chili", IsSpicy = true}, new Dish {Id = 3, Name = "Icecream", IsSpicy = false}, new Dish {Id = 3, Name = "Taco", IsSpicy = false}, new Dish {Id = 3, Name = "Burito", IsSpicy = true} }; public static List<Dish> GetAllDishes() { return Dishes; } public static void AddDish(Dish dish) { Dishes.Add(dish); } } }
ViewModule рдореЙрдбреНрдпреВрд▓ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВ:
using System.Collections.Generic; using Nancy; namespace NancyFxApplication { public class ViewModule : NancyModule { public ViewModule() : base("views") { Get["/"] = param => { List<Dish> dishes = DishesRepository.GetAllDishes(); return View['View.html', dishes]; }; } } }
рдФрд░ рдмрджрд▓реЗ рдореЗрдВ, рд╣рдо рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рддреЗ рд╣реИрдВ
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Super Simple View Engine Rule!</title> </head> <body> <h1>List of dishes:</h1> <ul> @Each <li>@Current.Name</li> @EndEach </ul> </body> </html>
рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдХреЛ рдЪрд▓рд╛рдПрдВ рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред
рдкреНрд░рд╕реНрддреБрддрд┐ рдЗрдВрдЬрди @If рдСрдкрд░реЗрдЯрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореИрдВ рдпрд╣ рдиреЛрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдиреЗрд╕реНрдЯреЗрдб SSVE рдСрдкрд░реЗрдЯрд░реЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдВрд╢рд┐рдХ рджреГрд╢реНрдп рдЬреЛрдбрд╝рдирд╛ рднреА рд╕рдВрднрд╡ рд╣реИред
рдЕрдВрдд рдореЗрдВ, рдореИрдВ рдПрдХ рдмрд╛рд░ рдлрд┐рд░ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ SSVE рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рдЙрди рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдХрд░реЗрдВ рдЬрдм рдЖрдкрдХреЛ рд╕рд░рд▓ рдбреЗрдЯрд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬрдЯрд┐рд▓ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреНрдп рдкреНрд░рд╕реНрддреБрддрд┐ рдЗрдВрдЬрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреА рдЬрд╛рддреА рд╣реИред
рдЪрдХреНрд░ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЕрдЧрд▓реЗ рд▓реЗрдЦ рдореЗрдВ, рд╣рдо рдиреИрдиреНрд╕реАрдПрдлрдПрдХреНрд╕ рдХреЗ рддрд╣рдд рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдкрд░реАрдХреНрд╖рдг рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░реЗрдВрдЧреЗред рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдФрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рд╣реИред