admin

17.06.10

6

Tortoise SVN

Я лично давно уже перешел на Tortoise SVN, чем доволен и по сей день. Единственное что омрачало работу с Tortoise SVN, это Windows 7 которая никак не хотела отображать иконки для папок, но выходом стал замечательнейший плагин — AnkhSVN 2.1. Он полностью интегрируется в Microsoft Visual Studio 2008/2010 и сильно облегчает жизнь.

admin

06.11.09

3

Очень просто и наглядно, люблю Linq To Objects
Random random = new Random();
int[] sourceArray = new int[] {0, 1, 2, 3, 4, 5, 6};
int[] randomArray = sourceArray.OrderBy(i => random.Next()).ToArray();
Приятного вам программирования :)

OrdJONY

19.03.09

12

На днях решил глубже погрузится в технологию Windows Communication Foundation (сокращенно — WCF). Не буду рассказывать что это такое и с чем его едят, в интернете полно информации. Я вам лучше расскажу о том как сделать самый простейший чат. Что же нужно нам для чата. Во-первых сервер должен уметь оповещать клиента о том что кто-то написал сообщение в чат, о входе\выходе пользователей. Во-вторых сервер должен различать от какого клиента пришел вызов и какому отправить. Для реализации этих двух важных составляющих, канал должен поддерживать обратный вызов (duplex) и сессии (session). Поэтому для нас подходит NetTcpBinding. Запускаем студию, создаем новое решение (new Solution)->Консольное приложение (назвал его ChatService). Сразу же добавляем ссылку на сборку System.ServiceModel. Первое что нужно сделать, это описать интерфейс сервиса. Интерфейсу добавляем атрибут:

admin

03.02.09

4

Используете ли вы оператор yield return? Например следующий код:

public static IEnumerable<Item> GetGoodItems(this IEnumerable<Item> items) {  
     if (items != null)  
        foreach (var item in items) {  
          if (item.Type == ItemType.Good)  
                       yield return item;  
        }  
}  

Возвращает либо пустую коллекцию либо коллекцию IEnumerable. Причем работает очень шустро.

admin

23.12.08

0

Простой и удобный extension-метод для получения более полной информации об исключительной ситуации, с указанием максимального уровня вложенности.

  
    public static class ExceptionExtensions
    {
        public static String ToFullStackTrace(this Exception ex, Int32 count)
        {
            if (ex == null)
                throw new ArgumentException();
            StringBuilder sb = new StringBuilder();
            sb.Append(ex.StackTrace);

            int innerReferences = 0;
            Exception inner = ex.InnerException;
            while (inner != null && innerReferences < count)
            {
                sb.Insert(0, inner.StackTrace);
                inner = inner.InnerException;
                innerReferences++;
            }
            return sb.ToString();
        }
        public static String ToFullStackTrace(this Exception ex)
        {
            return ex.ToFullStackTrace(50);
        }
    }
    

Удачного вам программирования! :)



Поехали в жаркое лето на море и сломался ноутбук? Ремонт ноутбуков киев спасет вашу ситуацию.