viernes, 15 de mayo de 2009

Menú dinámico o con configuración condicionada por usuario.

Se me presento un problema hace algunos meses con un sitio en Sharepoint 2007 que requería un meno configurable por usuario, y me pregunte como podríamos resolver esto, entonces se me ocurrió que podría se un UserControl configurado con aspmenu, que construyera los datos originarios de una lista, una de las columnas tendría que ser el padre y otra la posición en la que aparecerá el elemento. Así como una columna de tipo Grupo para poder dar accesos y administrarlos de una manera amigable.

Mi idea resulto, fue implementada exitosamente, si les sirvió esta poseen comentarios y con gusto seré mas especifico en el tema.

jueves, 23 de abril de 2009

Windows Vista amigable con el medio ambiente


Windows Vista es amigable con el medio ambiente, la vision de esta empresa no tiene limites.

El sistema operativo Windows Vista no ha logrado conquistar a los usuarios. De hecho, la mayoría sigue optando por Windows XP. Sin embargo, aquellos con conciencia ecológica no deben menospreciar a Vista: se trata, según una investigación, del sistema operativo desarrollado por Microsoft más eficiente desde el punto de vista energético.
Los especialistas del Consejo para la Defensa de los Recursos Naturales (NRDC, de acuerdo a sus siglas en inglés) han asegurado que Windows Vista es respetuoso con el medio ambiente y permite ahorrar dinero en la factura de electricidad.

De acuerdo al estudio, Vista posibilita un ahorro de hasta 50 dólares anuales en el pago de este servicio o el equivalente a la emisión de unos 3 millones de toneladas de CO2, tal y como reproduce Europa Press.

Más allá de estos logros, Microsoft se ha comprometido a seguir trabajando con organizaciones no gubernamentales, empresas especializadas y gobiernos para promover tecnologías más eficientes.

La compañía con sede en Redmond es integrante de la Climate Savers Computing Initiative, una organización con la que se ha comprometido a reducir en 54 millones de toneladas anuales las emisiones de CO2 generadas por el funcionamiento de los ordenadores.

La actividad social de Microsoft queda reflejada en los 2.574 millones de euros que ha donado desde 1983 a programas de ayuda y desarrollo. En 2008, por ejemplo, la empresa donó 1,2 millones de euros para los afectados por el terremoto en China.

Mientras los usuarios se resisten a abandonar XP y esperan la llegada de 7, el sistema Windows Vista quedará en la memoria, al menos, como uno de los más eficientes en cuanto al consumo energético.

Articulo tomado de:

http://elblogverde.com/windows-vista-permite-ahorrar-energia/

miércoles, 1 de abril de 2009

Cambiar master pages desde dentro y fuera de sharepoint

Recuerden que dentro de Designer de sharepoint 2007 podemos editar las master pages que se encuentran dentro del sitio, sin embargo paginas como:

_layouts/WrkStat.aspx - > WrkStat.aspx

Podrán estar configuradas de manera externa a Sharepoin Designer 2007, estos aspx podrán ser editados directamente como un archivo en la ruta:

C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\LAYOUTS

Por ejemplo la pagina "WrkStat.aspx" nos dará el status del Workflow por elemento de lista que estemos ejecutando.
Y el archivo "WrkTaskIP.aspx" nos dará el status por tarea del Workflow que estemos ejecutando.
En ambos casos podremos modificar la pagina directamente desde la ruta antes mencionada y podremos dar una presentación más profesional a nuestros workflows.
Feliz código.

jueves, 26 de marzo de 2009

First-chance exception at 0x77e4bee7 in w3wp.exe: 0xC0000005

Sharepoint Error en workflow (solucionada):

Hola, vamos a estrenar este Blog con una entrada interesante relacionada con los flujos de trabajo en Sharepoint y que me costo algunas horas resolver.

Se trata del error:

First-chance exception at 0x77e4bee7 in w3wp.exe: 0xC0000005: Access violation reading location 0x00000000.

(Línea obtenida de Output Windows teniendo adjuntado el proceso w3wp.exe)

Parece ser y por experiencia que cuando se crea desde otro lugar una instancia de ejecución que altera un elemento de una Lista de un sitio diferente al sitio donde se encuentra esta se crea un conflicto de acceso, en este caso específicamente es debido a que no estaba dando de alta todos los cambios en mi Worfkflow, debido a que en una modificación solicitada por el cliente no se especifico que debería de ser obligada y cree la instancia de ejecución sobre el mismo sitio.

Entonces no considere que fuese requerida para que al momento de arrancar el Workflow fuese necesario pasarle todos y cada uno de los datos que espera para generar correctamente el registro, pues lo probé dando de alta desde la vista de alta predefinida por SharePoint y funciono!!!! Entonces comencé a analizar mejor el trace del error.

En un trace mayor del error obtenemos esto:

An unhandled exception of type 'System.InvalidCastException' occurred in System.Web.dll
Additional information: Unable to cast object of type 'System.Collections.DictionaryEntry' to type 'System.Web.PartitionInfo'.
System.Transactions Critical: 0 : The thread 'Win32 Thread' (0x500) has exited with code 0 (0x0).
'w3wp.exe': Unloaded 'C:\WINDOWS\system32\inetsrv\w3isapi.dll'
The thread 0x1a78 has exited with code 0 (0x0).
The thread 0x1ba8 has exited with code 0 (0x0).
The thread 'Win32 Thread' (0x1a78) has exited with code 0 (0x0).
The thread 'Win32 Thread' (0x1ba8) has exited with code 0 (0x0).
http://msdn.microsoft.com/TraceCodes/System/ActivityTracing/2004/07/Reliability/Exception/UnhandledUnhandled exception/LM/W3SVC/900006728/Root-1-128824112229557717System.InvalidCastException, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089Unable to cast object of type 'System.Collections.DictionaryEntry' to type 'System.Web.PartitionInfo'. at System.Web.PartitionManager.Dispose()
at System.Web.SessionState.SqlSessionStateStore.OnAppDomainUnload(Object unusedObject, EventArgs unusedEventArgs)
System.InvalidCastException: Unable to cast object of type 'System.Collections.DictionaryEntry' to type 'System.Web.PartitionInfo'.
at System.Web.PartitionManager.Dispose()
at System.Web.SessionState.SqlSessionStateStore.OnAppDomainUnload(Object unusedObject, EventArgs unusedEventArgs)

'w3wp.exe': Unloaded 'C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_filter.dll'
The thread 'Win32 Thread' (0xa70) has exited with code 0 (0x0).
The thread 'Win32 Thread' (0xccc) has exited with code 0 (0x0).
The thread 'Win32 Thread' (0x734) has exited with code 0 (0x0).
The thread 'Win32 Thread' (0x16a4) has exited with code 0 (0x0).
The thread 'Win32 Thread' (0x1ffc) has exited with code 0 (0x0).
The thread 'Win32 Thread' (0x1b0c) has exited with code 0 (0x0).
The thread 'Win32 Thread' (0x26c) has exited with code 0 (0x0).
The thread 'Win32 Thread' (0x1df0) has exited with code 0 (0x0).
The thread 0x1df0 has exited with code 0 (0x0).
'w3wp.exe': Unloaded 'C:\WINDOWS\system32\inetsrv\iisres.dll'
'w3wp.exe': Unloaded 'C:\WINDOWS\system32\inetsrv\w3core.dll'
'w3wp.exe': Unloaded 'C:\WINDOWS\system32\iismap.dll'
'w3wp.exe': Unloaded 'C:\WINDOWS\system32\inetsrv\wamreg.dll'
'w3wp.exe': Unloaded 'C:\WINDOWS\system32\inetsrv\lonsint.dll'
'w3wp.exe': Unloaded 'C:\WINDOWS\system32\inetsrv\w3comlog.dll'
'w3wp.exe': Unloaded 'C:\WINDOWS\system32\strmfilt.dll'
'w3wp.exe': Unloaded 'C:\WINDOWS\system32\inetsrv\w3dt.dll'
'w3wp.exe': Unloaded 'C:\WINDOWS\system32\httpapi.dll'
'w3wp.exe': Unloaded 'C:\WINDOWS\system32\inetsrv\w3cache.dll'
'w3wp.exe': Unloaded 'C:\WINDOWS\system32\inetsrv\w3tp.dll'
The thread 'Win32 Thread' (0x1f04) has exited with code 1 (0x1).
The thread 'Win32 Thread' (0x840) has exited with code 1 (0x1).
…
…
…

The thread 'Win32 Thread' (0x1aa4) has exited with code 1 (0x1).
The program '[7120] w3wp.exe: Native' has exited with code 1 (0x1).
The program '[7120] w3wp.exe: Managed' has exited with code 1 (0x1).

Entonces habría que revisar que todos los campos de el workflow estén cargándose correctamente a través:




thisstyle='font-size:10.0pt;line-height:115%;font-family:"Courier New";mso-no-proof:
yes'>.<CreateTask_Method_Name>.ExtendedProperties["LisItem"] = <Cosntante>;style='mso-bidi-font-weight:normal'>



Y cree la instancia de ejecución de modificación dentro del mismo sitio donde se encuentra la Lista.

Espero les sea de utilidad.

Feliz Código

sábado, 21 de febrero de 2009

Mi prrimera entrada de mi Blog

Hola:

Bienvenidos al Blog de Hadriano (adriakuma) este es un espacio a la difusión tecnológica en materias como .Net, Sharepoint, SQL Server 2005, Windows 7, WWF, SQL Server 2008, Podcast de interés, etc.
Espero que el material ofrecido les sea de interés.
Cordiales saludos desde México