Built-in languages C#, an object-oriented language similar to Sun's Java JScript .NET, a compiled version of Microsoft's Jscript J#, a Java and J++ (the Microsoft variant of Java) .NET transitional language Managed C++, a variant of the C++ programming language for the .NET platform Visual Basic .NET, an improved, object-oriented, multi-threaded version of the classic Visual Basic programming language Some available third-party languages Ada, see A#. APL Boo, based on Python COBOL Component Pascal (Component Pascal is closer to Oberon than to Pascal) Delphi 8 and Delphi 2005 Eiffel F#, a member of the ML programming language family. Forth FORTRAN IKVM, Java IronPython, Python Lexico, a didactic in Spanish object-oriented language Lisp Mercury Mondrian functional language designed to provide an easy way of scripting components Nemerle functional/imperative hybrid language Oberon Perl RPG Smalltalk
The CLI is a set of specifications for a runtime environment, including a common type system, base class library, and a machine-independent intermediate code known as the Common Intermediate Language (CIL). The CLR provides a platform for running code that conforms to the CLI; before CIL can be executed, the CLR must translate it (typically via just-in-time compilation) into native machine code.
The public key token is a 64 bit hash of the public key of a public-private key pair, and is used to ensure the uniqueness of the assembly name. An assembly that has a public key token is said to have a strong name. This naming scheme means that assemblies can be uniquely identified by the CLR, and when combined with the Global Assembly Cache, allows multiple versions of the same library to exist on the same machine without danger of the wrong version being loaded.
But if you ask a business leader who has implemented Web service-based solutions, you'll get a different kind of answer. You'll hear that Web services are an approach that helps the business connect with its customers, partners, and employees. They enable the business to extend existing services to new customers. They help the business work more efficiently with its partners and suppliers. They unlock information so it can flow to every employee who needs it. They reduce development time and expense for new projects. You'll hear less about what Web services are and more about what they enable the business to do.
Taking advantage of the huge amount of information that can be harnessed through the lower levels of .NET platform, smart devices are smart in the following areas of interaction: Identity Interaction. They know your preferences and personal information. Network Interaction. They know the infrastructure and servers proving the information. Information Interaction. They are intuitive about the information and the context in which it's received. Device Interaction. They can recognize and interact with other devices. Software Interaction. Similar to the hardware infrastructure interaction, they take advantage of the information provided by software and services, in accordance with user preferences and authentication.
ASP.NET also supports Microsoft Passport authentication and provides a convenient implementation of Forms-based (Cookie) authentication
What Is .NET? .NET is the Microsoft Web services strategy to connect information, people, systems, and devices through software. Integrated across the Microsoft platform. .NET technology provides the ability to quickly build, deploy, manage, and use connected, security-enhanced solutions with Web services.
What Is .NET? Cont. .NET-connected solutions enable businesses to integrate their systems more rapidly and in a more agile manner and help them realize the promise of information anytime, anywhere, on any device. The Microsoft platform includes everything a business needs to develop and deploy a Web service-connected IT architecture: servers to host Web services
Terms Definitions Extensible Markup Language, a specification developed by the W3C. XML is a pared-down version of SGML, designed especially for Web documents. It allows designers to create their own customized tags, enabling the definition, transmission, validation, and interpretation of data between applications and between organizations. HyperText Transfer Protocol, the underlying protocol used by the World Wide Web. HTTP defines how messages are formatted and transmitted, and what actions Web servers and browsers should take in response to various commands. Simple Object Access Protocol, a lightweight XML-based messaging protocol used to encode the information in Web service request and response messages before sending them over a network. SOAP messages are independent of any operating system or protocol and may be transported using a variety of Internet protocols, including SMTP, MIME, and HTTP.
Terms Definitions cont. Common Language Runtime, a runtime environment that manages the execution of .NET program code and provides services such as memory and exception management, debugging and profiling, and security. The CLR is a major component of the .NET framework. ASP, a specification for a dynamically created Web page with a .ASP extension that utilizes ActiveX scripting -- usually VB Script or Jscript code. When a browser requests an ASP, the Web server generates a page with HTML code and sends it back to the browser. So ASPs are similar to CGI scripts, but they enable Visual Basic programmers to work with familiar tools. ActiveX Data Objects, Microsofts newest high-level interface for data objects. ADO is designed to eventually replace Data Access Objects (DAO) and Remote Data Objects (RDO). Unlike RDO and DAO, which are designed only for accessing relational databases, ADO is more general and can be used to access all sorts of different types of data, including web pages, spreadsheets, and other types of documents.
Terms Definitions cont. ADO is one of the main components of Microsofts Universal Data Access (UDA) specification, which is designed to provide a consistent way of accessing data regardless of how the data are structured. Common Language Infrastructure (CLI) is an ECMA standard (ECMA-335) that allows applications to be written in a variety of high-level programming languages and executed in different system environments. European Computer Manufacturers Association, a non-profit international industry association founded in 1961 dedicated to the worldwide standardization of information and communication systems. Real-time Operating System it is an operating system that has been developed for real-time applications and typically used for embedded applications on a special-purpose computer with a
Terms Definitions cont. International Organization for Standardization. Founded in 1946, ISO is an international organization composed of national standards bodies from over 75 countries. ISO has defined a number of important computer standards, the most significant of which is perhaps OSI (Open Systems Interconnection), a standardized architecture for designing networks. Universal Description, Discovery and Integration. A Web-based distributed directory that enables businesses to list themselves on the Internet and discover each other, similar to a traditional phone books yellow and white pages. Metadata describes how and when and by whom a particular set of data was collected, and how the data is formatted. Metadata is essential for understanding information stored in data warehouses and has become increasingly important in XML-based Web applications
Terms Definitions cont. CIL, Programming languages that conform to the CLI have access to the same base class library and are capable of being compiled into the same intermediate language (IL) and metadata. IL is then further compiled into native code particular to a specific architecture. Because of this intermediate step, applications do not have to be rewritten from scratch. Their IL only needs to be further compiled into a systems native code. CLR also is known as the Virtual Execution System (VES). Portable Executable, When used to describe software, portable means that the software has the ability to run on a variety of computers. Portable and machine independent mean the same thing—that the software does not depend on a particular type of hardware.
History Some technologies used in .NET were originally developed by Microsoft as their version of Java. When Microsoft decided to end their future use of Suns Java technologies in 1998, the existing Microsoft J++ (Java) product was transformed into the beginnings of the .NET project. Code from the .NET CLR (Common Language Runtime) was said to have come from Colusa Softwares OmniVM, which Microsoft acquired on March 12, 1996. .NET as a software platform was released in 2002.
.NET Technology Overview Productive visual design Visual Studio.NET Environment for .NET apps Visual Studio.NET Architectural templates and Design Enterprise Frameworks Patterns with Policy Enforcement Simplified Class Framework as .NET Framework Building blocks – forms, data, web, etc. Common Infrastructure for looselyCommon Language Runtime Coupled objects Technology Substrate Open Internet Standards XML, HTTP, SOAP, HTML
.NET Framework, Languages, And Tools VB C++ C# JScript … Common Language Specification Visual Studio.NET Visual Studio.NET ASP+ Web Services WebForms ADO+: Data and XML Base Class Library Common Language Runtime
.NET Common Language Runtime Dramatically simplifies application development Provides a robust and secure execution environment Supports multiple programming languages Simplifies deployment and management
.NET Framework Web standards and practices as the foundation Unified application model Simple to use Factored and extensible ASP+ .NET Framework Web Services WebForms ADO+: Data and XML Base Class Library Common Language Runtime
The .NET Compact Framework Designed specifically for smart devices Lightweight architecture Compatible subset of desktop platform Visual Studio.NET used for app development Adaptable to different application needs Broad availability planned… Across multiple CPUs Across Windows CE and third-party RTOSes Across a variety of physical form factors
Enterprise infrastructure The two primary components of .NET are: Common Language Infrastructure (CLI) and the Common Language Runtime (CLR).
Enterprise infrastructure cont. All CIL is self-describing through .NET metadata. The CLR checks on metadata ensure that the correct method is called. Metadata is usually generated by language compilers but developers can create their own metadata through custom attributes. If a language implementation generates CIL, it can be hosted using the CLR and can then interact with data produced by any other .NET language. CLR is also designed to be operating system independent.
Enterprise infrastructure cont. Code is housed in .NET assemblies The public key token is a 64 bit hash of the public key Assembly Cache .NET has its own security mechanism, with two general features: code access security validation and verification.
What Are Web Services? If you ask a developer what Web services are, youll hear something like, "self-describing software modules, semantically encapsulating discrete functionality, wrapped in and accessible via standard Internet communication protocols like XML and SOAP."
Benefits of Web Services By enabling applications to share data across different hardware platforms and operating systems, Web services provide many benefits, including: Opening the door to new business opportunities by making it easy to connect with partners. Delivering dramatically more personal, integrated experiences to users through the new breed of smart devices—including PCs. Saving time and money by cutting development time. Increasing revenue streams by enabling businesses to easily make their own Web services available to others.
Connecting Applications Through Web Services Web services are revolutionizing how applications talk to other applications—or, more broadly, how computers talk to other computers—by providing a universal data format that lets data be easily adapted or transformed. Based on XML, the universal language of Internet data exchange, Web services can communicate across platforms and operating systems, regardless of the programming language in which the applications are written. Each Web service is a discrete unit of code that handles a limited set of tasks. However, although Web services remain independent of each other, they can loosely link themselves into a collaborating group that performs a particular task. Web Services Use Industry-Standard Protocols
Web Services cont. Web Services allow you to expose code that implements business logic that can be reused in multiple applications, but are based on vendor-independent Internet technologies and protocols such as HTTP, XML, SOAP, and UDDI. They allow you to encapsulate code, publish interfaces, discover services, and communicate between the publisher and consumer of services, in much the same way as COM+ does, only using vendor-independent, standards-based technologies. True interoperability between disparate systems is a reality, thanks to .NET.
.NET LanguagesVB C++ C# JScript …Common Language Specification ASP+ Web WebForms Services ADO+: Data and XML Base Class Library Common Language Runtime
.NET Languages VB C++ C# JScript … Common Language Specification The .NET Platform is Language Neutral All .NET languages are first class players You can leverage your existing skills .NET supports over 40 programming languages. Common Language Specification Any language can use and extend the .NET Framework All languages are interoperable We are providing VB, C++, C#, JScript Third-parties are building APL, COBOL, Pascal, Eiffel, Haskell, ML, Oberon, Perl, Python, Scheme, Smalltalk, Objective Camel…
Smart DevicesSmart devices are just that:Theyre smart, smart about the way information is presented and gathered. Examples of these devices include desktop, laptop, and workstation PCs; and cell pho nes, handhelds, tablet PCs, and game consoles (as well as the XBOX).
.Net Security The .NET Framework includes a large variety of security features commensurate with the breadth of the framework itself. Role-based security for managing user identity, provides a unified model for authorization and authentication of principals based on identity and roles. Web application security ASP.NET provides additional customization and functionality specifically targeted.
.Net Security For all managed code on the framework, server or client, Evidence-based security applies different levels of trust to all running code and enforces security accordingly. This enables semi-trusted code to be safely executed subject to restrictions that can be controlled by the administrator. A new managed library of cryptography functions is provided, including direct support for XML digital signatures. The following sections describe each of these areas in more detail.
Web application security ASP.NET has been built with security in mind. ASP.NET leverages Microsofts Internet Information Server (IIS) to provide strong support for common HTTP authentication schemes including support for Basic, Digest, NTLM, Kerberos, and SSL/TLS client certificates..
StandardizationMicrosoft has submitted a part of thespecifications of .NET to ECMA and ISO forstandardization. This is a calculated risk, but itmay encourage standards-compliantimplementations, to provide an ongoing bridgefor non-Windows software to be converted toMicrosoft .NET. One group promoting this as astandard is INETA (International .NETAssociation).
Summary The model for application development is changing Loosely-coupled services Language and system interoperability To support this we need services and tools to assist developers Interoperate, leverage XML Scalable and secure Reduce developer costs To meet this challenge, Microsoft is building .NET .NET Platform and Framework Visual Studio .NET .NET Enterprise Servers .NET Building Block Services Results of .NET Developers can build better & broader applications Enterprises reduce development and support costs Customers/consumers get access to more information, in ways they choose