Microsoft ® ASP.NET: Designing and Developing a Line-of-Business Web Application.

Slides:



Advertisements
Similar presentations
Microsoft Office SharePoint Portal Server 2007 Introduction to InfoPath Forms Services Daryl L. Rudolph.
Advertisements

Designing InfoPath Forms: The Dos and Donts Deploying InfoPath Forms: Making the right choice Adding custom business logicin case the built-in stuff isnt.
DEV392: Extending SharePoint Products And Technologies Through Web Parts And ASP.NET Clint Covington, Program Manager Data And Developer Services - Office.
XML Web Services in Visual Studio ®.NET NameTitleCompany.
Building Enterprise Applications Using Visual Studio ®.NET Enterprise Architect.
resolve problems quickly resolve problems quickly minimise repeat problems minimise repeat problems Improve productivity of support staff Improve productivity.
Managing Employee Earnings Statements: PAYSTUB 3.0 A centralized, intranet-based application used to view employee earnings statements online Published:
ESupport Shifting Customers to the Internet for Support Published: January 2002.
Chapter 7 Managing Data Sources. ASP.NET 2.0, Third Edition2.
Best Practices for Building Web Services with Visual Studio ®.NET Sanguan Thammarojsakul Microsoft MVP -.NET Department of Computer Science, Faculty of.
Managing LOB Applications by Using System Center Operations Manager Published: March 2007.
Deploying Visual Studio Team System 2008 Team Foundation Server at Microsoft Published: June 2008 Using Visual Studio 2008 to Improve Software Development.
Leveraging Application Blocks in Your Application Development Ihsan Anabtawi Technology Specialist Microsoft ® Corporation.
Enterprise Reporting with Reporting Services SQL Server 2005 Donald Farmer Group Program Manager Microsoft Corporation.
Powerful, modern desktops enable next generation applications Hardware acceleration brings real-time lighting, texturing and rendering Visual.
Punit Shah Technical Lead | Microsoft
Using The WDK For Windows Logo And Signature Testing Craig Rowland Program Manager Windows Driver Kits Microsoft Corporation.
ASP.NET: Designing and Developing a Line-of-Business Web Application Ammar Abuthuraya Developer & Platform Lead Microsoft ® Corporation.
WEB329 ASP.NET: A Lap Around the New Enhancements for Web Developers in Microsoft Visual Studio 2005 Omar Khan Lead Program Manager Web Platform and Tools.
Best Practices for ASP.NET Development Ammar Abuthuraya Developer & Platform Lead Microsoft Corporation.
Report Management and Creation using Microsoft SQL Server 2008 Reporting Services Chris Testa-O’Neill Database Product Planner Remarc Group.
IT Academy Benefit Overview
Tim Leung SQL Bits October  Features and Advantages  Architecture  Installation  Creating Reports.
Introducing Visual Studio ® LightSwitch™ Andrew Coates Microsoft DEV201 #auteched #dev201.
Joe Stagner Developer Community Champion Microsoft Corporation Best Practices and Techniques for Building Secure.
Using the WDK for Windows Logo and Signature Testing Craig Rowland Program Manager Windows Driver Kits Microsoft Corporation.
Deploying PKI Inside Microsoft The experience of Microsoft in deploying its own corporate PKI Published: December 2003.
Oracle Application Express 3.0 Joel R. Kallman Software Development Manager.
DEV306 ASP.NET Portal Starter Kit Under The Hood Gunther Beersaerts Technical Specialist Microsoft Corporation.
Visual Studio ®.NET Data with XML Carlotta Eaton ( Associate Professor of IST New River Community College Slides by Microsoft Modified.
Microsoft ®.NET and Microsoft ® Office 2003 Suthep Sangvirotjanaphat [MVP]
WEB 304 An Overview of ASP.NET and Windows Workflow Foundation Kashif Alam Program Manager Developer Division Microsoft Corporation.
Introduction to ASP.NET 1www.tech.findforinfo.com.
HRWeb Maximizing Employee Productivity and the Effectiveness of the HR Organization Published: June 2002.
CS480 Computer Science Seminar Introduction to Microsoft Solutions Framework (MSF)
Slide 2 The Microsoft Office Project 2003 Software Development Kit Jim Corbin Programmer Writer Office Developer Documentation Microsoft Corporation Uma.
DEV325 Deploying Visual Studio.NET Applications Billy Hollis Author / Consultant.
Jon Galloway | Development Platform Evangelist Christopher Harrison | Microsoft Certified Trainer.
Slide 1.NET Development for Project 2003 Samples from the Project 2003 SDK Jim Corbin Programmer Writer Office Developer Documentation Microsoft Corporation.
DEV337 Modeling Distributed Enterprise Applications Using UML in Visual Studio.NET David Keogh Program Manager Visual Studio Enterprise Tools.
Create Windows ® Applications with.NET Carlotta Eaton ( Associate Professor of IST New River Community College Slides by Microsoft.
James Akrigg Microsoft Ltd Integrating InfoPath Forms Into Workflow Solutions And Business Processes.
Name Microsoft Student Partner Overview of the Visual Studio 2005 Express Products.
DEV303 ASP.NET: Leveraging Visual Studio.NET For Web Projects Tony Goodhew Product Manager Microsoft Corp.
Introduction to ASP.NET COMPLETELY DESIGNED BY: COMPLETELY DESIGNED BY: ER.ASHISH PANDEY ER.ASHISH PANDEY (KNOWLEDGE EXECUTIVE ) (KNOWLEDGE EXECUTIVE )
I Copyright © 2007, Oracle. All rights reserved. Module i: Siebel 8.0 Essentials Training Siebel 8.0 Essentials.
April-June 2006 Windows Hosting Seminar Series Technical Labs.
Connect with life Vedant Kulshreshtha Technology Solutions Professional – SharePoint | Microsoft India
2 Advanced Dashboard Creation With Microsoft Office PerformancePoint Server 2007 Myles Matheson & Chris Du Toit Information Management Practice HP New.
Arend-Jan Speksnijder Solutions Architect Microsoft Dynamics Lighthouse team Dynamics AX2009 Technical Overview and Demo (DYN301)
Building Custom Controls with ASP.NET and the Microsoft ®.NET Framework Rames Gantanant Microsoft Regional Director, Thailand
Microsoft ® Lync™ Server 2010 Setup and Deployment Module 04 Microsoft Corporation.
Patrick Ortiz Global SQL Solution Architect Dell Inc. BIN209.
Workflow in Microsoft Office SharePoint Server Jessica Gruber Consultant Microsoft Corporation.
ASP.net Course From Intermediate to Advance level By Arsalan Ahmed 3 Months Course Cell :
V7 Foundation Series Vignette Education Services.
SQL Server Reporting Services for.NET Developers Bret Stateham
Introduction ITEC 420.
Building Enterprise Applications Using Visual Studio®
DotNetNuke® Web Application Framework
Microsoft Virtual Academy
Deployment Planning Services
6/16/2018 © 2014 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks.
TechEd /13/2018 7:46 PM © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks.
Office Power Hour New developer APIs and features for Apps for Office
TechEd /4/2018 3:19 AM © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks.
DAT381 Team Development with SQL Server 2005
Office 365 Development July 2014.
Introduction to ASP.NET Parts 1 & 2
Mark Quirk Head of Technology Developer & Platform Group
Presentation transcript:

Microsoft ® ASP.NET: Designing and Developing a Line-of-Business Web Application

ASP.NET: Designing and Developing a Line-of-Business Web Application Microsoft ® Corporation

What We Will Cover Definition of a line-of-business application Definition of a line-of-business application Time Tracker as example of line-of- business application Time Tracker as example of line-of- business application Design and technology choices Design and technology choices Development techniques Development techniques Intranet security design and implementation Intranet security design and implementation

Session Prerequisites Level 200 Ability to read C# code Ability to read C# code Working knowledge of ASP.NET Working knowledge of ASP.NET Familiarity with Microsoft ® Visual Studio ®.NET Familiarity with Microsoft ® Visual Studio ®.NET

So Why This Presentation? Provide overview of best practices for Provide overview of best practices for  Application architecture  Development Outline key features of ASP.NET and the.NET Framework Outline key features of ASP.NET and the.NET Framework Promote the ASP.NET Starter Kits at Promote the ASP.NET Starter Kits at

Demonstrations Demonstrating Time Tracker functionality Demonstrating Time Tracker functionality Examining Time Tracker code Examining Time Tracker code Configuring the Time Tracker application Configuring the Time Tracker application

Agenda Introduction Introduction Design goals Design goals Application architecture Application architecture Data layer Data layer Business logic layer Business logic layer Presentation layer Presentation layer Report creation Report creation GDI+ chart creation GDI+ chart creation Mobile Mobile Globalization Globalization Security Security Deployment Deployment

Introduction The Time Tracker Line-of-Business Web Application What is a line-of-business application? What is a line-of-business application? Time Tracker allows users to track hours worked on a project Time Tracker allows users to track hours worked on a project Allows managers to monitor project status Allows managers to monitor project status  Per user  Per project Allows administrators to manage user accounts and projects Allows administrators to manage user accounts and projects

Introduction The Time Tracker Line-of-Business Web Application Illustrates best practices for intranet application development Illustrates best practices for intranet application development Serves as a template for other line-of-business applications Serves as a template for other line-of-business applications

Demonstration 1 Time Tracker Functionality Registering as a New User Creating New Users Creating a Project Creating Time Entries Generating Reports Logging on as a Less-Privileged User Time Tracker Starter Kit

Agenda Introduction Introduction Design goals Design goals Application architecture Application architecture Data layer Data layer Business logic layer Business logic layer Presentation layer Presentation layer Report creation Report creation GDI+ chart creation GDI+ chart creation Mobile Mobile Globalization Globalization Security Security Deployment Deployment

Design Goals Decisions for an Intranet Application Emphasis on maintenance, not performance Emphasis on maintenance, not performance Can utilize company’s existing user information Can utilize company’s existing user information Clean separation between logical tiers Clean separation between logical tiers  Enables code reuse by other applications

Agenda Introduction Introduction Design goals Design goals Application architecture Application architecture Data layer Data layer Business logic layer Business logic layer Presentation layer Presentation layer Report creation Report creation GDI+ chart creation GDI+ chart creation Security Security Mobile Mobile Globalization Globalization Deployment Deployment

Application Architecture Logical 3-tier Design

Agenda Introduction Introduction Design goals Design goals Application architecture Application architecture Data layer Data layer Business logic layer Business logic layer Presentation layer Presentation layer Report creation Report creation GDI+ chart creation GDI+ chart creation Security Security Mobile Mobile Globalization Globalization Deployment Deployment

Data Layer Database Schema Requirements User enters time for project and category User enters time for project and category User role authorization User role authorization Time entries require user project membership Time entries require user project membership Project has one or more categories Project has one or more categories Projects can have one project manager Projects can have one project manager

Data Layer Database Schema

Data Layer Stored Procedures Provide separation between database and data access layer Provide separation between database and data access layer Performance benefits Performance benefits Added security Added security Can change with no effect to data layer Can change with no effect to data layer ListTimeEntries helps enforce role authorization ListTimeEntries helps enforce role authorization

Data Layer Data Access Uses Data Access Application Blocks (DAAB) Uses Data Access Application Blocks (DAAB) Time Tracker uses ExecuteDataSet method Time Tracker uses ExecuteDataSet method Reduces custom code from six or more lines to one or two Reduces custom code from six or more lines to one or two DataSet ds = SqlHelper.ExecuteDataSet( ConfigurationSettings.AppSettings[ ConfigurationSettings.AppSettings[ Web.Global.CfgKeyConnString], Web.Global.CfgKeyConnString], CommandType.StoredProcedure, CommandType.StoredProcedure, “ListAllProjects”); “ListAllProjects”);

Agenda Introduction Introduction Design goals Design goals Application architecture Application architecture Data layer Data layer Business logic layer Business logic layer Presentation layer Presentation layer Report creation Report creation GDI+ chart creation GDI+ chart creation Security Security Mobile Mobile Globalization Globalization Deployment Deployment

Business Logic Layer Application-specific Code Implements how a company does business Implements how a company does business

Business Logic Layer Application-specific Code Distinct from UI and database-specific code Distinct from UI and database-specific code Enables code reuse Enables code reuse Functionality available to Web services Functionality available to Web services Implements security Implements security Classes wrap information from data access code Classes wrap information from data access code

Business Logic Layer TTUser Class Each name represents an instance of the TTUser class Each name represents an instance of the TTUser class

Business Logic Layer TTUser Class Public properties that contain user info Public properties that contain user info  UserID  Role string Methods interact with data access layer to: Methods interact with data access layer to:  Return lists of users  Return user information  Manage user information  Log users in

Business Logic Layer Custom Collections Derive from ArrayList Derive from ArrayList Require less memory than DataSet and others Require less memory than DataSet and others Provide cleaner separation between data and presentation layers Provide cleaner separation between data and presentation layers Each collection a class-specific object (UsersCollection maps to TTUser ) Each collection a class-specific object (UsersCollection maps to TTUser )

Business Logic Layer Other Features Static methods Static methods  Belong to the type itself  Object needn’t be instantiated ProjectGrid.DataSource = Project.GetProjects(); ProjectGrid.DataSource = Project.GetProjects(); Retrieving user info Retrieving user info  Configure to Microsoft ® Active Directory ® or Windows ® NT ® SAM need to retrieve user info from account source  DirectoryHelper class  Retrieves user first and last name from account source  Easily extendable

Agenda Introduction Introduction Design goals Design goals Application architecture Application architecture Data layer Data layer Business logic layer Business logic layer Presentation layer Presentation layer Report creation Report creation GDI+ chart creation GDI+ chart creation Security Security Mobile Mobile Globalization Globalization Deployment Deployment

Presentation Layer Introduction Provides user interface Provides user interface Communicates directly with business logic Communicates directly with business logic Separate from data access and business layers Separate from data access and business layers  Can develop multiple UIs that use code from other layers

Presentation Layer User Controls Banner and all tabs are user controls Banner and all tabs are user controls

Presentation Layer DataGrid with Inline Editing Define EditItemTemplate Column Define EditItemTemplate Column Fill column with another ASP.NET server control Fill column with another ASP.NET server control  

Agenda Introduction Introduction Design Goals Design Goals Application Architecture Application Architecture Data Layer Data Layer Business Logic Layer Business Logic Layer Presentation Layer Presentation Layer Report Creation Report Creation GDI+ Chart Creation GDI+ Chart Creation Security Security Mobile Mobile Globalization Globalization Deployment Deployment

Report Creation Project Report Created per selected project Created per selected project Grouped by project, category, consultant Grouped by project, category, consultant Created with nested DataList controls Created with nested DataList controls Data source assigned at run time Data source assigned at run time  DataSource=‘ ’

Report Creation Resource Report Compiles time entry lists Compiles time entry lists Can contain one or more consultants Can contain one or more consultants Created with a DataGrid nested in a DataList control Created with a DataGrid nested in a DataList control

Agenda Introduction Introduction Design goals Design goals Application architecture Application architecture Data layer Data layer Business logic layer Business logic layer Presentation layer Presentation layer Report creation Report creation GDI+ chart creation GDI+ chart creation Security Security Mobile Mobile Globalization Globalization Deployment Deployment

GDI+ Chart Creation Chart Page Separate page needed to render chart Separate page needed to render chart Uses query strings to pass graph data Uses query strings to pass graph data Returns Portable Network Graphics (PNG) format Returns Portable Network Graphics (PNG) format

GDI+ Chart Creation Chart Classes ChartItem—a single data point ChartItem—a single data point ChartItemsCollection—collection of data points ChartItemsCollection—collection of data points Chart—abstract class Chart—abstract class  Defines Draw() method that must be overridden  Limits data points for derived graphs BarGraph—performs calculations for graph generation BarGraph—performs calculations for graph generation

Agenda Introduction Introduction Design goals Design goals Application architecture Application architecture Data layer Data layer Business logic layer Business logic layer Presentation layer Presentation layer Report creation Report creation GDI+ chart creation GDI+ chart creation Security Security Mobile Mobile Globalization Globalization Deployment Deployment

Security Authentication Forms authentication on install Forms authentication on install Easily modified to Microsoft ® Windows ® authentication Easily modified to Microsoft ® Windows ® authentication  Active Directory  NT Security Authorization Manager (SAM) Make changes in Web.config Make changes in Web.config

Security Authorization and Techniques Roles-based Roles-based  Consultant  Project Manager  Administrator Roles define: Roles define:  page access  Tasks user allowed to perform User input cleaned User input cleaned

Demos Demonstration 2 Code Walkthrough Review the Data Access Layer Review the TTUser Class Review the UsersCollection Class Review the TTSecurity Class Review CustomPrincipal and Global.asax.cs Review the Chart class Review TimeEntry.aspx.cs and associated files Review Banner.ascx.cs class

Agenda Introduction Introduction Design goals Design goals Application architecture Application architecture Data layer Data layer Business logic layer Business logic layer Presentation layer Presentation layer Report creation Report creation GDI+ chart creation GDI+ chart creation Security Security Mobile Mobile Globalization Globalization Deployment Deployment

Mobile Time Tracker Device Support Users can view, add or update entries Users can view, add or update entries

Agenda Introduction Introduction Design Goals Design Goals Application Architecture Application Architecture Data Layer Data Layer Business Logic Layer Business Logic Layer Presentation Layer Presentation Layer Report Creation Report Creation GDI+ Chart Creation GDI+ Chart Creation Security Security Mobile Mobile Globalization Globalization Deployment Deployment

Globalization Using the CultureInfo Class Culture settings changed per user’s browser settings Culture settings changed per user’s browser settings Application_BeginRequest method in Global.asax performs check Application_BeginRequest method in Global.asax performs check if (Request.UserLanguages != null) Thread.CurrentThread.CurrentCulture Thread.CurrentThread.CurrentCulture CultureInfo.CreateSpecificCulture( CultureInfo.CreateSpecificCulture( Request.UserLanguages[0]); Request.UserLanguages[0]);else Thread.CurrentThread.CurrentCulture = Thread.CurrentThread.CurrentCulture = new CultureInfo(“en-us”); new CultureInfo(“en-us”); Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture; Thread.CurrentThread.CurrentCulture;

Agenda Introduction Introduction Design goals Design goals Application architecture Application architecture Data layer Data layer Business logic layer Business logic layer Presentation layer Presentation layer Report creation Report creation GDI+ chart creation GDI+ chart creation Security Security Mobile Mobile Globalization Globalization Deployment Deployment

Deployment Web Farm Considerations Encrypted cookie’s key must be same Encrypted cookie’s key must be same Set machineKey in each Web.config file to same value Set machineKey in each Web.config file to same value For pages that require session state For pages that require session state  Set load-balancing affinity, or  Session state must be stored in a state server or Microsoft ® SQL Server™

Demos Demonstration 3 Configuring the Time Tracker Application Review the Web.Config File Change the User’s Default Role Change Forms Authentication to Windows NT SAM Authentication

Session Summary Introduction Introduction Design goals Design goals Application architecture Application architecture Data layer Data layer Business logic layer Business logic layer Presentation layer Presentation layer Report creation Report creation GDI+ chart creation GDI+ chart creation Security Security Mobile Mobile Globalization Globalization Deployment Deployment

For More Information… MSDN Web site at MSDN Web site at  msdn.microsoft.com Official ASP.NET Web site at Official ASP.NET Web site at 

Training and Events MSDN Webcasts, MSDN Online Seminars, Tech·Ed, PDC, Developer Days MSDN Essential Resources for Developers Subscription Services Online Information Membership Programs Print Publications Library, OS, Professional, Enterprise, Universal Delivered via CD-ROM, DVD, Web MSDN Online, MSDN Flash, How-to Resources, Download Center MSDN User Groups MSDN Magazine MSDN News

How-to Resources Simple, Step-by-Step Procedures Embedded development How-to resources Embedded development How-to resources General How-to resources General How-to resources Integration How-to resources Integration How-to resources JScript ®.NET How-to resources JScript ®.NET How-to resources Microsoft.NET development How-to resources Microsoft.NET development How-to resources Office development resources Office development resources Security How-to resources Security How-to resources Microsoft Visual Basic.NET How-to resources Microsoft Visual Basic.NET How-to resources Microsoft Visual C# ®.NET How-to resources Microsoft Visual C# ®.NET How-to resources Microsoft Visual Studio.NET How-to resources Microsoft Visual Studio.NET How-to resources Web development How-to resources (ASP, IIS, XML) Web development How-to resources (ASP, IIS, XML) Web services How-to resources Web services How-to resources Windows development How-to resources Windows development How-to resourceshttp://msdn.microsoft.com/howto

MSDN Webcasts Interactive, Live Online Events Interactive, synchronous, live online events Interactive, synchronous, live online events Discuss the hottest topics from Microsoft Discuss the hottest topics from Microsoft Open and free for the general public Open and free for the general public Take place every Tuesday Take place every Tuesdayhttp://

MSDN Subscriptions The Way to Get Visual Studio.NET Visual Studio.NET MSDN Subscriptions NEW Professional Tools to build applications and XML Web services for Windows and the WebTools to build applications and XML Web services for Windows and the Web MSDN Professional $1199 new $899 renewal/upgrade MSDN Enterprise $2199 new $1599 renewal/upgrade MSDN Universal $2799 new $2299 renewal/upgrade Enterprise Developer Enterprise lifecycle toolsEnterprise lifecycle tools Team development supportTeam development support Windows Server 2003 and SQL Server™Windows Server 2003 and SQL Server™ Enterprise Architect Software and data modelingSoftware and data modeling Enterprise templatesEnterprise templates Architectural guidanceArchitectural guidance

Where Can I Get MSDN? Visit MSDN Online at msdn.microsoft.com Visit MSDN Online at msdn.microsoft.com Register for the MSDN Flash newsletter at msdn.microsoft.com/flash Register for the MSDN Flash newsletter at msdn.microsoft.com/flash Become an MSDN CD subscriber at msdn.microsoft.com/subscriptions Become an MSDN CD subscriber at msdn.microsoft.com/subscriptions MSDN online seminars msdn.microsoft.com/training/seminars MSDN online seminars msdn.microsoft.com/training/seminars Attend more MSDN events Attend more MSDN events

Microsoft Press ® Essential Resources for Developers Microsoft Visual Studio.NET is here! This is your chance to start building the next big thing. Develop your.NET skills, increase your productivity with.NET books from Microsoft Press

Become a Microsoft Certified Solution Developer What is MCSD? What is MCSD?  Premium certification for professionals who design and develop custom business solutions How do I attain MCSD certification? How do I attain MCSD certification?  Certification requires passing four exams to prove competency with Microsoft solution architecture, desktop applications, distributed application development, and development tools Where do I get more information? Where do I get more information?  For more information about certification requirements, exams, and training options, visit

Training Training Resources for Developers Course Title: Course Title:  Course Number:  Availability:  Detailed Syllabus: Course Title: Course Title:  Course Number:  Availability:  Detailed Syllabus: To locate a training provider for this course, please access Microsoft Certified Technical Education Centers are Microsoft’s premier partners for training services

© 2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary. Microsoft, MSDN, Visual Studio, Windows, Visual Basic, Active Directory, Microsoft Press, JScript, and Visual C# are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries. The names of actual companies and products mentioned herein may be the trademarks of their respective owners.