Рассылка закрыта
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
← Декабрь 2011 → | ||||||
1
|
3
|
4
|
||||
---|---|---|---|---|---|---|
5
|
6
|
7
|
8
|
10
|
11
|
|
12
|
13
|
14
|
15
|
17
|
18
|
|
19
|
20
|
21
|
22
|
24
|
25
|
|
26
|
27
|
28
|
29
|
31
|
Статистика
-1 за неделю
Программирование (VB,C#,ASP,.NET): новости, советы, примеры
Выпуск # 670Приветствую вас, любители высоких технологий! Вот и очередной выпуск рассылки. За неделю на сайте появилось много новых и интересных материалов, некоторые из которых вы сможете увидеть в этом выпуске. Содержание выпускаЧитайте в этом выпуске: Если у вас есть вопросы по программированию или работе с компьютером, не стесняйтесь, спрашивайте.Форумы Kbyte.RuНа форумах Kbyte.Ru постоянно появляются новые интересные темы и обсуждения. В этом выпуске представлены лишь новые темы, с момента прошлой рассылки. Кстати, любой желающий может на форумах Kbyte.Ru совершенно свободно получить помощь грамотных специалистов в области программирования, да и в целом информационных технологий. Задать свой вопрос прямо сейчас Visual studio net лучше или С++ @Behruz 27.12.2011 23:43 Visual studio net лучше или С++ Ответ #1 @Aleksey Nemiro 28.12.2011 18:06 Их нельзя сравнивать, Visual studio - IDE (среда разработки), C++ - язык программирования Если вместо Visual Studio имеется ввиду Visual Basic .NET, то его с C++ тоже в принципе сравнивать нельзя. Это абсолютно разные языки, технологии. Если под Visual Studio подразумевается C#, то аналогично, с C++ сравнивать его бесполезно. Некоторые вещи на C# сделать будет невозможно, а некоторые делать проще на C#, чем C++. Если под Visual Studio имеется ввиду Visual Basic .NET, а под C++ - C#, то возможности у них одинаковые, есть существенные различия в реализации задач, код, само собой, разный. Что лучше, зависит от задачи. Где-то удобней использовать Visual Basic .NET, а где-то C#. Собственно, это касается абсолютно любого языка программирования и технологии. В идеале, нужно уметь, в той или иной степени, работать со всеми популярными ныне технологиями Ответ #2 @burhonzod-behruz 29.12.2011 01:27 Если бы разница небела то почему же разработали два языка программирования(я имел введу VB.NET) Многие говорят что С++ лучше чем другие языки программирования , Ответ #3 @Aleksey Nemiro 29.12.2011 11:56 А зачем придумали вилку, когда есть ложка? Ведь ложку вполне можно использовать для поедания спагетти. Собственно, если постараться, и вилку вполне можно использовать для поедания супа. Вообще, зачем придумали все эти ложки и вилки, когда
есть руки? Это вопрос удобства. Каждый язык программирования создан для определенных целей и хорош именно в достижении этих целей. Си++ и Visual Basic .NET слишком далеки друг от друга, чтобы их сравнивать. Это выглядит странно, они в разных весовых категориях Если Си++ с чем-то и сравнивать, так это с C#, ибо у последнего синтаксис си-производный. В .NET Framework (VB .NET, C#) можно легко создавать красивые приложения для Windows, Windows-службы, создавать сайты, и много чего еще. Сетевые функции в .NET Framework реализованы удобней. Я, например, под .NET Framework раньше программировал только сайты, тем не менее, когда мне понадобилось написать Windows-приложение, я это легко сделал без дополнительного обучения, просто используя знания .NET Framework. В этом основная фишка .NET Framework - объединение разных типов проектов, технологий для решения разных типов задач. В то же время, .NET Framework плохо пригоден, а иногда и вовсе бесполезен, для создания чего-нибудь системного, низкоуровневого. Например, как-то у меня возник вопрос создания расширения для IIS, как оказалось без Си тут не обойтись. Но вообще, в Си++ можно использовать .NET Framework, соответственно, сейчас в любом языке программирования высокого уровня реализована поддержка .NET Framework, правда это не так удобно, как в родных языках - Visual Basic .NET и C#. Собственно, также как и Си можно использовать в веб-программировании и это также будет, мягко говоря, не совсем удобно (сомневаюсь, что в наше время вообще найдутся люди использующие его для этих целей). Так что все зависит от задач. По себе скажу, что я уже напрочь забыл, кто такой Си++, ибо нет необходимости его использовать. Си - это основа основ, как Ассемблер, только высокого уровня, но .NET Framework на уровень выше будет (конечно, если бы такой уровень был) разработали два языка программированияКак я понимаю, под Си++ подразумевается Си Шарп. Си++ и Си Шарп (C#) - это разные языки программирования. Два основных языка разработали для удобства миграции программистов в .NET Framework. Кто-то раньше программировал на Visual Basic 6.0, кто-то на Си++. Еще раньше был J#, для удобства миграции программистов Java (по-моему J# был исключен из Visual Studio в 2008 году). Visual Basec .NET удобен в ASP .NET WebForms, но выглядит неуклюже в ASP .NET MVC. C# в ASP .NET WebForms заставляет делать много лишних и абсолютно бесполезный движений, а вот в ASP .NET MVC вписывается идеально. При разработке Windows-приложений, какой язык выбрать - зависит от задачи. Visual Studio для Visual Basic .NET многие вещи делает автоматически, генерирует автоматический код, который по умолчанию не доступен для программиста (например, код дизайнера форм). В C# автоматического когда мало, весь код доступен, в общем ограничений никаких нет. Если провести аналогию, это как торт, в Visual Basic .NET торт уже выпечен, осталось только нанести крем, а в C# тебе дают кусок теста и делай с ним, что хочешь, ну или что можешь. Новички, взявшиеся за C# не имея представления о .NET, частенько спотыкаются на ровном месте (речь о специфике программирования проектов типа Windows Forms (приложений Windows)), да и Visual Studio не идеальна, иногда косячит. А Visual Basic .NET продуман до мелочей, чтобы не напрягать программиста лишними, в большинстве случаев ненужными, вещами. Если нужно сделать приложение, которое просто работает с базой данных, выводит записи, позволяет их редактировать, удалять, то я бы скорей всего выбрал Visual Basic .NET, просто потому что это проще и быстрее сделать в Visual Basic .NET. Если нужно сделать многопоточное приложение, которое будет работать с сетью, производить большое количество манипуляций с данными, или просто сложно приложение, то я бы выбрал C#, ибо это удобней, а следовательно и быстрее, сделать в C#. Еще по Visual Basic .NET можно английский выучить, если знания английского совсем нулевые If you get me money Then I get you program work: Do Work If time Is evening Then GoTo home Loop home: Call Whore() Call Tv() Thread.Sleep(28800000) Kill "стол:\AlarmClock.wav" Call Cofe() GoTo work Помогите горю @toxa08 27.12.2011 23:08 Помогите написать прогу с использованием ссылок в качестве параметров функций для нахождения минимального элемента на 3-х заданных Сохранение исключений (exceptions) в БД @Павел 26.12.2011 20:39 Добрый день. Как правильно организовать сохранение в БД возникших в работе программы исключений? Ответ #1 @Aleksey Nemiro 27.12.2011 12:11 Только так: try { } catch(Exception ex){ // код сохранения текста ошибки (ex.Message и/или ex.ToString()) в базу // лучше сделать для этого хелпер-функцию или класс } Двойная вставка строки в БД @Павел 24.12.2011 23:13 Не могу понять, по какой причине при внесении новой строки в БД она вставляется 2 раза! просто мистика какая-то. Отладку осуществляю в VS2010, также установлен в системе IIS(если это имеет какое-либо значение). Вот, пример кода: private static SqlConnection sqlCon; private static SqlCommand insertPersonCommand; private static SqlConnection SQLCon { get { if (sqlCon == null) sqlCon = new SqlConnection(connString); return sqlCon; } } private static SqlCommand InsertPersonCommand { get { if (insertPersonCommand == null) { insertPersonCommand = new SqlCommand(); insertPersonCommand.CommandText = "InsertPerson"; insertPersonCommand.CommandType = CommandType.StoredProcedure; insertPersonCommand.Connection = SQLCon; SqlParameter sqlParameter = new SqlParameter("@Surname", SqlDbType.NVarChar, 20); sqlParameter.Direction = ParameterDirection.Input; insertPersonCommand.Parameters.Add(sqlParameter); sqlParameter = new SqlParameter("@FirstName", SqlDbType.NVarChar, 20); sqlParameter.Direction = ParameterDirection.Input; insertPersonCommand.Parameters.Add(sqlParameter); ... sqlParameter = new SqlParameter("@User_ID", SqlDbType.UniqueIdentifier, 0); sqlParameter.Direction = ParameterDirection.Input; insertPersonCommand.Parameters.Add(sqlParameter); } return insertPersonCommand; } } public static bool InsertPerson(Person person) { bool rez = false; InsertPersonCommand.Parameters["@Surname"].Value = person.Surname; InsertPersonCommand.Parameters["@FirstName"].Value = person.FirstName; InsertPersonCommand.Parameters["@SecondName"].Value = person.SecondName; InsertPersonCommand.Parameters["@Phone_work"].Value = person.Phone_work; InsertPersonCommand.Parameters["@Phone_mob"].Value = person.Phone_mob; InsertPersonCommand.Parameters["@Phone_home"].Value = person.Phone_home; InsertPersonCommand.Parameters["@Email"].Value = person.Email; if (person.Birthday != DateTime.MinValue) InsertPersonCommand.Parameters["@Birthday"].Value = person.Birthday; else InsertPersonCommand.Parameters["@Birthday"].Value = DBNull.Value; InsertPersonCommand.Parameters["@Address"].Value = person.Address; InsertPersonCommand.Parameters["@PersonType_ID"].Value = person.PersonType_ID; InsertPersonCommand.Parameters["@User_ID"].Value = person.User_ID; try { SQLCon.Open(); InsertPersonCommand.ExecuteNonQuery(); if (InsertPersonCommand.ExecuteNonQuery() == 1) rez = true; } catch { } finally { if (SQLCon.State == ConnectionState.Open) SQLCon.Close(); } return rez; } ALTER PROCEDURE dbo.InsertPerson ( @Surname nvarchar(20), @FirstName nvarchar(20), @SecondName nvarchar(20), @Phone_work nvarchar(20), @Phone_mob nvarchar(20), @Phone_home nvarchar(20), @Email nvarchar(50), @Birthday date, @Address nvarchar(255), @PersonType_ID tinyint, @User_ID uniqueidentifier ) AS INSERT INTO [Book] VALUES (@Surname, @FirstName, @SecondName, @Phone_work, @Phone_mob, @Phone_home, @Email, @Birthday, @Address, @PersonType_ID, @User_ID); Ответ #1 @Aleksey Nemiro 25.12.2011 12:01 В строке 64 данные вставляются первый раз, а в 66 - второй. InsertPersonCommand.ExecuteNonQuery();//1 if (InsertPersonCommand.ExecuteNonQuery() == 1)//2 rez = true; Ответ #2 @Павел 26.12.2011 09:44 А почему это проверка условия выполняет команду? Ответ #3 @Aleksey Nemiro 26.12.2011 12:10 А почему это проверка условия выполняет команду?Потому что ExecuteNonQuery не содержит никаких данных, это не переменная и не свойство, это функция. Чтобы узнать, какой будет результата выполнения функции, функция должна выполниться и вернуть результат выполнения. В данном случае, функция выполняет SQL-запрос. Если нужна обработка результата выполнения функции, то это нужно делать либо в условии (как в строке 66), либо переносить результат выполнения функции в промежуточную переменную: int r = InsertPersonCommand.ExecuteNonQuery(); if (r == 1) rez = true; int r = 0; if ((r = InsertPersonCommand.ExecuteNonQuery()) == 1) rez = true; rez = (InsertPersonCommand.ExecuteNonQuery() == 1); Ответ #4 @Aleksey Nemiro 26.12.2011 12:13 Собственно, если код такой же как в тексте вопроса, то функции InsertPerson можно вообще сразу возвращать результат: return (InsertPersonCommand.ExecuteNonQuery() == 1); public static bool InsertPerson(Person person) { bool rez = false; InsertPersonCommand.Parameters["@Surname"].Value = person.Surname; InsertPersonCommand.Parameters["@FirstName"].Value = person.FirstName; InsertPersonCommand.Parameters["@SecondName"].Value = person.SecondName; InsertPersonCommand.Parameters["@Phone_work"].Value = person.Phone_work; InsertPersonCommand.Parameters["@Phone_mob"].Value = person.Phone_mob; InsertPersonCommand.Parameters["@Phone_home"].Value = person.Phone_home; InsertPersonCommand.Parameters["@Email"].Value = person.Email; if (person.Birthday != DateTime.MinValue) InsertPersonCommand.Parameters["@Birthday"].Value = person.Birthday; else InsertPersonCommand.Parameters["@Birthday"].Value = DBNull.Value; InsertPersonCommand.Parameters["@Address"].Value = person.Address; InsertPersonCommand.Parameters["@PersonType_ID"].Value = person.PersonType_ID; InsertPersonCommand.Parameters["@User_ID"].Value = person.User_ID; try { SQLCon.Open(); return (InsertPersonCommand.ExecuteNonQuery() == 1); } catch { return false; } finally { if (SQLCon.State == ConnectionState.Open) SQLCon.Close(); } } В чем разница при выполнении java-скрипта? @Павел 24.12.2011 22:47 Добрый день. Работаю над сайтом в ASP.Net. Необходимо выводить на экран MessageBox. Как известно, метод Message.Show работает только в WinForms. Полез в и-нет и нашел довольно много вариантов организации вывода такого сообщения на экран. Самый простой: Response.Write("<SCRIPT LANGUAGE='JavaScript'> alert('Выделите необходимую запись в таблице'); </SCRIPT>"); Response.Write("<SCRIPT LANGUAGE='JavaScript'> if(confirm('Вы действительно хотите удалить запись?')==false) return false; </SCRIPT>"); Хотя если идти через свойства кнопки "Удалить", то такой код работает: btn_Delete.Attributes.Add("onclick", "javascript:if(confirm('Вы действительно хотите удалить запись?')==false) return false;"); Что делаю не так? Ответ #1 @Алексей Немиро 24.12.2011 23:09 Я обычно использую у кнопок готовое свойство OnClientClick,
вместо onclick (это одно и то же). OnClientClick="return confirm('delete?')" Ответ #2 @Алексей Немиро 24.12.2011 23:14 Но мне необходимо не просто кнопка "ОК", а две кнопки "Да" "Нет". А скрипт такого типа почему-то не работает:А что должно пороисходить? Это код-пустышка :) Если что-то должно происходить, то только на стороне клиента, в клиентском коде. С сервером можно общаться посредством ajax. Ответ #3 @Павел 24.12.2011 23:29 Попробовал - работает! Спасибо. При нажатии кнопки "Удалить" выполняется удаление записи из БД. Этот месседж для защиты от случайного удаления. Запуск GUI-приложений из веб-сервиса. @SocrAT 23.12.2011 16:59 Написал веб сервис (C#). Из него выполняю код: string appProgID = "Word.Application"; Type typeofOPCserver = Type.GetTypeFromProgID(appProgID); if (typeofOPCserver == null) Marshal.ThrowExceptionForHR(HRESULTS.OPC_E_NOTFOUND); try { word = Marshal.GetActiveObject(appProgID); } catch (Exception exc) { word = Activator.CreateInstance(typeofOPCserver); } Type typeWord = word.GetType(); PropertyInfo propVisible = typeWord.GetProperty("Visible"); propVisible.SetValue(word, true, null); который ищет открытый ворд, если не находит, то открывает новый и делает его видимым. Так вот: 1. если запускаю из студии сервис на выполнение, в Develepment Server, то все гуд. 2. если разворачиваю в IIS, то приложение запускается, но остается невидимым. Только в процессах его вижу. А также, если приложение уже было запущено вручную, то не находит его, а все так же запускает невидимое новое. почему так? в чем проблема? где косяк мой? Ответ #1 @Aleksey Nemiro 23.12.2011 17:08 Видимо на сервере приложение запускается от имени IIS, если вообще запускается (может там сообщение о невозможности запуска появляется). Можно попробовать
запускать под конкретным пользователем. Ответ #2 @SocrAT 23.12.2011 18:33 В веб.конфиге у меня есть такая строка: <identity impersonate="true" userName ="user" password ="pass"/> И процесс ворда запускается именно от этого пользователя. Это видно через диспетчер задач. Ответ #3 @Aleksey Nemiro 23.12.2011 18:44 И заходя на сервер под учетной записью userName ="user"
password ="pass" все равно Word невидимый? Ответ #4 @SocrAT 23.12.2011 19:05 Я с него и не выходил ) Ответ #5 @Aleksey Nemiro 23.12.2011 19:26 У каждого пользователя своя рабочая область, свой Explorer. Все что запущено у юзера, находится только у него (см. через ProcessExplorer дерево процессов). Другие пользователи не могут видеть, то что видит пользователь
на своем экране Если ошибок нет, можно сделать вспомогательное приложение, которое будет манипулировать Word-ом. Скорей всего спотыкается на безопасности. Можно окно Word-а попробовать развернуть из ProcessExplorer-а и посмотреть, запущен он, или может там msgbox с ошибкой. Добавить свой ответ в эту тему · В теме есть еще 14 ответов. Смотреть все ответы. Вакансии в ITПрограммист-системотехникРоссия, Москва | Работа в офисе | 50 000.00 RUB Инженер-программистРоссия, Москва | Работа в офисе | 50 000.00 RUB Программист AccessРоссия, Москва |
Работа в офисе | 70 000.00 RUB Программист DelphiРоссия, Москва | Работа в офисе | 50 000.00 RUB Программист Haskell/C#Россия, Москва | Работа в офисе Программист РНРРоссия, Москва | Работа в офисе | 50 000.00 RUB Веб-программистРоссия, Москва | Работа в офисе | 85 000.00 RUB Web-программист, php-программистРоссия, Москва | Работа в офисе | 60 000.00 RUB Веб-дизайнерРоссия, Москва | Работа в офисе | 55 000.00 RUB Инженер-программистРоссия, Санкт-Петербург | Работа в офисе | 32 000.00 RUB Все вакансии в IT · Новости мира ITС наступающим Новым 2012 годом!
Уважаемые пользователи Kbyte.Ru! 28.12.2011 16:33 · Категория: Новости Kbyte.Ru · Источник: Kbyte.Ru Создан сверхскоростной пассивный диод для современных микросхемСовременные технологии широкополосных коммуникаций движутся в сторону оптических систем передачи сигнала. В таких системах свет в виде фотонов передается по кабелям и несет данные, которые преобразуются в электроны, когда те достигают устройства-приемника (компьютера или маршрутизатора). Однако современные системы зачастую тратят на процесс конвертации фотон-электрон времени больше, чем фотону требуется для преодоления многих километров пути по кабелям. В результате теряются драгоценные доли секунд, которые очень важны для критически важных широкополосных систем связи.
Теперь группа физиков из американского Университета Пардью создала прототип небольшого оптического диода, которому не требуется конвертировать сигналы, что позволяет значительно сократить время процессинга электронов. Технически, нечто похожее специалисты создавали и раньше, но в Пардью говорят, что создали диод стандартной конфигурации на основе кремния, что делает его пригодным для интеграции в компьютерные чипы. Разработчики говорят, что их пассивный диод не потребует от производителей дорогостоящего процесса
перестройки производства или перенастройки промышленного оборудования. 28.12.2011 16:32 · Категория: Железо · Источник: CyberSecurity.ru Intel начала поставки микропроцессоров Atom Cedar TrailIntel сегодня объявила о доступности платформы на базе процессоров Atom, ранее известной под кодовым названием Cedar Trail. Новая платформа позволяет создавать компактные мобильные устройства с длительным временем автономной работы. Она привносит ряд новых возможностей в нетбуки, популярные среди учащихся, доманих и других пользователей, которым нужны лишь базовые функции компьютеров и веб-серфинг. Устройства на новой платформе от Acer, Asus, HP, Lenovo, Samsung и Toshiba появятся на рынке в начале 2012 г.
Новые процессоры обладают встроенной графикой, способной обрабатывать видео высокой четкости (1080p) и воспроизводить контено Blu-ray. Согласно данным Intel, cистемы на базе новых Intel Atom предложат 10 часов непрерывной работы от батареи без подзарядки и неделю работы в режиме ожидания, позволяя использовать устройство в течение целого дня. Intel увеличила скорость работы процессора, одновременно снизив потребление энергии на 20% по сравнению с платформой предыдущего поколения, и добавила ряд новых функций:
Intel Wireless Display и Intel Wireless Music. Благодаря ним пользователи могут передавать при помощи беспроводной соединения видео, фото и музыку, хранящиеся на жестом диске, на телевизор и домашнюю аудиосистему. Функция Intel Smart Connect позволяет подключаться к интернету сразу после открытия крышки нетбука и автоматически обновлять электронную почту, Twitter и RSS-ленты даже в режиме ожидания. А Intel Rapid Start обеспечивает быстрый выход из режима ожидания и помогает сэкономить заряд аккумулятора. 28.12.2011 16:30 · Категория: Железо · Источник: CyberSecurity.ru
Подпишитесь на тематические RSS-ленты Kbyte.Ru, чтобы быть в курсе последних новостей: Основная лента · Форумы (темы и сообщения) · Visual Basic 5.0/6.0 · Visual Basic .NET · C# (Си шарп) · Delphi · JavaScript · ActionScript · ASP .NET · ASP .NET MVC Ищите Kbyte.Ru в социальных сетях FaceBook, ВКонтакте, Twitter. Если вы занимаетесь программированием, то наверняка вам пригодятся хитрые инструменты. Международный портал для программистов и разработчиков Kbyte.Ru основан в 2006 году. Целью портала является объединение программистов и специалистов IT-бизнеса, студентов и преподавателей для обмена опытом и знаниями, оказания помощи во всех делах и начинаниях в области IT. |
В избранное | ||