Je ne sais pas depuis quand, créer une entreprise est devenu très bon marché. Tout ce dont nous parlons, c'est d'Internet, et il est facile de récolter des dizaines de millions de dollars. Ce coup de vent semble avoir également frappé les programmeurs. Il existe un grand nombre de développeurs qui n'étudient pas bien les structures de données et ne maîtrisent pas bien les principes des bases de données. Ils publient plusieurs projets sur github, utilisent nodejs pour créer certains services, puis utiliser H5 pour écrire des applications. , Je pense que je suis entré dans les rangs des programmeurs seniors et que je peux élaborer des stratégies pour des projets Internet. L'apprentissage de nouvelles technologies et de nouveaux concepts signifie-t-il une croissance rapide ? Sites Web et applications Internet Les unes après les autres, de nombreuses applications apparemment belles n'ont aucune mesure pour gérer même la simple sécurité de l'interface http. De nombreux beaux sites Web réactifs ont des structures de répertoires empilées de manière aléatoire. Je pense que les programmeurs devraient toujours garder les pieds sur terre. le terrain. Pour être pratique, apprenez plus de théories, écrivez plus de codes et pratiquez à plusieurs reprises.
Ensuite, une autre question se pose : les nouvelles technologies et les nouvelles idées sont-elles inutiles ? Les nouvelles technologies et les nouvelles idées sont-elles répétées encore et encore par d'innombrables experts techniques dans la pratique à long terme ? de la construction, et en tant que vétéran de .NET, je suis profondément heureux de voir Microsoft adopter l'open source et adopter les changements et les progrès apportés par la communauté au fil des ans. Aujourd'hui, je souhaite donc partager avec vous mon expérience et moi-même. au fil des ans, l'entreprise résume certaines expériences et technologies dans l'utilisation de .NET pour le développement Web et même le développement d'applications Internet.
Jetons un coup d'œil au dernier cas typique, //m.sbmmt.com/, qui utilise des éléments comme HTML5, Bootstrap, EF6 pour MySql et Alibaba. Cloud RDS , Alibaba Cloud CDN et d'autres nouvelles technologies et concepts, cependant, ils ne se sont pas écartés de la base de l'utilisation de .NET pour le développement et de l'environnement écologique .NET (IIS, Windows Server) pour le déploiement. Après s'être complètement débarrassé de WebForm ou même de MVC, nous avons implémenté un nouveau modèle de développement .NET, qui a considérablement amélioré l'efficacité du développement et la collaboration en équipe, et a considérablement réduit le temps de développement. Dans ce cas, la gestion front-end et back-end de. l'intégralité du site Web, de la conception à la conception, en passant par le développement, le débogage et le déploiement, une seule personne peut le réaliser en 3 jours. Ce qui suit est une description détaillée du modèle de développement. Nous écouterons également les opinions de chacun et continuerons à nous améliorer et à nous améliorer.
Concernant l'évaluation d'ASP.NET WebForm, je pense que les mots suivants sont objectifs : L'innovation du modèle de développement Web par glisser-déplacement et événementiel d'ASP.NET WebForm a facilité l'apprentissage d'un grand nombre de débutants .NET . à développer et inadapté. En tant que responsable du développement commercial, ASP.NET WebForm a une responsabilité inéluctable à cet égard.
En repensant à 2006 et 2007, j'étais toujours étonné par la puissance et la commodité d'UpdatePanel. Avec le recul, ce modèle de développement a sans aucun doute obscurci la compréhension des développeurs de la nature de HTTP et de cette couche de Web. Le brouillard est un revers à long terme.Plus tard, à l'ère ASP.NET MVC, les mauvaises habitudes des programmeurs de haut niveau de Microsoft ne se sont pas améliorées. Bien que MVC soit open source, il est encore plein de toutes sortes de tentatives pharisaïques. pour fournir aux développeurs des informations avancées. Les développeurs juniors peuvent trouver les fonctionnalités, les liaisons, les raccourcis, etc. bien pensés, très pratiques, mais je pense que tout responsable technique qui a été engagé dans l'architecture et le développement de projets commerciaux aura le sentiment profond de cela. quand ils ont vraiment besoin de stabilité et de solidité dans le projet, ces petites astuces sont non seulement inutiles, mais aussi difficiles à développer, et plus susceptibles de conduire à des bugs et des failles difficiles à contrôler.
Heureusement, sous la direction de Nadella et sous la direction du retour de Bill Gates en tant que conseiller technique, .NET a continué à corriger sa direction, faisant non seulement de grands progrès dans le langage, mais aussi dans la construction écologique. de plus en plus visible. Je doutais que le modèle de développement agile .NET créé par l'entreprise soit une manifestation d'avancement. Jusqu'à l'émergence de vNext (MVC6.0), je me suis soudain rendu compte que différents chemins menaient au même objectif, et Microsoft y est finalement parvenu. pris le bon chemin.
Avant de parler du modèle de développement, j'aimerais parler de :
1. Quelques nouvelles tendances et caractéristiques des projets Internet actuels ou des projets Web traditionnels
.1. N'utilise plus WebService, mais utilise fortement HTTP comme méthode de communication de données
2. Le support de données n'utilise plus XML, mais utilise plutôt JSON
3. Front Web -end Utilisera des frameworks HTML5 tiers tels que Bootstrap, JQueryUI, EasyUI, etc.
4. S'il y a des besoins APP, ou même des besoins APP-first, l'APP doit se connecter à diverses prises tierces -ins
5. Afin de poursuivre le lancement rapide de l'APP, parfois en utilisant le modèle de développement d'application HTML5, tel que PhoneGap, AppCan, HBuilder, etc.
6. S'il y a un besoin de WeChat , il est nécessaire de se connecter au compte public WeChat et d'effectuer le développement Web mobile dans le navigateur WeChat
7. Cycle de développement court et itérations fréquentes
8. La quantité de données augmente rapidement , et il y a plus de demandes d'affichage de rapports et d'analyse de données
9. Les besoins en personnel de l'équipe de projet sont déterminés par les ingénieurs de développement Web et sont subdivisés en ingénieurs front-end HTML5, ingénieurs JAVA (.NET), ingénieurs de bases de données, etc.
10. Les tests unitaires diminuent, les tests fonctionnels se multiplient, et les outils Internet (worktile, etc.) sont même utilisés pour remplacer les outils de tests professionnels
Sur la base de la situation ci-dessus, nous considérons que si nous continuons utiliser .NET pour le développement de systèmes, donc dans un projet agile avec des utilisateurs
2. Certains modèles et méthodes de développement Web .NET traditionnels devraient être abandonnés
. 1. Les modèles ASP.NET WebForm et MVC ne conviennent plus. Ils souffrent tous deux d'un couplage frontal et back-end important, compliquant les processus simples, et le front-end ne peut jamais être séparé de l'architecture .NET.
2. La base de données SQL Server n'est plus adaptée. Bien que les fonctionnalités de SQL Server 2014 soient intéressantes, à mesure que l'utilisation de cloud public devient de plus en plus courante, en même temps, par rapport à d'autres bases de données, la taille, prix, disponibilité En termes d'évolutivité et même de performances, SQL Server est désavantagé.
3. L'architecture traditionnelle à trois niveaux n'est plus adaptée. De nombreux projets Internet doivent prendre en charge plusieurs nœuds de service dès le début de la conception et utiliser différentes bases de données pour différents scénarios d'application. De plus, l’architecture à trois niveaux utilise largement la réflexion pour augmenter le code au détriment des performances et n’est plus adaptée au développement agile.
4. L'architecture informatique de Server 2003 devrait être abandonnée. Qu'il s'agisse du modèle de traitement des requêtes HTTP d'IIS6.0 qui est en retard sur IIS7, ou de la stabilité et de l'expansion de Server 2003 qui est en retard sur Server 2008 et 2012. , il ne doit plus être envisagé pour un déploiement .NET basé sur Server 2003 et IIS6.
Bien que certaines choses aient été abandonnées, Microsoft est Microsoft après tout :
3. Certaines fonctionnalités .NET devraient être renforcées
1. In- Utilisation approfondie de l'outil de développement Visual Studio 2015, VS2015 est un outil de développement de classe mondiale. Inutile de dire qu'il est encore plus compétent en codage frontal (CSS, JS, HTML). Avec des paramètres personnalisés et des plug-ins tiers adaptés. pour les ingénieurs, il sera encore plus puissant
2. L'utilisation de la gestion du code source TFS, qu'il s'agisse d'installer la version TFS Express en interne ou de demander de l'espace libre sur tfs.visualstudio.com, peut faciliter la collaboration en équipe. à notre pratique, ne soyez pas le mode Git vous monte à la tête. En fait, le mode de gestion TFS est le plus adapté au développement .NET
3. Les fonctionnalités du langage de haut niveau .NET doivent être utilisées de manière plus intensive. la base de la compréhension, si vous pouvez utiliser Linq et Lamda avec compétence. Des fonctionnalités et méthodes de langage de haute qualité uniques à .NET, telles que les expressions, la réflexion et la programmation parallèle de tâches, amélioreront considérablement l'efficacité du développement et réduiront le temps de développement.
4. Les fonctions avancées et la gestion dynamique d'IIS devraient être renforcées Après IIS7, le serveur IIS est synonyme de middleware Web performant Avec l'ajout du mode Core de Server 2008 et 2012, la gestion dynamique. et la gestion dynamique d'IIS doit être renforcée. La configuration peut grandement améliorer l'efficacité du traitement Web.
5. L'utilisation du système d'exploitation Server 2012 R2 devrait être renforcée. Bien que le multiplateforme soit la direction de .NET et soit également bien pratiqué en mono, mais aujourd'hui, lorsque les serveurs PC et les serveurs cloud deviennent moins chers et moins cher, c'est toujours Utilisez le dernier système d'exploitation serveur Windows.
Avec la compréhension ci-dessus, après résumé, notre modèle de développement .NET actuel peut être simplement résumé comme suit :
1. Couplage -end et back-end
La première chose à faire est d'abandonner complètement les modèles ASP.NET WebForm et MVC Les front-end et back-end sont fortement découplés. est traité à l'aide de JS, y compris la disposition des éléments Dom, les demandes de dessin et de données, tandis que le backend est un pur traitement de logique métier, y compris le traitement logique et le traitement des données. Actuellement, notre projet utilise la fonctionnalité Routing dans ASP.NET et héberge toujours le modèle ASP.NET et IIS. En théorie et dans un futur proche, il sera remplacé par Core IIS ou Nginx sous Linux pour héberger du cache HTML5 et HTMl5 pur. . Ce sera également très facile.
2. Le front-end utilise du HTML5 pur
Le front-end abandonne le HTML traditionnel et essaie d'utiliser toute la technologie HTML5. Les sacrifices incluent l'abandon des navigateurs inférieurs à IE11, mais dans la pensée Internet actuelle, une telle idée n'est pas une mauvaise idée. Lorsque la technologie HTML5 sera pleinement utilisée sur le front-end, divers traitements de fichiers, graphiques, images, audio et vidéo, localisation géographique, etc. deviendront très simples et plats. , et basé sur des données.
3. Le front-end utilise pleinement les frameworks matures
Après avoir utilisé le nouveau modèle de développement, un changement évident est que les artistes de la compagnie ne se produisent plus ou rarement diagramme de coupe frontal, et la demande d'artistes techniques (qui peuvent développer CSS et JS et comprendre le design) augmente de jour en jour. La cause profonde de ce changement est l'émergence de frameworks front-end avancés et excellents. utilisant actuellement JQuery, Zepto, JQueryUI, JQueryMobile, Bootstrap, Amaze UI, inoic, Framework7, SUI, MUI, etc., ainsi que des plug-ins tiers accompagnant ces excellents frameworks. Objectivement parlant, grâce à l'utilisation d'excellents frameworks, non seulement le risque du système frontal n'augmente pas, mais grâce à l'open source, à l'architecture claire, à la stabilité et à d'autres caractéristiques du framework, un front-end plus stable et évolutif est obtenu. . Pour donner un exemple simple, Bootstrap a joué un rôle important dans la résolution des problèmes de mise en page entièrement compatible et de mise en page réactive qui préoccupent de nombreux ingénieurs Web.
4. Développement front-end orienté objet
Le développement front-end est simplement encapsulé via des fonctionnalités orientées objet JS. Le fonctionnement des éléments Dom et le traitement des demandes de données de logique métier sont cohérents avec le type de données back-end, la structure de l'entité et la logique de traitement, qui non seulement rapproche le front-end et le back-end La compréhension des besoins métiers par les développeurs abaisse également considérablement le seuil de formation technique et améliore l'efficacité du travail d'équipe.
5. Utiliser le service CDN
Il y a quelques années, le service CDN était réservé aux grandes entreprises et aux entreprises. Il est désormais devenu complètement populaire et civil, ainsi que le Web. le front-end est de plus en plus populaire. C'est un fait incontestable que les données deviennent de plus en plus lourdes, mais la véritable logique métier n'est souvent que de quelques dizaines de K, voire plusieurs K. Une page de plusieurs centaines de K, 90% de qui sont des frameworks tiers tels que JQuery, par conséquent, une utilisation raisonnable de l'accélération CDN améliorera non seulement l'utilisateur, mais améliorera directement la capacité de charge des services Web basés sur l'architecture HTTP de plus de 5 à 10 fois.
6. Logique métier basée sur les services HTTP
Cette phrase n'est peut-être pas une description très appropriée, mais c'est aussi le lien le plus important dans notre nouveau développement .NET modèle , après avoir étudié des architectures Internet avancées telles que la plate-forme ouverte d'Alibaba, nous avons finalement formé un modèle de traitement de logique métier structuré mais lâche, c'est-à-dire que chaque comportement de logique métier a un nom de routage unique et que la logique métier est uniquement responsable du nom de routage. Le nom du routage est responsable des exigences de couche supérieure telles que la direction du flux, les performances, les autorisations et la sécurité. L'avantage de ceci est qu'il peut utiliser pleinement les développeurs ayant environ 3 à 5 ans d'expérience (ce qui est également la principale force de développement de la plupart des entreprises), leur permettant de se concentrer sur l'écriture de la logique métier, alors que d'autres choses que la logique métier ont besoin. à prendre en compte dans l'architecture. Le niveau est résolu par d'autres contrôleurs, et un grand projet .NET peut également être divisé de manière flexible en sous-modules de différentes manières. Pour la mise en œuvre des services HTTP, nous avons essayé le processeur ASP.NET ASHX, le service Windows Service HOST WCF et l'API Web ASP.NET. La version actuelle plus stable est l'API Web. Bien sûr, en réponse à la demande de service HTTP, Wen API est également évident. Sérieusement, nous continuerons à nous améliorer à l'avenir. En bref, ce processus de changement a amélioré l'efficacité du développement et l'efficacité des tests d'au moins 3 fois dans la pratique. Dans un chapitre ultérieur, cela sera expliqué en détail.
7. Construction de services HTTP distribués et à chargement à chaud
Les applications Internet nécessitent un développement agile et des itérations répétées sous la même architecture logique utiliseront différents serveurs et bases de données. sont monnaie courante. Par conséquent, au début de la conception du projet, la construction de services HTTP distribués est cruciale et les mises à jour commerciales nécessitent un chargement à chaud dans le système .NET, c'est malheureusement le chargement dynamique du code géré par l'entreprise. les projets existants n'ont pas de scénarios distribués à grande échelle, une architecture de chargement dynamique de DLL plus stable n'a pas encore été développée. Cela sera discuté en détail dans le chapitre suivant.
8. Utilisez Alibaba Cloud pour résoudre les problèmes du Big Data
Je pense que tout architecte informatique qui a utilisé Alibaba Cloud et d'autres services cloud peut profondément ressentir cela. Alibaba Cloud a déjà plus d'une position d'avance sur les autres cloud. En fait, en particulier les fonctions liées aux bases de données d'Alibaba Cloud, telles que RDS, DRDS, KVStore, etc., ont en fait résolu de nombreux points complexes et difficiles des exigences traditionnelles dans la pratique. Les détails spécifiques seront discutés en détail plus tard, mais sincèrement. un mot, dépêchez-vous et utilisez Alibaba Cloud. Au moins à ce stade, Alibaba Cloud ne vous kidnappe pas, mais vous aide.
J'ai beaucoup écrit aujourd'hui. En général, je tiens à vous dire que le printemps de .NET est arrivé. .NET peut non seulement réaliser du développement agile basé sur Internet, mais aussi gérer de grands projets, de grandes données. et une grande logique. J'en ai déjà goûté les avantages dans la pratique. En tant que programmeur qui écrit des structures de données Pascal depuis plus de quinze ans maintenant, je suis également très intéressé par diverses nouvelles technologies, je les ai essayées et même essayées. Je n'ai pas peur d'être dérouté par les autres. Je peux même affirmer avec audace que les autres langages, d'un point de vue global (langage, environnement de développement, efficacité du développement, communauté technique, collaboration en équipe, capacités des applications), sont loin derrière .NET. le domaine du développement au niveau des applications. Il y en a beaucoup, mais les programmeurs .NET eux-mêmes ne l'ont pas encore remarqué, donc de ce point de vue, tout le monde doit travailler ensemble et continuer à étudier et à explorer.
Ce qui précède est la réflexion et l'exploration de l'utilisation de .NET pour un développement agile sur Internet efficace. Pour plus de contenu connexe, veuillez prêter attention au site Web PHP chinois (m.sbmmt.com) !