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:
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.
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.
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!
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
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! –
+1 En admiration, comme toujours. –