Релиз SharePoint Dispose Check 1.3.1 состоялся сегодня!

Введение

Наверное все помнят нашумевший dispose best practices article in the SDK, после которого подход к работе с объектами sharepoint немного изменился. Сегодня увидел свет инструмент, позволяющий проверить насколько правильно вы работаете с практиками утилизации объектов.

Описание

Использовать утилиту очень просто:

SPDisposeCheck <путь к сборкам> -debug –xml <файл отчёта>

Материалы

Скачать утилиту можно по адресу http://code.msdn.microsoft.com/SPDisposeCheck


IDE на прокачку (Pimp My IDE): Часть 1. Работаем с цветом

Введение

1170880900_pimp_my_ride_all[1] Наверное все прочли сегодня про ASP.NET MVC RC1 в блоге у ScottGu. Ну и наверное некоторым из вас приглянулась его цветовая схема Visual Studio. Так что думаю в этой статье я побуду немного XZibit’ом и под качёвый биток мы совершим действо над вашей немного потрепанной IDE.

«IDE на прокачку от butaji»: Идея поста придется по душе всем разработчикам, у которых желания фатально не совпадают с возможностями! Хозяин волшебного гаража (он же известный блогер butaji) подыскивает счастливчика, которому не повезло быть владельцем максимально «убитой» IDE и повезло встретиться рэпперу на пути. Любовь к музыке, наличие ржавой консервной банки на колесах и невозможность своими силами превратить ее во что-нибудь более достойное – это ваш отличный шанс попасть в программу «IDE на прокачку!» Счастливчик получает из ремонта самый настоящий красавец-IDE и из всеобщего посмешища превращается во всеобщий объект зависти, причем совершенно бесплатно. (С) MTV

Суть да дело

Итак, как мы решили, у нас есть IDE и желание преобразить её немного.

Займёмся же производственным процессом:

  1. Посмотрим, какими же цветовыми схемами пользуются коллеги http://www.hanselman.com/blog/VisualStudioProgrammerThemesGallery.aspx
  2. Так же посмотрим географическую привязку счастливых обладателей эффектных схем http://idehotornot.ning.com/
  3. Если ничего подходящего не нашлось, не стоит расстраиваться, подобрать нужные цвета и сгенерить из них схему можно здесь http://www.frickinsweet.com/tools/Theme.mvc.aspx

Мои предпочтения

Буду честным, на пост меня подвигло то, что у Скотта цветовая схема немного походит на ту, что использую я:

image

Называется моя цветовая схема Distant Shores 2008.

Она имеет темный бэкграунд, а это не напрягает глаза, следовательно они не сильно устают за долгое время.


Boo 0.9 уже здесь!

Введение

 

Вчера Bamboo в своем блоге сообщил о релизе Boo 0.9. Стоит обратить внимание на то, что данный релиз заметно преображает язык, делая его более удобным.

Ключевые обновления

 

Основными “фишками” новой версии являются:

  • Генератор макросов [BOO-1077], который больше не ограничивает макросы возвращением единственного значения, либо блока, а позволяет возвращать неограниченное количество веток с помощью yield:
    macro printLines:
        for arg in printLines.Arguments:
            yield [| System.Console.WriteLine($arg) |]
        
    printLines "silly", "silly", "silly"
  • Nestable-макросы [BOO-1120] – описания макросов теперь могут быть вложенными, и поддерживают зависимости от контекста:
    macro given:
        macro when:
            yield [| print "given.when" |]
        yield 

    macro alert:
        macro when:
            yield [| print "alert.when" |]
        yield 
   
    given:
        when // given.when
    
    alert:
        when // alert.when
  • Макросы – как члены типа [BOO-415] – макрос может быть использован в описании тела типа:
    macro ThreadStatic:
        case [| ThreadStatic $name as $type |]:
            yield [|
                [System.ThreadStatic] static $name as $type
            |]
    
    class Environments:
        private ThreadStatic _current as Environment
  • Шаблон соответствия [BOO-1106] – простой, но мощный шаблон соответствия объекта с макросами match/case/otherwise:
   import Boo.Lang.PatternMatching
    
    def Eval(e as Expression) as int:
        match e:
            case Const(Value):
                return Value

            case InfixExpression(Operator: "+", Left, Right):
                return Eval(Left) + Eval(Right)
                
            case InfixExpression(Operator: "-", Left, Right):
                return Eval(Left) - Eval(Right)
  • Поддержка универсальный расширений методов (generic extension methods знакомых нам по C#) [BOO-937] – подобные LINQ расширения:
    import System.Linq.Enumerable from System.Core
    
    [Extension]
    def MakeString[of T](source as T*):
        return join(source, ", ")
    
    evenDoubles = range(10).Where({ i as int | i % 2 == 0 }).Select({ i as int | i * 2 })
    print evenDoubles.MakeString()
  • Общий параметр ограничений [BOO-935] и общий параметр вывода типа [BOO-1102]:
def Using[of T(System.IDisposable)](value as T, block as System.Action[of T]):
        try:
            block(value)
        ensure:
            value.Dispose()
    
    Using(System.IO.File.OpenText("TFM.TXT"), { reader | print reader.ReadLine() })
  • Строгий режим [BOO-1115] – строгий режим меняет некоторые правила компилятора: по-умолчанию все типы становятся private, параметры метода и возвращаемые значения должны быть обязательно объявлены
  • Ассиметричные свойства видимости доступа [BOO-1094]
    class Song:
        Name as string:
            public get:
                return _name
            internal set:
                _name = value
        ...
    def ToHex(n as int):
        return "0x${n:x4}"
    
    print ToHex(42)
  • Поддержка SilverLight [BOO-1117] – пример Владимира Лазунина с его Тетрисом, рабочий проект которого нуждается только в Boo.Lang.dll весит ~46 KB, а аналог, исполненный на IronPython подцепляет библиотеки DLR и весит в целом ~1.15 MB.

Материалы

 

Статья подготовленная по

http://blogs.codehaus.org/people/bamboo/archives/boo.html


SPVisualDev – инструмент Sharepoint разработчика

Введение

Я, как разработчик под платформу Sharepoint, постоянно сталкиваюсь с такими задачами, как создание большого количества однообразного XML-кода (к примеру для описания Feature, WePart, Content Type, List Template и т.д.) что не совсем удобно. Для облегчения выполнения этих задач есть несколько инструментов:

  • один из них это Visual Studio Extensions for SharePoint (VSeWSS), я так и не смог привыкнуть к работе сним, в связи с непрозрачностью генерируемых на выходе решений, что значительно уменьшало гибкость разрабатываемых решений
  • следующий инструмент STSDev – фактически это набор шаблонов для проектов в Visual Studio, является внешней утилитой, удобен в использовании, но полезен лишь на начальной стадии знакомства с платформой
  • ну и последний, на котором хотелось бы заострить внимание, это SPVisualDev

Подробнее

 

Данный продукт представляет собой расширения для Visual Studio, из чего следует тип проектов и прочие удобства, о которых подробнее:

  • Синхронизация в режиме реального времени локальной копии и папки 12
  • Простой способ добавления новых фич в проект, а так же редактирование их свойств и элементов в графических формах (а не XML-файлах)
  • Легкость в активации/деактивации фич из контекстного меню в проекте VS
  • Автоматическая генерация и синхронизация обработчиков фич
  • Набор стандартных проектов и элементов, включая веб-части, обработчики событий, шаблонные страницы и т.д.
  • Отладка фич для страниц приложения с возможностью присоединения дебагера VS к просмотриваемой странице
  • Интеграция с отличных инструментом для создания WSP-пакетов WSPBuilder

FileDownload[1]Так же приложение имеет исчерпывающее количество сопроводительной документации и даже Visual How-to.

Настоятельно рекомендую поставить и попробовать в деле и почувствовать насколько приятно работать с этим инструментом.

Однако это не панацея, а следовательно всё, что не предусмотрено инструментом, придется делать самостоятельно.


Codeplex: Scrum Dashboard

Введение

Те кто практикует Scrum, ну или хотя бы читал литературу по Scrum, должны знать что такое Scrum Dashboard (“Доска задач”). Из моего опыта обычно для синхронизации того, что висит в её качестве у Вас на стенке, либо стоит рядом с ней, используют wiki-узлы.

Однако я не раз задумывался о том, как хорошо бы было если бы электронный вариант (написанный к примеру на Silverlight) был точной копией этой доски. Конечно я даю себе отчёт в том, что никакая электронная версия не заменит того, вокруг чего ведутся “живые” дискуссии, но всё таки, неплохо бы было иметь копию всегда перед глазами, если географически ты удален от доски.

Суть

 

Ну и конечно, всё, что можно придумать, можно так же попробовать найти на Codeplex.

FileDownload[1]

Сайт проекта http://www.codeplex.com/scrumdashboard

Приложение выполнено на ASP.NET 3.5 SP1.

Используемые технологии:

  • ASP.NET Ajax
  • Ajax Toolkit
  • Ajax web services
  • Entity Framework
  • SQL Server

Все данные хранятся в Team Foundation Server 2008, с установленными шаблонами “the Scrum for Team System version 2”, используя доступ по API TFS веб-сервисов, так же реализованна RSS-синдикация.

Материалы

 

  1. Скачать приложение можно здесь http://www.codeplex.com/scrumdashboard/Release/ProjectReleases.aspx?ReleaseId=16957
  2. Начать изучать Scrum & XP можно с этой книги https://butaji.wordpress.com/2008/12/02/scrum-и-xp-заметки-с-передовой/

Windows 7: При отключенном UAC перестают работать гаджеты

Проблема

 

Сегодня отключил UAC. Всё отлично, но пропали гаджеты с рабочего стола.

Решение

 

Есть специальные фиксы для sidebar.exe в интернете для решения этой проблемы, но всё решается намного проще:

  1. Открыть редактор реестра regedit.exe
  2. Перейти к ветке HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Sidebar\Settings
  3. Создать новый параметр DWORD с названием AllowElevatedProcess
  4. Установить этот параметр равным 1
  5. Закрыть редактор реестра. Ваши гаджеты должны появиться. Для продолжения работы не нужна даже перезагрузка.

Материалы

 

Ссылка на оригинал статьи:

http://chris123nt.com/2009/01/19/fix-windows-7-sidebar-with-uac-off/


Цикл статей о N-уровневой реализации Веб-приложений на основе ASP.NET 3.5

Введение

 

Наверное большинство читателей, использующих ASP.NET создают многоуровневые приложения, кто же этого не делает, рекомендую начать, т.к. это, как минимум, облегчит Вам жизнь.

Содержание

 

Хотелось бы обратить внимание на цикл статей, написанных Imar Spaanjaars, подробно описывающих создание многоуровневых приложений на ASP.NET 3.5, а так же сопровожденных большим количеством практических примеров.

Previous Series
Building Layered Web Applications with Microsoft ASP.NET 2.0 — Part 1 (3)
Building Layered Web Applications with Microsoft ASP.NET 2.0 — Part 2 (4)
Building Layered Web Applications with Microsoft ASP.NET 2.0 — Part 3 (5)
Custom Sorting with N-Layer Design Classes and the GridView (6)

Current Series
N-Layered Web Applications with ASP.NET 3.5 Part 1: General Introduction (7)
N-Layered Web Applications with ASP.NET 3.5 Part 2: Introducing the Validation Framework (8)
N-Layered Web Applications with ASP.NET 3.5 Part 3: Advanced Validation Topics (9)
N-Layered Web Applications with ASP.NET 3.5 Part 4: Sorting, Paging and Filtering (10)
N-Layered Web Applications with ASP.NET 3.5 Part 5: Dealing with Concurrency
N-Layered Web Applications with ASP.NET 3.5 Part 6: Security


Codeplex: Очередной Add-In для Reflector’а

Сегодня на Codeplex нашёл плагин, который позволяет рефлектору интерпритировать сборки в IronPython. Довольно таки интересно.

image

На рисунке интерпретирована сборка Boo в IronPython.

Ссылка на релиз http://www.codeplex.com/ipreflector.


Что такое ALT.NET?

Введение

По многочисленным WTF от коллег, хотел бы вкратце прояснить, а что же это такое. А дальше решайте сами, интересно Вам это или нет.

Содержание

 

ALT.NET — Альтернативные инструменты и подходы к разработке на .NET.

Инструменты и подходы перечислены ниже в табличке HOTorNOT.

Hot Not
Castle, ActiveRecord,
NHibernate
DataSets, Dataset Designer, Entity Framework, MS Application Blocks
MVC,NUnit,MonoRail Web Forms, SCSF, VSTS, MSTest
XP, TDD, Scrum MSF Agile, MSF For CMMI
Evolutionary Design and Development Big Design Up Front
Ruby + IronRuby, Python + IronPyton, DLR, Silverlight(?) ?
OR\M (NHibernate, LLBLGen  etc..) DLinq, Data Access Block, DataSets, Plain ADO. NET
Open Source (Mono, SourceForge) Application Blocks, CodePlex
MVC and MVP (RoR, MonoRail..) Web Forms, CAB, Smart Client Factory
CVS, SVN VSS, VSTS Source Control
Build Automation and CI
(CI Factory, NAnt, FinalBuilder, CruiseControl..)
Team Build
TDD and Unit Testing
NUnit, MbUnit, RhinoMocks, NMock, TypeMock
MSTest for unit testing, VSTS
Subtext, DasBlog, WordPress, TypePad, Blogger, FeedBurner Microsoft MSN Spaces, Community Server(?)
Simplicity in Design P&P
Working at Google Working at MS
Google Gears Smart Client, MS Ajax
.NET 3.X (WF, WPF. Silverlight) .NET 2.0
DI, IoC, Spring for .NET Object Builder
Conferences:
OSCon, RubyCon, Code Camps, DevTeach..
VSLive, TechEd, DevConnections..

Считаю, что необходимо как минимум ознакомиться со всеми перечисленными понятиями как в правой, так и в левой колонках, следуя принципу анализ-синтез-best practices.

Материалы по теме

 

  1. Табличка любезно позаимствована здесь http://weblogs.asp.net/rosherove/archive/2007/06/04/alt-net-alternative-tools-and-approaches-to-mainstream-net.aspx
  2. Страница сообщества ALT.NET http://altdotnet.org/
  3. Статья в журнале MSDN “Что такое ALT .NET?” by Джереми Д. Миллер (Jeremy D. Miller) http://msdn.microsoft.com/ru-ru/magazine/cc337902.aspx
  4. Активно развивающаяся группа ALT.NET на Yahoo Groups http://tech.groups.yahoo.com/group/altdotnet/

Как закрыть доступ на просмотр системных страниц и страниц списков Sharepoint для анонимных пользователей?

Полезный пост от Татьяны Сметаниной http://blogs.technet.com/tatianasv/archive/2009/01/20/3187270.aspx

Цитирую:

Несколько месяцев назад, рассматривая публичные сайты сделанные на MOSS 2007, меня удивляла одна вещь. Как на этих сайтах закрывают пользователю доступ к страницам просмотра списка, элементов списка, а так же к странице "Просмотр содержимого узла". Страницы эти как правило выбиваются из общего дизайна и для публичного сайта давать их на просмотр пользователям не очень хорошо.

Все оказалось очень просто. Есть стандартная фича ViewFormPagesLockdown  которая и закрывает анонимным пользователям доступ на системные страницы и страницы работы со списками типа /_layouts/viewlsts.aspx">http://<адрес>/_layouts/viewlsts.aspx, /Lists/News/DispForm.aspx">http://<адрес>/Lists/News/DispForm.aspx ..

Фича активируется для коллекции узлов. Сделать это можно используя stsadm, или добавив в секцию SiteFeatures в файле onet.xml шаблона узла.

Удачного сайтостроения!