Radi Atanassov

SharePoint MCM, MVP, MCT and owner of OneBit Software

SharePoint 2010 Ignite Training - Петък

Последният ден от трейнинга... Всички бяхме изморени от твърде много информация, а в Петък темите бяха най-сложни. Научих следните неща...

SharePoint 2010 има едно ново понятие “Sandboxed Solutions”. Денят започна с разглеждането на този нов тип пакет съдържащ решението. Sandboxed Solutions са решения, които работят под отделен, сигурен процес. Sandbox средата ни позволява да сме сигурни, че кодът който пускаме в фермата няма да засегне елементи извън сайт колкцията в която се пуска. Тази среда също ни гарантира, че некачествен код няма да засегне цялата ферма – процесът под който работи тази среда ще се погрижи да предотврати проблеми. Администратори могат да конфигурират ресурсите, с които Sandboxed Solutions разполагат – много интересна функционалност.

Всичките тези качества и предимства си идват с цена – има граници на възможностите на едно Sandboxed решение. Една от тези е, забраната на решението да качва файлове в 12 hive-a (14 hive…). Това има смисъл, тъй като решението трябва да работи в пълна изолация, а всичко в този hive е споделяно с цялата ферма. Друго ограничение е самият обектен модел е съкратен – не се работи с нищо над SPSite, а самият SPSite обект е създаван от околния процес и такъв не може да се създаде от програмист – само се употребява на готово. Повиквания към SPSecurity обекта съшо са забранени.

Работа с Sandboxed Solutions ще предаде много добри знания за всеки .NET developer, тъй като решението работи под CAS, и като разработчици ще трябва да се вмъкваме в позволимите заявки и методи. Истина е, че много малко разработчици пускат своя код под CAS policies.

След лабораторно упражнение денят продължи с една много добра лекция на тема Security в SharePoint 2007. Woulter ни припомни как всъщност работи SharePoint от гледна тояка на права. Разгледахме системните акаунти под които работят SharePoint процесите, и ролята на SHAREPOINT\System акаунта (господ). Разгледахме и ACL моделът на SharePoint 2007.

Всичко това беше супер въведение към промените, които SP2010 носи със себе си. В 2010 целият модел е променен с по-модерен Claims-based Security Model. Това е нов модел на права в .NET Framework 3.0, който в случая с SharePoint 2010 отделя SharePoint от зависимоста с своя authentication provider. WSS беше зависим от Windows AD провайдера, или от Forms Based Authentication на .NET. Ползите са много, например поддържането на повече от един authentication provider за един URL (спомняте си extend web application за FBA и конфигуриране на интернет сайт за редактиране от AD потребители), и предаването на идентичност без конфигурирането на Kerberos delegation.

Това което е важно за мен, е че самият PeoplePicker поддържа тази функционалност и ще може да бъде използван в хостинг сценарии.

Обсъдихме и възможностите за разширяване – създаване на свой провайдер на claims. Сценария на интегриране между SharePoint и Live authentication ще е интересен.

 

Следващата тема беше на тема ъпгрейд на код от предишна версия – отново нещо, за което съм много емоционален. Вижте този блог: Цената на upgrade – не я пренебрегвайте!

Първото нещо, което разгледахме е възможноста за import на решения от VSeWSS – това е add-in за Visual Studio 2008, който така и не излезе от CTP. Проекти за 2007 ще могат да бъдат ъпгрейдвани за Visual Studio 2010, но това не гарантира по никакъв начин, че решението ще работи. Структурата на решението се запазва – същите features ще ги получите.

Много съм развълнуван от поддръжката на SharePoint решения в Visual Studio 2010. В новите SharePoint типове проекти интерфейса предлага feature designer и package explorer – два инструмента, които улесняват работата с пакетирането на едно решение.

Вобще не бях впечатлен от идеята за Visual Web Parts – това не е нищо ново. Visual Web Part е template с ASCX control, в който има 3 реда код който зарежда този ASCX control в обикновен web part. Това го имаше и в 2007. Новото е, че IDE-то наистина улеснява създаването, но от гледна точка на SharePoint няма нищо ново. Тази функционалност трябваше да бъде първото нещо, което показват на Visual Studio 2010 conference, а не на SharePoint Conference 2009 (: Всияко, според мен, е чист маркетинг с цел промоция на SharePoint development. Добър ход от Майкрософт – те целят именно това, и са го измислили по ефикасен начин – маркетингова операция без много необходимост от промени дълбоко в ядрото на SharePoint.

Обсъждахме евентуалните проблеми, с които бихме се спречквали при ъпгрейд на решение:

·         STP файлове няма да могат да се ъпгрейдват – вобще не ме е жал за консултанти, които ги използват – много ги мразя.

·         Промените в user interface на SharePoint – макар, че има backwards compatibility interface, ако искате да ъпгрейднете решението като хората ще трябва да поработите по CSS и самия markup.

·         На новият обектен модел може да липсват методи, които ползвате

·         Научих и че код, който се повиква от timer jobs трябва да бъде прекомпилиран

·         Код, който работи с SSP (SSP е премахнат)

 

Със сигурност има и други неща...

Последната тема от цялото събитие – Application Lifecycle Management. Може би най-полезният урок за разработчиците. Цялата тема беше изпълнена с upgrade, test, trial, fix сценарии. SP2010 предлага подобрения, които правят разработването на проекти по life-cycle модел по-възможни.

На първи фокус беше визията за съвместна работа между инструментите за работа – SharePoint Designer 2010, Visio 2010 и Visual Studio 2010. Когато краен потребител редактира сайт, може директно от браузера да се отвори SharePoint Designer 2010 в контекст, и да се продължи от там работата. След редактиране, един сайт може да се запази като WSP template и да се премести за работа в Visual Studio 2010 – невероятна функционалност. Разработчик може да го поеме и да продължи работата. От VS2010 може да се качи и в Source Control (TFS), и от дам да се качи в тестова среда. Всико е така направено, че да има логична последователност и възможност за цялостед development lifecycle.

Самите features вече поддържат и версии, нещо което не работеше в 2007. Версиите на features поддържат и зависимости между други features – може да се конфигурира, така че версия 2 на даден feature да се нуждае от версия 5 на друга. Ще ми е интересно да разгледам и опитам тази функционалност по подробно – аз лично правя upgrade програматично и ще е новост за мен. Дано ми спести време.

Общо взето това беше, всички бяхме изморени, някой си тръгнаха по рано за да хванат полети и така.

Аз останах до Неделя, да мога да преразкажа всичко което научих и да поразгледам Берлин. Чуден град, чудесна бира...

 

Линкове към останалите дни:

SharePoint 2010 Ignite Training - Понеделник
SharePoint 2010 Ignite Training - Вторник
SharePoint 2010 Ignite Training - Сряда
SharePoint 2010 Ignite Training - Четвъртък
SharePoint 2010 Ignite Training - Петък

 

SharePoint 2010 Ignite Training - Четвъртък

Започнахме четвъртия ден от трейнинга с разглеждането на новостите в ECM дяла на SharePoint 2010. Подобренията в тази сфера според мен за ужасно важни поради следните причини:

·         Силни функции в ECM ще позиционира SP2010 на по-висше ниво спрямо конкурентските платформи на IBM и Oracle, и ще помогне на SP2010 да навлезе по-дълбоко в enterprise сферата

·         В ECM влиза и document management, едно от най-често срещаните приложения на SP2007, всяко подобрение там е значително. В България (не само) едно от първите приложения на SharePoint в една компания са с цел управление и съхранение на документи.

·         В ECM влиза и WCM, което би засилило използването на SharePoint като платформа за интернет страници.

·         Като предишен работник в консултантска фирма, фокусираща се предимно в ECM пространството, недостатъците на SP2007 са нещо много познато за мен. Те са малко, но често съм се сблъсквал с пречки и силно се интересувам от новостите. На всичките си бивши ECM проекти вече мога да предложа нещо по атрактивно и функционално.

 

В първата част от ECM темата разгледахме WCM. За съжаление не ми направи впечатление, че новостите са много – всичко изглеждаше като подобрения на съществуващи функции. Повечето са свързани с новият интерфейс и fluent начин на работа:

·         Директното редактиране на съдържание на самата страница

·         AJAX прозорци вместо post-backs

·         Самият asset picker е подобрен – сега е лесно да се намерят картинки и се интегрира с т.н. Asset Library за лесно качване на картинки от компютър

·         Ribbon за познато и предсказуемо място на командни бутони

·         По-добър Rich Text Editor

·         Майкрософт целят самия HTML markup да е по стандарти (W3C).Според мен, единствено може да правим коментари по тази тема, когато излезне версия за пазара.

Това, което ми направи впечатление от техническа гледна точка, е че Pages библиотеката вече поддържа папки. В 2007 липсата на папки беше проблем когато един сайт има много страници – в списъците в 2007 беше препоръчително броят на обектите да е под 2000, а като нямаше папки ситуациите с повече страници водеше до проблеми. Това, което не разбрах, е дали “Pages” библиотеката може да се преименува. Някой фирми не искат “Pages” в самите URL’s на страниците си (разгледайте ASP.NET Url Rewriting за да преодолеете този проблем).

Моят любим Content Query Web Part също е преминал през upgrade. Вече поддържа филтриране на данните на база на query string параметри, или параметри на текущата страница. Това не беше възможно в 2007 и изискваше разработване. До колкото разбрах, в самият интерфейс може и да се посочват метаданните, които заявките да връщат. В 2007 това беше възможно само чрез редактиране на CommonViewFields параметъра в самият .webpart file. Нямам търпение да разгледам XSLT file-овете и как те са се променили.

Друга новост свързана с WCM е Web Analytics услугата. Това е Service Application за статистики относно употребата на сайтовете, което в MOSS2007 беше слабост. Дава ви добра видимост върху трафика, най-популярните страници, search ключови думи и т.н., и пакета предлага “What’s Popular” web part, който дава възможност тази информация да се представи и на крайните потребители. Интересно е.

Oт гледна точка на чист ECM, най-значително е Enterprise Content Types и Managed Metadata Service. Целта на Enterprise Content Types е да се дефинира един тип един път, и да се преизползва многократно в фермата, в различни сайт колекции. Единственият начин да се постигне това в 2007, така че да е напълно еднакво навсякъде и да се създадът само един път, е чрез feature, който се деплойва на всеки site collection. Сега Managed Metadata Service се грижи за синдикиране на content types, термини и keywords които се използват в системата. Един сайт може да има Enterprise Content Types и локални Content Types, като тези които са Enterprise са read-only. Това е полезно за бизнеси, които всъщност имат дефинирани процеси и обекти на работа. За бизнеси, които тепърва си подреждат информационната архитектура, тази функционалност може да бъде добър инструмент за подпомагането на тази задача, но само ако бъде изполвано рационално.

Направило ми е впечатление, че употребата на content types в България е много слабо, поне в проектите, които съм виждал. Това според мен се дължи на непознанието на ползите от такава функционалност на самите консултанти. Вие ползвате ли content types във вашите решения? Инструменти, като Best Practice Analyzer for SharePoint няма да посочат, че решението Ви не използва content types – чисти бизнес ползи от едно решение, както и нивото на употреба на едно решение, не могат лесно да се измерват с инструменти. За мен там е разликата между добрите консултанти, и чистите разработчици. Стига съм мрънкал...

 SharePoint 2010 има и подобрения от гледна точка на фолксономия и таксономия (taxonomy & folksonomy) – системата поддържа tags и keywords. Tags са на enterprise ниво – синоними, превеждане, дефинирана структура – а keywords са произволен текст от крайните потребители. Тази функционалност е нова за SharePoint и предполагам мотивацията е да се засили SharePoint в social media сферата, както и отново по-добър ECM. Много добър ход.

Идеята за Record Center вече не е толкова стриктна. Функционалноста е разделена на features, които могат да се преизползват навсякъде в системата. Съществува идеята за “In Place Records Management” – всеки обект или документ може да се маркира като „архив“ в самото място, където се намира. Няма нужда да бъде изпращан в Records Center. От това ще следват интересни решения.

Новост е понятието за Advanced Routing – крайни потребители нямат нужда да мислят къде да качват документи, а системата преценява на тяхно място на базата на правила. SP2010 предлага Drop Off Library за тази цел. Това не беше възможно в 2007 без разработване, а е често срещано изискване защото OpenText HummingBird работи по подобен начин. Разработвали сме такъв проект, а сега всичко е почти част от продукта L

Научих и, че в SP2010 е въведена функционалноста на Document Sets – групирани документи свързани с общ предмет на работа. Като пример мога да дам договор, с всичките документи с които той е свързан (скици, анекс, приложения), да бъдат свързани в пакет и да се движат заедно в системата. Според мен това е полезно, и има ситуации, в които ще е идеална функционалност. Това което не можах да разбера и запомня, е как работят версиите в Document Sets, ще трябва да го проуча допълнително.

Още нещо ново, което сигурно всички сме разработвали, или в SharePoint или в CRM – Unique ID service. Едно от най-често срещаните изисквания в ECM е уникално номериране на документи. В нашата бюрокрация един документ има по няколко номера... Сега SharePoint предлага Service Application специално за тази цел – уникално номериране на документи в една сайт колекция. Добре де, защо не е уникално за цялата ферма? Нека да видим кой пръв ще пусне такова решение на codeplex... Това, което научих, е че Document ID-то може да му бъде конфигурирана схемата и формата, но не го разгледахме. Ползата, че може да се генерира линк директно към документа, независимо от неговото местоположение. Ако документа се премести, линка е един и същ. Изглеждаше така: http://<portal>/ _layouts/DocIdRedir.aspx?ID=<myprefix>1-1-1. За нас разработчиците имаме обект, който може да наследим: Microsoft.Office.DocumentManagement.DocumentIdProvider – Забележете namespace-a...

 

За съжаление, следващата тема не видяхме много от нея – Search. Проблема е, че FAST Search компонента, който е вече част от SharePoint Server, не работеше на версията, която разглеждахме. Темата за Search беше само приказки. Това, което ми направи впечатление, е че Search ще си дойде с connectors за други системи като Documentum, OpenText HummingBird, Filenet и Exchange. Имаше голями подобрения относно архитектурата, и ако не се лъжа системата за Ranking може лесно да се променя.

 

Денят продължи с разглеждането на BI възможностите на SharePoint. Продукта предлага нови web parts за визуализиране на информация, като най-впечатлителния е Charting Web Part. Самият web part изглеждаше много гъвкав и мисля, че ще свърши работа. Забелязах, че този web part няма нужда от Excel Services – това ще улесни работата ни. Интересно ми е как седят нещата от гледна точка на лицензиране. Ще чакаме резултати. (друго интересно и точно в мой стил – дали самият деплоймент е лесен? Както винаги, искам деплоймент с 1 стъпка (:... )

Разгледахме и PerformancePoint Services, който е част от SharePoint Server. Самите dashboards са наистина впечатлителни... Много бяха шаренки... Поддържаха се всякакви модерни функции като drill-down, filtering, grouping, etc. Инструментът, с който се създават вече се казва Dashboard Designer, в момента не се сещам как се казваше първата му версия. Този инструмент е насочен по към IT Pro хората отколкото девлопери, и отново не разбрах как се разработва решение с този инструмент, така че да е част от жизнения цикъл на проекта (design-develop-test-deploy). До колкото разбрах се прави разработване на самата крайна среда – това за мен е чисто ПРЕСТЪПЛЕНИЕ и трябва да се промени този начин на работа!

BI Search – нещо ново, и сравнително интересно. Част от Enterprise версията и FAST Search, тази функционалност дава възможност на Search завки да връщат резултати с линкове директно в справки. Тъй като FAST не работи, това беше преразказано от Woulter и не си поиграхме вобще.

За Excel Services най-впечатляващото беше извличане на информация от Excel чрез REST API’s Може директно да се задъде линк към графика в Excel, и тя да бъде върната като картинка директно годна за браузера. Супер. Excel данни също могат да се изкарват в web parts, като в тази версия те са по-гъвкави и с по-добри възможности. Друго интересно беше самият Excel Viewer – Web базиран Silverlight браузер за Excel workbooks. За това малко повече по-нататък.

Линкове към останалите дни:

SharePoint 2010 Ignite Training - Понеделник
SharePoint 2010 Ignite Training - Вторник
SharePoint 2010 Ignite Training - Сряда
SharePoint 2010 Ignite Training - Четвъртък
SharePoint 2010 Ignite Training - Петък

SharePoint 2010 Ignite Training - Сряда

Програмата за Сряда беше пълна с неща, които ме интересуват поради задачите които поемам на работа. Въпреки пийването предишната вечер бях много ентусиазиран по първата тема – Client Object Model – тъй като в Абилитикс разработваме наш продукт с thick client. SP2010 предлага 3 нови библиотеки за комуникиране от външен процес/програма:

·         Microsoft.SharePoint.Client.dll – обекти за работа от custom проложение, което достъпва данни в SharePoint

·         Microsoft.SharePoint.Client.Silverlight.dll – обектен модел за работа със Silverlight

·         SP.js – JavaScript интерфейси

До колкото запомних, всички новости по-горе комуникират с Client.svc (WCF Service), който директно работи с обектите в Microsoft.SharePoint.dll. Този слой от клиентски обекти би улеснил работата на всеки разработчик и се надявам да поработя с някой от новите неща в най-скоро време.

Майкрософт е направила така, че имената на обектите, както и тяхните методи да са едни и същи във всички библиотеки. “SP” представката, обаче, е махната... Web вместо SPWeb, List вместо SPList…

От девелопмент гледна точка, за да се работи с модела се започва с ClientContext обект. Той се грижи за изпращането на XML заявки към Client.svc, който връща отговори в оптимизирани JSON.

В лабораторното упражнение разгледахме как да пишем код, така че заявките да са по-малки, по-малко на брой и изцяло клиентското ни приложение да е по-ефективно. Пример на това е възможността да повикаме резултати само с полетата, които са ни нужни. Скоро ще напиша и блог с по-дълбоки подробности относно клиентския модел.

Като партньор на Nintex, втората тема също ми беше много интересна – Workflows в SP2010. Вече се поддържат и workflows на ниво Сайт, а не само на List Item като в 2007. Може би най-впечатлителната нова функция е визуализирането на процеса в Microsoft Visio 2010, след което готовият резултат може да се препрати към SharePoint Designer. Оттам може директно да се модифицира и публикува в SharePoint. От  SharePoint Designer  може и да се export към Visual Studio 2010 за работа от програмисти и разрешаване на по- сложни изисквания. Според мен ефекта е наистина значителен и работата с workflows ще се улесни – в момента това е на сложно ниво. Сега може да създаваме прототип на процеса в Visio 2010, да го прехвърлим в SPD за реализиране и деплоймент към SharePoint. Друго интересно нещо е преносими workflows – в 2007 се създаваха SPD workflows за специфичен лист – сега може да се създават “Reusable workflows”, надявам се това да няма скрити недостатъци. Интересувам се, и от възможността да прехвърлим workflow от 2007 в 2010. Дали има възможност да се запази текущата инвестиция?

Вече смятам, че решения със SharePoint Designer ще са реални – самите workflows са преносими. Това дава възможност за включването на разработката на workflows в цялостен development lifecycle, което до сега не беше възможно за workflows в SPD. Експорт към Visual Studio 2010 съвсем показва, че Майкрософт ни чува като мрънкаме – аз лично съм много доволен. Инвестицията в SPD 2010 изглежда голяма, има ribbon interface, workflow дезайнера е съвсем нов, възможностите са много повече.

Последната тема за деня също беше супер – новият Services модел в SP2010. Целият application/services layer на SP2007 е с нова архитектура. В SP2007 SSP-то беше супер, но имаше някой недостатъци относно гъвкавост и скалируемост. SSP в 2007 трябва да предлага всички услуги (search, BDC, users, Excel) и специфичните web applications бяха обвързани към специфично посочени SSP’s. Отделно, SSP’s не бяха лесно разшираеми с разработване.

В SP2010 всеки service е отделен компонент, и може услугите да се конфигурират на отделни application сървери. Това ще даде възможност на сценарии, които имат нужда от load balancing за специфичен service. Примерно, може да се създаде услуга, която да работи на независим сървер дедикиран за тази услуга – workflow engine, external data service, analytics, data synchronization, etc. Услугите могат и да се споделят между отделни ферми, може да създадете ферма изцяло за хостване на услуги – нещо, което би било ценно на enterprise ниво.

Новото нещо, което за малко да ме свали от стола, е че Services модела е вече част от WSS, или т.н. SharePoint Foundation 2010. Това е невероятно за България, защото WSS решенията са много на брой, и проникваемостта на SharePoint в нашия пазар ще е засилен. Отделно – BCS (BDC) на WSS ниво – power!

Комуникациите стават чрез WCF интерфейси, но самият Service не е чисто WCF Service.Това, което ние разработчиците създаваме, е самият Service Application, който се инсталира и пуска на всеки сървер по избор. На всеки service трябва да се създаде и интерфейс за администриране – пускане, конфигуриране на акаунти, информация за custom database, ако има такива – това ознава, че ние разработчиците трябва да владеем и административния API. До колкото разбрах, задължително е и разработването на методи за provisioning и чрез PowerShell, което вкарва и PowerShell в картинката. Ако не сте на „ти“ с WCF, време е да прелистите книгата на Juval Lowy (нали няма нужда да посочвам коя е?).

Линкове към останалите дни:

SharePoint 2010 Ignite Training - Понеделник
SharePoint 2010 Ignite Training - Вторник
SharePoint 2010 Ignite Training - Сряда
SharePoint 2010 Ignite Training - Четвъртък
SharePoint 2010 Ignite Training - Петък

SharePoint 2010 Ignite Training - Вторник

Денят започна с интересни работи – лекция относно промените в интерфейса и въвеждането на Ribbon Toolbar в SharePoint 2010. Wouter посочи проблемите в SP 2007 – команди навскъде, различни екрани за всичко, излизане от контекст, зареждане и post-back за всеки нов екран.

Отделно, крайните потрябители искат да подменят „страниците“ на своя портал. За да се случи това е необходимо да се мине в Edit mode, да се добави “web part”, и примерно да, се посочи URL на картинка.  Процесът е сложен и в никакъв случай приятен за работа на потребители, за които SharePoint e нещо ново. A и какво е това „web part” или „URL”??

Веднага си пролича и инвестицията на Майкрософт в този проблем. SharePoint 2010 предлага плавен интерфейс с по-свободни преходи и по малко екрани.

·         SharePoint 2010 предлага Ribbon Toolbar като този в останалите продукти от Office пакета. Този Ribbon е познат на потребителите, еднакъв е навсякъде и е на познато място – няма нужда да се тръсят команди в различните кътове на страницата.

·         Опциите в този Ribbon се променят и според контекста – ако крайният потребител редактира страница, ще се появят опции за пормяна на шрифта и т.н. А ако работи със списък от данни ще се появят опции за редактиране на данните.

·         Dialog Framework – всички нови екрани са под формата на диалогови прозорци и pop-ups. Така крайният потребител на губи фокус от страницата на която работи. Като се затвори прозорецът информацията се подменя чрез AJAX повиквания, и всичко става по приятно за работа.

Следващото нещо, което научих, е въвеждането на „страници“ навсякъде в SharePoint. Майкрософт вярва, че крайните потребители си представят своя портал като колекция от страници, а не колекция от списъци. В SharePoint 2010 се въвежда идеята за страници, които са лесни за промяна и редактиране със съдържание. Редактирането е подобно като в Microsoft Word, и добавянето на картинки е улеснено – потребителят посочва картинка и тя се качва в Site Assets библиотека.

Други интересни неща, които научих относно интерфейса:

·         Всеки сайт може да бъде конфигуриран да се зарежда със стария интерфейс (v3), но се губи плавният начин на работа и е без Ribbon. Това е за потребители на SharePoint 2007, които искат да преминат на 2010, но не са готови да подменят интерфейса на своите решения.

·         Application pages вече може да се редактират от гледна точка на дизайн – това не беше официално в 2007

·         Нещо важно за нашата сцена - инвестиция относто многоезична функционалност. Всеки сайт може да се разглежда в различни езици според избор на крайният потребител. В 2007 всеки сайт се създава за определен език.

·         Нов web part за визуализиране на информация в списъци – XsltListViewWebPart.В 2007 дефинирането на HTML markup в списъците ставаше чрез CAML и ASP.NET Rendering templates. Този нов web part въвежда XSLT за генерирането на HTML markup.

След кратка пауза запоянахме лабораторно упражнение, в което създавахме нови менюта в новият Ribbon.

Денят продължи с разглеждането на промените в дефинициите на списъците. Нещата, които запомних са следните:

·         Списъци вече поддържат връзки с други списъци – Joins и Relationships между списъци

·         Projected fields – полета от parent списък видими в child списъка. Пример: ако foreign key е ID, да се добави Name, така че да има смисъл за крайните потребители. За съжаление, projected fields са read-only...

·         SPQuery обекта има .Join и .ProjectedFields притежания

·         Подобрени възможности за списъци с много данни, като системата вече има горни граници на броя на редовете върнати от завки. Тази настройка се конфигурира от нашите IT PRO колеги.

·         Полетата в списъците вече може да се конфигурират, така че да съдържат само уникални стойности. Проверката става на SQL collation ниво.

·         Полета също могат да имат и валидация, min max и т.н.

·         Валидация също може да се конфигурира на ниво списък – примерно, да няма резултат с цифри в заглавието след определена дата, освен ако не е създаден от управител.

Според мен подобренията в списъците са значителни, и много от проблемите в 2007 са преодолени. Струва си да кажа, че горните граници на списъците ще променят начините, по които създаваме решения на база на списъци. Кода така трябва да се напише, че да работи когато броят на редовете достигне границата. SharePoint ще хвърли exception... Ще имам едно на ум когато пиша и разглеждам код за проверка. Едно качествено решение трябва да ги вземе тези неща в предвид.

Последната тема за денят беше LINQ to SharePoint. Трябва да си признаем, работата с CAML не е от най-лесните. Създаването на CAML Queries в код е досадно – работи се с много String обекти, синтаксисът на самия CAML е опасен, всичко е текст който описва обекти, вместо истински обекти в IDE-то.

LINQ решава подобни проблеми като генерира proxy обекти. В случая с SharePoint, LINQ to SharePoint започва с генерирането на обекти от списъци. След като тези обекти са генерирани може да се създаде DataContext и да се пишат заявки директно в кода на база на LINQ синтаксис. Работата със списъци се улеснява, като и Update операциите са покрити.

Обекти се генерират с SPMetal. Това е малка програмка за конзоли, на която се посочва списък и изходен файл. SPMetal поддържа и свързани списъци.

След лабораторното упражнение и тежкият ден, десетина от нас ентусиазти се почерпихме с жива вира и мазно ядене...

Линкове към останалите дни:

SharePoint 2010 Ignite Training - Понеделник
SharePoint 2010 Ignite Training - Вторник
SharePoint 2010 Ignite Training - Сряда
SharePoint 2010 Ignite Training - Четвъртък
SharePoint 2010 Ignite Training - Петък

SharePoint 2010 Ignite Training - Понеделник

Седмицата в Берлин за съжаление приключи, и отново се намирам сред хаотичната обстановка на столицата ни. Ignite беше уникално преживяване и все още не мога да смогна на всичката информация която Wouter van Vugt ни наливаше в ушите. SharePoint 2007 е едно огромно чудовище с много възможности, но SharePoint 2010 просто повдига възможностите на съвсем ново ниво.

От гледна точка на development, ето какво научих през първият ден на обучението:

·         SharePoint 2010 Developer Dashboard – опция, която показва статистики и информация относно зареждането на избраната ASPX страница и всички компоненти по нея. В 2007 събирането на подобна информация беше сложно. Този Developer Dashboard показва неща като life-cycle на самият Request, броят и времетраенето на повикванията към базата данни, и времетраенето на методите на web parts. Подобна информация е сравнително сложно да се извлече в SharePoint 2007

 

·         Visual Studio 2010 (beta) – веднага си пролича, че инвестицията на Майкрософт в инструментите за разработчици е огромна. Чуха ни слава богу! Мойто мнение за 2007 е, че е developer unfriendly... за 2010 мога най-накрая да кажа, че сме си близки приятели (: Новите неща са Visual Studio 2010 SharePoint Tools – project и item templates, и възможността да се създават WSP файлове директно от самото IDE. Deploy и build/run операциите са много лесни и няма нужда от допълнителни добавки, като WSPBuilder или VseWSS 1.3 (който така и не излезна от CTP, вече 9 месеца!). Едно много голямо подобрение е импорт на готово WSP, но все още не знам колко е надеждно. Visual Studio 2010 „поддържа“ и designer-based web parts  - web part, който зарежда ASCX control. Нищо особенно. Аз лично очаквах повече, като например нов клас. Другото интересно е SharePoint Explorer, таб който се опитва да покрие това което SharePoint Manager 2007 прави – визуализиране на всичките обекти под формата на дърво. Все още не съм си поиграл с него, но нямам много надежди тъй като излезна SharePoint Manager 2010. Изторията, с attach към worker process също е уредено – натискате F5.

 

·         SharePoint Designer 2010 – Като ентусиазиран девелопер, за мен лично решения на 2007, които имат нужда от SharePoint Designer 2007, не са ми много надеждни. Да се прави девелопмент на production среда не е възможно в Enterprise deployments (а ако е възможно се откажете от проекта (: ). SharePoint Designer 2010 променя нещата – инструмента е подобрен от много гледни точки. Вече промените в SPD могат да се експортват към VS2010 и да се включват в application life-cycle модели (develop, test, deploy, upgrade). Самият workflow designer е много по-мощен и поддържа създаване на workflows в Microsoft Visio 2010, които след това могат да се импортват в SPD. Workflow може и да се експорт в VS2010, а също така да се създаде 1 workflow и да се преизползва в различни списъци – нещо което не можеше да се направи (лесно) в 2007

 

·         Windows PowerShell – SharePoint вече си има собствена конзола базирана на PowerShell. Ако не се лъжа, разликата от обикновенната PowerShell конзола е, че необходимите DLL’s за SharePoint операции са импортнати. PowerShell заменя DOS и VBScript с по-добри възможности за скриптове, и позволява повикването на .NET методи от компилирани библиотеки. Аз го ползвам за да променям properties на SharePoint през обектния модел, както и за автоматизирани deployments.

 

 

·         SharePoint 2010 е подобрен в самият Feature Framework. Вече се подържат версии и upgrade изторията е по-надеждна. А за нас българите е важно и подържането на Application Resource files както си е реда на нещата, в 2007 това беше по-различно от типичният ASP.NET начин и объркваше много локализирането на решения.

 

 

 

·         Sandbox Solutions – Това е deployment модел, в който решението може да се пусне в изолирана, виртуална среда, където може да се следи за проблеми като силно поглъщане на ресурси или забавени зареждания. Изолираната среда може да поеме контрол над нещата и да запази фермата ако се случи нещо нередно. Ние си играхме с memory leaks да го изпробваме...

 

 

 

·         Нови Events – WebAdding/WebProvisioned, разни workflow events, ListAdded/ListAdding,

 

Това не беше всичко, но една голяма част от нещата, които наистина ми направиха впечатление и ги запомних. Скоро ще ви разкажа и за опитите ми с нещата по горе...

Линкове към останалите дни:

SharePoint 2010 Ignite Training - Понеделник
SharePoint 2010 Ignite Training - Вторник
SharePoint 2010 Ignite Training - Сряда
SharePoint 2010 Ignite Training - Четвъртък
SharePoint 2010 Ignite Training - Петък

Нов Блог!

Тази седмица присъствам на SharePoint 2010 Ignite Training в Берлин. Това е invite-only трейнинг с цел повишаване на общите познания по SP2010. Ще открия този блог със серия от постове, които покриват нещата които научавам всеки ден от този трейнинг. Тази информация е публична, така че ще споделям всичко което науча.

Записал съм се за Developer stream, като заедно с мене са Тишо (от Майкрософт) и колегата Росен. Росен се записа като IT PRO за да обхванем всики теми.

Днес е откриването и въвеждането в SP2010, и направо нямам търпение (: . След обяд навлизаме в същноста – Deployment with Features and Solutions.

Ще Ви разкажа какво се случи и какво трябва да знаем за Deployment с SharePoint 2010.