Unit 4: Machine A PDF Writer That Produces Quality PDF Files With Ease!

Download as pdf or txt
Download as pdf or txt
You are on page 1of 24

UNIT 4

pdfMachine A pdf writer that produces quality PDF files with ease! Produce quality PDF files in seconds and preserve the integrity of your original documents. Compatible across nearly all Windows platforms, simply open the document you want to convert, click print, select the Broadgun pdfMachine printer and thats it! Get yours now!

. NET BASED COMPONENT TECHNOLOGIES

pdfMachine A pdf writer that produces quality PDF files with ease! Produce quality PDF files in seconds and preserve the integrity of your original documents. Compatible across nearly all Windows platforms, simply open the document you want to convert, click print, select the Broadgun pdfMachine printer and thats it! Get yours now!

COM
Component Object Model (COM) is an interface standard for software componentry introduced by Microsoft in 1993. It is used to enable interprocess communication and dynamic object creation in any programming language that supports the technology. The term COM is often used in the software development industry as an umbrella term that encompasses the OLE, OLE Automation, ActiveX, COM+ and DCOM technologies. The essence of COM is a language-neutral way of implementing objects that can be used in environments different from the one they were created in, even across machine boundaries. For well-authored components, COM allows reuse of objects with no knowledge of their internal implementation, as it forces component implementers to provide well-defined interfaces that are separate from the implementation. The different allocation semantics of languages are accommodated by making objects responsible for their own creation and destruction through reference-counting. Casting between different interfaces of an object is achieved through the QueryInterface() function. The preferred method of inheritance within COM is the creation of sub-objects to which method calls are delegated.

pdfMachine A pdf writer that produces quality PDF files with ease! Produce quality PDF files in seconds and preserve the integrity of your original documents. Compatible across nearly all Windows platforms, simply open the document you want to convert, click print, select the Broadgun pdfMachine printer and thats it! Get yours now!

COM
Although the interface standard has been implemented on several platforms, COM is primarily used with Microsoft Windows. COM is expected to be replaced at least to some extent by the Microsoft .NET framework, and support for Web Services through the Windows Communication Foundation (WCF). However, COM objects can still be used with all .NET languages without problems. Networked DCOM uses binary proprietary formats, while WCF encourages the use of XML-based SOAP messaging. COM is very similar to other component software interface standards, such as CORBA and Java Beans, although each has its own strengths and weaknesses. It is likely that the characteristics of COM make it most suitable for the development and deployment of desktop applications, for which it was originally designed.

pdfMachine A pdf writer that produces quality PDF files with ease! Produce quality PDF files in seconds and preserve the integrity of your original documents. Compatible across nearly all Windows platforms, simply open the document you want to convert, click print, select the Broadgun pdfMachine printer and thats it! Get yours now!

DISTRIBUTED COM
Distributed Component Object Model (DCOM) is a proprietary Microsoft technology for communication among software components distributed across networked computers. DCOM, which originally was called "Network OLE", extends Microsoft's COM, and provides the communication substrate under Microsoft's COM+ application server infrastructure. It has been deprecated in favor of Microsoft .NET. The addition of the "D" to COM was due to extensive use of DCE/RPC more specifically Microsoft's enhanced version, known as MSRPC. In terms of the extensions it added to COM, DCOM had to solve the problems of Marshalling serializing and deserializing the arguments and return values of method calls "over the wire". Distributed garbage collection ensuring that references held by clients of interfaces are released when, for example, the client process crashed, or the network connection was lost.
pdfMachine A pdf writer that produces quality PDF files with ease! Produce quality PDF files in seconds and preserve the integrity of your original documents. Compatible across nearly all Windows platforms, simply open the document you want to convert, click print, select the Broadgun pdfMachine printer and thats it! Get yours now!

DISTRIBUTED COM
One of the key factors in solving these problems is the use of DCE/RPC as the underlying RPC mechanism behind DCOM. DCE/RPC has strictly defined rules regarding marshalling and who is responsible for freeing memory. DCOM was a major competitor to CORBA. Proponents of both of these technologies saw them as one day becoming the model for code and service-reuse over the Internet. However, the difficulties involved in getting either of these technologies to work over Internet firewalls, and on unknown and insecure machines, meant that normal HTTP requests in combination with web browsers won out over both of them. Microsoft, at one point, attempted and failed to head this off by adding an extra http transport to DCE/RPC called ncacn_http(Network Computing Architecture, Connection-based, over HTTP). This was later resurrected to support an Exchange 2003 connection over HTTP.

pdfMachine A pdf writer that produces quality PDF files with ease! Produce quality PDF files in seconds and preserve the integrity of your original documents. Compatible across nearly all Windows platforms, simply open the document you want to convert, click print, select the Broadgun pdfMachine printer and thats it! Get yours now!

OBJECT REUSE
Is the copying of a source file from one project to another reuse? Is the copying of a compiled class file from one project to another reuse?
Project 1
B.java A.java C.java

Copy

Project 2
A.java

D.java

pdfMachine A pdf writer that produces quality PDF files with ease! Produce quality PDF files in seconds and preserve the integrity of your original documents. Compatible across nearly all Windows platforms, simply open the document you want to convert, click print, select the Broadgun pdfMachine printer and thats it! Get yours now!

OBJECT REUSE
Maturity Levels of Object Reuse
Level 1 - Single source pool Level 2 - Multi application copy based reuse Level 3 - Multi project source based reuse Level 4 - Ad hoc binary reuse Level 5 - Controlled binary reuse

pdfMachine A pdf writer that produces quality PDF files with ease! Produce quality PDF files in seconds and preserve the integrity of your original documents. Compatible across nearly all Windows platforms, simply open the document you want to convert, click print, select the Broadgun pdfMachine printer and thats it! Get yours now!

INTERFACES AND VERSIONING


The versioning issue discussed relates to clients of the property. Suppose we wish to add a new method or property to IHttpContext. Weve effectively created a new interface and now all clients need to recompile. Not only that, but any components you might be using that refer to IHttpContext need to be recompiled. This can get ugly. You could decide to add the new method to the ABC and not change the interface. What this means is that new clients of this class need to perform an interface check when they want to call this method every time. In the second case with the ABC, you can add the method as a virtual method and throw NotImplementedException. You dont get compile time checking with this approach when implementing this ABC, but hey, thems the breaks. Remember, no perfect design. Adding this method doesnt break older clients. Newer clients who might need to call this method can recompile and now call this new method if they wish. This is where we get the versioning benefits.

pdfMachine A pdf writer that produces quality PDF files with ease! Produce quality PDF files in seconds and preserve the integrity of your original documents. Compatible across nearly all Windows platforms, simply open the document you want to convert, click print, select the Broadgun pdfMachine printer and thats it! Get yours now!

INTERFACES AND VERSIONING


public void SomeMethod(IHttpContext context) { HttpContextBase contextAbs = context as HttpContextBase; if(contextAbs != null) { contextAbs.NewMethod(); } context.Response.Write("Score!"); }
pdfMachine A pdf writer that produces quality PDF files with ease! Produce quality PDF files in seconds and preserve the integrity of your original documents. Compatible across nearly all Windows platforms, simply open the document you want to convert, click print, select the Broadgun pdfMachine printer and thats it! Get yours now!

DISPATCH INTERFACES
The dispatch interfaces provide a way to expose and access objects within an application. Automation defines the following dispatch interfaces and functions. IDispatch interface Exposes objects, methods, and properties to Automation programming tools and other applications. Creation of Dispatch API functions Simplifies the implementation of the IDispatch interface. Use these functions to generate an IDispatch interface automatically. Registering the Active Object with API Functions Provides functions to help identify a running instance of an object. IEnumVARIANT interface Provides a way for ActiveX clients to iterate over collection objects. This is a dispatch interface.

pdfMachine A pdf writer that produces quality PDF files with ease! Produce quality PDF files in seconds and preserve the integrity of your original documents. Compatible across nearly all Windows platforms, simply open the document you want to convert, click print, select the Broadgun pdfMachine printer and thats it! Get yours now!

CONNECTABLE OBJECTS
The connectable object is only one piece of the overall architecture of connectable objects. This technology includes the following elements: Connectable object Implements the IConnectionPointContainer interface; creates at least one connection point object; defines an outgoing interface for the client. Client Queries the object for IConnectionPointContainer to determine whether the object is connectable; creates a sink object to implement the outgoing interface defined by the connectable object. Sink object Implements the outgoing interface; used to establish a connection to the connectable object. Connection point object Implements the IConnectionPoint interface and manages connection with the client's sink.

pdfMachine A pdf writer that produces quality PDF files with ease! Produce quality PDF files in seconds and preserve the integrity of your original documents. Compatible across nearly all Windows platforms, simply open the document you want to convert, click print, select the Broadgun pdfMachine printer and thats it! Get yours now!

CONNECTABLE OBJECTS
The relationships between client, connectable object, a connection point, and a sink are illustrated in the following diagram:

pdfMachine A pdf writer that produces quality PDF files with ease! Produce quality PDF files in seconds and preserve the integrity of your original documents. Compatible across nearly all Windows platforms, simply open the document you want to convert, click print, select the Broadgun pdfMachine printer and thats it! Get yours now!

OLE CONTAINERS AND SERVERS


A container application is an application that can incorporate embedded or linked items into its own documents. The documents managed by a container application must be able to store and display OLE document components as well as the data created by the application itself. A container application must also allow users to insert new items or edit existing items by activating server applications when necessary. The user-interface requirements of a container application are listed in the article Containers: UserInterface Issues. A server application or component application is an application that can create OLE document components for use by container applications. Server applications usually support drag and drop or copying their data to the Clipboard so that a container application can insert the data as an embedded or linked item. An application can be both a container and a server.

pdfMachine A pdf writer that produces quality PDF files with ease! Produce quality PDF files in seconds and preserve the integrity of your original documents. Compatible across nearly all Windows platforms, simply open the document you want to convert, click print, select the Broadgun pdfMachine printer and thats it! Get yours now!

OLE CONTAINERS AND SERVERS


Most servers are stand-alone applications or full servers; they can either be run as stand-alone applications or can be launched by a container application. A miniserver is a special type of server application that can be launched only by a container. It cannot be run as a stand-alone application. Microsoft Draw and Microsoft Graph servers are examples of miniservers. Containers and servers do not communicate directly. Instead, they communicate through the OLE system dynamic-link libraries (DLL). These DLLs provide functions that containers and servers call, and the containers and servers provide callback functions that the DLLs call. Using this means of communication, a container does not need to know the implementation details of the server application. It allows a container to accept items created by any server without having to define the types of servers with which it can work. As a result, the user of a container application can take advantage of future applications and data formats. If these new applications are OLE components, then a compound document will be able to incorporate items created by those applications.

pdfMachine A pdf writer that produces quality PDF files with ease! Produce quality PDF files in seconds and preserve the integrity of your original documents. Compatible across nearly all Windows platforms, simply open the document you want to convert, click print, select the Broadgun pdfMachine printer and thats it! Get yours now!

ACTIVEX CONTROLS
ActiveX is a component object model (COM) developed by Microsoft for Windows platforms. By using the COM runtime, developers can create software components that perform a particular function or a set of functions. A software can then compose one or more components in order to provide the functionality it intends to. Many Microsoft Windows applications - including many of those from Microsoft such as Internet Explorer, Microsoft Office, Microsoft Visual Studio, Windows Media Player etc - use ActiveX controls to build their feature set as well as encapsulate their functionality as ActiveX controls so that the functionality can be embedded in other applications. Internet Explorer also allows the ActiveX controls to be embedded inside web pages.

pdfMachine A pdf writer that produces quality PDF files with ease! Produce quality PDF files in seconds and preserve the integrity of your original documents. Compatible across nearly all Windows platforms, simply open the document you want to convert, click print, select the Broadgun pdfMachine printer and thats it! Get yours now!

.NET COMPONENTS
A component is a special type of executable built from a .NET project. After compilation the component is typically referenced by applications needing the services provided by the component. In many .NET Web environments, components run on the Web server and provide data and other services (such as security, communications, and graphics) to the Web Services operating on the server. In a Windows Form application a .NET component performs the same role as on a Web server, but on a reduced scale. .NET components provide a programmable interface that is accessed by consumer applications (often called client applications). The component interface consists of a number of properties, methods, and events that are exposed by the classes contained within the component. In other words, a component is a compiled set of classes that support the services provided by the component. The classes expose their services through the properties, methods, and events that comprise the component's interface. Simple .NET object-oriented programming involves not much more than creating a class, adding the properties, methods, and events required by the class, and including the class in different applications. A .NET component, however, is a pre-compiled class module with a .DLL (dynamicallylinked library) extension. At run time, a .NET component is invoked and loaded into memory to be used by some consumer application. These .NET components are most often built and tested as independent .NET projects and are not necessarily part of another project. After compilation into a .NET DLL, these components can be added to many .NET applications as plug-in service providers. Each .NET DLL component may contain multiple classes. This means that each DLL may expose a single class or a variety of classes. For instance, if you build a .NET DLL that supports remote data access, the DLL might need to expose separate classes for the database and for the variety of DataSets also produced by the DLL. Or, you may have a single DLL that supports error handling in your applications. In this case, the DLL exposes a single ErrorHandler class that performs all of the error handling required by consumer applications.

pdfMachine A pdf writer that produces quality PDF files with ease! Produce quality PDF files in seconds and preserve the integrity of your original documents. Compatible across nearly all Windows platforms, simply open the document you want to convert, click print, select the Broadgun pdfMachine printer and thats it! Get yours now!

ASSEMBLIES
Assemblies are a fundamental part of programming with the .NET Framework. An assembly performs the following functions: It contains code that the common language runtime executes. Microsoft intermediate language (MSIL) code in a portable executable (PE) file will not be executed if it does not have an associated assembly manifest. Note that each assembly can have only one entry point (that is, DllMain, WinMain, or Main). It forms a security boundary. An assembly is the unit at which permissions are requested and granted. For more information about security boundaries as they apply to assemblies, see Assembly Security Considerations. It forms a type boundary. Every type's identity includes the name of the assembly in which it resides. A type called MyType loaded in the scope of one assembly is not the same as a type called MyType loaded in the scope of another assembly.

pdfMachine A pdf writer that produces quality PDF files with ease! Produce quality PDF files in seconds and preserve the integrity of your original documents. Compatible across nearly all Windows platforms, simply open the document you want to convert, click print, select the Broadgun pdfMachine printer and thats it! Get yours now!

ASSEMBLIES
It forms a reference scope boundary. The assembly's manifest contains assembly metadata that is used for resolving types and satisfying resource requests. It specifies the types and resources that are exposed outside the assembly. The manifest also enumerates other assemblies on which it depends. It forms a version boundary. The assembly is the smallest versionable unit in the common language runtime; all types and resources in the same assembly are versioned as a unit. The assembly's manifest describes the version dependencies you specify for any dependent assemblies. It forms a deployment unit. When an application starts, only the assemblies that the application initially calls must be present. Other assemblies, such as localization resources or assemblies containing utility classes, can be retrieved on demand. This allows applications to be kept simple and thin when first downloaded. It is the unit at which side-by-side execution is supported.

pdfMachine A pdf writer that produces quality PDF files with ease! Produce quality PDF files in seconds and preserve the integrity of your original documents. Compatible across nearly all Windows platforms, simply open the document you want to convert, click print, select the Broadgun pdfMachine printer and thats it! Get yours now!

APPDOMAINS
An AppDomain is a light-weight process. Well, if you actually measure the costs associated with an AppDomain especially the first one you create, which has some additional costs that are amortized over all subsequent ones then light-weight deserves some explanation:A Win32 process is heavy-weight compared to a Unix process. A Win32 thread is heavy-weight compared to a Unix thread, particularly if you are using a non-kernel user threads package on Unix. A good design for Windows will create and destroy processes at a low rate, will have a small number of processes, and will have a small number of threads in each process. In .NET, threads run in something called an AppDomain. You'll sometimes hear that an AppDomain is analogous to a Win32 process in that it offers many of the same benefits, including fault tolerance and the ability to be independently started and stopped. This is a good comparison, but the comparison breaks down in relation to threads. In Win32, a thread is confined to a single process, as you saw when I described context switching earlier. A thread in one process cannot invoke a method in a thread that belongs to another process. In .NET, however, threads can cross AppDomain boundaries, and a method in one thread can call a method in another AppDomain. Therefore, here's a better definition of an AppDomain: a logical process inside of a physical process.

pdfMachine A pdf writer that produces quality PDF files with ease! Produce quality PDF files in seconds and preserve the integrity of your original documents. Compatible across nearly all Windows platforms, simply open the document you want to convert, click print, select the Broadgun pdfMachine printer and thats it! Get yours now!

CONTEXTS
In computer science, a task context (process, thread ...) is the minimal set of data used by this task that must be saved to allow a task interruption at a given date, and a continuation of this task at the point it has been interrupted and at an arbitrary future date. The concept of context assumes significance in the case of interruptible tasks, wherein upon being interrupted the processor saves the context and proceeds to serve the Interrupt service routine. Thus the smaller the context the smaller is the latency. These data are located in: Processor registers Memory used by the task On some Operating systems, control registers used by the system to manage the task The storage memory (files) is not concerned by the "task context" in the case of a context switch; even if this can be stored for some uses (Checkpointing).

pdfMachine A pdf writer that produces quality PDF files with ease! Produce quality PDF files in seconds and preserve the integrity of your original documents. Compatible across nearly all Windows platforms, simply open the document you want to convert, click print, select the Broadgun pdfMachine printer and thats it! Get yours now!

REFLECTION
Reflection can be used for observing and/or modifying program execution at runtime. A reflection-oriented program component can monitor the execution of an enclosure of code and can modify itself according to a desired goal related to that enclosure. This is typically accomplished by dynamically assigning program code at runtime. Reflection can also be used to adapt a given program to different situations dynamically. For example, consider an application that uses two different classes X and Y interchangeably to perform similar operations. Without reflection-oriented programming, the application might be hard-coded to call method names of class X and class Y. However, using the reflectionoriented programming paradigm, the application could be designed and written to utilize reflection in order to invoke methods in classes X and Y without hard-coding method names. Reflection-oriented programming almost always requires additional knowledge, framework, relational mapping, and object relevance in order to take advantage of more generic code execution. Hard-coding can be avoided to the extent that reflectionoriented programming is used. Reflection is also a key strategy for metaprogramming.

pdfMachine A pdf writer that produces quality PDF files with ease! Produce quality PDF files in seconds and preserve the integrity of your original documents. Compatible across nearly all Windows platforms, simply open the document you want to convert, click print, select the Broadgun pdfMachine printer and thats it! Get yours now!

REFLECTION
A language supporting reflection provides a number of features available at runtime that would otherwise be very obscure or impossible to accomplish in a lower-level language. Some of these features are the abilities to: Discover and modify source code constructions (such as code blocks, classes, methods, protocols, etc.) as a first-class object at runtime. Convert a string matching the symbolic name of a class or function into a reference to or invocation of that class or function. Evaluate a string as if it were a source code statement at runtime. These features can be implemented in different ways. In MOO, reflection forms a natural part of everyday programming idiom. When verbs (methods) are called, various variables such as verb (the name of the verb being called) and this (the object on which the verb is called) are populated to give the context of the call. Security is typically managed by accessing the caller stack programmatically: Since callers() is a list of the methods by which the current verb was eventually called, performing tests on callers()[1] (the command invoked by the original user) allows the verb to protect itself against unauthorised use. Compiled languages rely on their runtime system to provide information about the source code. A compiled Objective-C executable, for example, records the names of all methods in a block of the executable, providing a table to correspond these with the underlying methods (or selectors for these methods) compiled into the program. In a compiled language that supports runtime creation of functions, such as Common Lisp, the runtime environment must include a compiler or an interpreter. Reflection can be implemented for languages not having built-in reflection facilities by using a program transformation system to define automated source code changes..

pdfMachine A pdf writer that produces quality PDF files with ease! Produce quality PDF files in seconds and preserve the integrity of your original documents. Compatible across nearly all Windows platforms, simply open the document you want to convert, click print, select the Broadgun pdfMachine printer and thats it! Get yours now!

REMOTING
A .NET technology that allows objects residing in different application domains to communicate. Objects in different application domains are said to be separated by a remoting boundary. Objects using remoting may be on the same computer, or on different computers connected by a network. Remoting is the .NET replacement for DCOM.
pdfMachine A pdf writer that produces quality PDF files with ease! Produce quality PDF files in seconds and preserve the integrity of your original documents. Compatible across nearly all Windows platforms, simply open the document you want to convert, click print, select the Broadgun pdfMachine printer and thats it! Get yours now!

You might also like