Questions générales sur Entity Framework vs Enterprise Library et quelques autres

agile c#-4.0 enterprise-library entity-framework

Question

Bref texte de présentation,

Mes compétences en .net ont été qualifiées d’innovatrices, mais je préférerais qu’elles soient exemplaires. En gros, j'ai besoin d'un mentor. Je possède le nom de domaine codeologist.com et je vais respecter ce nom, mais pour ce faire, j'ai besoin d'un mentor et d'une communauté.

Sur les questions:

  1. Entity Framework - J'imagine qu'il s'agit d'un framework intense mappant des objets provenant d'une usine tout en conservant l'intégrité et l'état des objets dans le système. Du moins, c’est ce que je peux deviner après environ 15 minutes d’un podcast que j’ai écouté. RTFM je sais mais est-ce une évaluation générale correcte?

  2. Bibliothèque d'entreprise - Killer. Utilisé la plupart des blocs au moins comme exemples d'applications.

  3. Domain Driven Design - Quelles sont certaines astuces pour passer de la conception ERD / ORM à la conception par domaine? Avantages ou inconvénients?

  4. Agile vs SCRUM - Y a-t-il une différence?

  5. Tests unitaires - La dernière chose à laquelle je pense. Impossible d'obtenir correctement la configuration de test automatique de l'interface Web. Vous avez également besoin d'aide pour les scripts NAnt / MSBuild à partir d'un référentiel VSS 2005. Un exemple complet dans la source serait vraiment bien, y compris peut-être la planification.

  6. TSQL essentiel nu - Qu'est-ce qui est considéré comme les instructions TSQL de qualité professionnelle minimales pour le développement d'entreprise? Comme ROWCOUNT, TRANSACTION, ROLLBACK, instructions de contrôle de flux, SQL en ligne et problèmes de sécurité pour les méthodes CRUD.

  7. Il est envisageable d’intégrer des frontaux Web MVC2 / 3, Entity Framework, Enterprise Library et SilverLight? Même peut-être Sharepoint?

  8. J'ai demandé à un gars que j'ai rencontré une fois quand devrais-je utiliser Linq, sa réponse était "toujours utiliser la force".

  9. Lors de l'apprentissage d'une nouvelle langue, quels jeux / applications écrivez-vous? Quels sont les bons exercices pour ceux sur le point de coder? (Nous te saluons!)

  10. Quels livres recommanderiez-vous pour la théorie de la programmation générale, l'architecture d'entreprise et l'analyse commerciale?

Ok, probablement personne ne répondra, mais ce sont des questions brûlantes que j’ai eues dans le ventre et que j’avais juste à faire sortir tout ça.

Geek pour la vie.

Réponse acceptée

Je ne peux pas répondre à toutes vos questions, mais je vais tenter quelques-unes d'entre elles.

  1. (Question 1) Essentiellement, votre évaluation semble juste. On pourrait également dire que EF «extrait» le SQL qui est par ailleurs nécessaire pour conserver les données dans un magasin persistant (généralement un lecteur de disque).

  2. (Question 7) Oui. Cependant, j’ai appris par expérience que de nombreux développeurs de logiciels (sinon la plupart) ne peuvent ou ne veulent pas utiliser simultanément autant de technologies différentes. Le membre Stack Overflow moyen ne souffre PAS de cette maladie particulière.

  3. (Question 8) Ce gars a raison. LINQ bascule. Chaque fois que vous pouvez remplacer une boucle foreach par une instruction LINQ, votre code devient plus facile à lire et à gérer. Rappelez-vous que LINQ (Lambdas) peut être utilisé pour beaucoup plus que l'interrogation de bases de données. La syntaxe LINQ pour trier une collection est aussi simple que le tri dans les instructions SQL, mais présente l’avantage supplémentaire de pouvoir effectuer un tri en mémoire. Apprenez LINQ complètement, c'est votre ami.

  4. (Question 9) En général, je plonge directement dans un vrai projet de travail. Puis refactor après avoir appris quelques choses. Le meilleur apprentissage vient de faire. Vous apprenez davantage en agissant mal, en voyant le problème et en le corrigeant que toute autre méthode que je connais.

  5. (Question 10) Il y a deux livres qui existent depuis un moment mais qui sont toujours importants.
    Modèles de conception Eléments d'un logiciel orienté objet réutilisable
    Ce livre est communément appelé le livre "Gang of Four" ou GOF.
    et
    Modèles d'architecture d'application d'entreprise par Martin Fowler


Réponse populaire

OK, voyons.

1) Entity Framework - il s’agit principalement d’un ORM (Object-Relational Mapper). L'idée d'EF est en réalité un peu plus ambitieuse que cela; le véritable objectif est de créer le cadre de modélisation uber-be-all pour tous les types de données (EDM), puis de fournir un logiciel qui implémente et prend en charge ce modèle (EF). En pratique, cependant, c'est un ORM.

2) Umm, y a-t-il vraiment une question ici?

3) Courez, ne marchez pas, pour acheter le Domain Driven Design d'Eric Evan . C'est le livre qui définit le vocabulaire DDD que tout le monde utilise aujourd'hui. Vous voulez savoir ce qu'est vraiment un référentiel? C'est ici.

4) Enfer oui. Agile sont les idées incarnées dans le Manifeste Agile . Ce sont les principes sous-jacents. SCRUM est une méthodologie particulière (en fait, un cadre méthodologique) conforme à ces principes. Il existe de nombreuses méthodes agiles (Extreme Programming et Crystal Clear en sont deux exemples bien connus), mais elles partagent toutes les mêmes principes sous-jacents.

5) Eh bien, cela devrait être la première chose à laquelle vous pensez, mais vous devriez faire de la conception pilotée par les tests, pas des tests unitaires. TDD est une activité de conception / développement, le test unitaire est une activité de test. Test de l'interface utilisateur Web est une douleur, accordé. Bien que votre question soit un peu vague et qu’elle ressemble à plusieurs parties. Vous voudrez peut-être diviser celle-ci en deux questions distinctes et plus spécifiques.

6) Je ne suis pas vraiment un gars de SQL, mais je suis allé assez loin avec juste les bases - SELECT est remarquablement compliqué juste pour les débutants. Bien que j'estime que si vous avez besoin de logique conditionnelle ou de boucles dans vos sprocs TSQL, quelque chose a terriblement mal tourné. Vous feriez mieux de vraiment comprendre la théorie - le modèle relationnel, les formes normales et les divers types de données et leur comportement.

7) Oui, pour la plupart d'entre eux. Chacun joue un rôle différent dans la pile de logiciels. En supposant que vous utilisiez un client de style RIA, l'application silverlight s'exécutant dans le navigateur fournissant l'interface utilisateur et communiquant avec un serveur Web répondant via un site MVC. Entlib est utile pour implémenter cette application MVC. Si vous utilisez Silverlight, vous utiliserez probablement EF pour l’accès aux données. Vous pouvez également l'utiliser pour accéder à la base de données dans l'application MVC. Sharepoint peut être un peu problématique - c'est aussi une affaire de serveur Web, vous pouvez donc considérer cela comme un concurrent de l'application MVC. Mais vous pouvez également l'utiliser comme magasin de données.

8) les roches LINQ. C'est une façon différente de penser à certains problèmes liés à la gestion d'une séquence de données. Ce que j’aime, c’est que c’est très composable: vous pouvez filtrer, transformer et exploiter des données de nombreuses façons, transmettre ces informations et faire davantage de filtrage / transformation en cours de route, pour que tous les espaces soient parfaitement intégrés. De plus, le langage nécessaire à la mise en œuvre de LINQ a apporté une tonne de nouvelles capacités à C # / VB.NET, ce qui est vraiment, vraiment cool.

9) Bonjour tout le monde est toujours utile pour vous assurer que vous avez la chaîne d'outils éditeur-compilateur-débogueur clouée et opérationnelle. Après cela, j'ai tendance à plonger dans ce que je ressens. Quand j'ai essayé Silverlight pour la première fois, j'ai fait un petit jeu. Je peux faire un petit analyseur. Ou essayez simplement de jeter quelques fenêtres à l'écran. Je n'ai pas de nouveau projet standard.

10) Adoption des recommandations concernant les modèles de conception et la POEAA. Je recommande également fortement le programmateur pragmatique de Hunt et Thomas. Il ne s'agit pas de la théorie de la programmation, mais du savoir-faire en matière de construction de logiciels.



Related

Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow