Discussion:
Managed DX - deprecated or supported?
(too old to reply)
Sasha H
2009-05-12 15:41:02 UTC
Permalink
Can anybody shed a light on what happens with .NET support in DX?

I'm using DX with VB/VS2005. The DX release dates back to 2002; I cannot
find version or date in DXREADME.HTM file, but the file itself is dated by
12/13/2002.

Recently I downloaded to one of my computers the latest DX release (March
2009). The release seems to have full .NET support. However, Sample Browser
shows only C++ examples. Web contains many statements that Managed DX is
deprecated.

The state is very confusing. I'd formulate the following questions:
1. Does DX March 2009 release support .NET? Is support full or partial
(e.g., compared to 2002 release)?
2. If suport is there, why VB/C# examples have been removed?
3. If suport is there, why "Managed DX is deprecated"? It is rather
integrated into mainstream release, isn't it?
4. Which release is recommended for using with VB/C#?

Thanks in advance.
Chuck Walbourn [MSFT]
2009-05-12 16:35:27 UTC
Permalink
Managed DX 1.1 has been deprecated for many years. It was last updated in
the DX SDK (April 2006) release. We continue to include the assemblies in
the DirectSetup REDIST for compatibility, but no longer ship documentation
or samples.

For games, we recommed using XNA Game Studio, which is a C# based toolset
and assemblies supporting Direct3D 9 HLSL-based interfaces along with
supporting frameworks. I believe you can get VB to work with the XNA Game
Studio assemblies, but it is not technically supported.

BTW, the Visual Basic 6.0 interface modules for DX6 and DX7 do not ship on
Windows Vista or any future version of Windows .

There are a number of shared source solutions of wrappers for the DirectX
APIs akin to MDX 1.1 available as well.
--
-Chuck Walbourn
SDE, XNA Developer Connection

This posting is provided "AS IS" with no warrenties, and confers no rights.
Pascal Cloup
2009-05-12 17:08:10 UTC
Permalink
and fr other applications than games, what do you recommand?

SlimDX?

Pascal
Post by Chuck Walbourn [MSFT]
Managed DX 1.1 has been deprecated for many years. It was last updated in
the DX SDK (April 2006) release. We continue to include the assemblies in
the DirectSetup REDIST for compatibility, but no longer ship documentation
or samples.
For games, we recommed using XNA Game Studio, which is a C# based toolset
and assemblies supporting Direct3D 9 HLSL-based interfaces along with
supporting frameworks. I believe you can get VB to work with the XNA Game
Studio assemblies, but it is not technically supported.
BTW, the Visual Basic 6.0 interface modules for DX6 and DX7 do not ship on
Windows Vista or any future version of Windows .
There are a number of shared source solutions of wrappers for the DirectX
APIs akin to MDX 1.1 available as well.
--
-Chuck Walbourn
SDE, XNA Developer Connection
This posting is provided "AS IS" with no warrenties, and confers no rights.
Sasha H
2009-05-12 17:25:01 UTC
Permalink
Thank you for fast response.

Unfortunately, I'm not a game developer; my DX applications can be rather
described as scientific presentation. I strongly prefer using VB/C# for GUI
development.

Your response suggests following options for me:
1. Switch to XNA Game Studio. Likely, I will need to learn a lot of thing
that are irrelevant to my tasks.
2. Switch to C++ in GUI development.
3. Continue working with deprecated release.
4. Switch to new release, but continue using deprecated managed support.
5. Switch to OpenGL? Some other?

None of the options looks good.
What is Microsoft advise for developers like me?
legalize+ (Richard [Microsoft Direct3D MVP])
2009-05-12 22:57:41 UTC
Permalink
[Please do not mail me a copy of your followup]
Post by Sasha H
Can anybody shed a light on what happens with .NET support in DX?
Three choices:
- XNA Game Studio
- SlimDX
- custom wrapper

You can use XNA Game Studio; you can write non-game apps with it if
you want, but its a different object model than Managed DX.

SlimDX is more like MDX in that it is a thin wrapper around the native
DirectX APIs. It is well maintained.

You can write a custom wrapper around the native API functionality
that you need. This is only feasible if you need a reasonably small
portion of the API and have the proficiency to do the managed C++ code
that will interoperate between the native API and the managed API you
create for your application.
--
"The Direct3D Graphics Pipeline" -- DirectX 9 draft available for download
<http://www.xmission.com/~legalize/book/download/index.html>

Legalize Adulthood! <http://blogs.xmission.com/legalize/>
Armin Zingler
2009-05-13 01:07:16 UTC
Permalink
Post by legalize+ (Richard [Microsoft Direct3D MVP])
- XNA Game Studio
What's the current state of XNA? Is it a fully developped technology or...?
Because, most pro developers probably use native C++ (or engines made in
native DX). The MDX object model was somewhat close to native DX, but as
XNA is quite different from MDX, doesn't this mean that XNA is a thicker
layer that does not represent the native model as well as MDX did?

For my limited casual projects I chose the
Post by legalize+ (Richard [Microsoft Direct3D MVP])
- custom wrapper
because the past made me unsure about the future. This way I am not
dependent on the discretion of someone else. I understand that the efforts
for maintaining MDX in addition to native DX was the reason why MDX is
deprecated, but the more suprising it is that another technology, XNA, is
maintained now - but how long still? Is the main reason for XNA that it is
(more) platform independent?


Armin
legalize+ (Richard [Microsoft Direct3D MVP])
2009-05-13 04:02:57 UTC
Permalink
[Please do not mail me a copy of your followup]
Post by Armin Zingler
What's the current state of XNA?
Its on version 3.0 and continuing. There is a very active community
revolving around XNA. Where else can the average guy get their code
to run on Xbox 360 and possibly on Xbox Live Arcade (if you're good
enough) or Xbox Community Arcade (if you pass the muster of your
peers).
Post by Armin Zingler
Is it a fully developped technology or...?
Yes.
Post by Armin Zingler
Because, most pro developers probably use native C++ (or engines made in
native DX).
I see a funny attitude among game developers. Each insists that the
only "real" games use 100% of the GPU and CPU to maximum advantage.
Since when was that the requirement for a winning game? Are you
telling me that Tetris, one of the most succesful PC games of all time
(at least in terms of mindshare) leveraged your CPU and graphics card
to the max? What about "Hexic"? What about flash games? And so-on.
Its this obsession with "using every bit of the GPU/CPU" that makes
most game developers feel that they need to use native C++ in order to
"get every cycle". Yet, while *some* games need that, I'm willing to
bet that there are many, many games that are successful that don't
even come close to needing all of that. Many games with simple yet
addictive game play don't task the GPU/CPU heavily at all. Maybe if
more attention were paid to what makes a great game (game play that is
fun, engaging and provides enjoyment time after time) instead of
obsessing about the GPU/CPU, we'd see less games ending up in the
bargain bin at a fraction of their original retail price.

Disclaimer: I don't work in the game industry; I work on content
creation software. However, my understanding of how the game industry
works is confirmed by the game developers I know and talk to.
Post by Armin Zingler
The MDX object model was somewhat close to native DX, but as
XNA is quite different from MDX,
Its not as different as you might think. How closely have you looked
at it?
Post by Armin Zingler
doesn't this mean that XNA is a thicker
layer that does not represent the native model as well as MDX did?
XNA has a different design goal than MDX, so there are areas where it
provides more "policy" than MDX did. If you want an MDX style model,
then use SlimDX. Its open source so if for some reason they abandon
it, then you can maintain it yourself.
Post by Armin Zingler
[...] Is the main reason for XNA that it is
(more) platform independent?
No. As I said, XNA has different design goals than MDX. The goal of
MDX was to expose the native Direct3D (and some other DirectX stuff)
API to managed code with as little performance penalty as possible.
However, what you're left with is something that still makes it hard
to write games. The goal of XNA is to make it easier to write games.
That means being more of an application framework like MFC so that you
can have a single code base that runs on Xbox 360 (which doesn't have
things like a keyboard), Zune (which doesn't have things like a 3D
accelerator), and PC.
--
"The Direct3D Graphics Pipeline" -- DirectX 9 draft available for download
<http://www.xmission.com/~legalize/book/download/index.html>

Legalize Adulthood! <http://blogs.xmission.com/legalize/>
Sasha H
2009-05-13 06:56:01 UTC
Permalink
So, no good option for non-game developers.
I guess I'll prefer an option, which is out of your list:
-- Download and use for development the last DX release that fully supports
MDX.
Please confirm it is April 2006 release.

Idea of custom wrapper may be good, if you only run your application on a
predefined PC's with certain DX version. However, if you supply your
application to customers, you should provide your wrapper to work with all
possible DX releases.

XNA may be excellent; however, I agree with Armin in his doubts about the
future.

SlimDX? I didn't try it; however, I had experience with other open source
software (no disregard, trully).
legalize+ (Richard [Microsoft Direct3D MVP])
2009-05-14 10:10:19 UTC
Permalink
[Please do not mail me a copy of your followup]
Post by Sasha H
So, no good option for non-game developers.
I don't know why you say that.
Post by Sasha H
-- Download and use for development the last DX release that fully supports
MDX.
Please confirm it is April 2006 release.
That's a bad choice, IMO. Use SlimDX if you really need an MDX-like
layer.
Post by Sasha H
Idea of custom wrapper may be good, if you only run your application on a
predefined PC's with certain DX version.
Huh? It doesn't mean anything of the sort.
Post by Sasha H
However, if you supply your
application to customers, you should provide your wrapper to work with all
possible DX releases.
This isn't a feasible option and fortunately its not one you're forced
to use.
Post by Sasha H
XNA may be excellent; however, I agree with Armin in his doubts about the
future.
MDX has no future, XNA does. Its that simple.
--
"The Direct3D Graphics Pipeline" -- DirectX 9 draft available for download
<http://www.xmission.com/~legalize/book/download/index.html>

Legalize Adulthood! <http://blogs.xmission.com/legalize/>
Sasha H
2009-05-15 03:44:06 UTC
Permalink
It sounds like this talk:

"Hallo, I'd like to renew my old Ford Focus."
"We deprecated Ford Focus. We have three excelent options for you:
1. Ferrari XNA
2. SlimFocus, which is Ford's replica manufactured on our back yard
3. Do-it-youself car, we supply engine for it."
"I'm afraid, no one is good for me."
"I don't know why you say that."
"I'd rather stay with my old Focus for a while."
"That's a bad choice, IMO. Use SlimFocus if you really need a Ford-like
layer."
"I'm afraid of support problems."
"Huh? It doesn't mean anything of the sort."
"Ferrari is for different customer."
"Focus has no future, XNA does. Its that simple."

Happy Ford owner runs away.
Chuck Walbourn [MSFT]
2009-05-26 21:35:59 UTC
Permalink
You might also want to check out
http://windowsteamblog.com/blogs/developers/archive/2009/05/18/windows-7-managed-code-apis.aspx,
although it is not really a successor to "Managed DX 1.1".
--
-Chuck Walbourn
SDE, XNA Developer Connection

This posting is provided "AS IS" with no warrenties, and confers no rights.
Sasha H
2009-05-27 17:39:01 UTC
Permalink
Great information!
You are very helpful.
May it happen you know more about this pack:
1. Is there list of differences between MDX and new D3D API?
2. Can I use the pack for creating application that works in both XP and
Windows 7 (and Vista, as a bonus)? If yes, can I use XP as development
environment?
Post by Chuck Walbourn [MSFT]
You might also want to check out
http://windowsteamblog.com/blogs/developers/archive/2009/05/18/windows-7-managed-code-apis.aspx,
although it is not really a successor to "Managed DX 1.1".
--
-Chuck Walbourn
SDE, XNA Developer Connection
This posting is provided "AS IS" with no warrenties, and confers no rights.
Chuck Walbourn [MSFT]
2009-05-27 23:08:12 UTC
Permalink
1. They are completely unrelated wrappers.

- MDX 1.1 was written to have managed access to the "DirectX 9" era of
native APIs: Direct3D 9, DirectDraw7, DirectSound8, DirectInput8,
DirectPlay8, D3DX9, and basic DirectShow playback. At this point, all of
these APIs are deprecated to some extent or another. None of them are in
active development. As such, the wrapper itself was deprecated some time
ago. The last time the MDX wrappers were updated (for changes to D3DX9) was
April 2006.

- The XNA Game Studio Framework is a managed interface for Direct3D 9 (no
legacy fixed-function, only vertex/pixel shaders), XACT, XINPUT, and limited
access to some utility functionality in D3DX9. There are assemblies for
working with Games for Windows - LIVE and Xbox 360 LIVE, as well as various
support framework components and the content pipeline. It is intended
primarily for cross-platform game development on Xbox 360 (runs on retail
systems), Zune, and Windows Direct3D 9 video cards.

- The Windows API Code Pack for Microsoft .NET Framework is a managed
wrapper for various Windows Vista and Windows 7 APIs including Direct3D 11
and DXGI 1.0/1.1. It does not include wrappers for deprecated DirectX
components. It is currently in Beta.


2. None of the native APIs wrapped by the Windows API Code Pack for
Microsoft .NET Framework are available on Windows XP so there would be no
point to installing those managed assemblies on such a system. Direct3D 11
is built into Windows 7, and there will be a way to install it down-level on
Windows Vista--currently the DirectX SDK (March 2009) release includes a
Techncial Preview that works with Windows Vista.
--
-Chuck Walbourn
SDE, XNA Developer Connection

This posting is provided "AS IS" with no warrenties, and confers no rights.
Keeron Modi
2009-08-09 03:48:01 UTC
Permalink
FYI, the Windows API Code Pack has released its 1.0 version:

http://code.msdn.microsoft.com/WindowsAPICodePack
Post by Chuck Walbourn [MSFT]
1. They are completely unrelated wrappers.
- MDX 1.1 was written to have managed access to the "DirectX 9" era of
native APIs: Direct3D 9, DirectDraw7, DirectSound8, DirectInput8,
DirectPlay8, D3DX9, and basic DirectShow playback. At this point, all of
these APIs are deprecated to some extent or another. None of them are in
active development. As such, the wrapper itself was deprecated some time
ago. The last time the MDX wrappers were updated (for changes to D3DX9) was
April 2006.
- The XNA Game Studio Framework is a managed interface for Direct3D 9 (no
legacy fixed-function, only vertex/pixel shaders), XACT, XINPUT, and limited
access to some utility functionality in D3DX9. There are assemblies for
working with Games for Windows - LIVE and Xbox 360 LIVE, as well as various
support framework components and the content pipeline. It is intended
primarily for cross-platform game development on Xbox 360 (runs on retail
systems), Zune, and Windows Direct3D 9 video cards.
- The Windows API Code Pack for Microsoft .NET Framework is a managed
wrapper for various Windows Vista and Windows 7 APIs including Direct3D 11
and DXGI 1.0/1.1. It does not include wrappers for deprecated DirectX
components. It is currently in Beta.
2. None of the native APIs wrapped by the Windows API Code Pack for
Microsoft .NET Framework are available on Windows XP so there would be no
point to installing those managed assemblies on such a system. Direct3D 11
is built into Windows 7, and there will be a way to install it down-level on
Windows Vista--currently the DirectX SDK (March 2009) release includes a
Techncial Preview that works with Windows Vista.
--
-Chuck Walbourn
SDE, XNA Developer Connection
This posting is provided "AS IS" with no warrenties, and confers no rights.
Loading...