¿Hay alguna razón por la que Microsoft todavía se adhiere a la tecnología COM (los componentes de Office todavía son COM) ... cuando todo lo que se hace con COM es compatible con .Net en una manera mejor y más eficientePor qué Microsoft todavía se apega a la tecnología COM
Respuesta
Una de las razones de la hinchazón en los productos de Microsoft es el enfoque en la compatibilidad con versiones anteriores. Un gran número de aplicaciones manipula Office a través de COM, y todas se romperían, si MS lo descarta.
COM integración fue un gran dolor la primera vez que los clientes de Microsoft tenían que hacerlo. Los clientes se enloquecerían si tuvieran que reescribir todas sus aplicaciones para usar otro método de integración.
Eso, o simplemente se quedarían con las versiones anteriores del software de Microsoft, incluso después de que se salieran de soporte. Eso ralentizaría mucho la actualización de la cinta de correr, y MS no quiere eso.
Porque tomaría largo tiempo para reescribir completamente Office, y esto provocaría inevitablemente un gran número de errores y cambios de rotura.
No podría estar de acuerdo con esto ... Conozco aplicaciones igualmente sofisticadas que se han transferido a la red (Solidworks es un ejemplo). – TonyP
Yo (y 7 videntes) no estoy de acuerdo. Reescribir un sistema grande es _hard_. Y Office es un sistema muy ** muy ** grande. Además, Office es tan complicado que sería imposible mantener una compatibilidad del 100%. (Y es tan popular que la compatibilidad realmente importa) – SLaks
Imagínese los anuncios de Mac ... –
Porque el uso de COM hace que el componente esté disponible para la mayor cantidad de consumidores. Si una API usa COM, puede consumirse desde VBScript, código nativo, etc., no solo .Net. Las nuevas características de C# 4.0 hacen que sea relativamente fácil llamar a componentes COM desde .Net.
- 1. ¿Qué es un análogo actual de la tecnología COM?
- 2. ¿Por qué la entidad todavía se valida cuando se va?
- 3. ¿Por qué md5 todavía se usa ampliamente?
- 4. COM, COM +, DCOM, ¿por dónde empezar?
- 5. ¿Por qué debería aprender COM?
- 6. No se puede convertir objeto COM - Microsoft Outlook & C#
- 7. ¿Qué tecnología Delphi usar?
- 8. ¿por qué se niega el acceso al puerto com?
- 9. ¿Por qué se usa Disposición en DataContract aunque el servicio todavía se refiere a ella?
- 10. ¿Por qué este código todavía funciona?
- 11. ¿Por qué todavía necesitamos código generado?
- 12. ¿Por qué no se puede usar el objeto COM IDisposable?
- 13. ¿Qué compilador se usa para producir Microsoft Office para Mac?
- 14. ¿Por qué Microsoft decidió apoyar tanto a jQuery?
- 15. ¿Aún se recomienda COM +?
- 16. ¿Por qué las personas usan ATL para la programación COM?
- 17. Se modificó la AllowOverride a todos y todavía nada
- 18. ¿Por qué se prefiere la interoperabilidad de COM sobre P/Invoke en .NET?
- 19. NO es la tecnología más importante ... ¿pero qué es esto?
- 20. ¿Qué tecnología para raspado/análisis a gran escala?
- 21. ¿Qué tecnología de mensajería grupal usar?
- 22. Nuevo proyecto .NET 3.5: ¿Qué tecnología DAL usar?
- 23. ¿Todavía se usa Yacc en la industria?
- 24. ¿Todavía se necesita rmic?
- 25. ¿Todavía se usa Xlib?
- 26. ¿Por qué funciona esta implementación de COM IUnknown :: Release?
- 27. Excepciones COM a la salida con WPF
- 28. ¿Por qué no podemos usar "herencia virtual" en COM?
- 29. Alternativa multiplataforma a COM
- 30. ¿Cómo funciona la tecnología "bump"?
Eso no es tan cierto. Sería posible escribir un contenedor que mantenga la antigua API. (Y sería trivial en comparación con la reescritura en sí) – SLaks
Jacob es un envoltorio de COM, y es uno de nuestros mayores dolores de cabeza. Es posible, pero no sin dolor. –
Estoy de acuerdo con Stephen, Hay un número incontable de usuarios que usan muchas generaciones de aplicaciones ofimáticas. Si Microsoft alguna vez va a llevar a Office a la red, y para mantener disparidades ... eso será una hazaña no fatigable para lograr en términos comerciales. Las envolturas son dolorosas; especialmente cuando mueve sus ensambles y componentes alrededor de las máquinas; necesita generar claves Strong Name, ajustar la ejecución/privilegios de ruta, etc. – TonyP