понедельник, 4 февраля 2013 г.

Изменение Collation для БД на MS SQL Express

Столкнулся с проблемой русских букв при работе в среде Visual Studio 2012. Как выяснилось, была выставлена латинская локаль для БД. Чтобы изменить, необходимо запустить следующий скрипт:

use master;
Go
alter database [G:\Projects\Minregion.FGIS\App_Data\TEST.mdf] set single_user with rollback immediate;
GO
ALTER DATABASE [G:\Projects\Minregion.FGIS\App_Data\TEST.mdf]
COLLATE Cyrillic_General_CI_AS;
GO
alter database [G:\Projects\Minregion.FGIS\App_Data\TEST.mdf] set multi_user;
Go

Желательно установить Microsoft SQL Server Data Tools.

вторник, 1 января 2013 г.

Миграция проекта c AnkhSVN на TFS


  1. Открываем в блокноте файл .sln
  2. Удаляем следующие строки

  GlobalSection(SubversionScc) = preSolution
        Svn-Managed = True
        Manager = AnkhSVN - Subversion Support for Visual Studio
    EndGlobalSection

вторник, 6 ноября 2012 г.

Убираем руссификацию Visual Studio 2010

После установки каких-то пакетов Vusial Sudio 2010 стала наполовину (худшую :-) русской. Чтобы убрать это безобразие необходимо открыть директорию C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE и переименовать директорию 1049 в что-нибудь (для радикалов, можно удалить).

вторник, 31 июля 2012 г.

Как отключить аутентификацию сообщений MVC

http://www.gotdotnet.ru/forums/15/141125/
На сервере

<bindings>
 <wsHttpBinding>
  <binding name="CustomAuthentication">
   <security mode="None">
    <message clientCredentialType="None"/>
   </security>
  </binding>
 </wsHttpBinding>
</bindings>
 
 <services>
 <service behaviorConfiguration="ServiceBehavior" name="Service">
  <endpoint address="" binding="wsHttpBinding" bindingConfiguration="CustomAuthentication" contract="IService">
 
на клиенте
 
<security mode="None">

понедельник, 9 января 2012 г.

Проверка исходящей почты SharePoint 2010 PowerShell

$site = New-Object Microsoft.SharePoint.SpSite("http://yoursite/")

$web = $site.OpenWeb("RelativePathOf/TestSite/")

$sent = [Microsoft.Sharepoint.Utilities.SpUtility]::SendEmail($web,0,0,"yourTestMail@yourdomain.com",
"Test mail subject","test mail body")

$sent
 
http://abstractspaces.wordpress.com/2010/08/13/check-sharepoint-mail-settings-using-powershell/ 

среда, 28 декабря 2011 г.

Creating custom PortalSiteMapProvider for SharePoint Portal 2010

This provider ables to remove navigation from Cities list and add items from Members list.
CustomNavigationDataProvide.cs

namespace SiteGroup.WebControls
{
    public class CustomNavigationDataProvider : PortalSiteMapProvider
    {
        public override System.Web.SiteMapNodeCollection GetChildNodes(System.Web.SiteMapNode node)
        {

            PortalSiteMapNode portalNode = (PortalSiteMapNode)node;

            SPQuery query = new SPQuery() { Query = "" };
           
            // Remove nodes wich include in "Cities" list

            SiteMapNodeCollection nodeCities = this.GetCachedListItemsByQuery(
                    portalNode.WebNode, "Cities", query, SPContext.Current.Web);
            foreach (SiteMapNode nodeCity in nodeCities)
            {
                for (int nNodeIndex = coll.Count - 1; nNodeIndex >= 0; nNodeIndex--)
                {
                    if (coll[nNodeIndex].Title == nodeCity.Title)
                    {
                        coll.RemoveAt(nNodeIndex);
                    }
                }
            }
            // Add nodes to Members node
            if (node.Title == "Members")
            {
               // PortalSiteMapNode portalNode = (PortalSiteMapNode)node;

                //SPQuery query = new SPQuery() { Query = "" };
                SiteMapNodeCollection listItemNodes = this.GetCachedListItemsByQuery(
                        portalNode.WebNode, "Members", query, SPContext.Current.Web);


                coll = new SiteMapNodeCollection(listItemNodes.Count);
               
                SPWeb web = SPContext.Current.Site.RootWeb;
                Guid guidBank = web.Lists["Members"].ID;
                foreach (PortalListItemSiteMapNode nodeList in listItemNodes)
                {
                    PortalSiteMapNode nodeNew = new PortalSiteMapNode(
                        portalNode.WebNode,
                        string.Format("{0}_add", nodeList.Key),
                        Microsoft.SharePoint.Publishing.NodeTypes.ListItem,
                        nodeList.Url,
                        nodeList.Title,
                        nodeList.Description);
                    coll.Add(nodeNew);
                }

                return coll;
            }

            return coll;
        }
    }
}

Creating Navigation module

<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <Control
    Id="TopNavigationDataSource"
    Sequence="40"
    ControlClass="Microsoft.SharePoint.Publishing.Navigation.PortalSiteMapDataSourceSwitch"
    ControlAssembly="Microsoft.SharePoint.Publishing, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c">
    <Property Name="ID">topSiteMap</Property>
    <Property Name="SiteMapProvider">
CustomNavigationDataProvider</Property>
    <Property Name="EnableViewState">false</Property>
    <Property Name="StartFromCurrentNode">true</Property>
    <Property Name="ShowStartingNode">true</Property>
    <Property Name="TreatStartingNodeAsCurrent">true</Property>
    <Property Name="TrimNonCurrentTypes">Heading</Property>
  </Control>
</Elements>

web.config registration

<actions>
  <add path="configuration/system.web/siteMap/providers">
    <add name="LifeGlobalNavSiteMapProvider" description="" type="SiteGroup.WebControls.
CustomNavigationDataProvider, SiteGroup, Version=1.0.0.0, Culture=neutral, PublicKeyToken=ce31f39e24cadf59" NavigationType="Combined" EncodeOutput="true" />
  </add>
</actions>


You need to activate feature with Navigation module.