Presentation is loading. Please wait.

Presentation is loading. Please wait.

Chapter 12 Microsoft Assemblies. Process Phases Discussed in This Chapter Requirements Analysis Design Implementation ArchitectureFramework Detailed Design.

Similar presentations


Presentation on theme: "Chapter 12 Microsoft Assemblies. Process Phases Discussed in This Chapter Requirements Analysis Design Implementation ArchitectureFramework Detailed Design."— Presentation transcript:

1 Chapter 12 Microsoft Assemblies

2 Process Phases Discussed in This Chapter Requirements Analysis Design Implementation ArchitectureFramework Detailed Design x Key:= secondary emphasis x = main emphasis Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

3 Learning Goals for This Chapter  … Microsoft’s component (“assembly”) architecture  … where assemblies fit in.NET  … required rudiments of C#  … the contents of.NET manifests, including: Versioning Attributes  … the difference between private and shared assemblies  … create assemblies using C# Understand … Be able to … Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

4 .NET Goals and Solutions  Create interoperable components from multiple source languages o C++, Visual Basic, ….  Solve multiple component version clashes o “dll hell”: naming confusion in COM  Define a common runtime  Avoid registry o Necessity to register components with host computer Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

5 Design Goal At Work:  Reusability  Microsoft wanted to allow developers to create interoperable components using their favorite source languages. Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

6 The Parts of.NET Web tools and Languages ASP.NET, Windows Forms; Visual Basic.NET, C#.NET Framework Classes net XMLIO Security.. Common Language Runtime (CLR) Memory ManagementCommon Type System (CTS).. uses Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

7  Boolean  DateTime  Decimal – 28 significant digits  Double – 64-bit double-precision floating point  GUID – unique 128-bit integer; unique identifier  Int16, Int32, Int64  Sbyte – 8-bit signed integer –128 to +127  Single – 4-byte single precision floating point  TimeSpan – a period of time Types in the CTS Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

8  Boolean Equals( Object )  Int32 GetHashCode() o Generates an integer corresponding to the value of the object o Used by sorting algorithms in System.Collections  Type GetType() o for the Reflection API  String ToString() Methods of System.Object Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

9 Selected System.XX.NET Framework NameSpaces  Collections  ComponentModel o “to implement the runtime and design time behavior of components”  Data o To deal with databases via ADO  Drawing  IO  Net o to interface with common network protocols  Reflection  Runtime  Security  Text o ASII, Unicode etc.  Threading  Web  WinForms  XML Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

10 Compilation Process in.NET Source Code C++ VB Compiler & metadata generator IL and metadata Ancillary info.dll or.exe Base class library Class loader IL compiler native code execute Process File Key: C# J#, Java (3 rd parties) Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

11 A File The Parts of a.NET Assembly (Component) Manifest o Identity o name o version o Names of files o Encrypted hash of files to ensure integrity o Specification of types defined o Names of referenced assemblies o Specification of required security permissions Microsoft Intermediate Language (IL) Source FilesA.NET assembly: xyz.dll Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

12 Key Concept:  A.NET Assembly  -- includes class code from multiple files, in IL form, described by a manifest. Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

13 C# Goals 1 of 2 o Rapid application development o as with JavaBeans o Cross-platform deployment o generates character stream interpreted by.Net runtime. o as with Java Virtual Machine o Access to platform-native resources o take advantage of the Windows API to run as a full- featured application on Windows 2000 o Support for the COM and.NET platforms Unlike Java Unlike Java Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

14  Features of C and C++ “with the functional ease of rapid application development tools.”  Components with properties, methods and events o built in C# Goals : 2 of 2 Unlike Java Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

15 HelloWorld Output Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

16 Selected C# Features o Automatic garbage collection o Allows developers to disable garbage collection locally – o by marking code as “unsafe” o (e.g., where real time performance required?) o Eliminates pointers in favor of references o Introduces Interfaces Unlike Java Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

17 C# Web Features: Web Services  Attribute library allows wrapping of C# classes and functions as Web services. o a hosted software module callable over the Internet typically via SOAP protocol. o SOAP wraps method calls, parameters, and return values, in XML packets.  Using appropriate attributes, programmer can turn any C# class or function into a Web service. Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

18 Creating a.NET Component 1 of 2 csc /t:library /out:hello.dll helloFile.cs “target” Create a library component: Don’t seek Main() “output” Component (output) name Input fileC# compilation Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

19 Creating a.NET Component (“Assembly”) 2 of 2 helloFile.cs hello.dll csc /t:library /out:hello.dll helloFile.cs Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

20 Using a.NET Component csc /r:hello.dll /out:helloApp.exe helloClient.cs hello.dllhelloClient.cs helloApp.exe … now execute helloApp. Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

21 Creating a.NET Component Containing Multiple Classes csc /t:library /out:helloAuRevoir.dll HelloAuRevoirComponentSource.cs helloAuRevoir.dll GreetingUtilityHelloClassAuRevoirClass Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

22 Output For “Multiple Class” Example Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

23 Using metadata allows the CLR to support:  Multiple execution models o interpreted, o JITted (Just-in-time) o native o legacy code (prior to.NET)  Uniform services available to debuggers, profilers etc.  Consistent exception handling  Code access security  Memory management  Reflection  Interoperability with existing unmanaged COM applications  Interoperability with existing unmanaged code  Optimization to match the particular CPU or environment. Uses for Metadata Amended from http://msdn.microsoft.com/library/default.asp http://msdn.microsoft.com/library/default.asp Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

24 Manifest of Component helloAuRevoir.dll Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

25 Manifest Contents for helloAuRevoir.dll Component 1.- 2.- 3.- 4.- 5.- 6.- 7.- 8.- 9.- 10.- 11.- 12.- 13.- 14.- 15.- 16.- - Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

26 Manifest Detail of sayHelloWorld() in HelloClass 1.- 2.- 3.- 4.- 5.- 6.- 7.- 8.- Recall the source: public void SayHelloWorld( ) {GreetingUtility.OutputMessage ( "Component says: Hello World" ); } Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

27 The Version Field of an Assembly o Major version o Minor version o Revision o Build number Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

28 Versioning (The process of evolving a component over time in a compatible manner.) A new version is …  … source compatible with a previous version if code that depends on the previous version can, when recompiled, work with the new version.  … binary compatible if code that depended on the old version can, without recompilation, work with the new version.” (adapted from Microsoft) Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

29 Attribute s in.NET  Metadata: about … o … variables o … classes o … functions  Types of attributes: o Built-in o User-defined  Available at runtime Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

30 Output of main() in ConditionalDemo with #define DEBUG without #define DEBUG Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

31 Output For Authorship Querying Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

32 Key Concept:  A.NET Manifest Lists … .. the files containing the IL-compiled classes, the.NET components on which the assembly depends, version numbers, attributes, and encrypted hash to verify not tampered in transit. Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

33 Design Goal At Work:  Reusability  We want to reuse an assembly, confident it is the one it’s supposed to be. Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

34 Using NameSpaces Application 1 : List available flights in following form From to departing at and arriving at. Application 2: List bookings already made in following form Please arrive at at airport for your flight. Implement applications 1and 2. Exploit common components. Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

35 Namespaces Across Multiple Components Logo AvailabilityAnnouncement Itinerary namespace (Physical) File organization (3 files) Airlines namespace Namespace stated: Airlines.Availability Classes: Logo, AvailabilityAnnouncement Availability namespace ItineraryAnnouncement Logo (Logical) Namespace organization Source file name: AvailabilityComponentSource.cs Component name: availability.dll Namespace stated: Airlines.Itinerary Class: Logo Source file name: ItineraryLogoComponentSource.cs Component name: itineraryLogo.dll Namespace stated: Airlines.Itinerary Class: ItineraryAnnouncement Source file name: ItineraryAnnouncement.cs Component name: itineraryAnnouncmnt.dll Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

36 Airline Reservation System Display Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

37 Public Key Cryptography o Any message encoded with one key can be decoded with the other. o One can’t encrypt and decrypt a message with the same key. o It’s practically impossible to deduce one key from the other. o It’s very unlikely that an encoded document can be decoded with an unmatched key Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

38 Public Key Encryption Used in.NET Public key: …iemhdZX… Private key: …92JiuHKM3… (secret) myKeys.snk Hashed versionEncoded version use private key Manifest Names & contents of assembly Verification process AssemblyInfo.cs Assembly source assembly hash OK / not OK Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

39 Key Concept:  Component Identity  To ensure that the component we are using is the one intended, we use relatively or globally unique names:.NET also applies tamper-proofing via public key encryption. Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.

40 Summary  Microsoft “assembly” == component  Microsoft distributes computing among desktops and servers via, in part,.NET assemblies .NET assemblies supercede and are more versatile than (D)COM(+) objects. o Exist in Intermediate Language o Permit versioning o Include “attribute” feature o Identity technique for shared assemblies reduces “dll hell”  C# language designed for.NET  Assemblies constructed via C#, VB,... are interoperable Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.


Download ppt "Chapter 12 Microsoft Assemblies. Process Phases Discussed in This Chapter Requirements Analysis Design Implementation ArchitectureFramework Detailed Design."

Similar presentations


Ads by Google