Delphi 2007 Handbook




Essential Pascal




social web book








May 21, 2008

Vista and Developers

A couple of recent articles covering the relationship between Windows Vista and developers are worth reading... and commenting.

Over the last two days, I read a couple of articles covering the relationship between Windows Vista and developers. The first is the result of an Evans Data poll, summarized here by Computer World. The (apparent) result is that "8% of the 380 developers surveyed are writing applications for Vista, while 49% are still writing applications primarily for XP". I say apparent because it is not clear to me what it really means to write applications for either Vista or XP. Are we talking Windows API here? Or are we talking about using a specific version of the .NET framework?

The second article makes it somewhat clear people seems to talk about the latter. In the PC World article "Coders tell why they are avoiding Vista"  a few developers (including Julian Bucknall, that many of you know for his Delphi books and for his current role at Developer Express) tend to equate WinForms development with XP development and WPF development with Vista development. Beg your pardon, but I tend to disagree!

Whether you like them or not, most of the new features in Vista, from Aero graphics to the new TaskDialogs, from the brand new Desktop Manager (that changes Windows painting from the first time ever) to the resource protection and dreaded UAC, are totally unrelated with and not supported by Windows Presentation Foundation. This is a fact, not an opinion.

Microsoft was so hard at work pushing WPF and other .NET technologies, that they almost forgot about supporting Vista native features. It looks almost like the Vista team and the .NET team never talked. In fact, Vista comes with no prepackaged .NET applications, with the only exception of the Media Center (in the editions of Vista sporting it, of course).

Where were Microsoft development tools focused on Vista when the OS was launched? The C++ MFC classes were updated with a long delay, WinForms specific support for Vista is minimal... the only exception is the Delphi VCL, which has a good (not perfect, I know) support for Vista. What's nice is that most VCL solution will make your applications still backwards compatible with XP, while supporting some of the specific Vista features at the same time. This should have been Microsoft paths as well, but it apparently wasn't.

The PC World article also cover Microsoft graphic push, saying it has little to do with business applications. Certainly in the light of Vista's problems, the quote "More attractive apps are more user-friendly apps, says Microsoft, and that translates into increased user productivity" seems a little off place. The same graphics theme is the focus of the non-tech thread covering the article, which is were I noticed it.





 

11 Comments

Vista and Developers 

It is very nice but Windows Presentation Foundation 
is the future of Microsoft applications such as 
Silverlight 2.0 (!= Flash), XBAP (XAML Browser 
Application) and WPF Rich Client Applications. VCL 
and WinForms are out of date. Why? Microsoft is 
working on the Acropolis project (WPF) now and will 
give to the developers modern design patterns for 
WPF. But, for example these aren't in VCL:

1. Templating

   - ControlTemplate
   - DataTemplate
   - DataTemplateSelector
   - etc.

2. WPF "XAML" Data Binding

   != VCL DBControls
   != WinForms Data Binding

3. Command pattern (!= VCL TAction)

   It is worth reading this article:
   
http://www.microsoft.com/belux/msdn/nl/community/colum
ns/jdruyts/wpf_commandpattern.mspx
    
In addition, designers could work with MS Expression 
products (without developers). It is time to use the 
new MS technologies such as ADO.NET Entity Framework 
(+ LINQ to Entities), ADO.NET Data Services 
(Astoria), Synchronization Services and so on. 

Microsoft .NET is the best solution if someone want 
to develop for Windows. For example, Delphi for .NET 
was a good step... but without .NET 3.5? Of course, I 
understand the differents between companies. 
Otherwise, I like Delphi and Visual Studio too.
Comment by daywalker on May 22, 01:56

Vista and Developers 

I work for an engineering company that sells hardware
boxes. Engineers that install these hardware boxes
need my Windows tools to set them up. The company
makes money selling hardware, not software. What I do
is a necessary cost and constantly modifying perfectly
good tools so they play ball with Microsoft's latest
inspiration is money down the drain. This is a common
dilemma in the engineering world.

For this reason I use Delphi Win32 D2007 and probably
shall for quite some time. The move from the DOS
Turbo/Borland Pascals to Delphi went remarkably
smoothly and I hope this continues (altho' simple
expedients, like only buying libraries with source, or
sticking to .INI files instead of using the registry,
helped a lot).

When Microsoft translates its Office suite to .Net, we
will know at least those core parts of the runtime
will not change (much) over the long-term. Until I
have that assurance, I shall continue to write to the
same interface Microsoft's crown jewels run on.
Comment by delfi phan on May 22, 12:18

Vista and Developers 

"It is time to use the new MS technologies such as 
ADO.NET Entity Framework (+ LINQ to Entities), 
ADO.NET Data Services (Astoria), Synchronization 
Services and so on"

Oh yes. Until MS decides that POA.PEP is better than 
ADO.NET, LINR is better than LINQ and of course you 
have to rewrite everything and buy a lot of new MS 
software...
Comment by Luigi D. Sandon on May 22, 14:38

Vista and Developers 

Some years ago, I asked a Microsoft Software Architect
about their plans to migrate Office to .Net. His
answer was "Why would we ever do that? There is no
business case for doing that."

So I agree with delfi phan; so long as the Office team
does not see any compelling reason to move to move
their existing software .Net, why would anyone outside
of Microsoft feel otherwise.

Should we ever conclude our customers long for more
"bling" on the user interface, the Win32 API offers
ample opportunity to add this (what do you think WPF
uses?) VCL and third-party components can be used
without having to completely rewrite existing forms.

Similarly, as long as the majority of customers using
our software is using it on Windows XP, why would we
develop for Vista? The only thing we do is make sure
it runs on Vista as well as XP.
Comment by Victor van Uitert [] on May 22, 15:19

Vista and Developers 

"Oh yes. Until MS decides that POA.PEP is better than 
ADO.NET, LINR is better than LINQ and of course you 
have to rewrite everything and buy a lot of new MS 
software..."

where? When? .NET is not a Visual Basic. It is a new 
platform of Microsoft instead of Win32. Moreover, 
Delphi days at Microsoft :): 
http://www.microsoft.com/hun/msdnszakmainap/080602/  
Otherwise, I have some friends who are working at 
Microsoft now and there are very serious plans, for 
example: www.livemesh.com (it is a beautiful plan). 
In addition, there are .NET APIs for Live services!
Comment by daywalker on May 22, 16:58

Vista and Developers 

@daywalker: perhaps you could highlight the relevant
part in the Delphi Days at Microsoft page; my
Hungarian stops at egészségedre.

Not wanting to hurt your feelings here, but I suspect
you may be somewhat young or perhaps not have had much
 real-world project experience yet. It will come. 

Once you have swallowed waves of industry hype (and
not only from Microsoft and Borland/CodeGear), then
you, too, will attain a healthy level of
self-preserving scepticism and will learn to adjust
your coding practices accordingly.
Comment by delfi phan on May 22, 17:41

Vista and Developers 

Are you kidding? Of course, I also understand your 
feelings but these are facts. On Microsoft platform 
there isn't another solution and I believe in 
Microsoft's innovation. In my opinion, this is 
healthful.

"I suspect you may be somewhat young" - Indeed, but 
it is a bad reason. I've been working as developer at 
our firm for 7 years. So I'm not a beginner. In fact, 
at the moment we are working on our own partner 
management with .NET 3.5 and Visual Studio. More 
details: www.partnerinfo.EU

This is the real World! :)
Comment by daywalker on May 23, 10:56

Vista and Developers 

.NET is an abstraction. It adds convenience. But it is
the real world only for as long as Microsoft chooses
it to be.

The true real world is the Windows API (and the
processor native code). Everything relies on it, even
.NET. Microsoft cannot mess with it, as 3 previous
posters have made clear.

Not intending this to become a flaming war, so I
promise this is my last posting on this topic.
Comment by delfi phan on May 23, 17:05

Vista and Developers 

Debating about WinForms/Win32 vs. WPF is silly.  
Anyone that's been in the programming game more than 
a few years knows that abstractions come and go as 
well that multiple abstractions/frameworks are almost 
always around longer than most people would like.

Using WPF vs. WinForms vs. Win32 has *nothing* to do 
with developing for Vista.  Developing for Vista 
means following application guidelines for where 
files are installed, including the proper manifests, 
proper application icons, proper fonts, an 
understanding of privileges, etc.

My biggest issues are the developers that aren't even 
trying to make their applications Vista-compatible, 
especially when a lot of the things that would make 
them compatible are trival.  For example the next 
developer that stores application data in the same 
folder as the exe should get smacked around.  Or what 
about applications that always assume Admin 
privileges?  XP let coders become very, very lazy.
Comment by Shawn Oster [http://blog.enginefour.com] on May 28, 21:32

Vista and Developers 

@Shawn: "For example the next 
developer that stores application data in the same 
folder as the exe should get smacked around."

Allow me to disagree. I think it is a basic courtesy
to users to permit them to run their PC how they see
fit. It is a "Personal Computer", after all.

If at all possible, I supply single .exe programs that
users install into a directory of their choosing. How
many PCs have multiple users, for goodness sake? On
the contrary, many users own multiple PCs!

It annoys me when I install a demo version of a
program, only to watch helplessly as it installs all
manner of runtimes, dlls into the system directory,
registry entries, services, live updates, links into
every conceivable corner, etc., and not know what it
will leave lying around when I remove it again. Lazy?
Our company employs people that do nothing else but
build and configure install programs for our products.

I have yet to meet a user that fully understand what
is happening on her/his PC anymore. I sure don't, and
I'm a programmer of over 20 year's experience on
Microsoft OSs.
Comment by James Brozier on June 7, 13:21

Vista and Developers 

It's very simple. Vista right now is worse system, 
than XP because of MS doesn't care about real people 
and companies. They just do business.
The worst thing, IMHO, is that Vista doesn't have 
backward compatibility.
I have Vista Ultimate Edition.
My own experience:
1. Our clients lost some medical data (tests) about 
their patients because MS desided not to let the 
users to write to Program Files. Instead they put 
these data automatically to Virtual Store. But they 
let to read the data from Program Files. So we got 2 
copies of the data. And we didn't see the problem for 
a while. MS informed on they site that they just did 
it to make developers to develop "right" programs. 
They promised to swith off this rule in a year when 
developers would be ready.
2. After installation of SP1 our programs stopped 
working. They just don't start up. These programs 
work on different versions starting with Windows 98 
and up to XP. The programs have up to several 
hundreds thousands lines of the code, including forms 
and conditional compilation. I found out that is 
something with the data (probably ADO). 
3. The behavior of the system constanly changes up to 
MS. It's just unreliable.
4. MS requires different drivers for Vista. For 
example, during installation of Bluetooth drivers for 
external device it has two different options for XP 
and previous versions and for Vista explicitly (the 
user supposed to choose).
Comment by Dmitry on July 17, 23:54


Post Your Comment

Click here for posting your feedback to this blog.

There are currently 0 pending (unapproved) messages.