Наш сайт 1
Сайт российского сообщества Sharepoint
Построен с использованием Windows Sharepoint Services для обмена информацией
между разработчиками, администраторами, партнерами и заказчиками.
Сайт создается преимущественно на базовом функционале платформы Sharepoint и
с помощью доступных готовых решений от партнеров и разработчиков. В
разделе Статьи размещаются статьи с описанием -
Как это было сделано? Надеемся что информация на
этом сайте поможет вам в ваших проектах.
|
|
|
Наш сайт 2
- Зарегистрируйтесь на сайте с использованием вашего LiveID, для этого
нажмите на Вход, в верхнем правом углу
- Подпишитесь на RSS тех списков, которые вам интересны
- Ознакомьтесь с платформой Sharepoint на страницах Wiki -
для заказчиков,
разработчиков или
администраторов
- Размещайте свои комментарии, предложения по улучшению, решения, статьи,
вопросы! :)
- Настройте отображение первой страницы с помощью интересующих вас
веб-частей, уберите ненужные - уже можно свернуть эту веб-часть.
|
|
| | Microsoft SharePoint Team Blog | | |  | Accessibility and SharePoint 2010
This is Tim McConnell, Program Manager on the SharePoint Foundation team. For the 2010 release, I’ve worked with SharePoint platform and partner teams to deliver powerful, reliable, accessible user experiences. Like Office, Office Web Applications, Windows, and teams across Microsoft, everyone in SharePoint strives to remove barriers that make software difficult to use. Sometimes improvements can be obvious, like the reorganized Ribbon user interface. However, some users may not notice changes that can transform another user’s experience. Accessible software respects the range of different users’ experiences, and it accommodates everyone. Standards As a starting point, SharePoint adopted the Web Content Accessibility Guidelines 2.0, WCAG 2.0, and set a goal for Level AA. Becoming a W3C recommendation on December 11th, 2008, WCAG 2.0 defines the expectations of and the techniques deployed in well-built, accessible Web sites. The SharePoint teams followed the spec’s developments, and we designed and tested SharePoint 2010 against the guidelines. WCAG 2.0 represents a modern, international standard that’s as valuable to developers as it is to Web users. Core Investments The four principles of WCAG 2.0 are Perceivable, Operable, Understandable, and Robust. For each area, SharePoint has made key investments, and here I’ll scratch the surface to describe a few: Perceivable - SharePoint 2010 delivers broad changes to describe content and media and to explain controls.
- The redesigned masterpage leverages CSS and presents content in the appropriate sequence.
Operable - Keyboard interaction has been a cornerstone in our feature evaluations to maximize device compatibility and usability.
- Proper heading structures have been added to pages for informational, organizational, and navigational benefits.
- Core to a trustworthy interface is a dependable focus, and we’ve invested heavily in protecting the users focus and in deferring control to the user agent wherever possible.
Understandable - Across SharePoint, we’ve improved language support, and we’ve integrated this information into our pages and into our advanced editors.
- SharePoint supports browser settings to zoom content and operating system features to increase font sizes.
Robust - Our new design efforts let us declare DocTypes and specify CSS-standards rendering for our masterpages. This has dramatically improved our cross-browser support.
- Broad investments were made to update our markup to be like well-formed XML, and the new rich text editor has clean markup and a function to convert its content into XHTML.
We’ve tested these principles with and without Assistive Technologies to verify their value for all users. ARIA Integration ARIA stands for Accessible Rich Internet Applications, and it specifies descriptive extensions for Web applications. Like WCAG, WAI-ARIA is from the W3C’s Web Accessibility Initiative. In a nutshell, ARIA allows an inaccessible element, such as a div with an onclick attribute, to surface itself as a button control. This can be done with a new role attribute set to “button”—it’s that simple. SharePoint leverages ARIA in the Ribbon, in dialogs, in our new rich text editor, and elsewhere in the platform and in partner applications. Examples of Accessibility Investments Dialogs In order to keep users in context for as long as possible, we’ve introduced in-browser dialogs. With a dialog, the experience of reading, editing, and creating SharePoint content moves more quickly. Since SharePoint dialogs do not open new browser windows, we’ve built in important accessibility features to help all users navigate successfully. - Focus: SharePoint describes its dialogs using multiple accessible techniques, and form dialogs will set focus on the first form element like they would after a navigation event.
- Dismissing a dialog: depending on how a browser implements Access Keys, closing the dialog is a couple of key strokes away. For example, in Internet Explorer, a user can hit Alt+C to disregard a dialog; in Firefox users can hit Alt+Shift+C.
- Confirming a dialog: when the necessary forms have been filled, users can hit Alt+O to accept the dialog or to submit the form.
The Ribbon As the key component of the new SharePoint 2010 user interface, the Ribbon needs to deliver powerful, useful, and usable experience. We designed the Ribbon to be accessible from the beginning, and we took advantage of multiple tools and techniques to provide a rich experience. Keyboard Support Keyboard support comes from the ground up. Because the Ribbon is a complicated component, it has a simple link to skip all of its commands. To help users on keyboards and alternative input devices, the Ribbon provides hidden, in-context instructions that explain its structure and how it’s controlled. Each of the Ribbon’s commands and menu anchors appear within the page’s navigation order, so it’s always safe to explore either forwards or backwards. Tab Access Because the Ribbon appears at the top of SharePoint pages, it’s necessary to provide quick access. The Ribbon operates as a central control for all of the components on the page, so it’s impractical to navigate back and forth for every command. To accelerate Ribbon interaction, a new shortcut key combination, Ctrl+[, will jump the focus to the first available Ribbon tab. From there, users can move back toward the Quick Access Toolbar commands and the Site Actions menu, or users can move ahead to the other Ribbon tabs. In the following picture, the Browse tab has been highlighted to demonstrate focus after entering the Ctrl+[ shortcut key combination. Command Access Similar to accessing Tabs, it’s also important to quickly access commands. For this SharePoint supports the Ctrl+] shortcut key combination. This shortcut works in one of two ways: - It selects the first command on the active Ribbon Tab.
- It selects the last used command on the active Ribbon Tab.
To move between Groups of Ribbon commands enter one of the Ctrl+Arrow Left, Ctrl+Arrow Right, Shift+Arrow Left, or Shift+Arrow Right shortcut key combinations. These shortcuts will loop through the Groups to prevent users from accidentally navigating outside of the Ribbon. The shared use of Ctrl and Shift allows for maximum browser and Assistive Technology compatibility. Enhanced Tooltips Enhanced tooltips describe a command’s behavior and its availability without cluttering the user interface or slowing navigation. When trying to decipher small icons or to move between many rich commands, enhanced tooltips provide the extra bit of information needed to verify your actions. ARIA Integration Behind the scenes in each of the three Ribbon examples are ARIA role attributes describing the structure and purpose of the Ribbon controls. Here’s a short list of attributes: - aria-labelledby – Rich control labels
- aria-describedby – Rich control descriptions via enhanced tooltips
- aria-haspopup – Notification information to warn when a control may pop-up another control
- aria-multiline – Describes text fields for large amounts on content
- And here’s a short list of ARIA roles used within SharePoint:
- tabpanel – An expanded Ribbon Tab
- tooltip – Ribbon tooltip content
- button – An interactive button control
- dialog – An interactive dialog
Each of these simple strings dramatically changes how browsers and Assistive Technologies communicate Web content to users. While a basic a anchor tag will work for most basic command scenarios, it’s better and more reassuring to fully provide ARIA’s role=”button” syntax for clear descriptions. InfoPath Forms Through investments made in InfoPath Forms Services 2010, form designers can easily design and publish forms with an accessible user experience. Assistive Technology Friendly InfoPath forms have been designed and tested to work with browsers and assistive technologies. Broad changes have been made to describe simple controls and complex controls with field validation and relationships. ARIA Integration WAI-ARIA has been used to further improve the user experience on assistive technologies: ARIA is used to notify the assistive technology of form updates, alerts, warnings, and other pop-up dialogs. Keyboard Support Users filling forms in IPFS 2010 have full keyboard support to access all necessary functionality. InfoPath has also done work to ensure that keyboard focus is maintained in a predictable manner during dynamic changes to the form. Project Grid Editing The ability to display and edit tabular data is a core component of any productivity suite. SharePoint is no exception. In SharePoint Foundation 2010 we have introduced a new JavaScript based grid control that allows users to modify SharePoint Project Tasks Lists, change Project schedules, and edit Access databases. From the very early planning stages of developing this control we began to craft requirements to ensure the control was accessible. The control has complex requirements around the support of Gantt Charts and hierarchy (for Project Server) as well as very large datasets, macros and custom user validation (for Access Services). In order to ensure accessibility for these features we made use of ARIA and robust keyboard shortcuts. ARIA Integration Like the Ribbon, ARIA is used to achieve support for these complex requirements. Here are additional examples of how Project uses ARIA: - aria-owns – enables focus element to be set in a input element that maps to the entire control
- aria-activedescendant – enables virtual focus element to map to a specific cell within the grid
- aria-multiselectable – indicates that multiple cell selections can be made
- aria-expanded – indicate expand/collapse state within hierarchy
- aria-busy – indicates if a row has not yet been downloaded from the server
Keyboard Navigation SharePoint’s Grid control was designed to support keyboard navigation from day one. We know that frequently when dealing with tabular data whether it is datasheets, lists or projects, users often have many items to display on screen. Because of this we provide a simple link that allows users to skip the grid when moving through elements on a page. Additionally the Grid supports many of the keyboard shortcuts you have come to expect in desktop applications. Cell navigation can be easily performed by using directional arrow keys as well as traditional tabbing. Moving up and down within grid is easy with common shortcuts like Page Up/Page Down as well as support for Home/End and many others. Support is even present for complex selection and expanding dropdowns (Alt+Down). In Project Server the control supports changing Gantt chart zoom levels all through a couple keypresses (CTRL+* & CTRL+/), as well as expanding and collapsing hierarchy. Conclusion Thanks for learning more about the investments that we’ve made to make SharePoint an exceptional, versatile, and accessible web application and platform. Web technologies move quickly, and we’re always seeking new ways to present dynamic Web experiences that work for everyone. We’re proud of the richness that we’ve delivered, and we hope that you’ll discover SharePoint 2010 to be both powerful and usable. -Tim McConnell  | | |  | SharePoint 2010 & Office 2010 Launch
Today, we officially announced that May 12th, 2010, is the launch date for SharePoint 2010 & Office 2010. In addition, we announced our intent to RTM (Release to Manufacturing) this April 2010. It’s an exciting time for us! We hope you can virtually join us on May 12th at 11am EST to listen to Stephen Elop, President of the Microsoft Business Division, announce the launch. You can register for the event @ http://sharepoint.microsoft.com/businessproductivity/proof/pages/2010-launch-events.aspx. Arpan Shah Director, SharePoint  | | |  | Walkthrough of enabling CRUD for SharePoint 2010 external lists using Visual Studio 2010
In our last blog of this series Walkthrough of creating a SharePoint 2010 external list using Visual Studio 2010 Beta, we introduced how to create a simple “Hello world” external list in SharePoint 2010 Beta using Business Data Connectivity Designer in Visual Studio 2010 Beta. In this blog, we will show you how to pull data from an external database into an external list and enable Create, Read, Update and Delete (CRUD) functions to the external list. First of all, you need to have SharePoint 2010 Public Beta and Visual Studio 2010 installed on your machine in order to complete this walkthrough. We’ll use “Northwind” database as external data source, so if you do not have an existing “Northwind” database available, we’ll walk you through to create a local database using SQL Server Express first (SQL Server Express comes with Visual Studio installation by default, in case you don’t yet have it, download it here). At the end of this post, we will complete with a BDC model project which has a “Customer” entity connects to “Customer” table in “Northwind” database, and have CRUD operations enabled. The finished project can also be downloaded from here. Prepare the data source If you already have a “Northwind” database, you can skip this section. Otherwise, please download SharePoint2010_BDCSamples.zip from here and extract the SQL script file CreateSampleNorthwindDB.sql. Open Visual Studio. Go to View->Server Explorer. Right click Data Connections in Server Explorer, and select Create New SQL Server Database. 1. In the prompt dialog, type “localhost\sqlexpress” in Server Name text box, and give the new database name “SampleNorthwind”. * If you're using the SQL Express that comes with SharePoint Server, please replace “localhost\sqlexpress" with "localhost\sharepoint”. 2. Start a Command Prompt. Go to Start->Run, type “Cmd” in the text box and click OK. 3. In the Command Prompt, type in following command and press enter: sqlcmd -S localhost\sqlexpress -d samplenorthwind -i <Path of CreateSampleNorthwindDB.sql file> Create BDC Project Create a new C# BDC Model project and rename it “BdcSampleCSharp”. VB code snippets will also be provided, so you can create VB BDC Model project if you want. In this walkthrough, we will use C# project as an example. (Check this blog for how to create a BDC project) Connect to external data source To use the SampleNorthWind database, we add a LINQ to SQL model to the project: 1. On the Project menu, click Add New Item, in the prompt Add New Item dialog select Data in the Installed Templates pane, in the Templates pane select LINQ to SQL Classes, in the Name box, type “Customer”, and then click Add. 2. In the Server Explorer, go to Data Connections->[hostname]\sqlexpress.SampleNorthWind.dbo->Tables->Customers, drag the Customers table and drop it on the Customer.dbml design surface. 3. Add a new class file and rename it “CustomerDataContext.cs”. Replace the code of the class with the following code snippet. Note: We made the connection string a constant in the code only for demo purpose, if you’re using your own database, modify the connection string as needed. In our future post we will introduce how to set the connection string in a custom property on LobSystemInstance inside the BDC model and read the value through IContextProperty interface at runtime. C#: public partial class CustomerDataContext
{
private const string ConnectionString = @"Data Source=localhost\SQLEXPRESS;Initial Catalog=SampleNorthwind;Integrated Security=True;Pooling=False";
public CustomerDataContext() :
base(ConnectionString, mappingSource)
{
OnCreated();
}
}
VB:
Partial Public Class CustomerDataContext
Private Const ConnectionString As String = "Data Source=localhost\SQLEXPRESS;Initial Catalog=SampleNorthwind;Integrated Security=True;Pooling=False"
Public Sub New()
MyBase.New(ConnectionString, mappingSource)
OnCreated()
End Sub
End Class
Design BDC Model
1. On the design surface, delete entity Entity1 which is created by default. On the View menu, click on Toolbox if it is not shown. Create a new entity by drag and drop the Entity icon from Toolbox onto design surface (see the screenshot below). In the Properties Browser, change the value of Entity’s Name property to “Customer”.
2. Create a new Identifier CustomerID on entity Customer. To do so, on the design surface, right click the entity, click Add->Identifier. A new identifier appears on the entity, and then rename it to “CustomerID”.
3. Create a Specific Finder method for the entity. To do so, on the design surface, select entity Customer, you could find a <Add a Method> command in the Method Details Window. If the Method Details Window is not opened, you can find it in menu View->Other Windows->BDC Method Details. From the <Add a Method> drop-down list, select Create Specific Finder Method:
A method named ReadItem appears on entity Customer. In the Method Details Window, you will find that the method takes a In parameter and a Return parameter. In the next step we will define TypeDescriptors associated with these parameters.
4. Add TypeDescriptors for the return parameter Customer. The edit need to be done in BDC Explorer. You can find it by going to View->Other Windows->BDC Explorer.
a) In the Method Details Window, click <Edit> command in the drop down control from TypeDescriptor Customer as depicted below. After the click the BDC Explorer will get focused on the TypeDescriptor Customer.
b) In BDC Explorer right click the focused TypeDescriptor Customer and select Add Type Descriptor:
A new TypeDescriptor is created under TypeDescriptor Customer. In the Properties Browser, rename it to “CustomerID”. Next you need to set the Identifier property to “CustomerID” to tell the BCS runtime which identifier this TypeDescriptor represents. Here is a screenshot of Properties Browser after this step:
c) Continue to add following TypeDescriptors under Customer by repeating the operation described above: Address, City, CompanyName, ContactName, Country, Fax, Phone, PostalCode and Region, for each TypeDescriptor, you need to change its Type Name to make sure they match the type defined in the LINQ to SQL model. In this example, all the TypeDesriptors have a type of System.String which is the default one so we do not need to change them. After this step, we get the following TypeDescriptors in BDC Explorer:
d) Next we need to define the actual type of the TypeDescriptor Customer. Click TypeDescriptor Customer in BDC Explorer. You will find in the Properties Browser the value of Type Name property is System.String by default, we need to change it to “BdcSampleCSharp.Customer, BdcModel1” which is a LobSystem qualified type name. This specifies the actual the data type of the data structure that is represented by this TypeDescriptor Customer.
5. Create the other types of methods by the same way described in step 6. After this step we will have five methods in the entity Customer: ReadItem, ReadList, Create, Update and Delete. If you check the ReadList method in Method Details Window, the TypeDescriptors of the return parameter have already been defined with the same structure as we just built above. This is because when creating a new method, BDC designer will search the possible TypeDescriptors defined in the other methods of this entity and copy them to the newly created methods. This saves the developers so much time to define them repetitively.
Add code behind to access external data source
Now it’s time to add code to implement the CRUD functions. In Solution Explorer, find and open CustomerService.cs, and then replace the implementation with the following code snippet:
C#:
public static Customer ReadItem(string customerID)
{
CustomerDataContext context = new CustomerDataContext();
Customer cust = context.Customers.Single(c => c.CustomerID == customerID);
return cust;
}
public static IEnumerable<Customer> ReadList()
{
CustomerDataContext context = new CustomerDataContext();
IEnumerable<Customer> custList = context.Customers;
return custList;
}
public static Customer Create(Customer newCustomer)
{
CustomerDataContext context = new CustomerDataContext();
context.Customers.InsertOnSubmit(newCustomer); context.SubmitChanges();
Customer cust = context.Customers.Single(c => c.CustomerID == newCustomer.CustomerID);
return cust;
}
public static void Delete(string customerID)
{
CustomerDataContext context = new CustomerDataContext();
Customer cust = context.Customers.Single(c => c.CustomerID == customerID);
context.Customers.DeleteOnSubmit(cust);
context.SubmitChanges();
}
public static void Update(Customer customer, string customerID)
{
CustomerDataContext context = new CustomerDataContext();
Customer cust = context.Customers.Single(c => c.CustomerID == customer.CustomerID);
cust.CustomerID = customer.CustomerID;
cust.Address = customer.Address;
cust.City = customer.City;
cust.CompanyName = customer.CompanyName;
cust.ContactName = customer.ContactName;
cust.ContactTitle = customer.ContactTitle;
cust.Country = customer.Country;
cust.Fax = customer.Fax;
cust.Phone = customer.Phone;
cust.PostalCode =customer.PostalCode;
cust.Region = customer.Region;
context.SubmitChanges();
}
VB:
Public Shared Function ReadItem(ByVal customerID As String) As Customer
Dim context As New CustomerDataContext
Dim cust = (From c In context.Customers _
Where c.CustomerID = customerID _
Select c).Single()
Return cust
End Function
Public Shared Function ReadList() As IEnumerable(Of Customer)
Dim context As New CustomerDataContext
Return context.Customers
End Function
Public Shared Function Create(ByVal newCustomer As Customer) As Customer
Dim context As New CustomerDataContext
context.Customers.InsertOnSubmit(newCustomer)
context.SubmitChanges()
Dim cust = (From c In context.Customers _
Where c.CustomerID = newCustomer.CustomerID _
Select c).Single()
Return cust
End Function
Public Shared Sub Delete(ByVal customerID As String)
Dim context As New CustomerDataContext
Dim cust = (From c In context.Customers _
Where c.CustomerID = customerID _
Select c).Single()
context.Customers.DeleteOnSubmit(cust)
context.SubmitChanges()
End Sub
Public Shared Sub Update(ByVal customer As Customer, ByVal customerID As String)
Dim context As New CustomerDataContext
Dim cust = (From c In context.Customers _
Where c.CustomerID = customer.CustomerID _
Select c).Single()
cust.Address = customer.Address
cust.City = customer.City
cust.CompanyName = customer.CompanyName
cust.ContactName = customer.ContactName
cust.ContactTitle = customer.ContactTitle
cust.Country = customer.Country
cust.Fax = customer.Fax
cust.Phone = customer.Phone
cust.PostalCode = customer.PostalCode
cust.Region = customer.Region
context.SubmitChanges()
End Sub
Create an external list to test out the BDC Model!
Now we are done! Let’s deploy the solution and create an external list to test it out (Check this blog to see how to create an external list). After the list is created, you will see the following page appears when you click on the list name:
All the data are pulled out to SharePoint successfully, now you can create, delete or edit customer records.
To create a new Customer, find the List Tools->Items->New Item button on the ribbon shown in the following screenshot:
Click on the button, New Item dialog will pop out as below:
Fill in the dialog and click Save, you will find the item created in the list right away.
To edit or delete the item, just click the down arrow at the right side of CustomerID, all the operations you need are there.
  | | |  | SharePoint Dialog Auto-Sizing and Master Page Customization
SharePoint web dialogs bring an exciting new UI feature: they can auto-size to the content of a hosted page. Auto-sizing works by examining the contents of your page during page load, and setting the size of the dialog accordingly. Unfortunately, this feature can be speed bump on the road to master page customization. This post will describe the master page customization process necessary to keep dialog auto-sizing working with your master pages. The most important thing to note is that the auto-sizing feature is aware of whether the ribbon is fixed at the top of the screen. It is important to know whether your master page has the ribbon fixed at the top of the screen or not in order to customize it to work well with auto-sizing. A ribbon fixed on top of the screen looks like this, with the page content below the ribbon scrollable separately from the ribbon itself: If the ribbon is fixed at the top of the screen, be sure the following statements about your master page are true: - The ribbon is inside an element with ID "s4-ribbonrow".
- The remaining page content is inside an element with ID "s4-workspace".
- The element with ID "s4-workspace" is scrollable.
- The <body> element is not scrollable.
If the ribbon is not fixed at the top of the screen, be sure the following statements about your master page are true: - There is no element on the page with ID "s4-ribbonrow".
- The <body> element is scrollable.
The auto-sizing process happens when the hosted page loads. If your master page or any individual pages use dynamic HTML to change the size, position, or amount of content on the page after page load, you may need to re-invoke the auto-sizing process after the dynamic content update in order to obtain a correctly-sized dialog. From within a hosted page, call window.frameElement.autoSize(); to invoke the auto-sizing process. During initial page load, the dialog is hidden and a loading dialog is shown (see below). However, after the page has loaded, re-invoking the auto-sizing process will continue to show the existing dialog while changing its size. If your master page uses a table-based layout, or a variable-width layout, the auto-sizing process may be unable to determine the correct size. In that case, you can try to set a minimum or fixed width on an element in the page in order to help the auto-sizing process. Zach Nation Software Developer on SharePoint Foundation  | | |  | SharePoint 2010 List View Blog Series: Part 3 – List View Architecture
Hi all. This is Greg Chan, Program Manager on the SharePoint team, for the third part in this List View series. In this post I’m excited to have one of the key architects of the new XSLT List View Web Part (XLV) talk more about its architecture. Here is what he has to say: Hi! I’m Eric Andeen, a developer on the SharePoint team. I’m going to describe in a little more detail how the XSLT List View Web Part (XLV) works, and how that affects people building and using SharePoint sites. List View XML and minimal markup As Greg mentioned in Part I, the XLV is the new list view technology in SharePoint 2010, replacing the List View Web Part (LVWP). Since the XLV is the replacement for the LVWP, it needs to do all the same things, as well as adding new capabilities. The best place to start this discussion is with some of the things that haven’t changed. The markup required to specify a LVWP is pretty simple – we need to know which list the LVWP is displaying, and we need to know about the view. The list can be identified by name, URL or guid identifier, but the view is a little more complex, and is specified in XML. This is an example of the ViewXML of the default view of an announcements list: <View Name="{F5D7FCD1-BEFE-42b5-9339-4F4F3C6A38FE}" DefaultView="TRUE" DisplayName="All Items" Url="/Lists/Announcements/AllItems.aspx"> <Query> <OrderBy> <FieldRef Name="Modified" Ascending="FALSE"/> </OrderBy> </Query> <ViewFields> <FieldRef Name="Attachments"/> <FieldRef Name="LinkTitle"/> <FieldRef Name="Modified"/> <FieldRef Name="Number"/> </ViewFields> <RowLimit Paged="TRUE">30</RowLimit> </View> The primary use of the ViewXML is to generate the SPDataSource that gets the data, but it is also used in the xsl transform to turn the raw xml data returned into presentable HTML, as we will see below. The part of the ViewXML that’s most important to this discussion is the <ViewFields> tag – it tells SharePoint which fields are in the view. Schema Independent XSL The XLV is now the default list view technology in SharePoint, and that means it has to scale as well as the LVWP. The only way that’s possible is for the XLV to render any uncustomized, out of the box view using a single XSLT. An uncustomized XLV has no <xsl> property at all – SharePoint supplies the same shared XSLT that is used to render every other XLV. The XSLT responsible for this lives on your server at http://<myserver>/_layouts/xsl/main.xsl – go ahead and open it up and look at it, as well as the xsl:import files vwstyles.xsl and fldtypes.xsl that do most of the work. Before we discuss how the XLV’s schema independent XSLT works, it’s worth considering how typical, schema dependent XSLT like that used in the DataFormWebPart works. In order to render a tabular view of rows and columns, any technology, XSLT included, needs to iterate through the rows, and in each row, it needs to iterate through the columns, rendering each part appropriately. The XML we’re transforming looks like this: <Rows> <Row @Field1="Hello" @Field2="World!" @Field3="" /> <Row @Field1="Some" @Field2="More" @Field3="Data" /> <Row @Field1="Yet" @Field2="More" @Field3="Data" /> </Rows> The interesting portion of a typical XSLT for this XML looks like this: <xsl:for-each select="$Rows"> <tr> <td> <xsl:value-of select="@Field1"/> </td> <td> <xsl:value-of select="@Field2"/> </td> <td> <xsl:value-of select="@Field3"/> </td> </tr> </xsl:for-each> The output HTML is a 3x3 table: | Hello | World! | | | Some | More | Data | | Yet | More | Data | This XSLT is schema dependent because it iterates through the list of columns by naming each one explicitly. Using this XSLT, the schema of the rendered list is fixed; it’s not possible to change the set of fields without changing the XSLT. The schema independent XSLT that the XLV uses iterates through the rows pretty much the same way as the example above, but it iterates through the columns quite differently. When the XLV renders the list, the XML passed in to the transformation engine includes not just the data in the <Rows> collection; it also includes the ViewXML shown above, enhanced with additional schema information. There are several instances of the field iterator in the XSLT to accommodate different view styles, but they all look something like this: <xsl:for-each select="ViewFields/FieldRef"> <xsl:apply-templates mode="PrintField" select="."> <xsl:with-param name="thisNode" select="$thisNode"/> </xsl:apply-templates> </xsl:for-each> The “ViewFields" referenced in the <xsl:for-each> is the <ViewFields> tag in the enhanced ViewXML markup, and the $thisNode variable refers to the current row in the Rows collection. The XSLT also contains a set of templates for rendering the fields. A simplified version of those field templates would look like this: <xsl:template match="FieldRef" mode="PrintField"> <xsl:param name="thisNode" select="."/> <td> <xsl:apply-templates match="FieldRef" mode="PrintValue"> <xsl:with-param name="thisNode" select="$thisNode"/> </xsl:apply-templates> </td> </xsl:template> <xsl:template match="FieldRef" mode="PrintValue>" <xsl:param name="thisNode" select="."/> <xsl:value-of select="$thisNode/@*[name()=current()/@Name]"/> </xsl:template> The first template outputs the <td> tag and then calls the next template to output the actual value. The second template is where things get interesting. In the schema dependent example above, the values were all named explicitly – @Field1, etc. We can’t do that in the schema independent XSLT, so instead, we use the FieldRef node in the ViewFields markup to get the appropriate attribute from the row. $thisNode is the row of data we’re looking at, and the current XSLT context (.) is the FieldRef node for the field we’re rendering. So the value of the funky xpath expression above – $thisNode/@*[name()=current()/@Name] – is the value of the attribute in the Row tag for the current field – exactly what we want. $thisNode is the row of data we're looking it; @* is the xpath attribute axis, and [name()=current()/@Name] selects the one attribute whose name matches the @Name attribute of the current context – the FieldRef node. The actual XSLT for the XLV has to do more than just render simple values inside unadorned <td> tags – it has to render field headers, list item menus on title fields, proper CSS classes on <td> and other tags, etc. It also has to render some field types (hyperlink, person, etc.) differently from simple text fields. All this is done through the same basic mechanism as in the simplified version above – the fields iterator calls a template to render the field, which in turn calls into a series of other templates. Some of the simpler differences make use of <xsl:apply-templates> to select the right template – the template that renders date fields has a match="FieldRef[@Type='DateTime']" instead of just match="FieldRef", for example. More complex checks make use of <xsl:if> and <xsl:choose> along with <xsl:call-template> to call the right template. XLV Model The following diagram sums up the process which turns list data and XSLT into the view you see when you browse to a SharePoint page. The data comes from an SPDataSource control, but unlike the DataFormWebPart, the SPDataSource control is dynamically generated from the ViewXML in the diagram below. The SPDataSource control produces an XML rowset containing the list data. The ViewXML gets enhanced with list schema information and added to the XML rowset containing the data. The XSLT is compiled into an XslCompiledTransform – and since we always use the same XSLT, it's only compiled once per web server. The XML rowset, with both the data and the enhanced ViewXML, is passed into the XslCompiledTransform, and the HTML output goes into the page stream and onto the screen of your browser. Modifying the View One of the benefits of this approach is that we can now change the set of fields in the view, and the XSLT will still render them properly. Want to add Field4 to the data? No problem – just add it to the ViewXML. Want to change Field1 from a simple text field to a person field? No problem – just change the field definition in SharePoint, and the enhanced ViewXML markup has the new type, so the field will render properly as the new type. What if we want to make more complex changes to the XSLT – things like conditional formatting? It's possible to do so in SharePoint designer, generally without losing the advantages of the schema independent XSLT. We'll cover that in depth in the next post in this series. Performance Although the ability to modify the view without changing the XSLT is a very nice benefit of the schema independent XSLT, it's not the most important one. The primary benefit, and the one that allows the XLV to become the default view technology, is performance and scalability. The SharePoint server loads one copy of the XSLT into memory and reuses it for every uncustomized XLV it renders, which allows the server to render many views very quickly. And the lack of a large <xsl> property on uncustomized views means that each view takes only a small amount of space in the content database, which allows a site collection to contain a large number of lists and views without space issues.  | | |  | Enabling a Button on the Ribbon Based on Selection
A lot of people have asked me how to create a button which enables if and only if a single item is selected. This isn’t something we have out of the box, but the code to get this functionality is pretty simple. I’m going to assume that you’re generally familiar with SharePoint, CustomActions, and customizing the Ribbon – if that’s not the case, you’d probably be better off researching those things before delving into this. Basically, the enabling behavior all boils down to the following few lines of code: EnabledScript="javascript:function singleEnable() { var items = SP.ListOperation.Selection.getSelectedItems(); var ci = CountDictionary(items); return (ci == 1); } singleEnable();" What this does is query to get the dictionary of selected items, and if the size of the dictionary is 1 it returns true (enable), otherwise it will return false (disable). Technically, I should have used Script on Demand to call into the SP.* namespace, but since I’m calling this from the Ribbon I have a high confidence that SP.js has been loaded already. With nothing selected: With one item selected: Clicking the button: And with more than one item selected: You could also change this to enable only if no items were selected, or if any number of items were selected. The way to make those kinds of changes should be relatively self-explanatory. The full CustomAction code for a sample Ribbon button which enables when one item is selected is at the end of this post. The code assumes the following: - You want to add this button to the New group on the Documents tab. If you want to add the button to another location, you should change the Location attribute of the CommandUIDefinition element (as well as change any appropriate attributes in the Button element, such as Id and Sequence, to match the new location).
- You have an icon image at LAYOUTS/SharePointProject1/DemoButton.jpg. If that’s not the case, you should either put an icon at that location or change the Image32x32 attribute to a valid icon path.
CustomAction code: <CustomAction Id="EnableSingleSelectButton" Location="CommandUI.Ribbon" > <CommandUIExtension> <CommandUIDefinitions> <CommandUIDefinition Location="Ribbon.Documents.New.Controls._children"> <Button Id="Ribbon.Documents.New.EnableSingleSelectButton" Alt="Button enabled on single selection" Sequence="35" LabelText="Single Select" Image32by32="/_layouts/SharePointProject1/DemoButton.png" Command="SingleSelectButton" TemplateAlias="o1" /> </CommandUIDefinition> </CommandUIDefinitions> <CommandUIHandlers> <CommandUIHandler Command="SingleSelectButton" CommandAction="javascript:alert('There is only one thing selected!');" EnabledScript="javascript:function singleEnable() { var items = SP.ListOperation.Selection.getSelectedItems(); var ci = CountDictionary(items); return (ci == 1); } singleEnable();" /> </CommandUIHandlers> </CommandUIExtension> </CustomAction>  | | |  | December 2009 Cumulative Update Packages for SharePoint Server 2007 and Windows SharePoint Services 3.0
| | |  | Operating System Requirements of SharePoint 2010
We've seen some confusion in the newsgroups and elsewhere on the versions and editions of Windows that SharePoint 2010 will run on. This post is meant to clarify some of the most common questions we have seen. SharePoint 2010 will support only 64-bit (x64) versions of Windows Server 2008 SP2 and Windows Server 2008 R2. SharePoint will not install at all on 32 bit Windows, or any earlier version of Windows such as Windows Server 2000 or Windows Server 2003. SharePoint is not supported on 'Server Core' installations of Windows Server 2008 and R2. The Server Core installations of Windows server do not contain some of the components required for SharePoint to be configured or run. To make developing for SharePoint 2010 easier, it is possible to install SharePoint on 64-bit versions of Windows Vista SP2 and Windows 7. Note that running production environments on these OSes are not supported and it will not be possible to upgrade deployments running on client versions of Windows to future versions of SharePoint. Instructions on installing SharePoint 2010 on client versions of Windows are a bit more involved and we recommend reading the instructions at http://msdn.microsoft.com/en-us/library/ee554869(office.14).aspx. | Windows version/edition (64 bit only) | SharePoint 2010 support | | Windows Server 2008 R2 Foundation | No | | Windows Server 2008 R2 Standard | Yes | | Windows Server 2008 R2 Enterprise | Yes | | Windows Server 2008 R2 Datacenter | Yes | | Windows Web Server 2008 R2 | No | | Windows HPC Server 2008 | No | | Windows Server 2008 R2 for Itanium-based systems | No | | Windows Server 2008 Standard | Yes | | Windows Server 2008 Enterprise | Yes | | Windows Server 2008 Datacenter | Yes | | Windows Web Server 2008 | No | | Windows Storage Server 2008 | No | | Windows Small Business Server 2008 | Yes* | | Windows Essential Business Server 2008 | Yes* | | Windows Server 2008 for Itanium-based systems | No | | Windows Server 2008 Foundation | No | | Windows Vista | Developer-only** | | Windows 7 | Developer-only** | * Small and Essential Business Server editions of Windows install SharePoint as an optional component. ** Support for specific editions of Windows 7/Vista are yet to be finalized, but are likely to be 'Business'/'Professional' editions and above. The list above is meant for informational purposes only. The official list of system requirements for SharePoint 2010 is located at http://technet.microsoft.com/en-us/library/cc262485(office.14).aspx and includes additional details on prerequisites and other optional components. Umesh Unnikrishnan Program Manager, SharePoint  | | | | | | Разработка на платформе Sharepoint | | |  | Практика использование WSS 3.0 в рамках предприятия
В докладе продемонстрированы возможности технологии SharePoint, приобретенные и опробованные на практике, в реальных условиях предприятия. Представлен пример описывающий простоту и легкость создания самостоятельных решений с использованием бесплатной версии продукта WSS 3.0. Стратегия примера направлена на демонстрацию возможностей как разработчикам, так и ИТ-специалистам. | | |  | Test-Driven SharePoint Development
В докладе показан пример TDD разработки веб-части под платформу SharePoint, так же приведен пример хостинга Dynamic Languages Runtime на примере IronPython | | |  | Платформа SharePoint: решение типовых бизнес-задач
SharePoint – это прежде всего платформа создания веб-приложений, которая может быть использована в решении множества задач. В докладе показывается, как создать простую систему поддержки обращений пользователей на основе бесплатного шаблона HelpDesk. | | |  | Ударим PowerShell'ом по SharePoint'у
Использование SharePoint API из PowerShell. PowerWebPart 2.0. Создание и работа с полями и списками. | | |  | Бизнес-интеллект. Использование Excel Services в построении ваших бизнес-моделей
В докладе подробно рассказывается о технологии Excel Services, а также рассматривается практическое применение данной технологии в построении распределённых бизнес-приложений. | | |  | Создание рабочего процесса в SharePoint (одобрение / отклонение документа )
Доклад знакомит слушателя с понятием рабочего процесса в SharePoint, предлагая несложный пример организации документооборота с использованием переменной рабочего процесса. Показано, как настраивается рабочий процесс для одобрения или отклонения документа рецензентом в SharePoint Designer, и как он затем тестируется в браузере. | | |  | Платформа SharePoint: автоматизации процессов и решение задач документооборота
Одной из наиболее востребованных задач в ИТ является автоматизация процессов и реализация функций документооборота. Платформа SharePoint обладает такой функциональностью, и в докладе дается общая информация о Workflow Foundation. Демонстрируются возможности WF для согласования документов с помощью визуального инструмента SharePoint Designer. | | |  | Silverlight 2, WCF и SharePoint – веселее вместе!
Технология Microsoft SharePoint позволяет разработчику использовать уже готовую платформу для хранения информации, распределения доступа к ней, создания пользовательских интерфейсов, инфраструктуры для развертывания решений, а также программных интерфейсов и веб-сервисов. Если реализовать веб-части Silverlight, взаимодействующие с веб-сервисами SharePoint, то можно создавать очень мощные веб-приложения. Посмотрите, как это делается. |
|
|
| | Sharepoint изнутри | | |  | Рецепт передачи параметров веб-части в ascx, если ascx не компилируется в dll
Разбираем распространенный случай. Вы имеете пользовательский элемент управления (ascx) который лежит у вас в папке ...\Template\CONTROLTEMPLATES и не компилируется в сборку, а компилируется "на лету". Теперь надо малой кровью создать веб-часть, которая загрузит в себя этот элемент управления и передаст ему необходимые параметры.
У меня получился следующий результат:
public class TestWebPart : System.Web.UI.WebControls.WebParts.WebPart{
private int pageSize = 25;
[WebBrowsable( true),
Personalizable(PersonalizationScope.Shared),
DefaultValue( "25"),
Category( " "),
FriendlyNameAttribute( "- "),
XmlElement(ElementName = "PageSize")]
public int PageSize{get{return pageSize;}set{pageSize = value;}}
protected override void OnInit(EventArgs e){
base.OnInit(e);
this.ExportMode = WebPartExportMode.All;
UserControl ctrl = LoadControl("~/_controltemplates/TestUserControl.ascx", new object[1] { PageSize });
if (ctrl != null){this.Controls.Add(ctrl);}
}
private UserControl LoadControl(string UserControlPath, params object[] constructorParameters){
List<Type> constParamTypes = new List<Type>();
foreach (object constParam in constructorParameters) constParamTypes.Add(constParam.GetType());
UserControl ctl = Page.LoadControl(UserControlPath) as UserControl;
ConstructorInfo constructor = ctl.GetType().BaseType.GetConstructor(constParamTypes.ToArray());
if (constructor == null){throw new MemberAccessException("The requested constructor was not found on : " + ctl.GetType().BaseType.ToString());}else{constructor.Invoke(ctl, constructorParameters);}
return ctl;
}
}  | | |  | К вопросу про то, как писать код?
| | |  | Sharepoint User Group
Группы пользователей — очень популярный формат общения людей, работающих в сфере информационных технологий. Он предполагает регулярные встречи участников и обмен опытом. Теперь у нас стало еще на одну группу больше. И эта группа полностью посвящена платформе Sharepoint.
Russian SharePoint User Group – это площадка для собраний единомышленников, работающих с продуктами и технологиями SharePoint.
Это не официальное, то есть не организуемое сотрудниками Microsoft собрание. Организаторы обещают, что встречи RUSUG будут проводиться раз в три-четыре недели. Запланированы доклады MVP по SharePoint, в том числе — из других стран. Кроме того, ожидается участие сотрудников Microsoft Consulting Services, работающих с технологией SharePoint.
Темами ближайших встречь будет новая платформа — SharePoint 2010.
Более точную информацию ищите на сайте организаторов.  | | |  | Отправлем уведомление о встрече по e-mail (Outlook 2007 meeting appointment)
Недавно столкнулась с задачей отправлять пользователю не обычное письмо, а meeting appointment для Outlook 2007.
Класс MailMessage позволяет добавлять в письмо различные представления. В том числе и календарь и html представление. Но для того, чтобы добавить такое представление нужно сгенерировать хитрый текст. Вот что из этого вышло:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net.Mail;
using System.Security.Principal;
using System.DirectoryServices;
using System.Net;
namespace TestProj
{
public class Appointment
{
public Appointment(){}
public void EmailAppointment(DateTime StartDate, DateTime EndDate, String Location, String OrganizerName, String OrganizerEmail, String Summary, String Subject, MailAddressCollection AttendeeList)
{
MailMessage Mail = new MailMessage();
//html
System.Net.Mime.ContentType HTMLType = new System.Net.Mime.ContentType("text/html");
AlternateView HTMLView = AlternateView.CreateAlternateViewFromString(GetHTML(StartDate, EndDate, Location, OrganizerName, OrganizerEmail, Summary, Subject, AttendeeList), HTMLType);
// calendar
System.Net.Mime.ContentType CalendarType = new System.Net.Mime.ContentType("text/calendar");
CalendarType.Parameters.Add( "method", "REQUEST");
CalendarType.Parameters.Add( "name", "meeting.ics");
AlternateView CalendarView = AlternateView.CreateAlternateViewFromString(GetCalendar(StartDate, EndDate, Location, OrganizerName, OrganizerEmail, Summary, Subject, AttendeeList), CalendarType);
CalendarView.TransferEncoding = System.Net.Mime.TransferEncoding.SevenBit;
Mail.AlternateViews.Add(HTMLView);
Mail.AlternateViews.Add(CalendarView);
Mail.From = new MailAddress(OrganizerEmail);
foreach (MailAddress attendee in AttendeeList)
{
Mail.To.Add(attendee);
}
Mail.Subject = Subject;
SmtpClient Server = new SmtpClient("server1", 25);
Server.Send(Mail);
}
private string GetHTML(DateTime StartDate, DateTime EndDate, String Location, String OrganizerName, String OrganizerEmail, String Summary, String Subject, MailAddressCollection AttendeeList)
{
string bodyHTML = "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 3.2//EN\">\r\n<HTML>\r\n<HEAD>\r\n<META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=utf-8\">\r\n<META NAME=\"Generator\" CONTENT=\"MS Exchange Server version 6.5.7652.24\">\r\n<TITLE>{0}</TITLE>\r\n</HEAD>\r\n<BODY>\r\n<!-- Converted from text/plain format -->\r\n<P><FONT SIZE=2>Type:Single Meeting<BR>\r\nOrganizer:{1}<BR>\r\nStart Time:{2}<BR>\r\nEnd Time:{3}<BR>\r\nTime Zone:{4}<BR>\r\nLocation:{5}<BR>\r\n<BR>\r\n*~*~*~*~*~*~*~*~*~*<BR>\r\n<BR>\r\n{6}<BR>\r\n</FONT>\r\n</P>\r\n\r\n</BODY>\r\n</HTML>";
return string.Format(bodyHTML,
Summary,
OrganizerName,
StartDate.ToLongDateString() + " " + StartDate.ToLongTimeString(),
EndDate.ToLongDateString() + " " + EndDate.ToLongTimeString(),
System. TimeZone.CurrentTimeZone.StandardName,
Location,
Summary);
}
private string GetCalendar(DateTime StartDate, DateTime EndDate, String Location, String OrganizerName, String OrganizerEmail, String Summary, String Subject, MailAddressCollection AttendeeList)
{
string DateFormatUsing="yyyyMMddTHHmmssZ";
string bodyCalendar = "BEGIN:VCALENDAR\r\nMETHOD:REQUEST\r\nPRODID:Microsoft CDO for Microsoft Exchange\r\nVERSION:2.0\r\nBEGIN:VTIMEZONE\r\nTZID:(GMT-06.00) Central Time (US & Canada)\r\nX-MICROSOFT-CDO-TZID:11\r\nBEGIN:STANDARD\r\nDTSTART:16010101T020000\r\nTZOFFSETFROM:-0500\r\nTZOFFSETTO:-0600\r\nRRULE:FREQ=YEARLY;WKST=MO;INTERVAL=1;BYMONTH=11;BYDAY=1SU\r\nEND:STANDARD\r\nBEGIN:DAYLIGHT\r\nDTSTART:16010101T020000\r\nTZOFFSETFROM:-0600\r\nTZOFFSETTO:-0500\r\nRRULE:FREQ=YEARLY;WKST=MO;INTERVAL=1;BYMONTH=3;BYDAY=2SU\r\nEND:DAYLIGHT\r\nEND:VTIMEZONE\r\nBEGIN:VEVENT\r\nDTSTAMP:{8}\r\nDTSTART:{0}\r\nSUMMARY:{7}\r\nUID:{5}\r\nATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN=\"{9}\":MAILTO:{9}\r\nACTION;RSVP=TRUE;CN=\"{4}\":MAILTO:{4}\r\nORGANIZER;CN=\"{3}\":mailto:{4}\r\nLOCATION:{2}\r\nDTEND:{1}\r\nDESCRIPTION:{7}\\N\r\nSEQUENCE:1\r\nPRIORITY:5\r\nCLASS:\r\nCREATED:{8}\r\nLAST-MODIFIED:{8}\r\nSTATUS:CONFIRMED\r\nTRANSP:OPAQUE\r\nX-MICROSOFT-CDO-BUSYSTATUS:BUSY\r\nX-MICROSOFT-CDO-INSTTYPE:0\r\nX-MICROSOFT-CDO-INTENDEDSTATUS:BUSY\r\nX-MICROSOFT-CDO-ALLDAYEVENT:FALSE\r\nX-MICROSOFT-CDO-IMPORTANCE:1\r\nX-MICROSOFT-CDO-OWNERAPPTID:-1\r\nX-MICROSOFT-CDO-ATTENDEE-CRITICAL-CHANGE:{8}\r\nX-MICROSOFT-CDO-OWNER-CRITICAL-CHANGE:{8}\r\nBEGIN:VALARM\r\nACTION:DISPLAY\r\nDESCRIPTION:REMINDER\r\nTRIGGER;RELATED=START:-PT00H15M00S\r\nEND:VALARM\r\nEND:VEVENT\r\nEND:VCALENDAR\r\n";
bodyCalendar = string.Format(bodyCalendar,
StartDate.ToUniversalTime().ToString(DateFormatUsing),
EndDate.ToUniversalTime().ToString(DateFormatUsing),
Location,
OrganizerName,
OrganizerEmail,
Guid.NewGuid().ToString("B"),
Summary,
Subject,
DateTime.Now.ToUniversalTime().ToString(DateFormatUsing),
AttendeeList.ToString());
return bodyCalendar;
}
}
}  | | |  | Материалы со встречи разработчиков в офисе Microsoft
Как и обещала, выкладываю материалы.
Встреча прошла не без технических проблем. Но в позитивном ключе. Это был мой первый раз на UserGroup. Думаю, что не последний.
Надеюсь вы узнали для себя что-то новое )
Презентацию и демо проект можно скачать тут: http://www.zshare.net/download/656659556d798df7/
Всем спасибо, кто был с нами!  | | |  | Встреча разработчиков в офисе Microsoft, посвященная дню программиста
16 сентября с 19.00 до 22.00 абсолютно безвоздмездно в Крылатских холмах в офисе Microsoft состоится очередная встреча Mocковского сообщества .Net разработчиков.
Мой доклад первый по счету и, как всегда, про Sharepoint.
"Разработка веб-сайтов на Sharepoint В докладе покажут, что не каждый рожденный ползать не может летать. Посмотрите на SharePoint не только со стороны построения внутренних порталов и документооборота, но и со стороны создания привлекательных веб-сайтов, удобных для пользователей и администраторов. Посмотрите на то, как до неузнаваемости изменить такой привычный внешний вид портала и сделать сверкающий и привлекательный веб-сайт."
Подробности ищите тут: http://mdna.ineta.ru/Events/EventMultiSessionInfo.aspx?Id=344d0f01-4ac4-4f5b-89ae-35b66f8f5e3c  | | |  | Веяния времени. У меня теперь тоже есть twitter
Держалась, держалась и тоже завела себе Twitter. Если что, можно спрашивать меня о чем-нибудь важном или интересном.  | | | | | | Блоги на ITcommunity | | |  | Шаблон проекта веб-части
Выложил шаблон проекта по разработке на C# веб-части для Шарепойнта. Включены средства локализации, установки, обновления и др. Technorati Tags: Sharepoint  | | |  | Хозяйке на заметку: Процесс бюджетирования своими силами
С выходом продукта PerformancePoint 2007 заказчики получили доступный по стоимости инструмент, позволяющий решать задачи Business Intelligence – планирование, мониторинг ключевых показателей и анализ данных. Решения, существующие на рынке до этого, были доступны далеко не всем компаниям, прежде всего из за их стоимости. Однако позже было принято решение объединить PerformancePoint с Sharepoint, тем самым сделав эту технологию еще более доступной. При этом пришлось пожертвовать частью функционала – а именно модуль планирования...   | | |  | Совместное использование Office и SharePoint
В преддверии лонча 2010 линейки Office System и SharePoint мы активно демонстрируем новые продукты нашим заказчикам и партнерам. На каждой встрече встает вопрос – “А от чего мне придется отказаться, если я буду использовать SPS 2010 не с Office 2010?” На этот вопрос по верхам может ответить вот этот документ – Business Productivity at Its [...]  | | |  | Поведение метода Lists.GetListItems
Заинтересовали результаты поисков по теме, поднятой на GDN – получается, что метод какой-то совсем кривой и некоторые параметры обрабатывать не умеет. С учётом того, что в некоторых своих разработках метод использую, провёл небольшое исследование поведения метода Lists.GetListItems (обработка параметров viewFields и queryOptions). Краткие результаты: - Поведение метода зависит от типа ссылки на сервис (WCF или WS) и от типа программы, в которой метод используется (веб-часть/консольное приложение)...
 | | |  | Создание привязки иконок приложений для новых типов файлов в библиотеках документов SharePoint Server 2007
При добавлении в библиотеку документов SharePoint файлов имеющих расширения незарегистрированных в SP типов - визуальное представление таких документов выглядит в форме белого листа. Если к примеру мы хотим зарегистрировать два новых типа файлов, сделать это можно так: На фронт-энд сервере SharePoint в каталог
C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\TEMPLATE\IMAGES\ добавляем файлы с изображением нужных нам иконок в формате gif размером 16x16. Пускай к примеру в нашем случае это ICPS1.gif (файлы скриптов PowerShell) и ICPDF.GIF (файлы Adobe PDF) Далее в файле
C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\TEMPLATE\XML\DOCICON.XML
делаем следующие изменения в соответствующей секции: <DocIcons> <ByExtension> <Mapping Key="pdf" Value="ICPDF.GIF"/> <Mapping Key="ps1" Value="ICPS1.gif"/> </ByExtension> </DocIcons>
Затем перегружаем IIS командой
iisreset /noforce
и открыв представление библиотеки документов с файлами типа *.pdf и *.ps1 любуемся результатом ))
 | | |  | Добавление иконки Favicon на узел SharePoint 2007
Для внедрения иконки Favicon в SharePoint нам нужно будет выполнить незначительную модификацию шаблона главной страницы Master Page на фронт-энд сервере SharePoint. Для начала с помощью бесплатного веб-сервиса FavIcon from Pics создадим и откастомайзим нашу иконку для сохранения в избранном браузеров а также анимированный gif для отображения в заголовке адресной строки браузеров. На фронт-энд сервере MOSS помещаем наш кастомный файл Favicon.ico в каталог C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\TEMPLATE\IMAGES\
В Master Page вносим изменение - в заголовке страницы в конце секции <head></head> вносим строчки со ссылкой на нашу иконку:
<link rel="shortcut icon" href="/_layouts/images/favicon.ico" /> <link rel="icon" type="image/gif" href="/_layouts/images/animated_favicon.gif">
В браузере рефрешим страницу и проверяем результат...
 | | |  | Интеграция обновлений в дистрибутив SharePoint Server 2007
Рассмотрим пример процесса создания дистрибутива SharePoint Server 2007 с интегрированным пакетом обновлений и кумулятивным обновлением.
1) Скачиваем оригинальный дистрибутивный пакет финальной версии SW_DVD5_Office_SharePoint_Server_2007_64Bit_English_-2_1_PA_BP_ISO_Onl_X13-38819.ISO
Распаковываем в оригинальный дистрибутив в каталог Install 2) Скачиваем пакет исправлений Windows SharePoint Services 3.0 Service Pack 2 (x64), распаковываем его в каталог Install в подкаталог Updates wssv3sp2-kb953338-x64-fullfile-en-us.exe /extract:"C:\Install\Updates" 3) Скачиваем пакет Windows SharePoint Services 3.0 April cumulative update package (x64), распаковываем его в каталог Install в подкаталог Updates wss-kb968850-fullfile-x64-glb.exe /extract:"C:\Install\Updates" 4) Скачиваем пакет Microsoft Office servers 2007 Service Pack 2 (x64), распаковываем его в каталог Install в подкаталог Updates
officeserver2007sp2-kb953334-x64-fullfile-en-us.exe /extract:"C:\Install\Updates"
5) Скачиваем пакет Office SharePoint Server 2007 April cumulative update package (x64), распаковываем его в каталог Install в подкаталог Updates
office-kb968851-fullfile-x64-glb.exe /extract:"C:\Install\Updates" Примечание В силу того что мы используем не WSS а SharePoint Server, надо удалить из каталога Updates файл wsssetup.dll, чтобы в процессе установки обновлений не возникло конфликтов с файлом svrsetup.dll Дистрибутив готов...
 | | | | | | Новости Russian Sharepoint UG | | |  | Мы переехали на новый домен
Основной текст: Наконец, мы сделали это! Мы переехали на новый отдельный домен http://rusug.net!
Можно начинать поздравлять с этим событием. Есть ещё некоторые замечания, над устранением которых мы работаем. Возможно вы заметите ещё какие-то ошибки, тогда обязательно напишите нам об этом в специальной теме.
Опубликован: 03.02.2010 12:17 |
|
|
| | TechNet Magazine | | |  | SharePoint изнутри: Использование службы Kerberos для проверки подлинности SharePoint
Январь 2010
Kerberos — это один из самых популярных протоколов, используемых для проверки подлинности на предприятии. Из этой статьи вы узнаете, как максимально эффективно использовать проверку подлинности на основе Kerberos в среде SharePoint. | | |  | SharePoint изнутри: Подготовка к выпуску SharePoint 2010
Ноябрь 2009
Подготовка к выпуску SharePoint 2010 означает ознакомление с вариантами обновления и миграции, а также действиями, которые необходимо предпринять, чтобы подготовить ИТ-среду. В данной статье Пав Черны дает советы и практические рекомендации. | | |  | Inside SharePoint: Protect SharePoint Data
October 2009
Pav Cherny looks at the data-protection strategies and options available with SharePoint, focusing on the most issues and how to resolve them. | | |  | Inside SharePoint: Securing External SharePoint Communications
September 2009
Protecting SharePoint from the bad guys involves understanding your topology and layering solutions. | | |  | Inside SharePoint: Improving SharePoint Performance
August 2009
Pav Cherney presents an overview of key SharePoint architecture components, describes how they can lead to common performance issues, and discusses how to resolve and troubleshoot problems. | | |  | Geek of all Trades: Microsoft's New Certifications: What They Are, Why They Matter
August 2009
With the Microsoft Certified Systems Engineer credential being retired for all iterations but Windows Server 2003, a new certification program has been created. Greg Shields explains how this new certification path helps to better identify where your skills lie. | | |  | Inside SharePoint: SharePoint Security Hardening
July 2009
SharePoint security hardening requires an end-to-end approach that addresses the full spectrum of security dependencies and risks within and across server farms. Pav Cherny discusses how deploying NAP with IPsec enforcement is an effective way to harden your SharePoint infrastructure. | | | | | | Sharepoint Magazine | | |  | Setting up Forms Based Authentication in SharePoint 2010
Welcome to the first of a 4 part series where I'll be guiding you through the do's and don'ts of setting up SharePoint FBA on different versions of the SharePoint platforms, being MOSS 2007 and SharePoint 2010. | | |  | Partner Spotlight: Mint Management Technologies
Mint Management Technologies (Pty) Ltd was established in 1971 and has rendered market intelligence gathering and deployment solutions to South African corporate and multi-national companies for over 38 years. | | |  | SPoint.me – The SharePoint Social Network
It gives me great pleasure to introduce you to SPoint.me . SPoint is aiming to become the premier Social Network for people in the SharePoint Industry. Its a little bit of Facebook, Twitter, LinkedIn, Digg, and Wordpress, all rolled into one. | | |  | Everything You Need to Know about BDC: Part 8 of 8
An action is simply an operation upon a selected item. The operation can retrieve information about the selected item, or it can launch a program or Web page with the selected item as a parameter. | | |  | Avoid Newbie Mistakes: 10 Steps to Successful SharePoint Deployments
A common word that keeps popping up around SharePoint deployments is “Governance,” as if it will help you avoid chaos and have a more successful deployment. The answer is, when executed properly, it can. | | |  | SharePoint’s Branding Limitations, Part 4
Not all graphical designs for a portal will work in a SharePoint environment. There are a couple of limitations the Graphical Designer must know. A Graphical designer needs to know the scope of the graphical design.
This article will give the graphical designers more insight into the effect of these design decisions. | | |  | SharePoint’s Branding Limitations, Part 3
Not all graphical designs for a portal will work in a SharePoint environment. There are a couple of limitations the Graphical Designer must know. A Graphical designer needs to know the scope of the graphical design.
This article will give the graphical designers more insight into the effect of these design decisions. |
|
|
| | Форум на GDN | | |  | WSS3 + MS Office Outlook2007. Адресная книга + сертификаты.
Для того что бы корпоративная адресная книга была полноценной, она должна поддерживать хранение сертификатов (открытых ключей) контактов.
В Sharepoint есть подходящий для этого List - Contacts.
Если импортировать файл .vcard(в котором есть сертификат) в Outlook 2007 и затем копировать этот контакт в общие контакты, подключенные к списку contacts WSS3 то соответствующий контакт все таки получает сертификат. В этом можно удостовериться, подключив Outlook 2007 к нашему списку contacts на другом компьютере. Функция шифрования для данного контакта работает – проверено.
Теперь задача.
Необходимо написать клиентский интерфейс для добавления/редактирования/резервного копирования контактов (что бы при этом не терялись сертификаты) .
То что сертификаты все таки хранятся в WSS видно тут:
| | |  | Ссылка на Вложение в DispForm?
Sharepoint Server 2007: Вставил вместо стандартного настраиваемый список в Sharepoint Designer 2007. Пропала ссылка на Вложения. Как ее восстановить? Что в коде прописать нужно? Подмогните плиз.... | | |  | ХЕЛП!!! АЙ НИД Ё ХЕЛП!!! :)
Доброго времени суток :) у меня есть такой вопросик по ШарПоинту. Например есть два списка. Один список хранит первоначальные данные. А второй список представляет эти данные в более приемлимом виде. Второе реализуется (в т.ч.) с помощью поля типа "данные уже имеющиеся на узле". Однако, при использовании данного типа, срабатывает система выпадающего меню и пользователю предлагается выбрать все, что его душе угодно по данному полю в другом списке. Можно ли как-то привязать данные к друг другу? Т.е. чтобы этот элемент срабатывал автоматически: например, если в первом списке есть Пупкин Пупка Пупкович ( в три поля), то во втором списке при выборе фамилии, имя и отчество подставилось бы уже самостоятельно! и желательно без настройки рабочего процесса.
Если кто сталкивался или знает решение, подскажите, пожалуйста :) Заранее спасибо :) | | |  | Поиск SharePoint
Странные дела творятся други.
Есть у меня список - Сотрудники и библиотека документов с приказами.
В списке сотрудники есть г-н Абрамов, в списке приказов есть документ с аббревиатурой АБ. Набираю в строке поиска Аб. Из списка сотрудников не находится г-н Абрамов, все документы из библиотеки с аббревиатурой Аб находятся.
Вопрос в следующем - почему так? И есть ли возможность настроить поиск на начальные буквы слов. Меня интересует только один список Сотрудники (очень уж хочется искать по первым буквам фамилии)
Перегуглил уже все, что можно, буду благодарен за любую помощь. | | |  | Custom HTTPModule
Первый раз создаю свой HTTPModule в sharepoint. Все по порядку. Код тестового модуля
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web;
using System.Security.Principal;
using System.Web.UI;
using Microsoft.SharePoint;
using Microsoft.SharePoint.WebControls;
using Microsoft.SharePoint.WebPartPages;
namespace SPModule
{
public class Moduleclass : IHttpModule
{
public Moduleclass()
{
}
public void Init(HttpApplication r_objApplication)
{
// Register our event handler with Application object.
r_objApplication.PreSendRequestContent += new EventHandler(r_objApplication_PreSendRequestContent);
}
void r_objApplication_PreSendRequestContent(object sender, EventArgs e)
{
HttpApplication objApp = (HttpApplication)sender;
HttpContext objContext = (HttpContext) objApp.Context ;
objContext.Response.Write("TEST!!");
}
public void Dispose()
{
}
}
}
Положил эту сборку в GAC.
Посмотрел его настройки.
Потом в каталоге шарепоинта C:\Inetpub\wwwroot\wss\VirtualDirectories\80 добавил в конфиг <add name="MySPModule" type="SPModule.Moduleclass, SPModule, Version=1.0.0.0, Culture=neutral, PublicKeyToken=ac67bb386fe2efa6"/>
Захожу на портал. ХРЕН. Моя тестовая сторка там не появилась.
Пробовал править конфиг в каталоге \Microsoft Shared\web server extensions\12\CONFIG
Что я ещё пропустил? Есть варианты? | | |  | WSS и SQL
Доброго времени суток!
БОльше года отработал WSS 3.0 в связке с MS SQL 2005. Все нормально.
Но тут наконец заметил, что WSS при установке насоздавал несколько баз и многие из них достаточно большого объема.
SharedServices_DB - 11,75 Мб
SharedServices_Search_DB - 1617,25 Мб
SharePoint-27471 - 1346,81 Мб
SharePoint_AdminContent_f804b2d3-c193-41b6-8218-25ac534e7d25 - 71,31 Мб
SharePoint_Config - 18485,06 Мб
WSS_Content - 85065,81 Mб
WSS_Search_SRV-APP - 244,25 Мб
И возник у меня вопрос про эти базы:
1. Для чего каждая из них?
2. Почему такой большой объем у некоторых баз, отличных от WSS_Content?
3. 90% каждой из баз занимают логи - и стандартными средствами SQl подрезка базы логов не выполняется (Shrink) | | |  | Получить ссылку на Item
Всем привет. не могу получить ссылку полную на свой item, чтобы можно было из пришедшего письма перейти сразу на Item нужный.
Делаю так
workflowProperties.Item.Url
Но получается как-то ерунда... List/List/1._000 или как-то так... | | | | | | Хабрахабр | | |  | Microsoft SharePoint / Работа с учётными записями FBA через C#
Помимо всего прочего, MOSS 2007 поддерживает form-based authorization (FBA), в частности, использование провайдера ASP.NET (в нашем примере этот провайдер в web.config носил имя «aspnetsqlmembershipprovider»). Создание, изменение и удаление таких учётных записей и их профилей у нас изначально делалось консольным приложением: когда нашлось время, я решил этот процесс оптимизировать, и, вместо связки «GET запрос — обработчик параметров — запуск приложения на сервере с этими параметрами», работать с пользователями через отдельное веб-приложение.
Хочу поделиться подводными камнями, на которые я натолкнулся в процессе, на примере удаления пользователей.
| | |  | Microsoft SharePoint / Семь стартапов за неделю на платформе Sharepoint 2010
Важность социальных сетей очевидна, причем все чаще в этой сфере ищут решения своих задач представители бизнеса. Этот факт прекрасно понимают и в Microsoft. SharePoint уже давно зарекомендовал себя в бизнес-среде. И в новой версии SharePoint 2010 функционал для взаимодействия пользователей существенно расширен.
Sharepoint это платформа приложений и возможность для стартапов быстро реализовать идею и сразу получить рынок пользователей Sharepoint для распространения. В январе прошел конкурс, где стартапам предложили за одну неделю создать приложение на платформе SharePoint.
| | |  | Microsoft SharePoint / Использование лямбд для построения CAML-запросов в SharePoint'е
Статья от коллег, SharePoint-разработчиков.
Это статья написана для тех разработчиков SharePoint-based продуктов, которые время от времени сталкиваются с необходимостью делать выборки из одного и/или нескольких списков SharePoint'а — что, в принципе, случается практически всегда :-). В этой статье я рассмотрю несколько способов реализаций таких выборок с их достоинствами и недостатками. В конце статьи, я дам пример использования недавно опубликованного проекта Camlex.NET ( http://camlex.codeplex.com/), который кажется мне наиболее удобным для этого случая. Итак…
| | |  | Microsoft SharePoint / [Ссылка] Виртуальная машина SharePoint Server 2010 Beta 2
Майкрософт наконец выложила 2 VHD виртуальных машин с SharePoint Server 2010 Beta. Помимо собственно SharePoint машины включают и другие продукты, которые обычно используют совместно: Exchange Server 2010, Office Communication Server 2007 R2, Office 2010 Beta 2 и т.д.
Для разработки установлена Visual Studio 2010 Beta 2. | | |  | Microsoft SharePoint / SharePoint 2010: Business Connectivity Services
Введение
В данной статье я хочу рассказать об одной из самых, на мой взгляд, полезных возможностях в SharePoint 2010. Речь пойдёт о BCS: Business Data Conectivity Services. BCS с точки зрения вариантов использования представляет собой некоторый аналог того, что было известно в MOSS 2007 как BDC (Business Data Catalog). Однако в новой версии SharePoint эти сервисы намного повзрослели. Так в чём же концептуальная разница:
| | |  | Microsoft SharePoint / SharePoint 2010 Beta доступен для закачки TechNet и MSDN подписчикам
Дождались, наконец-то SharePoint Server 2010 Beta доступен для скачивания
подписчикам TechNet и MSDN.
https://msdn.microsoft.com/en-us/subscriptions/securedownloads/default.aspx
Напоминаю вам, что доступен он только в x64 редакциях, а так же есть Русская
редакция.
| | |  | Microsoft SharePoint / REPL WebPart для SharePoint
Intro
 Сегодня я расскажу о прототипе первого компонента под ярлычком Sapphire. Это REPL WebPart. Эта веб-часть предназначенная для производства оперативных изменений на серверной стороне SharePoint, так же для удаленного исполнения скриптов и тестирования некоторых кусков кода.
PreBody
Производство данной веб-части было инициированно в довольно таки частых потребностях исполнения серверного кода с достаточной оперативностью, в недоступности средств разработки под рукой.
Здесь есть небольшая презетнация, в которой я постарался отобразить принципы работы Repl WebPart: Sapphire Environment Repl WebPart
В добавок к слайдам расскажу о том, что веб-часть представляет собой классический хостинг Dynamic Languages Runtime языков, пока из которых доступен только Python.
| | | | | | DkmS's blog | | |  | Атрибутный сюрприз
Technorati Tags: Sharepoint Нынче сюрприз преподнёс класс System.ComponentModel.DefaultValueAttribute. Выяснилось, что при его использовании в свойствах веб-частей можно задавать значение false. Задание же true приводит к тому, что свойство с таким атрибутом при изменениях не сохраняет значение true. Обходится присваиванием свойству нужного значения по умолчанию в конструкторе веб-части. Можно и отказаться от этого атрибута… | | |  | Шаблон проекта веб-части
Выложил шаблон проекта по разработке на C# веб-части для Шарепойнта. Включены средства локализации, установки, обновления и др. Technorati Tags: Sharepoint | | |  | Поведение метода Lists.GetListItems
Заинтересовали результаты поисков по теме, поднятой на GDN – получается, что метод какой-то совсем кривой и некоторые параметры обрабатывать не умеет. С учётом того, что в некоторых своих разработках метод использую, провёл небольшое исследование поведения метода Lists.GetListItems (обработка параметров viewFields и queryOptions). Краткие результаты: - Поведение метода зависит от типа ссылки на сервис (WCF или WS) и от типа программы, в которой метод используется (веб-часть/консольное приложение).
- В веб-части параметры обрабатываются правильно при использовании WS-ссылки.
- В консольном приложении - при использовании WCF-ссылки.
- Элемент IncludeMandatoryColumns не обрабатывается во всех вариантах.
При исследовании использовалась Visual Studio 2008. При использовании Студии 2010 RC(консольное приложение, переработанное с учётом ) WCF-ссылка не принимает во внимание все параметры, WS-ссылка правильно обрабатывает только viewFields. Technorati Tags: Sharepoint | | |  | Сюрприз-2010
На этот раз сюрприз преподнесла новейшая и крутейшая Visual Studio 2010 RC. Наблюдается сюрприз при генерации ссылки на сервис (Service Reference) для работы со списками Шарепойнта /_vti_bin/Lists.asmx. Результаты этой генерации заметно отличаются от таковых, выполненных Студией 2008 и от описаний в SDK. Например, метод клиента GetListItems отличается как по типам параметров, так и по типу результата (сверху – описание из VS 2010, внизу – из VS 2008): При этом результат не зависит от целевой версии .NET. Мало того, при конвертации Студией 2010 проекта с правильным прокси типы тоже конвертируются и проект перестаёт собираться. В общем, при переходе на новую Студию скучно не будет… | | |  | Сюрпризик
Теперь – от поля SPFieldUser. Оказалось, что поведение поля существенно зависит от значения свойства AllowMultipleValues. Например, при значении true обращение к данным элемента списка с таким полем (item[fieldName]) приводит к получению объекта типа SPFieldUserValueCollection (как, собственно, и можно ожидать). Однако при значении AllowMultipleValues == false тип полученного объекта – вовсе не SPFieldUserValue, а String. Похоже, кто-то где-то лишний раз ToString() присобачил… Technorati Tags: Sharepoint | | |  | Забавное…
Выяснилось <здесь должна быть ссылка на форум GDN, но он упал и не поднимается >, что для сохранения результатов редактирования элемента списка пользователю требуется разрешение на …удаление. Проверить просто – чуть-чуть измените настройку уровня разрешений “Чтение”:  После этого попробуйте выполнить редактирование и сохранение под пользователем, имеющим такой уровень разрешений. Несколько весёлых минут…  Technorati Tags: Sharepoint | | |  | Visual Studio 2010 и Sharepoint 2007
Задался целью выяснить, можно ли обойтись одной Студией (желательно, 2010-й) для разработок (хотя бы, для модификаций имеющихся) – веб-частей, утилит, рабочих процессов и т.д. для текущей версии Sharepoint (до использования новой версии и разработок для неё когда ещё дело дойдёт…). Выяснилось, что новая Студия вполне спокойно относится к проектам, сделанным в Студии 2008 без использования VSeWss – их можно редактировать, компилировать и делать другие необходимые действия. Даже можно включить использование .NET 4.0, правда, исполняться полученный код не станет . При отладке нужно переключить версию отлаживаемого управляемого кода на 2.0 (по умолчанию используется 4.0, а они вместе отлаживаться не могут). Для разработок же под Silverlight новая Студия намного удобней – в неё включили часть функциональности Expression и отпала необходимость прыгать между приложениями. В общем, можно потихоньку переползать на Студию 2010 – по крайней мере, выглядит она “красивше”. Правда, новый Help 3.0 не нравится совсем: с запуском дополнительного web-сервера примириться ещё можно, но вот демонстрация материала в окне браузера раздражает очень сильно - вызывается не новый экземпляр браузера, а тот, который был запущен последним (правда, на собственное окно браузера почем-то внимания не обращается). [А я для удобства работы использую несколько рабочих столов и появление браузера с другого стола генерирует не очень печатные слова…]. Спишем пока что на бету. | | | | | | Nick's blog | | |  | Новшества в SharePoint 2010
Составил я тут обзор новых функций, которые появятся в SharePoint 2010. Набор, думаю, не полный.
Когда стал выкладывать, то понял, что с выкладкой изображений имеются определенные проблемы, так что решил кинуть целым вордовским файлом.
Если Вы найдете еще какие вкусности, то кидайет их в комменты к этой статье. Буду рад содействию =). | | |  | SharePoint 4.0 откладывется. А также Как я ставил Windows 7
На днях вычитал в Инете не самую радостную новость. Выпуск нового SharePoint'а, включая WSS 4.0 и Office Server, откладывается. Ранее Microsoft собирались презентовать новый SP осенью этого года в Лос-Анджелесе. Но, по последним данным, выход откладывается на 2010 год. Вместе с этим откладывается и выпуск Office 14. Да и вообще, Microsoft обещает чуть ли не одновременно запустить Windows 7, Office 14 и SharePoint 4.0.
Кстати про Windows 7. Сегодня я, наконец-то, вошел в состав его тестировщиков, переустановив ось на своем ноутбуке. Где-то с пол года назад у меня рухнула моя XP на моем домашнем компьютере... | | |  | Windows Internal Database
Для всех, кто считал, что используя Windows SharePoint Services Вам придется рано или поздно раскошелиться на систему управления базами данных, есть отличная новость - появление Windows Internal Database.
Некоторые скептически относились к WSS, расценивая его, как способ повысить продажи SQL Server'а. Конечно же, WSS можно поставить на бесплатный SQL Server 2005 Express Edition. Но его главное ограничение заключается в ограничении максимального размера базы данных в 4 Гб. Конечно это лучше, чем MSDE с 2Гб, которое существовало в пору SQL 2000. Но, все же, заставляет постоянно думать о том, что начав использовать "бесплатный" WSS, будь уж добр раскошелься на SQL Server.
Теперь Microsoft положила конец этим страхам, выходом Windows Internal Database... | | |  | PerformancePoint войдет в состав SharePoint Server
На днях вычитал в одном из мсдн-блогов отличную новость.
PeformancePoint в скором будущем войдет в состав SharePoint Server'а. Это произойдет с выходом SP3 для PerformancePoint. К сожалению выход этого сервис пака запланирован лишь на лето это года. Похоже что это удивительное решение Microsoft связано с возникшим мировым финансовым кризисом. Хотя, если это и так, то объединение PerformancePoint'а с SharePoint'ом может немного припоздниться. Не смотрять ни на что, это, безусловно, отличная новость. Ведь PerformancePoint как продукт был довольно не дешевым и рассчитан в основном на руководителей компаний... | | |  | ChartPart для SharePoint
Не так давно наткнулся на одну новую веб-часть, созданную Wictor Wilén. Она позволяет создавать графики основанные на данных списков SharePoint. Виктор, предлагал другим помочь ему в создании локализаций этой веб-части. Я решил откликнуться на его призыв... И вот встречаем ChartPart For SharePoint с русской локализацией.
| | |  | Оповещения с динамическим получателем в SharePoint
  На форуме gotdotnet'а не раз
поднимался вопрос о том, как создать оповещение пользователю, указанному в том
или ином поле списка. Так, как это сделано, например, для списка задач, где
можно автоматически оповещать о создании задачи пользователя, которому эта
задача назначена.
  Зачастую
следовали ответы о создании Workflow или написании обработчика событий, который
будет делать SPUtility.SendEmail(... | | |  | Баг прав создания оповещения на элемент в SharePoint
Не так давно обнаружил один довольно забавный баг связанный с правом создания оповещения на элемент. По-моему, там даже несколько взаимосвязанных багов.
Почему-то, если у Вас есть право на создание оповещений на конкретный элемент списка, но нет права на создание оповещений на самом Web'е, при переходе на страницу создания оповещения на элемент Вы получите ошибку «Нет доступа». Вроде бы, не смертельно, ведь можно дать права на создание оповещений на Web, а для списков отменить наследование и не давать таких прав, хотя это, безусловно, не очень-то удобно... | | | | | | Grabar's blog | | |  | Доклад по PerformancePoint Server 2007 на сайте TechDays.ru
В докладе рассматриваются проблемы технологической организации управления эффективностью бизнеса в современных компаниях, и подробно демонстрируется их решение с помощью Microsoft PerformancePoint, как инструмента для построения цифровых панелей индикаторов.
http://www.techdays.ru/videos/1507.html | | |  | How to allow only Folder items to be created in the List root folder
Sometimes you need to prohibit creation of list items in the root folder of the list. For example, you invented some pretty looking, folder-based, issue cataloguing system, but end users create issues in list’s root folder no matter how hard you beg them not to.
Below you will find the code that looks into HttpContext for [...] | | |  | Move list item into a subfolder in the same list
Someone asked how to copy the list item into a subfolder on the same list. The code the guy provided that used SPListItem.CopyTo(url) did not work for him and was yelling the following:
Invalid URI: The format of the URI could not be determined.
The reason was the fact the guy used destination item property Url. This property [...] | | |  | Краткий обзор возможностей SharePoint 2010 для конечных пользователей
В этой статье я привожу вольный перевод информации доступной на английском языке в разделе “Обзор” на сайте SharePoint 2010
Новый пользовательский интерфейс
Ribbon, знакомый пользователям Office 2007 приходит в Sharepoint 2010. Без того близкий Офису, Шарепоинт стал еще на шаг ближе. Ribbon такойже настраиваемый и констекстно-зависимый, каким мы его привыкли видеть в Офисе. Противникам такой инновации можно не [...] | | |  | Get Free Typemock licenses – ASP.NET bundle launch
Unit Testing ASP.NET? ASP.NET unit testing has never been this easy.
Typemock is launching a new product for ASP.NET developers – the ASP.NET Bundle – and for the launch will be giving out FREE licensesto bloggers and their readers.
The ASP.NET Bundle is the ultimate ASP.NET unit testing solution, and offers both Typemock Isolator, a unit test tool and Ivonna, the Isolator add-on [...] | | |  | SharePoint: Разворачиваем среду для разработки – Часть 3
В третьей части я расскажу о процессе установки и настройке расширений SharePoint для Visual Studio (VSeWSS). В качестве примера, я буду использовать мартовскую CTP версию расширений – VSeWSS 1.3 CTP.
Расширения призваны облегчить и унифицировать процесс разработки приложений на платформе SharePoint. Облегчение разработки достигается за счет предоставления шаблонов и визардов для создания основных элементов, таких как [...] | | |  | ScreenFlow 1.5. Hands-on experience of screencasting utility for Mac OS X
During the month of April I had to record couple of screencasts for techdays.ru, a MSFT operated web site. The site is all about Microsoft technologies and so were my both screencasts.
I have to confess that I am a real newbee in screen cast authoring field so take my words with a grain of salt.
For [...] |
|
|
|
|
|
|