Reactive Extensions 2.0

Вышла релизная версия Reactive Extensions версии 2.0
На официальной странице пока предлагается скачать beta-версию, но в Microsoft Download Center уже доступна новая версия без пометки beta

Где можно использовать Rx v2.0::
  1. .NET Framework 4
  2. .NET Framework 4.5
  3. .NET Framework 4.5 for Windows Store apps
  4. Silverlight 5
  5. Windows Phone 7.1

Как правильно задать идентификатор контрола

Сразу оговорюсь – в основном речь идет об идентификаторах контролов, используемых в ASP.NET WebFormsimage

Для себя я выработал достаточно четкие правила для идентификации контролов и я к ним очень привык, но достаточно часто на различных форумах встречаю совершенно неприемлемые, как то: TextBox1, ListView5, ConfirmPassword и т.п.

Префикс – сокращенное название типа контрола, но в большей степени выражающая его функциональные особенности
Например:

  • txtPassword – здесь префикс txt показывает, что это именно текстовый контрол, при чем не суть важно как он выльется в HTML (textarea, input[type=text], input[type=password] и т.п.) – у него точно есть свойство Text
  • btnDelete – это кнопка, есть свойства Text, OnClientClick
  • listSections – этот контрол выводит список чего-либо и у него есть свойство DataSource и метод DataBind() (хотя он как бы у всех есть Улыбка)
  • placeUserInfo – панель которую можно скрыть, хотя именно для панелей я иногда писал префикс panel

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

Отправка Push уведомлений для IPhone из .NET

Вкратце:
  • Сообщение отправляется из приложения по SSL в APNS
  • Формат сообщения: идентификатор устройства и тело сообщения

Простой вариант отправки:
Необходимо скачать специальную библиотеку http://code.google.com/p/apns-sharp/ или установить ее через nuget командой: PM> install-package APNS-Sharp

Пример использования библиотеки (ее не использовал, просто нагуглил):
string p12FileName = "C:\apple_ios_certificate.p12"; // путь к сертификату
string p12Password = ""; // пароль сертификата
bool sandBox = true; // отправлять данные в песочницу
int numConnections = 1; // кол-во коннектов
var notificationService = new NotificationService(sandBox, p12FileName, p12Password, numConnections);
var deviceToken = ""; // токен/идентификатор устройства
var notification = new Notification(deviceToken);
notification.Payload.Alert.Body = "Some message";
notification.Payload.Sound = "beep.wav";
notification.Payload.Badge = 1;
if (notificationService.QueueNotification(notification)) {
    // queued the notification
} else {
    // failed to queue
}
// This ensures any queued notifications get sent befor the connections are closed
notificationService.Close();
notificationService.Dispose();

На самом деле свой вариант (по крайней мере для меня) предпочтительнее, т.к. приведенная в примере библиотека притормаживает поток на каждом уведомлении примерно на 100 мс

Список рекомендуемой литературы: