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 L'une après l'autre, de nombreuses applications apparemment belles n'ont aucune mesure pour gérer même la simple httpinterfacesécurité De nombreux beaux sites Web réactifs, La structure des répertoires est empilée de manière aléatoire. C'est vraiment une mauvaise tendance. Je pense que les programmeurs devraient apprendre plus de théories, écrire plus de codes et s'entraîner à plusieurs reprises.
Ensuite, une autre question se pose : les nouvelles technologies et les nouvelles idées sont-elles inutiles ? Évidemment, les nouvelles technologies et les nouvelles idées sont les victoires d'innombrables experts techniques qui les ont reconstruites à plusieurs reprises dans une pratique à long terme. pilote, 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 comment moi et mon entreprise l'avons utilisé au fil des ans. et résumé technique du développement Web .NET et même du développement d'applications Internet. Jetons un coup d'œil au dernier cas typique, muban.printhelloworld.com, qui utilise des outils tels queHTML5, Bootstrap, EF6 Pour MySql, Alibaba Cloud RDS, Alibaba Cloud CDN et d'autres nouvelles technologies et concepts, cependant, ils ne sont pas séparés de l'utilisation de .NET pour le développement et du .NET environnement écologique (IIS, Windows Server) pour le déploiement, mais l'ensemble du processus de développement s'est complètement débarrassé de WebForm ou même de MVC Nous avons pratiqué un nouveau modèle de développement .NET, qui a considérablement amélioré l'efficacité du développement et l'équipe. collaboration. Le temps de développement est également considérablement réduit. Dans ce cas, la gestion front-end et back-end de l'ensemble du site Web, de la conception à la conception, en passant par le débogage et le déploiement, a été réalisée par un seul. personne 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 deASP.NET WebForm, je pense que ce qui suit est objectif : glisser-déposer ASP.NET WebForm et événement pilote Bien que l'innovation du modèle de développement Web ait facilité l'apprentissage et la compréhension d'un grand nombre de débutants .NET, elle a finalement sérieusement entravé la vulgarisation et l'utilisation commerciale de .NET. De plus, pendant longtemps, les excellentes fonctionnalités du langage .NET ont été ignorées. il a été qualifié d'inefficace, difficile à développer et inadapté au développement commercial. ASP.NET WebForm a une responsabilité inéluctable à cet égard.
En repensant à 2006 et 2007, j'étais encore étonné par la puissance et la commodité du UpdatePanel. Avec le recul, ce modèle de développement permet aux développeurs de comprendre la nature du HTTP et du HTTP. Web La compréhension de MVC est sans aucun doute recouverte d'une couche de brouillard, ce qui constitue un revers à long terme, à l'ère ASP.NET MVC, les mauvaises habitudes des programmeurs seniors de Microsoft ne se sont pas améliorées. , c'est encore plein de problèmes. Il existe toutes sortes de fonctionnalités, de liaisons, de raccourcis, etc. qui ont été pensés à l'avance pour les développeurs. Les développeurs juniors peuvent trouver ces choses très pratiques, mais je pense que quiconque l'a fait. été engagé dans des projets commerciaux architecture et développement Les responsables techniques seront profondément conscients que dans les projets solides qui ont vraiment besoin de stabilité, 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, je veux d'abord en parler :1. Quelques nouvelles tendances et caractéristiques des projets Internet actuels ou des projets Web traditionnels
1. Le WebService n'est plus utilisé, mais HTTP est largement utilisé comme méthode de communication de données
2. Le support de données n'utilise plus XML, mais utilise à la place JSON
3. Le front-end Web utilisera des tiers tels que Bootstrap, JQueryUI, EasyUI, etc. Cadre HTML5
4. Il existe des besoins APP, et même des besoins prioritaires APP doivent se connecter à divers plug-ins tiers
.5. Afin de poursuivre le lancement rapide de l'APP, il existe parfois le modèle de développement d'APP HTML5 qui sera adopté, tel que PhoneGap, AppCan, HBuilder, etc.
6. S'il y a un besoin pour WeChat, il est nécessaire de connecter le 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 détaillés. Divisés en ingénieurs front-end HTML5, ingénieurs JAVA (.NET), base de données ingénieurs, etc.
10. Les tests unitaires sont réduits, et les tests fonctionnels sont de plus en plus nombreux, et ils sont même remplacés par des outils Internet (worktile, etc.) Outils de tests professionnels
Sur la base de la situation ci-dessus, nous considérons que si nous utilisons toujours .NET pour le développement de systèmes, alors dans un projet agile avec un volume d'utilisateurs de
2. Certains Les modèles et méthodes de développement Web .NET traditionnels doivent être abandonnés
1. Les modèles ASP.NET WebForm et MVC ne conviennent plus. Ils ont tous deux un couplage front-end et back-end sérieux et des processus simples et compliqués. , 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 d'IIS6.0 en retard par rapport au modèle de traitement des requêtes HTTP d'IIS7, ou de Server 2003 en retard par rapport à la stabilité et à l'expansion de Server 2008. et 2012, vous ne devriez plus envisager 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, ce sera encore plus puissant
2. L'utilisation de la gestion du code source TFS, qu'il s'agisse en interne d'installer la version TFS Express ou de demander de l'espace libre sur tfs.visualstudio. com, peut faciliter la collaboration en équipe. D'après notre pratique De ce point de vue, ne vous laissez pas emporter par le mode Git En fait, le mode de gestion TFS est le plus adapté au développement .NET
3. .L'utilisation des fonctionnalités du langage de haut niveau .NET doit être renforcée sur la base de la compréhension, si Être capable d'utiliser habilement les fonctionnalités et méthodes uniques du langage de haute qualité de .NET telles que Linq, Lamdaexpression, réflexion, le parallélisme des tâchesprogrammation améliorera considérablement l'efficacité du développement et réduira 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, couplé au mode Core des Server 2008 et 2012. , renforcer La gestion dynamique et la configuration d'IIS peuvent 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. Tous les traitements logiques sur le front-end sont traités à l'aide de JS, y compris la disposition, le dessin et les données des éléments Dom. demandes, tandis que le back-end est purement un traitement de logique métier, y compris le traitement de la logique et le traitement des données. Actuellement, notre projet utilise la fonctionnalité Routing dans ASP.NET et est toujours hébergé dans 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 L'hébergement du HTML5 pur ainsi que du HTML5caching sera également très simple.
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 tels que les fichiers, les graphiques, les images, l'audio, la vidéo et la localisation géographique deviendront très simples. plat 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 images de coupe frontales, et la demande d'artistes techniques (capables de développer CSS et JS et de comprendre le design) augmente de jour en jour. La cause profonde de ce changement est l'émergence de frameworks frontaux 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 système du front-end 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 atteint. 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 demise en page réactive qui dérangent de nombreux ingénieurs Web.
Quatre. Développement front-endOrienté objet
Le développement front-end est simplement encapsulé à travers les fonctionnalités orientées objet de JS, et le fonctionnement et l'activité des éléments DOM Le traitement des demandes de données logiques est cohérent avec le type de données back-end , la structure de l'entité et la logique de traitement. Cela rapproche non seulement la compréhension des besoins commerciaux entre le front-end et le business. développeurs back-end, mais réduit également considérablement le coût technique. Le seuil de formation a amélioré l'efficacité du travail d'équipe
. 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 chaquecomportement de logique métier a un itinéraire
Nom unique. , la logique métier est uniquement responsable du nom de routage, et le nom de 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 lesContrôleurs restants, 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, qui répond bien sûr à la demande. pour le service HTTP, l'API Wen est également un peu lourde et continuera d'être améliorée à 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. Il est courant que différentes requêtes sous la même architecture logique utilisent différents serveurs et bases de données. Par conséquent, au début de la conception du projet, la construction de services HTTP distribués est cruciale. L'entreprise mise à jour doit pouvoir effectuer un chargement à chaud. Dans le système .NET, il s'agit du chargement dynamique et de l'utilisation du code géré par DLL. Malheureusement, les projets existants de l'entreprise ne disposent pas de scénarios distribués à grande échelle. , Par conséquent, une architecture de chargement dynamique de DLL plus stable n'a pas encore été développée, qui sera discutée 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 le ressentir. À présent, Alibaba Le cloud a déjà plus d'une position d'avance sur les autres nuages. 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 le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!