140 likes | 257 Vues
Explore the fundamentals of the .NET framework, a powerful platform for distributed computation. Delve into key languages like C#, VB.NET, and JScript, and learn about vital protocols such as SOAP and HTTP. Understand the Common Language Runtime (CLR), session management, web services, and how ASP.NET enhances application development. This guide covers configuration settings, security measures, data access with ADO.NET, and the essential tools for building scalable, robust applications in an integrated development environment.
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