Ressentez-vous la même chose ?
Comment écrire mvc ?
J'ai beaucoup de mal à écrire
PHP :
M:
class Teacher {
function add($data) {
$sql = "insert into teacher_table($teacher_name) values($data['teacher_name'])";
return $db->query($sql);
}
}
V:
(省略)
C:
class Teacher {
$data = array("teacher_name"=>$_POST["teacher_name"],....);
$row = new Teacher();
$row->add($data);
echo "Yeah~!";
}
asp.net n'a pas de tableau aussi flexible que PHP. L'échange de données entre m-v-c passe par le tableau. Asp.net ne peut pas avoir de table de hachage, n'est-ce pas ? Il semble que les tutoriels concernent uniquement l'écriture de classes d'entités
Je n'ai jamais écrit PHP, mais j'ai de l'expérience dans le développement ASP.NET MVC. Ici, je vais expliquer brièvement ma compréhension.
Tout d'abord, regardons un principe d'interaction d'ASP.NET MVC à travers une image :
La couche Modèle est en fait un concept important, comprenant les services, la logique métier, la persistance des données, etc. ; la couche Contrôleur joue un rôle dans la connexion de la couche Modèle et de la couche Vue ; la couche Vue est l'interface, ce qui devrait être très important. . clair.
D'après votre description du problème, le point le plus complexe est que lorsque la couche Contrôleur et la couche Vue interagissent, ASP.NET MVC utilise la méthode de définition des classes d'entités (ViewModel), ce qui vous donne l'impression que la méthode de développement d'ASP.NET MVC est très compliqué.
En fait, cette question est relative.Tout d'abord, pour ASP.NET MVC, chaque vue doit définir un ViewModel. C'est en effet un endroit très ennuyeux, mais rétrospectivement, cela apporte des avantages : en coopérant avec Visual Studio, vous pouvez utiliser smart. invites dans la vue (je ne développerai pas ici les invites intelligentes, j'ai déjà dit que je les ai utilisées) ! De cette façon, vous pouvez éviter le problème de la chaîne magique dans le tableau PHP $data['xxx'] (par exemple, vous devriez écrire $data['teacher'], mais écrivez accidentellement le mauvais $data['teach'], ce qui apporte plus Il est possible de faire des erreurs, ne pensez-vous pas qu'écrire ces chaînes est aussi une chose ennuyeuse ?).
Si vous pensez que la méthode array est meilleure, vous pouvez le faire dans ASP.NET MVC. Vous pouvez utiliser TempData dans la classe Controller, par exemple :
De cette façon, la couche de vue peut également obtenir des données via TempData[].
Dans .Net, vos $data peuvent être décrites par le type Dictionary<string, string> ou Dictionary<string, object>.
Ce n'est pas pratique du tout. Il n'y a pas d'invite de saisie semi-automatique ni de vérification statique dans l'EDI.
Je l'utilise depuis longtemps
asp.net mvc
,现在用php
的yii
,两者几乎完全一样的思想。所以不是说框架哪个更方便,而是语言哪个更方便。我个人也觉得php
确实比C#
要方便很多,就像你说的,数组灵活,json
灵活,.net
现在也有dynamic
类型,但是不感冒,感觉生硬。另外一个抛弃微软的理由就是觉得太麻烦,太封闭,就是不愿意用windows
,干嘛要用宇宙第一IDE(visual studio)?老子就是只愿意在linux
下用vim
, rien d'autre.