arquivos mensuais: Decembro 2007

Pensar sobre produtos comerciais

Engada un Proxecto extensións SharePoint Deseño en CodePlex a principios deste ano e, a pesar de que é realmente moi limitado en alcance, Eu estimo que foi descargado por 40 para 60 (posiblemente, ata mesmo 100) companies in just about two months. That indicates to me that there’s a market for that solution and if I were to successfully commercialize it, that could translate into a goodly amount of beer 🙂

A miña formación é en realidade moito máis no desenvolvemento de produtos e sei o que é necesario para traer un produto top-notch, en oposición a un hobby CodePlex, to market. In my vida pasada, Eu era responsable do produto R&D for all software products. The difference between then and now is that I’m a consultant now working for an (excelente) empresa de consultoría (Conchango). Anteriormente, Tiven unha compañía enteira detrás de min e á miña fronte, selling and supporting the products we brought to market. Hoxe, Eu sería só.

Teño varias ideas de produtos presente, but I think the easiest would be to create a commercial version of the above-mentioned CodePlex project that uses that as a starting point and extends it further. My fuzzy off-the-cuff thinking is to charge something like $100 para unha licenza de creador e ilimitado $500 per production web front end. I think I would also give away the source code.

Se tes ideas ou experiencias que está disposto a compartir, por favor, deixe un comentario ou enviar correo-e me directamente. I’d like to hear opinions like:

  • É todo valer a pena?
  • Suxestións prácticas para comercialización, obtención de diñeiro, distribuidor.
  • Prezos.
  • Apoiar.
  • Calquera outro comentario que quere deixar.

It’s "easy" para vir enriba con ideas de produtos e implementar las, though many dozens of hours of work are required. The other stuff is not as easy for me.

</final>

Technorati Tags:

Domingo Morning divertido: “Xesús Must Die”

Nós compramos noso primeiro (e só) "luxury" car back when hurricane Floyd nailed the east coast of the U.S. We got a LOT of rain here in New Jersey and Varios días pasaron before life returned to normal. Just before Floyd struck, fixemos unha oferta para un Volvo usado 850 GL e despois chegou Floyd, levou-o a casa.

It was our first car with a CD player. Like most new car owners, fomos un pouco tolo CD, revived our dormant CD collection and went on long drives just to listen to CD’s in the car. Like all fads, this passed for us and we ended listening to the same CD over and over again. No noso caso, era Jesucristo Superstar.

Un dos (moitos) pezas brillantes en que opera rock é cantada polos tipos relixiosos establecemento, liderado por Caifás, the "High Priest". They sing their way into deciding how to handle the "Jesus problem" and Caiaphas directs them to the conclusion that "Jesus must die". The refrain on the song is "Just must die, debe morrer, debe morrer, this Jesus must die". You hear that refrain a lot in that piece.

No momento, my son was about three years old. You can probably see where this is going.

I came home from work one day and my son is in the living room playing with toys and humming to himself. I’m taking off my jacket, mirando a través do correo electrónico e todo o meu walk-in-the-door habitual cousas e de súpeto podo entender que el está só dicindo, realmente non cantar: "Jesus must die, debe morrer, must die." I was mortified. I could just see him doing that while on one of his baby play dates at a friend’s house — probablemente a última data do xogo co amigo bebé.

We pulled that CD out of the Volvo after that 🙂

</final>

Google aceptou meu Blog Live Spaces no programa AdSense

Actualización: A partir de 03/09, I have found no way to integrate my live spaces account with Google Adsense. Microsoft’s system here seems to prevent all of the technical mechanisms that Google provides would-be adsense hosters. I tend to believe this is mainly a side effect of the security they’ve built into live spaces, not a direct effort to disable Adsense.

Isto non é un post SharePoint, pero pode ser de interese para os blogueiros en xeral.

Someone commented on their Windows Live Spaces blog that Google affirmatively denied their application to participate in AdSense. She theorized that Google denied her because Windows Live Spaces hosts her blog. Con todo, Estiven recentemente aceptado no programa para os meus espazos Blog ao vivo, entón a política ten cambiado ou Google negouse la por algún outro motivo.

Por suposto, Non vexo ningunha maneira obvia para integrar Google AdSense no meu espazo en directo, pero é un comezo 🙂

</final>

Technorati Tags: ,

Implementar Mestre / Relación detalles utilizando listas personalizadas

Os usuarios do foro a miúdo como preguntas como esta:

> Ola,
>
> Por favor, me diga se hai posibilidades de construír unha lista personalizada con
> Tipo de mestre e de detalles (como facturas) sen usar InfoPath.
>

SharePoint ofrece algúns fóra das características da caixa que soportan tipos de requisitos de negocios coma este.

En xeral, one links two lists together using a lookup column. List A contains the invoice header information and list B contains invoice details.

Usa as listas adicionais para manter o número de clientes, números de produtos, etc.

Usar a consulta de contidos web part (en só Moss) and/or a data view web part to create merged views of the lists. SQL Server Reporting Services (SRS) tamén está dispoñible para o lado da mesma comunicación.

Con todo, there are some important limitations that will make it difficult to use pure out-of-the-box features for anything that is even moderately complex. These include:

  • Tamaño da investigación relacionada listas vs. "smartness" of the lookup column type. A lookup column type presents itself on the UI differently depending on whether you’ve enabled multi-select or not. In either case, the out-of-the-box control shows all available items from the source list. If the source list has 1,000 items, that’s going to be a problem. The lookup control does not page through those items. Pola, it pulls all of them into the control. That makes for a very awkward user interface both in terms of data entry and performance.
  • Lookups "pull back" one column of information. You can never pull back more than one column of information from the source list. Por exemplo, you cannot select a customer "12345" and display the number as well as the customer’s name and address at the same time. The lookup only shows the customer number and nothing else. This makes for an awkward and difficult user interface.
  • No intra-form communication. Eu escribín sobre iso aquí. You can’t implement cascading drop-downs, condicional activar / desactivar campos, etc.
  • No cascading deletes or built-in referential integrity. SharePoint treats custom lists as independent entities and does not allow you to link them to each other in a traditional ERD sense. Por exemplo, SharePoint permite que cree dúas listas personalizadas, "customer" and "invoice header". You can create an invoice header that links back to a customer in the customer list. Entón, you can delete the customer from the list. Fóra da caixa, there is no way to prevent this. To solve this kind of problem, usaría normalmente manipuladores de eventos.

Pode parecer sombrío, but I would still use SharePoint as a starting point for building this kind of functionality. Though there are gaps between what you need in a solution, SharePoint permite cubrir esas lagoas usando ferramentas como:

  • Event handlers. Use them to enforce referential integrity.
  • Columnas personalizadas: Create custom column types and use them in lieu of the default lookup column. Add paging, buffer e os recursos AJAX para facelas sensibles.
  • BDC. This MOSS-only feature enables us to query other SharePoint lists with a superior user interface to the usual lookup column. BDC can also reach out to a back end server application. Use BDC to avoid replication. Rather than replicating customer information from a back end ERP system, use BDC instead. BDC features provide a nice user interface to pull that information directly from the ERP system where it belongs and avoids the hassle of maintaining a replication solution.

    BDC é unha característica Moss (non está dispoñible no WSS) and is challenging to configure.

  • Formulario web ASP.NET: Crear un formulario habilitados para AJAX completo que utiliza o modelo de obxecto do SharePoint e / ou servizos web para alavancar as listas do SharePoint, que proporciona unha interface de usuario moi sensible.

A última opción pode sentir como se está empezando de cero, pero considerar o feito de que a plataforma SharePoint comeza fóra coas seguintes características principais:

  • Modelo de seguridade co mantemento.
  • Sistema de menú co mantemento.
  • "Master table" (i.e. Contraer personalizadas) con seguridade, built-in de mantemento e auditoría.
  • Procurar.
  • Volver acabar ferramentas de integración (BDC).

Se comeza cun novo proxecto en branco no visual studio, ten unha morea de infraestrutura e encanamento para construír antes de chegar preto do que o SharePoint ofrece.

I do believe that Microsoft intends to extend SharePoint in this direction of application development. It seems like a natural extension to the existing SharePoint base. Microsoft’s CRM application provides a great deal of extensibility of the types needed to support header/detail application development. Although those features are in CRM, the technology is obviously available to the SharePoint development team and I expect that it will make its way into the SharePoint product by end of 2008. If anyone has an knowledge or insight into this, por favor, deixe un comentario.

</final>

Consello Rápida: Content Query web Part, Busca de valor de columna e XSL

I have a column name in a content type named "Real Estate Location".

That column is of type "lookup".

Eu modifiquei <CommonViewFields> e ItemStyle.xsl para mostrar a columna.

Un simple <XSL:valor de select =…> retorna un valor interno que inclúe datos de posición ordinal, como:

1;#Miami

Para obter o valor humano-friendly, usar XSL substring-after, como se mostra:

<XSL:value-of select="substring-after(@ Real_x005F_x0020_Estate_x005F_x0020_Location,'#')"></XSL:valor de>

Use esta técnica cando se está a traballar con valores de investigación en transformacións XSL e que obter o valor humano-friendly.

</ Comezo>

Technorati Tags: , ,

Beagle SharePoint edición de decembro Up & Vivir

Moitos de vós xa saben diso, pero a edición de decembro da Beagle SharePoint é en directo.

Todo artigo paga a pena ler na miña opinión.

Quero dar unha pequena colisión extra para artigo do meu compañeiro (Natalya Voskrensenskya). She provides a screen-shot extravaganza while describing how she used custom lists, fluxo de traballo, SharePoint Deseño, data views and other elements to implement a self-service training feature in MOSS. She describes techniques that can be applied in many different business scenarios. Check out o blog dela mentres está niso.

Non esqueza comprobar meu artigo as well 🙂 I wrote about using MOSS to help an HR department manage open positions.

</final>

Moss Dime “Ingreso” Para editar unha tarefa de fluxo de traballo, Pero eu realmente teño acceso

I’ve implemented a workflow using SharePoint Designer in a site which is mainly read-only to "NT_AUTHORITY\Authenticated Users" (i.e. todos). There is a forms library for an InfoPath form. There is an associated workflow tasks list as well so that when the workflow operates, pode atribuír tarefas a persoas.

Eu romper o permiso para a biblioteca de formularios e lista de tarefas para que calquera usuario rexistrado pode crear formularios e actualizar as súas tarefas.

I test with my low-privileges test account.

Podo cubrir e gardar un formulario á biblioteca? –> SI

Podo acceder a tarefa desde unha ligazón de correo-e? –> SI

Podo ver unha ligazón Editar tarefa de fluxo de traballo –> SI

Podo facer clic na ligazón? –> NO … Permiso denegado.

Polo que podo ver unha ligazón Editar que nega-me o permiso cando premer sobre el? That’s not how it’s supposed to work…

Eu atravesso a configuración de seguridade de novo, very closely. I do it again. I considerar a exclusión deste post porque eu obviamente non sabe nada sobre seguridade.

Finalmente, I search the Internets. I find this highly unlikely MSDN forum thread: http://forums.microsoft.com/TechNet/ShowPost.aspx?PostID=1838253&SiteID=17

Os carteis parecen suxerir que o simple acto de exportar o fluxo de traballo para unha travessa unidade pode resolver un problema de seguridade Moss? I can hardly believe I just typed that. I’m reminded of the South Park episode about the 9/11 conspiración onde Stan está pedindo nosa Preznit, "Really?" over and over again.

Así, nada que perder, Eu lume ata SPD, dereito do rato sobre o fluxo de traballo e garda-lo para o meu c:\ drive. That would be the c:\ drive on my laptop. I’m looking over my shoulder the whole time so that no one will ask me, "why are you saving that workflow to your laptop?"

Incrible, that solves my problem. I can edit the task.

Teño a honra de indicar que esta é a solución alternativa de fluxo de traballo máis bizarro de 2007.

</final>

SharePoint Deseño, Número actual “Codificado URL Absoluto” e HTTPS

We often want to send an email that includes a hyperlink to the item or document that triggered the workflow. We can use current item’s "Encoded Absolute URL" for this purpose. Con todo, it always seems to use "http" for the URL protocol. If your site runs on HTTPS then it will not work for you.

imaxe

Polo que eu sei, there is no out of the box solution to this problem. If you need to use HTTPS, non ten a opción de caixa.

Para resolver-lo, create a custom action that provides a string replace function to use in your workflow. Alternatively, usar unha ferramenta de terceiro partido, como o excelente paquete aquí: http://www.codeplex.com/spdwfextensions 🙂

</final>

Fácil e rápida: Determinar Nome da Columna Interna de unha columna de páxina

Actualización: Jeremy Thake ten un blog sobre iso e poñer-se algúns código para unha aplicación de consola que mostra os nomes internos.

I was trying to get a content query web part to display a due date from a task and because the screen label is "Due Date", I asumido que o nome da columna para usar en <CommonViewFields> is "Due_x0020_Date".

Mal!

The real column name in this case was "DueDate".

Como é que eu atopalo? I re-read Heather Blog de Salomón sobre a modificación CQWP to show additional columns of data. She describes this process at step #13. Trust it. It’s correct. Polo menos, it was correct for me. I did not trust it at first for another column with a much longer name.

I say "Trust it" because I did not trust it and probably wasted near two hours butting my head up against a wall. After I resolved the "DueDate" nome, Quería engadir outro campo de <CommonViewFields>. Using the Solomon technique, I was getting a column name like "XYZ_x0020_Project_x0020_Due_x00".

Eu penso para min mesmo, that’s clearly a truncated name. I went ahead and un-truncated it with no success. I finally used the seemingly truncated name and it worked.

Consello extra: Cando estaba a traballar co CQWP, se eu engade un nome interno malo <CommonViewFields>, the CQWP would tell me that the query had returned no results. Pero, se eu engade un tipo de datos para o nome do campo, it would return a result. Adding the data type actually masked a problem since I was referencing a non-existent field. I could add it, pero cando intento amosar o seu valor, I would always get a blank.

Isto non mascarou o erro:

<CommonViewFields>Due_x0020_Date;</CommonViewFields>

Este fixo enmascarar o erro:

<CommonViewFields>Due_x0020_Date,Datetime;</CommonViewFields>

</final>

Coidado con alteracións feitas a ItemStyle.xsl

Eu estaba a traballar con ItemStyle.xsl para personalizar a aparencia dunha web Part de Contido da consulta e da dereita sobre a hora do xantar, I made a breaking change to the xsl. I didn’t realize it, but this had far reaching effects throughout the site collection. I went off to lunch and upon my return, notou esta mensaxe aparecer unha chea de lugares:

Non é posíbel mostrar este web Part. Para corrixilo, abrir esta páxina web nun editor de Windows SharePoint Services compatible con HTML, como Microsoft Office SharePoint Deseño. Se o problema persiste, contacte co administrador do servidor web.

Eu culpaba ao cliente (non entendendo aínda que a culpa era miña, neste punto) but eventually noticed that visual studio intellisense was warning me that I had malformed XSL. I corrected it and everything started working.

Sexa enervante coidado ao traballar con ItemStyle.xsl (e calquera dos arquivos globais XSL) — rompe-los afecta moitos artefactos no conxunto de sitios.

</ Comezo>