{"id":833,"date":"2013-09-10T10:00:48","date_gmt":"2013-09-10T09:00:48","guid":{"rendered":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/?p=833"},"modified":"2013-09-09T14:57:35","modified_gmt":"2013-09-09T13:57:35","slug":"sharepoint-crear-depurar-y-pruebas-unitarias-en-timerjob","status":"publish","type":"post","link":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-crear-depurar-y-pruebas-unitarias-en-timerjob\/","title":{"rendered":"[SharePoint] Crear, depurar y pruebas unitarias en TimerJob"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" class=\"alignleft\" alt=\"\" src=\"http:\/\/www.wictorwilen.se\/Media\/Default\/WindowsLiveWriter\/TimerjobchangesandadditionsinSharePoint2_9537\/image_5.png\" width=\"150\" height=\"173\" \/>Echando la vista atr\u00e1s hace tiempo que escribo un post de desarrollo 100% as\u00ed que ya va siendo hora. SharePoint entre sus virtudes es que es una herramienta en la que se pueden hacer muchas cosas de muchas formas diferentes. Una de esas herramientas en la que utilizamos cuando solamente cuando es impepinable es el TimerJob.<\/p>\n<h4>\u00bfQue es un TimerJob?<\/h4>\n<p>Un TimerJob lo podemos definir como una Tarea programada de Windows que se ejecuta sobre un\/unas colecciones de sitio para hacer una determinada acci\u00f3n, en un determinado tiempo y con una cierta frecuencia (cada hora, cada minuto, cada lunes,etc&#8230;) dentro de nuestro SharePoint.<\/p>\n<h4>\u00bfQu\u00e9 podemos hacer en un TimerJob?<\/h4>\n<p><!--more--><br \/>\nEn un TimerJob podemos hacer pr\u00e1cticamente de todo, pero hay que saber muy bien cuando usarlo, ya que por ejemplo si quiero estar en el campo puedo ir con un Ferrari aunque NO es conveniente verdad :-). Por lo general yo recomiendo usarlo cuando queremos hacer una acci\u00f3n con cierta periodicidad y que no responden a ning\u00fan evento que hay en SharePoint. Porque si responde a un evento de SharePoint mejor hacer uso de un Workflows o EventReceiver. Entonces que nos queda pues el sincronizar SharePoint con otros datos externos, enviar informaci\u00f3n almacenada en SharePoint a otros sistemas, envi\u00f3 de informes con informaci\u00f3n relativa de SharePoint, etc&#8230;<\/p>\n<p>Una vez ya tenemos un caso donde el uso del TimerJob es lo m\u00e1s conveniente vamos a implementarlo <strong>\u00bfComo?<\/strong> para ello aqu\u00ed este magnifico <a href=\"http:\/\/www.andrewconnell.com\/Creating-Custom-SharePoint-Timer-Jobs\" target=\"_blank\">post <\/a>del maestro <a href=\"https:\/\/twitter.com\/andrewconnell\" target=\"_blank\">Andrew Connell<\/a><br \/>\nEn primer lugar nos creamos una clase que herede de Microsoft.SharePoint.Administration.SPJobDefinition y sobre escribimos el m\u00e9todo \u00abExecute\u00bb<\/p>\n<pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\r\nnamespace TaskLogger {\r\npublic class TaskLoggerJob : SPJobDefinition{\r\npublic TaskLoggerJob () : base(){ }\r\npublic TaskLoggerJob (string jobName, SPService service, SPServer server, SPJobLockType targetType) :\r\nbase (jobName, service, server, targetType) { }\r\npublic TaskLoggerJob (string jobName, SPWebApplication webApplication) :\r\nbase (jobName, webApplication, null, SPJobLockType.ContentDatabase)\r\n {\r\nthis.Title = &quot;Task Logger&quot;;\r\n }\r\npublic override void Execute (Guid contentDbId)\r\n{\r\n\/\/ get a reference to the current site collection's content database\r\nSPWebApplication webApplication = this.Parent as SPWebApplication;\r\nSPContentDatabase contentDb = webApplication.ContentDatabases&#x5B;contentDbId];\r\nSPList taskList = contentDb.Sites&#x5B;0].RootWeb.Lists&#x5B;&quot;Tasks&quot;];\r\nSPListItem newTask = taskList.Items.Add();\r\n newTask&#x5B;&quot;Title&quot;] = DateTime.Now.ToString(); newTask.Update();\r\n}\r\n}\r\n}\r\n<\/pre>\n<p>La funcionalidad de este c\u00f3digo es que a\u00f1ade un elemento a la lista \u00abTask\u00bb.<br \/>\nEl siguiente paso es hacer que cuando activemos\/desactivemos esta Feature en nuestro Site pues instalemos\/desinstalemos este TimerJob para ello podemos hacer uso de este c\u00f3digo:<\/p>\n<pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\r\npublic override void FeatureActivated (SPFeatureReceiverProperties properties)\r\n{\r\nSPSite site = properties.Feature.Parent as SPSite;\r\n \/\/ make sure the job isn't already registered\r\nforeach (SPJobDefinition job in site.WebApplication.JobDefinitions)\r\n{ if (job.Name == TASK_LOGGER_JOB_NAME) job.Delete(); }\r\n \/\/ install the job\r\nTaskLoggerJob taskLoggerJob = new TaskLoggerJob(TASK_LOGGER_JOB_NAME, site.WebApplication);\r\n SPMinuteSchedule schedule = new SPMinuteSchedule();\r\nschedule.BeginSecond = 0;\r\nschedule.EndSecond = 59;\r\nschedule.Interval = 5;\r\ntaskLoggerJob.Schedule = schedule;\r\ntaskLoggerJob.Update(); }\r\n\r\npublic override void FeatureDeactivating (SPFeatureReceiverProperties properties)\r\n {\r\nSPSite site = properties.Feature.Parent as SPSite;\r\n\/\/ delete the job\r\nforeach (SPJobDefinition job in site.WebApplication.JobDefinitions)\r\n { if (job.Name == TASK_LOGGER_JOB_NAME) job.Delete(); }\r\n<\/pre>\n<h4>Posibles errores<\/h4>\n<p>Parece muy bonito todo esto sobre todo si lo ejecutamos en nuestro entorno de desarrollo donde m\u00e1s o menos los dos\/tres usuarios que tenemos tiene permisos para todo, el usuario administrador tiene permiso para todo, pero tambien el usuario administrador de la base de datos e incluso el del pool de aplicaciones. Esto puede propiciar errores a la hora de ponerlo en producci\u00f3n hay que tenerlo muy encuentra porque sino no va a funcionar.<br \/>\nEl primer error que se nos puede producir es que no se active la caracter\u00edstica en nuestro sitio y nos de un error de que no se ha podido activar la feature. Nuestro pensamiento es que por la interfaz gr\u00e1fica no se puede hacer pues lo hacemos haciendo uso de PowerShell (que como es la moda y me se las instrucciones para activarla lo tengo f\u00e1cil). Ejecutamos el siguiente comando en la consola PowerShell:<br \/>\n<em>Enable-SPFeature -Identity \u00abId de la feature\u00bb -WebApplication http:\/\/myentorno.dev<\/em><br \/>\nY funciona a la perfecci\u00f3n. Entonces esperamos que llegue el momento y se ejecute nuestro desarrollo pero miramos la tarea en la Administraci\u00f3n Central y vemos que nos ha dado un error <em>\u00abObject not found\u00bb<\/em>. Vale el primer pensamiento es decir algo que me he desarrollado muy mal, pero no existe un problema ya que el usuario con el que se ejecuta este proceso es el usuario del Pool de Aplicaciones de la Adminsitraci\u00f3n Central. Con esto quiero indicar que hay que mirar todas las variables que hay en el entorno y darnos cuenta de que nuestro desarrollo va a funcionar en el sitio de producci\u00f3n. No es lo mismo un desarrollo para un colecci\u00f3n de sitios que un desarrollo para la Administraci\u00f3n Central. El no tener en cuenta estas variables a la hora de dise\u00f1ar una soluci\u00f3n nos puede costar mucho tiempo perdido una vez ya tenemos montada la soluci\u00f3n.<\/p>\n<h3>Depurar el Timer Job<\/h3>\n<p>La verdad es que la depuraci\u00f3n es algo muy importante y que gracias a una herramienta tan completa como es Visual Studio nos lo pone de una forma relativemente simple. Para ello lo \u00fanico que tenemos que hacer es Asociar el proceso OWSTIMER desde Visual Studio para ello <strong>Depurar-&gt;Asociar Proceso<\/strong><br \/>\n<a href=\"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2013\/09\/TimerJob.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-full wp-image-846\" alt=\"TimerJob\" src=\"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2013\/09\/TimerJob.png\" width=\"744\" height=\"281\" srcset=\"https:\/\/encaminablogs.wpenginepowered.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2013\/09\/TimerJob.png 744w, https:\/\/encaminablogs.wpenginepowered.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2013\/09\/TimerJob-300x113.png 300w\" sizes=\"auto, (max-width: 744px) 100vw, 744px\" \/><\/a><br \/>\nA continuaci\u00f3n seleccionamos el proceso OWSTIMER y a depurar \ud83d\ude42<br \/>\n<a href=\"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2013\/09\/TimerJob2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-full wp-image-847\" alt=\"TimerJob2\" src=\"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2013\/09\/TimerJob2.png\" width=\"737\" height=\"500\" srcset=\"https:\/\/encaminablogs.wpenginepowered.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2013\/09\/TimerJob2.png 737w, https:\/\/encaminablogs.wpenginepowered.com\/desarrollandosobresharepoint\/wp-content\/uploads\/sites\/8\/2013\/09\/TimerJob2-300x203.png 300w\" sizes=\"auto, (max-width: 737px) 100vw, 737px\" \/><\/a><\/p>\n<h3>Como hacer Pruebas Unitarias<\/h3>\n<p>Bueno lo primero es que yo creo que en todos los proyectos tenemos que hacer pruebas unitarias independientemente del contexto, que mi funci\u00f3n como constructor de aplicaciones web es hacerlas con la mayor calidad posible (dentro de mis conocimientos) y para ello creo que un buen ciclo de vida del produce da un plus de calidad a nuestros desarrollos que para algo somos ingenieros de software para hacer calidad en lo que hacemos sino mejor hacer churros \ud83d\ude1b Dicho esto os aconsejo a todos que no os perd\u00e1is la charla sobre esta materia que va a impartir <a href=\"https:\/\/twitter.com\/davidmartos\">David Martos<\/a> en la <a href=\"http:\/\/www.iberiansharepointconference.com\" target=\"_blank\">Iberian SharePoint Conference<\/a> (Aun no estas inscrito? A que esper\u00e1s?).<br \/>\nLas pruebas unitarias nos brindan la facilidad de probar una unidad de c\u00f3digo con el objetivo de llevar acabo una prueba de forma r\u00e1pida, simple y siempre con el mismo resultado sin importar el n\u00famero de veces que vaya a ser ejecutado.<br \/>\nHace ya un tiempo que hice una peque\u00f1a introducci\u00f3n a la pruebas unitarias en este <a href=\"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/2013\/03\/05\/sharepoint-2013-introduccion-a-las-pruebas-unitarias\/\" target=\"_blank\">post<\/a>. El cual es valido al 100 % el crearlas dentro de un proyecto de TimerJob pero que ventajas extra nos da el hacer pruebas unitarias en un TimerJob. La principal ventaja es que no tenemos que esperar a que se ejecute el proceso nos simplifica mucho las pruebas, la depuraci\u00f3n del mismo. Una vez a superado las pruebas unitarias estaremos seguro que nuestro desarrollo funciona a la perfecci\u00f3n. Ahora nos quedar\u00e1 quedarnos con la parte de sistemas y ver si disponemos de los permisos necesarios para que nuestro TimerJob funcione a la perfecci\u00f3n.<\/p>\n<!-- AddThis Advanced Settings generic via filter on the_content --><!-- AddThis Share Buttons generic via filter on the_content --><span class=\"et_bloom_bottom_trigger\"><\/span>","protected":false},"excerpt":{"rendered":"<p>Echando la vista atr\u00e1s hace tiempo que escribo un post de desarrollo 100% as\u00ed que ya va siendo hora. SharePoint entre sus virtudes es que es una herramienta en la que se pueden hacer muchas cosas de muchas formas diferentes. &hellip; <a href=\"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-crear-depurar-y-pruebas-unitarias-en-timerjob\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><!-- AddThis Advanced Settings generic via filter on get_the_excerpt --><!-- AddThis Share Buttons generic via filter on get_the_excerpt --><\/p>\n","protected":false},"author":8,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5,11],"tags":[151,70],"class_list":["post-833","post","type-post","status-publish","format-standard","hentry","category-desarrollo","category-sharepoint-2013","tag-sharepoint-2013","tag-timerjob"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v18.2.1 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>[SharePoint] Crear, depurar y pruebas unitarias en TimerJob - Desarrollando sobre SharePoint<\/title>\n<meta name=\"description\" content=\"En este articulo se explica como crear, depurar y testear los TimerJob. Una soluci\u00f3n bastante interesante que se puede utilizar en SharePoint para hacer tareas periodicas\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-crear-depurar-y-pruebas-unitarias-en-timerjob\/\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"[SharePoint] Crear, depurar y pruebas unitarias en TimerJob - Desarrollando sobre SharePoint\" \/>\n<meta name=\"twitter:description\" content=\"En este articulo se explica como crear, depurar y testear los TimerJob. Una soluci\u00f3n bastante interesante que se puede utilizar en SharePoint para hacer tareas periodicas\" \/>\n<meta name=\"twitter:image\" content=\"http:\/\/www.wictorwilen.se\/Media\/Default\/WindowsLiveWriter\/TimerjobchangesandadditionsinSharePoint2_9537\/image_5.png\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Adri\u00e1n D\u00edaz\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/sharepoint-crear-depurar-y-pruebas-unitarias-en-timerjob\\\/#article\",\"isPartOf\":{\"@id\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/sharepoint-crear-depurar-y-pruebas-unitarias-en-timerjob\\\/\"},\"author\":{\"name\":\"Adri\u00e1n D\u00edaz\",\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/#\\\/schema\\\/person\\\/c9bfaede1bfba9564bb7f500788782bb\"},\"headline\":\"[SharePoint] Crear, depurar y pruebas unitarias en TimerJob\",\"datePublished\":\"2013-09-10T09:00:48+00:00\",\"mainEntityOfPage\":{\"@id\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/sharepoint-crear-depurar-y-pruebas-unitarias-en-timerjob\\\/\"},\"wordCount\":1192,\"image\":{\"@id\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/sharepoint-crear-depurar-y-pruebas-unitarias-en-timerjob\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/www.wictorwilen.se\\\/Media\\\/Default\\\/WindowsLiveWriter\\\/TimerjobchangesandadditionsinSharePoint2_9537\\\/image_5.png\",\"keywords\":[\"sharepoint 2013\",\"timerjob\"],\"articleSection\":[\"desarrollo\",\"sharepoint 2013\"],\"inLanguage\":\"es\"},{\"@type\":\"WebPage\",\"@id\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/sharepoint-crear-depurar-y-pruebas-unitarias-en-timerjob\\\/\",\"url\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/sharepoint-crear-depurar-y-pruebas-unitarias-en-timerjob\\\/\",\"name\":\"[SharePoint] Crear, depurar y pruebas unitarias en TimerJob - Desarrollando sobre SharePoint\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/sharepoint-crear-depurar-y-pruebas-unitarias-en-timerjob\\\/#primaryimage\"},\"image\":{\"@id\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/sharepoint-crear-depurar-y-pruebas-unitarias-en-timerjob\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/www.wictorwilen.se\\\/Media\\\/Default\\\/WindowsLiveWriter\\\/TimerjobchangesandadditionsinSharePoint2_9537\\\/image_5.png\",\"datePublished\":\"2013-09-10T09:00:48+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/#\\\/schema\\\/person\\\/c9bfaede1bfba9564bb7f500788782bb\"},\"description\":\"En este articulo se explica como crear, depurar y testear los TimerJob. Una soluci\u00f3n bastante interesante que se puede utilizar en SharePoint para hacer tareas periodicas\",\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/sharepoint-crear-depurar-y-pruebas-unitarias-en-timerjob\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/sharepoint-crear-depurar-y-pruebas-unitarias-en-timerjob\\\/#primaryimage\",\"url\":\"http:\\\/\\\/www.wictorwilen.se\\\/Media\\\/Default\\\/WindowsLiveWriter\\\/TimerjobchangesandadditionsinSharePoint2_9537\\\/image_5.png\",\"contentUrl\":\"http:\\\/\\\/www.wictorwilen.se\\\/Media\\\/Default\\\/WindowsLiveWriter\\\/TimerjobchangesandadditionsinSharePoint2_9537\\\/image_5.png\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/#website\",\"url\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/\",\"name\":\"Desarrollando sobre SharePoint\",\"description\":\"Arquitectura, buenas pr\u00e1cticas y desarrollo sobre la nueva herramienta de Microsoft SharePoint 2016\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/#\\\/schema\\\/person\\\/c9bfaede1bfba9564bb7f500788782bb\",\"name\":\"Adri\u00e1n D\u00edaz\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/fe10b9eaf8ce4565ec75fba5a0d121c16186696e515cad2bedd42f6cf54e2007?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/fe10b9eaf8ce4565ec75fba5a0d121c16186696e515cad2bedd42f6cf54e2007?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/fe10b9eaf8ce4565ec75fba5a0d121c16186696e515cad2bedd42f6cf54e2007?s=96&d=mm&r=g\",\"caption\":\"Adri\u00e1n D\u00edaz\"},\"description\":\"Adri\u00e1n D\u00edaz es Ingeniero Inform\u00e1tico por la Universidad Polit\u00e9cnica de Valencia. Es MVP de Microsoft en la categor\u00eda Office Development desde 2014, MCPD de SharePoint 2010, Microsoft Active Profesional y Microsoft Comunity Contribuitor 2012. Cofundador del grupo de usuarios de SharePoint de Levante LevaPoint. Lleva desarrollando con tecnolog\u00edas Microsoft m\u00e1s de 10 a\u00f1os y desde hace 3 a\u00f1os est\u00e1 centrado en el desarrollo sobre SharePoint. Actualmente es Software &amp; Cloud Architect Lead en ENCAMINA.\",\"url\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/author\\\/desarrollandosobresharepoint\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"[SharePoint] Crear, depurar y pruebas unitarias en TimerJob - Desarrollando sobre SharePoint","description":"En este articulo se explica como crear, depurar y testear los TimerJob. Una soluci\u00f3n bastante interesante que se puede utilizar en SharePoint para hacer tareas periodicas","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-crear-depurar-y-pruebas-unitarias-en-timerjob\/","twitter_card":"summary_large_image","twitter_title":"[SharePoint] Crear, depurar y pruebas unitarias en TimerJob - Desarrollando sobre SharePoint","twitter_description":"En este articulo se explica como crear, depurar y testear los TimerJob. Una soluci\u00f3n bastante interesante que se puede utilizar en SharePoint para hacer tareas periodicas","twitter_image":"http:\/\/www.wictorwilen.se\/Media\/Default\/WindowsLiveWriter\/TimerjobchangesandadditionsinSharePoint2_9537\/image_5.png","twitter_misc":{"Escrito por":"Adri\u00e1n D\u00edaz","Tiempo de lectura":"6 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-crear-depurar-y-pruebas-unitarias-en-timerjob\/#article","isPartOf":{"@id":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-crear-depurar-y-pruebas-unitarias-en-timerjob\/"},"author":{"name":"Adri\u00e1n D\u00edaz","@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/#\/schema\/person\/c9bfaede1bfba9564bb7f500788782bb"},"headline":"[SharePoint] Crear, depurar y pruebas unitarias en TimerJob","datePublished":"2013-09-10T09:00:48+00:00","mainEntityOfPage":{"@id":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-crear-depurar-y-pruebas-unitarias-en-timerjob\/"},"wordCount":1192,"image":{"@id":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-crear-depurar-y-pruebas-unitarias-en-timerjob\/#primaryimage"},"thumbnailUrl":"http:\/\/www.wictorwilen.se\/Media\/Default\/WindowsLiveWriter\/TimerjobchangesandadditionsinSharePoint2_9537\/image_5.png","keywords":["sharepoint 2013","timerjob"],"articleSection":["desarrollo","sharepoint 2013"],"inLanguage":"es"},{"@type":"WebPage","@id":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-crear-depurar-y-pruebas-unitarias-en-timerjob\/","url":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-crear-depurar-y-pruebas-unitarias-en-timerjob\/","name":"[SharePoint] Crear, depurar y pruebas unitarias en TimerJob - Desarrollando sobre SharePoint","isPartOf":{"@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/#website"},"primaryImageOfPage":{"@id":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-crear-depurar-y-pruebas-unitarias-en-timerjob\/#primaryimage"},"image":{"@id":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-crear-depurar-y-pruebas-unitarias-en-timerjob\/#primaryimage"},"thumbnailUrl":"http:\/\/www.wictorwilen.se\/Media\/Default\/WindowsLiveWriter\/TimerjobchangesandadditionsinSharePoint2_9537\/image_5.png","datePublished":"2013-09-10T09:00:48+00:00","author":{"@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/#\/schema\/person\/c9bfaede1bfba9564bb7f500788782bb"},"description":"En este articulo se explica como crear, depurar y testear los TimerJob. Una soluci\u00f3n bastante interesante que se puede utilizar en SharePoint para hacer tareas periodicas","inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-crear-depurar-y-pruebas-unitarias-en-timerjob\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-crear-depurar-y-pruebas-unitarias-en-timerjob\/#primaryimage","url":"http:\/\/www.wictorwilen.se\/Media\/Default\/WindowsLiveWriter\/TimerjobchangesandadditionsinSharePoint2_9537\/image_5.png","contentUrl":"http:\/\/www.wictorwilen.se\/Media\/Default\/WindowsLiveWriter\/TimerjobchangesandadditionsinSharePoint2_9537\/image_5.png"},{"@type":"WebSite","@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/#website","url":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/","name":"Desarrollando sobre SharePoint","description":"Arquitectura, buenas pr\u00e1cticas y desarrollo sobre la nueva herramienta de Microsoft SharePoint 2016","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Person","@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/#\/schema\/person\/c9bfaede1bfba9564bb7f500788782bb","name":"Adri\u00e1n D\u00edaz","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/secure.gravatar.com\/avatar\/fe10b9eaf8ce4565ec75fba5a0d121c16186696e515cad2bedd42f6cf54e2007?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/fe10b9eaf8ce4565ec75fba5a0d121c16186696e515cad2bedd42f6cf54e2007?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/fe10b9eaf8ce4565ec75fba5a0d121c16186696e515cad2bedd42f6cf54e2007?s=96&d=mm&r=g","caption":"Adri\u00e1n D\u00edaz"},"description":"Adri\u00e1n D\u00edaz es Ingeniero Inform\u00e1tico por la Universidad Polit\u00e9cnica de Valencia. Es MVP de Microsoft en la categor\u00eda Office Development desde 2014, MCPD de SharePoint 2010, Microsoft Active Profesional y Microsoft Comunity Contribuitor 2012. Cofundador del grupo de usuarios de SharePoint de Levante LevaPoint. Lleva desarrollando con tecnolog\u00edas Microsoft m\u00e1s de 10 a\u00f1os y desde hace 3 a\u00f1os est\u00e1 centrado en el desarrollo sobre SharePoint. Actualmente es Software &amp; Cloud Architect Lead en ENCAMINA.","url":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/author\/desarrollandosobresharepoint\/"}]}},"_links":{"self":[{"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/posts\/833","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/comments?post=833"}],"version-history":[{"count":0,"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/posts\/833\/revisions"}],"wp:attachment":[{"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/media?parent=833"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/categories?post=833"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/tags?post=833"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}