473,385 Members | 1,645 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,385 software developers and data experts.

Orcas C++ - still monolithic headers?

After reading the good news concerning STL/CLI in Orcas C++, the next
question is:

Does anybody know whether Orcas C++ still uses monolithic header files
containing all definitions and declarations, or will there be "real
header files" containing only declarations?

Richard
Oct 6 '06 #1
5 1546
R.Kaiser wrote:
Does anybody know whether Orcas C++ still uses monolithic header files
containing all definitions and declarations
Yes, monolithic header files in the Sep CTP.

Tom
Oct 6 '06 #2
"Tamas Demjen" <td*****@yahoo.comwrote in message
news:uU**************@TK2MSFTNGP04.phx.gbl...
R.Kaiser wrote:
>Does anybody know whether Orcas C++ still uses monolithic header files
containing all definitions and declarations

Yes, monolithic header files in the Sep CTP.
I assume you're talking about Windows Forms designer generated classes?

Personally, I wouldn't expect that to ever change - but who knows :) The
problem is, the designers are not maintained by the C++ team, so getting the
designer to support a separation of declaration/definition requires getting
another group to do work that's of no benefit to their own product.

-cd
Oct 6 '06 #3
Carl Daniel [VC++ MVP] schrieb:
"Tamas Demjen" <td*****@yahoo.comwrote in message
news:uU**************@TK2MSFTNGP04.phx.gbl...
>R.Kaiser wrote:
>>Does anybody know whether Orcas C++ still uses monolithic header files
containing all definitions and declarations
Yes, monolithic header files in the Sep CTP.

I assume you're talking about Windows Forms designer generated classes?
Yes.
Personally, I wouldn't expect that to ever change - but who knows :) The
problem is, the designers are not maintained by the C++ team, so getting the
designer to support a separation of declaration/definition requires getting
another group to do work that's of no benefit to their own product.
Somewhere (I can't remember where) I read of an announcement that future
versions of Visual C++ allow you to write classes that are split on
several source files, just like C# partial classes. If you split the
currently monolithic Forms class into one file with the declarations and
into another file with the definitions, these would be traditional
interface/implementation files.

Or did I get something wrong?

Thanks
Richard

-cd

Oct 6 '06 #4
Carl Daniel [VC++ MVP] wrote:
I assume you're talking about Windows Forms designer generated classes?
Yes, I assume that's what the original poster meant.
Personally, I wouldn't expect that to ever change - but who knows :) The
problem is, the designers are not maintained by the C++ team, so getting the
designer to support a separation of declaration/definition requires getting
another group to do work that's of no benefit to their own product.
I realize that, but C++/CLI is claimed to be the primary .NET language.
Changing the designer would obviously benfit Visual Studio as a whole.
Although I'm not sure what percentage of the developers design GUI in
C++/CLI.

Fortunately it's not too hard to move the event handler implementations
to the .cpp file, but it's a major inconvenience. I don't think it would
be too hard to implement that feature (to generate an entry to the
header file as well as the .cpp, as Borland C++Builder does it), and it
would save a lot of time to the developers. I really insist that event
handlers are implemented in the .cpp file.

Moving the InitializeComponent to the .cpp file is a little bit less
important. Yes, it's annoying that moving an edit box around triggers a
recompile to other units, but frankly, most changes to the form do.
Typically when the GUI changes it involves adding new controls, thus new
declarations. Let's face it, most designer changes would trigger a
recompile to other modules anyway.

It would still be appreciated if moving a component, or changing its
color, wouldn't trigger any changes to any header file. It still has
much less impact than the event handlers.

At least this issue with monolithic header files enforces developers to
consider the separation of the GUI from the business logic, which I
personally support even in smaller projects, except maybe in quick and
dirty prototypes. The rest of the application logic should not depend on
the implementation of a particular component. Let's say a year into the
development you change from list box to list view, or from a Microsoft
component to a 3rd party with a different interface. It's definitely not
nice if such a change requires the editing of 100 function calls and
property references all across the project. So it's probably safe to say
that if the designer's inability of maintaining a separate .cpp file
causes enormous dependency issues, the project itself has architectural
issues. I tend to wrap forms into form managers, and the majority of the
code interacts with the form manager, without even including the forms'
header file.

Tom
Oct 6 '06 #5

"Tamas Demjen" <td*****@yahoo.comwrote in message
news:Oo**************@TK2MSFTNGP02.phx.gbl...
Carl Daniel [VC++ MVP] wrote:
>I assume you're talking about Windows Forms designer generated classes?

Yes, I assume that's what the original poster meant.
>Personally, I wouldn't expect that to ever change - but who knows :)
The problem is, the designers are not maintained by the C++ team, so
getting the designer to support a separation of declaration/definition
requires getting another group to do work that's of no benefit to their
own product.

I realize that, but C++/CLI is claimed to be the primary .NET language.
Changing the designer would obviously benfit Visual Studio as a whole.
Although I'm not sure what percentage of the developers design GUI in
C++/CLI.

Fortunately it's not too hard to move the event handler implementations to
the .cpp file, but it's a major inconvenience. I don't think it would be
too hard to implement that feature (to generate an entry to the header
file as well as the .cpp, as Borland C++Builder does it), and it would
save a lot of time to the developers. I really insist that event handlers
are implemented in the .cpp file.

Moving the InitializeComponent to the .cpp file is a little bit less
important. Yes, it's annoying that moving an edit box around triggers a
recompile to other units, but frankly, most changes to the form do.
Typically when the GUI changes it involves adding new controls, thus new
declarations. Let's face it, most designer changes would trigger a
recompile to other modules anyway.

It would still be appreciated if moving a component, or changing its
color, wouldn't trigger any changes to any header file. It still has much
less impact than the event handlers.

At least this issue with monolithic header files enforces developers to
consider the separation of the GUI from the business logic, which I
personally support even in smaller projects, except maybe in quick and
dirty prototypes. The rest of the application logic should not depend on
the implementation of a particular component. Let's say a year into the
development you change from list box to list view, or from a Microsoft
component to a 3rd party with a different interface. It's definitely not
nice if such a change requires the editing of 100 function calls and
property references all across the project. So it's probably safe to say
that if the designer's inability of maintaining a separate .cpp file
causes enormous dependency issues, the project itself has architectural
issues. I tend to wrap forms into form managers, and the majority of the
code interacts with the form manager, without even including the forms'
header file.
Use an interface class and then nothing need include the form's header file
except its single .cpp
>
Tom

Oct 10 '06 #6

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

1
by: Lior Bobrov | last post by:
Hi . Due to Microsoft's roadmap for years 2004-2005 , Visual Studio codenamed "Orcas" should be released in 2005 . But , as we know , Visual Studio codenamed "Whidbey" (which was originally...
4
by: David Veeneman | last post by:
Will Orcas target Windows XP (using .NET 3.0) when using WPF, or will it only target Vista? I'm getting ready to start a project on which I'd like to use WPF, but I'm going to have to target both...
2
by: dejavue82 | last post by:
Does anybody know how to resolve the following errors? They were caused by the designer.cs file that was auto-generated by the LINQ to SQL designer. I am using the March 2007 Orcas CTP version of...
9
by: squishy | last post by:
So what new suprises are in store for us with Orcas? I am downloading the VPC now to try it out myself. But, I will go out on a very sturdy limb here and say that MS will try and get developers...
5
by: nhmark64 | last post by:
Hi, What is the relationship between "Microsoft .NET Framework 3.5 – Beta 1" and "Visual Studio Code Name "Orcas" Beta 1"? Should I install 1 first than the other, or just 1? I need to start...
8
by: subtle | last post by:
I've installed Orcas beta1 March 2007 CTP. I get compiler errors on any LINQ related code. For example: List<stringcities = new List<string>(); cities.Add("London"); cities.Add("Paris");...
1
by: somequestion | last post by:
hi there ! i have some project using app_code in asp.net of vs2005 these project converted to orcas version but class in app_code is not working.. is orcas not support? how do i do?
35
by: Jon Skeet [C# MVP] | last post by:
Just in case anyone else hadn't noticed (like me!), Visual Studio 2008 (Orcas) Beta 2 has shipped. The best starting point is probably Scott Guthrie's blog (which contains download links etc): ...
5
by: Showjump | last post by:
Just wondering how many of you all are using VS2008 bETA 2 to work on 2.0 projects? I dl'd the beta 2 release but have not installed ityet because i was concerned about future uninstall when the...
1
by: CloudSolutions | last post by:
Introduction: For many beginners and individual users, requiring a credit card and email registration may pose a barrier when starting to use cloud servers. However, some cloud server providers now...
0
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 3 Apr 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome former...
0
by: ryjfgjl | last post by:
In our work, we often need to import Excel data into databases (such as MySQL, SQL Server, Oracle) for data analysis and processing. Usually, we use database tools like Navicat or the Excel import...
0
by: taylorcarr | last post by:
A Canon printer is a smart device known for being advanced, efficient, and reliable. It is designed for home, office, and hybrid workspace use and can also be used for a variety of purposes. However,...
0
by: ryjfgjl | last post by:
If we have dozens or hundreds of excel to import into the database, if we use the excel import function provided by database editors such as navicat, it will be extremely tedious and time-consuming...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.