2009-08-19 3 views
3

Je suis actuellement en train de développer une application et j'ai le choix entre faire une application web ASP.NET standard ou l'intégrer dans SharePoint. Notre client aimerait que ce soit SharePoint si possible, car ils sont sous pression pour y mettre tout nouveau développement, mais ASP.NET standard est toujours une option.Comment puis-je décider si une application convient à SharePoint?

C'est une application pour gérer et visualiser les données dans une base de données avec environ 10 tables, y compris un flux de travail d'approbation lorsque certains nouveaux éléments sont ajoutés. L'intégrité référentielle des données est importante.

J'ai l'expérience du développement d'applications ASP.NET, mais très peu avec SharePoint. Est-ce que quelqu'un a des critères qu'ils appliqueraient pour décider entre les deux?

Jusqu'à présent, je pense le long des lignes de:

  • intégrité référentielle des données est importante et SP ne semble pas gérer cela très bien sans écrire beaucoup de code personnalisé
  • SharePoint n » t semblent très échelonnable avec la limite suggérée de 2000 articles dans une liste
  • l'application a un workflow d'approbation, ce qui ne semble être quelque chose SP fait bien

sur e En gros, il semblerait que nous finirions par écrire beaucoup de code personnalisé et n'utiliserions vraiment aucune des fonctionnalités SP originales. Donc, ma pensée est pourquoi ne pas écrire simplement une application ASP.NET standard.

Y a-t-il d'autres éléments clés à prendre en compte?

Répondre

9

Vous avez peut-être déjà trouvé ce lien: http://blogs.msdn.com/sanjaynarang/archive/2009/06/19/should-i-build-my-application-in-sharepoint-vs-asp-net.aspx. Sinon, c'est un bon point de départ avec de bonnes questions à poser. Ce qui suit est mon point de vue en tant que développeur .NET de longue date (aussi longtemps que la plate-forme a été autour) et architecte SharePoint (depuis 2003). C'est en gros ma façon de dire que j'ai été des deux côtés de la barrière. À mon avis, SharePoint est une plate-forme , pas un produit . Comme ASP.NET fournit des services Web utiles au framework .NET principal, SharePoint fournit des services et des fonctionnalités supplémentaires par-dessus ASP.NET. La plate-forme supprime le besoin d'écrire des éléments de code communs qui font partie de tant d'ASP.Applications NET: code de sécurité, gestion du profil utilisateur, personnalisation, ligne de base UI/UX, etc. Lorsque vous entrez dans la plomberie, vous bénéficiez d'un support de mise en cache riche nécessitant une configuration minimale, une modularité de personnalisation via les fonctionnalités, etc.

Faut-il construire chaque application dans SharePoint? Je ne pousserais jamais pour ça. Avec mon client actuel, nous utilisons une combinaison d'applications ASP.NET personnalisées et basées sur SharePoint. Qu'une application soit construite dans SharePoint ou écrite à partir de la base dans ASP.NET est une fonction de ce que nous faisons. Nous menons le même genre d'exercice que vous êtes. Si les fonctionnalités et les fonctionnalités de SharePoint peuvent être utilisées pour réduire le temps de développement, cela se passe dans SharePoint. Si le besoin est trop spécifique ou si nous pensons que nous travaillerons autour de SharePoint, nous suivons la route de l'application personnalisée. basé sur ce que vous dites, il:

Vous avez des très spécifiques préoccupations pour votre application, alors laissez-moi prendre une fissure à eux avec le peu que je comprends de vos besoins:

  1. intégrité référentielle On dirait que votre modèle de données est assez spécifique. Construire votre architecture de l'information pour tirer parti nativement des colonnes de site, des types de contenu, et des listes probablement n'a pas de sens. Cependant, cela ne libère pas SharePoint. Il n'y a absolument aucune raison pour laquelle vous ne pourriez pas construire le modèle de données que vous voulez (probablement dans SQL Server) et le consommer avec des composants qui résident dans SharePoint. Si vous utilisez MOSS, certains des WebParts de BDC peuvent fonctionner immédiatement. Si ce n'est pas le cas, vous écrirez toujours des commandes et/ou des pages pour travailler avec les données, n'est-ce pas? Il n'y a rien de mal à utiliser SharePoint comme couche de présentation pour accéder directement à SQL ou (de manière plus évolutive, à n tiers) aller à l'encontre des services métier ailleurs.

  2. 2000 LIMITE D'ARTICLE: il s'agit d'une préoccupation commune et qui est mal comprise. Il n'y a pas de limite d'article de liste de 2000; la mesure réelle est 2000 éléments par vue (et c'est avec des vues hors de la boîte, soit dit en passant) ou "conteneur" (comme un dossier). Vous pouvez stocker beaucoup plus de fois (des millions, si vous voulez) dans une liste si vous partitionnez avec des dossiers, construisez votre propre vue à la page, etc. Encore une fois, compte tenu de votre structure de données et du besoin probable d'esquiver les listes de SharePoint ne serait pas un problème si vous avez simplement consommé des données de SQL Server.

  3. WORKFLOW: SharePoint est un hôte de flux de travail agréable et les flux de travail OOTB sont pratiques. Je suppose que vous regardez MOSS (par opposition à WSS), mais juste au cas où: le flux de travail d'approbation est livré avec MOSS. Si vous êtes limité à WSS, vous n'avez qu'un seul flux de travail à votre disposition: le flux de travail à trois états.

A la fin de la journée, SharePoint est .NET et construit sur ASP.NET. Une grande partie du code que vous auriez à écrire dans une application SharePoint que vous auriez besoin d'écrire dans un .NET personnalisé de toute façon. Je regarderais les choses du point de vue de comprendre si l'expérience et les fonctionnalités que SharePoint vous offre (en tant que développeur) peuvent accélérer votre cycle de développement et/ou améliorer l'expérience utilisateur (quelque chose que nous, les développeurs oublions parfois).

David dans le Dakota a un excellent point, cependant, en ce que l'expérience de développement pour SharePoint est différente de droite ASP.NET. Le besoin (ou plutôt la meilleure pratique) de déploiement via les fonctionnalités, la compréhension des problèmes SharePoint spécifiques (durée de vie et élimination des objets SharePoint, etc.) signifient que le temps de montée en puissance augmentera si vous intégrez SharePoint. Il y a quelques bonnes ressources (y compris des gens ici sur StackOverflow) qui peuvent vous aider, mais vous devrez intégrer un peu d'apprentissage dans l'équation pour savoir si SharePoint a du sens.Un autre point de départ: Microsoft déplace lentement ses propres produits et plates-formes pour tirer parti de SharePoint en tant que couche UI/UX, et la tendance est à la hausse. PerformancePoint, Project Server, Team Foundation Server et Commerce Server utilisent tous SharePoint en tant que niveau de présentation. La tendance va probablement continuer, même si je ne sais pas jusqu'où. Si vous utilisez l'un de ces produits (ou le leur sur votre feuille de route technologique), un investissement SharePoint peut maintenant porter ses fruits plus tard.

Malgré tout ce que j'ai écrit et préconisé pour SharePoint, je ne pense pas que ce soit le bon outil dans tous les scénarios. Je construis encore des applications WinForms, des clients intelligents, des applications en ligne de commande, et plus encore. Cela revient à peser «ce que je reçois» pour «ce que je dépense» (en temps et en argent).

J'espère que cela aide!

+0

Merci d'avoir pris le temps de fournir une réponse aussi détaillée et utile. Notre client a MOSS, mais seulement la licence Standard qui, selon moi, gouverne notre BDC? Je suppose que dans ce cas, nous pourrions écrire nos propres parties Web pour exposer les données. Merci encore, cela m'a donné beaucoup de choses utiles à considérer. – HullCitySteve

+0

De rien, Steve; content que je puisse être utile. Oui, la fonctionnalité BDC est fournie avec une licence d'accès client Enterprise et non avec la licence d'accès client standard. Cela laisse cependant l'écrasante majorité de la plate-forme à votre disposition. Peu importe l'itinéraire que vous choisissez et la plateforme que vous choisissez, bonne chance! –

+0

+1 En admiration, comme toujours. –

0

Vous devriez également penser à la complexité du déploiement et de la mise à jour de votre application sur SharePoint.

+1

Mais si cela est fait correctement, le déploiement de solutions peut être un jeu d'enfant et plus puissant que ce qui est possible sous ASP.NET vanille. –

+0

Merci, c'est quelque chose que nous avons examiné et il semble qu'il y ait beaucoup de problèmes à considérer. – HullCitySteve

2

Votre évaluation est assez précise. Les problèmes que vous avez mentionnés ont été largement résolus, mais vous devez comprendre et mettre en œuvre les solutions. Par exemple, il existe un projet CodePlex qui peut aider à l'intégrité référentielle et il existe des recommandations sur la gestion du nombre d'éléments dans une liste. Mais l'utilisation de SharePoint ne vous donnera jamais la liberté d'écrire une application ASP.NET à partir de zéro.

Une autre chose à considérer est comment vous et/ou le client s'attendent à ce que l'application évoluera dans le futur. Si vous avez besoin de fonctionnalités ou de fonctionnalités de style collaboratif telles que l'historique des versions sur les éléments de liste et l'intégration avec le client Office, SharePoint peut être la meilleure option.

Questions connexes