La tecnologia DirectX è fondamentale per la moderna presentazione di Windows e la grafica di gioco, quindi ci sono molte strade diverse per questo. La tua domanda non indica in realtà che tipo di applicazione stai creando o quale piattaforma stai cercando di targetizzare.
Managed DirectX 1.1 ha una lunga lista di problemi a questo punto: non supporta .NET 4.x che significa che VS 2010 o successivi progetti C# non possono usarlo. Utilizza la legacy D3DX9 e la distribuzione legacy di DirectSetup. Non supporta app native a 64 bit. Supporta solo Direct3D 9 e non Direct3D 10.xo 11.x. Espone un sacco di materiale legacy come DirectPlay e DirectSound. Non è stato aggiornato dal 2006 e trovare dei campioni è una sfida. Non supporta le app di Windows Store, Windows Phone, Xbox 360 o Xbox One.
SlimDX è una buona scelta per chi ha un'applicazione Managed DirectX 1.1 esistente che desidera passare a qualcosa di meglio supportato. È compatibile con le app native x64 e .NET 4.0.Il progetto è effettivamente in fase di stallo in termini di progressione, ma è open source, quindi puoi sempre lavorarci da solo.
XNA Game Studio 4 supporta .NET 4.0 e può scegliere come target Xbox 360, Windows Phone 7, Windows Phone 8 (in appcompat) e applicazioni Windows a 32 bit. Non supporta le app native x64 e la pipeline del contenuto è compatibile solo con VS 2010. Utilizza la legacy D3DX9 in modo che dipenda dalla deprecata distribuzione di DirectSetup. Espone Direct3D 9 e non Direcxt3D 10.xo 11.x. Non supporta le app di Windows Store o Xbox One. È specifico per scrivere giochi.
Windows Presentation Foundation dispone di interoperabilità Direct3D9/Direct3D9Ex, ma non Direct3D 10.xo Direct3D 11.x. Questa è una tecnologia utile per le app desktop Win32, ma non è supportata per le app di Windows Store, Windows Phone o Xbox One. Vedi MSDN. Non è particolarmente adatto per creare giochi, ma molti sviluppatori di giochi lo hanno utilizzato per la loro pipeline di strumenti. La mancanza del supporto per DirectX 10.x/11.x è impegnativa, ma potresti farlo funzionare con DXGI Shared Surfaces con Direct3D9Ex.
SharpDX è una scelta popolare per un mapping C# delle moderne API DirectX. Supporta anche le app Windows Store e Windows Phone ed è un progetto attivo.
BTW, Se stai cercando un modo diretto per utilizzare Direct2D da C# potresti voler dare un'occhiata a Win2D.
Vedi DirectX and .NET
fonte
2014-10-24 17:55:01
SlimDX non è stato toccato in anni secondo GitHub. SharpDX sembra mantenuto attivamente. SharpDX ha anche un wrapper D2D. – thumbmunkeys
@thumbmunkeys, sfortunatamente nessuna delle due tecnologie Microsoft :-( – series0ne
sì, ma non penso che ci sia un "metodo Microsoft preferito", dipende molto dal tuo caso d'uso. SharpDX è un wrapper DirectX largamente autogenerato, quindi rimane vicino all'API originale (ottimo, perché si applica la documentazione CX DirectX esistente). Sembra che verrà aggiornato anche per supportare DirectX 12: http://sharpdx.org/news/sharpdx-next L'ho usato e lo consiglio vivamente. – thumbmunkeys