Strategic decisions will need to be made with respect to the Microsoft .NET platform.
Over the past twenty plus years organizational enterprise has invested significant resources in the development of applications built on the Visual Basic 6.0 language and related technologies. There is a requirement to migrate and upgrade from Microsoft client-server applications to .Microsoft .NET. The Visual Basic 6.0 Upgrade Assessment Tool and Visual Basic Upgrade Wizard details the processes
for preparing applications prior to the application of tools. There are limitations associated with the tools and what can be automatically upgraded. In most situations, manual techniques will have to be performed to complete the upgrade.
Service Oriented Architecture is a design approach for organizing existing information technology assets in order that the heterogeneous array of distributed complex systems and applications can be transformed into a network of integrated and highly flexible resources. In contrast to bottom-up and top-down techniques, Microsoft advocates a middle out approach to SOA in which efforts are driven by strategy and business requirement. Implementation is performed through incremental, iterative SOA projects which deliver one business need at a time. Microsoft introduced in 1999, the Microsoft Web services model and
the subsequent .NET Framework and SOA tools and design approaches have been built into its application platform. A primary objective with each SOA project is to address specific business challenges and create
solutions in iterative, incremental steps.
Application Development with Microsoft .NET
The Microsoft .NET Framework is used to access and manage a variety of data sources. ADO.NET includes data providers for connecting to a database and executing commands. Data can be transported
over the Internet using XML web services or across process boundaries using .NET remoting. ASP.NET runs web applications using MS IE: Internet Explorer. ASP.NET includes facilities for managing session state,
security, and HTML generation using ASPX. Server-side web controls can be matched using custom ASP tags. Web controls encapsulate reusable user interface logic and facilitate web programming.
CLR: Common Language Runtime
The CLR runs managed MSIL code. The unmanaged code is pointer-based and runs outside the CLR. The Windows operating system does not automatically support a CLR. The .EXE runs because the CLR is first loaded by the shell executable
CLR host, which then runs the user program in the loaded CLR. A CLR host is an application that sits between the CLR application and the operating system process. The host is responsible for loading the CLR into the operating system
process and creating logical partitions in the OS process so that individual applications can reside in those partitions.
Every CLR host comes with a piece of unmanaged code that must be run before it can load the CLR. In order to interact with the operating system for the first time, the CLR host must run some
unmanaged pointer-based code. After this code is run, the CLR is loaded and the host creates a default partition for running managed code. A userís application is not run in this default partition; instead, the
CLR host creates partitions for running these end user programs. Traditional applications are separated by OS process boundaries, and this means that one application to share resources with another
application you must make an out-of-process application.
The .NET application domain provides partitioning within a single process in order that they do not directly share any resources. This prevents one application from affecting the
execution of another application. Application domains are flexible and allow individual applications to be started and stopped without affecting the other applications running in the same CLR instance.
The .NET Framework provides these hosts:
||An ISAPI: Internet Server Application Programming Interface filter that ships with ASP.NET loads the CLR and does the initialization necessary to handle the Web request. ASP.NET serves as a servlet engine.
||IE: Internet Explorer is the equivalent of having a JVM inside the browser to run Java applets. Internet Explorer has CLR hosting hooks for running managed code that is directly referenced in the HTML.
||When a managed application is launched from a shell, a small piece of managed code loads the CLR and transitions control of the application to the CLR.
The .NET Framework class library is a collection of reusable types that tightly integrate with the common language runtime. The class library is object oriented, providing types from which managed code can derive functionality.
Its utilization will reduce the time associated with learning new features.
The .NET Framework provides the capability to accomplish a range of common programming tasks such as string management, data collection, database connectivity, and file access. Categories of applications include: console, Windows GUI, WPF:Windows Presentation Foundation, windows services, APS.NET, and web services.
Guidelines and Best Practices
Information is provided for achieving interoperability between Visual Basic 6.0 and Visual Basic .NET. Portions of an upgrade to a project or application can be updated while other components remain in Visual Basic 6.0. The components left in Visual Basic 6.0 can then be upgraded at a later time.
There are limitations as to what the upgrade wizard supports in Visual Basic 6.0 language; explanations are provided regarding the support behind each process or suggestion. Issues that require manual
intervention are identified and explained.
Microsoft SOA Design Principles and Technologies
SOA needs to be built in order to create services with well defined business logic, appropriate granularity, and without excess interconnections in order to have an efficient and manageable
implementation. Service and applications map to processes and specified business outcomes across functional areas of the organization. Shared processes require that ownership be assigned in order that it can
be inventoried and managed.
Microsoft Phone 7 and Windows 8 Style Apps
Windows Phone manufacturers are required to provide a minimum of 256 MB of RAM for process execution. This threshold is a constraint that needs to be addressed when designing a web app for cross platform use on Microsoft Phone 7 handsets, Windows 8 style mobile devices, and porting
to open web or other commercial device platforms. Microsoft has set the launch time performance for the Windows Phone OS to terminate an application that takes more than 10 seconds to load. The use of outside content alongside the assembly is the recommended practice for pages
with images that are infrequently navigated to in an application. The images on these pages will not be loaded until needed. Localized strings should be placed in separate assemblies. If there are multiple pages in an application that a user can navigate to; but are not required at all times, they can be separated to different assemblies. The page can be referenced in the new assembly and loaded on demand. Removing the images, media, and XML files will minimize the size of application
assembly. They will remain part of the XAP deployment, but will not be kept in the application assembly. The amount of code being executed at load time also will slow down the application loading. Code can be minimized by putting it into Constructors and Loaded events. Code also
can be placed into an application event after the UI: user interface is drawn; the code can run on a background thread by handling the LayoutUpdated event and starting long-running processes in the handler.
Any code running on the main UI thread blocks the UI interaction with
the user until it is finished.