¿Cómo incluir fuentes de Google localmente en un proyecto de SharePoint con Visual Studio?

Muchos proyectos web utilizan Google Fonts. En este breve artículo veremos cómo incorporarlas en SharePoint, asumiendo que nuestro proyecto no tiene acceso a Internet y que es necesario descargar las fuente en forma local.


Paso 1 – Descargar las fuentes


Seleccionamos la fuente
Estilo y chartset
CSS
Y finalmente descargamos los archivos de las fuentes:
Paso 2: agregarlas en SharePoint
En nuestro proyecto en Visual Studio agregar las fuentes y la CSS:
Agregamos el link a la CSS en las páginas en donde las utilizaremos o en la página maestra:
<link href=»branding.css» type=»text/css» rel=»stylesheet» id=»stylesheet» />
Usamos las fuentes en nuestro código:
body{
font-family: ‘Source Sans Pro’, sans-serif;
Paso 3: MIME

Es posible que para versiones viejas de IE requieras agregar el MIME «woff» en IIS.


Paso 4: listo

El resultado:

¿Cómo configurar una página de aplicación como página de inicio de nuestro sitio?

Introducción


Supongamos un escenario en donde necesitemos una página de aplicación como home page de nuestro sitio con código C#.
El problema es que estas páginas no están soportadas, con lo cual debemos optar por un método de redireccionamiento.
En este breve artículo mostraremos este método completo desde Visual Studio sin utilizar la infraestructura de publicación de SharePoint (que ya dispone de un método de redireccionamiento a través de configuración y que pueden consultar en este enlace)
Paso 1

Vamos a crear una página HTML que maneja la redirección.
Y un módulo para desplegar esa página.
El módulo:
Reemplazamos sample.txt por nuestra página aspx:
El código de nuestra página HTML será:
<html>
<head>
<META http-equiv=»refresh» content=»0;URL=./_layouts/EMP_Procesos/HomePageSitioProyecto.aspx»>
</head>
</html>
Donde HomePageSitioProyecto es nuestra página de aplicación que desplegamos en LAYOUTS.
Así quedará el contenido de Elements.XML
<?xml version=»1.0″ encoding=»utf-8″?>
  <Module Name=»ModuleLayoutPageRedirect»>
    <File Path=»ModuleLayoutPageRedirect\LayoutPageRedirect.aspx» Url=»LayoutPageRedirect.aspx» />
  </Module>
</Elements>
Paso 2

A través de una feature y un evento, cambiamos la welcome page de nuestro sitio de esta forma:
SPFolder rootFolder = currentWeb.RootFolder;
string home = «LayoutPageRedirect.aspx«;
rootFolder.WelcomePage = home;
rootFolder.Update();
Paso 3

Activamos la feature y vamos a la home page del sitio:
http://server/plantilla_proyecto/plantilla_proyecto
Veremos que pasa por la página (casi imperceptiblemente):
http://server/plantilla_proyecto/LayoutPageRedirect.aspx
Y luego nos redirecciona a:
http://server/plantilla_proyecto/_layouts/EMP_Procesos/HomePageSitioProyecto.aspx

Crear una Master Page en SharePoint 2010 utilizando Visual Studio y C#

Introducción


En este breve artículo veremos cómo trabajar con páginas maestras de SharePoint 2010 utilizando Visual Studio. En este caso no le daremos participación a SharePoint Designer, ya que se trata de un proyecto desarrollado completamente en Visual Studio y desplegado mediante paquetes WSP.
Nota: para una opción con SharePoint Designer, consultar este link http://surpoint.blogspot.com.ar/2013/08/diseno-grafico-en-sharepoint-foundation.html

Paso 1 – Página maestra base

El primer paso será tomar una página maestra base. Podemos trabajar por ejemplo con la minimal.master de catálogo de páginas maestras u optar por una opción de codeplex en: http://startermasterpages.codeplex.com/
En este caso usaremos la v4.aster. Vamos a la galería y la descargamos.


Paso 2 – Creación del módulo

Dentro de Visual Studio agregamos un nuevo ítem al proyecto, en este caso un módulo:
Luego eliminamos sample.txt
Y subimos nuestra página maestra (la del paso 1)
Elements.xml quedará así:
Modificamos Elements.xml como muestra la imagen para aseguramos que quedé en el cache.
Código final:
<?xml version=»1.0″ encoding=»utf-8″?>
  <Module Name=»ModuleMasterPageSitioProyecto» List=»116″ Url=»_catalogs/masterpage»>
  <File Path=»ModuleMasterPageSitioProyecto\PaginaMaestraSitioProyecto.master» Url=»PaginaMaestraSitioProyecto.master» Type=»GhostableInLibrary»/>
</Module>
</Elements>

Paso 3 – Feature
En el tercer paso creamos una feature se Scope Web y le incorporamos el módulo creado en el paso anterior.
Veremos que se incorporará automáticamente a nuestro paquete de despliegue:
Paso 4 – Evento de la feature

Agregamos el evento para activar y desactivar la feature y de esta forma asignar la página maestra:
Así queda el código:
namespace EMP_Procesos.Features.EMP_Pagina_Maestra_Sitio_Proyecto
{

    [Guid(«blabla»)]

    public class EMP_Pagina_Maestra_Sitio_ProyectoEventReceiver : SPFeatureReceiver
    {

        public override void FeatureActivated(SPFeatureReceiverProperties properties)
        {
            SPWeb currentWeb = (SPWeb)properties.Feature.Parent;
            currentWeb.MasterUrl = «/_catalogs/masterpage/PaginaMaestraSitioProyecto.master»;
            currentWeb.CustomMasterUrl = «/_catalogs/masterpage/PaginaMaestraSitioProyecto.master»;
            currentWeb.Update();
        }

        public override void FeatureDeactivating(SPFeatureReceiverProperties properties)
        {
            SPWeb currentWeb = (SPWeb)properties.Feature.Parent;
            currentWeb.MasterUrl = «/_catalogs/masterpage/v4.master»;
            currentWeb.CustomMasterUrl = «/_catalogs/masterpage/v4.master»;
            currentWeb.Update();
        }
    }
}
Paso 5 – Verificación de despliegue

En el catálogo de páginas maestras, debe aparecer:
También debe aparecer la característica:

Para este ejemplo, hicimos un cambio menor en la página maestra para verificar el funcionamiento:
<SharePoint:DeveloperDashboard runat=»server» />
            <div id=»sitio_footer»>Pie de ejemplo</div>
</div>
El resultado es:
Bibliografía

¿Cómo crear una columna que se auto incremente en SharePoint?

Recientemente realizaron esta pregunta típica en un foro.

SP07 – Auto_Increment Column

Transcribo la respuesta con mis recomendaciones:
Alternativas
1) Usar ID
Es la mejor opción porque SharePoint garantiza su unicidad. Pero no se puedes aplicar lógica de negocio. Comienza en 1 y se incrementa en 1. Tendrás huecos cuando se eliminen registros.
2) Manejador de eventos
Crear un receptor de eventos para generar el incremento de acuerdo a la lógica que necesites. Necesitás Visua Studio y #.
3) Flujo de trabajo
Puede ser una alternativa. Pero los flujos de trabajo no están pensando para ello. La ventaja es que no necesitás desarrollar en C# como en la opción 2.
Importante
No uses el campo ID dentro de un campo calculado:
– Tendrás problemas al insertar un registro. Funcionará bien en la modificación.
– No está oficialmente soportado por Microsoft
Si necesitás más ayuda, consultame por favor.
Cordiales saludos!