Bien que je sois d'accord en principe avec l'idée que le tri relève de la logique métier, car en le décomposant selon son origine, vous obtiendrez quelque chose comme "Le client souhaite que la page du produit s'affiche avec les images triées par date", alors il devient clair que l'ordre de tri des données n'est généralement pas arbitraire - même s'il n'y a pas de tri car c'est toujours une décision commerciale par omission (une liste vide est toujours une liste).
MAIS ... Ces réponses ne semblent pas prendre en compte les progrès de la technologie ORM, je ne peux parler que par rapport à l'Entity Framework (évitons une dispute pour savoir si c'est vrai ORM, ce n'est pas le point) de Microsoft comme c'est ce que j'utilise, mais je suis sûr que d'autres ORM offrent des fonctionnalités similaires.
Si je crée une vue fortement typée pour une classe Product à l'aide de MS MVC et Entity Framework et qu'il existe une relation de clé étrangère entre la table Product et Image (par exemple FK_Product_Image_ProductId), alors je serais en mesure de trier rapidement les images pendant leur affichage en utilisant quelque chose comme ceci dans la vue:
@foreach(Image i in Model.Image.OrderBy(e => e.DisplayOrder)){ //etc etc... }
Il a été mentionné une couche de logique métier spécifique, que j'utilise également pour exécuter 80% de ma logique métier, mais je ne vais pas écrire une fonctionnalité de tri dans ma couche de logique métier qui imite quelque chose qui sort de la boîte. à partir de Entity Framework.
Je ne pense pas qu'il y ait une réponse correcte à cette question, à part cela; vous devez abstraire la logique métier complexe lorsque cela est possible, mais pas au prix de réinventer la roue.