więc jestem uczę F #, a wyglądało na to:Jak F Providers # typ kontroli typów w czasie kompilacji
F# type providers, how do they work
a to:
http://msdn.microsoft.com/en-us/library/hh361033(v=vs.110).aspx
jestem niezbyt płynny w języku F #, ale moim (prawdopodobnie niepełnym) zrozumieniem jest to, że dostawcy typów mają na celu zapewnienie pewnego rodzaju bezpiecznego dla statycznego dostępu do zewnętrznych źródeł danych.
Jak to się dzieje? Ponieważ źródło danych jest zewnętrzne, wydaje mi się, że nie ma możliwości sprawdzenia schematu źródła danych, który nie jest w stanie go wysłać, a zapytanie o rzeczy podczas kompilacji (i dla uzupełnienia kodu!) Wydaje się złym pomysłem.
Jeśli tego nie zrobią, musi być pewne rzutowanie, aby przesłać nieznane źródło danych do jakiegoś schematu (który może być następnie sprawdzony), co może ulec awarii, jeśli źródło danych nie można rzucić.
Wierzę, ale nadal trudno w to uwierzyć. Oznacza to, że Visual Studio będzie faktycznie wysyłać żądania HTTP i kwerendy bazy danych i wszystkie te rzeczy podczas procesu kompilacji (i zakończenia kodu) w celu uzyskania schematu? Programowałem przez jakiś czas i nie sądzę, że widziałem takie rzeczy gdziekolwiek indziej; Zwykle w interfejsie z zewnętrznymi magazynami danych zawsze istnieje niejawna obsada.Czy gdziekolwiek mogę znaleźć tę koncepcję dla ogólnego przypadku, a nie dla F #? –
Oglądaj około 3 minuty: http://channel9.msdn.com/events/BUILD/BUILD2011/SAC-904T od 25:30. Tak, gdy naciśniesz "." w środowisku IDE program Visual Studio wysyła żądania sieciowe w celu pobrania kolejnego fragmentu schematu w celu przedstawienia automatycznego uzupełniania IntelliSense. To może być powieść i jest całkiem fajnie :) – Brian