190 likes | 321 Views
.NET Developer Round Table. Facilitating a general discussion on .NET technologies. Sierra Systems Fred Hirschfeld John Saunders 111 Market Street NE, Suite 225 360.570.4551 360.570.4538 Olympia, WA 98501. Agenda. Brief Introduction Where is everyone today with .NET Technologies?
E N D
.NET Developer Round Table Facilitating a general discussion on .NET technologies Sierra Systems Fred Hirschfeld John Saunders 111 Market Street NE, Suite 225 360.570.4551 360.570.4538 Olympia, WA 98501
Agenda • Brief Introduction • Where is everyone today with .NET Technologies? • What challenges are you facing today? • Open Discussions • Questions / Comments?
Questions / Comments? • Thanks to Jim Culp and IPMA • Follow-up Contact Information:Name: Fred HirschfeldE-mail: FredHirschfeld@SierraSystems.com
.NET Framework 2.0 • Generics – Extension to the CLR type system allowing types with details left unspecified. • Type safety at compile-time • No need to create custom collection class implementations • Syntax: IDictionary<string, MyClass> (C#), IDictionary(Of string, MyClass) (VB.NET) • Nullable Types – Allows value types to have an undetermined value (NULL). • Transactions – System.Transaction namespace
Visual Studio 2005 • Solution Folders – Allows better organization of projects and miscellaneous files (Solution Items). You can use this to group projects into a simpler solution structure. • Web Projects – • Dynamic project structure without a explicit project file (SP1 will allow us to use a 2003 style project structure too) • Does not compile solution to an assembly • XHTML 1.0 & 1.1 compliance
Visual Studio 2005 • ClientOnce Deployment & Installation • Code Refactoring • Renaming variables • Create methods from code • Reorder parameters • Clean Solution – Cleans up intermediate files created during build process • Design-Time Expression Evaluation – Run code without compiling or running (Immediate Window)
Visual Studio 2005 • ASP.NET • Accessibility Checker • File System-based Web Projects • Expression Handlers • HTML Source Preservation – VS2005 does not reformat your code! • HTML Intellisense • Object Data Source / Binding
ASP.NET 2.0 • Provider Model – “A provider is a software module that provides a uniform interface between a service and a data source.” • Mainly used in the ASP.NET architecture • Shields the application from the physical resource being used in a common interface • Change the application through configuration files without need to change code • Built-in: Membership, Role Management, Site Map, Profile, Session State, Web Events, Web Parts and Protected Configuration
ASP.NET 2.0 • Membership – Built on the Provider Model addressing the common need to manage user credentials • Cross Page Posting – Allows developers to post to a second page and access the server controls of the calling page through Page.PreviousPage property • Master Pages – Page that defines layout for a set of pages • Configuration Encryption – Allows web.config sections to be encrypted
ASP.NET 2.0 • Advanced Caching – Can add SQL dependencies so that as data is changed in the database, page caching will be expired. • View State – Microsoft split code control state data from optionally stored viewstate so developers could maintain behavioral state even when ViewState was disabled. • Validation Groups – Allows for grouping of validation controls so trigger can be controlled better. For example there may be several buttons on a page and only certain validations should happen for each one.
ASP.NET 2.0 • Control Adaptors – Used internally to control the rendering of controls based on the client browser. Can be used to change the rendering of a server control. For example, the menu control does generate the UI in a TABLE structure that is somewhat verbose. This can be modified very simply to render the menu using Styled DIV elements instead.
ASP.NET 2.0 • Themes & Skins – Separation of visual styling from markup and code • Change the site look dynamically using themes • Skins allow server controls to be styled at the server to have a consistent look from a central place • Web Parts – Integrated set of controls to enable users to customize content, appearance and behavior directly from a browser.
ASP.NET 2.0 • New Server Controls: • Wizard – simplifies the programming of a series of forms to direct the entry of user input. • TreeView • Menu • Login (set of controls)
SQL Server 2005 • .NET Runtime Support – Create stored procedure using a .NET language • XML Data Type – Native support for XML as a data type and XQuery • Notification Services – • Reporting Services (SSRS) – • Integration Services (SSIS) – Replaces DTS with enhanced services and extensible architecture
Tips & Tricks • Use the TryParse static method of intrinsic types to parse a value without the need for try / catch blocks • Wrap disposable objects in a using to ensure the Dispose method is called • Consider using StateServer for user session management instead of InProc so changes to Web.config file do not cause the session data to be lost. Could be useful if debug/verbose logging is needed for a short period in tracking a problem. ** Performance is marginally slower
Tips & Tricks • ASP.NET Menu must be slightly altered when exposed through Fortress (or any HTTPS to HTTP redirection). The menu control has some logic that cannot detect this and will cause a cross protocol error message on the client.
Helpful Tools • Microsoft Enterprise Library – Effective library to jumpstart .NET development. • Caching Application Block • Logging Application Block • Data Access Application Block • Security Application Block • Exception Handling Application Block • Cryptography Application Block
Helpful Tools • NUnit (www.nunit.org) – Automated Unit Testing • NCover (www.ncover.net) – Code Coverage reporting • TestDriven.net (www.testdriven.net) – Visual Studio integrated add-in for running NUnit and NCover • MyGeneration (www.mygenerationsoftware.com) – Template driven code / script generator • String Resource Tool (http://projectdistributor.readify.net/Releases/Release.aspx?releaseId=10) – A resource generator plug-in