370 likes | 523 Views
Introduction to the Web and .NET. Mark Sapossnek CS 651 Computer Science Department Metropolitan College Boston University. Agenda. Internet Technologies Programming Languages and Paradigms Programming the Web .NET Overview. .NET Overview. Introduction to .NET The .NET Framework
E N D
Introduction to the Weband .NET Mark SapossnekCS 651 Computer Science Department Metropolitan College Boston University
Agenda • Internet Technologies • Programming Languages and Paradigms • Programming the Web • .NET Overview
.NET Overview • Introduction to .NET • The .NET Framework • Common Language Runtime • ADO.NET • Windows Forms • Web Forms • Web Services • Languages • .NET and Devices • Visual Studio.NET
Introduction to .NETWhat is .NET? • A vision of how information technology will evolve • A platform that supports the vision • A business model of software as a service
Introduction to .NETWhat is .NET? • A vision • Web sites will be joined by Web Services • New smart devices will join the PC • User interfaces will become more adaptable and customizable • Enabled by Web standards
Introduction to .NETWhat is .NET? • A platform • The .NET Framework • Visual Studio.NET • .NET Enterprise Servers • Database, Messaging, Integration, Commerce, Proxy, Security, Mobility, Orchestration, Content Management • .NET Building Block Services • Passport • .NET My Services (“Hailstorm”) • Goal: make it incredibly easy to build powerful Web applications and Web services } The focus of this course
Introduction to .NETWhat is .NET? • A business model • Software as a service • Subscription-based services • Application hosting, e.g. bCentral
.NET can run here .NET FoundationWeb Services Your InternalWeb Service Third-PartyWeb Services .NET EnterpriseServers Clients Applications .NET runs here Web Form Web Service .NET Framework Windows .NET can run here Introduction to .NETThe .NET Platform Protocols: HTTP,HTML, XML, SOAP, UDDI Tools:Visual Studio.NET,Notepad
The .NET FrameworkWhat Is the .NET Framework? • A set of technologies for developing and using components to create: • Web Forms • Web Services • Windows Applications • Supports the software lifecycle • Development • Debugging • Deployment • Maintenance
The .NET FrameworkThe .NET Framework and Visual Studio.NET VB C++ C# JScript Perl Cobol … Common Language Specification ASP.NET: Web Services and Web Forms WindowsForms Visual Studio.NET ADO.NET: Data and XML .NET Framework Base Classes Common Language Runtime Windows (Win32, IIS, COM+, …)
Same classes forall languages!!! System.Windows.Forms System.Web Form Button Services UI Description HtmlControls MessageBox ListControl Discovery WebControls Protocols System.Drawing Caching Security Drawing2D Printing Configuration SessionState Imaging Text System.Data System.Xml OLEDB SQL XSLT Serialization Design SQLTypes XPath System Collections IO Security Runtime InteropServices Configuration Net ServiceProcess Remoting Diagnostics Reflection Text Serialization Globalization Resources Threading The .NET Framework.NET Framework Classes
Common Language RuntimeGoals • Development services • Deep cross-language interoperability • Increased productivity • Deployment services • Simple, reliable deployment • Fewer versioning problems – NO MORE ‘DLL HELL’ • Run-time services • Performance • Scalability • Availability • Reliability • Security • Safety
Source Code Assembly C++, C#, VB or any .NET language DLL or EXE Common Language RuntimeCompilation Compiler csc.exe or vbc.exe
Common Language RuntimeAssemblies • Assembly • Logical unit of deployment • Contains Manifest, Metadata, MSIL and resources • Manifest • Metadata about the components in an assembly (version, types, dependencies, etc.) • Type Metadata • Completely describes all types defined in an assembly: properties, methods, arguments, return values, attributes, base classes, …
Common Language RuntimeAssemblies • Microsoft Intermediate Language (MSIL, IL) • All languages compile to IL (managed code) • IL is always compiled to native code before being executed • Resources • E.g. .bmp, .jpg
Ngen Common Language RuntimeExecution Model Source code VB C# C++ Compiler Compiler Compiler Assembly Assembly Assembly MSIL Common Language Runtime JIT Compiler CLR Native code Managed Code Managed Code Managed Code Unmanaged Code CLR Services Operating System Services
Code management Conversion of MSIL to native code Loading and execution of managed code Creation and management of metadata Verification of type safety Insertion and execution of security checks Memory management and isolation Handling exceptions across languages Interoperation between .NET Framework objects and COM objects and Win32 DLLs Automation of object layout for late binding Developer services (profiling, debugging, etc.) Common Language RuntimeServices
Common Language RuntimeMultiple Language Support • Common Type System (CTS) • A superset of the data types used by most modern programming languages • Common Language Specification (CLS) • A subset of CTS that allows code written in different languages to interoperate • What languages? • Microsoft: C++, Visual Basic, C#, JScript • Third-Party: Perl, Java, Cobol, Python, Eiffel, Smalltalk, Scheme, Fortran, Pascal, Ada, …
Common Language RuntimeApplications • An application consists of one or more assemblies • Where do assemblies live? • Local (subfolder) - preferred • Global Assembly Cache • How does one assembly bind to another? • Based upon metadata and policy • Multiple versions of an assembly may exist on the same machine • Easier software deployment, updates and removal • Multiple versions of an assembly in same application
Common Language RuntimeSecurity • Evidence-based security (authentication) • Based on both user identity and code identity • Configurable policies • Imperative and declarative interfaces
ADO.NET • Similar to ADO, but better factored • Language-neutral data access • Supports two styles of data access • Disconnected • Forward-only, read-only access • Supports data binding • DataSet: a collection of tables • Can view and process data relationally (tables) or hierarchically (XML) • Passes data in XML format
Framework for building rich clients Built upon .NET Framework, languages Rapid Application Development (RAD) Visual inheritance Anchoring and docking Rich set of controls Extensible controls Data-aware Easily hooked into Web Services ActiveX support Licensing support Printing support Advanced graphics “No touch” deployment Can create controls to run in browser (like ActiveX) Windows Forms
Web Forms • Built with ASP.NET • Logical evolution of ASP • Similar development model: edit the page and go • Requires less code • New programming model • Event-driven/server-side controls • Rich controls (e.g. data grid, validation) • Data binding • Controls generate browser-specific code • Simplified handling of page state
Web Forms • Allows separation of UI and business logic • Uses .NET languages • Compiled • Not just scripting • Easy to use components • Deployment via XCOPY, FTP, Visual Studio • Simple configuration (XML-based) • Caching (pages, fragments, custom) • Scalable session state management
Web Forms • Tracing support • ASP.NET is extensible • No ISAPI / ASP dichotomy • Automatic process rollover • Forms-based authentication • Role-based security model
Web Services • A programmable application component accessible via standard Web protocols • Exposes machine-accessible functionality over the Web • vs. HTML, which exposes human-accessible functionality over the Web • Enables new business opportunities • Built on existing and emerging standards • HTTP, XML, SOAP, UDDI, WSDL, …
Web ServicesWhy Web Services? ? ? ? ?
HTML, XML HTML, XML HTML HTML Generation 1Static HTML Generation 2Web Applications Generation 3Web Services Web ServicesEvolution of the Web
Web Services.NET My Services • Scenario: Planning a trip • Go to Expedia site (or Travelocity, or …) • Log in by clicking .NET Passport icon • Find the flights you want • Don’t have to reenter seat/meal/airline/frequent flyer/… info • System can find lowest price fare by looking at your calendar(s) • Purchase tickets w/o entering credit card # • Flight info automatically added to your calendar and your spouse’s calendar (with your approval) • Book rental car/hotel w/your preferences; added to calendar • On day of trip get notified of flight status via email/toast/pager/cell phone
Web Services.NET My Services .NET Inbox .NET Alerts .NET Calendar .NET Application Settings .NET Contacts .NET Documents .NET Lists .NET Devices .NET Categories .NET Location .NET FavoriteWebsites .NET Presence .NET Profile .NET Wallet
Web Servicesvs. Remoting • Web Services • Cross platform • Open industry standard • Based on SOAP (HTTP + XML) • Designed for use over the Internet • Remoting • .NET version of DCOM • .NET-specific • HTTP and TCP support • Pluggable protocols: binary, XML (SOAP) • Transparent proxies • High performance
LanguagesC# • New language created for .NET • Safe, productive evolution of C++ • Designed along with CLR • Key concepts: • Component-oriented • Everything is an object • Robust and durable code • Preserving your investment • Standardized by ECMA
LanguagesVisual Basic.NET • Modernizes and simplifies Visual Basic • Inheritance • Threading • Exception handling • Support for late binding • Semi-automated conversion from VB6 • Use judiciously
Visual Studio.NETIncreased Productivity • Increased developer productivity • Easier to write code, share knowledge • Same tools for all languages • Mixed language development • Simplified server-based development • RAD for the server • Improved debugging • Powerful design tools • Windows Forms, Web Forms • XML and component designers • Extensible IDE
.NET and Devices.NET Compact Framework • .NET Framework for Smart Devices • Goal: software as a service for devices • Lightweight runtime architecture • Compatible subset of desktop platform • Visual Studio.NET and 3rd party tools • Adaptable to different application needs • Broad availability planned… • Multiple CPUs • Windows CE and other RTOSes • Variety of physical form factors
.NET and Devices Mobile Internet Toolkit • Utilize browser interface • Reach broad range of client devices • Server-side business logic • Leverage ASP.NET features and skills • Support multiple mark-up languages • WML1.1 (WAP), cHTML 1.0, and HTML 3.2 • Mobile Internet Controls Runtime • Intelligently renders content for mobile devices • Mobile Internet Designer • Integrates with Visual Studio.NET IDE
Conclusion • Internet Technologies • Programming Languages and Paradigms • Programming the Web • .NET Overview