Je suis nouveau sur Xamarin et je recherche un point d'entrée comme une méthode main ()
. De plus, j'ai une classe de stockage de données (c'est-à-dire modèle), qui reçoit constamment des données d'une socket Web et doit être accessible depuis toute l'application (c'est-à-dire à partir de plusieurs ViewModels). Où puis-je mettre des classes importantes et centrales comme celles-ci? Souhaitez-vous les mettre dans une classe statique?
Aussi: y a-t-il quelque chose comme une boucle principale
qui est responsable de la gestion des tâches et des événements?
Je serais très reconnaissant pour une présentation générique / préliminaire de tous les "points d'entrée" dans une application Xamarin.
4 Réponses :
Si, par exemple, vous créez une application mobile multiplateforme dans Visual Studio 2017, vous obtiendrez déjà un échafaudage. La couche de données se trouve dans le dossier "Services".
Je considérerais le fichier "App.xaml" comme votre point d'entrée.
public partial class App : Application { //TODO: Replace with *.azurewebsites.net url after deploying backend to Azure public static string AzureBackendUrl = "http://localhost:5000"; public static bool UseMockDataStore = false; public static bool UseEntityFramework = true; public App() { InitializeComponent(); if (UseMockDataStore) DependencyService.Register<MockDataStore>(); else if (UseEntityFramework) DependencyService.Register<SqLiteDataStore>(); else DependencyService.Register<AzureDataStore>(); MainPage = new MainPage(); } protected override void OnStart() { // Handle when your app starts } protected override void OnSleep() { // Handle when your app sleeps } protected override void OnResume() { // Handle when your app resumes } }
Ouais, j'ai déjà pensé à mettre des choses dans le fichier App.xaml
. Je l'ai trouvé un peu "caché", tho. J'ai lu sur l'aspect classe partielle
d'être utile. Puis-je utiliser ça?
Le fichier "App.xaml" se trouve à la racine de votre projet, vous pouvez donc le trouver facilement. "Partiel" signifie qu'il complète la classe App déjà existante dans le projet UWP . Vous pouvez même créer votre propre "application de classe partielle publique" dans un fichier séparé, mais cela la compliquerait inutilement. J'essaierais d'abord de configurer votre source de données dans le dossier "Services".
Chaque plate-forme a ses propres méthodes similaires à main ()
MainActivity.OnCreate()
AppDelegate.FinishedLaunching (application UIApplication, options NSDictionary)
App.OnLaunched (LaunchActivatedEventArgs e)
sur les applications Xamarin.Forms, toutes ces plates-formes instancient la classe App
et définit la MainPage
.
Vous devez utiliser la méthode App.OnStart ()
si vous voulez faire pour BL.
Merci beaucoup, mais BL?
sa couche métier
Cela m'a surpris que la classe App dans l'espace de noms UWP (et le projet) est différente de la classe App dans l'espace de noms Forms partagé (et le projet). J'avais assimilé les deux dans mon esprit et devenais très confus quant à ce qui a été créé en premier.
En supposant que vous parlez de Xamarin.Forms
,
Je suis nouveau sur Xamarin et je recherche un point d'entrée comme une méthode main ().
Xamarin.Forms
est que les classes natives respectives, c'est-à-dire MainActivity
(Android), AppDelegate
(iOS) et le < code> App (UWP) appelle la classe App.Xaml
dans le projet .Net Standard
ou PCL
.
Cela pourrait donc être considéré comme un point d'entrée, tout comme votre méthode main ()
d'une application console. J'ai une classe de stockage de données (c'est-à-dire model), qui reçoit constamment des données d'une socket Web et doit être accessible depuis toute l'application (c'est-à-dire depuis plusieurs ViewModels).
Où puis-je placer des classes importantes et centrales comme celles-ci? Souhaitez-vous les mettre dans une classe statique?
Aussi: y a-t-il quelque chose comme une boucle principale qui est responsable de la gestion des tâches et des événements?
N'hésitez pas à revenir en arrière en cas de requêtes.