alex.algel

alex.algel
Карма 575
Имя Алексей
Возраст Неизвестно
Сайт http://alexey-algel.blogspot.com
Twitter Неизвестно
Участвует в проекте 1021 дн., 21 час., 47 мин.
Последняя активность 682 дн., 12 час., 52 мин. назад
О себе ничего не указано

Ответы

Новые Лучшие
1
2
3
4
Перейти к вопросу →

Выдержка из МСДН:

ApplicationException - Это исключение выбрасывается при происхождении устранимой ошибки приложения. Пользовательские приложения, а не среда CLR, выбрасывают пользовательские исключения, производные от класса ApplicationException. Класс ApplicationException отличает системные исключения от исключений, определяемых приложениями.

Если проектируется приложение, которому необходимо создавать свои собственные исключения, рекомендуется делать их производными от класса Exception. Изначально предполагалось, что пользовательские исключения должны наследовать класс ApplicationException, однако на практике это не имеет особого значения.

Исключение ApplicationException использует результат HRESULT COR_E_APPLICATION, имеющий значение 0x80131600.

Перейти к вопросу →

Минимизировать SQL-код БД имеет смысл, если приложение не должно зависеть от сервера БД. Например, когда приложение должно уметь работать с MS SQL Server, Oracle и т.д. В этом случае проще всю логику реализовать в самом приложении.

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

Перейти к вопросу →

Если используется Visual Studio, то открываем свойства проекта, переходим на вкладку Build Events, там прописываем путь к генератору, в поле Pre-build event command line.

Тоже самое можно сделать вручную в файле проекта (MSBuild). Для этого в конец файла (перед закрывающимся тегом Project) нужно добавить такой код:

<PropertyGroup>
    <PreBuildEvent>$(SolutionDir)/[ПУТЬ К ФАЙЛУ]</PreBuildEvent>
</PropertyGroup>

Здесь используется макрос $(SolutionDir), который позволяет задать путь относительно корня решения. Полный список макросов можно посмотреть в MSDN.

Перейти к вопросу →

В методе RenderWebPart, помимо генерации разметки, можно поместить содержимое картинки в кэш (System.Web.Caching.Cache) установив таймаут, например 1 минуту.

В разметку также включить теги для картинок вида:

<img src="getimage.aspx?id=12345"></img>

И написать HttpHandler который будет получать картинку по ключу из кэша и отдавать ее клиенту.

Перейти к вопросу →

Попробуй так:

[DataContract(Namespace = "")]
[KnownType(typeof(HashHead))]
[Serializable]
public abstract class JsonHead: ISerializable
{
  public virtual void GetObjectData(SerializationInfo info, StreamingContext context)
 {}
}

KnownTypeAttribute Задает типы, которые должны распознаваться DataContractSerializer при сериализации или десериализации указанного типа.

Перейти к вопросу →

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

Скачать вместе с примерами и документацией можно здесь: http://www.codeplex.com/MEF Далее я приведу короткий пример из документации для лучшего понимания, что такое MEF.

Итак, что дает MEF? Рассмотрим первый пример из документации к проекту. Первый кусок кода описывает простое свойство, которое влияет на заголовок кнопки.

[Import(«ButtonCaption»)]
public String ButtonCaption
{
  get { return theButton.Content.ToString(); }
  set { theButton.Content = value; }
}

Обратите внимание, что это свойство помечается атрибутом [Import(«ButtonCaption»)]. Это, в своем роде, отметка того, где данные могут быть изменены через внешние расширения.

Далее определяется простейшее расширение:

public class ExampleStringProvider
{
  [Export(«ButtonCaption»)]
  public String providedCaption
  {
    get { return «MEF Hello World!!»; }
  }
}

Как видно из кода, в классе определен источник данных через [Export(«ButtonCaption»)], который указывает, что данный класс умеет устанавливать значения заголовка для кнопки.

В конце концов, оба куска кода смешиваются, для того, чтобы встретить друг друга:

public MyHelloWorld()
{
  InitializeComponent();
  CompositionContainer container =
             new CompositionContainer();
  container.AddComponent<MefHelloWorld.MyHelloWorld>(this);
  container.AddComponent(new
   ExampleStringProvider());
  container.Bind();
}

Данный код регистрирует взаимосвязанные компоненты в контейнере (composition container) и, вызовом метода Bind, производит связывание данных из расширения на имеющиеся свойство. Как вариант, класс расширения ExampleStringProvider можно заменить на другой класс, который предоставляет иной функционал, например, который вместо текста выводит дату:

    public class DateStringProvider
    {
      [Export(«ButtonCaption»)]
      public String providedCaption
      {
        get { return DateTime.Today.ToString(); }
      }
    }

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

Взято с хабра

Перейти к вопросу →

Боюсь что никак.. Я сохранял текст как есть, а потом обрабатывал своей утилиткой, которая вырезала все лишнее.

Перейти к вопросу →

С помощью метода-расширения:

    public static class UriExtensions {
    public static Uri AddQueryParameter(this Uri uri, string name, object value) {
        var builder = new UriBuilder(uri);
        if(builder.Query!=null&&builder.Query.Length>1) {
            builder.Query = string.Format("{0}&{1}={2}", builder.Query.Substring(1), name, value);
        }else {
            builder.Query = string.Format("{0}={1}", name, value);
        }
        return builder.Uri;
    }
}

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

var uri = new Uri("http://alexey-algel.blogspot.com/search")
        .AddQueryParameter("updated-max", new DateTime(2010, 1, 24, 23, 10, 0).ToString("yyyy-MM-ddTHH:mm:sszzz"))
        .AddQueryParameter("max-results", 7);
Console.WriteLine(uri.ToString());

В результате получится такая строка:

http://alexey-algel.blogspot.com/search?updated-max=2010-01-24T23:10:00+03:00&max-results=7
Перейти к вопросу →

Есть очень неплохая статья на русском о том как встроить логику сжатия трафика, не меняя логики приложения. Данное решение использовал в своем проекте.

Перейти к вопросу →

Безусловно Макконнелл Стив. Совершенный код одна из лучших книг по программированию.

Макконнелл Стив. Совершенный код


1
2
3
4
v1.7.123.556
© 2009—2010 CodeHelper FAQ | О сайте | Обратная связь | История изменений | Статьи
Creative Commons LicenseМатериалы сайта распространяются под лицензией Creative Commons Attribution-Share Alike 3.0 Unported.