You are viewing the community [info]advanced_csharp

Advanced C# [entries|archive|friends|userinfo]
Advanced C#

[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

Socket, Stream, Encoding [Mar. 6th, 2011|11:21 am]

xkip
Извините, не удержался:

http://www.c-sharpcorner.com/UploadFile/psingh/web_proxy11162005001036AM/web_proxy.aspx

Хотел сэкономить время, но понял что лучше бы написал сам с нуля... столько лолов и ламерства в этих нескольких строчек кода...

Вот например отправка строки в сокет:

_buffer = new Byte[message.Length + 1]; // O M G!!! откуда он это выдумал вообще???
int length = _encoding.GetBytes(message, 0, message.Length, _buffer, 0); // Супер
socket.Send(_buffer, length, 0);

А как бы написали эти строки вы?

А как вам это? Кто какую опасность видет?

String strRetPage = null;
strRetPage = strRetPage + ASCII.GetString(RecvBytes, 0, rBytes);
while (rBytes > 0)
{
rBytes = IPsocket.Receive(RecvBytes, RecvBytes.Length, 0);
strRetPage = strRetPage + ASCII.GetString(RecvBytes, 0, rBytes);
}
LinkLeave a comment

Про сборку мусора [Oct. 8th, 2010|12:14 pm]

ignatov_foto
Как думаете, что вы увидите в консоли после выполнения этого кода:
        static void Main(string[] args)
        {
            Timer t = new Timer(DoWork, null, 0, 2000);

            Console.ReadKey();
        }

        private static void DoWork(object obj)
        {
            Console.WriteLine("I am timer");

            GC.Collect();
        }

Результаты для Debug и Release версий будут отличаться. За разъяснениями к Рихтеру :)
Link2 comments|Leave a comment

The Feature of C# [Jun. 24th, 2010|10:48 pm]

xkip
Есть одна не маленькая, но очень такая позитивная, душевная видяха.
http://channel9.msdn.com/pdc2008/TL16/
Там история шарпа с ранних лет, основные вехи, и подробно о достижениях 4.0 а также забегание в будущее 5.0 с реальными примерами в действии во время презентации.
LinkLeave a comment

Pure Metaprogramming in C# [Jun. 24th, 2010|10:39 pm]

xkip
Наконец то сбылась мечта, смотрите как я умею :)

Link13 comments|Leave a comment

BCL site [Apr. 1st, 2010|07:56 pm]

anton_irinev
[Tags|, ]

В последнее время радуют разработчики стандартной библиотеки .NET'а. Теперь по адресу http://bcl.codeplex.com можно будет посмотреть прототипы тех проектов, с которыми BCL team в данный момент экспериментирует и код которых, возможно, войдёт в следующие версии .NET Framework. Очень здравая идея, учитывая то, что любой может высказать своё мнение о новой функциональности, не дожидаясь выхода CTP или беты.
Link2 comments|Leave a comment

Moving to Visual Studio 2010 (draft) [Mar. 28th, 2010|04:48 am]

anton_irinev
[Tags|]



скачать в формате xps (описание)
LinkLeave a comment

Перехват вызовов за 5 минут и 60 LOC [Feb. 24th, 2010|03:20 am]

djuffin
Если нужно перехватывать вызовы к объекту, а сторонних AOP средств тащить не хочется, можно попробовать выкрутиться с помощью стандартного механизма проксей (transparent proxy and real proxy).
Но придется либо ограничиться вызовами через интерфейс, либо тип объекта должен наследовать MarshalByRefObject. Например, так работает WCF.

Готовый код )
LinkLeave a comment

Smart tag – Single Binding [Jan. 10th, 2010|12:56 pm]

violet_tape

Intro

Продолжаем разговор на тему «Как создать смарт тэг». В предыдущем посте на эту тему я рассказал, что такое смарт тэги и с чем их едят. 

Сейчас же я хочу рассказать о том, как сделать биндинг для единичного поля. В дальнейшем повествовании я буду исходить из предположения, что у вас уже есть свой компонент, к нему применены все заготовки для создания смарт тэга и все готово для дальнейших действий. Так же как и в прошлом посте, я советую использовать ReSharper.

Я собираюсь рассказать и показать, как создать такую же функциональность в смарт тэге, которую вы наблюдаете при задании биндинга в окне свойств.

image

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

Есть ли стандартный способ задания биндинга?

Я его не нашел. Поиски «простого» и короткого стандартного способа не увенчались успехом. Sad, but true. Используя гугл, я нашел только 4 (четыре) вопроса по теме, и те без ответов. Только раз было направление для поисков, но для Web форм. Расстройству моему не было предела, но недолго оно длилось! Если кто-то что-то смог сделать, то другой человек может это сделать тоже. Руководствуясь этим железобетонным принципом, я вспомнил, что Microsoft опубликовала исходные коды для .Net фреймворка и потратив некоторое время на поиски я нашел где их слить и начал детальное исследование.


Далее идет описание кода, что и как сделать. К сожалению в ЖЖ подсветку вставить не получается даже с http://source.virtser.net/default.aspx. 
 

Link3 comments|Leave a comment

Smart tag – базовое применение [Jan. 7th, 2010|06:45 pm]

violet_tape
[Tags|]

Intro

Долгое время я с удовольствием и радостью пользовался смарт тэгами. Вообще-то я долгое время даже не знал, как эта штука правильно называется, но это не мешало с пользой использовать смарт тэги. Некоторое время назад я начал разрабатывать собственные компоненты, но это не сильно сокращало время настройки пользовательского интерфейса. Очень много времени уходит на то, чтобы найти необходимое свойство в Property view, выставить нужное значение. Это не проблема, если приложение небольшое и надо настроить только пару экранов, но превращается в головную боль, когда у тебя более 30 сложных экранов с самописными компонентами. Вобщем я решил найти, как же делаются смарт тэги (эти маленькие чудесные треугольнички) и настроить их для самописных компонентов и некоторых стандартных.



Результаты поиска увенчались успехом и, в результате некоторых тестов и проб пера, получилось то, что я хотел. И это действительно стало экономить кучу времени!

В серии статей про смарт тэги я бы хотел поделиться полученными знаниями и рассказать все с самого начала.

Для всего нижеописанного советую поставить ReSharper 5. В скобках горячие клавиши приведены для решарпера.
 

Read more... )
 
Читать далее на softblog.violet-tape.ru

Link1 comment|Leave a comment

Как эффективно создать объект типа, которого еще нет, или забудьте про constrain 'new()' [Nov. 11th, 2009|07:25 pm]

xkip
Существует на первый взгляд довольно простая задача: создать инстанс объекта, такого типа, которого еще нет (или который нельзя зареференсить, плагин, или еще что-то). Для этого можно создать ряд разного рода фабрик, воспользоваться рефлексией или активатором. Либо создать generic фабрику с constrain 'new()'.
Read more )
Link1 comment|Leave a comment

navigation
[ viewing | most recent entries ]
[ go | earlier ]