Custom application development is one of the fastest growing segments in the technology industry today as more companies seek unique applications to meet their specific business needs. Tapping into this robust demand for increasingly sophisticated applications, Microsoft Gold Certified Partner The Henson Group, Inc. (THG) provides a team of experienced developers that harness the power of Microsoft’s ground-breaking .NET Framework. (See further down for service descriptions.)
WHAT WE CAN DO FOR YOU: CODE DEVELOPMENT
From code writing to server deployments and integration, THG’s consultants are experts in .NET. THG consultants have the following expertise in Code Devlopment:
Transactions: In order to write managed applications that use services, THG builds classes requiring services deriving from ServicedComponent and use various custom attributes to specify the actual services required. This provides the applications with the transactional throughput needed for the most demanding environments.
Deployment: Custom attributes are one of the two key concepts of accessing COM+ services from managed code. Custom attributes are used by THG developers to specify the services that are required, such as the Transaction custom attribute. For deployment, THG assists clients in the complexities of component deployment such packaging custom built assemblies that use serviced components in COM+ through the use of shawdow copy for Microsoft's Application Center.
Serviced Components: The Enterprise Services infrastructure is founded on the concept of a context. A context is an environment for objects with similar execution requirements. Services can be enforced during activation and/or during method call interception. Although COM+ services is written in unmanaged code, the integration of COM+ services with .NET is much deeper than just using the COM interop technology in .NET. Without deriving from ServicedComponent, the registration process would not have the desired effect.
Just-In-Time Activation: The just-in-time (JIT) service is generally not used in isolation. It is used implicitly with the transaction service and most often with object pooling. However, this example helps to highlight some interesting topics. TThe two methods THG develops have expertise in JIT activation include when: 1) he client uses the object's state only for a single method call; 2) The client makes multiple method calls on the same object without deactivating the object after each method call by setting the doneness bit to false before exiting the method.
Object Pooling: The basic premise of object pooling is object reuse. THG developers assist clients in implementing either two forms of object pooling: single call pattern and multi-call pattern.
Code Access Security (CAS): The .NET Framework security enables the ability for code to access resources only if it has permission to do so. To express this, the .NET Framework uses the concept of permissions, which represent the right for code to access protected resources. Code requests the permissions it needs. Utilizing code access permission classes, THG configures permissions to indicate to the .NET Framework what the code needs to be allowed to do and to indicate what the application callers must be authorized to do.
Role-Based Security (RBS): THG consultants provide skills on calling System.EnterpriseServices which provides security services to .NET objects that mirror the functionality of the COM+ security mechanisms. Written by THG, when a COM+ server application is used to host the components, the RBS features requires that the DCOM transport protocol be used to activate the components from a remote client.
COM Interoperability: Existing COM components represent valuable resources to your current and future applications. Likewise, you can use a COM client to create an instance of a public class in a .NET assembly and call the public members of that class. In each case, THG developers assist clients in using the .NET Framework's COM interoperability features to enable this communication.
THG's provides additional coding services to assist customer in calling COM components directly through COM Interop Services in .NET. Examples include assistance in building a.NET Remoting client object that creates an instance of a COM object, a runtime callable wrapper (RCW) then exposes the unmanaged object and acts as a proxy for it. The benefit is that to the .NET client, this wrapper appears to be just like any other managed class. The wrapper simply marshals calls between managed (.NET) and unmanaged (COM) code. Similarly, THG can expose a .NET Remoting server object to classic COM clients. Then when a COM client creates an instance of the .NET object, a COM callable wrapper (CCW) exposes the object and acts as a proxy for it as well.
Application Interoperability: For the clients who want to leverage the power of .NET, yet need code and application integration to legacy non-managed code and applications, THG offers a wide range of services.
Data Interoperability Applications: Robust and scaleable applications that integrate data between Windows applications and Unix, mainframes and AS/400 applications. Examples include OLEDB to DB2 on both the AS/400 and OS/390. Applications can include the ability to integrate 2-Phase commit, as well as database replication from SQL to DB2.
Web Services: In addition to publishing services through UDDI, THG’s code experts design and build reusable Web services to be accessed both internally and externally, including creating XML-based Web services for use in enterprise environments.
Security: Empowering the client with greater role-based and code-access security, THG assists in reviewing and developing applications with the highest security settings. This includes the implementation of encrypting RPC and .NET remoting channels, as well as securing managed code and page files. Additionally, THG reviews existing applications for security vulnerabilities, such as SQL code injection, stack and heap overruns, array indexing, format strings, and Unicode or ANSI buffer mismatches.
Enterprise Services (COM+): Experts in the .NET Framework, THG provides developers that provide another way to write component-based applications and has the advantages over the COM programming model of better tool support, the common language runtime (CLR), and a much easier coding syntax. Enterprise Services (COM+) developed by THG are accessed from managed and unmanaged code located across client's applications saving valuable development time.
C++ and C#.NET: THG developers provide expertise in the creation of Visual .NET applications. Experts in C++/C# .NET, THG developers are extremely knowledgeable in utilizing libraries including Active Template Library (a set of template-based C++ classes for COM objects), ATL Server Library (a set of native C++ classes for creating Web applications, Web Services, and other server applications), and Microsoft Foundation Classes (a set of classes that support an application written for the Windows API). With deep knowledge of these libraries, THG developers can build and structure applications in less time.
ASP.NET: THG creates XML Web services using the ASP.NET page framework, enabling these XML Web services to access the many features of the .NET Framework, such as authentication and caching. THG developers build XML Web services that provide clients with the ability to exchange messages in a loosely coupled environment using standard protocols such as HTTP, XML, XSD, SOAP, and WSDL. Because THG uses standard protocols based on XML Web services, client XML Web service applications can communicate with a broad variety of implementations, platforms, and devices.
ATL Server: THG consultants create XML Web services using ATL Server, which provide a set of classes that extend the Active Template Library (ATL) for accessing the full functionality of IIS through ISAPI. THG's applications written to ATL Server provides classes that make it possible for the clients to easily handle issues such as caching, thread pooling, and session state.
.NET Remoting: THG utilizes .NET Remoting to create a loosely coupled solutions using XML Web services or to create a tightly coupled solution using a binary protocol. THG's applications built to utilize .NET remoting provide an abstract approach to interprocess communication that separates the remotable object from a specific client or server application domain and from a specific mechanism of communication. As a result, clients save time and money because of the extreme flexibility. For example, clients can replace one communication protocol with another, or one serialization format with another without recompiling the client or the server.
Performance: Disregarding applications can significantly result in an application that performs poorly. Experts in application performance, THG consultants perform application performance reviews to ensure applications are written to provide the greatest performance and security. This includes taking advantage of techniques such as using a managed executable and .NET Remoting binary protocol over a TCP channel.
State Management: Many companies struggle with the implementation of state management with applications. Multiply this fact by the number of potential clients and the amount of resources consumed increases, along with the likelihood that resource contention will occur. Such a component greatly complicates the ability of the application to scale. THG's applications built on XML Web services will assume a stateless programming model, and handle each incoming request independently offering the best in performance while maintaining state between requests in SQL Server and by accessing the same state management options as other ASP.NET applications.
Another state management techniques THG consultants employ is through the use of .NET Remoting support for server and client activation of remote objects. While .NET Remoting normally uses server activation when remote objects are not required to maintain any state between method calls, THG builds .NET Remoting to use server activation so when multiple clients call methods on the same object instance. For client-activated objects, THG builds applications where the client manages the lifetime of the remote object by using a lease-based system.
Extensible Markup Language (XML): XML provides a format for describing structured data that allows for precise declarations of content and useful search results across multiple platforms. Although both are markup languages, XML is not a replacement for HTML. They function in a complementary manner. The strength of HTML is in displaying information whereas XML is an excellent way to describe information. XML's strength lies partly in its ability to separate the user interface from data being displayed, thus allowing the cross-platform performance noted earlier.
THG implements XML for application communication in a distributed application architecture. This allows XML data to easily move through firewalls and between heterogeneous systems using standard transport mechanisms. Whatever your application requires — importing, exporting, data interchange, interoperability with other applications (such as Office 2000 or Exchange 2000), parsing, modifying, data access, data storage — THG can provide the XML expertise you require.