microsoft - sharepoint api files
Con respecto a MOSS o WSS 3.0, ¿qué partes de la API podrían haberse implementado mejor? (6)
Como:
- Métodos sellados que le hubiera gustado extender
- Las excepciones lanzadas son más vagas de lo que es útil
- Eliminación de contenido conectado que fue una característica importante en MCMS 2002
- HTML se elimina de los campos cuando se almacena y devuelve. No es una opción fácil para evitar este problema
- Crear un SPWeb toma una eternidad.
- Ruta de migración inexistente de MCMC 2002
¿Alguien ha visto este método? Http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spsecurity.runwithelevatedprivileges.aspx Este método muestra las absurdas increíbles que Sharepoint expone a los desarrolladores.
¿Qué hay de las propiedades de refactorización que resultan en llamadas de bases de datos adicionales a los métodos en su lugar, por ejemplo, la propiedad de elementos en SPList.
Cualquiera de la API SPList podría usar una reescritura completa. Tratar de lidiar con bibliotecas con carpetas anidadas es una pesadilla completa con la lista completamente aplanada sin una estructura jerárquica obvia.
Otra adición maravillosa sería agregar interfaces a SPWeb, SPList y otras clases de Sharepoint para ayudar a las pruebas.
Deseo que el modelo de objetos Sharepoint sea un código puramente administrado. Aunque tener contenedores .NET es conveniente, tener que preocuparse por eliminar los muchos objetos que implementan IDisposable es un problema. Es tan fácil encontrarse con problemas de memoria cuando no se llama a dispose en una aplicación de WSS. Y pensé que la razón para mudarme a .NET era liberar a los desarrolladores de tener que lidiar con la gestión de memoria ...
Mi favorito personal es el método SPField.GetFieldValue . No tengo idea de por qué lo diseñaron de la manera en que lo hicieron, pero para mí apenas tiene sentido. Para obtener un objeto de un ListItem tienes que hacer algo como:
SPField field = ((SPList)list).Fields.GetField("FieldName");
object fieldValue = field.GetFieldValue(((SPListItem)item)[field.Title].ToString());
Obtener un objeto de un ListItem es IMO una operación básica, por lo que esto no debería ser tan complicado.
Inconsistencias al pasar nombres de campo a métodos o matrices. Por ejemplo:
- SPFieldCollection.ContainsField () : nombre interno o nombre para mostrar
- SPFieldCollection.GetField () : nombre interno o nombre para mostrar
- SPFieldCollection.GetFieldByInternalName () : nombre interno
- SPFieldCollection.Item : nombre para mostrar
- SPListItem.Item : nombre interno o nombre para mostrar
- SPListItem.GetFormattedValue () : nombre interno o nombre para mostrar
- SPViewFieldCollection.Exists : nombre interno
Para poner la guinda del pastel, generalmente no hay documentación sobre si un método toma el nombre interno y / o el nombre para mostrar.