Версия для печати темы

Нажмите сюда для просмотра этой темы в оригинальном формате

forum.0day.community _ Программирование _ C# для новичков

Автор: Tyomniy May 3 2008, 13:06

Тут я предлагаю все новичкам программирования на C# выкладывать свои вопросы. По возможности, я думаю, все кто в этом что-то шарит будут стараться отвечать !

Тема для обговорення мови програмування C#, всі сторонні коментарі будуть видалятися, а їх автори отримувати %

Автор: Phaust May 3 2008, 13:38

Смысл создания этой темы ? Автор готов ответить на вопросы?

Автор: Tyomniy May 3 2008, 14:33

Готов в меру своих возможностей. Я не всемогущ и на всё ответы не знаю. Я достаточно опытен в этой теме и думаю многим смогу помочь. Но я рассчитываю на то , что и другие опытные пользователи будут помогать нуждающимся...

Автор: PRIHOD May 3 2008, 20:04

не..все правильно!! найдутся люди которые помогут! полезная ветка! super.gif

Автор: -Ren- May 4 2008, 0:58

ок рас так) какая литература для изучения С# лучше подходит для начала?
ЗЫ: С++ учу, они сильно отличаются?

Автор: Livanias May 4 2008, 1:27

Эндрю Троелсен Язык программирования С# 2005 и платформа .NET 2.0 или 3.5.
Отличаются достаточно, но для понимания не сложно. Если будешь читать Троелсена, то он иногда указывает на различия

Автор: Phaust May 4 2008, 11:37

Подскажите источник где внятно и подробно осещенны особенности многопоточного программирования на С#.
upd:вопрос снят,нашел сам. Но что то этот вопрос не очень то и освещен в литературе.

Автор: Tyomniy May 4 2008, 13:36

Советую всем сайт intuit.ru и форум программистов forum.vingrad.ru - там можно найти ответы на огромное количество вопросов. А обучающим курсам intuit.ru я просто не видел аналогов, настолько там легко и понятно описываются множество аспектов. (на обоих сайтах можно найти инфу не только по С#, а еще многое другое !)

Автор: Phaust May 4 2008, 13:56

Советую всем сайт intuit.ru

Непонравилось...
Есть следующий вопрос,хочу создать класс выполняющийся в отдельном потоке,есть ли на C# аналог Java конструкции "class XXX implements Runable..."?

Автор: Tyomniy May 4 2008, 14:28

Вот консольное приложение, которое в отдельном потоке выполняет нужный метод класса до нажатия клавиши:

» Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... «

Автор: Phaust May 4 2008, 14:42

Tyomniy - я не это имел в виду.
Можно ли в констукторе создать поток в котором будет выполнятся класс?
на подобие вот этого

» Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... «

Автор: Nazim May 4 2008, 15:59

Возможно тут найдет кто то ответы на вопросыhttp://blog.excode.ru/topic15.html

Автор: Phaust May 4 2008, 20:29

Решил проблему. многопоточность на С# однако мне не очень понравилась... На Java как то удобнее,ИМХО.

Автор: Livanias May 5 2008, 10:31

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

Автор: Phaust May 5 2008, 18:55

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

Ты прав,и реализовать очень легко. Ява расслабляет...
p.s. Неплохую статъб по потокам нашел на rsdn.ru http://gzip.rsdn.ru/article/mag/200702/CSThreading2.xml
http://www.rsdn.ru/article/dotnet/CSThreading1.xml

Автор: mulder May 7 2008, 22:36

"phaust" писать многопоточное приложение одинаково сложно и .Net и на С++ или JAVA, главное правильно расчитать взаимодействие обьектов. Если интерестно почитать просто об апаратной реализации многопоточности то имхо вот интерестный линк http://portal.acm.org/citation.cfm?id=326004.
Если для .Нет то лови вот линк,
http://www.yoda.arachsys.com/csharp/threads/ тоже досточно явно описаны средсва которые есть в .Нет, с примерами и всевожможными вариации мне.
http://www.albahari.com/threading/ вариация того что по линку выше

И наконец
http://www.manning.com/dennis/ вот книга и примеры

фуф, думаю поможет просто сам когдато с этим парился когда пришлось писать архитектуру для многопоточного виндовс сервиса


Автор: cheating May 19 2008, 18:45

Есть ли другие реализации кроме Mono .NET платформы под *nix?
Monodevelop не очень понравился, тем что работает только с gtk#, хотелось бы использовать qt. Да и вообще кто-то занимался программированием .NET не под винду?

ЗЫ. Виндовое не катит (: Да и основная идея фреймворка - переносимость, а он нифига не переносим, только между другими версиями оффтопика - будь то обычная урезанная мобильная и пр. А вот чтобы портировать под тот же Линукс приходится повозится. Есть ли альтернатива Windows.Forms?

Автор: Livanias May 20 2008, 8:20

Пока переносимость .NET всего лишь мечта. MS не особо работает в эту сторону. Насчет других платформ, то я учавствовал в бета тестировании фреймворка для Symbian 3rd компании Red Labs. Но там скорее перекодирование кода .NET в симбиановский.

Автор: Phaust May 21 2008, 22:37

Пока переносимость .NET всего лишь мечта.

И ею и остнанется. Вопрос маркетинга и интересов Мс. Остаеться халявая Java:)

Автор: fauzt May 28 2008, 15:47

Кто нибудь занимался VOIP на C# ?

Автор: Livanias May 28 2008, 16:51

Erik van Eykelen занимался. http://www.oreillynet.com/pub/a/etel/2006/02/03/openzoep-an-open-source-voip-engine.html
И Ivar Lumi http://www.codeproject.com/KB/cs/SIP_stack_with_SIP_proxy.aspx
Еще авторов поискать?

Автор: fauzt May 28 2008, 17:21

За "Erik van Eykelen" спасибо. Просто вариант с джаббером я как-то сразу откинул. У них передача видео по протоколу - в разработке.
Мне не плохо было бы поиметь простенький софт фон (желательно с SIP) на С#. Нашел еще библиотеку http://sourceforge.net/projects/asterisk-dotnet/, но к ней нет документации.
Больше ничего толкового найти не удалось..

Автор: ra2k May 28 2008, 23:59

IMHO voip на C# это бред - для потокового аудио требуется хорошая производительность а .net ею не блещет... тоесть написать конечно можно, только рабоать будет лиш на машинах с кучей ядер и гигов памяти good.gif

Автор: Livanias May 29 2008, 11:14

Во-первых битрейт передаваемого голоса будет небольшим, во-вторых уж для звука хватит. Так что не надо недооценивать .НЕТ. Писалась видео-конференция на .NET и нормально работало, правда в локалке smile.gif

Автор: sottm May 29 2008, 16:36

Вопрос: Какая реальная перспектива .NET в решении бизнес-задач(имеется ввиду Украина)?

Автор: darknode Jun 1 2008, 19:34

Думаю что вполне реальная перспектива.
Точнее уже не перспектива, а реальность. Тому примеры: банковские системы на .NET, скоринговые системы для страховых/банков, платежные системы системы, системы корпоративного документооборота.

Автор: sottm Jun 1 2008, 20:15

А можно по-конкретней? Названия, технологии .NET и т.д. Я допустим уже не один год работаю в фин. сфере и кроме Delphi и Java ничего другого для разработки интерефейса, не видел. И если есть перспекстива реальная, то какие параметры этой платформы более практичны в решении бизнес-задач по сравнении с той же Java EE?
P.S.: Я не имею ничего против .NET, но хочется по больше узнать о ней от опытных людей

Автор: Livanias Jun 2 2008, 9:01

(sottm @ Jun 1 2008, 21:15) Перейти к цитате

А можно по-конкретней? Названия, технологии .NET и т.д.

В смысле? технологии .NET - WinForm.NET, ADO.NET, ASP.NET dntknw.gif
(sottm @ Jun 1 2008, 21:15) Перейти к цитате

Я допустим уже не один год работаю в фин. сфере и кроме Delphi и Java ничего другого для разработки интерефейса, не видел.

Ты прав, сам работаю в конторе софт для банков пишушей.
Но как писал darknode всякие системы платежа на ASP.NET писаны, наример MoneyGram, Anelik (вроде так), UniStream, MobiFIX ну и еще что-то.
Ну вот KyivStar работает на Java+Oracle.
МТС на .NET + MS SQL.
(sottm @ Jun 1 2008, 21:15) Перейти к цитате

И если есть перспекстива реальная, то какие параметры этой платформы более практичны в решении бизнес-задач по сравнении с той же Java EE?
P.S.: Я не имею ничего против .NET, но хочется по больше узнать о ней от опытных людей

Был на семинаре по MS SQL 2008, так там кучу всяких инструментов для анализа данных подабавляли.
А так в принципе и Java и NET имеют право на жизнь.

Автор: ОТЕЦъ Jun 2 2008, 10:03

ресурсы по теме:

» Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... «

Автор: sottm Jun 2 2008, 10:27

(Livanias @ Jun 2 2008, 15:01) Перейти к цитате

В смысле? технологии .NET - WinForm.NET, ADO.NET, ASP.NET dntknw.gif

Я там запятую поставил, тоесть я имел введу: Название предприятия -> Название проекта -> Название технологий .Net (то что ты написал только в контексте именно того проекта)
(Livanias @ Jun 2 2008, 15:01) Перейти к цитате

Но как писал darknode всякие системы платежа на ASP.NET писаны, наример MoneyGram, Anelik (вроде так), UniStream, MobiFIX ну и еще что-то.


Да, масштабные программы написаные где-то далеко индусами, я не имел введу какие программы на .NET используются в Украине, а именно какие системы разработанны в Украине на .НЕТ оутсорсерами, отделами предприятий и т.д.

(Livanias @ Jun 2 2008, 15:01) Перейти к цитате

А так в принципе и Java и NET имеют право на жизнь.

Не спорю

Автор: Livanias Jun 3 2008, 10:25

Да, масштабные программы написаные где-то далеко индусами, я не имел введу какие программы на .NET используются в Украине, а именно какие системы разработанны в Украине на .НЕТ оутсорсерами, отделами предприятий и т.д.

Имменно, то что я перечислил пишется в Украине на .NET. На чем именно у буржуев написано я не в курсе. Я сам и учавствую в разработке одного из этих проектов.
Вспомнил, что еще для датчан писалась/пишется прога "электронный дом" (ну типа все связано и холодильник, и шторы), которая у нас по известным причинам не распространена.

Автор: Phaust Jun 3 2008, 18:33

что еще для датчан писалась/пишется прога "электронный дом" (ну типа все связано и холодильник, и шторы), которая у нас по известным причинам не распространена.

В самописном варианте(то есть для внутреннего использования и внедерения в рамках проектов одной конторы ) я такое у нас в стране видел. "Умные дома" вещь перспективная но слишком уж индивидуальная...

Автор: kandr Jun 5 2008, 16:20

(Livanias @ Jun 2 2008, 10:01) Перейти к цитате

В смысле? технологии .NET - WinForm.NET, ADO.NET, ASP.NET dntknw.gif

Ты прав, сам работаю в конторе софт для банков пишушей.
Но как писал darknode всякие системы платежа на ASP.NET писаны, наример MoneyGram, Anelik (вроде так), UniStream, MobiFIX ну и еще что-то.
Ну вот KyivStar работает на Java+Oracle.
МТС на .NET + MS SQL.

Был на семинаре по MS SQL 2008, так там кучу всяких инструментов для анализа данных подабавляли.
А так в принципе и Java и NET имеют право на жизнь.



В Kyivstar много систем написанных под .Net и технология считается довольно перспективной, т.к. 90% крутится на виндовых серверах...

ИМХО у .NET есть реальное будущее в Украине, а Java-приложения - это реальный гемор и тормоза...

Автор: Phaust Jun 5 2008, 18:12

ИМХО у .NET есть реальное будущее в Украине, а Java-приложения - это реальный гемор и тормоза...

Есть личный опыт гемора и тормозов?smile.gif ИМХО,у Java как реально кроссплатформенного решения есть своя ниша,а .NET. Плюс,стоимость Java все таки ниже.

Автор: kandr Jun 6 2008, 8:52

(Phaust @ Jun 5 2008, 19:12) Перейти к цитате

Есть личный опыт гемора и тормозов?smile.gif ИМХО,у Java как реально кроссплатформенного решения есть своя ниша,а .NET. Плюс,стоимость Java все таки ниже.


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


Автор: Livanias Jun 6 2008, 19:01

(Phaust @ Jun 5 2008, 19:12) Перейти к цитате

ИМХО,у Java как реально кроссплатформенного решения есть своя ниша,а .NET. Плюс,стоимость Java все таки ниже.

Опять холивар? Толлерантней smile.gif!
Давайте по пунктам:
- Java лучше кроссплатформенностью.
- .Net ооочень удобно использовать под виндовс.
- Помоему стоимость работы программера java как раз больше чем у .net. Но на .Net легче и потому больше (ИМХО wink.gif ).

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

Сейчас у меня пошло тяжелое время насчет глюков, так я скажу, что они возникают из-за неправильной архитектуры приложения + от невнимательности, как у меня на .NET тик и у коллег на java. Если ты конечно не работаешь с системными ф-ями винды, как то чтения конкретного сектора хард-диска. Так что сначала надо указать причины возникновения ошибок.
З.Ы. звыняйте за орфографию/пунктуацию, потому как пятница - админы зашли wink.gif

Автор: sottm Jun 6 2008, 22:59

kandr не ответил на вопрос в котором проскользнуло это самое Java, причем у меня такие подозрения что он имет введу чистый SE , вобщем не считаю что тему kandr"а стоит продолжать

Автор: Phaust Jun 9 2008, 22:21

Нужна литературка по MSIL. Поделитесь,если у кого естьsmile.gif

Автор: Livanias Jun 10 2008, 8:49

(Phaust @ Jun 9 2008, 23:21) Перейти к цитате

Нужна литературка по MSIL. Поделитесь,если у кого естьsmile.gif

В книге Троелсона по C# неплохо разжовывает, и к тому же приводит ссылки где можно более углубленно посмотреть. Вообщето книг именно по IL я не встречал, это в стандарте .NET надо смотреть.
А если не секрет, зачем такое редкое знание понадобилось? Хочешь какой-то язык к .NET привестиsmile.gif?
Вот есть это, но я бы особых надеж не испытывал:
» Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... «

Автор: Yuraks Jun 10 2008, 10:05

(Phaust @ Jun 9 2008, 23:21) Перейти к цитате

Нужна литературка по MSIL. Поделитесь,если у кого естьsmile.gif

http://c-books.info/books/news5.php/2007/01/31/expert-net-2-0-il-assembler.html
+ Рихтера стоит посмотреть http://c-books.info/books/news5.php/2007/01/12/clr-via-c-programmirovanie-na-platforme-microsoft-net-framework-2-0-na-yazyke-c.html

Автор: Phaust Jun 10 2008, 21:40

А если не секрет, зачем такое редкое знание понадобилось?

Сборки,динамические классы.

Автор: Livanias Jun 11 2008, 1:04

Точно, у Троэлсона было - компиляция на лету и т.п. Причем если мне не изменяет памято то необязательно MSIL использовать там кажись и обычные языки подходят.

(дабы не плодить посты)UPD: Ниразу не видел книг по MSIL есть лишь стандарт который предоставляет микрософт. Так что в msdn.microsoft.com надо идти.

Автор: Phaust Jun 11 2008, 20:21

Ну тут случай такой,MSIL нужен,поэтому и книга понадобилась именно по немуsmile.gif

Автор: darknode Jun 23 2008, 20:17

(sottm @ Jun 1 2008, 21:15) Перейти к цитате

А можно по-конкретней? Названия, технологии .NET и т.д. Я допустим уже не один год работаю в фин. сфере и кроме Delphi и Java ничего другого для разработки интерефейса, не видел. И если есть перспекстива реальная, то какие параметры этой платформы более практичны в решении бизнес-задач по сравнении с той же Java EE?
P.S.: Я не имею ничего против .NET, но хочется по больше узнать о ней от опытных людей


Реальные компании и проекты:
LimeSystems->Scrooge (АБС - автоматизированная банковская система: опер.день, СЭП и т.д., насколько знаю используется многими банками украины, причем крупными), WebBank (тут ничего не знаю sad.gif), НПФ (негос. пенсионный фонд) (ну а дальше можно в инете поидее найти ).
У Финпорта тоже есть проекты на .NET.

Автор: darknode Jun 23 2008, 20:52

(Livanias @ Jun 11 2008, 2:04) Перейти к цитате

Точно, у Троэлсона было - компиляция на лету и т.п. Причем если мне не изменяет памято то необязательно MSIL использовать там кажись и обычные языки подходят.


Согласен, можно пользоваться CodeGeneration, CodeCompiler. В общем все довольно просто.

» Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... «

Автор: Phaust Jun 24 2008, 10:03

darknode - совсем не то! Есть описание класа в XML который используется наподобии DLL. По нему динамически создается сборка.

Автор: darknode Jun 24 2008, 21:54

(Phaust @ Jun 24 2008, 11:03) Перейти к цитате

darknode - совсем не то! Есть описание класа в XML который используется наподобии DLL. По нему динамически создается сборка.

Ну может быть и не то. Но исходя из скудного описания задачи приходит на ум несколько вариантов.
Если у тебя есть XML в котором описан клас, то можно получив из XML файл(ы) с исходником, скомпилить его в виде сборки(код из примера выше):
parameters.GenerateExecutable = false;
parameters.GenerateInMemory = true;
parameters.OutputAssembly = "XmlCode.dll";
...
...
...
Assembly.Load("XmlCode.dll"); //Так как сборка уже в памяти

Соответственно грузим в нужный AppDomain, а если XML изменился, делаем тоже самое, но перед загрузкой сборки, выгружаем старую.

А вот чтобы получить из XML исходники для компиляции есть 3 варианта, но тут все зависит от формата XML:
1. XSL преобразование данных из XML в CS-код(или VB).
2. На основе данных в XML сформировать CS-код "вручную", то есть при помощь своего кода.
3. На основе данных в XML сформировать CS-код используя классы для кодогенерации.

Автор: Livanias Jun 25 2008, 9:25

(Phaust @ Jun 24 2008, 11:03) Перейти к цитате

darknode - совсем не то! Есть описание класа в XML который используется наподобии DLL. По нему динамически создается сборка.

Запутано как-то. А вообще то сериализацию напоминает smile.gif

Автор: darknode Jun 25 2008, 17:44

(Livanias @ Jun 25 2008, 10:25) Перейти к цитате

Запутано как-то. А вообще то сериализацию напоминает smile.gif

Ну если в XML данные класса, то и менно сериализация cool.gif

Автор: Phaust Jun 25 2008, 18:54

Запутано как-то. А вообще то сериализацию напоминает

Не угадалиsmile.gif Это нужно что бы динамически подключать различные библиотеки(dll) в нужном виде,а XML нужен что бы описать собственно что и как подключаем.

Автор: darknode Jun 25 2008, 21:20

(Phaust @ Jun 25 2008, 19:54) Перейти к цитате

Не угадалиsmile.gif Это нужно что бы динамически подключать различные библиотеки(dll) в нужном виде,а XML нужен что бы описать собственно что и как подключаем.

Добро пожаловать в пытошную wink.gif

А если dll-ки не нативные, то можно просто использовать стандартные средства .NET.
А вот если они нативные(тобиш не .NET-сборки), то насколько интуиция подсказывает хочется для них динамически компилить прокси-сборки (http://pinvoke.net/) для .NET (тут в руки рефлекшн и опять же кодогенерация).
Если мои мысли "идут" в правильную сторону, то зачем же делать такого сферического коня в вакууме ? smile.gif

Автор: Phaust Jun 25 2008, 21:35

Если мои мысли "идут" в правильную сторону, то зачем же делать такого сферического коня в вакууме ?

Чтоб любой "чайник" мог прикрутить любую нужную ему dll-ку к программе. Вобщем "фича" и задача чтоб мозг не расслаблялсяsmile.gif Dll причем могут быть как нативные так и не нативные,а xml файл не содержит никакого программного кода,а только стандартизированое описание dll. Пытошная вобщемsmile.gif
Ниразу не видел книг по MSIL есть лишь стандарт который предоставляет микрософт. Так что в msdn.microsoft.com надо идти.

Они естьsmile.gif Сморти http://forum.0day.kiev.ua/index.php?s=&showtopic=70481&view=findpost&p=904694

Автор: darknode Jun 25 2008, 22:24

(Phaust @ Jun 25 2008, 22:35) Перейти к цитате

Чтоб любой "чайник" мог прикрутить любую нужную ему dll-ку к программе. Вобщем "фича" и задача чтоб мозг не расслаблялсяsmile.gif Dll причем могут быть как нативные так и не нативные,а xml файл не содержит никакого программного кода,а только стандартизированое описание dll. Пытошная вобщемsmile.gif

Это самый большой сферический конь в вакууме которого я видел (ну кроме компонента для работы с большими объемами данных smile.gif ).

Это какая то система плагинов получается ?
Если да, то в таком случае чтобы все было просто dll-ки должны описывать какой то интерфейс для работы с ними, нативные по нативному, а НЕТовские по НЕТовски. И соответственно достаточно просто иметь 1 сборку-прокси для работы с нативными сборками, а с нетовскими на прямую.

Автор: Phaust Jun 25 2008, 22:32

"Фича" состоит в том что бы можно было прикрутить ЛЮБУЮ dll,в.т.ч. и стороннего разработчика ,и в.т.ч. чтобы это мог сделать любой идиот(хотя я лично не верю в такую возможностьsmile.gif ) А еще то что прикрутили из dll должно согласоватся с внутренней структурой классов приложения.

Это какая то система плагинов получается ?

В принципе-да.
ЗЫ. Хочу отметить что практический смысл сего близок к нулю но идею забросить жалкоsmile.gif

Автор: darknode Jun 26 2008, 16:35

(Phaust @ Jun 25 2008, 23:32) Перейти к цитате

"Фича" состоит в том что бы можно было прикрутить ЛЮБУЮ dll,в.т.ч. и стороннего разработчика ,и в.т.ч. чтобы это мог сделать любой идиот(хотя я лично не верю в такую возможностьsmile.gif ) А еще то что прикрутили из dll должно согласоватся с внутренней структурой классов приложения.

В принципе-да.
ЗЫ. Хочу отметить что практический смысл сего близок к нулю но идею забросить жалкоsmile.gif

Это получается к примеру взять dll из MS Word и подключить к "QIP.NET" smile.gif

Мне кажется что без стандартных интерфейсов в том или ином виде идея обречена на гибель sad.gif.

Автор: Phaust Jun 26 2008, 18:51

Мне кажется что без стандартных интерфейсов в том или ином виде идея обречена на гибель

Стандартизация интерфейса происходит на уровне написания XML файла.
Это получается к примеру взять dll из MS Word и подключить к "QIP.NET"

Грубо говоря да,но на практике нужны математические функции из сторонних DLL.

Автор: darknode Jun 26 2008, 21:08

(Phaust @ Jun 26 2008, 19:51) Перейти к цитате

Стандартизация интерфейса происходит на уровне написания XML файла.
Грубо говоря да,но на практике нужны математические функции из сторонних DLL.

Стандартизацию я подразумеваю примерно так:
в софтине есть интерфейс с набором методов к примеру a,b,c,d.
В XML описывается какие методы определенного класса считать методами a,b,c,d.
Ну и в итоге формировать нужные вызовы по соответствию base.a -> [xml.a] -> dll.ghostly_a.
То есть получается некий маппинг методов и их параметров DLL на методы и их параметры в интерфейсе софтины.

Не по теме:
что то мне кажется что в теме по шарпу только мы и общаемся последнее время )))))

Автор: Livanias Jun 26 2008, 22:11

что то мне кажется что в теме по шарпу только мы и общаемся последнее время )))))

Почему же? Нет )

Стандартизацию я подразумеваю примерно так:
в софтине есть интерфейс с набором методов к примеру a,b,c,d.
В XML описывается какие методы определенного класса считать методами a,b,c,d.
Ну и в итоге формировать нужные вызовы по соответствию base.a -> [xml.a] -> dll.ghostly_a.

Я думаю что этого можно добиться сформировав код, допустим на до- диез, и скомпилировать во время выполнения (я все еще считаю, что так легче чем набивать MSIL код, что кажись равнозначно, но только с пропуском шага компиляции), потом вызвать, так сказать, импортируемую функцию. Но все равно идея немного не дотягивает до утопии)) Так как конечному пользователю, т.е. любому идиоту, надо описывать методы сторонней длл очень скрупулезно, потому что можно намучится с приведением типов, плюс модификаторами параметров ( *, &, out, ref, мало еще какой).

Автор: Phaust Jun 26 2008, 22:17

Но все равно идея немного не дотягивает до утопии))

Идея интересна как задача для мозга,уже писалsmile.gif
ЗЫ. Хочу отметить что практический смысл сего близок к нулю но идею забросить жалкоsmile.gif

т.е. любому идиоту, надо описывать методы сторонней длл очень скрупулезно

Само собойsmile.gif Все не так просто как кажется с первого взгляда.
Стандартизацию я подразумеваю примерно так:

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

Автор: Livanias Jul 21 2008, 22:44

Есть такой вопрос, возможно он больше для админов, но все же...
Мигрировали с ASP.NET 1.1 на ASP.NET 3.5 все бы хорошо, но! сайт веб-сервисов перестал принимать запросы пользователей, при условии что сайт был изначально по протоколу HTTP_S_ и в настройках было всегда запрашивать правильный сертификат, теперь же он работает только при получение какого либо сертификата или же выключенных сертификатах. Т.е. если у пользователя есть правильный сертификат, то он может зайти на вэб-морду, а на сервисы нет о_О, если включен запрос прав. сертификатов. Что делать и кто виноват?

Автор: Bykoff Jul 22 2008, 7:00

Вопрос по С++
Решил в свободное от учебы время начать учить С++. dirol.gif

Первая прога - вывод текста.

» Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... «

Пишет что не может открыть файл потока ввода/вывода... в справочнике ничего не нашел, может этот файл где-то "взять" для начала надо?

ЗЫ: да, я полный нуб fool.gif

Автор: Gans Jul 22 2008, 9:11

#include "stdafx.h"

#include <iostream>

int main()
{
std::cout << "Hello in (!!!\n";
return 0;
}

Автор: Bykoff Jul 22 2008, 9:24

Нет:

» Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... «

у него "в мозгу" нету этих файлов sad.gif

ЗЫ: может у меня какой-то TURBO C++ кривой?? Хотя я качал его с сайта МАИ, должен был бы быть нормальным...

Автор: reiten Jul 22 2008, 11:43

Посмотри, сколько этому TURBO C++ лет cool.gif
О namespace'ах и о многих других конструкциях С++ этот компилятор просто не знает.

Если хочешь, чтобы скомпилилось в нем, то писать надо так:

» Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... «

Но вообще лучше пересесть на нормальный более-менее свежий компилятор типа GCC или MS VC++.

Автор: Gans Jul 22 2008, 12:38

так. постав собі щось посучасніше і не парся. все одно рано чи піно це зробиш. тому краще рано. моя версія працює в MS VS 2008

Автор: Bykoff Jul 22 2008, 13:24

Прикол в том, что оно вообще не понимает что такое <iostream> или <iostream.h>...
Ладно, поищу что-то другое... просто его еще фиг найдешь, это другое...

Автор: Livanias Jul 22 2008, 13:28

Заходишь в Options->Directories->Include и прописуешь там путь к заголовочным фаqлам, в твоем случае iostream.h

Автор: Bykoff Jul 22 2008, 13:41

(Livanias @ Jul 22 2008, 14:28) Перейти к цитате

Заходишь в Options->Directories->Include и прописуешь там путь к заголовочным фаqлам, в твоем случае iostream.h

О, спасибо, понял.!!!

Автор: darknode Jul 26 2008, 13:08

(Livanias @ Jul 21 2008, 23:44) Перейти к цитате

Есть такой вопрос, возможно он больше для админов, но все же...
Мигрировали с ASP.NET 1.1 на ASP.NET 3.5 все бы хорошо, но! сайт веб-сервисов перестал принимать запросы пользователей, при условии что сайт был изначально по протоколу HTTP_S_ и в настройках было всегда запрашивать правильный сертификат, теперь же он работает только при получение какого либо сертификата или же выключенных сертификатах. Т.е. если у пользователя есть правильный сертификат, то он может зайти на вэб-морду, а на сервисы нет о_О, если включен запрос прав. сертификатов. Что делать и кто виноват?

За сертификаты в этом случае отвечает не ASP.NET, а IIS а так же домен и сервер сертификации(при условии что он есть), получается нужно копать в этом направлении...

Автор: ArtX Aug 1 2008, 13:08

Есть вопрос к знатокам.
Ковыряюсь в C# в разрезе CompactFramework. И возникла тривиальнейшая проблема - не могу получить путь откуда запущена программа. Каким образом его можно получить?

Автор: undertaker Aug 2 2008, 17:17

Должно быть так по идее:
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.FullyQualifiedName

Автор: darknode Aug 3 2008, 0:45

Ну или так:

Uri exePath = new Uri(Assembly.GetExecutingAssembly().GetName().CodeBase);
MessageBox.Show("Executable is at: " + exePath.LocalPath);

Автор: Phaust Aug 12 2008, 20:52

Существует XML файл, исходя из которого динамически формирую класс:

» Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... «

Но вот не смотря на эти строчки:
parameters.GenerateExecutable = false;
parameters.GenerateInMemory = true;
Сборка все равно сохраняется на жестянку.

Это можно избежать, или придется после завершения приложения их удалять?
Если сборка будет создаваться в памяти, смогу ли я загружать ее так же, как и в том случае?

Автор: Livanias Aug 13 2008, 13:51

parameters.GenerateExecutable = false;

Ну это указывает лишь на то, что ты хочешь длл, а не экзешник.
И обрати внимание на этот абзац:
You can compile an assembly that is written to memory rather than disk by setting the GenerateInMemory property to true. When an assembly is generated in memory, your code can obtain a reference to the generated assembly from the CompiledAssembly property of a CompilerResults. If an assembly is written to disk, you can obtain the path to the generated assembly from the PathToAssembly property of a CompilerResults.

Т.е. из памяти надо загружать из results.CompiledAssembly. А вообще я так понял, что можно компилировать и в память как ты сделал установив parameters.GenerateInMemory = true;. Но не понял, полюбому ли создатся файл на диске.

Автор: Phaust Aug 13 2008, 18:18

Т.е. из памяти надо загружать из results.CompiledAssembly.

Создается и загружается. Проблема в том что создается одновременно с этим и на диске,а хотелось бы что бы не создавалось.

Автор: darknode Aug 13 2008, 22:41

Попробовал написать, все ок, достаточно не использовать OutputAddembly и не указывать имя файла.

Тут исходник консольного приложения, которое делает то что нужно, не пишет сборку на диск:

» Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... «


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

Автор: Phaust Aug 14 2008, 21:15

Спасибо,помогло!:) Теперь, следующий вопросsmile.gif
У меня в классе объявлен вот такой массив:
protected object [] _IO;
В процессе работы с классом элементы могут иметь разные типы.
Как-то можно в обычном (не динамически сгенерированном) классе генерить свои свойства (для доступа к отдельным элемента массива)?
В моем случае я использую ПропертиГрид для изменения элементов массива, что очень удобно, но не всегда этот массив полностью сформирован на момент компиляции.
Была мысль использовать коллекции, в которых элементы имеют ключ-значение, но в пропертигрид отображается не так, как мне нужно.
Может можно "научить" ПропериГрида отображать массив в нужном виде, доступаться к элементам как к отдельным свойствам? Ну естессно так, чтобы остальные свойства тоже отбражались.

Автор: undertaker Aug 15 2008, 17:07

Можно подробнее? Какие объекты хранятся в массиве и что должен отображать PropertyGrid?

Автор: Phaust Aug 15 2008, 19:35

Чтобы было яснее, массив - это входы/выходы блока, который выполняет какие-то математические вычисления (их много).
Так вот, для тех блоков, которорые я сам писал, массив полностью определен на момент компиляции, и я могу написать для этого и свойства, которые отобразятся в ПропертиГрид.
Но для части из них массив генерируется автоматически (считывается инфа с ХМЛ файла), хотелось бы получить такое же поведение блоков.
В принципе коллекции можно использовать как мостик между ПропертиГрид и массивом, но это будет не самое лучшее решение.

Автор: darknode Aug 15 2008, 22:33

В существующий класс не получится добавить проперти.
Можно динамически генерировать класс с нужными пропами для проперти-грида.

Автор: nalysnyk Aug 25 2008, 10:18

Дуже класна книжка! Коротко і ясно! Рекомендую всім хто починає вчити шарп!

http://blues.lnu.edu.ua/ami/books/ami/C_sharp.pdf

Автор: Phaust Aug 25 2008, 12:25

2 nalysnyk
Ерунда нелепаяrofl.gif Читайте Троелсена...

Автор: undertaker Aug 27 2008, 17:53

И Рихтера smile.gif

Автор: pasha_ch Sep 14 2008, 22:41

Подскажите, как добавлять изображения, например, прямоугольники, на Bitmap...

Автор: aminchenko Sep 14 2008, 23:48

Помогите пожалуйста.
Передомной стоит задача которая заключается в следующем:
Необходимо что бы в web приложении выполнении Page load в буфер обмена клиента загружалось значение переменной.
Возможно ли это?
И если возможно то как это реализовать?

Автор: Livanias Sep 15 2008, 8:53

(aminchenko @ Sep 15 2008, 0:48) Перейти к цитате

Помогите пожалуйста.
Передомной стоит задача которая заключается в следующем:
Необходимо что бы в web приложении выполнении Page load в буфер обмена клиента загружалось значение переменной.
Возможно ли это?
И если возможно то как это реализовать?

Используя RegisterStartupScript или же введя ClientPageLoad (кажись так) добавить такой скрипт:

// Microsoft Internet Explorer only
// Manipulating the system clipboard in JavaScript
//   Read more at:
//   [url=http://msdn.microsoft.com/workshop/author/dhtml/reference/objects/clipboarddata.asp]http://msdn.microsoft.com/workshop/author/...ipboarddata.asp[/url]

// set the clipboard
// var x = 'Whatever you want on the clipboard';
// window.clipboardData.setData('Text',x);

// get the clipboard data
window.clipboardData.getData('Text');

// clear the clipboard
// window.clipboardData.clearData();

Ну дальше додумай



Подскажите, как добавлять изображения, например, прямоугольники, на Bitmap...

Юзай
PictureBox pictureBox1 = new PictureBox();
public void CreateBitmapAtRuntime()
{
    pictureBox1.Size = new Size(210, 110);
    this.Controls.Add(pictureBox1);

    Bitmap flag = new Bitmap(200, 100);
    Graphics flagGraphics = Graphics.FromImage(flag);
    int red = 0;
    int white = 11;
    while (white <= 100) {
        flagGraphics.FillRectangle(Brushes.Red, 0, red, 200,10);
        flagGraphics.FillRectangle(Brushes.White, 0, white, 200, 10);
        red += 20;
        white += 20;
    }
    pictureBox1.Image = flag;

}

ТОлько вместо FillRectangle используй Graphics.DrawPolygon

Автор: s-stude Nov 11 2008, 15:42

подскажите. вот щас на c# есть такой момент.
в мастере сделан датасет, по sql запросу к субд Оракл.
сам запрос вот:
select a,b,c,d from table1 where a=:a

:a я беру с textbox.text

мне надо изменить так:
select a,b,c,d from table1 where a=:a, b=:b

но :b выбирать с combobox.selecteditem

внимание вопрос.

items для combobox должны инициализироваться во время form_load запросом
select dictinct b from table1 но принять только первые 10 строк.

то есть мы формируем дистинкт б из табл.1 (результат - 30 строк) берем первые 10.

что то я затупил ((

Автор: darknode Nov 20 2008, 0:16

Если FW 3.5 то дико повезло smile.gif
пишем Linq-запрос:


using(MyDataContext db = new MyDataContext())
{
var items = from i in db.Table1
                  select i.b distinct take 10;
}


в итоге в items будет до 10 значений из столбца b отобранные по distinct.

Ну а если нет, и нужно "обрезать" выборку на сервере приложений, то:
public static DataSet SelectTopFrom(DataSet  ds, int rowCount)
{
DataTable dt = ds.Tables[0];
DataTable dtn = dt.Clone();
for (int i = 0; i < rowCount; i++)
{
dtn.ImportRow(dt.Rows[i]);
}
DataSet dsn = new DataSet(dtn);
return dsn;
}


Автор: s-stude Nov 21 2008, 16:25

вот возникла задачка снова. вытекающая из предыдущей.

есть сиквелл кот. возвращает фильтрованные данные из таблиц
сделан он с помощью визарда. т.е. в коде мало прописано всяких датасет-адаптер.

параметры в него вставляются когда юзер введет что-то с клавы.

мне надо просто связать этот датасет с crystal report под 2005 студию.
сомнение вызыват датасет сделанный в визарде.. помогите???

Автор: darknode Nov 29 2008, 15:55

(s-stude @ Nov 21 2008, 16:25) Перейти к цитате

есть сиквелл кот. возвращает фильтрованные данные из таблиц

допустим
(s-stude @ Nov 21 2008, 16:25) Перейти к цитате

сделан он с помощью визарда. т.е. в коде мало прописано всяких датасет-адаптер.

кто сделан ? сиквел ?
(s-stude @ Nov 21 2008, 16:25) Перейти к цитате

параметры в него вставляются когда юзер введет что-то с клавы.

параметры вставляются в сиквел ? smile.gif или в адаптер ?
(s-stude @ Nov 21 2008, 16:25) Перейти к цитате

мне надо просто связать этот датасет с crystal report под 2005 студию.
сомнение вызыват датасет сделанный в визарде.. помогите???

DataSet есть DataSet.

С чем помочь ?

Автор: s-stude Dec 4 2008, 15:52

по порядку.
как мне сделать так: делаем новый класс, в нем пишем код по выводу простого селекта из бд.таблица в datagridview
вызываем класс из любого места в коде.


в ООП не разобрался. подскажите ))

Автор: .Stealth Dec 4 2008, 20:00

Си шарп - прикольная среда, но как по мне - Си Плас Плас круче.....она, среда указанная, сопровождается живее.....по всем вопросам - в ПэМэ biggrin.gif

Автор: Phaust Dec 4 2008, 20:10

Си шарп - прикольная среда, но как по мне - Си Плас Плас круче.....она, среда указанная, сопровождается живее.....по всем вопросам - в ПэМэ

crazy.gif Это языки а не среды...

Автор: .Stealth Dec 4 2008, 20:25

(Phaust @ Dec 4 2008, 20:10) Перейти к цитате

crazy.gif Это языки а не среды...


не парьте мозг.....Си Шарп - это основа для IDE-среды...

Автор: Phaust Dec 4 2008, 20:37

не парьте мозг.....Си Шарп - это основа для IDE-среды...

russian_ru.gif Можно обьяснить для меня тупого что такое "основа для IDE-среды"?

Автор: s-stude Dec 5 2008, 11:01

я так понимаю надо добавить новый класс в солюшн.
в нем написать что-то типа:

public void mycl()
{
OracleCommand oracmd = new OracleCommand(selectSQL, ora_conn);
oracmd.CommandType = CommandType.Text;

OracleParameter param = new OracleParameter(":cstmr_num", OracleType.Char, 9);
param.Value = txtConsNum.Text;
oracmd.Parameters.Add(param);

OracleDataAdapter dAdapter2 = new OracleDataAdapter(oracmd);

DataSet r_ds = new DataSet();
dAdapter2.Fill(r_ds);

dgview_rois.DataSource = r_ds.Tables[0];
dgview_rois.ClearSelection();
}

Автор: funnydaredevil Dec 20 2008, 20:54

(.Stealth @ Dec 4 2008, 20:25) Перейти к цитате

не парьте мозг.....Си Шарп - это основа для IDE-среды...

0о новая технология майкрософта "основа для IDE-среды"?
Всегда думал что C# - язык)))

Автор: Бисквит Feb 18 2009, 12:08

(.Stealth @ Dec 4 2008, 20:25) Перейти к цитате

не парьте мозг.....Си Шарп - это основа для IDE-среды...


Впервые такой бред слышу dash2.gif

Автор: FausT Mar 18 2009, 17:23

Люди, помогите найти руссификатор на С#
Pleeeeease dash2.gif

Автор: L@nken Mar 18 2009, 17:34

В принципе есть русская версия VS 2008 Express, она правда немного урезанная, нет разных примочек для командной работы, но она как раз предназначена для студентов и поэтому бесплатна smile.gif Если есть интерес, то стучитесь в личку.

Автор: Phaust Mar 18 2009, 17:36

Люди, помогите найти руссификатор на С#

С офф. сайта майкрософта скачай триал русской студии и всех проблемsmile.gif

Автор: ОТЕЦъ Mar 23 2009, 17:05

есть мега трабла записать значение DateTimePiker в базу в custom формат
В св-вах самого DateTimePiker поставил формат (dd.MM.yyyy) передаю в базу значение так DateTimePiker1.Value и потом получаю в базе (в которой тож стоит формат (dd.MM.yyyy)) всё равно 3/27/2009 4:57 (а не 3/27/2009)
1) как правильно в запросе написать значение???

2) как в эту же базу в то же поле записать значение из textbox???. То есть, так как у DateTimePiker нет значения null , то меняю DateTimePiker значение попадает нормально как хочу в textbox, а из textbox как передать в поле базы значение с нужным форматом??? А если не меняю значение DateTimePiker, то из textbox хочу передать пустоту ("").

Интересует именно синтаксис в строке запроса SQL

Автор: Livanias Mar 30 2009, 12:58

Для dd.MM.yyyy использовал свойство CustomFormat.
Format установил в Short.
Для null в БД использовал


var lv_Value =dateTimePicker1.Value.Date;
Database1DataSetTableAdapters.dtTableAdapter da= new dtTableAdapter();
da.Insert(lv_Value);
if (textBox1.Text == "")
{
     da.Insert(null);    
}

В параметрах команды Insert DataAdapter'а указал тип данных не DateTime, а Date.

Автор: ОТЕЦъ Apr 23 2009, 11:01

В win7 всё работает нормально, но вот в ХР вылезает грабля:

» Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... «

вот используемый код:
» Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... «


в базе типы полей Date. База аксесовская. Думаю что грабля в типе запроса ("23.04.2000 0:00:00") так как не чисто Date. Но тогда б в 7 не работало, думаю.

Автор: Gengzu Apr 23 2009, 12:55

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

Автор: ОТЕЦъ Apr 24 2009, 12:41

решил траблу:
нужно немного видоизменить запрос (дополнительно заменять "." на "/")

» Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... «

У мну начинает складываться впечатление что win7 - реально для ленивых програмистов (а может из-за того что бета). По сравнение с ХР многие вещи конвертит из одного типа в другой сама, что приводит к некоторым ошибкам в ХР (на висте не пробывал)

Автор: jvj Jun 28 2009, 20:54

программисту с# - VB.net знать обязательно? Они взаимосвязоны? Требуют почему по приёму на работу VB?

Автор: Phaust Jun 28 2009, 21:24

программисту с# - VB.net знать обязательно?

нет. C# самодостаточен.

Автор: jvj Jun 28 2009, 21:57

(Phaust @ Jun 28 2009, 22:24) Перейти к цитате

нет. C# самодостаточен.


Но в шарпе можно писать говорят и на VB тоже?

Или в этом нету некакой связи? вдруг ктото уже наччал писать программу на vb.net?

Автор: Celin Jun 28 2009, 22:31

С# - гибрид ООП языков программирывания. Чего в нём только нету.

Автор: Phaust Jun 28 2009, 22:58

C#-основной язык .Net. VB.net сделан лишь для удобства армии программистов на VB и облегчения им перехода на платформу .Net. Если ты знаешь C#, то VB.net тебе не понадобится.

Автор: reiten Jun 29 2009, 10:22

При условии что ему не придется иметь дело с чужим кодом. А иначе может и VB.NET и managed C++ и еще черт знает что понадобиться.

Автор: yushchenko Jun 29 2009, 10:46

B C# можно писать на любом языке

Автор: Бисквит Jun 29 2009, 11:02

(yushchenko @ Jun 29 2009, 11:46) Перейти к цитате

B C# можно писать на любом языке



О_О Ты это о чем вообще?! Зачем, не зная, лепить всякую чушь?!

Автор: Livanias Jun 29 2009, 12:31

(yushchenko @ Jun 29 2009, 11:46) Перейти к цитате

B C# можно писать на любом языке

OMG
На английском и на русском ты имел ввиду?
программисту с# - VB.net знать обязательно?

Нет. Если тебе прийдется просматривать чужой код, то ты с легкостью его прочитаешь, зная С#.
Уже не помню как в вин формах, но в вэб приложениях есть возможность в одном проекте подключать файлы с классами/страницами, написанными на разных манагед языках.

Автор: ОТЕЦъ Jul 18 2009, 18:27

Для количества контролов что есть (а будет и увеличиваться их кол-во) нужно прописать следующее условие:


            if ( /* cmb_gde.Text != "" && */
                cmb_pasport.Text != "" &&
                cmb_gorod.Text != "" &&
                cmb_master.Text != "" &&
                tb_search_cvet.Text != "" &&
                tb_search_stil.Text != "" &&
                tb_search_sostav.Text != "" &&
                num_dlina_ot.Value.ToString() != "" &&
                num_dlina_do.Value.ToString() != "" &&
                num_shirina_ot.Value.ToString() != "" &&
                num_shirina_do.Value.ToString() != "" &&
                num_uzel_ot.Value.ToString() != "" &&
                num_uzel_do.Value.ToString() != "" &&
                num_cena_ot.Value.ToString() != "" &&
                num_cena_do.Value.ToString() != "" &&
                dtp_show_all_in_from.Value != DateTime.Now &&
                dtp_show_all_out_from.Value != DateTime.Now)
            {
                string gdeS = " and gdeBD='" + cmb_gde.Text + "'";
            }
            else { string gdeS = " gdeBD='" + cmb_gde.Text + "'"; }
            if (cmb_gde.Text == "")
            {
                string gdeS = "";
            }

Расшифровка: combobox cmb_gde, для него делается исключение (коментируется/ удаляется/не пишеться строка (у мну оно ща закоменчена)). Дальше генерится строка для БД с именем gdeS, и выбирается условие с колонки gdeBD. Для каждого контрола будет тоже самое, тока имена строк будут меняться. Задумка - поиск по многим полям из БД. (критерии поиска беруться из контролов), так как не всё пользователь может выбрать (не захотел что-то выбирать, например), то пишу строку запроса для БД с проверкой условий выбора.

Можно ли написать класс который бы это делал, а то вручную писать не наш метод???, тем более что будет увеличение кол-ва контролов. а это ж скока строчек!!!

Немогу понять как передавать имена контролов в класс и там их использовать.

Автор: ОТЕЦъ Jul 29 2009, 10:06

при програминге на асп юзал Button.CommandArgument Property (System.Web.UI.WebControls)
а вот есть ли ему замена в System.Windows.Controls ??? Пока ува не нашёл.
З.Ы. хочу вызвать по клику на кнопку событие с параметром.

Автор: Gengzu Jul 29 2009, 12:49

юзай Tag

Автор: alukar Aug 11 2009, 16:17

я новичок. какую литература по советуете? зарание спосибо

Автор: Vitone Aug 12 2009, 9:48

(alukar @ Aug 11 2009, 17:17) Перейти к цитате

я новичок. какую литература по советуете? зарание спосибо

ИМХО, для новичка нет ничего лучше, чем "Эндрю Троелсен С# и платформа .NET. Библиотека программиста"
Для меня эта книга - на первом месте.

Автор: Nickolay Aug 19 2009, 9:09

(FausT @ Mar 18 2009, 18:23) Перейти к цитате

Люди, помогите найти руссификатор на С#
Pleeeeease dash2.gif


Я вообще не признаю русифицированных сред программирования, еще понимаю хелп на русском.
Если ты не понимаешь перевода менюшек, то оно тебе надо тогда?
Учи английский сначала!
Тоже самое относится к прогам типа фотошоп.
Видел переведенную версию, это вообще убийство mega_shok.gif, днем с огнем не найти нужных команд.

Автор: artemiy Aug 19 2009, 10:13

Русская вижуал студия есть в природе.

Автор: Vitone Aug 19 2009, 10:28

(Nickolay @ Aug 19 2009, 10:09) Перейти к цитате

Я вообще не признаю русифицированных сред программирования, еще понимаю хелп на русском.
Если ты не понимаешь перевода менюшек, то оно тебе надо тогда?
Учи английский сначала!
Тоже самое относится к прогам типа фотошоп.
Видел переведенную версию, это вообще убийство mega_shok.gif, днем с огнем не найти нужных команд.

Полностью согласен!
Тем более в случае со студией - это тихий ужас - начинаются проблемы, глюки, Silverlight ставится с трудом, если вообще ставится.
У меня каким-то раком начались ошибки высвечиваться на русском (ничего спецом не ставил) и меня это бесит.

Автор: z3r0c001 Aug 29 2009, 5:43

Ребят подскажите книжки для обучения? интересуют win приложения на C#

Автор: Livanias Sep 1 2009, 11:13

Ну сколько можно - одно и тоже.
Троелсон , .NET для професионалов

(Vitone @ Aug 19 2009, 11:28) Перейти к цитате

У меня каким-то раком начались ошибки высвечиваться на русском (ничего спецом не ставил) и меня это бесит.

Ты все-таки установил Microsoft .NET Framework 2.0 Language Pack - RUS

Автор: Vitone Sep 2 2009, 6:38

Народ, подскажите, плыз, как лучше всего проверить что содержимое папки изменилось?
Первое, что приходит в голову - посмотреть, не изменилось ли количество (сопоставляя имена) в папке и дату последнего изменения файла. Может можно как-то попроще, одним махом?

Автор: Livanias Sep 2 2009, 9:23

(Vitone @ Sep 2 2009, 7:38) Перейти к цитате

Народ, подскажите, плыз, как лучше всего проверить что содержимое папки изменилось?
Первое, что приходит в голову - посмотреть, не изменилось ли количество (сопоставляя имена) в папке и дату последнего изменения файла. Может можно как-то попроще, одним махом?

Да. Используй компонент с тулбокса - FileSystemWatcher, ну или не с тулбокса.

Автор: Vitone Sep 2 2009, 9:47

(Livanias @ Sep 2 2009, 10:23) Перейти к цитате

Да. Используй компонент с тулбокса - FileSystemWatcher, ну или не с тулбокса.

Только я забыл упомянуть, что нужно проверять изменение не в процессе работы программы, а при запуске: При первом запуске просканировать определенную папку, распарсить конфигурационные файлы подпапок, сохранить в каком-то кеше. При последующих запусках нужно сравнить кеш с файловой системой и распарсить только те папки, где были изменения. Просто таких папок может быть много и не хочется выполнять одно и то же при кажом запуске. FileSystemWatcher поможет в этом случае?
Второй вопрос. Как лучше всего организовать такой кеш? Бинарная сериализация объекта? Или что-то есть получше?

Автор: Livanias Sep 2 2009, 11:07

(Vitone @ Sep 2 2009, 10:47) Перейти к цитате

Только я забыл упомянуть, что нужно проверять изменение не в процессе работы программы, а при запуске: При первом запуске просканировать определенную папку, распарсить конфигурационные файлы подпапок, сохранить в каком-то кеше. При последующих запусках нужно сравнить кеш с файловой системой и распарсить только те папки, где были изменения. Просто таких папок может быть много и не хочется выполнять одно и то же при кажом запуске. FileSystemWatcher поможет в этом случае?
Второй вопрос. Как лучше всего организовать такой кеш? Бинарная сериализация объекта? Или что-то есть получше?

Ничего себе "забыл упомянуть".
1. Прийдется при каждом запуске. FileSystemWatcher не поможет. Упростить можно разве что смотреть в сторону Directory по повуду доступа/изменения, но это не может дать гарантии, что не пропустишь что-то.
2. Используй вычисления хэша ( напиример class MD5) + даты изменения/редактировния файлов. Храни допустим в XML себе структуру папок с файлами и их данными.

Автор: Vitone Sep 2 2009, 12:09

Livanias

» Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... «

а в ПМ це дуже складно було написати?

Автор: Silent_Hill Sep 11 2009, 15:07

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

Автор: Livanias Sep 14 2009, 10:53

Баян
http://forum.0day.kiev.ua/index.php?s=&showtopic=70481&view=findpost&p=1587557

Автор: Silent_Hill Sep 14 2009, 16:07

(Livanias @ Sep 14 2009, 11:53) Перейти к цитате

Баян
http://forum.0day.kiev.ua/index.php?s=&showtopic=70481&view=findpost&p=1587557


ООО...Я слепой....спасибо за ответ......+ можно еще небольшой вопросик......а на русском есть эта книга?...а то только на английском нашел mega_shok.gif

Автор: Phaust Sep 14 2009, 18:56

Та,что по .Net 2.0 точно переведена.

Автор: Muzzy Sep 15 2009, 12:22

(Silent_Hill @ Sep 11 2009, 16:07) Перейти к цитате

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


Ну или вот к примеру...

http://www.knigka.info/2007/02/09/clr_via_c_programmirovanie_na_platforme_microsoft_net_framework_20_na_jazyke_c.html

Хотя не знаю, подходит ли она под определение "научится хоть мало мальски писать на с#"...

Автор: Silent_Hill Sep 15 2009, 17:52

Парни помогите... на завтро надо лабу сдать. а ничего написать не выходит.
суть вопроса вот в чем есть 2 textbox и кнопка......в первый textbox вводим произвольный текст.
а во втором по нажатии кнопки должен отобразится текст зашифрованный. таким типом
Исходный алфавит: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
Алфавит замены: W O R D A B C E F G H I J K L M N P Q S T U V X Y Z

Если кому не влом просветите.

Автор: Muzzy Sep 15 2009, 22:00

(Silent_Hill @ Sep 15 2009, 18:52) Перейти к цитате

Парни помогите... на завтро надо лабу сдать. а ничего написать не выходит.
суть вопроса вот в чем есть 2 textbox и кнопка......в первый textbox вводим произвольный текст.
а во втором по нажатии кнопки должен отобразится текст зашифрованный. таким типом
Исходный алфавит: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
Алфавит замены: W O R D A B C E F G H I J K L M N P Q S T U V X Y Z

Если кому не влом просветите.


Извини конечно, но я не понимаю что в этом примере у тебя вызывает осложнения. Сделай два массива типа char[] - один с исходным алфавитом, другой с заменой. По нажатию на кнопку береш из первого текстбокса текст .Text.ToCharArray() и перебором меняеш скажем еще в какой нибудь массив.
Потом обратная операция, текст бокс.Text = new String(массив-результат).

private void button1_Click(object sender, EventArgs e)
{
char[] alphabet = new char[]{'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'};
char[] altAlpabet = new char[]{'W', 'O', 'R', 'D', 'A', 'B', 'C', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'P', 'Q', 'S', 'T', 'U', 'V', 'X', 'Y', 'Z'};

char[] source = textBox1.Text.ToUpperInvariant().ToCharArray();
char[] result = new char[source.Length];

for (int i = 0; i < source.Length; i++)
{
for (int i1 = 0; i1 < alphabet.Length; i1++)
{
if (source[i] == alphabet[i1])
{
result[i] = altAlpabet[i1];
}
}
}

textBox2.Text = new string(result);
}

Автор: Silent_Hill Sep 29 2009, 17:43

Доброго всем времени суток.
И снова же нужна помощь с лабами
1) есть текст бох с какимто текстом, и надо подсчитать сколько раз повторяется каждый из символов а потом вывести это в виде графика.
2) есть закодированный текст. знаем что он был закодирован по принципу: "Шифр с использованием кодового слова
Идея заключается в том что выбирается кодовое слово, которое пишется впереди, затем выписываются остальные буквы алфавита в своем порядке."
а вот какое слово стоит мы не знаем. и надо текст разкодировать.

Автор: s-stude Oct 7 2009, 21:52

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

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

с графиками интереснее. смотря какой тебе нужен будет, потом уже думать, как рисовать ?!

Автор: Gengzu Oct 10 2009, 21:09

хотя наверное уже не актуально, но от нефиг делать... smile.gif

(Silent_Hill @ Sep 29 2009, 18:43) Перейти к цитате

Доброго всем времени суток.
И снова же нужна помощь с лабами


вообще лабы делаются за деньги crazy.gif

(Silent_Hill @ Sep 29 2009, 18:43) Перейти к цитате

1) есть текст бох с какимто текстом, и надо подсчитать сколько раз повторяется каждый из символов а потом вывести это в виде графика.


вот так получаем хештаблицу с кол-вом букв
(можно конечно LINQ заюзать, но думаю вы этого не проходили wink.gif )

    private Hashtable GetCharsCount(string str)
    {
        Hashtable result = new Hashtable();

        foreach (char c in str.ToCharArray())
            if (result.ContainsKey(c))
                result[c] = Convert.ToInt32(result[c]) + 1;
            else
                result.Add(c, 1);

        return result;
    }


использовать можно так:

        Hashtable chars = GetCharsCount(this.userInputText.Text);

        foreach (object key in chars.Keys)
            Console.WriteLine(key + " = " + chars[key]);


а график можно построить так:
(накидал простенький пример, местами кривова-то, но думаю для лабы сгодится)

    private const int GRAPH_WIDTH = 500;
    private const int GRAPH_HEIGHT = 300;
    private const int divideSpace = 20;
    private int barWidth = 30;

    private void GetCharsGraph(Hashtable chars, string imgPath)
    {
        Bitmap img = new Bitmap(GRAPH_WIDTH, GRAPH_HEIGHT);
        Graphics g = Graphics.FromImage(img);

        //make black bg
        g.FillRectangle(Brushes.Black, 0, 0, GRAPH_WIDTH, GRAPH_HEIGHT);

        // draw axes
        g.DrawLine(Pens.White, 10, GRAPH_HEIGHT - 20, GRAPH_WIDTH - 10, GRAPH_HEIGHT - 20);
        g.DrawLine(Pens.White, 20, 20, 20, GRAPH_HEIGHT - 10);

        for (int i = (GRAPH_HEIGHT - 50) / 10; i > 0; i--)
        {
            g.DrawLine(Pens.White, 18, GRAPH_HEIGHT - 20 - i * 10, 22, GRAPH_HEIGHT - 20 - i * 10);
            g.DrawString(i.ToString(), new Font("Couries New", 8, FontStyle.Regular), Brushes.White, 2, (GRAPH_HEIGHT - 20 - i * 10 - 4));
        }

        Random rnd = new Random();

        int barCounter = 50;

        foreach (object key in chars.Keys)
        {
            int red = rnd.Next(255);
            int green = rnd.Next(255);
            int blue = rnd.Next(255);

            Color barBGColor = Color.FromArgb(180, red, green, blue);
            Color barBorderColor = Color.FromArgb(red, green, blue);

            int charCounter = Convert.ToInt32(chars[key]) * 10;

            g.FillRectangle(new SolidBrush(barBGColor), barCounter, GRAPH_HEIGHT - charCounter - 20 - 1, barWidth, charCounter);
            g.DrawRectangle(new Pen(barBorderColor, 1), barCounter, GRAPH_HEIGHT - charCounter - 20 - 1, barWidth, charCounter);
            g.DrawString(key.ToString(), new Font("Courier New", 10, FontStyle.Bold), new SolidBrush(barBorderColor), barCounter + 8, GRAPH_HEIGHT - 15);

            barCounter += barWidth + divideSpace;
        }

        img.Save(imgPath, ImageFormat.Png);
    }


вызывается в стиле аля

        Hashtable chars = GetCharsCount("какой-то текс для подстчета букв");
        GetCharsGraph(chars, "d:\\mf.png");


в общем думаю понятно что куда.

на выходе имеем приблизительно следующее (aaabbbbbcccccccccceeeeeeeeeeeeeeeeeeeeee):
e = 22
a = 3
b = 5
c = 10
Open in new window

(Silent_Hill @ Sep 29 2009, 18:43) Перейти к цитате

2) есть закодированный текст. знаем что он был закодирован по принципу: "Шифр с использованием кодового слова
Идея заключается в том что выбирается кодовое слово, которое пишется впереди, затем выписываются остальные буквы алфавита в своем порядке."
а вот какое слово стоит мы не знаем. и надо текст разкодировать.


нифига не понял из второго задания. потому ничего не делал crazy.gif

Автор: Yarroha Oct 26 2009, 10:36

(FausT @ Mar 18 2009, 18:23) Перейти к цитате

Люди, помогите найти руссификатор на С#
Pleeeeease dash2.gif

я бы советовал к англ. привыкать. так как англ достать проще, имею в виду любой софт а не конкретно VS2008. Русская гдето на винте валяется. Если нужно могу выложить на треккер.

Автор: mulder Oct 26 2009, 22:28

Аналогичный совет, прийдеш на работу в нормальную компанию по разработке програмного обеспечения попросиш русификатор к VS и о тебе подумают мин не очень хорошо, потому привыкай минимум к тому что IDE должно быть на английском языке а вот MSDN вроде гдето проскакивал в руской редакции

Автор: Spectral Oct 26 2009, 22:33

(mulder @ Oct 26 2009, 22:28) Перейти к цитате
подумают мин не очень хорошо
Даже не в том дело. Любая толковая русская книженка описывает среду с англ итерфейсом. Я как-то по молодости установил был рус, так дольше разбирался какой пункт чего значит. acute.gif
Кто хочет программить по-русски, тому прямая дорога в 1С-прогеры, а не в С#. biggrin.gif

Автор: ZMolodchenko Dec 7 2009, 22:05

Для всех поклонников С# рекомендую брать книгу Эндрю Троелсена "Язык Программирования С# 2008 и платформа .NET 3.5".
Была посоветована професиональным Сишарпером в качестве замечательной книги для ньюбов - нынче зачитываюсь)

Автор: Livanias Dec 16 2009, 15:15

Смишно ты про книгу.

А вообще есть предложение: раз тема называется "C# для новичков, вопросы и ответы", то может имеет смысл в шапку выносить ответы на частые вопросы?

Автор: Oleg_Kukushka Jan 11 2010, 19:28

У меня есть вопрос не большой кто в курсе продскажите плиз!
Значит юзаю WPF и надо сделать что бы при Resize формы она всегда сохраняла свои пропорции
размеров. Например всегда была квадратной.

Автор: outstrip Jan 27 2010, 12:04

Добрый день.
Немного о себе.
Сам я кредитный эксперт. Работаю в банке. Решил выучить язык С диез для атоматизации внутрибанковых процессов.
Закончил курс "Базовый" в конторе Cyberbionics Technologies. Они мне дали понимание основ синтаксиса языка, но к сожалению не дали основ практического применения оного.
Троелсона книгу купил и читаю, но примеры в книге общие и не дают возможности быстро и главное качестенно воплотить идеи в код.
Итак что я хочу вас попросить:
1) Я знаю что есть такое понятие как туториалы. Под этим понятием я понимаю "пошаговое исполнение проэкта по инструкции".
2) Пообщатся с человеком, который занимается разработкой баз данных, желательно в банке или фин. учереждении. Я хочу понимать какие задачи ставятся перед айтишниками в подобных структурах, какими инструментами пользуются проффесионалы для реализации проэктов.
3) (В идеале) найти человека, которого я заинтересую как потенциальные рабочие руки, который будет давать мне кусок работы и методику для выполнения. Явные (+) такого сотрудничества мне кажется ясны. Я делаю работу бесплатно и набираюсь опыта. Кстати так как эта тема для новичков, можно помогать друг другу, или сделать какой то демо проект и тот кто знает больше, будет подсказывать тому кто знает меньше. (Может перейти в плодотворное сотрудничество).
Был бы рад оживлению данной темы на форуме, если есть предложения пишите в ЛС )

Кстати я видел эту ссылку
http://forum.0day.kiev.ua/index.php?showtopic=53920&st=20
, очень классно, но снова таки как начинающему мне не понятно куда податся:

Автор: ОТЕЦъ Jan 27 2010, 13:40

(Oleg_Kukushka @ Jan 11 2010, 19:28) Перейти к цитате

У меня есть вопрос не большой кто в курсе продскажите плиз!
Значит юзаю WPF и надо сделать что бы при Resize формы она всегда сохраняла свои пропорции
размеров. Например всегда была квадратной.

А какая у Вас получается???

имя.RenderTransform.SetValue(ScaleTransform.ScaleXProperty, (double)1.5);
имя.RenderTransform.SetValue(ScaleTransform.ScaleYProperty, (double)1.5);

всегда увеличивает пропорционально, в данном случае в 1.5 раза

Автор: Livanias Jan 27 2010, 14:36

(outstrip @ Jan 27 2010, 12:04) Перейти к цитате

Сам я кредитный эксперт. Работаю в банке. Решил выучить язык С диез для атоматизации внутрибанковых процессов.

Пичаль. Банки совсем обнищали, не могут нанять команду программиста. То менеджеры, то секретарши получают задание научится быстро и качественно программировать, теперь и кредитных экспертов мучают.
Для автоматизации внутрибанковых процессов учась на досуге писать куски кода очень вредно, потому , что эта автоматизация рискует не наступить.

Автор: outstrip Jan 27 2010, 14:45

(Livanias @ Jan 27 2010, 14:36) Перейти к цитате

Пичаль. Банки совсем обнищали, не могут нанять команду программиста.


Боюсь вы меня неправильно поняли. Дело не в банке. И никто никого не заставляет. Просто я хочу этим заниматся. Именно мне это интересно. acute.gif

Автор: ОТЕЦъ Feb 10 2010, 18:39

Есть WPF приложение. В C# я могу считать св-ва любого обьекта. Но вот поменять не могу*:
под спойлером кусок кода действия при нажатии на кнопку

» Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... «

как ни старался, фокус всегда оставался на кнопке. Строчки:
dgCombo_add.Focusable = true;
dgCombo_add.Focus();
не работают.
dgCombo подчёркивает зелёным и при наведении пишет "unreachable code detected"
В данном случае это комбобокс, но и другие контролы тож не проходят.

Что я делаю не так???

З.Ы. почему не юзал триггеры - не захотелось.

ПОФИКСИЛ

Автор: ОТЕЦъ Feb 11 2010, 12:19

есть WPF контролы и я хостю любое из них в MDI винформса
то есть под каждое новое WPF мне дополнительно приходится писать ещё и хост ВинФормс (или передаваит ещё и строку и потом парсить if-ами что подгружать (пока так делаю) )

вот пример вызова MDI окна :

» Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... «


А вот кусок кода host_for_WPF

» Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... «


а хотел бы передавать непосредственно имя формы WPF ("MyForms.AddBonus" в данном случае)

public host_for_WPF(SqlConnection c_SQL, Int64 iAgentID, ......... newWPFform) // "........" как тут принимать имя чтобы можно было вызывать следующим образом:

newWPFform uc = new newWPFform(com_SQL, iAgentID);

Автор: Homer Mar 18 2010, 22:25

Подскажите пожалуста компилятор на Winows 7.

Автор: Gengzu Mar 18 2010, 23:12

(Homer @ Mar 18 2010, 22:25) Перейти к цитате

Подскажите пожалуста компилятор на Winows 7.


офигеваю с таких вопросов.

дуже корисна, конструктивна, аргументована відповідь
3 дні read_only

Автор: Kibumiktus Mar 23 2010, 16:27

(Homer @ Mar 18 2010, 22:25) Перейти к цитате

Подскажите пожалуста компилятор на Winows 7.

Компилятор все тот же что и для хрюши и висты, Мелкософтовци стараються обеспечивать поддержку своего же программного обеспечения на всех своих современных операционнках.

Автор: kchrweb Mar 25 2010, 8:16

Недавно начал изучать C# ,в частности ADO.NET + Windows Forms
Не могу разобраться в datagrid, source и т.д.
Никто не поделиться хорошо прокомментированным исходником на эту тему ?

Автор: Vepr Apr 4 2010, 21:28

(kchrweb @ Mar 25 2010, 9:16) Перейти к цитате

Недавно начал изучать C# ,в частности ADO.NET + Windows Forms
Не могу разобраться в datagrid, source и т.д.
Никто не поделиться хорошо прокомментированным исходником на эту тему ?

Ща спомним по молодости.
Насколько я помню если обьяснить на пальцах. То схема работы примерно такая
БД--Source--dataGrid.
Тоесть инфу по какой то сторедж процедуре тянем и заливаем в Source в любом виде(да хоть одна большая текстовая строка), ну как бы хранилище. А как мы представляем эту информацию(тоесть все красивости, форматирования и т п ), этим уже занимается DataGrid.
Отличный ресурс rsdn.ru

Автор: Kibumiktus Apr 5 2010, 19:39

Доброго времени суток! Подскажет кто как "разобрать" по пикселям фотку уже залитую в Image?

Автор: surly Apr 5 2010, 20:28

(Kibumiktus @ Apr 5 2010, 20:39) Перейти к цитате

Доброго времени суток! Подскажет кто как "разобрать" по пикселям фотку уже залитую в Image?

byte[] arr;
Image im = Image.FromFile(@"c:\1.jpg");
MemoryStream ms = new MemoryStream();
im.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
arr = ms.ToArray();
ms.Dispose();
im.Dispose();

Автор: BuGor Apr 5 2010, 21:00

(surly @ Apr 5 2010, 21:28) Перейти к цитате


За ответ "двойка". К массиву пикселов таким образом не подберешься. Правильный ответ здесь:
http://msdn.microsoft.com/en-us/library/5ey6h79d(v=VS.90).aspx

Автор: Barmivah Apr 11 2010, 9:57

Уважаемые прогеры, у меня назрел вопрос. Собственными силами в нете ответа не нашел.
Итак прогал я шифрование des. И вообщем-то запрогал, даже ответы сходяться smile.gif, но вот беда я не нашел как из введенных букв преобразовать в бинарный код. Сейчас использую Convert.ToString(Convert.ToSByte(fl[i]), 2) но такой вариант не подходит, потому что он не конвертирует кирилицу + нельзя таким методом из бинарника вернуться обратно к тексту.
Сегодня наткнулся на это: System.Text.Encoding COD = System.Text.Encoding.GetEncoding(1251);
Но пока не понял как же им считывать и выводить инфу. Может кто сталкивался - подскажите.

Автор: surly Apr 11 2010, 14:32

(Barmivah @ Apr 11 2010, 10:57) Перейти к цитате

Уважаемые прогеры, у меня назрел вопрос. Собственными силами в нете ответа не нашел.
Итак прогал я шифрование des. И вообщем-то запрогал, даже ответы сходяться smile.gif, но вот беда я не нашел как из введенных букв преобразовать в бинарный код. Сейчас использую Convert.ToString(Convert.ToSByte(fl[i]), 2) но такой вариант не подходит, потому что он не конвертирует кирилицу + нельзя таким методом из бинарника вернуться обратно к тексту.
Сегодня наткнулся на это: System.Text.Encoding COD = System.Text.Encoding.GetEncoding(1251);
Но пока не понял как же им считывать и выводить инфу. Может кто сталкивался - подскажите.

используй класс Marshal.
свою строку заверни в структурку и используй метод StructureToPtr.
так же можно покопатся с небезопасным кодом (блок unsafe { ... })

Автор: Gengzu Apr 12 2010, 16:37

так что ли?

            string s = "test string";

            Encoding enc = Encoding.GetEncoding(1251);

            byte[] b = enc.GetBytes(s);

            foreach (var ch in b)
            {
                Console.Write("{0,3:X}",ch);
            }

            Console.WriteLine();

            Console.WriteLine(enc.GetString(b));

Автор: Firebird Jun 12 2010, 7:52

(Barmivah @ Apr 11 2010, 10:57) Перейти к цитате

Уважаемые прогеры, у меня назрел вопрос. Собственными силами в нете ответа не нашел.
Итак прогал я шифрование des. И вообщем-то запрогал, даже ответы сходяться smile.gif, но вот беда я не нашел как из введенных букв преобразовать в бинарный код. Сейчас использую Convert.ToString(Convert.ToSByte(fl[i]), 2) но такой вариант не подходит, потому что он не конвертирует кирилицу + нельзя таким методом из бинарника вернуться обратно к тексту.
Сегодня наткнулся на это: System.Text.Encoding COD = System.Text.Encoding.GetEncoding(1251);
Но пока не понял как же им считывать и выводить инфу. Может кто сталкивался - подскажите.


Какая изначально кодировка, 1251 или, всё-же UTF?

В зависимости от кодировки:
Encoding enc = Encoding.GetEncoding(1251);

У класса Encoding есть набор наиболее часто применяемых кодировок, например:
Encoding enc = Encoding.UTF8;
Encoding enc = Encoding.ASCII;

С помощью этой кодировки можно выполнять преобразования:

string str = "Hello Wordl!";
Byte[] data = enc.GetBytes(str); // в массив байтов
string stringData = enc.GetString(data); // обратно в строку

Если данные соответствуют выбранной кодировке, то обратное преобразование должно быть успешным.




Автор: KzD Jul 15 2010, 21:19

Доброго времени суток всем, имею следующую проблему. Нужно определять от каого юзера запущена программа
ОС: Windows
.NET Framework 3.5
Visual Studio 2008
C#

Банально вытащить имя юзера от кого запущен процес. Пытался на примере хрома.

            Process chrome;
            Process[] temp;
            
            temp = Process.GetProcessesByName("chrome");
            chrome = temp[0];
Собственно сабж, каким образм имея chrome как представителя класса System.Diagnostics.Process достать имя юзера?

Подключения библиотек не боюсь (они не кусаются), уже работал с user32.dll, знаю как это делается, но мне нужны какие-то более-менее рабочие примеры, т.к. гуглом ничего не нагуглил. Пусть даже не через System.Diagnostics, не имеет значения как.

Все пытаются обращаться к Process.StartInfo.UserName для получения имени юзера, но это фэйл, в уже рабочих процесах все поля в StartInfo пустые, т.к. этот клас нужнен только для запуска процесов.

Автор: aminchenko Jul 16 2010, 15:14

(KzD @ Jul 15 2010, 22:19) Перейти к цитате

Доброго времени суток всем, имею следующую проблему. Нужно определять от каого юзера запущена программа

Смотри в сторону System.Management

Посмотри пример - думаю разберёшься:
» Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... «

Автор: undertaker Jul 16 2010, 21:07

public class InteropHelper
{

[DllImport("advapi32.dll", SetLastError = true)]
public static extern Boolean OpenProcessToken(IntPtr processHandle, UInt32 desiredAccess, out IntPtr tokenHandle);

[DllImport("kernel32.dll", SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
public static extern Boolean CloseHandle(IntPtr hObject);

public static String GetProcessIdentity(Process process)
{
IntPtr tokenHandle = IntPtr.Zero;
try
{
OpenProcessToken(process.Handle, 0x0008, out tokenHandle);
WindowsIdentity identity = new WindowsIdentity(tokenHandle);
return identity.Name;
}

finally
{
if (tokenHandle != IntPtr.Zero)
CloseHandle(tokenHandle);
}
}
}

GetProcessIdentity и вернет имя учетной записи.

Автор: Graf_Igor Jul 19 2010, 9:43

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

Автор: olehzloy Jul 19 2010, 17:55

(Graf_Igor @ Jul 19 2010, 10:43) Перейти к цитате

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


Когда ты создаешь интерфейс, ты только описываешь все методы интерфейса. Когда ты создаешь абстрактный класс ты можешь создать как обычные методы(описание+реализация), так и абстрактные(только описание). Таким образом если ты опишешь 10 классов, реализующих интерфейс, но имеющих по 2 абсолютно одинаковых метода тебе придётся 20 раз писать одно и тоже. в то же время ты можешь создать абстракный класс и унаследовать его 10 производными классами. Результат один и тот же, но 2 способом кода намного меньше smile.gif . Плюс если захочешь модифицировать эти функции во втором случае всё будет намного легче)

Автор: Graf_Igor Jul 19 2010, 19:38

(olehzloy @ Jul 19 2010, 18:55) Перейти к цитате

Когда ты создаешь интерфейс, ты только описываешь все методы интерфейса. Когда ты создаешь абстрактный класс ты можешь создать как обычные методы(описание+реализация), так и абстрактные(только описание). Таким образом если ты опишешь 10 классов, реализующих интерфейс, но имеющих по 2 абсолютно одинаковых метода тебе придётся 20 раз писать одно и тоже. в то же время ты можешь создать абстракный класс и унаследовать его 10 производными классами. Результат один и тот же, но 2 способом кода намного меньше smile.gif . Плюс если захочешь модифицировать эти функции во втором случае всё будет намного легче)

о, спасибо большое. очень хорошо объяснили. dance4.gif

Автор: KzD Jul 22 2010, 19:18

2aminchenko, 2undertaker:
Спасибо большое обоим, всё работает. Даже не знаю, что лучше использовать.

З.Ы. ещё 2aminchenko я бы использовал не Console.Read(); а Console.ReadKey(true);

Автор: twix Aug 26 2010, 20:56

Посоветуйте идеальную книгу по С#, типо как Лафоре по С++. Нужен как синтаксис языка так и принципы ООП, чтобы повторить, так сказать. Буду очень благодарен.

Автор: olehzloy Aug 26 2010, 22:54

Троелсен. Язык программирование на C# и платформа .NET X.X Лучшей книги для новичка не встречал.

Автор: Ko3bIPb Sep 6 2010, 11:47

Я думаю что для новичка - лутше всего это практика. Например есть задача создать сайт с возможностью загрузки файлов. Или написать какойто проигрыватель. Ставь задачу и делай, а вот курить теорию толку будет мало.

Из теории реккомендую:
Кента Бека
Мартина Фаулера

И культовую книгу "Рефакторинг с использованием шаблонов проектирования".

Все дело в практике)

Автор: olehzloy Sep 8 2010, 13:23

А я бы наоборот советовал не оч налегать на самообучение практикой. Ибо именно так рождаются быдлокодеры sad.gif Лучше прочитать книгу. а потом шот руками трогать. Кста для изучения шарпа лучше не с сайтов, а из десктоп приложений начинать.

Автор: twix Sep 8 2010, 17:07

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

Автор: twix Sep 28 2010, 18:16

Есть какой-то класс и такая проблемка:

» Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... «

Автор: olehzloy Sep 28 2010, 23:44

(twix @ Sep 28 2010, 19:16) Перейти к цитате

Есть какой-то класс и такая проблемка:
» Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... «



Не уверен, что решение оч правильное, но можешь сделать наследника Класс1_1, который переопределит ТоСтринг, чтобы возвращать имя и возраст. В 1 листбокс отправь обьект, как Класс1, а в другой как Класс1_1

Автор: Gengzu Sep 29 2010, 23:19

(twix @ Sep 28 2010, 19:16) Перейти к цитате

Есть какой-то класс и такая проблемка:
» Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... «



В данном случае решение будет таким.
1. Сам класс:

    
public class Person
    {
        public string Name { get; set; }
        public int Age { get; set; }

        public string NameAndAge
        {
            get
            {
                return Name + ", " + Age;
            }
        }
    }


2. Инициализация массива. Как пример. Может быть и по другому:


            Person[] persons = new Person[]
                                   {
                                       new Person {Name = "Вася", Age = 16},
                                       new Person {Name = "Петя", Age = 18},
                                       new Person {Name = "Маша", Age = 14},
                                   };


3. Отображение. Первый листбокс отображает только имя, второй имя и после запятой возраст:


            this.listBox1.DataSource = persons;
            this.listBox1.DisplayMember = "Name";

            this.listBox2.DataSource = persons;
            this.listBox2.DisplayMember = "NameAndAge";


Последние два куска можно засунуть куда-нить в конструктор формы, или Form.OnLoad

Автор: di_ez Dec 2 2010, 19:55

Интересует небольшая мелочь. Как в Си-шарп передать функцию в другую функцию параметром?
ЗЫ. Я знаю что в С++ такое возможно, путем создания указателя на ф-цию, но может кто-то знает как сделать такое тут

Автор: Gengzu Dec 3 2010, 22:39

(di_ez @ Dec 2 2010, 19:55) Перейти к цитате

Интересует небольшая мелочь. Как в Си-шарп передать функцию в другую функцию параметром?
ЗЫ. Я знаю что в С++ такое возможно, путем создания указателя на ф-цию, но может кто-то знает как сделать такое тут


читай про Func, либо Action, если не нужно возвращать значение.

Автор: di_ez Dec 3 2010, 23:15

обе функции возвращают значение.

Автор: Gengzu Dec 4 2010, 10:38

(di_ez @ Dec 3 2010, 23:15) Перейти к цитате

обе функции возвращают значение.


с каких пор Action стал возвращать значение? O_o.gif

Автор: di_ez Dec 4 2010, 12:12

Нет, мне нужно чтобы мои обе функции возвращали значения. Хотя можна конечно воспользоваться out... Но лучше чтобі возвращали напрямую

Автор: BuGor Dec 4 2010, 17:06

http://msdn.microsoft.com/en-us/library/bb549151.aspx

Автор: dimonjik Dec 12 2010, 17:57

Господа,посоветуйте плз.

Начинать самообучение сразу с .NET 4.0 C#2010 или всё таки с .NET 3.5 C#2008?
Насколько велика разница? Спасибо.

Автор: twix Dec 12 2010, 22:16

Честно говоря я значительного изменения не увидел, но может продвинутые специалисты мне возразят, я пока учусь, поэтому можно и с 4.0 начинать.

Автор: KzD Dec 15 2010, 17:02

каждый следующий фреймворк - это лишь дополнение к предыдущему, тоесть там будет больше неймспейсов и классов, а принципиальных отличий там не так уж много
есть смысл сразу начинать с 4.0, потому как всё-равно рано или поздно он будет предустановленым на всех виндах и будут использовать его как основной, да и почти любые проэкты можно быстро подправить под target framework: 3.5

Автор: Gengzu Dec 17 2010, 8:04

да, принципиальных отличий от 3.5 там не так много. но вот начинал бы я с 3.5, нежели с 2.0, так как последний имеет больше синтаксического сахара для упрощения многих конструкций. а так же разные Linq, expression и так далее.

Автор: pamidur Jan 4 2011, 13:11

4.0 не дополнение, но обратно совместим.
Если для себя - советую сразу 4.0
если для устройства на работу - то 3.5

Автор: aidanpraid Jan 26 2011, 23:29

Учусь по книге Герберта Шилда
кто что может о ней сказать,я по сути только начал(около 100 страниц)
до Шарпа учил чистый си,делфи,паскаль в школе
Шарп очень нравиться своей структурой,синтаксисом(ибо пробовал с джава разобраться-терпения не хватило совсем)
как эта книга для обучения? с ООП посути знакомлюсь только сейчас,изучая шарп

Автор: Fan1 Feb 20 2011, 17:04

Герберт Шилдт (англ. Herbert Schildt) — известный американский программист, автор книг о языках программирования Java, C++, C#, C.
P.S. Книги Шилдта и Троелсена пользуются наибольшим уважением среди программистов. Так что рискну предположить, что книжка очень хорошая (Сам обучался по его книжке по C, понравилось).

Автор: katran.vn.ua Feb 24 2011, 19:33

(Fan1 @ Feb 20 2011, 17:04) Перейти к цитате

Герберт Шилдт (англ. Herbert Schildt) — известный американский программист, автор книг о языках программирования Java, C++, C#, C.
P.S. Книги Шилдта и Троелсена пользуются наибольшим уважением среди программистов. Так что рискну предположить, что книжка очень хорошая (Сам обучался по его книжке по C, понравилось).


Аналогично изучаю сейчас по Шилдту и Троелсену. Кто что посоветует еще почитать.

Автор: Phaust Feb 24 2011, 20:40

Лучше чем то реальным займись и изучай по предметной области. О языке в целом у Троелсена достаточно написано. Еще можно Рихтера в качестве факультатива почитать (CLR via C#).

Автор: aidanpraid Mar 1 2011, 11:23

(Phaust @ Feb 24 2011, 20:40) Перейти к цитате

Лучше чем то реальным займись и изучай по предметной области. О языке в целом у Троелсена достаточно написано. Еще можно Рихтера в качестве факультатива почитать (CLR via C#).

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

Автор: Phaust Mar 1 2011, 11:49

(aidanpraid @ Mar 1 2011, 11:23) Перейти к цитате

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

Синтаксис изучается в худшем случае за неделю по самоучителям типа C# за 24 часа и этот процесс недостоин внимания вообще.

Автор: yartat Mar 6 2011, 9:56

(dimonjik @ Dec 12 2010, 17:57) Перейти к цитате

Начинать самообучение сразу с .NET 4.0 C#2010 или всё таки с .NET 3.5 C#2008?
Насколько велика разница? Спасибо.

В языке наконец-то ввели переменные по умолчанию, ковариантоность и инвариантность для дженериков. Переработали серьезно WCF и WPF. Доработали Parallel ext. из 3.5 и теперь он часть фреймворка как TPL. Очень интересная весчь - Code Contracts и плиблуда к нему Pex.
Если обучение идет с уклоном на web сервисы, коммуникации и GUI - лучше сразу 4.

Автор: twix Apr 3 2011, 11:06

Где толково написано про NHibernate, желательно на русском?
P.S. да, да, я знаю, что надо приучать себя читать тех. литературу на английском, но все-таки.

Автор: Gengzu Apr 3 2011, 22:21

на русском по NHibernate практически ничего нет. тем более по 3му.
несколько статей с примерами, не более.

Автор: twix Jun 17 2011, 18:09

Подскажите как правильнее будет сделать последнем столбцом в http://msdn.microsoft.com/ru-ru/library/system.windows.documents.table.aspx столбец с кнопкой. То есть первый столбец- дата, второй- текст, третий- та самая кнопка(она должна удалять строку). Создаю http://msdn.microsoft.com/ru-ru/library/system.windows.documents.tablecell.aspx на основании http://msdn.microsoft.com/ru-ru/library/system.windows.documents.blockuicontainer.aspx, куда бросаю кнопку, но она все равно отображается неактивной.
upd
Надо было задать свойство IsDocumentEnable RichTextBox'a, который содержит эту таблицу.

Автор: Glavar Jul 5 2011, 17:50

String Code ="glsruhgieunvjh nkljnyuohi шутодлвоатилывтаоав аЭ";
1. Если в тексте встречается слово "Привет" хоть 1 раз, то закончить проверку и дать тру(правду) или ложь.
2. нужно обрезать первые Н символов и последние М символов;

WebClient client = new WebClient();
String htmlCode = client.DownloadString("http://www.google.com.ua/");

и как можно проверить работает ли сайт?

Автор: AnNE DoM.ini Jul 7 2011, 1:50

1.


String Code ="glsruhgieunvjh nkljnyuohi шутодлвоатилывтаоав аЭ";
if(Code.indexOf('Привет') != -1)
{
return; // Привет найдено.
}



2.

String Code ="glsruhgieunvjh nkljnyuohi шутодлвоатилывтаоав аЭ";
String nweString = Code.substring(H, Code.Length - H - M);


3. Работоспособность сайта это - живой сервак, и 200-й код в заголовках.
Живой-ли сервак - открываешь порт, если в порту ничего не появилось в течении, скажем, 3-х секунд - сервак недоступен, иначе - получаем ответ и смотрим на заговловки, точнее на наличие "200 ОК", и не забываем про всякие 301 заголовки, хотя WebClient сам умеет ходить по редиректам.

Вообщем тебе надо писать так:

        try
        {
            String htmlCode = client.DownloadString("http://www.google.com.ua/");
        }
        catch (WebException e)
        {
            MessageBox.Show(e.Message);
        }


Автор: blinds Aug 11 2011, 19:52

У меня вопрос по XNA, в C# я тоже новичок, разбираюсь походу.
Поставил звук на повтор, а остановить его по условию не получается. Думал, может надо в блок "Инишилайз" засунуть, но там ошибка получается.
Дошло, надо было SoundEffectInstance настраивать в методе LoadContent.

Автор: twix Oct 2 2011, 19:00

Вопрос из разряда "у меня все получилось, но для общего развития": зачем используют MEX в WCF? Банальное знание эндпоинтов и контрактов службы, которую мы используем?

Автор: Gengzu Oct 2 2011, 22:32

для других, не родственных систем, если они захотят пользоваться нашими службами.

Автор: Белый Дракон Oct 13 2011, 14:35

C++

Подскажите

float x;
int a=5,b=2;

x = a/b;
cout << x;


Выводит "2". Как вывести "2.5"?

Автор: TrashKn Oct 13 2011, 14:39

(Белый Дракон @ Oct 13 2011, 15:35) Перейти к цитате

C++

Подскажите

float x;
int a=5,b=2;

x = a/b;
cout << x;


Выводит "2". Как вывести "2.5"?


Происходит неявное преобразование типов (int в float). Нужно сделать явное преобразование:
x = (float)a/b;

Или a, b сделать float.

Автор: Белый Дракон Oct 13 2011, 14:48

(TrashKn @ Oct 13 2011, 15:39) Перейти к цитате

Происходит неявное преобразование типов (int в float). Нужно сделать явное преобразование:
x = (float)a/b;

Не работает sad.gif

(TrashKn @ Oct 13 2011, 15:39) Перейти к цитате

Или a, b сделать float.

если их сделать float, а потом ввести целые числа без течки, то результат тот-же.
То есть 5/2=2, но 5.0/2.0=2.5

Даже так пробовал a = «static_cast<float>(a);»

Автор: TrashKn Oct 13 2011, 15:00

x = (float)a/b; - работает сто процентов. Только что проверил.
Какую ошибку даёт?

Автор: Белый Дракон Oct 13 2011, 15:03

(TrashKn @ Oct 13 2011, 16:00) Перейти к цитате

x = (float)a/b; - работает сто процентов. Только что проверил.
Какую ошибку даёт?

Никакую. Просто результат — целое число.

Решил ситуацию так:
x = (0.0 + a)/b

Но это тупо.

Автор: TrashKn Oct 13 2011, 15:08

Какой компилятор?

Автор: Белый Дракон Oct 13 2011, 15:33

Visual studio 2008 C++

Автор: TrashKn Oct 13 2011, 15:43

Странно, как раз в нём и проверял. Попробуй поменять значения переменных и пересобрать проект.

Автор: blinds Oct 13 2011, 19:32

Может попробовать x = (float)(a/b) ?

Автор: Белый Дракон Oct 13 2011, 19:46

(blinds @ Oct 13 2011, 20:32) Перейти к цитате

Может попробовать x = (float)(a/b) ?


float a, b, x;
a=5;
b=2;

x=a/b;

cout << x;

Выводит 2


float a, b, x;
a=5.0;
b=2;

x=a/b;

cout << x;

Выводит 2.5

Автор: decapitator Oct 13 2011, 23:57

ну кто пользуется сишным приведением типом в плюсах? к тому же, код

(float)a/b;

может приводить к float результат деления равный 2 (зависит от компилятора).

чтоб было наверняка:
int a = 5, b = 2;
float x = static_cast<float>(a)/b;

Автор: repa4ok Oct 26 2011, 19:31

Нє, ну я все розумію, але то нічо, шо тема про шарп, нє? fp.gif

По сабжу - є хтось з таких хто на ділі пробував .Net Micro Framework?

Автор: Белый Дракон Nov 18 2011, 18:19

Помогите понять условие задачи.

В самом конце, последняя задача.

http://mathworks.narod.ru/lib/books/Lafore/ch6.pdf

Что это за таблица такая в конце? O_o.gif

Автор: decapitator Nov 18 2011, 22:36

книжка не по шарпу вообще-то smile.gif

а в таблице просто кто-то поленился разделители расставить между дробями. первая строчка: 1/6, 1/3 (= 2/6), 1/2 (= 3/6), 2/3 (= 4/6), 5/6.

Автор: flai Dec 26 2011, 21:48

не хотів створювати нову тему - тому пишу тут
Нема бібліотеки під сішарп для Google Documents List Data API v3.0
Тому хто підскаже як реалізовувати на C# наприклад таке - бажано код або посилання на приклади


POST /feeds/default/private/full
GData-Version: 3.0
Authorization: <your authorization header here>
Content-Length: 292
Content-Type: application/atom+xml

<?xml version='1.0' encoding='UTF-8'?>
<entry xmlns="http://www.w3.org/2005/Atom">
  <id>https://docs.google.com/feeds/default/private/full/document%3A12345</id>
  <title>My Copy</title>
</entry>



Автор: Белый Дракон Jan 13 2012, 20:02

(decapitator @ Nov 18 2011, 22:36) Перейти к цитате


а в таблице просто кто-то поленился разделители расставить между дробями. первая строчка: 1/6, 1/3 (= 2/6), 1/2 (= 3/6), 2/3 (= 4/6), 5/6.

Спасибо. Но из чего состоит таблица дальше? Я так понял эти дроби как-то перемножаются между собой, но систему увидеть не могу.

А все, уразумел smile.gif

Автор: Livanias Jan 17 2012, 14:28

(flai @ Dec 26 2011, 21:48) Перейти к цитате

не хотів створювати нову тему - тому пишу тут
Нема бібліотеки під сішарп для Google Documents List Data API v3.0
Тому хто підскаже як реалізовувати на C# наприклад таке - бажано код або посилання на приклади

POST /feeds/default/private/full
GData-Version: 3.0
Authorization: <your authorization header here>
Content-Length: 292
Content-Type: application/atom+xml

<?xml version='1.0' encoding='UTF-8'?>
<entry xmlns="http://www.w3.org/2005/Atom">
  <id>https://docs.google.com/feeds/default/private/full/document%3A12345</id>
  <title>My Copy</title>
</entry>


http://msdn.microsoft.com/en-us/library/d4cek6cc.aspx

Автор: yartat Jan 27 2012, 8:21

(flai @ Dec 26 2011, 21:48) Перейти к цитате

не хотів створювати нову тему - тому пишу тут
Нема бібліотеки під сішарп для Google Documents List Data API v3.0
Тому хто підскаже як реалізовувати на C# наприклад таке - бажано код або посилання на приклади

Во-первых есть http://code.google.com/intl/ru-RU/apis/documents/docs/2.0/developers_guide_dotnet.html, во-вторых, если не устраивает либа, можно воспользоваться WCF REST или вообще использовать, как предложил Livanias, WebRequest/WebResponse.

Автор: twix Mar 13 2012, 21:48

У кого в запасе есть интересная, доступная и подробная статья об реализации MVVM с помощью WPF. Азы не слишком интересны, а вот детали, интересные решения очень приветствуются. В частности интересует решение проблемы, когда View в runtime меняет свою структуру; создание новых View, где правильно все это прописывать: в ViewModel или же в самом View.

Автор: Gengzu Mar 14 2012, 8:28

А можно узнать каким образом View меняет свою структуру? О.о

Автор: twix Mar 14 2012, 12:19

Ну допустим на форме по какому-то условию надо отобразить новую кнопку...это как пример. Вот меня собственно интересует где кто должен за это отвечать, View или ViewModel

Автор: yartat Apr 14 2012, 15:52

(twix @ Mar 14 2012, 13:19) Перейти к цитате

Ну допустим на форме по какому-то условию надо отобразить новую кнопку...это как пример. Вот меня собственно интересует где кто должен за это отвечать, View или ViewModel

Вы пытаетесь в одном вопросе покрыть все варианты. Так скорее всего не выйдет. Для приведенного случая вешаете байндинг на Visible и в VM прописываете логику (например секьюрную). Все.
Существует еще 100500 различных ситуаций с полной или частичной заменой верстки View. И каждую ситуацию нужно рассматривать отдельно: где-то вынести на уровень User control, где-то control binding (как http://weblogs.asp.net/psheriff/archive/2010/05/10/control-to-control-binding-in-wpf-silverlight.aspx), а где-то использовать команды.

Автор: -RC- Jul 23 2012, 23:34

Какие можно использовать варианты безопасного получения данных из mysql?

Мне нужно для клиентского ПО получить ряд значений из базы данных.
но т.к. на локальной тачке легко сниффером просмотреть все соединения к БД и тем самым выловить пароль к mysql, ну и дальше соответственно выдернуть все данные, что крайне нежелательно.

Один вариант я вижу это использование SSL сертификатов при работе с Mysql.
но:

"Connector/Net doesn't support SSL connections natively at this time. You could use something like stunnel to provide connection to a remote SSL server. Also, I have heard about problems from the field regarding compiling MySQL on Windows with SSL. I think it may be easier to get going on Linux"

т.е. Mysql SSL с C# не катит

Вариант №2, это написание своего авторизатора на перле на стороне сервера, чтобы он например сравнивать хеши login+password и в случае успешной авторизации выполнял роль прокси сервера sql, что крайне геморно проксировать select запросы.

Может кто подскажет другие варианты?

Автор: yartat Jul 24 2012, 8:34

(-RC- @ Jul 24 2012, 0:34) Перейти к цитате

Какие можно использовать варианты безопасного получения данных из mysql?

Почитайте http://stackoverflow.com/questions/7649163/using-mysqlconnection-net-to-ssl-connect-to-mysql-server-fails-from-certain-c

Автор: -RC- Jul 24 2012, 8:49

т.е. таки работает Mysql SSL ?

Автор: yartat Jul 24 2012, 9:40

(-RC- @ Jul 24 2012, 9:49) Перейти к цитате

т.е. таки работает Mysql SSL ?

Я не пробовал. В доке есть целый раздел по SSL. Так что возможность официально поддерживается. Скачайте последний (6.5) Connector и попробуйте вариант из статьи.

Автор: -RC- Jul 24 2012, 9:42

грац, сейчас использую 6.5.4.0
прийдется второй mysql сервер поднимать, в продакшне не хочется тренироваться.

Автор: -RC- Jul 24 2012, 21:14

извиняюсь за наверное тривиальный вопрос, а как можно инкапсулировать текстовые строки в бинарике?

открыв exe файл, я вижу

S E L E C T   f i e l d _ v a l u e   F R O M   u s e r s   L E F T   J O I N   d o p v a l u e s   O N   u s e r s . i d   =   d o p v a l u e s . p a r e n t _ i d   L E F T   J O I N   r e v _ u s e r s   O N   d o p v a l u e s . r e v i s i o n   =   r e v _ u s e r s . r e v   W H E R E   d o p f i e l d _ i d   = 4   A N D   r e v _ u s e r s . i d   =   u s e r s . i d     A N D   u s e r s . n a m e =

в том числе и sql ключи для AES шифрования smile.gif

обфускацию строк в C# как делать?
http://habrahabr.ru/post/97062/

личный опыт

Автор: -RC- Jul 24 2012, 22:26

ILSPY рвет в пух и прав C# приложение ))

Автор: -RC- Jul 27 2012, 10:15

так и встал на SSL подключении сертификатов.
http://www.connectionstrings.com/mysql
тут разные варианты подключения с использованием сертификатов, но копилятор ругается.

Автор: Phaust Oct 19 2012, 12:08

http://habrahabr.ru/post/147171/ - занятная новость. кому религия не позволяет юзать пиратку может после простой регистрации получить нужный для обучения перечень продуктов microsoft "на шару". Вполне функциональные лицензии, проверил,работает

Автор: -RC- Oct 19 2012, 20:50

та да, Visual Studio 2010 Pro, хоть не ультимейт, но все же

Автор: Phaust Oct 19 2012, 20:54

Да и пять лицензий на 2012 server standart. Не плохо, однако.

Автор: ka4a Oct 23 2012, 8:55

Есть Debian 6. Нужно скомпилировать файл cryptex.c в exe файл. С ним в архиве присутствует make файл. Какой коммандой скомпилировать и что нужно? gcc стоит 4.4.5-8

Автор: Бисквит Oct 23 2012, 9:41

(ka4a @ Oct 23 2012, 9:55) Перейти к цитате

Есть Debian 6. Нужно скомпилировать файл cryptex.c в exe файл. С ним в архиве присутствует make файл. Какой коммандой скомпилировать и что нужно? gcc стоит 4.4.5-8


1. А при чем тут C#?
2. Неужели документация не дает ответа на этот вопрос "жизни, вселенной и вообще" ?

Автор: JONSON Mar 24 2015, 14:10

del

Автор: JONSON Apr 2 2015, 11:39

del

Автор: JONSON May 8 2015, 15:56

не актуально smile.gif

Автор: Lonnieduh Jun 23 2015, 17:50

Приветствую

Кто-нибудь сталкивался с разработкой ActiveX компонентов для IE. С чего начать, на чем это все пишется?

Автор: грик Aug 3 2015, 14:39

Такой вопрос: если экземпляры классов хранятся в куче, то я правильно понимаю, что статические классы, для которых не могут создаваться экземпляры, будут хранится в стеке?

Автор: Phaust Aug 3 2015, 17:34

(грик @ Aug 3 2015, 14:39) Перейти к цитате

Такой вопрос: если экземпляры классов хранятся в куче, то я правильно понимаю, что статические классы, для которых не могут создаваться экземпляры, будут хранится в стеке?

Нет, не будут.

Автор: aidanpraid Aug 3 2015, 20:43

(грик @ Aug 3 2015, 15:39) Перейти к цитате

Такой вопрос: если экземпляры классов хранятся в куче, то я правильно понимаю, что статические классы, для которых не могут создаваться экземпляры, будут хранится в стеке?

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

Автор: грик Aug 3 2015, 21:33

(Phaust @ Aug 3 2015, 18:34) Перейти к цитате

Нет, не будут.



(aidanpraid @ Aug 3 2015, 21:43) Перейти к цитате

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

Понял, спасибо.

Автор: Phaust Aug 4 2015, 19:23

(aidanpraid @ Aug 3 2015, 20:43) Перейти к цитате

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

Бред

Автор: грик Aug 6 2015, 15:27

(Phaust @ Aug 4 2015, 20:23) Перейти к цитате

Бред

Я правильно понимаю, что единственное место, где на физическом уровне хранится статический класс (не переменные этого класса, а именно сам класс, оболочка, если можно так выразиться) - это метаданные типа?
И ещё такой вопрос на счет явной реализации членов интерфейса: почему к ним в классе нельзя обратиться через this, ведь они по книге Троелсена "неявно закрытые", в чем смысл этого ограничения? (можно обратиться только приведя объект к типу интерфейса)

Автор: Phaust Aug 8 2015, 17:51

(грик @ Aug 6 2015, 15:27) Перейти к цитате

Я правильно понимаю, что единственное место, где на физическом уровне хранится статический класс (не переменные этого класса, а именно сам класс, оболочка, если можно так выразиться) - это метаданные типа?
И ещё такой вопрос на счет явной реализации членов интерфейса: почему к ним в классе нельзя обратиться через this, ведь они по книге Троелсена "неявно закрытые", в чем смысл этого ограничения? (можно обратиться только приведя объект к типу интерфейса)


По моему, спутано все что можно. Что где в какой момент на каком уровне хранится? Ничего не понял. Вы же не думаете что каждый раз когда вы вызываете метод статического класса происходит обращения к диску?


Собачье сердце - Кто на ком стоял?..


Именно сам класс на физическом уровне храниться в файле .cs на накопителе. Экземпляр храниться в куче в памяти.

Второй вопрос вообще не понял, это типа так?

http://piccy.info/view3/8581709/7af3a11ca8f808264f2f762766fb7643/http://i.piccy.info/a3c/2015-08-08-15-50/i9-8581709/576x628-r

Автор: Carnifex Aug 9 2015, 22:35

Давайте так. Дабы не было путаницы. Ты пишешь код. После того как ты нажимаешь кнопку Run компилятор перегоняет его в так называемый Intermediate Language. Потом в машинный код называемый Executable тоесть, по-простому, *.exe. Это простой случай. Касательно классов, они(точнее их объекты), как ссылочные типы, размещаются в управляемой куче (это кусок оперативной памяти). При этом обычные объекты обычных классов размещаются в куче при вызове их конструктора (с исп. new), а статические поля (или даже статические классы) размещаются в High Frequency Heap (высокочастотная куча) после вызова их статических инициализаторов в текстовом порядке (по очереди короче), в момент их вызова или, при наличии статического конструктора, сразу перед вызовом конструктора. В стек (это тоже кусок оперативной памяти, выделяемый операционкой каждому процессу), кстати, идут ссылки на объекты, размещенные в куче. На жестком всегда находится только код. С метаданными в отдельном файле, преобразованный в машинный или в обычном виде, как угодно, но это всегда код. Может быть создана *.dll - но это тоже код.
По поводу this. На данном этапе, не вдаваясь в подробности реализации индексаторов и методов расширения, я рекомендую рассматривать его как ссылку на ЭКЗЕМПЛЯР (ОБЪЕКТ) текущего типа, в котором вы сейчас пишете Ваш код. Написать в коде this - все равно что вызвать конструктор типа и работать уже с объектом.
Если запутались с интерфейсами, рассмотрите их просто как обещание. Обещание того, что класс, который их наследует, будет иметь такие же поля и методы, только уже с реализацией (тоесть с телом) и не приплетайте туда this.

Автор: Phaust Aug 10 2015, 21:48

После того как ты нажимаешь кнопку Run компилятор перегоняет его в так называемый Intermediate Language. Потом в машинный код называемый Executable тоесть, по-простому, *.exe.

Это не корректное объяснение. Компилятор компилирует сборки, после чего runtime их загружает и работает с ними. Если не забираться в дебри как то PE/COFF заголовки - процесс неплохо показан здесь http://www.telerik.com/blogs/understanding-net-just-in-time-compilation


На жестком всегда находится только код. С метаданными в отдельном файле, преобразованный в машинный или в обычном виде, как угодно, но это всегда код. Может быть создана *.dll - но это тоже код.

ngen же https://msdn.microsoft.com/en-us/library/6t9t5wcf%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396

В стек (это тоже кусок оперативной памяти, выделяемый операционкой каждому процессу), кстати, идут ссылки на объекты, размещенные в куче.


Stack frame в clr выделяет под вызов метода. Если мы лезем в дебри то тут надо бы припомнить что каждый процесс имеет свое VAS(и PFD держим в уме) и что есть такой Memory menager,и вообще что кто его знает где эта память была выделена. И про версию CLR помним...

Итого,я рекомендую не лезть в дебри, а писать код. Для начала.

Автор: Carnifex Aug 11 2015, 19:29

Данке за линки. Почитаемс.... d.gif

А стек мне все равно легче было представить в виде пула адресов в оперативе, выделяемых процессу. Сразу картинка в голове рисуется - гораздо проще учить было. Это как представить ThreadPool с задачами, адресуемыми ему в виде ворот и стада овец)))

Автор: Phaust Aug 11 2015, 21:07

Отличная книжка: http://download.red-gate.com/ebooks/DotNet/Under_the_Hood_of_.NET_Management.pdf

Если, конечно, держать в уме то, что CLR все таки некий уровень абстракции

Автор: грик Aug 12 2015, 11:49

(Phaust @ Aug 8 2015, 18:51) Перейти к цитате

По моему, спутано все что можно. Что где в какой момент на каком уровне хранится? Ничего не понял.

Я имел ввиду после компиляции. Действительно, лучше пока не буду лезть в такие дебри.
(Phaust @ Aug 8 2015, 18:51) Перейти к цитате

Второй вопрос вообще не понял, это типа так?

Нет, это вот так:
» Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... «

В чем смысл такого ограничения?

Автор: Carnifex Aug 12 2015, 22:59

Все достаточно просто. Усли учитывать что this - ссылка на объект текущего класса (тоесть на экземпляр считай), то в первом случае не компилится, потому что ты в этом объекте ищешь какой-то экземплярный интерфейс, которого там нет и не может быть. А во втором случае все просто и почти адекватно. Ты обращаешься к экземпляру класса (приводя его к интерфейсу, что, по сути, говорит "тип, экземпляр которого указан ключевым словом this должен реализовывать такой-то интерфейс") и вызываешь из него метод, который в нем реализован. Классический вызов метода. Если не считать порнографии с участием this и интерфейса.

Автор: грик Aug 12 2015, 23:07

(Carnifex @ Aug 12 2015, 23:59) Перейти к цитате

Если не считать порнографии с участием this и интерфейса.

Это мне и не нравится. Есть какой-то способ обратиться к каждому из методов Do(), не используя приведения к интерфейсу?

Автор: Carnifex Aug 13 2015, 10:23

Я до сих пор не очень понимаю зачем создавать два интерфейса с одинаковыми сигнатурами внутри, но ладно. Обратиться к методам класса внутри класса можно просто по имени метода. Безо всякого this.
this внутри класса мог бы применяться для спецификации полей с одинаковыми именами (в самом простом виде) но зачем его было писать для спецификации методов с и так неодинаковыми именами я особо не понимаю. Да и с одинаковыми именами, но разными сигнатурами тоже его не используют, методы, ведь, допускают полиморфное поведение (перегрузки).
В конечном счете, рассуждая логически, если метод и так виден внутри класса, то, стало быть, зачем явно указывать что это экземплярный метод этого же класса?

Автор: грик Aug 13 2015, 11:48

(Carnifex @ Aug 13 2015, 11:23) Перейти к цитате

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

В базовых библиотеках .NET есть интерфейсы, в которых одинаковые названия методов. Да и пример, когда это логично, можно придумать.
(Carnifex @ Aug 13 2015, 11:23) Перейти к цитате

Безо всякого this.

Действительно, не знаю, почему так писал.
(Carnifex @ Aug 13 2015, 11:23) Перейти к цитате

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

Не понял. Все равно вот так не работает:
1) Do(); (понятное дело, он не понимает, какой из методов нужно вызывать)
2) ISmth2.Do();

Автор: Carnifex Aug 13 2015, 13:12

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

Вы нашли в базовых библиотеках два идентичных интерфейса с разными названиями?
2) ISmth2.Do();

А... Ну так да. Туплю. Чтоб понять в чем тут вопрос, унаследуйте Ваш класс только от одного интерфейса, удалите реализацию методов в класе и снова нажмите правую клавишу и Implement interface (Вы же этим пользовались?). Далее, в методе Foo напишите:
Do();
ISmth1.Do(); ( или если унаследовали от второго ISmth2.Do(); )

И поймете в чем проблема.

Автор: грик Aug 13 2015, 13:31

(Carnifex @ Aug 13 2015, 14:12) Перейти к цитате

Вы нашли в базовых библиотеках два идентичных интерфейса с разными названиями?

Нет, я имел ввиду, что существуют два интерфейса из библиотек .NET, у которых абсолютно одинаковые по сигнатуре методы (один, два, но не все). И без этой техники невозможно реализовать разное поведение для каждого из методов.
(Carnifex @ Aug 13 2015, 14:12) Перейти к цитате

Чтоб понять в чем тут вопрос, унаследуйте Ваш класс только от одного интерфейса

Не понял. Я хочу, чтобы класс реализовывал именно 2 интерфейса. С одним и так понятно.

Автор: Phaust Aug 13 2015, 14:04

(грик @ Aug 12 2015, 11:49) Перейти к цитате

Нет, это вот так:
» Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... «

В чем смысл такого ограничения?

Это синтаксис бро, так в стандарте написано. http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-334.pdf

Автор: грик Aug 13 2015, 14:09

(Phaust @ Aug 13 2015, 15:04) Перейти к цитате

Это синтаксис бро, так в стандарте написано. http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-334.pdf

Т.е. нужно смириться и приводить к интерфейсу?

Автор: Phaust Aug 13 2015, 14:29

(грик @ Aug 13 2015, 14:09) Перейти к цитате

Т.е. нужно смириться и приводить к интерфейсу?

Нет, нужно не создавать таких интерфейсов с такими именами методов. Это говнокод в чистом виде. Если уж вдруг так случилось, что эти интерфейсы не твои и ты вынужден их реализовывать ты всегда можешь сделать свою обертку надо одним из них

Автор: грик Aug 13 2015, 14:52

(Phaust @ Aug 13 2015, 15:29) Перейти к цитате

обертку надо одним из них

Как?

Автор: Carnifex Aug 13 2015, 15:13

Не понял. Я хочу, чтобы класс реализовывал именно 2 интерфейса. С одним и так понятно.

2) ISmth2.Do(); - эта запись пытается вытянуть метод из интерфейса. Компилятор не воспринимает это как указание абсолютного имени метода внутри класса. И подобные вещи, как верно сказал Фауст, нужно не допускать, а не холить и лелеять такой подход ища выход из подобных ситуаций.

На счет обертки - ну, я бы сделал так (в студии не проверял).
ISmth1 ismth1 = this as ISmth1;
ISmth2 ismth2 = this as ISmth2;

ismth1.Do();
ismth2.Do();

Правда, я такого еще ни разу не писал))

Автор: грик Aug 13 2015, 16:02

(Carnifex @ Aug 13 2015, 16:13) Перейти к цитате
И подобные вещи, как верно сказал Фауст, нужно не допускать, а не холить и лелеять такой подход ища выход из подобных ситуаций.

Мне самому не понравилось, в Троелсене был такой пример, потому я и спросить решил.
(Carnifex @ Aug 13 2015, 16:13) Перейти к цитате
На счет обертки - ну, я бы сделал так (в студии не проверял).
ISmth1 ismth1 = this as ISmth1;
ISmth2 ismth2 = this as ISmth2;

ismth1.Do();
ismth2.Do();

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

Автор: Carnifex Aug 13 2015, 17:51

Это и не обертка была, просто спецификация методов.
Можно сделать очередное извращение.
public interface ISmth2 : ISmth1
{
Do(); -Этот метод скроет такой же метод родительского интерфейса. А если бы в родительском были другие методы, класс - consumer должен был бы реализовать и методы ISmth1
}

Потом просто унаследовать класс от ISmth2

Автор: Phaust Aug 13 2015, 19:19

(грик @ Aug 13 2015, 14:52) Перейти к цитате

Как?

Что то типа

void Exectute()
            {
                (this as ISmth2).Do();
            }

если ISmth2.Do() используется в коде класса(!). Хотя тоже, как бы попахивает... Самый правильный подход избегать такого нейминга. Если не удалось-"жизнь это боль и страдания".
Тем не менее, за всю свою практику с подобной необходимостью не сталкивался, что наталкивает меня на мысль что если она у вас возникла-вы что-то делаете не так.

Автор: грик Aug 14 2015, 11:55

(Carnifex @ Aug 13 2015, 18:51) Перейти к цитате
public interface ISmth2 : ISmth1
{
Do(); -Этот метод скроет такой же метод родительского интерфейса. А если бы в родительском были другие методы, класс - consumer должен был бы реализовать и методы ISmth1
}

Потом просто унаследовать класс от ISmth2

Это не подходит, потому реализация методов из разных интерфейсов должна быть разной. Чтобы реализация была одинаковой не обязательно так делать, можно просто не делать явной реализации интерфейса, а просто реализовать один метод в классе под названием Do().
(Phaust @ Aug 13 2015, 20:19) Перейти к цитате
Что то типа

Понял, спасибо.

Автор: Carnifex Aug 14 2015, 12:21

Это не подходит, потому реализация методов из разных интерфейсов должна быть разной. Чтобы реализация была одинаковой не обязательно так делать, можно просто не делать явной реализации интерфейса, а просто реализовать один метод в классе под названием Do().

You've got it! )) Конечно это все не подходит! Ровно как и не подходит изначальная задача ни к одному из принципов и паттернов проектирования. Но если мы имеем извращение изначально. Да, к тому же, извращение которое менять нельзя (начальные условия задачи же) - почему бы не извратиться самому gy.gif

Автор: Corey656 Feb 3 2017, 0:14

Тема мертва? sad.gif

Видеокурс C# 5.0. От простого к сложному - начал проходить его, очень нравится подача. Что можете посоветовтать ещё почитать, так сказать для закрепления?

Автор: KOCMOHABT Apr 18 2019, 8:04

(Corey656 @ Feb 3 2017, 1:14) Перейти к цитате

Тема мертва? sad1.png

Видеокурс C# 5.0. От простого к сложному - начал проходить его, очень нравится подача. Что можете посоветовтать ещё почитать, так сказать для закрепления?

CLR via C#

Автор: vitallydion Mar 31 2020, 19:51

Уважаемые софорумцы, решил почитать Шидлта С# 4.0.
Читаю одну главу ну никак не могу вехать о чем идет речь, помогите направить мысль в нужное русло.

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

В первой части не изменяется во второй части изменяется, растолкуйте плиз. Вторая часть понятная но первая противоречит второй.

Invision Power Board
© Invision Power Services