There are news from Acronis on their "introduction" to the P2V scenario, and the quotes only mean that this is definitely not unexplored territory for them. Acronis True Image is a tool that helps you create a full backup of your hard disks. It is intended to be used for backup and recovery of your systems, but for years now, lots of IT administrators out there have found an alternative use for it, P2V. Although it wasn't meant to be used with this purpose specifically, it can certainly help do the trick.
P2V stands for Physical To Virtual conversion and the idea is that in order to explode part of the benefits of virtual machines, you must not only be able to create new VMs from scratch but also take your existing workloads and move them into a virtualized environment and back.
In the past if Acronis True Image was the weapon of choice for you to complete this task, then there are good news for you. Acronis has announced that a new product called Full Circle will be released this year, and although it holds all of the benefits for image cloning that you know and like, this product is specifically intended to fit your P2V needs, and as its name hints it, your V2P (virtual to physical) requirements as well. It supports both 32-bit and 64-bit x86 hardware, virtualization software from VMware, Microsoft, Xen, Parallels and SWSoft, and Windows and Linux guests, which makes it a very complete and universal proposal.
This product will be made available in December, no word on pricing yet. Read more about Acronis Full Circle here.
Whether you travel a lot or just a few times per year, you have probably noticed the nuisance that it is dealing with the security checkpoints. Depending on the airport you are in, it can easily take you anywhere from 20 minutes to up to an hour (in my experience, MIA is the worst airport in waiting times for anything - even for a sandwich!). If you are flying in internationally to the US and you need to make a connection, there really is no way of knowing how bad the security checkpoints are to see if you are going to make your flight - until now.
TSA has published
this web page that lists the estimated wait time when going through security. By selecting a couple of check boxes, you can get detailed information on the average wait time to arrive at a particular gate at a particular time. This can really help you out beforehand in case you will miss your flight to reschedule a new one ASAP.
Stakeholders are people who will somehow be affected –positively or negatively-- by your migration project. In a typical migration, you will be able to identify stakeholders that perceive the project with great enthusiasm: they know that having their applications moved to newer technologies will improve their work, making them more productive as developers and even as end users. On the other hand, some stakeholders will be afraid of the results of the migration project. For example, some developers may fear that their skills will become obsolete in the new software platform, while some managers may worry about the possible disruption that the transition to the new system may generate, and some end users may want to minimize the learning curves that the new version of the application may mean to them.
In an organizational context, you can’t execute a project without taking stakeholders into account. Sooner or later, they will show up in your project to influence it according to their needs or preferences, which in turn may result in helpful support or frustrating disapproval.
The first step that you have to take regarding stakeholders is identifying them. Look around you and identify those people that in some way will be affected by the migration project. Make a list of identified stakeholders, then try to identify their interests and the way in which the project may cause an impact to each one of them.
A key word in stakeholder management is communication. You will be able to deal with the different stakeholders in your project if you learn how to communicate with each one of them, and this is what we will cover in the next few posts.
ASP.NET AJAX 1.0 Beta 2 (formerly code-named “Atlas”) is now available for download.
ASP.NET AJAX allows creating great responsive interfaces. I think this framework was previously called “Atlas” you might even find a document on the site describing how to migrate your Atlas applications to this release.
http://ajax.asp.net/files/Migration_Guide.doc Recently I reviewed the samples at
http://ajax.asp.net/ajaxtoolkit/. These are some of my impressions:
Accordion
à
à
AlwaysVisibleControl
Animation
I t allows to add effects to pages, the examples popups a region. You can do a lot more.
CascadingDropDown
This is very simple a common scenario where the combo box values depends of what you select on another combo.
CollapsiblePanel
It adds an widget to the panel that allow it to collapse.
ConfirmButton
Just for the typical are you sure!
DragPanel
Cool!! It lets you create windows that you can drag around.
DropDown
Add a nice style of menus
DropShadow
Mmm just add a shadow to your panels
DynamicPopulate
:/ it just like a way to generate something in the server with ajax. I really don’t get it a lot.
FilteredTextBox
Client side validations
HoverMenu
I think is handly is a way to display additional info for web page element and only show them when needed
ModalPopup
I like this!! It really lets the user focus on what you want
MutuallyExclusiveCheckboxes.
Not that sexy but useful in some cases when you have several check boxes options and some contradict the other.
NoBot
This control avoids entries by automated processes (BOTS)
NumericUpDown
The name says it all
PagingBulletedList
I have never needed this but looks nice
PasswordStrength
Nice. It gives feedback to the user indicating if his/her password is good enough
PopupControl
Nice!! It adds popability to any control. You can use it to make data entry easier
Rating
Jejeje Starts rating control
ReorderList
Is a list where you can drag the items to reorder them and the datasource will be updated
ResizableControl
Great! Resizable images and text containers. I suppose it can be also applied to other things.
RoundedCorners
:/ not very exciting just adds rounded corners to panels
Slider
Slider controls
TextBoxWatermark
Displays a message in a textbox before the user enters some text. After he enter the text the message disappears.
ToggleButton
Modifies checkboxes to use images
UpdatePanelAnimation
Adds effects to panels things like fade and Collapsing and background changes
ValidatorCallout
Very nice
Making a remote desktop connection to a server just to run a single application is a very common situation. It is true you can configure a connection to log on automatically and even launch the desired application. For example you could specify the username, password and Notepad as the application to launch.
But once you connect you get the same old Remote Desktop Connection window with just Notepad inside, which is still disruptive. Imagine if you could see a remote window as if it was running locally, resize it, move it and close it just like a regular window.
This feature is included in RDP 6.0, but if you want to try it without upgrading your system first, then you can access this article on the Code Project website. For developers out there this is a great introduction to the Remote Desktop Protocol, and for those who are not interested on getting to understand the protocol, you can just download the application from the author Martin Wickett on 2005.
Migration projects can be quite complex. When you take an application built on a legacy platform and port it to a new language, numerous changes have to me made to achieve the state of Functional Equivalence in the target platform. Because of this, it is recommendable to make Functional Equivalence the most immediate goal of the project, leaving any desired improvements to the application as post-migration tasks. This way, no additional bugs will be introduced due to new code or application changes.
Project leaders should always keep this in mind when directing a migration, since new requirements and improvements will add extra complexity and risk to the migration project. Exceptions to this rule are those improvements that are automatically performed by the migration tool, such as the conversion to Structured Exception Handling and the conversion to ADO.NET that are executed by the Visual Basic Upgrade Companion.
Application improvements can be done gradually once Functional Equivalence has been reached. In the case of migrations to .NET, applications can be improved in a step-by-step process to take advantage of the features provided by the target platform. Some of the improvements that are recommended as post-migration tasks are:
-
Code Refactoring based on the Object Orientation features of .NET.
-
Implementation of Web Services.
-
Changes to the User Interface.
-
Performance Testing and Tuning.
MSBuild
Microsoft has develop the Microsoft Build Engine (MSBuild). This is the new build platform for Microsoft and Visual Studio. It is an XML configuration (very similar to other build tools like ANT) It allows to orchestrate and build products in build lab environments where Visual Studio is not installed.
It is a great aid with other tools like CruiseControl.NET, relation that I will further elaborate in other posts.
The following is very simple MSBuils script
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup><OutputPath>.\bin</OutputPath></PropertyGroup>
<Target Name="HelloWorld">
<MakeDir Directories= "bin"/>
<Csc Sources="HellWorld.cs" TargetType="exe"
OutputAssembly=".\bin\HelloWorld.exe" />
</Target>
</Project> |
This sample shows the basic structure of an MSBuild. This is a very basic script maybe not very useful, but general scripts will be made up of Several Targets, Properties and some dependencies between them.
Properties
To define properties just define your tags inside a <PropertyGroup> Tag. If you want for example to define an OutputPath property just do something like:
<PropertyGroup><OutputPath>.\bin</OutputPath></PropertyGroup>
And to use it just reference it as $(OutputPath)
Groups of files
You can specify groups of files with the ItemGroup tag
<ItemGroup>
<File_Image Include="$(OutputPath)\Image.jpg"/>
<cs_source Include=".\*.cs" Exclude=".\Foo1.cs" />
</ItemGroup>
And you will reference them like @(File_Image) and @(cs_source).
Dependencies between Targets
<Target Name="CreateOutputPath" Condition="!Exists('$(OutputPath)')">
<MakeDir Directories= "$(OutputPath)"/>
</Target>
<Target Name="FooCompilation" DependsOnTargets="CreateOutputPath"
Inputs=" Foo1.cs"
Outputs="$(OutputPath)\Foo1.exe">
</Target>
Today, while creating the final image for our SCVMM (System Central Virtual Machine Manager), one of the guys in our team stumbled into a problem in which the SCVMM (which I will refer to as Carmine from now on), was refusing to start up even though we had met every pre-requisite it had listed. We were completely baffled, the error given was:
Access denied while contacting the Virtual Machine Manager server. The credentials provided do not have sufficient privileges on localhost.(ID: 1605)
The account had full admin privileges, so what could be wrong? The machine had joined our domain, how come it did not have the right credentials? Well, after a while Jose suggested to check if the DNS were set to that of the domain controller (see previous entry regarding this) and indeed that was the culprit. After setting the DNS severs, Carmine started up without any problems.
Are you new to Virtualization? Do you want to learn the best ways to manipulate Virtual Server using the Virtual Server API? Do you want to learn about future Microsoft Virtualization technologies such as Carmine and VT support in Longorn? Well, today is your lucky day.
In its continuing effort to provide customers with the latest technology, Microsoft has launched the Virtualization Events lab series. During 3 days, you will learn everything you need to know in order to code your way through Virtual Server. Please bear in mind that the lab is not targetted for the IT Pro, but instead for programmers who want to learn the latest tips and tricks without having to read through thousands of pages of documentation.
Virtualization is a very hot topic, and I would not be surprised if the events filled up very quickly, so act fast if you want a seat reserved!
On November 6th, Microsoft had a big announcement to make. This announcement is only the beginning of something that will, without a doubt, become a huge success: the VHD Test Drive program.
The program’s idea is that a user can download a pre-configured VHD that has and operating system already installed. The idea is evolved a bit more in the sense that the VHD not only has an OS, but also has some kind of pre-configured environment in order to test out a particular product without the hassle to go through difficult setups.
For instance, if you want to test drive Exchange Server 2007 quickly and effortlessly, just download this VHD and you are good to go. Want to install something on Windows Server R2 without having to install the OS? This VHD right here will help you accomplish your task.
There are 4 VHDs available for download, the entire list is summarised below:
For the official press release, click here.
There are times when you would want to Sysprep a Windows image and get it ready to join a domain and start creating user profiles. But what if you want to control the configurations and contents of those future profiles?
Windows offers a location for a Default User Profile. It is a hidden folder normally located in %SystemDrive%\Documents And Settings\Default User. To create a default profile all you need to do is log in to the machine, make all the changes you need and then log off. Once you are done copy all the contents of your profile folder to the Default User folder. You will need to do this offline or by using another account.
Profiles folders contain a file called NTUSER.DAT, this file contains all the configurations that are located in the HKEY_CURRENT_USER registry entry when the respective user logs on.
In general all of this works for future profiles even if you are not using Sysprep. But when you do use Sysprep there is a particular case that is not contemplated here. When you set the machine to log in the first time using a particular user account, the contents of that local profile will be copied to the Default User Profile that first time. In those cases you should set the defaults using that account.
One of the best features of the Visual Basic Upgrade Companion, Enterprise Edition, is the fact that it transforms your ADO code into ADO.NET. The Companion converts most of ADO features automatically, and it work correctly even if you choose to generate C# code.
One detail, though, is that the generated code by default uses the SQL Client for ADO.NET connections. This brings huge performance increases to the application, but we’ve run in to the situation in the past where the original datasource was not SQL Server. We’ve seen applications that used the Jet Database Engine, which is no longer supported by the latest version of MDAC, and is definitely not supported by ADO.NET’s SQL Client.
The solution for these scenarios is to use the Microsoft Access Upsizing Wizard. So far we haven’t seen any issues when upsizing the data, but there are other features that are not supported by the wizard. Once you upsize your database into a SQL Server installation (it even works with SQL Server 2005 Express Edition – which is great news for smaller installations), the final step in your application is to update the connection string used. The easiest way to get a hold of the new connection string is to create the connection inside Visual Studio 2005, and then copy the Connection String from the connection’s properties:
It is also important to mention that this and most other behaviors can be customized through our consulting services. We can also carry out the complete migration process as well.
The self-service portal is one of the best features of System Center Virtual Machine Manager (SCVMM – I have to say I can’t get used to the new name – Carmine still sounds more familiar), as it allows administrators to define policies for creating Virtual Machines, and then users themselves can create new VMs that comply with the limits set by IT (i.e.: Guest OS, amount of RAM, hard drive, etc). This greatly improves the efficiency of IT departments, and allows end-users to take control of the server and workstation provisioning process into their own hands.
During the development of our labs, we run into several issues with the Self-Service portal of SCVMM . After going through all the process to create templates and hardware and guest profiles, we kept running into issues with the template being disabled in the self-service portal. Well, it turns out that the issues had nothing to do with SCVMM itself, but with the configuration on the target Virtual Server. Here are some points in the Virtual Server configuration you should check if you ever run into similar problems (the error messages are not that descriptive):
- The host have enough RAM and disk space for the new VM
- The host must have a default path for Virtual Machines. You can check this one on the web management console of Virtual Server, under Server Properties->Search paths->Default virtual machine configuration folder.
- The host must have sufficient network adapters to support the amount specified in the template.
Our test Virtual Server installation, the default path was missing. Be sure to check these points out if you ever run into a similar situation!
Registration for the Virtualization labs we will be teaching next year is now open. The program will run from December, 2005 to May, 2006, and we will be presenting the content in Redmond, Spain, and several countries in Asia.
The labs are 3 days long, and in them we show you how to leverage the features of Virtual Server 2005 R2 SP1 from a developer perspective. You’ll learn how to script common management tasks, how to use Virtual Server 2005’s API to manipulate virtual machines and develop your own management applications, and how you can setup the System Center Virtual Machine Manager (a.k.a. Carmine) to manage Virtual Server installations.
You can see the complete schedule and sign up for the events at http://www.virtualizationevents.com/ .
Developing XSL can be sometimes cumbersome and tricky. Especially if it is
something you don’t do every day.
Luckily Visual Studio 2005 now provides the an XSL debugger.
To debug an XSL open Visual Studio and open a Project go to the File Menu \
Select New File and Create a New XSLT file.
Write your XSL file.
You can set breakpoints just by clicking on the left side of the editor just
like you do for VB.Net of C#.
Now to test it right click on the editor and select properties:
In the properties for the XSL type a name on the
The XML menu provides two options:
The Show XSLT output will run the complete XSL and let the XSL Output in a new
window. The output by default is not formatted. You can go to the
Edit\Advanded\FormatDocument option to format it.
The Debug XSLT option will start the debugger and stop in the breakpoints you
specified.
Press F10 or F11 to dig into the file. You can use the call stack windows and
even the vales for variables in the Quick Watch and Watch Windows.
You can write XPAth Expression in the Quick Watch Dialog.
There are three special values that are handy when debugging:
last() is the context size, position() is the position, or index
number, of the context node, relative to the context size; and
self::node() is the value of the context node.
And enjoy your debugging experience ;)
A couple of weeks ago I made a post about pre-configured virtual machine images. Well, it turns out that the program is now official, and it is called VHD Test Drive. You can read about it in this press release. With this program, you can download virtual machine VHDs that contain pre-configured Microsoft’s server products, so you can try them out easily. Third party support for the program is expected later. From the press release:
These virtual machines, which are provided in Microsoft’s virtual hard disk image format, are pre-built and pre-configured so that they can be downloaded or distributed for easy setup and evaluation. This allows customers to evaluate software in a fraction of the time it usually takes, such as setting up SQL Server 2005 in minutes instead of hours.
The VHD Test Drive Program is a first for Microsoft software and the more than 7,000 software vendors who can now deliver pre-configured applications within Windows Server-based virtual machines to their customers. Today the program launches with the latest versions of Windows Server 2003 R2 Enterprise Edition, SQL Server 2005 Enterprise Edition SP1, Microsoft Exchange Server 2007 (32-bit beta) with Microsoft Office Live Communications Server 2005, and Internet Security & Acceleration (ISA) 2006 Standard Edition. Partners and customers can expect to see additional Microsoft software added to this program.
You can check out the press release here, and read more about the program on the VHD Test Drive page.
After more than 3 years of managing migration projects here in ArtinSoft, I have decided to start this Project Management blog. In this blog, I would like to share some of the experiences and knowledge that we have accumulated during this time on how to deal with the complex task of leading an application migration project. I hope that the information posted here can be useful to Project Managers and Development Leaders that are in charge of migration projects.
Please stay tuned!
Even though there are not many Macs at Artinsoft (2, I believe :) this might come in handy for someone who needs an efficient remote desktop connection. Even though Microsoft makes a
RDC client for Macs, running it on an Intel mac can be a bit of a drag. Rosetta apps (applications that do not run natively on Intel macs) are kinda sluggish when launching. Also, if you need to run various instances of RDC, you would need to make copies of the app itself (or use
this utility).
Luckily, there are various free alternatives out there that work like a charm. My personal favorite is
CorD (cocoa remote desktop). It is lightweight, fast, free, and offers tabbed windows for various simultaneous connections. The only con I have found so far is that it does not support copy paste.
You can also use
TSClient, which has more features than CorD but unfortunately requires the installation of x11. While this may not be a big issue, some people are not very fond of running programs under x11 for performance reasons. TSClient is the client that most resembles the official Microsoft client and it even offers several features that the official client does not have.
The race between Microsoft and VMWare for the virtualization space can only offer benefits to the end user. The close competition will push the limits of both Microsoft and VMWare in offering the best of each other. Point in case is the (beta) release VMWare's Converter.
The VMWare converter makes the process of moving a physical machine to a virtual a painless process. So far in our tests, we've managed to hack our way with some
unconventional methods, but these take a lot of time. The VMWare tools offers a new level of Physical to Virtual (P2V) conversion by having a manager that can queue operations for this process. It is fully scriptable as well, which can only simply and make the whole process more efficient for system administrators.
Microsoft is not falling behind in this area. The Virtual Machine Manager has plans for not only fully automating P2V conversions but guiding you on the best Virtual Server where the new physical machine can be. Unfortunately, this is not currently supported at the beta stage that the product is right now, but from demos I have seen I am sure it will be a sure contender to VMWare's offerings.
For more info on VMWare's Converter visit
this page and for Microsoft's Virtual Machine Manager info, check
this site out.
Artinsoft provides means to migrated Java Applications to .NET. However as with many medium size to large applications it could be a complex task.
Sometimes due to cost or time restrictions just a portion of the system is migrated. The migration team analyses the code and determines which are the "connection points" or the areas where both systems are connected and therefore, means must be develop to provide communications between the Java and the .NET world.
There are many alternatives.
If you're facing this problem I will recommend the following references:
Microsoft .NET and J2EE Interoperability Toolkit by Simon GuestHe also published an interesting
article where he recommends a products like
Javena, and
JNBridge You can also check out
JIntegra