1. Nazwa zmiennych z wielkich liter nie szczególnie jest czytelne. Przyjąłbym jakąś konwencję np:. https://msdn.microsoft.com/en-us/library/ff926074.aspx
2. Tablice wielowymiarowe "double[,] matrix" raczej rzadko się używa, częściej używa się jagged arrays "double[][] matrix". Nie wiem czy to źle. Plus za znalezienie zastosowania tych tablic.
3. // Pośredniczy między aplikacją a bazą danych public class DataContainer. Nie wiem czy nie będzie upierdliwe w czasie rozwoju aplikacji wszystko wykonywać przez takie "proxy". Ja kiedyś też tak próbowałem robić i po jakimś czasie zrezygnowałem, bo pożytek żaden a niepotrzebnie komplikuje kod. Z jednej strony to fajne bo daje poczucie "mogę w przyszłości zmienić framework gadający z bazą", z drugiej strony, jeśli framework jest dojrzały (np. EF) to nie będziesz zmieniał frameworka, bo nie będzie takiej potrzeby. Tutaj używasz "meteo" - nie znam. Ja bym nie tworzył dodatkowej warstwy pomiędzy bazą danych a aplikacją. Ale to moje zdanie - miej na uwadze, że mogę się mylić, bo nie znam specyfiki Twojego projektu.
4. DataContainer- http://wklej.org/id/1913524/
DataRepository- http://wklej.org/id/1913524/
mają taki sam link
5.
public void ExportToDoc()
{
}
Jaa bym mimo wszystko wyrzucał NotImplementedException lub wyraźnie oznaczył w kodzie, że to trzeba dokończyć, tak na wszelki wypadek aby później o tym nie zapomnieć.
EDIT1:
6. Jeśli już piszesz wszystko po angielsku, to komentarze i doc stringi (/// ) też pisałbym w tymże języku - to tylko takie moje purystyczne dyrdymały...
EDIT2:
7. BTW. przestrzenie też powinny raczej być z wielkiej litery np. zamiast "namespace meteo.DatabaseClasses" bym użył "namespace Meteo.DatabaseClasses". Ale to jak wcześniej pisałem zależy od przyjętej konwencji.