150 likes | 269 Vues
This document covers the essentials of the .NET framework as of April 2002, detailing its role as a language for distributed computation. It addresses key components such as C#, VB.NET, and JScript, and discusses protocols like SOAP and HTTP. The text delves into the common language runtime (CLR), Active Directory integration, and the workings of ASP.NET. Topics include web service development, configuration settings, session management, security, and tools available for programming. By the end, readers will have a foundational understanding of .NET and how to create and deploy applications.
E N D
CS603Microsoft .NET April 8, 2002
What is .NET? • Language for distributed computation • C#, VB.NET, JScript • Protocols • SOAP, HTTP • Run-time environment • Common Language Runtime (CLR) • ActiveDirectory • Web Servers (ASP.NET)
DCOM IDL Name, Monikers Registry / ActiveDirectory C++, Visual Basic DCE RPC DCOM Network protocol (based on DCE standards) .NET Web Services Description Language (WSDL) DISCO (URI grammar) Universal Description Discovery and Integration (UDDI) C#, VB.NET SOAP HTTP (presumed ubiquitous), SMTP (!?) COM/DCOM .NET
How .NET works • Query UDDI directory to get service location • Query service to get WSDL (interface specification) • Build call (XML) based on WSDL spec. • Make call using SOAP • Parse XML results based on WSDL spec.
Programming framework: ASP.NET • Integrated environment • Web server: application deployment • Compiler: Just-in-time compilation • Development tools • Implements Common Language Runtime • Base class library • Looks like a web server • “Programs” stored/executed anywhere in hierarchy
Building .NET services • ASP.NET • Manages compilation, run-time system, registration, etc. • Hello.asmx <%@ WebService Language="C#" Class=“Hello" %> using System; using System.Web.Services; public class Hello : WebService { [WebMethod] public String SayHello(String from) { Return "Hello, “ + from; } } • Place in desired location of ASP.NET directory structure • Gives URL to execute
Alternative: Forms-based Development • File test.aspx <%@ Page Language="C#"%> <html> <body> <form action="intro2.aspx" method="post"> <p> Name: <input id="Name" type=text> Category: <select id="Category" size=1><option>psychology</option><option>business</option> </select> </p> <input type=submit value="Lookup"> <p> <% for (int i=0; i <8; i++) { %> <font size="<%=i%>"> Welcome to ASP.NET </font> <br> <% }%> </p> </form> </body> </html>
Configuration / Settings • Configuration parameters: • Security • Language • Compilation options • Session vs. sessionless • Caching • Etc. • Written as XML in file web.config • Applies recursively to programs in directory containing web.config
Type System • Primitive types • Enum, Arrays, Structs • Classes (public fields/properties) • DataSet • Tables • Schema • XmlNode (XML fragment)
DataSets <%@ WebService Language="C#" Class="DataService" %> using System; using System.Data; using System.Data.SqlClient; using System.Web.Services; public class DataService { [WebMethod] public DataSet GetTitleAuthors() { SqlConnection myConnection = new SqlConnection("server=(local)\\NetSDK;database=pubs;Trusted_Connection=yes"); SqlDataAdapter myCommand1 = new SqlDataAdapter ("select * from Authors", myConnection); SqlDataAdapter myCommand2 = new SqlDataAdapter("select * from Titles", myConnection); DataSet ds = new DataSet(); myCommand1.Fill(ds, "Authors"); myCommand2.Fill(ds, "Titles"); return ds; } }
Sessions • Session: language-level access to cookies [ WebMethod(EnableSession=true) ] public String UpdateHitCounter() { return “Your access number " + ++Session["HitCounter"]; } • Application: Stored state of server [ WebMethod ] public String UpdateHitCounter() { return “Total access number " + ++Application["HitCounter"]; }
Security • Authentication • Windows • Passport • Forms-based authentication (cookie-based, login page) • Access Control • Access Control List on file • Check against URL • Configured using application configuration file: <configuration> <system.web> <authentication mode="Forms"/> </system.web> </configuration> • Can run either as self or impersonate caller
Tools • “Visual” language environments: • VB.NET • C# • Tracing • Page-level: Debug statements written to special section of output web page • Application-level: http://.../HelloWorld/trace.axd • Debugging: Enable in configuration • <compilation debug=“true” /> • Breakpoint/stepping debugger run when service called
Announcements • Monday, April 8, 3:30, CS 101 • David Holmes • Threads, concurrency and synchronization in Java • Monday, April 15, 3:30, CS 101 • Philip McKinley • RAPIDware: Framework for adaptability in the face of error in distributed systems