Università La Sapienza Ingegneria del Software I 1 Ingegneria del software I Seminario 2: Microsoft.NET
Università La Sapienza Ingegneria del Software I 2 Microsoft.NET piattaforma Visual Studio.NET.NET Enterprise Servers.NET Building Block & Services.NET Devices, User Experience
Università La Sapienza Ingegneria del Software I 3 Microsoft.NET piattaforma Visual Studio.NET.NET Enterprise Servers.NET Building Block & Services.NET Devices, User Experience
Università La Sapienza Ingegneria del Software I 4 Visual Studio.NET Framework per sviluppo ed integrazione dei.NET Enterprise Servers sia con.NET building block services che.NET devices. [6] VB C++ C# Scripts … … CLS (Common Language Specification) ASP.NET Web Service Web Form ADO.NET : Data and XML Base Class Library CLR (Common Language Runtime) Integrates into the system
Università La Sapienza Ingegneria del Software I 5 CLS (Common Language Specification) È un insieme di specifiche per linteroperabilità tra linguaggi. [7] È un insieme di specifiche di compilazione per lindipendenza dai linguaggi. [8] Sono definiti: tipi, metodi, campi, proprietà, enumerazioni, eccezioni, interfacce, eventi, etc.
Università La Sapienza Ingegneria del Software I 6 CLR (Common Language Runtime) Carica ed esegue codice scritto in runtime- aware per i linguaggi di programmazione. [14] Le caratteristiche dellambiente runtime [14] : – cross-language integration –self-describing components –simple deployment and versioning –integrated security services. Un unico framework per il progetto, lo sviluppo, limplementazione, e lesecuzione di componenti ed applicazioni distribuiti. [9]
Università La Sapienza Ingegneria del Software I 7 Microsoft.NET Platform Visual Studio.NET.NET Enterprise Servers.NET Building Block & Services.NET Devices, User Experience
Università La Sapienza Ingegneria del Software I 8 Mainframe / Other Data Sources Supplier / Consumer of XML e-documents.NET Enterprise Server Configuration Internet Security & Acceleration Server 2000 Internet Security & Acceleration Server 2000 SQL Server 2000 Host Integration Server 2000 Host Integration Server 2000 BizTalk Server 2000 BizTalk Server 2000 Application Center 2000 Internet Information Server Exchange Server 2000 Exchange Server 2000 COM+ Mobile Information Server 2000 Mobile Information Server 2000 Clients on the web Mobile Devices
Università La Sapienza Ingegneria del Software I 9 Microsoft.NET Framework System Services Common Language Runtime Services FrameWork BaseDataDebug... ASP+ Web FormsWeb Services Win Forms
Università La Sapienza Ingegneria del Software I 10 Service Framework Fornisce classi di oggetti a supporto degli sviluppatori per.NET. [14] Base Classes Type System Component Model I/O and Network Drawing (GDI+) Threading Cryptography Globalization Serialization Programming Tools Debugging/Trace Configuration/Install Resources EventLog/PerfCounter
Università La Sapienza Ingegneria del Software I 11 Il linguaggio C# Caratteristiche del C# [16] –Semplicità –Type safe –Consistenza –Supporto alle versioni –Object Orientation –Flessibilità
Università La Sapienza Ingegneria del Software I 12 C# - caratteristiche Complessità del C++, 1)-> / :: /. notazioni criptiche 2)Particolari tipo di dato wchar_t, __int64 … 3)Utilizzo degli interi come booleani, 4)problema del == e = In C#, 1)Notazione principale è il.. 2)È stato introdotto il tipo bool per eliminare confusioni
Università La Sapienza Ingegneria del Software I 13 C# - caratteristiche In C# non ci sono puntatori. La gestione della memoria è a carico del garbage collector fornito con lambiente.NET Usando la modalità unsafe si può comunque accedere alla memoria direttamente.
Università La Sapienza Ingegneria del Software I 14 C# - Object Orientation Incapsulamento, ereditarietà, polimorfismo I metodi della classi non sono virtual per default public, private, protected e internal Lereditarietà permessa è singola
Università La Sapienza Ingegneria del Software I 15 C# - Type Safety Le variabili non inizializzate non sono ammesse Il casting dei tipi ad UNSAFE non è permesso Data overflow, array index boundary checking
Università La Sapienza Ingegneria del Software I 16 Un semplice esempio in C# hello world. using System; class Hello { public static void Main(string[] args) { Console.WriteLine(hello, world); // print the command line arguments for (int i = 0; arg < args.Length; i++) Console.WriteLine(arg [0],[1], i, args[i]); }
Università La Sapienza Ingegneria del Software I 17 SDC (Self-Describing Components) I servizi forniti dal runtime sono metadata driven, questi metadati aggiungono informazioni agli eseguibili, come le definizioni di interfacce che prima specificate in IDL, TLB, proxy/stubs.
Università La Sapienza Ingegneria del Software I 18 Web Server Architettura dei Web Services Web Service Developer Web Service : ASMX Web Application : ASMX Author class, ASMX Deploy Application Web Application Developer Request SCL Author Page that calls the Proxy SDL Run Proxy Generator ASPX C#, VB Web Server Proxy Deploy Application Web Form Call Methods Deploy Application Run Method
Università La Sapienza Ingegneria del Software I 19 Web Service, ASMX Web service server salvato come asmx file. Richieste di web services basate su comunicazioni XML / SOAP. Oggetti e risorse accessibili via URL
Università La Sapienza Ingegneria del Software I 20 Web Server Web Service Development Web Service Developer Web Service : ASMX Web Application : ASMX Author class, ASMX Deploy Application Web Application Developer Request SCL Author Page that calls the Proxy SDL Run Proxy Generator ASPX C#, VB Web Server Proxy Deploy Application Web Form Call Methods Deploy Application Run Method
Università La Sapienza Ingegneria del Software I 21 1 Author Class, ASMX using System; using System.Web.Services; public class MyService { [WebMethod] public String MyServiceFunction1(String strParm1, String strParm2) {... } [WebMethod] public void MyServiceFunction2(Integer intParm) {... }
Università La Sapienza Ingegneria del Software I 22 Deploy Application Per implementare lapplicazione web va copiato il file ASMX nel web folder.
Università La Sapienza Ingegneria del Software I 23 Web Application, ASPX Per utilizzare i web services va creato un Proxy. Proxies sono creati in DLL compilando il codice stub genrato dal proxy generator. Il proxy generator genera il codice stub dal SDL che è esportato dai web services.
Università La Sapienza Ingegneria del Software I 24 Web Server Web Application Development Web Service Developer Web Service : ASMX Web Application : ASMX Author class, ASMX Deploy Application Web Application Developer Request SCL Author Page that calls the Proxy SDL Run Proxy Generator ASPX C#, VB Web Server Proxy Deploy Application Web Form Call Methods Deploy Application Run Method
Università La Sapienza Ingegneria del Software I 25 Request SCL + Run Proxy Generator Creazione del codice del Proxy da SDL. Webserviceutil /c:proxy /pa: /l:Csharp /n:MyServices /c:proxy Crea codice del Proxy dal SDL /pa:URL Specifica URL per il SCL(SDL) /l:language Specifica il linguaggio sorgente /n:namespace Specifica il namespace del proxy
Università La Sapienza Ingegneria del Software I 26 Deploy (Proxy) Application Compila il codice generato e copia il file DLL nel web folder per implementare il proxy. csc /out:..\bin\MyService.dll /t:library /r:system.data.dll /r:system.web.services.dll /r:system.xml.serialization.dll MyService.cs
Università La Sapienza Ingegneria del Software I 27 Author ASPX My Service Page MyServices = new MyService();// my service StringstrResult; strResult = s.MyServiceFunction1(Hello, World); s.MyServiceFunction2(12345);...
Università La Sapienza Ingegneria del Software I 28 Deploy (Web) Application Per implementare lapplicazione web va copiato il file ASPX nel web folder.
Università La Sapienza Ingegneria del Software I 29 The innovative feature MyService.ASPX... Calendarc; SelectedDatesCollectiondtSelectedPeriod;... c = CALENDAR;... dtSelectedPeriod = calendar.SelectedDates; <ASP:CALENDAR id="CALENDAR" runat="server" ALIGN=LEFT CellPadding="3" CellSpacing="1" DayNameFormat="FirstLetter" FirstDayOfWeek="Default" NextMonthText=">... />
Università La Sapienza Ingegneria del Software I 30 Servizio web scheduler
Università La Sapienza Ingegneria del Software I 31 References [1] Microsoft.NET, [2] The simplest way to define.NET, [3] An Introduction to Microsoft Hailstorm, [4] Bill Gates Web Site – Speeches, [5] Microsoft Announces Hailstorm, a New Set of XML Web Services Designed …, [6] G. Lee, Paradigm shift in software development environment, MS Visual Studio.NET, Microsoftware, pp. 202 ~ 213, Korea, Jan [7] Introduction to the Common Language Specification (CLS), mmon_language_specification__cls_.htm [8] What is Common Language Specification?, especification.htm [9] Overview of the Common Language Runtime, mon_language_runtime.htm
Università La Sapienza Ingegneria del Software I 32 References [10] Microsoft.NET in Retail and Hospitality, [11] Microsoft.NET for Manufacturing: Extending the Enterprise Through Open Protocols, [12] Microsoft.NET Platform – What it is, p [13] Overview of Microsoft.NET, [14] The Programmable Web, p [15] Build Web Applications Faster and Easier Using Web Services and XML, [16] Sharp New Language : C# Offers the Power of C++ and Simplicity of Visual Basic, [17] G. Kim, The announcement of Hailstorm composed of XML web services, Microsoftware, p. 172, Korea, Apr