CS603
Microsoft .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)
COM/DCOM  .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 (!?)
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
Descargar

CS603 Microsoft .NET