Region C# хорошо или плохо?
Если есть описывающие порядок функций правила, то руки надо оторвать тому, кто расположил их неправильно :)
А вообще это дичь какая-то :)
Так у вас водопад и маленькая команда?
У нас не водопад, но таки маленькая команда. И шеф, который пытается понять как работает код. Он дает добро на мердж только в 2-х случаях:
1) когда понял изменение (должно быть изменено не больше 50-100 строк, если больше, то он подвисает очень надолго :))
2) когда клиенты пинают его шефа и его шеф вставляет звиздюлей. В этом случае понимания кода не требуется, а пару раз мерджели даже без тестирования (при этом код был готов месяца 2-3 до мерджа) :D
Вот буквально только что я замерджил изменение, которое было завершено на бранче в начале июня. При этом я точно знаю, что в некоторых местах там есть проблемы. Забавно, что один из системных тестов красный (на самом деле
это из-за того, что ошибка была всегда в мастере, а я ее пофиксил. т.е. это тот редкий случай, когда надо править ожидание теста) из-за этого не срабатывают юнит-тесты, т.е. по большому счету у нас нет доказательств того, что все ОК. Более того, я завтра последний день перед отпуском, и на фирме остается шеф, который не понял изменения, и джуниор разработчик, который тоже не до конца понял изменения. И все это добро планируют установить на боевой системе во время моего отпуска :) А все из-за того, что шефу таки настучали по голове и потребовали срочно решить проблему. Вот так и живем :)
ставь дома визуал студию
-----
Так есть ее... даже две... точнее - было - мащинка сдохла - БП.
А вот времени на это уже нет...
где то в стайл гайде мелкософта
------
Читать гайды от мелкомягих? Мне хватает кода написанного в точном соответствии с примерами мелкомягких - если на описано, а у меня не описано, что и как делается - фиг разберешся без поллитры что там...
Текучка:
грузится табличка из базы. Табличка в базе - может быть отредактирована в любой момент.
на основании полученных данных - строится набор ДатаКолумнов и добавляется в другую табличку
по этой другой табличке строится третья - с удалением и добавлением полей
все это написано именно в стиле примеров мелкомягких:
Private Function createReport(ByVal startDateTime As String, ByVal finishDateTime As String) As DataSetDim DS As New DataSetDim DTOptimisations As DataTable = NothingDim DTReplacements As DataTable = NothingDim DTPieces As DataTable = NothingDim DTNUM_KREIS As DataTable = NothingDim DTLIPROD_USER As DataTable = Nothing'Dim DTDisplay As DataTable = NothingDim DTSummary As DataTable = NothingTryDTOptimisations = DXCR8.loadDTOptimisations(startDateTime, finishDateTime)DTReplacements = DXCR8.loadDTReplacements(startDateTime, finishDateTime)DTOptimisations.Merge(DTReplacements)If DTOptimisations.Rows.Count > 0 ThenDTNUM_KREIS = DXCR8.loadDTNUM_KREISDTNUM_KREIS = loadDTNUM_KREIS_abbreviateDepartment(DTNUM_KREIS)DTLIPROD_USER = DXCR8.loadDTLIPROD_USERDTOptimisations = addColumnsDTOptimisations(DTOptimisations, DTNUM_KREIS)DTOptimisations = DTOptimisations.Select("", "batchNo, glassNo").CopyToDataTableFor Each DROptimisation As DataRow In DTOptimisations.RowsIf DROptimisation.Item("batchNo").ToString = "3041312" ThenDROptimisation.Item("batchNo") = 3041312End IfIf DROptimisation.Item("seqNo").ToString = "-3" ThenDTPieces = DXCR8.loadDTPiecesDummy("800001", DROptimisation)ElseDTPieces = DXCR8.loadDTPieces(DROptimisation)End IfIf DTPieces.Rows.Count > 0 ThenDTPieces = DTPieces_setDepartment(DTNUM_KREIS, DTPieces)DTPieces = DTPieces_setDepartment_exceptions(DTNUM_KREIS, DTLIPROD_USER, DTPieces)DTPieces = DTPieces_setDepartment_replacements(DTNUM_KREIS, DTLIPROD_USER, DTPieces)DROptimisation = fillDROptimisation(DTPieces, DTNUM_KREIS, DROptimisation)End IfNextDTOptimisations = fillDTOptimisation_combinedGlassNames(DTOptimisations)DTOptimisations.Columns.Remove("sheetWidth")DTOptimisations.Columns.Remove("sheetHeight")DTOptimisations.Columns.Remove("seqNo")DTOptimisations.Columns.Remove("timestampIndex")DTSummary = loadDTSummary(DTOptimisations)Me.ViewState.Item("DTOptimisations") = DTOptimisationsMe.ViewState.Item("DTSummary") = DTSummaryPNL1AddGV("GVDisplay", "Stock Sheet Usage", DTOptimisations)PNL1AddGV("GVSummary", "Stock Sheet Summary", DTSummary)End IfCatch ex As ExceptionEnd TryReturn DSEnd Function
Найдешь, с плутыка, где и как менается структура двух таблиц?
Вопрос второй - нахрена пустой DS возвращать?
на основании полученных данных - строится набор ДатаКолумнов и добавляется в другую табличку
уже после этого не хочется читать дальше. Ладно еще можно понять когда что то с базы читается. Не люблю я как то DataTablе.