Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

2010 - Basta: ASP.NET Controls für Web Forms und MVC

ASP.NET Controls für Web Forms und MVC

  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

2010 - Basta: ASP.NET Controls für Web Forms und MVC

  1. 1. Controls im Web ASP.NET Controls für Web Forms und MVC Daniel Fisher (lennybacon) | devcoach.com
  2. 2. Lennybacon.com ■ Daniel Fisher | CTO & Software Architect ■ MCP, MCTS, MCPD… daniel.fisher@devcoach.com ■ Mit-Gründer und Geschäftsführer von devcoach.com www.devcoach.com ■ Mit-Gründer und Vorstand der gemeinnützigen www.just community.de e.V. ■ Veranstalter des größten Entwickler & IT-Pro Community Events in Deutschland: www.nrwconf.de ■ Mit-Gründer und Leiter der INETA Usergroup Düsseldorf www.NetUG-NiederRhein.de ■ Mitglied im Microsoft Community Leader & Insider Program (CLIP) ■ Connected Systems Advisory Board Expertengruppe für WCF, WF & BizTalk
  3. 3. Efficient Communication…
  4. 4. devcoach.com ■ Leistungen ■ Architektur-Beratung Strukturierter und effizienter zu einer wartbaren Anwendung. ■ Software-Entwicklung Team-out-of-the-box (Near-shoring) Objektmodelle und Datenzugriff Kommunikations-Infrastrukturen Identitäts- und Berechtigungsmodelle Web 2.0 und Rich Internet Applikation ■ Coaching & Training Technologien schneller verstehen und richtig einsetzen. ■ Technologien ■ Microsoft Windows & .NET Framework ASP.NET, WCF, WF, WPF, Silverlight & Geneva ■ Kunden ■ Versicherung, Finanzindustrie, Mittelstand, Handel, Kommunikation, Softwarehersteller u.v.a. Bundesamt für Sicherheit in der Informationstechnologie, Microsoft, Dresdner Bank… Project Experience Technology Know-how devcoach®
  5. 5. Agenda • Web Controls • What‘s MVC anyway? • Recap 2006 • Controls for the Microsoft Web Platform • Summary
  6. 6. 7 Is all about Maintainablility! ■ The controls concept achieves reusability for ■ Html mark-up ■ Server-side code ■ Client-side scripts ■ Compiled code that can be reused in any ASP.NET web application.
  7. 7. Controls in Code public class MyControl : Control { //… }
  8. 8. Controls in Code: Usage <asp:Contol id="MyId" runat="server" />
  9. 9. Web Form Pros
  10. 10. Web Form Cons ■ No visual way of developing server controls, generated via code.
  11. 11. What‘s MVC anyway?
  12. 12. Concepts • Nice URLs & Routing • Process over „just add a Form“ • Loads of naming conventions • Code, Code, Code • As strongly typed as possible! • Once build, forever used…
  13. 13. Concepts cont. • No Code-Behind for ASPXs • No Postbacks • No Viewstate • And last but not least „No controls out of Redmond“!
  14. 14. Web Forms or MVC?
  15. 15. Once apon a time…
  16. 16. 18 Processing ■ Child control creation ■ CreateChildControls() ■ All display logic ■ OnPreRender() ■ Rendering ■ Custom: Render() ■ Composite: Nothing to do?
  17. 17. PROBLEM #1: POSTBACKS
  18. 18. First Aid ■ Response.Redirect( http://example.org); ■ Server.Transfer( http://example.org); ■ <a href=“…“>link</a> ■ Server side only events ■ AJAX
  19. 19. PROBLEM #2: VIEWSTATE
  20. 20. 23 Postback - Lifecycle of a control Instantiate : Constructor Initialize : OnInit method and Init Event Begin Tracking View State : TrackViewState Load View State : LoadViewState method Load Postback Data : IPostBackDataHandler.LoadPostdata method Load: OnLoad method and Load event Raise Changed Events : IPostBackDataHandler.RaisePostDataChangedEvent method Raise Postback Event : IPostBackEventHandler.RaisePostBackEvent method PreRender : OnPreRender method and PreRender event Save View State : SaveViewState method Render : Render method Unload : OnUnload method and Unload event Dispose : Dispose Method
  21. 21. 24 ViewState ■ ViewState is used to track and restore the state values of controls that would otherwise be lost ■ Base64 encoded - not easily readable, but not encrypted! ■ What to store ■ Integers ■ Strings ■ Floats ■ Decimals ■ Arrays of the data types stated above
  22. 22. Viewstate in code [Bindable(false)] [Category("Appearance")] [DefaultValue("This is the default text.")] [Description("The text of the custom control.")] public virtual string Text { get { var o = ViewState["Text"]; return o!=null ? (string) o : "This is the default text."; } set { ViewState["Text"] = value; } }
  23. 23. Viewstate in markup
  24. 24. First Aid ■ Query Request.Form and Request.QueryString ■ Use local fields ■ most times they work fine!
  25. 25. PROBLEM #3: BINDING
  26. 26. Binding in code public overrride OnInit( object sender, EventArgs e) { List<Person> persons = Repository<Person>.GetAll(); myControl.DataSource = persons; myControl.DataBind() }
  27. 27. First Aid ■ HttpContext.Current.Items ■ Cast to ViewPage ■ Access Model ■ Cast to IEnumerable
  28. 28. PROBLEM #4: RESOURCES
  29. 29. Resources ■ Images ■ Java Script ■ Styles
  30. 30. Resources in code [assembly: WebResource( "devcoach.Web.UI.Controls.Busy.gif", "image/gif")] imageUrl = Page.ClientScript.GetWebResourceUrl( GetType(), "devcoach.Web.UI.Controls.Busy.gif");
  31. 31. First Aid ■ Embedded ■ VirtualPathProvider ■ Routing

×