You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Вынести строку подключения в App.config () вместо хардкода.
Использовать using/Dispose для SqlConnection, SqlCommand, SqlDataReader (или хранить подключение, но аккуратно управлять временем жизни).
Обернуть сохранение в транзакцию и/или делать MERGE/TRUNCATE + bulk insert в одной транзакции.
Параметризовать SQL (@lat, @lng) вместо строковой интерполяции.
Корректный тип данных координат
Заменить text на decimal(9,6) (или float, но decimal обычно лучше для координат).
Хранить значения в одном формате и парсить/форматировать через CultureInfo.InvariantCulture.
Деплой/запуск
Скрипт создания БД:
либо включить как ресурс,
либо вычислять путь относительно AppDomain.CurrentDomain.BaseDirectory,
либо отказаться от автосоздания и оставить явный шаг в инструкции.
Разделение скрипта по GO сейчас “наивное” (чувствительно к регистру/вхождениям в тексте). Лучше парсить по строкам, где GO стоит отдельно.
Зависимости/размер проекта
В MapWithMarkers.csproj подключено много библиотек (включая EF/SQLite/Azure), но в коде используется только System.Data.SqlClient + GMap.NET. Это увеличивает сложность сборки и вероятность конфликтов версий.
В идеале: оставить только реально используемые пакеты.
Надежность БД
Корректный тип данных координат
Деплой/запуск
Скрипт создания БД:
либо включить как ресурс,
либо вычислять путь относительно AppDomain.CurrentDomain.BaseDirectory,
либо отказаться от автосоздания и оставить явный шаг в инструкции.
Разделение скрипта по GO сейчас “наивное” (чувствительно к регистру/вхождениям в тексте). Лучше парсить по строкам, где GO стоит отдельно.
Зависимости/размер проекта
В идеале: оставить только реально используемые пакеты.