kdmurray.blog

The crossroads of life and tech

Visual Studio ‘Rosario’ — CTP

I just read on Jeff Beehler’s blog that Microsoft has released a CTP (Community Technology Preview) of the next version of Visual studio… and I don’t mean VS 2008 “Orcas”.

Virtual PC images of the new VS install were made available from the Microsoft Downloads website on August 3rd.  I’ve included a direct link to the download page.

A bit of idle speculation…?  Microsoft may have features in store for Rosario that were originally been slated for Orcas, but were bumped due to the changes in the Windows Vista feature set… WinFS anyone?

I haven’t had a chance to read over the whitepaper yet, but It seems strange to me that they would be so far along with Rosario when Orcas is still several months away from RTM.

Have a look through Jeff’s post for more details on what precisely we can expect from VS ‘Rosario’.

PowerTray 0.9 Beta Released

Well after several weeks of trying to work on things (and 10 days of waiting for SourceForge) I’ve managed to get the first Beta-build of PowerTray published and available for download.

The initial version has a few interesting features:

  • Plugin-based architecture to allow for future feature development
  • XML configuration file to allow for assignment of Hotkeys
  • Plugin for Google Search
  • Plugin for Wikipedia Search (english only)

This project can be downloaded from the SourceForge project site. Please leave your comments and thoughts on future enhancements.

Silverlight – Microsoft takes on Flash

Microsoft has recently released Silverlight 1.0, a .NET-based competitor to Adobe’s Flash animation product.

This is an interesting strategic move as Microsoft is moving into what is clearly established territory for the Flash brand.  Microsoft is extending the reach of the new Windows Presentation Foundations (WPF) to the web with a version being called WPF/E (WPF/Everywhere).

I’ll have a more in-depth look at Silverlight in the next couple of weeks.

PowerTray

I’m working on a new side-project which I think will be fairly useful for all you Windows users out there.  It’s called PowerTray.  The idea behind it is to have an application which will allow you to do many of your often-repeated tasks quickly and easily and at the touch of a hotkey.

That in and of itself is nothing groundbreaking… but what PowerTray also has is an open plugin API which will allow other developers to create PowerTray plugins and continue to make the application more useful over time.

I’m still working out some of the bugs with the plugin architecture, but I will continue to post information as I move forward with the project.

Enterprise Dillema – J2EE vs. .NET

These two platforms have been fiercely competing for the lucrative “Enterprise” business customers since the .NET Framework made it’s Beta debut in late 2001. Since that time the debate has raged on in organizations of every size and in Internet forums of every description: Which platform is the best platform?

Pundits from all sectors of the computing and business sectors chose a side early on and began to incite one of largest technological debates in the history of computing. Proponents for each side have argued their case both for their chosen platform, and against the other. The arguments which have been put forth supporting both the Java/J2EE platform and the C#/.NET platform have been very strong. Conversely, the arguments against each platform are often steeped in half-truths, myths and hearsay.

Whitepapers on the subject are almost exclusively published from a source which has a vested interest in the success of one technology or the other. “Evidence” from both Sun and Microsoft has abounded over the years, though in recent times has died off significantly. Both companies have moved to promoting their individual platforms as pieces of a larger technological and customer-centric model. The reason? The interoperability of the two technologies has grown in such away that today’s service-oriented architectures now focus on what information needs to be exchanged, and not how either end of a transaction exchanges its information. That being said, each platform has its strengths and there is often a choice that can be made to use one or the other depending on the project at hand.

In an age of technological homogenization it is critical that a business spend its time finding the fastest way of solving its problems in the most sustainable fashion for the individual solution. At this point in time, both Java’s J2EE platform, and Microsoft’s .NET 2.0 platform are more than capable of supporting and sustaining enterprise-class applications in almost any business environment. Both technologies have been successfully implemented in almost every tier of the business environment, and each has also failed miserably in these same tiers. So if technological platform is not the determining factor in what makes a business successful what is?

One of the most basic and fundamental concepts in computing deals with the input and output of information from a user, or other source. It tells of a fundamental truth which carries over to the development side of the computing world: Garbage In, Garbage Out. Just as erroneous or unexpected input into a program can produce undesirable results, lack of structure or care in implementing an application will eventually produce sub-standard and unsustainable results. The kicker? It doesn’t matter which technology you choose. Bad code and substandard applications will fail just as disastrously in a J2EE environment as they will in a .NET environment (or ColdFusion, or PHP, or Python, or Perl or…)

No matter which technology is chosen, for any type of application it’s critical that the appropriate amount of thought and planning be put into place. If the application is a quick band-aid and only needs to be around for a couple of months then it probably doesn’t pay to spend weeks designing it (not to mention that you probably need to implement it immediately). But if the project is being undertaken as a large-scale project which will have hundreds or thousands of users it will be a critical piece of business infrastructure for several years. In this case it’s important to make sure that it will last for the time required and it won’t be a constant source of maintenance and frustration for the enterprise.

So what are the strengths of the two platforms?

Java has been regarded for several years as one of the best Enterprise-class development platforms for many reasons. The mechanisms exist, and were built-in from its earliest days to allow for robust n-tier development models. The large number of open-source Java projects in the development community has provided low-cost (or no-cost) tools for producing Java applications, and the continued support of vendors like Sun, BEA, IBM and others has provided robust infrastructure capabilities upon which these Java solutions can be deployed. The cost? Secure robust applications take more time to plan, design and develop.

The Microsoft.NET platfom was put forward initially to be the epitome of Rapid Application Development engines. The Visual Studio IDE that Microsoft sells along with its freely available framework provides an intuitive IDE with tools designed specifically for quickly designing and deploying applications. Most of the supported environments are Windows (though some Linux support does exist). The downside? Building and deploying quickly often leads to sustainment problems over the long term because of a lack of time spent on planning and design.

In an effort to make this article a bit more useful, let’s see if we can come to a determination of when it might be appropriate to choose one particular technology over another. There are several scenarios in which both the Java/J2EE platform and the C#/.NET platforms would each have their particular strengths. Obviously not ever scenario in the business world will fit into the cases outlined below, but these should serve as a pretty good guide as to what would work best under particular scenarios.

First off, let’s make some assumptions:

  1. You have a team of 60 people who can work in either platform, some are Java experts, most are comfortable with C#.
  2. Both Visual Studio, and a comparable set of Java development tools are available to the team.
  3. The corporate standard for Enterprise-class development is Java, and has been since 2000 (prior to the advent of .NET)

Scenario #1

A department within the company is going to be inundated with customer orders because one of the company’s largest customers is giving up relations witha competitor, and moving their accounts to your company. Over the course of the next 2 months, the group will face about 3000 new orders, all of which will be virtually identical. The group normally processes about 2000 orders a month, so this is a major increase. The first of the orders will begin arriving in about 3 weeks.

Because the solution must be delivered in a very short time period, .NET would seem to be an obvious choice. Get the application designed and deployed to help with these incoming applications. But what about the long-term supportability of the application? Since it’s only going to be around for the next 12 weeks, that’s not long enough to be a major concern. Platform recommendation: .NET.

Scenario #2

A group has approached your team about creating a new knowledge-management solution for their team. They are having trouble ensuring that the information their employees have in their heads gets transferred to new people when they leave the company. The requested solution is a web-based encyclopedia of knowledge for the sales teams. They don’t know of anyone leaving in the next couple of months and they expect the solution to last for the next 2-3 years.

This is a long-term project and needs to be worked into the longer term strategy of the organization. Working in concert with the company’s planning and architecture specialists, the application can be worked into the company’s existing Java infrastructure. Maintenance of the application would be handled by the company’s regular development and support teams.

Scenario #3

A group has requested an application that the sales people can use to enter information about a customer sale to help them create the accounts, or enter the customers orders. The catch is that the system needs to work on their laptops whether or not they are connected to the network. The application is expected to be around for a while, if it is successful. In addition a web-portal will be available for the inside sales teams to enter their customer orders.

In this case there is a clear requirement to have a client application, which is something the .NET framework is well suited to. Having the client constructed using Visual Studio is a logical first step. The web portal could be integrated into the sales peoples’ existing tools and would most likely be built in the Java Framework. Finally, since both the application and the web portal would share similar functions, the bulk of the business logic can be extracted into a proper service-layer. Since the application would be around for a fairly long time, all of the components should go through proper design and build processes to ensure their robustness and stability. Combining the two platforms ensures the best use of time and energy, but still provides an effective long-term solution.

At the end of the day, business requirements and not technical prejudices should dictate the type of technology used to develop an applications.  There is no silver bullet.  Anyone who thinks that any one technology can effectively solve all their technical problems will find themselves with projects running over time, over budget or just plain failing.

Businesses who can put aside their egos and political agendas will be far more successful than those who continue to live in the business climate of the 1980s.

Free Download: Microsoft XML Notepad 2007

Microsoft has recently released an updated version of its XML Notepad. This is a fairly basic tool which provides a tree interface to edit XML documents which is easier to understand and work with than hacking through the file using Notepad or even Visual Studio.The interface takes a bit of getting used to at first, but the colour-coding of the attributes makes it fairly easy to quickly distinguish between types of nodes in the file, and the tree structure provides a more intuitive view of the data in the file. Though it doesn’t have all the features of a more complete product like Altova’s XML-Spy, the price is right. If all you want (need) is a basic XML editor, XML Notepad may be just what the doctor ordered. This is just another in a series of free releases that Microsoft has targeted at the software development community. Beginning with the Visual Studio Express Betas in 2005, carried forward with the full releases in 2006 and the use of the open-source Cassini web server in both Visual Studio 2005 and the Visual Web Developer Express 2005. It has been interesting to see some progression in Microsoft from a company who would aggressively defend and copyright every piece of software they ever wrote, to a company who is willing to share strategically valuable tools with the community.  Obviously it makes good business sense to get your development tools into the hands of developers before they start that next job; but the optimist in me hopes that this is a continuing trend we see from the giant over the coming years.

Open Source – Nintendo Style

Well it certainly didn’t take long to start some new and interesting open-source projects geared around Nintendo’s new darling system. The Wii has inspired the folks over at WiiLi.org to create a version of Linux to run on this next-generation console.

Some of their first projects are to understand the Wiimote and the other hardware associated with it. To that end, they have created hardware drivers for a number of different platforms including Linux (i386), Windows and Mac OS X (and Darwin of course ;) ).

50 years of programming history

For the geek in all of us…

I stumbled on a couple of articles recently pointing out the history of programming languages.  What originally pointed me at this was an article in Nikhil Kothari’s blog.  He pointed to a chart on O’Reilly’s website which listed out the history of programming languages from the 1950′s right through to the present.  A copy of the chart is availble for download as a PDF.  It’s amazing to see which languages influenced others… and how old some are.  I personally had no idea that Ruby had been around since February 1993  (Same approximate time as AppleScript).

Check it out… it’s worth a look!

There’s also a good textual history of programming languages in Wikipedia, not quite as visual, or as complete, but also interesting.

Microsoft quietly launches .NET 3.0

.net frameworkWith much less fanfare than the previous version Microsoft released the latest version of the .NET framework earlier this month at the TechEd Europe developers conference in Barcelona. The reason for the low-key launch? This release is a renamed, repackaged version of .NET Framework 2.0 with the new Windows Presentation Foundations (WPF, formerly XAML), Windows Workflow Foundation (WWF) and a few other features of the Windows Vista feature set we’ve been waiting on for some time.

This new feature set has been known to the community under many names, and when rumours of .NET 3.0 started to circulate they seemed to have come out of nowhere. Once it was explained that this version is really an extension of .NET Fx 2.0 many of the tensions began to subside.

Any application which compiles and runs against .NET 2.0 will run with .NET 3.0, so feel free to add in these new features, but don’t fret. This won’t be as significant an upgrade as the 1.1-2.0 transition.

For more detailed info, check out the .NET Framework site, and the .NET 3.0 Framework community site.

ASP.NET Ajax: Intellisenseless

Scott Guthrie recently posted a bit of a resolution for an issue that has appeared in Visual Studio 2005 for people using the new AJAX (Atlas) components. If you’ve been trying this package out, and have noticed some intellisense missing, have a look at the entry listed below. There are two quick workarounds to put in place, either of which will clear up the problem until VS2005 SP1 ships.

View the Original Post Here

Thanks Scott!