Зашифровать web.config / Encrypt web.config

Зашифровка файла конфигурации web.config сайта IIS, как правило, нужна для скрытия строк подключения в базе данных, или настроек приложения

Зашифровка выполняется достаточно просто из командной строки:


C:\Windows\Microsoft.NET\Framework\v2.0.50727>aspnet_regiis.exe -pe "connectionStrings" -app "/siteName"

Расшифровка:

C:\Windows\Microsoft.NET\Framework\v2.0.50727>aspnet_regiis.exe -pd "connectionStrings" -app "/siteName"

Если в Default Web Site найден указанный siteName, то указанный для скрытия/расшифровки раздел обрабатывается почти моментально

Рекомендую посмотреть и второй способ шифрования http://inln.blogspot.com/2012/02/webconfig.html

IIS7 - сжатие динамического содержания / The dynamic content compression

По умолчанию модуль сжатия динамических данных для IIS7 не предустановлен, и вы не можете включить сжатие данных, о чем IIS вас уведомляет:
The dynamic content compression module is not installed


Ниже представлен ряд не хитрых шагов для использования dynamic content compression

> Start
> Administrative Tools
> Server Manager












> Roles
> Web Server (IIS)
> Add Role Services
> Dynamic Content Compression
> Next
> Install









После установки модуля - динамическая компрессия страниц становится доступна

> IIS
> Выбрать нужный сервер/сайт
> Compression
> установить флаг напротив "Enable dynamic content compression"











Теперь сжатие динамического контента работает

Если в IIS выбрать не сайт, а сервер и открыть настройки компрессии, то будет отображена форма редактирования параметров сжатия для статического содержимого (минимальный размер файла, директория для кеширования, лимит дискового пространства)

SkyDrive для Android / SkyDrive For Android

Да, теперь и у пользователей Android появились халявные 25 гигабайт в интернете.

Использовать онлайн хранилище SkyDrive на телефонах с операционной системой Android можно при помощи приложения SkyDrive Browser, доступного для скачивания из Android Market.

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

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

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

Code First EF 4.1 : Many to Many Relationship

Пока в Visual Studio нет конструктора, поддерживающего связь многие-ко-многим, хотя в Light Switch и есть эта опция (при настройке связей между источниками данных) - она все равно не работает, так и пишет - мол не поддерживается

Зато есть Code First - возможность сначала писать код, и не задумываться о создании/обновлении структуры базы данных.
Более подробно о Code First можете почитать, к примеру, на хабре

Итак, для создания связи многие ко многим в каждый класс, описывающий сущности, связанные логически множественной связью между собой добавляем свойство на связанные сущности реализующее интерфейс ICollection<ТипКлассаСвязанныхСущностей>


В конструкторе класса инициализируем свойство генерик-классом HashSet по типу связанных элементов.


Собственно можно пользоваться, промежуточная таблица, через которую собственно и идет связь многие-ко-многим, создается автоматически (рисунок ниже), так что об этом задумываться не приходится - описываем модели, используем и в БД не лазаем, как минимум в мелких проектах.


public class Emp
{
    public Emp()
    {
        Projects = new HashSet();
    }

    public int EmpId { get; set; }
    public string EmpName { get; set; }
    public ICollection Projects { get; set; }
}

public class Project
{
    public Project()
    {
        Emps = new HashSet();
    }

    public int ProjectId { get; set; }
    public string ProjectName { get; set; }
    public ICollection Emps { get; set; }
}

public class EmpContext : DbContext
{
    public DbSet Emps { get; set; }
    public DbSet Projects { get; set; }
}

class Program
{
    static void Main(string[] args)
    {
        var p1 = new Project() { ProjectName = "Fun Boat" };
        var p2 = new Project() { ProjectName = "Jumbo Jet" };
        var p3 = new Project() { ProjectName = "Free Zoo" };

        var e1 = new Emp() { EmpName = "Wriju" };
        var e2 = new Emp() { EmpName = "Wrishika" };
        var e3 = new Emp() { EmpName = "Saswati" };

        p1.Emps.Add(e1);
        p1.Emps.Add(e2);

        p2.Emps.Add(e2);
        p2.Emps.Add(e3);

        p3.Emps.Add(e3);
        p3.Emps.Add(e1);

        using (var ctx = new EmpContext())
        {
            ctx.Projects.Add(p1);
            ctx.Projects.Add(p2);
            ctx.Projects.Add(p3);
                
            ctx.SaveChanges();
        }
    }
}

Код взят отсюда

image

jQuery Lint - плагин для отладки jQuery скриптов

Больше это анализатор, показывающий слабые или неверные использования jQuery

К примеру, если мы захотим дважды вызвать у элемента последовательно один и тот же метод:

$('#place')
    .css("color""#33f")
    .css("font-weight""bold");

То Lint выдаст уведомление (в консоли):

You've called css([object Arguments]) more than once on the same jQuery object
Why not combine these calls by passing an object? E.g. css({ "font-weight": "bold", "color": "#33f" })


И очевидно он прав

Данный пример можно увидеть по ссылке http://jsfiddle.net/xq5Ct/
Для использования  jQuery Lint его лишь нужно добавить на страницу после добавления самого jQuery

Обратите внимание, что на момент написания статьи в последней версии линта была допущена ошибка. Для ее исправления замените 73-ю строку на:
selectorAdvice: "Du solltest den selben Selektor nur dann verwenden, wenn du wei?t dass sich das Ergebnis a\"ndert. Zum Beispiel, wenn du Elemente zu einer Seite hinzufu\"gst, die den Selektor erfu\"llen",


Онлайн тестирование Javascript + HTML + CSS

http://jsfiddle.net - Отличный сервис, позволяющий по быстрому накидать простую верстку, стили, скрипт, подключить нужную библиотеку, указать доктайп и проверить результат
А также Вы можете поделиться наброском с кем угодно после нажатия Save, и вести контроль версий :)

Область для работы разделена на 4 вкладки: html, javascript, css, result
В резалте выводится собранная страница, на основе предыдущих вкладок

В левой части страницы можно выбрать с каким и какой версией фреймворка вы хотите работать.
Для выбора доступны:
  • Mootools
  • jQuery
  • Prototype
  • YUI
  • Glow
  • No-Library (вот это я не понял, либо рельно есть такой фреймворк, либо используется только тот скрипт, что вы введете, скорее всего второе)
  • Dojo
  • Processing
  • ExtJS
  • Raphael
  • RightJS
  • Three (edge)
В дополнении в jQuery предлагается возможность подключить jQuery UI и jQuery Lint



Event handlers can only be bound to HttpApplication events during IHttpModule initialization

Возможно вы попробовали динамически привязаться к какому-то событию приложения, к примеру на EndRequest текущего экземпляра HttpApplication


Пути решения:
1. Реализовать свой класс, имплеметирующий интерфейс IHttpModule и обрабатывать нужное событие уже там
2. Возможно сайт работает под ASP.NET 2|4.x Integrated Pipeline. Попробуйте в пуле (или свойствах проекта) указать классическую версию
3. 
   
       validateIntegratedModeConfiguration="false"/>
   

Средство записи действий по воспроизведению неполадок


Не зря говорят, что все новое, это хорошо забытое старое

Так и утилита Problem Steps Recorder (PSR) - отличное средство для записи и передаче информации о проблемах на компьютерах пользователей, отчасти - мечта любой техподдержки, т.к. исчезает проблема глухого телефона, недопонимания

Пользователю всего лишь нужно запустить программу, нажать запись, проделать действия, при коих возникает проблема, и нажать "Отправить по email"

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

Благодаря минималистическому интерфейсу (по сути - две несущие кнопки), программой может воспользоваться даже ребенок

Пример использования:
1. в командной строке вызвать psr
2. нажать Start Record
3. произвести какие нить действия
4. Stop Record, сохранить файл
5. открыть страницу в файле

В файле представлен список проделанных шагов в виде скриншотов, комментариев к действиям при записи (какую кнопку мыши/клавы нажали, в какое поле что-то ввели и т.п.) и, в самом конце, немного информации об операционной системе

Не менее удобной возможностью является просмотр скринов в виде слайд-шоу

Также из программы можно отправить результат на почту и отключить скриншоты

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

Пример записи:

Антисоциальные сети - миф или реальность?


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

Социальная сеть - логичное и очевидное развитие интернета. В соцсетях друзья встречаются, общаются, обмениваются информацией.

Но не хотелось ли вам поделиться информацией прям со всем миром?
Можно конечно писать блог, но далеко не факт что его прочтут и будут обсуждать эрудированные в этой теме люди. 
Также вы можете побояться опубликовать, какую-нибудь необычную для вас, статью в вашем блоге или на странице социальной сети, т.к. ваш круг общения вас не поймет или поймет неправильно.

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

Таким образом рождается антисоциальная сеть, где все - авторы сообщений, модераторы и круг общения.

Можно сказать, что антисоциальный проект должен включать в себя:
1. возможность создать публичное для всех сообщение
2. возможность обсуждать какие угодно сообщения других пользователей
3. видеть обновления обсуждений
4. отсутствие социальности - кругов общения (друзья, группы, темы подписок)
5. желательно отфильтровать "нежелательных" пользователей заранее, еще на этапе регистрации

Как бета-версия антисоциальной сети разработан проект http://futusite.com/
Он включает в себя все предыдущие 5 пунктов
Регистрация пока доступна ограниченному числу пользователей, с промокодом KNOL

Чтобы понять все плюсы работы в антисоциальной сети предлагаем Вам зарегистрироваться и попробовать все самим

А что вы думаете по поводу антисоциальных сетей?

Запущена новая антисоиальная сеть

В это сети есть общая стена сообщений и просмотр обновлений, и больше ничего. По сути - один общий блог на всех
http://futusite.com/
Промокод: BSP

Could not load file or assembly

  1. Проверьте - добавлена ли необходимая сборка в проект
  2. Если dll в проекте - то есть ли права на ее чтение/исполнение из под использующей учетки
  3. Возможно эту сборку необходимо добавить в GAC (Global Assembly Cache), проще говоря в директорию c:\Windows\assembly\[Gac_64|Gac_32]
  4. Возможно загружаемая библиотека была испорчена при копировании, такое бывает, например, при выкладывании сайта по FTP
  5. Быть может библиотека скомпилирована под другую платформу, например проект запускается под Windows Se 2008 R2 x64 IIS 7.5, а сборка скомпилирована только под x86, в этом случае вам сюда

Html: Расположить элемент по центру вертикально/шоризонтально

Если все стандартные способы не помогают, то на помощь придет jQuery Plugin - Center

1. качаем сам плагин (в архиве сжатый файл jquery.center.min.js)
2. добавляем на страницу jQuery + Center Plugin
3. используем!

Использование:
Центрирование относительно родительского элемента:
$('#element-id').center();

Относительно заданного элемента:
$('#element-id').center({ against: '#some-parent' });
Начальное значение window. Можно указывать parent или jQuery selector
Тип параметра: string

CodePaste.NET

У вас когда-нибудь возникала необходимость быстро поделиться кодом, да так чтобы с подсветкой?
Проект http://codepaste.net/ как раз для этого и создан
1. вставляем код
2. постим
3. видим код с подсветкой + короткий урл для шаринга

Но стоит иметь ввиду - код будет доступен для всех

Тест на внимательность - Найти звезду


На этом рисунке спрятана одна пятиконечная звезда, составленная из нескольких фигур.
Перед началом поисков засеките время :)
Кто справится за 1 минуту, тот гений наблюдательности.
До 5 минут - очень хорошо.
5-10 минут - нормально.
Более 10 минут - наблюдательность ни к чёрту, вам пора в отпуск. 
Если вам не удалось найти звезду, ответ ниже:



ASP.NET - Путь к каталогу сайта без при Request == null

В случае если HttpContext.Current.Request == null, то HttpContext.Current.Request.PhysicalApplicationPath   не в коем случае не отработает (например на Application_Start или Application_End)

В этом случае рекомендую воспользоваться следующей возможностью:
System.Web.Hosting.HostingEnvironment.ApplicationPhysicalPath - вернет то же самое что и Request.PhysicalApplicationPath при использовании на страницах

Конвертирование IP адреса в число и обратно


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

Ниже приведены пару примеров конвертирования IP в число и обратно, используя стандартные .NET классы и MS SQL 2008


C#
string address = "192.168.0.1";

int intAddress = BitConverter.ToInt32(IPAddress.Parse(address).GetAddressBytes(), 0);
string ipAddress = new IPAddress(BitConverter.GetBytes(intAddress)).ToString();

Console.WriteLine(intAddress);
Console.WriteLine(ipAddress);

T-SQL
declare @address varchar(15) = '192.168.0.1'
declare @t bigint = 0

set @t = 
                          cast(PARSENAME(@address, 4) as bigint) +
                256 * cast(PARSENAME(@address, 3) as bigint) +
power(256, 2) * cast(PARSENAME(@address, 2) as bigint) +
power(256, 3) * cast(PARSENAME(@address, 1) as bigint)

SELECT @t

Результат один и тот же: 192.168.0.1 => 16820416
А в C# вы видите и обратное преобразование, класс IPAddress принимает в конструкторе числовое представление IP адреса, сформированное как раз по логике, отображенной в SQL запросе