alex.algel
- Вопросы
- Ответы
Имя | Алексей |
Возраст | Неизвестно |
Сайт | http://alexey-algel.blogspot.com |
Неизвестно | |
Участвует в проекте | 1022 дн., 13 час., 51 мин. |
Последняя активность | 683 дн., 4 час., 57 мин. назад |
Ответы
Перейти к вопросу →
Еще очень хорошая книга Технология разработки программного обеспечения. Брауде Эрик Дж.. Основное достоинство книги - ВСЕСТОРОННЕЕ описание процесса создания ПО. После нее хорошо представляешь себе картину в целом, а не разрозненными кусками.
Перейти к вопросу →
Migrator.Net — это механизм контроля версий базы данных, похожий на Migrations в Ruby on Rails. Migrator позволяет автоматизировать выполнение операций изменения БД и автоматически ведет учет версий.
Migrator написан на C# и будет удобен, в первую очередь, при использовании в проектах под.NET.
Ссылка на статью на хабре: http://habrahabr.ru/blogs/net/70884/ Ссылка на проект: http://code.google.com/p/migratordotnet/ и http://code.google.com/p/ecm7migrator/
Перейти к вопросу →
Все зависит от задачи. List<T>
по сути является оберткой вокруг массива. Поэтому если размер заранее известен и не требуется его изменение, то вполне можно обойтись массивом.
В то же время, если вы решите использовать коллекцию объектов в качестве источника данных для элементов управления, то лучше будет использовать List, в этом случае будет возможность интерактивно добавлять новые элементы.
Перейти к вопросу →
На эту тему достаточно подробно все расписано в МСДН
Перейти к вопросу →
Еще вариант в виде extension:
public static void Randomize<T>(this IList<T> target)
{
Random RndNumberGenerator = new Random();
SortedList<int, T> newList = new SortedList<int, T>();
foreach (T item in target)
{
newList.Add(RndNumberGenerator.Next(), item);
}
target.Clear();
for (int i = 0; i < newList.Count; i++)
{
target.Add(newList.Values[i]);
}
}
Взято здесь
Перейти к вопросу →
На самом деле я тестировал производительность запросов к DataTable и могу сказать, что Linq показал себя очень плохо... Если посмотреть через Reflector, то можно увидеть, что расширение LinqToDataSet всего лишь добавляет extension method AsEnumerable() к DataTable, для того чтобы задействовать стандартную инфраструктуру LinqToObjects.
Перейти к вопросу →
Да, сразу после инсерта делаешь Select @@IDENTITY
@@IDENTITY - Это системная функция, которая возвращает значение идентификатора, вставленное последним.
Подробнее можно почитать в МСДН
Перейти к вопросу →
В enum можно явно задать значения для каждого элемента:
enum Colors { Red = 1, Green = 2, Blue = 4, Yellow = 8 };
Таким образом, уходит проблема с добавлением новых элементов.
Перейти к вопросу →
Мне кажется второй вариант вполне может быть применим к методам, возвращающим коллекции списки и т.п. Например есть метод возвращающий список каких-то объектов из базы. И если данные не были найдены, то логично было бы вернуть пустой список. В этом случае в вызывающем коде не нужно делать проверку на null.
Перейти к вопросу →
При использовании throw; StackTrace будет включать метод, который сгенерировал исключение, а при throw e; стек вызовов оборвется на том методе, который его отловил.