473,665 Members | 2,774 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

.NET book recommendations ??

What books would you recommend to a seasoned C/C++ programmer wanting
to venture into the .NET domain? And yes, I do want to stick to C++.

-- Rubio
Nov 16 '05 #1
10 1506
> What books would you recommend to a seasoned C/C++ programmer wanting
to venture into the .NET domain? And yes, I do want to stick to C++.


This one is pretty good to learn .net w/out having to learn the baggage that
came before it (mfc, atl, com, win32):

Managed C++ and .NET Development: Visual Studio .NET 2003 Edition
by Stephen R. G. Fraser

But it doesn't cover interop with unmanaged code, which is one of vc.net's
strength. This one, though I have not read it, seems to bee a good book to
cover that:

Programming with Managed Extensions for Microsoft Visual C++ .NET
by Richard Grimes

Only problem I see with learning managed c++ this way, is that with the new
CLI binding proposed, managed c++ will be quite different and may render
these books obsolete.

Nevertheless, these are the best two books from what I can tell so far.

-Don
Nov 16 '05 #2
Don Kim wrote:
What books would you recommend to a seasoned C/C++ programmer wanting
to venture into the .NET domain? And yes, I do want to stick to C++.


This one is pretty good to learn .net w/out having to learn the
baggage that came before it (mfc, atl, com, win32):

Managed C++ and .NET Development: Visual Studio .NET 2003 Edition
by Stephen R. G. Fraser

But it doesn't cover interop with unmanaged code, which is one of
vc.net's strength. This one, though I have not read it, seems to bee
a good book to cover that:

Programming with Managed Extensions for Microsoft Visual C++ .NET
by Richard Grimes

Only problem I see with learning managed c++ this way, is that with
the new CLI binding proposed, managed c++ will be quite different and
may render these books obsolete.


Where is an official document abouit the new CLI binding ? Is there word
about when the new CLI binding will be implemented by MS for VS .Net ?
Nov 16 '05 #3
http://download.microsoft.com/downlo...se%20Draft.pdf

Available in the Orcas release of Visual Studio.

Ronald

"Edward Diener" <ed******@tropi csoft.com> wrote in message
news:eU******** ******@TK2MSFTN GP12.phx.gbl...
Don Kim wrote:
What books would you recommend to a seasoned C/C++ programmer wanting
to venture into the .NET domain? And yes, I do want to stick to C++.


This one is pretty good to learn .net w/out having to learn the
baggage that came before it (mfc, atl, com, win32):

Managed C++ and .NET Development: Visual Studio .NET 2003 Edition
by Stephen R. G. Fraser

But it doesn't cover interop with unmanaged code, which is one of
vc.net's strength. This one, though I have not read it, seems to bee
a good book to cover that:

Programming with Managed Extensions for Microsoft Visual C++ .NET
by Richard Grimes

Only problem I see with learning managed c++ this way, is that with
the new CLI binding proposed, managed c++ will be quite different and
may render these books obsolete.


Where is an official document abouit the new CLI binding ? Is there word
about when the new CLI binding will be implemented by MS for VS .Net ?

Nov 16 '05 #4
http://download.microsoft.com/downlo...se%20Draft.pdf

In next VS.NET version.

"Edward Diener" <ed******@tropi csoft.com> wrote in message
news:eU******** ******@TK2MSFTN GP12.phx.gbl...
Where is an official document about the new CLI binding ? Is there word
about when the new CLI binding will be implemented by MS for VS .Net ?

Nov 16 '05 #5
Ronald Laeremans [MSFT] wrote:
http://download.microsoft.com/downlo...se%20Draft.pdf
Available in the Orcas release of Visual Studio.
Which is scheduled for about when ?

Will the current keywords and interop methodologies be supported when the
new CLI bindings go in effect, or are the new bindings only essentially the
definition of MC++ for the future ?

Ronald

"Edward Diener" <ed******@tropi csoft.com> wrote in message
news:eU******** ******@TK2MSFTN GP12.phx.gbl...
Don Kim wrote:
What books would you recommend to a seasoned C/C++ programmer
wanting to venture into the .NET domain? And yes, I do want to
stick to C++.

This one is pretty good to learn .net w/out having to learn the
baggage that came before it (mfc, atl, com, win32):

Managed C++ and .NET Development: Visual Studio .NET 2003 Edition
by Stephen R. G. Fraser

But it doesn't cover interop with unmanaged code, which is one of
vc.net's strength. This one, though I have not read it, seems to
bee a good book to cover that:

Programming with Managed Extensions for Microsoft Visual C++ .NET
by Richard Grimes

Only problem I see with learning managed c++ this way, is that with
the new CLI binding proposed, managed c++ will be quite different
and may render these books obsolete.


Where is an official document abouit the new CLI binding ? Is there
word about when the new CLI binding will be implemented by MS for VS
.Net ?

Nov 16 '05 #6
Ronald Laeremans [MSFT] wrote:
http://download.microsoft.com/downlo...se%20Draft.pdf


In the C++ CLI binding, what was the reasoning for adding '^' and '%' as
pointers and references/addressing to the GC heap rather than just keeping
C++'s '*' and '&' ?

While it separates accessing the GC heap from normal standard C++, it
creates syntax additions which really seems unnecessary. C++ programmers are
a pretty advanced programmers generally and they don't need such babying in
a language addition.
Nov 16 '05 #7
Edward Diener wrote:
Ronald Laeremans [MSFT] wrote:

http://download.microsoft.com/downlo...se%20Draft.pdf


In the C++ CLI binding, what was the reasoning for adding '^' and '%'
as
pointers and references/addressing to the GC heap rather than just
keeping
C++'s '*' and '&' ?


For one thing, it allows overloading based on the GC-ness of an object -
something that the current Managed Extensions for C++ are sorely lacking.

While it separates accessing the GC heap from normal standard C++, it
creates syntax additions which really seems unnecessary. C++
programmers are
a pretty advanced programmers generally and they don't need such
babying in
a language addition.


A problem in MC++ now is that T* means (at least) 3 different things, and
what you can do with a T* requires that you know exactly what kind of T* you
have. It's proven to be very confusing in practice.

-cd
Nov 16 '05 #8
> Where is an official document abouit the new CLI binding ? Is there word
about when the new CLI binding will be implemented by MS for VS .Net ?


Here's an announcement made by Herb Sutter from
http://www.gotw.ca/microsoft/ in October:

For the past year, I've been working on something that has now become
public, and I hope that it's an important statement about the future
relevance of C++ on modern platforms. In particular, I think it
demonstrates that C++ is alive and well in the industry in general,
and in particular that it's alive and well (and the subject of heavy
and continued investment) at Microsoft.

Increasingly, we are writing programs targeted to modern environments
characterized by a virtual machine with garbage collection. Leading
examples include the JVM and the .NET CLR (ISO CLI, or Common
Language Infrastructure, is the standardized subset of the .NET
runtime environment and frameworks class library). But Standard C++
has no notion of now-fundamental concepts like garbage collection.
Is C++ simply obsolescent? No; it can be cleanly extended to
directly support these modern environments. Further, C++ actually
offers compelling advantages that can make it the language of choice
for your application, even on the "home turf" of newer languages
specifically designed for these new environments.

The Managed Extensions for C++ (aka "Managed C++") were only partly
successful. They achieved an important goal well: The ability to take
existing C++ code and just recompile it with /clr and have it running
on the virtual machine, and then to start adding .NET features and
types. Unfortunately, they achieved other goals less well: As soon as
you tried to add .NET types and features to your system, the syntax
was uneven and sometimes just weird (e.g., T* meant three different
and incompatible things depending on the type of T), the extensions
looked ugly (e.g., __keywords), and they lacked first-class support
for some fundamental CLR features (e.g., __property decorations on
individual member functions that the compiler would cobble together
for you, instead of a property abstraction). More importantly, MC++
followed what I call the "two worlds" hypothesis -- it did expose the
important CLR features, but only for CLR types, not native types; and
it did not expose native C++ features also for CLR types. The two
worlds were grafted together, not integrated. This has been a
constant source of surprises to programmers who always have to
remember the list of things that don't work, or work differently,
when using CLR types.

Well, we've been working on it. My current job is that I'm the lead
architect for the language design team, and together with bright
people both inside and outside of Microsoft (and names you would
recognize), we have come up with a design for the .NET extensions
that meets all of the following goals:

- provides an elegant (and uniform!) syntax and semantics that give
a natural feel for C++ programmers

- provides first-class support for all current and upcoming .NET
features (e.g., properties, events, garbage collection, generics)
for all types including existing C++ classes

- provides first-class support for C++ features (e.g.,
deterministic destruction, templates) for all types
including .NET classes

- preserves ISO C++ standards conformance (by adding pure
extensions, but also in a way that we don't need to use "__"
keywords)

(See also http://www.gotw.ca/microsoft .)

Further, we're not keeping it to ourselves: On October 6, 2003, a new
ECMA standards committee was formed to create an open international
standard for "C++/CLI," this set of extensions to C++. Formally,
C++/CLI is a binding between ISO C++ and ISO CLI; the announcement is
at www.ecma-international.org/news/ecma-TG5-PR.htm . This is
important because it specifically enables other compiler vendors to
implement the same extensions _and_ guarantee that they can fully
interoperate.

For those who are interested in seeing the shape of the project, we
will be making the proposed standard's base document (the "starting
point" document) publicly available on November 15, and I'll post a
link to it in a future issue of this newsletter. Then, starting in
December 2003, the new ECMA committee will take over the base
document and craft it into a consensus standard, which Microsoft will
track (i.e., we will incorporate changes the committee makes into our
product). The participants are tentatively planning to complete the
technical work by September 2004, which would let the ECMA General
Assembly vote on issuing the standard in December 2004.

I'll post more news bits and links as they become available. I'll
also be giving more talks about this language extensions design over
the coming months; for more details as events get scheduled, see my
"Talks & Appearances" page at http://www.gotw.ca/presentations.htm ,
and you can also watch the "News" page, http://www.gotw.ca/news.htm .

----------------------------------------------------

There was also a hugh thread about it on comp.lang.c++.m oderated which you
can referrence here:

http://groups.google.com/groups?q=g:...ing.google.com

-Don


Nov 16 '05 #9
Carl Daniel [VC++ MVP] wrote:
Edward Diener wrote:
Ronald Laeremans [MSFT] wrote:

http://download.microsoft.com/downlo...se%20Draft.pdf


In the C++ CLI binding, what was the reasoning for adding '^' and '%'
as
pointers and references/addressing to the GC heap rather than just
keeping
C++'s '*' and '&' ?


For one thing, it allows overloading based on the GC-ness of an
object - something that the current Managed Extensions for C++ are
sorely lacking.


Overloading works on the actual types being used. I don't see how that
affects whether a type is a GC reference or not. Can you give a practical
example of what you mean here ?

While it separates accessing the GC heap from normal standard C++, it
creates syntax additions which really seems unnecessary. C++
programmers are
a pretty advanced programmers generally and they don't need such
babying in
a language addition.


A problem in MC++ now is that T* means (at least) 3 different things,
and what you can do with a T* requires that you know exactly what
kind of T* you have. It's proven to be very confusing in practice.


I think it is worse to invent different syntax to make it less confusing.
C++ programmers are used to 'T*' to refer to a pointer to a type and 'T&" to
refer to a reference to a type. Now creating 'T^' to refer to a pointer to a
ref type and 'T%' to refer to a reference to a ref type, seems just plain
silly and far more confusing than the 3 different things mentioned above.
Again MS is trying to baby programmers who don't need it. I am surprised Mr.
Sutter fell for this. The compiler always knows what is a ref type and what
is a C++ type. Any programmer should know this by the normal documentation
about what they are doing. Creating new syntax just to make a programmer
feel better, unless it significantly makes a language easier and more
elegant to use, seems really wrong to me. I favor consistency more.

I feel the same way about 'gcnew'. It is a redundancy of 'new' unless one
can create a C++ object on the GC dynamic heap or a ref object on the C++
dynamic heap, but neither of these possibilities make sense. Is there a good
practical reason for 'gcnew' which I have missed ?

For other added keywords, I also see nothing wrong with the __ designation.
With the proposed CLI binding, it is much more likely that there will be a
conflict between a programmer using 'delegate' or 'property' or 'event' as
identifiers in his code than if the __ designation was there, as C++
programmers are smart enough to know not to use identifiers starting with __
..
Nov 16 '05 #10

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

Similar topics

8
1942
by: Parts Manager | last post by:
Hello All, I would like a couple of book recommendations to get a jump start on Access and to gain some knowledge on Access. I have a few years in programming Basics, then to PDS 7.0, then finally went to VB Pro 5. I have a few years in designing and utilizing flat file databases, but this is my first foray into a relational database. Project I am designing is for a boat shop where we want to keep history and
4
1776
by: Mike | last post by:
Hi, I am planning on purchasing VS2005 to learn C# very soon, and I need good book recommendations. I realize this is a question that may be asked a lot, but please consider my background: I have been a ClassicVB/ASP programmer for about 7 years. I have never done anything with .NET and only have a very basic understanding of the platform. Recently, I started working on a large JAVA project at my job (even though I have very little...
1
1544
by: Billy Biro | last post by:
Hi. I'm looking for some recommendations for Visual Basic 2005 books. Specifically, I'm NOT looking for books that detail the elements of the language, nor explain OOP, but rather present real-world scenarios for application development, and show how classes/components can be developed together to form the overall application. As an example, I already have a copy of Wrox's "ASP.NET 2.0 Website
4
1775
by: Neil Landau | last post by:
Hi all, I'd like to ask for book recommendations, please. I'm a VB guy looking to move to C#. I have quite a fair amount of experience of VB.NET (and prior to that, VB4 through VB6), so I'm not new to programming or the .NET framework itself. I am also quite versed in general "object oriented" programming, especially since moving to VB.NET from VB6, although I've done object-oriented programming in VB6, too (well, as much as you can...
10
1770
by: SusanV | last post by:
Time to learn something new, anyone have any recommendations for a good reference book on ASP.Net? Also recommendations on AJAX would be most welcome. TIA, SusanV
0
8438
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look ! Part I. Meaning of...
0
8348
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
0
8863
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
0
8636
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
1
6187
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 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 a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
5660
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert into image. Globals.ThisAddIn.Application.ActiveDocument.Select();...
0
4186
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
0
4356
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
2
2004
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.

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.