Showing posts with label Programming. Show all posts
Showing posts with label Programming. Show all posts

Tuesday, February 23, 2010

New in MSXML 6.0

MSXML 6.0 shipped with SQL Server 2005. It also shipped as a Web release. The following is a high-level summary of features that were introduced with MSXML 6.0.

• Security

A number of enhancements have been made to MSXML 6.0 to eliminate security threats. Additionally, some features that are insecure, such as DTDs and inline schemas, have been turned off by default. For more information, see MSXML Security Overview.
• XDR Schema Support Removed

XML Data Reduced (XDR) schema support has been removed. For more information, see Removal of XDR Schema Support.

•Improvements in XSD Standards Compliance

MSXML 6.0 has improved XSD schema standards compliance. For more information, see Improvements in XSD Standards Compliance.

• Improvements in Schema Cache Behavior

MSXML 6.0 has changed the behavior of the XSD schema cache. The new version is less ambiguous when there are name collisions. For moreinformation, see Improvements in Schema Cache Behavior.

• XML Digital Signature Removed

MSXML 6.0 removed support for XML digital signatures. For more information, see XML Digital Signatures. Other Changes in MSXML 6.0

There are a number of other changes in MSXML 6.0. A few of the changes may require modifications to applications. Source and read more
Continue Reading...

Tuesday, February 2, 2010

Information XML DOM

The Document Object Model (DOM) as implemented in MSXML provides a programmatic representation of XML documents, fragments, nodes, or node-sets. It also provides an application programming interface for working with XML data. As an XML representation, it conforms to the W3C DOM specification. As a set of API, XML DOM objects are COM objects that implement interfaces and can be used in XML applications written in programming languages such as C/C++, Visual Basic, VBScript, and JScript.
The following JScript fragments outline the basic process of programming with XML DOM.
Source
Continue Reading...

Sunday, December 20, 2009

Mobile Development

Mobile PCs refer to all mobile computers, including laptops, notebooks, Tablet PCs, ultra mobile PCs (UMPCs), and other form factors that are developed running Microsoft Windows XP or a later version of the full Windows operating system. Mobile development is the process of creating applications to run in the most optimized way on mobile PCs.

Mobile PCs vs. Mobile Devices

Mobile PCs are defined as computers that run the full Microsoft Windows XP or later operating system. More specifically, mobile PC development refers to creating applications for laptops, notebooks, sub-notebooks, ultra-mobile PCs or the premier
mobile PC, the Tablet PC.

This means that we are not talking about mobile devices such as Pocket PCs or Smartphones running the Windows Mobile operating system. These are usually referred to as mobile devices as opposed to mobile PCs.

Mobile PC Considerations

Applications for mobile PCs need to be aware of the often constrained resources available and the changing states that occur as a result of not being in a static location. In order to give the user an optimal experience on a mobile PC, software must be aware of these changing conditions and react in the most appropriate way for the user.

Power Management

One of the main resource restrictions on a mobile PC is the limited power provided when running on a battery. In addition to being aware of the amount of power left and warning the user to save their work when it gets low, a great mobile PC application should be aware of when the machine is running on the battery and limit unnecessary activity. For instance, limit the use of animations or unnecessarily accessing network connections. to read more here

source MSDN
Continue Reading...

Sunday, December 6, 2009

JScript 8.0

What Is JScript 8.0 ? JScript 8.0 is the next generation of an implementation by Microsoft of the ECMA 262 language. Combining the feature set of previous versions of JScript with the best features of class-based languages, JScript 8.0 includes the best of both worlds. Improvements in JScript 8.0 — which is being developed in conjunction with ECMAScript Edition 4 — include true compiled code, typed and typeless variables, late- and early-binding, classes (with inheritance, function overloading, property accessors, and more), packages, cross-language support, and full access to the .NET Framework.

New Features

JScript 8.0 is a true object-oriented scripting language. Although JScript 8.0 can now use classes, types, and other advanced language features for writing robust applications, it retains its "scripting" feel, with support for typeless programming, expando functions and classes, dynamic code execution (using eval), and more.
In addition to being a typeless language, JScript 8.0 can now be a strongly typed language. In previous versions, the loosely typed structure of JScript meant that variables assumed the type of the value assigned to them. In fact, you could not declare the data types of variables in previous versions. JScript 8.0 provides more flexibility than previous versions of JScript by allowing variables to be type annotated. This binds a variable to a particular data type, and the variable can store only data of that type.
There are many advantages of strong typing in a programming language. In addition to the benefit that occurs when you use a data type that properly fits the data you are using, you get several other benefits:

• Improved execution speed
• Run-time/compile-time type-checking
• Self-documenting code

Finally, it is important to remember that JScript 8.0 is not a condensed version of another programming language, nor is it a simplification of anything. It is a modern scripting language with a wide variety of applications.

source and read more here
Continue Reading...

Sunday, November 15, 2009

Information Internet Explorer for Windows CE

Microsoft Internet Explorer for Microsoft Windows CE is the most compatible, feature-rich browser control for the Windows CE operating system. Developers, OEMs, independent software vendors (ISVs), and independent hardware vendors (IHVs) can use the technologies provided by Internet Explorer for Windows CE to build a custom browser for a specific device or market.

Feature Differences
Supported Technologies

Feature Differences

Internet Explorer for Windows CE supports the same features that were included in the Microsoft Win32 version of Internet Explorer 4.0, except for the following:

Data binding
Microsoft Visual Basic Scripting Edition (VBScript)
XML
Downloadable Microsoft ActiveX Controls
PNG
Microsoft virtual machine
Gopher
Recreation Software Advisory Council on the Internet (RSACi) rating system
Filters and transitions

Microsoft JScript (compatible with the ECMA 262 language specification) supports the same features that were included in the Win32 version of JScript, except for the following:

RegExp support
SAFEARRAY support (used for coexistence with VBScript and other languages)
Scrrun.dll support (dictionary object, file object, and so on)
Automatic loading of type libraries (IActiveScript::AddTypeLib is not supported)

Referencing cross window objects (for example, opener.top.location)
Internet Explorer for Windows CE is not intended to be an upgrade of Pocket Internet Explorer, so Internet Explorer for Windows CE does not attempt to provide backwards compatibility with Pocket Internet Explorer or its custom interfaces.

reference and to read more here. Live Bookmarks here
Continue Reading...

How To Upgrading Applications Created in Visual Basic 6.0

Visual Basic 2008 provides the ability to upgrade applications created in Visual Basic 6.0 so that you can continue development, taking advantage of the benefits of the .NET Framework. When you first open a Visual Basic 6.0 project file (.vbp), the Upgrade Wizard appears. A command-line tool is also provided for upgrading projects outside the development environment.
With Visual Basic 2008, you can upgrade applications created in Visual Basic 6.0 so that you can continue development, taking advantage of the benefits of the .NET Framework. When you first open a Visual Basic 6.0 project file (.vbp), the Upgrade Wizard appears. You can also upgrade projects outside the development environment with the provided command-line tool.
The upgrading tools modify code in your project to comply with Visual Basic 2008 syntax and replace any forms and controls with Visual Basic 2008 equivalents. Because of the differences between Visual Basic 6.0 and Visual Basic 2008, some parts of your project may not upgrade correctly. In these cases, you receive an upgrade report to guide you through the process of modifying the application.

If you are not ready to upgrade your Visual Basic 6.0 application, you can still take advantage of the benefits of the .NET Framework by using Interop Forms Toolkit 2.0. Interop Forms Toolkit 2.0 enables you to create new forms or UserControls in Visual Basic 2008 and use them in your Visual Basic 6.0 application.
Interop Toolkit 2.0 can be downloaded for free from the page on the MSDN Web site

reference and to read more here
Continue Reading...

Monday, November 2, 2009

Microsoft Data Access Components

The Microsoft® Data Access Components (MDAC) SDK documents the key technologies that are part of Microsoft's strategy for providing access to information across the enterprise.

Microsoft Data Access Components include ActiveX® Data Objects (ADO), OLE DB, and Open Database Connectivity (ODBC). Data-driven client/server applications deployed over the Web or a LAN can use these components to easily integrate information from a variety of sources, both relational (SQL) and non-relational.
If you have questions or need detailed information about properly redistributing MDAC, see Redistributing MDAC for a description of the distribution requirements for MDAC.

ActiveX Data Objects (ADO)

Microsoft ActiveX Data Objects (ADO) provides consistent, high-performance access to data and supports a variety of development needs, including the creation of front-end database clients and middle-tier business objects that use applications, tools, languages, or Internet browsers. The primary benefits of ADO are ease of use, high speed, low memory overhead, and a small disk footprint.
ADO provides an easy-to-use interface to OLE DB, which provides the underlying access to data. It uses a familiar metaphor — the COM Automation interface — available from all leading Rapid Application Development (RAD) tools, database tools, and languages.

OLE DB

Microsoft OLE DB is a set of interfaces that expose data from a variety of relational and nonrelational sources by using the Component Object Model (COM). OLE DB interfaces provide applications with uniform access to data stored in diverse information sources. These interfaces support the amount of DBMS functionality appropriate to the data store, enabling the data store to share its data.
OLE DB comprises a programmatic model consisting of data providers, which contain and expose data; data consumers, which use data; and service components, which process and transport data (such as query processors and cursor engines). In addition, OLE DB includes a bridge to ODBC to enable continued support for the broad range of ODBC relational database drivers.

Open Database Connectivity (ODBC)

The Microsoft Open Database Connectivity (ODBC) interface makes it possible for applications to access data from a variety of DBMSs. ODBC permits maximum interoperability — an application can access data in diverse DBMSs through a single interface. Furthermore, that application will be independent of any DBMS from which it accesses data. Users of the application can add software components called drivers, which create an interface between an application and a specific DBMS.
Components of the MDAC SDK

Microsoft ActiveX Data Objects (ADO)

This section contains Programmer's References for ADO, ADOX, ADO MD, and RDS, as well as samples documentation.

Microsoft OLE DB

This section documents the OLE DB and OLE DB for OLAP interfaces, including a Programmer's Reference, documentation for various OLE DB providers, and samples.
Microsoft Open Database Connectivity (ODBC)
This section documents the ODBC interface, including a Programmer's Reference, documentation for various ODBC drivers, and samples.

source sources-code-hemlet.blogspot.com
Continue Reading...

Tuesday, August 11, 2009

XmlLite Reader Programming Overview

XmlLite is implemented as a DLL. There is a header file and a library that comes with XmlLite, but they are there for compiling and linking purposes only; all of the functionality is implemented in the DLL. To use XmlLite, you call methods as appropriate to parse the XML and access the nodes.
Pull vs. Push Parsers
Both XmlLite and SAX2 are non-caching, forward-only parsers. For this type of parser, there are two varieties of programming models:

• Pull programming model. In a pull model, after your application initiates parsing, it calls methods repeatedly to retrieve, or pull, the next node. After retrieving a node, your application can look at the node, including its name, value, attributes, and more. As appropriate, the parser advances so that the next time the application retrieves a node, it gets the next one. XmlLite follows a pull programming model.

• Push programming model. In a push model, your application registers event handlers to receive nodes and information from the parser. After initiating parsing, the parser calls these event handlers, sending (or pushing) nodes to them. The MSXML SAX2 parser follows this programming model.

There are several advantages to the pull programming model:
• It is significantly easier to program for the pull model. Your application takes the form of a loop, where you get the next node, process it, and repeat, until the entire file is processed, or until your application determines that no more processing is required.

• In contrast, the push model requires your application to keep a significant amount of state. Keeping state means that your application needs to keep variables that contain the context of the current node. The combination of implementing a number of event handlers and keeping state means that much more housekeeping is necessary to implement an application.

• If your application is more suitable for a push parser, it is possible to wrap some classes around a pull parser and implement a push programming model. However, the reverse is not true.

Both the push and pull type parsers are significantly different in semantic behavior and performance from the Document Object Model (DOM) programming interface.
You Must Use a Class that Implements IStream
Both the XmlLite reader and writer use a stream object for reading and writing the XML. Therefore, you must either use or implement a class that extends the IStream interface.
After you have created a reader by calling CreateXmlReader , you attach the IStream object to the reader by calling the SetInput method. After you have created a writer by calling CreateXmlWriter, you attach the IStream object by calling the SetOutput method.

If you implement your own class, and if you want to read or write XML directly from another type of stream, you can change the implementation of your IStream class as appropriate. If you want to use a simple in-memory IStream implementation, you can use the function CreateStreamOnHGlobal. If you want to use an IStream implementation that reads from and to a text file, you can use SHCreateStreamOnFile.
For details about programming with the XmlLite reader, see Reading an XML Document Using XmlLite.

For convenience, you can get a default implementation of a simple IStream class from the default IStream implementation. This implementation is the same as that used in many of the XmlLite samples.

XmlLite Is Not an ActiveX Control

XmlLite is not an ActiveX control. It is simply a DLL. As such, it cannot be used from scripting languages, such as JScript or Visual Basic Scripting Edition (VBScript). Like any DLL, XmlLite can be used from C#; however, C# applications would more typically use the XML parsers in System.XML. XmlLite is primarily meant to be used with C++.
XmlLite Is Not Thread Safe
XmlLite is not thread-safe. If you are writing a multi-threaded application, it is up to you to make sure that you use XmlLite in a thread-safe manner. For example, if one of your threads has called the method to retrieve the next node, and that method has not returned, you must programmatically prevent another thread from attempting to retrieve a node.
XmlLite Does Not Provide Access to Typed Content
Unlike the managed System.Xml.XmlReader, the IXmlReader does not provide APIs to access typed content. You can declare that an element is of a certain type, but you cannot retrieve that element as that specified data type. All values are returned as strings, and it is up to the application to convert to types other than string.
Support for Namespaces
XmlLite implements namespaces in compliance with the W3C Namespaces in XML specification. That specification can be found at http://www.w3.org/TR/REC-xml-names.
Capacity
Due to implementation and security constraints, the IXmlReader imposes bounds on some of the XML constructs. For example, consider the following:
text
• All names are limited to 4GB in size. In the example above, nameOfElement and attrName have this limit.
• Attribute values are limited to 2GB in size. In the example above, attrValue has this limit.
• Text values are limited to 4GB in size without chunking, and are unlimited with chunking. To read values with chunking, you use the ReadValueChunk method. For an example of chunking, see Reading an XML Document Using Chunking.
• The number of attributes on an element is limited to 64K.
If any of these limits are exceeded, then XmlLite returns an error.
Special Handling of Nodes
The DOCTYPE node is handled in a special way. When you read a DOCTYPE node, the NodeType is XmlNodeType_DocumentType. The PUBLIC and/or SYSTEM literals are presented as attributes with the names "PUBLIC" and "SYSTEM", respectively. The internal subset can be accessed by using GetValue, and the subset will be returned as a string.
The Xml declaration is also handled in a special way. When you read it, the NodeType is XmlNodeType_XmlDeclaration. The node has no value and has "xml" as the local name. It has no namespace and has up to three attributes: version, standalone, and encoding.
White Space Normalization
All white space in XmlLite is normalized as per the XML 1.0 specification. For more information, see Section 2.10 of the Extensible Markup Language (XML) 1.0 Specification at http://www.w3.org/TR/1998/REC-xml-19980210#sec-white-space.

Error Handling
There are three classes of errors in XmlLite:
• Argument errors. These errors are recoverable and further processing can continue. An example of an argument error is passing an incorrect or illegal value for an argument.
• Parsing errors. These errors are not recoverable, but the same instance of the reader can be used by resetting the input source.
• All other errors. All other errors are not recoverable, and the instance of the reader can no longer be reused.
Because some errors are not recoverable and may lead to unexpected behavior in further processing, it is crucial that the application user inspect the error code (HRESULT) returned by each method call before proceeding.
For more information about error codes, see XmlLite Error Codes.
Encoding Detection
There are three places that an encoding can be specified while in the process of parsing an encoded Xml document:
• The encoding can be specified in the document via a Byte Order Mark (BOM). The BOM may appear at the beginning of an XML entity. The BOM is used both to indicate the byte order of the input stream and as a specification of the input encoding.
• The encoding can be specified in the document in the Xml declaration.
• The encoding can be specified programmatically when creating the input stream. This specification can either be mandatory, or as a hint.
If the user of XmlLite specifies a mandatory encoding programmatically, XmlLite ignores the encoding specified in the Xml declaration. The encoding specified in the Xml declaration (or as overridden programmatically) is the desired encoding.
If there is a BOM, and it conflicts with the desired encoding, parsing will fail.
If there is no BOM, and if the encoding hint was specified as TRUE, then XmlLite will try to parse with the desired encoding. If that fails, XmlLite will attempt to automatically detect the encoding of the specified document.
If there is no BOM, and if the encoding hint was specified as FALSE, then XmlLite will try to parse with the desired encoding. If there is no match between the desired encoding and the encoding of the document, XmlLite parsing will fail. In this case, XmlLite will not attempt to automatically detect the encoding of the document.
If automatic detection of the encoding of the document fails, then XmlLite reports an error on line 0.
If there is no BOM, and there is no desired encoding, XmlLite will attempt to automatically detect the encoding of the document.
The following encodings are supported natively:
• UTF-8, UTF-16, and UTF-16BE
• UCS-2 and UCS-4
• ASCII
• SO88591, ISO88592, ISO88593, ISO88594, ISO88595, ISO88596, ISO88597, ISO88598, and ISO88599
• Windows1250, Windows1251, Windows1252, Windows1253, Windows1254, Windows 1255, Windows1256, Windows1257, and Windows1258
For additional encoding support, you can co-create an instance of IMultiLanguage2* and set XmlReaderProperty_MultiLanguage. By default, the value of this property is NULL.
DTD Support
Document Type Definition (DTD) support is limited to entity expansion and default attributes.
When a DTD is used, DTD default attributes are returned just as if they were normal attributes; the only difference is that default attributes return TRUE when the IsDefault method is called.
For example with a DTD:

If the myAttr attribute on the myElement element is not defined in the XML stream, it will be given the default value of 123.
Semantics of String Handling
The following IXmlReader methods return a string pointer: GetLocalName, GetNamespaceUri, GetPrefix, GetQualifiedName, and GetValue.
When calling these methods, be aware that the pointer is only valid until you move the reader to another node. When you move the reader to another node, XmlLite may reuse the memory referenced by the pointer. Therefore, you should not use the pointer after calling one of the following methods: Read, MoveToNextAttribute, MoveToFirstAttribute, MoveToAttributeByName and MoveToElement. Although they do not move the reader, the following two methods will also make the pointer invalid: SetInput and IUnknown::Release. If you want to preserve the value that was returned in the string, you should make a deep copy.

Continue Reading...

Monday, July 27, 2009

XmlLite Introduction

The XmlLite library allows developers to build high-performance XML-based applications that provide a high degree of interoperability with other applications that adhere to the XML 1.0 standard. The primary goals of XmlLite are ease of use, performance, and standards compliance.
XmlLite works with any Windows language that can use dynamic link libraries (DLLs), but Microsoft recommends C++. XmlLite comes with all necessary support files for use with C++, but if you want to use it with other languages, some additional work may be required.

XmlLite works with various versions of the Microsoft C++ compiler, but the samples in the documentation have been validated only with Visual Studio 2005.
This topic provides an overview of XmlLite and some guidelines for which XML parser to use in various scenarios.

Microsoft XML Parsers
Microsoft delivers several XML parsers:
• XmlLite (native)
• MSXML (SAX2) (native)
• System.XML.XmlReader (managed)
The following Document Object Model (DOM) implementations have built-in parsers:
• MSXML (DOM)
• System.XML (XmlDocument)

XmlLite Usage Scenarios

XML can be used as a format for storing documents, such as Microsoft Office Word documents. It can also be used to encode data for marshalling method calls across machine boundaries (SOAP). Businesses can use XML for sending and receiving purchase orders and invoices. Web technologies can use XML to send data between the Web server and the client's Web browser. Database servers can return the data from queries in XML for further processing by other applications. Because it is such a flexible format, XML can be used in a vast variety of scenarios.
Performance
Usage scenarios can be generally divided into two categories:
• Some scenarios work with XML documents that come from external sources, and it is not known whether the XML documents are valid. In these scenarios, verification of validity is important. Typically, developers use XSD schemas or Document Type Definitions (DTDs) to verify validity. Performance may be a concern, but the overriding concern is that the application reading the XML receives a valid document. Saving and loading documents from and to a variety of applications is a usage scenario that falls in this category.
• Some software systems use XML as a data store or a means for communication. In these scenarios, the developer knows that the XML document is valid, perhaps because another part of the system (which is under the control of the same developer or organization) generated the XML. The question of document validity is not an overriding concern. One example of this approach is where the software system runs on a server farm, and XML is used to communicate between various servers and processes. Another example might be one where a relatively complicated application has to store and retrieve a large amount of information. The developer completely controls the format of the XML document.
The focus of XmlLite is on performance. Therefore, XmlLite is most appropriate in the second of the two scenarios. XmlLite enables developers to write efficient (fast) code to read and write XML documents. In most scenarios, XmlLite parses faster than either the DOM in MSXML or SAX2 in MSXML.
XmlLite vs. System.XML
XmlLite is most appropriate for use with C++. If you are using C#, Visual Basic .NET, or other languages that use the common language runtime (CLR), it is more appropriate to use one of the parsers in System.XML.
Some developers want a deployment scenario where it is not required that the Microsoft .NET Framework be installed on deployment computers. XmlLite does not require the .NET framework to be installed, and may be appropriate for this situation.
No XSD or DTD Validation
Because XmlLite is oriented towards optimum performance, it does not provide for document validation. Validation via XSD schemas or DTDs is not supported. If you require validation, it is recommended that you use either MSXML or System.XML.
If you read a document that refers to an external XSD schema, the XmlLite reader ignores the external schema. Even if the document is invalid per the schema, the XmlLite reader will report no errors.
If you read a document that contains an inline schema, the XmlLite reader returns all of the elements and attributes of the inline schema, just as if they were parts of the XML document.
No Scripting Language Support
XmlLite does not support scripting languages. If you need to use XML from JScript or Visual Basic Scripting Edition (VBScript), it is more appropriate to use the Document Object Model (DOM) in MSXML.
Limited DTD Support
Document Type Definitions (DTDs) are supported, but only for entity expansion and defaults for attributes, not for document validation. If you require DTD validation, it is recommended that you use either MSXML or System.XML.
If you enable DTDs, note the following: If you use XmlLite to read a document that refers to a DTD and the document is not valid per that DTD, no error will be thrown.
Continue Reading...

Thursday, June 11, 2009

Visual Basic SP 6

Service Pack 6 for Visual Basic 6.0, Visual C++ 6.0 with Visual Source Safe 6.0d provides the latest updates to these products. It is recommended for all users of Visual Basic 6.0, Visual C++ 6.0 and Visual Source Safe 6.0.

Service Pack 6 for Visual Basic 6.0, Visual C++ 6.0 with Visual Source Safe 6.0d provides the latest updates to these products. It is recommended for all users of Visual Basic 6.0, Visual C++ 6.0 and Visual Source Safe 6.0.
for download Visual Basic SP6, click here
Continue Reading...

Monday, May 11, 2009

Windows Workflow Foundation Overview

Windows Workflow Foundation is the programming model, engine, and tools for quickly building workflow-enabled applications on Windows. It consists of a namespace, an in-process workflow engine, and designers for Visual Studio 2005. Windows Workflow Foundation is a framework which enables users to create system or human workflows in their applications written for Windows Vista, Windows XP, and the Windows Server 2003 family. Windows Workflow Foundation can be used to solve simple scenarios such as showing UI controls based on user input, or complex scenarios encountered by large enterprises, such as order processing and inventory control.
Scenarios that Windows Workflow Foundation addresses include:
• Enabling workflow within line-of-business applications
• User-interface page flows
• Document-centric workflow
• Human workflows
• Composite workflows for service-oriented applications
• Business rule-driven workflows
• Workflows for systems management
Windows Workflow Foundation provides a consistent and familiar development experience with other .NET Framework 3.0 technologies, such as Windows Communication Foundation and Windows Presentation Foundation. The Windows Workflow Foundation API provides full support for Visual Basic .NET and C#, a specialized workflow compiler, debugging within a workflow, a graphical workflow designer, and developing your workflow completely in code or in markup. Windows Workflow Foundation also provides an extensible model and designer to build custom activities that encapsulate workflow functionality for end users or for reuse across multiple projects.

The concepts in this section are inherent to Windows Workflow Foundation. They are briefly described here to provide a basic understanding. The Programming Guide section of this SDK provides implementation details and a deeper level of knowledge.
A workflow is a set of elemental units called activities that are stored as a model that describes a real-world process. Workflows provide a way of describing the order of execution and dependent relationships between pieces of short- or long-running work. This work passes through the model from start to finish, and activities might be executed by people or by system functions.
Workflow Runtime Engine
Every running workflow instance is created and maintained by an in-process runtime engine that is commonly referred to as the workflow runtime engine. There can be several workflow runtime engines within an application domain, and each instance of the runtime engine can support multiple workflow instances running concurrently.
When a workflow model is compiled, it can be executed inside any Windows process including console applications, forms-based applications, Windows Services, ASP.NET Web sites, and Web services. Because a workflow is hosted in process, a workflow can easily communicate with its host application.
The following illustration shows how workflows, activities, and the workflow runtime engine are all hosted in process with a host application.

for the purpose of is other, click here
Continue Reading...

Tuesday, March 31, 2009

Programming Guide for 64-bit Windows

Microsoft has released 64-bit versions of the Windows operating system, such as 64-bit Windows Vista, Windows XP Professional x64 Edition, and Windows Server 2003 R2 x64 Enterprise Edition. 64-bit Windows was designed with compatibility in mind. Developers can ensure that their existing 32-bit applications run well under 64-bit Windows or take advantage of the benefits of 64-bit Windows by migrating their applications.
Benefits of 64-bit Windows
A 64-bit operating system supports far more physical memory than a 32-bit operating system. For example, most 32-bit Windows systems support a maximum of 4 gigabytes of physical memory, with up to 3 gigabytes of address space for each process, while 64-bit Windows supports up to 2 terabytes of physical memory with 8 terabytes of address space for each process. The increased physical memory includes the following benefits for applications:

Each application can support more users. All or part of each application must be replicated for each user, which requires additional memory.
• Each application has better performance. Increased physical memory allows more applications to run simultaneously and remain completely resident in the system's main memory. This reduces or eliminates the performance penalty of swapping pages to and from disk.
• Each application has more memory for data storage and manipulation. Databases can store more of their data in the physical memory of the system. Data access is faster because disk reads are not necessary.
• Applications can manipulate large amounts of data easily and more reliably. Video composition for motion picture work requires 64-bit Windows for this reason. Modeling for scientific and financial applications benefits greatly from memory-resident data structures that are not possible on 32-bit Windows.

There are also important benefits for businesses:

• Increased productivity. Knowledge workers can spend their time thinking and producing, rather than waiting for the software to finish its tasks.
• Lower cost of ownership. Each server can support larger numbers of users and applications, so your business will require fewer servers. This translates directly into less management overhead—one of the highest costs in any computing environment.
• New application opportunities. New applications can be designed without the barriers imposed by 32-bit Windows. New graphics applications will make work easier and more enjoyable. Data-intensive tasks that are impossible today can be done with 64-bit Windows.
Continue Reading...
 

Gadget Copyright © 2009 WoodMag is Designed by Ipietoon for Free Blogger Template