CS603 Microsoft .NET by uIjyV4i

VIEWS: 0 PAGES: 14

									    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                              .NET
• IDL                          •   Web Services Description
                                   Language (WSDL)
• Name, Monikers               •   DISCO (URI grammar)
• Registry / ActiveDirectory   •   Universal Description
                                   Discovery and Integration
                                   (UDDI)
• C++, Visual Basic            •   C#, VB.NET
• DCE RPC                      •   SOAP
• DCOM Network protocol        •   HTTP (presumed
  (based on DCE                    ubiquitous), SMTP (!?)
  standards)
                 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

								
To top