Отладка кода SharePoint 2007 года

Лучшей практикой было бы заставить JSON описать объект немного лучше:

"Unit":{
    "UnitYear":"2018",
    "UnitModel":"F250 Super Duty"
}

"Asset":{
    "AssetYear":"2019",
    "AssetModel":"Corvette Stingray"
}

Имея то, что у вас есть сейчас, вы можете добавить метод к каждому классу:

public bool IsValid()
{
    return Model != null && Year.Date == DateTime.MinValue;
}
[ 118] А затем сделайте следующее для каждого класса, который вы хотите протестировать:

        var stringUnit = "{\"UnitYear\":\"2018\",\"UnitModel\":\"F250 Super Duty\"}";
        var assetUnit = "{\"AssetYear\":\"2019\",\"AssetModel\":\"Corvette Stingray\"}";


        var unit = Newtonsoft.Json.JsonConvert.DeserializeObject<Asset>(stringUnit);

        if (unit.IsValid())
        {
            Console.WriteLine(unit.AssetModel);
        }
        else
        {
            Console.WriteLine("Json can't convert this");
        }

То, на что я был бы более склонен взглянуть, было бы примерно так:

Создать тип Enum и Unit Class:

public class Unit
{
   public DateTime DateTime { get; set; }
   public string Model { get; set; }
   public UnitType UnitType { get; set; }

   public bool IsValid()
   {
       return Model != null && DateTime == DateTime.MinValue || UnitType != UnitType.Unknown;
    }
 }

И затем создайте Enum для JSON Converter от Newtonsoft:

[JsonConverter(typeof(StringEnumConverter))]
public enum UnitType
{
    Unknown = 0,
    Asset,
    Unit
}

И затем вы можете попытаться десериализовать все JSON точно так же: [ 1112]

string jsonString = "{\"Year\":\"2019\",\"Model\":\"Corvette Stingray\",\"UnitType\":\"Asset\"}";
var resultUnit = JsonConvert.DeserializeObject<Unit>(jsonString);

if (resultUnit.IsValid())
{
    // This works, do the right thing. When the type matters access resultUnit.UnitType
}
else
{
   //Throw an exception, really badly formed or an Unknown type
}
5
задан Kyle Trauberman 28 September 2008 в 15:53
поделиться

5 ответов

От сообщения в блоге Andrew Connell на предмете:

Присоединение отладчика к блокам GAC'd: "Почему мои точки останова не поражают?!?!" Когда-нибудь там? Меня также..., что ЛАВАШ, который является! Что продолжается? Ну, блоки находятся в GAC, и отладчик Visual Studio не видят отладочной информации (иначе: *.pdb). Если Вы не прошли проблему настроить хранилище символьной информации, куда все Ваши PDBs идут, необходимо будет поместить отладочную информацию в то же местоположение как блок. Прием находит папку, которая содержит Ваш DLL в GAC.

Папка c:\windows\assembly не является реальной папкой, это - виртуальная папка. Для получения до папки REAL сделайте следующее:

  • Запустите» выполнение
  • %systemroot %\assembly\gac [ВХОДЯТ]

Это откроет папку GAC. Теперь, введите по абсолютному адресу вокруг, пока Вы не находите папку, которая похожа на это (Вы, возможно, должны были бы подпрыгнуть одна папка и погружение в папку MSIL): [имя файла блока-.DLL расширение] [версия блока в формате> #.#.#.#] __ [маркер открытых ключей блока].

Когда Вы находите, что папка, откройте его, и Вы будете видеть свой блок. Скопируйте файл PDB в ту папку и затем присоедините отладчик для некоторой радости отладки!

3
ответ дан 13 December 2019 в 22:19
поделиться

Не помещайте свои блоки в GAC, помещайте их в каталог bin - затем можно использовать VS удаленный отладчик. Google, создающий.WSP файлы для распределения.

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

2
ответ дан 13 December 2019 в 22:19
поделиться

Лучший способ (даже тот, подтвержденный Microsoft), состоит в том, чтобы иметь Windows 2003 Server с Sharepoint как Ваша локальная машина Разработки.

См. также эту тему.

3
ответ дан 13 December 2019 в 22:19
поделиться

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

При трассировке работ хорошо, поскольку нормальная отладка не является действительно опцией.

То, что еще я делаю, попытаться разработать всю логику (материал, который не является зависимым SharePoint) на просто обычном сайте asp.net, затем интегрируйте его в SharePoint после того, как это тестируется.

Надежда, которая имеет смысл.

Вы говорите о разработке веб-частей? Пользовательские страницы? Что-то еще?

1
ответ дан 13 December 2019 в 22:19
поделиться

Я рекомендую разработать на сервере Windows 2003 с Sharepoint. Это - стычка для отладки на удаленном сервере. Можно сделать это в виртуальной машине с VMware или Виртуальном ПК, если у Вас есть XP на Вашей рабочей станции.

1
ответ дан 13 December 2019 в 22:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: