Google Analytics İzleme

31 Aralık 2011

ORM Kütüphaneleri



DbEntry.Net (Lephone Framework)
DbEntry.Net (Lephone Framework) is a lightweight, high performance ORM compnent for .Net 4.0. It has clearly and easily programing interface. It based on ADO.NET, and supported C#, Visual Basic, ASP.NET etc. It also provide DbEntryDataSource for ASP.NET 2.0 and a Rails style MVC framework and a simple IoC framework.
The samples of the release package all TESTED on Sql Server 2005 Express, Sql Server 2008, MySql 5.0, SQLite 3, Access 2003, Firebird 2.1.0, PostgreSQL 8.3.3 and Oracle 10g express.


29 Aralık 2011

entity framework ve automapper kullanımı; DTO'dan Entity'e atama


Örnek Yazım:


public void Update(BusinessObject.Setting pSetting)
{


            using (var dbContext = new AppDBEntities())
            {
                EFModel.OKFormSetting record = (from r in dbContext.OKFormSetting
                              where r.SettingCode.Equals(pSetting.SettingCode)
                              select r).FirstOrDefault();

                Mapper.CreateMap<BusinessObject.Setting, EFModel.OKFormSetting>()
                    .ForMember(dest => dest.EntityKey, opt => opt.Ignore());
                   
                record = Mapper.Map<BusinessObject.Setting, EFModel.OKFormSetting>(pSetting,record);

                Mapper.AssertConfigurationIsValid();


               dbContext.SaveChanges();

            }
}

Kaynak:
http://groups.google.com/group/automapper-users/browse_thread/thread/24a90f22323a27bc?fwc=1&pli=1
http://www.devtrends.co.uk/blog/stop-using-automapper-in-your-data-access-code


Sharepoint - SP1 yüklendikten sonra ortaya çıkabilecek sorunlar

SharePoint 2010 and Office Web Apps 2010 Service Pack 1 – KNOWN ISSUES

Sharepoint - Yüklü gelen web part'lar


SharePoint Server 2010 OOTB web Parts

27 Aralık 2011

İnternet explorer 9'da durum çubuğunda(status bar)'da Güvenlik Bölgesi bilgisi yok, nasıl öğrenebiliriz?

İnternet Explorer 9'da durum çubuğunda güvenlik bölgesi gösterimi kaldırıldı.
"Security Zone" & "Protection Mode" 
İlgili web sayfasının Güvenlik Bölgesi ve Koruma Kipi bilgisini öğrenmek için sayfa üzerinde sağ tıklayıp, gelen menü'de(context menu) Özellikler(Properties) kısmına tıklarız. 
Gelen pencerede bu bilgiler Zone: kısmında gösterilmektedir.

Kaynaklar:


26 Aralık 2011

Ofiste uzun telefon görüşmeleri ve internette gezinme işimizden edebilir

Cep telefonu ve internet kullanımının arttığı günümüzde iş saatlerinde çalışanların özel amaçlı internet ve cep telefonu kullanımının işten çıkarılma sebebi olarak gösterilebileceği belirtildi.

Cep telefonu kullanımı 1994 yılından sonra hızla yaygınlaşırken aynı yıllarda internet kullanımı da süratle artarak cep telefonu ile birlikte günümüzün vazgeçilmez unsurları haline geldi. Çalışanların iş saatlerinde uzun cep telefonu görüşmeleri, bilgisayarlarından ve cep telefonlarından özel amaçlı internet kullanımı Yargıtay'ın daha önce verdiği emsal kararlara göre işveren tarafından işten çıkarma sebebi sayılabilecek.

Çalışanların mesai saatlerinde kişisel olarak internet ve cep telefonu kullanımıyla ilgili iki önemli Yargıtay kararı olduğunu hatırlatan Avukat Dr. Serdar Tahtakıran, uzun telefon görüşmelerinin ve özel internet kullanımının 'iş görme ediminin yeterince yerine getirememek' olarak değerlendirildiğini ve bu durumun işveren tarafından işten çıkarılma nedeni sayılabileceğine dikkat çekti.

İşverenin, çalışanlarına iş saatlerinde kişisel internet kullanımına sınırlama getirebileceğine ilişkin olarak iki önemli Yargıtay kararı bulunduğuna işaret eden Tahtakıran, "Yargıtay, iş saatlerinde özel amaçlı internet kullanımını 'iş görme edimini yeterince getirmemek' olarak değerlendirmiş ve bu durumun işyerinde olumsuzluklara neden olduğunu belirterek de geçerli fesih nedeni olarak kabul etmiştir." dedi.

İş saatleri içerisinde internette oyun oynanması ve çeşitli haber sitelerinde zaman geçirilmesi durumunun iş verimini düşürmemiş olsa bile işten çıkarılma için geçerli bir neden olabileceğinin Yargıtay tarafından belirtildiğine dikkat çeken Serdar Tahtakıran "Türk İş Hukuku'nda bazı yazarlar, iş saatleri içerisinde, lokal telefonlar üzerinden haberleşme imkanın bulunduğu işyerlerinde özel cep telefonu kullanımının sınırlandırılması ve yasaklanmasının mümkün olduğunu belirtiyor." diye konuştu.

Tahtakıran, cep telefonu ile iş saatlerinde özel görüşme yapılmasının işveren tarafından yasaklanabileceği konusunda henüz Türk İş Hukuku'nda bir Yargıtay kararına rastlanılmamış olsa da Türk Yargıtay'ı tarafından takip edilen Alman İş Yargısı'nda konuyla ilgili bir kararın yer aldığının altını çizdi. Almanya'nın Rheinland-Pfalz Eyaleti İş Mahkemesi tarafından onaylanan bu kararı anımsatan Tahtakıran, Almanya'da yaşlı bakımından sorumlu bir çalışanın, çalışma saatlerinde özel cep telefonunu kullanmasının işveren tarafından yasaklanabileceğine dair karar verdiğini dile getirdi.

"CEP TELEFONU KULLANIMINDA AVRUPA ÜÇÜNCÜSÜYÜZ"

Türkiye'de cep telefonu ve internet kullanımının yüksek olduğunu ve her geçen gün artığını belirten Avukat Dr. Serdar Tahtakıran, "2011 yılının ilk çeyreğinde Türkiye'de toplam cep telefonu konuşma süresi 33,95 milyar dakika olurken, sabit telefon hatlarındaki konuşma süresi 5,47 milyar dakika düzeyinde. Türkiye, AB ülkeleri arasında 3'üncü sırada yer almıştır ve İngiltere, İspanya, İtalya, Portekiz ve Almanya'nın üstünde bulunmaktadır." tespitinde bulundu.

Tahtakıran, cep telefonu ve internet kullanımının giderek arttığı Türkiye'de bu yasakların işveren ve işçi arasında ciddi sorunlara neden olabileceğini de sözlerine ekledi.

Alıntı

ORM İle Database İşlemleri



İşlem Türü EF 4.0 ile EF 4.1 ile
Tablonun sql sorgusu
/****** Object:  Table [dbo].[Blogs]    Script Date: 12/26/2011 16:25:44 ******/SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Blogs]') AND type in (N'U'))
BEGIN
CREATE TABLE [dbo].[Blogs](
    [Id] [int] IDENTITY(1,1) NOT NULL,
    [Title] [nvarchar](max) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
    [BloggerName] [nvarchar](max) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
 CONSTRAINT [PK_Blogs] PRIMARY KEY CLUSTERED (
    [Id] ASC)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, 
 IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON)
)END
GO
SET IDENTITY_INSERT [dbo].[Blogs] ON
INSERT [dbo].[Blogs] ([Id], [Title], [BloggerName]) VALUES (1, N'title1', N'bloggername1')
SET IDENTITY_INSERT [dbo].[Blogs] OFF
Entity Sınıfı tanımlama
using System;
    using System.Collections.Generic;
    
    public partial class Blog
    {
        public Blog()
        {
            this.Posts = new HashSet<Post>();
        }
    
        public int Id { get; set; }
        public string Title { get; set; }
        public string BloggerName { get; set; }
    
        public virtual ICollection<Post> Posts { get; set; }
    }

Connection String
<connectionStrings>
       <add name="BlogDataEntities" connectionString="metadata=res://*/Models.BlogModel.csdl
|res://*/Models.BlogModel.ssdl
|res://*/Models.BlogModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;
data source=.\sharepoint;attachdbfilename=|DataDirectory|\BlogData.mdf;integrated security=True;
user instance=True;multipleactiveresultsets=True;App=EntityFramework&quot;" 
providerName="System.Data.EntityClient" />
  </connectionStrings>
İşlemleri Yapan Context sınıfı
using System;
    using System.Data.Entity;
    using System.Data.Entity.Infrastructure;
    
    public partial class BlogDataEntities : DbContext
    {
        public BlogDataEntities()
            : base("name=BlogDataEntities")
        {
        }
    
        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            throw new UnintentionalCodeFirstException();
        }
    
        public DbSet<Blog> Blogs { get; set; }
        public DbSet<Comment> Comments { get; set; }
        public DbSet<Post> Posts { get; set; }
    }

Listeleme İşlemi
 

private BlogDataEntities db = new BlogDataEntities();

public ViewResult Index()
        {
            return View(db.Blogs.ToList());
        }
Kayıt Arama
 
private BlogDataEntities db = new BlogDataEntities();
public ViewResult Details(int id)
        {
            Blog blog = db.Blogs.Find(id);
            return View(blog);
        }
Yeni Kayıt Ekleme
private BlogDataEntities db = new BlogDataEntities();
[HttpPost]
        public ActionResult Create(Blog blog)
        {
            if (ModelState.IsValid)
            {
                db.Blogs.Add(blog);
                db.SaveChanges();
                return RedirectToAction("Index");  
            }

            return View(blog);
        }

Kaydı Güncelleme
private BlogDataEntities db = new BlogDataEntities();
[HttpPost]
        public ActionResult Edit(Blog blog)
        {
            if (ModelState.IsValid)
            {
                db.Entry(blog).State = EntityState.Modified;
                db.SaveChanges();
                return RedirectToAction("Index");
            }
            return View(blog);
        }
Kayıt Silme
private BlogDataEntities db = new BlogDataEntities();
[HttpPost, ActionName("Delete")]
        public ActionResult DeleteConfirmed(int id)
        {            
            Blog blog = db.Blogs.Find(id);
            db.Blogs.Remove(blog);
            db.SaveChanges();
            return RedirectToAction("Index");
        }


23 Aralık 2011

Entity Framework 4 - Custom slq sorguları çalıştırma

How to: Directly Execute Commands Against the Data Source

Tip 41 – How to execute T-SQL directly against the database



asp.net mvc 3 - Html.Textbox'a ViewBag'den değer atama

@Html.TextBox("txtProspectiveStudentsSurveyId", @ViewBag.ProspectiveStudentsSurveyId)
şeklinde yapınca aşağıdaki şekilde hata aldım:

CS1973: 'System.Web.Mvc.HtmlHelper<dynamic>' has no applicable method named 'TextBox' but appears to have an extension method by that name. Extension methods cannot be dynamically dispatched. Consider casting the dynamic arguments or calling the extension method without the extension method syntax.

@Html.TextBox("txtProspectiveStudentsSurveyId", ViewBag.ProspectiveStudentsSurveyId) şeklinde yaptım yine aynı hatayı aldım.

Doğrusu:
@Html.TextBox("txtProspectiveStudentsSurveyId", (string)ViewBag.ProspectiveStudentsSurveyId)
şeklinde casting yapmak gerekiyormuş.

Kaynak:
http://stackoverflow.com/questions/7190682/add-html-textbox-value-from-viewbag



22 Aralık 2011

asp.net mvc 3 - jqgrid kullanımı


jqgrid birden fazla kolonlu primary key yapısını yani composite primary key'i desteklemiyor.
Kaynak:
http://www.trirand.net/forum/default.aspx?g=posts&t=631
http://www.trirand.com/jqgridwiki/doku.php?id=wiki:first_grid

jqgrid'e primary key tanımı yapılmadığında ilk kolon varsayılan olarak primary kolon gibi set edilir. Eğer aynı değere sahip satırlar varsa jqgrid'in seçim hatası oluşmaktadır.

Jquery JqGrid’ten Excel’e veri Aktarma


Jquery için Veri Tablosu Eklentileri (Datagrid Plugins)

Asp.Net MVC Grid Düzenleme

jqGrid and ASP.NET MVC - Formatting

jqGrid and ASP.NET MVC - Strongly typed helper

jQuery jqGrid Plugin: Add, Edit, Delete with ASP.NET MVC

Using JqGrid with ASP.NET MVC

jquery'de cell formatlama esnasında birden fazla parametreli yapmayı kendinden desteklememektedir. Bunun yerine o cell için custom formatlama javascript fonksiyonu tanımlayarak yapabilirsiniz. row bilgisi bir dizi olarak gelmektedir. Diğer sütun bilgilerine bu dizi üzerinden index rakamları ile ulaşabiliyorsunuz, kolon adı yazarak ulaşamıyorsunuz.
Kaynak:

Kolunun sırasını(index) tespit etmek için şu js scriptini yaptım:

<script type="text/javascript">
 
function formatEditColumn(cellValue, options, rowObject) {
        var currentJQGrid = $("#"+ options.gid);
        var newCellValue = '<a href="MultiLanguageValue/Edit?ItemCode=' + rowObject[getColumnIndexByName(currentJQGrid, "ItemCode")] + '&PageLanguageCode=' + rowObject[getColumnIndexByName(currentJQGrid, "PageLanguageCode")] + '">Düzenle</a>';
        return newCellValue;
    }

    var getColumnIndexByName = function (grid, columnName) {
        var cm = grid.jqGrid('getGridParam', 'colModel'), i = 0, l = cm.length;
        for (; i < l; i += 1) {
            if (cm[i].name === columnName) {
                return i; // return the index
            }
        }
        return -1;
    };

</script>


13.06.2012 çrş.
jqgrid içinde kolonun headertext'ini boş yapmak istiyorsanız &nbsp; şeklinde kullanmalısınız:
örnk:

new JQGridColumn()
                                                {
                                                    DataField = "RoomTypeGUID",
                                                    PrimaryKey = true,
                                                    Editable = false,
                                                    Sortable =  false,
                                                    HeaderText = "&nbsp;"
                                                }

21 Aralık 2011

Entity Framework 4.0 - Unable to update the EntitySet hatası


Entity Framework 4.0 ile datayı update ederken aşağıdaki şekilde hata aldım:

Unable to update the EntitySet 'FormMultiLanguageValue' because it has a DefiningQuery and no <UpdateFunction> element exists in the <ModificationFunctionMapping> element to support the current operation.

Hatanın nedeni update yapmak istediğim sql tablosunda primary key tanımlanmamasındanmış. İlgili tabloya primary key'i tanımlayınca sorun düzeldi.
Örnek tanımlama:
ALTER TABLE Persons
ADD CONSTRAINT pk_PersonID PRIMARY KEY (P_Id,LastName)

Kaynak:
http://stackoverflow.com/questions/2507832/unable-to-update-the-entityset-itemranklist-because-it-has-a-definingquery-and
http://geekswithblogs.net/ranganh/archive/2010/05/31/unable-to-update-the-entityset-because-it-has-a-definingquery.aspx


MVC 3 ile sayfa geliştirme


WebGrid kullanımı
http://www.dotnetcurry.com/ShowArticle.aspx?ID=615
http://blog.bekijkhet.com/2011/03/mvc3-webgrid-html-helper-sorting.html
http://www.jasoncavett.com/2011/03/customizing-webgrid-with-jquery-ui.html
http://www.unboxedsolutions.com/sean/archive/2011/01/23/15964.aspx

DropDownList kullanımı

ViewBag özelliği

Html.Raw ve HtmlString

ASP.NET MVC 3 Razor ile Uygulama Geliştirme Yazı Dizisi

EFMVC - ASP.NET MVC 3 and Entity Framework 4.1 Code First

TinyMCE Editör kullanımı
http://yakupbugra.com/2011/07/asp-net-mvc-3-tinymce-editor-kullanimi.html
http://www.stefanprodan.eu/2011/06/wysiwyg-html-editors-for-asp-net-mvc/http://www.tinymce.com/tryit/jquery_plugin.php

TinyMCE Editörü ile girilen html değeri action metodu içinde almak için

[HttpPost, ValidateInput(false)]
public ActionResult Edit(FormCollection collection)
{
    // ...
}

şeklinde yazılmalıdır.
http://stackoverflow.com/questions/81991/a-potentially-dangerous-request-form-value-was-detected-from-the-client

jquery ui css framework'ünü kullanarak butonların css ayarlarını yapma:
http://www.filamentgroup.com/lab/styling_buttons_and_toolbars_with_the_jquery_ui_css_framework/

ASP.NET MVC: Use CSS on Html.ActionLink

MVC Razor Tip: Output Raw Unencoded HTML
ASP.NET: Use Url.Content() from Razor to Resolve Relative URLs

Unobtrusive jQuery Validation Using MVC3 and Razor

OpenID nedir, ASP.NET MVC ile nasıl kullanılır?

ASP.NET MVC 3 Razor ile Uygulama Geliştirme Yazı Dizisi 8 – Html Helper’larıyla Css, Javascript Kullanmak ve Html Helper’ların Attribute’lerini Kullanmak

The Big View Engine Comparison – Razor vs. Spark vs. NHaml vs. Web Forms View Engine

HTML Helpers For Forms In Razor Web Pages

Razor, MVC3 - a readonly textbox

ASP.NET MVC 3 Razor ile Uygulama Geliştirme Yazı Dizisi 7 – HTML.Form ve Html.Helper’larının Kullanımı 2 (HTML Helpers)

ASP.NET MVC 3: Integrating with the jQuery UI date picker and adding a jQuery validate date range validator

---------------
21.06.2012

int32? tipli field'in client side validation esnasında 0 (sıfır) 'a hata vermesi:
Bu hatayı engellemek için jquery ile document ready esnasında


$.validator.methods.number = function (value, element) {
                    //debugger;
                    if (Globalize.parseFloat(value).toString()!="NaN") { //if (Globalize.parseFloat(value)) { //if ($.global.parseFloat(value)) {
                        return true;
                    }
                    return false;
                }


şeklinde tanımlama yapılmalıdır.

Kaynak:
http://stackoverflow.com/questions/5276531/decimal-is-not-validated-correctly-in-mvc-3-with-jquery-validator

--
DataTime tipindeki değişkeni Date olarak görüntüleme ve edit yapmayı sağlama:


[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:MM/dd/yyy}" )]
public DateTime RecipeDate{ get; set; }

Kaynak:
http://stackoverflow.com/questions/7459071/format-datetime-to-date-in-mvc3

-------------------
22.06.2012

checkbox'ı zorunlu olarak seçilmesini sağlama; bu özellik daha çok Başvuru koşullarını kabul ediyorum şeklinde çalışan sayfalar için kullanılmaktadır.

Yeni attribute tanımlarız:


public class BooleanRequiredAttribute : ValidationAttribute, IClientValidatable
{
    public override bool IsValid(object value)
    {
        if (value is bool)
            return (bool)value;
        else
            return true;
    }

    public IEnumerable<ModelClientValidationRule> GetClientValidationRules(
        ModelMetadata metadata,
        ControllerContext context)
    {
        yield return new ModelClientValidationRule
                            {
                                ErrorMessage = FormatErrorMessage(metadata.GetDisplayName()),
                                ValidationType = "booleanrequired"
                            };
    }
}


View modelinde ilgili property'e attribute'u ekleriz:


[BooleanRequired(ErrorMessage = "You must accept the terms and conditions.")]
[Display(Name = "I accept the terms and conditions")]
public bool TermsAndConditionsAccepted { get; set; }


Web view sayfası kodu ise şöyle olacak:


@model MyModel@using (Html.BeginForm())
{
    <fieldset>
        <legend>Terms and Conditions</legend>
        @Html.ValidationSummary(true, "Please correct the errors and try again.")
        <p>
            Lorem ipsum dolor sit amet, consectetur adipiscing elit.
            Fusce facilisis ullamcorper consequat. Vestibulum non sapien lectus.
            Nullam at quam eu sapien mattis ultrices.
        </p>
        <ol>
            <li>
                @Html.CheckBoxFor(m => m.TermsAndConditionsAccepted)
                @Html.LabelFor(m => m.TermsAndConditionsAccepted, new { @class = "checkbox" })
                @Html.ValidationMessageFor(m => m.TermsAndConditionsAccepted)
            </li>
        </ol>
        <input type="submit" value="Submit" />
    </fieldset>
}



<script type="text/javascript">
    (function ($) {
        $.validator.unobtrusive.adapters.addBool("booleanrequired", "required");
    } (jQuery));
</script>


Bu doğrulama ClientValidationEnabled  ve UnobtrusiveJavaScriptEnabled özellikleri açık olan uygulamada çalışmaktadır.

Kaynak:
http://blog.degree.no/2012/03/validation-of-required-checkbox-in-asp-net-mvc/

--------------------------------------
02.07.2012

Required DataAnnotation'ları lokalizasyon yapma ve clintside tarafında validation sorununu kaldırma:

Kaynak:
Simplified localization for DataAnnotations
http://blog.gauffin.org/2010/11/simplified-localization-for-dataannotations/
Making custom dataannotation attributes work with MVC client side validation
http://blog.gauffin.org/2011/08/making-custom-dataannotation-attributes-work-with-mvc-client-side-validation/



19 Aralık 2011

sharepoint - ücretsiz webpart ve çözümler

Free Microsoft Sharepoint Web Parts

Ücretsiz WebPart ve Çözümler - sharepointreviews.com

qForum Freeware Web Part for SharePoint 2010 Sandbox and SharePoint Online (Office 365)
http://communities.quest.com/docs/DOC-10800

qDiscussionView Freeware Web Part for SharePoint 2010



Have you ever needed to show the facebook updates of your organization on your sharepoint portal ? If yes, this project is for you.
http://code.google.com/p/sharepoint-facebook-wall/

Are you looking to show the twitter updates of your organization on your sharepoint portal ? If yes, then this project is what you might need.
http://code.google.com/p/sharepoint-twitter/

SharePoint Project Template is a predefined solution template with general classes and API's which is used in SharePoint projects which can save developer's effort to create solutions, writing base functionality and common methods.
http://code.google.com/p/visual-studio-sharepoint-project-template/

SharePoint doesn’t provide any column type to represent the relational data in tree view format. E.g. Country > State > City is the best example for such data structures. This open source package provides the capability to creating tree view column within SharePoint environment.
http://code.google.com/p/sharepoint-treeview-column/

SharePoint Event Handlers Manager allows admins to browse, add, edit and remove SharePoint event handlers from any list or web. This SharePoint solution provides two features that enables admins to play with event handlers from within SharePoint interface.
http://code.google.com/p/sharepoint-eventhandlers-manager/

This small utility is exclusively for administrators to change the Application Pool of SharePoint web application. SharePoint 2010 doesn't allow us to change the IIS Pool directly from IIS Manager as it stores the mapping information in its configuration database because it uses that mapping in administrative jobs. So there was a challenge and custom code is required to change the application pool in SharePoint web applications. This utility helps in creation of IIS Pools and also is assignment of existing pools for SharePoint Web Applications.
http://code.google.com/p/sharepoint-application-pool-changer/

SharePoint 2010 için Ücretsiz Saat ve Hava Durumu Çözümü
http://www.erdemcilingiroglu.com/wp/sharepoint-2010-iin-cretsiz-saat-ve-hava-durumu-zm.html


sharepoint - jquery ekleme

Solution to Load jQuery on All SharePoint Pages by John Chapman

Javascript Editor for SharePoint (CodePlex)


Sharepoint - farm yapısı hakkında

Joining a WFE server to a Sharepoint Farm

Farm Install Guide

SharePoint with multiple WFE servers

Sharepoint 2010'da AjaxControlToolkit nasıl kullanılır?, Sharepoint Projesinde Class Library nasıl kullanılır?

Sharepoint 2010'da AjaxControlToolkit nasıl kullanılır?

Sharepoint Projesinde Class Library nasıl kullanılır?


18 Aralık 2011

CodeBehind ve CodeFile Arasındaki Fark?

Bu iki nitelik asp.net'de sayfalarda kullanılan direktiflerdir.
CodeFile niteliği Visual Studio ile açılan Asp.net Web Site tipi projelerdeki sayfalarda kullanılır.
Codebehind ise Asp.net Web Application tipi projedeki sayfalarda kullanılır.

Web Site'deki bir örnek:
<%@ Master Language="C#" AutoEventWireup="true"  Inherits="Site" CodeFile="Site.Master.cs" %>
veya
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>

Web Application'daki bir örnek:
<%@ Master Language="C#" AutoEventWireup="true" Inherits="Site" Codebehind="Site.Master.cs" %>
veya
<%@ Page Language="C#" AutoEventWireup="true" Codebehind="Default2.aspx.cs" Inherits="Default2" %>

Kaynak:

ASP.NET 2.0 - Sayfa Direktifleri (Page Directives)


16 Aralık 2011

Sürüm Kontrol Sistemleri (VCS) hakkında


Git Hakkında:

Windows’da Unfuddle.com ile Git Repository Kullanmak
http://blog.alialtansaka.com/2009/10/04/windows-da-unfuddle-com-ile-git-repository-kullanmak/

Tortoise Git ile Windows'da Git

Sürüm Kontrol Sistemi Git


Git-svn

Ücretsiz Git Hosting veren yerler:
www.unfuddle.com
www.bitbucket.org


12 Aralık 2011

Blog Yazarlari İçin Live Writer

 yıllardır yaptığı her işte bir şekilde eleştiri alan bir firma. Bugün ben eleştirmeyeceğim aksine övgüler yağdıracağım (Microsoft far keder belki hehehe) Blog yazarlarının en büyük dertlerinden biriside bloglarına gönderecekleri yazılarını hazırlarken kullanacakları editörlerdir.
Ne hikmetse, çok özen göstermez firmalar blog editörlerine, çoğunlukla bu editörler yetersizdir ve üçüncü parti yazılımlar arasından da şu ana kadar çok hoşuma giden bir tane çıkmamıştır. Taki 'ı deneyene kadar, yani hem Microsoft ürünü, hem mevcutların en iyisi üstüne bir de ücretsiz, daha ne istiyoruz ya.
Şakayı bir tarafa bırakırsak 'da yazdığım için en büyük sıkıntılardan birisi içeriğinize tablo eklemektir. Live Writer ile bu çok kolaylaştırılmış, Microsoft Word'de çalışır gibi işinizi yapıyorsunuz ve tablonuz sorunsuz olarak hazır.
Bir diğer artısı yazım denetimi cidden güzel çalışıyor, ve sizi ciddi bir yükten kurtarıyor.
Ping servislerine erişim çok kolaylaştırılmış, anında yeni yazılarınızı, istediğiniz servislere haber verebiliyorsunuz.
Resimlerle çalışmak aynı şekilde çok kolaylaştırılmış. Siz sadece ekleyip sağ taraftaki panelden gerekli açıklamaları giriyorsunuz.
Bağlantı (köprü ekleme) çok sezgisel hale getirilmiş.
Microsoft kullanımına aşina iseniz, blog editörü arıyor ve bulduklarınız sizi tatmin etmiyor ise, gönül rahatlığı ile tavsiye edebileceğim bir editör, mutlaka Live Writer'ı deneyin.

Alıntıdır.

Blogger Tablo Yaratma Sorununa Alternatif Çözüm

Blogger editörü sürekli geliştirilerek bir çok eksiği giderilmiş olsa da, halen bazı eksiklikleri var. Bunlardan bir tanesi de içeriğe tablo ekleyememek.

İçeriğinizi daha düzenli sunmak için bir tabloya ihtiyaç duyduğunuz takdirde, bu iş blogger da biraz sorun yaratıyor.

Bu sorunun çözümü çok ilginç ama Microsoft tarafından ücretsiz dağıtılan Windows Live Writer isimli uygulamada. Blog yazarı iseniz ister bu işin uzmanı olun, ister yeni başlayın, mutlaka denemeniz gereken bir program. Pekçok kullanışlı özelliği sayesinde size hız kazandıracağı gibi yaratıcılığınızı da blogunuza yansıtmanızda büyük avantaj sağlayacak. Çok basit ve kullanışlı bir arayüze sahip olan program ile tablo eklemek, resim eklemek, fotoğraf albümü eklemek, etiket ve ifadeler eklemek ve daha pek çok işlev çok kolay bir hale getirilmiş. Prograına eklenti desteğide çok iyi ve hergün yeni eklentiler çıkıyor, deneyin pişman olmayacaksınız

Windows Live Writer Programını indirmek için aşağıdaki linki kullanabilirsiniz.

Windows Live Writer


Alıntıdır.


Sharepoint - InputFormCheckBoxListValidator internet explorer haricindeki browser'larda çalışmıyor

Sharepoint'de custom asp.net aspx sayfa geliştirirken InputFormCheckBoxListValidator kontrolünü kullandım.

<Sharepoint:InputFormCheckBoxList ID="cbSubmitAgree" runat="server" CellPadding="0" CellSpacing="0" RepeatLayout="Flow" CssClass="cblSubmitAgree"   >
                         <asp:ListItem Text="I Agree" Value="true"  />  
                         <asp:ListItem Text="I Am Not Agree" Value="false"  />  
                    </Sharepoint:InputFormCheckBoxList>

                    <Sharepoint:InputFormCheckBoxListValidator ID="rfvSubmitAgree" runat="server"
                            ControlToValidate="cbSubmitAgree"  ErrorMessage="Submit Agree is required" EnableClientScript="true" />

Fakat validasyonun firefox, google chrome ve safari'de çalışmadığını farkettim.
Bunun yerine custom validator kullandım.

Markup kodu:

<script language="javascript" type="text/javascript">
                        var cbSubmitAgreeClientID = '<%= cbSubmitAgree.ClientID %>';
                        function cbSubmitAgree_IsChecked(obj, args) {
                            var checkbox = $get(cbSubmitAgreeClientID);
                            args.IsValid = checkbox.checked;
                        }                      
                    </script>

                    <SharePoint:InputFormCheckBox runat="server" ID="cbSubmitAgree" LabelText="I Agree" />                                      

                    <Sharepoint:InputFormCustomValidator runat="server" ID="cvSubmitAgree"
                        OnServerValidate="cvSubmitAgree_OnServerValidate"
                        ClientValidationFunction="cbSubmitAgree_IsChecked" EnableClientScript="true"
                        ErrorMessage="Submit Agree is required"
                        />

Server side kodu:

protected void cvSubmitAgree_OnServerValidate(object source, ServerValidateEventArgs args)
        {
            //throw new NotImplementedException();
            args.IsValid = cbSubmitAgree.Checked;
        }



Web uygulamaları geliştirirken sık rastladığım ve lazım gelen işlemler



Aklıma geldikçe ve karşıma çıktıkça bu listeye eklemeler yapacağım.



































































İşlem Kaynak adresler Örnekler Önemli Noktalar
Data validasyon işlemleri, Reqular Expresssion kullanımları, http://www.4guysfromrolla.com/webtech/090200-1.3.shtml
http://asp.net-tutorials.com/validation/regular-expression-validator/
http://msdn.microsoft.com/en-us/library/ms972961.aspx
http://onetidbit.wordpress.com/2008/01/25/14/
http://stackoverflow.com/questions/1228112/how-do-i-make-a-checkbox-required-on-an-asp-net-form

 
- asp.net’in custom validator kontrolü textboxlarla çalışıyor fakat checkbox kontrolü ile çalışmamaktadır. Bundan dolayı checkbox kontrolü yazılan cutom validatörlerde ControlToValidate özelliği kullanılmamalıdır. Kullanılırsa asp.net direkt görüntüleme hatasına vermektedir.
Tarih veri tipleri için seçim kontrolleri ve tarih işlemleri   
Resim yükleme ve işleme işlemleri   
Dosya yükleme, çoklu dosya yükleme, asenkron dosya yükleme işlemleri   
Üyelik sistemi ve üyelik işlemleri   
Birden fazla farklı veritabanı ile çalışabilme (sql server, ms access, sql compact, mysql, sql lite, oracle gibi)   
Loglama işlemleri   
Lokalde Email gönderimini test etmehttp://www.devcurry.com/2011/03/test-emails-in-aspnet-without-mail.html  

09 Aralık 2011

sharepoint - ücretsiz araçlar ve uygulamalar


HarePoint Workflow Scheduler
HarePoint Workflow Scheduler for SharePoint 2010 is a free software product that allows automatic execution of SharePoint workflows by schedule. With its help, you can automate recurring business processes, debug your workflows with various sets of parameters, test server’s performance by starting workflows with specified frequency.
http://www.harepoint.com/Products/HarePointWorkflowScheduler/Default.aspx

Visual Studio 2010 SharePoint Power Tools by Microsoft
The Visual Studio 2010 SharePoint Power Tools is a set of templates and extensions that provides additional functionality to SharePoint developers who use the SharePoint developer tools in Visual Studio 2010.

Farm paketlerini web arayüzüyle yükleme, güncelleme ve yönetme
SharePoint 2010 Enhanced Farm Solutions: http://sp2010enhsolutions.codeplex.com/
SPSolutions Manager: http://spsolutionsmanager.codeplex.com/


Backup and Restore Operations
SharePoint Management Studio : http://spms.codeplex.com/



SharePoint admin toolset v3.1
Simplify and streamline day-to-day SharePoint administration tasks
http://www.idera.com/Free-Tools/SharePoint-admin-toolset/


sharepoint - kullanıcı adlarında i:0#.w takısının olması

http://fangdahai.blogspot.com/2010/06/i0w-is-still-there-in-sharepoint-2010.html

06 Aralık 2011

sharepoint - android ve ios oturum türü erişim desteği



You get the 401, is that Android 2.3 and below cannot login using NTML authentication. A 401 is returned back from the server as the beginning of the NTLM handshake and Android does not know what to do with it. Google fixed this in a patch for 3.0, but I am not sure about 2.3. You can get around this by switching to FBA, Basic auth over SSL, or by using an SSL VPN (like UAG).

This is not an issue for iOS since it does support NTLM.


http://blog.incworx.com/blog/infrastructure-tips/sharepoint-2010-access-error-on-androids-default-browser-sharepoint-mobile


05 Aralık 2011

Sharepoint - Sayfa Geliştirme (Custom Application Page)

Önemli Noktalar:
You can use a Visual Web Part item in a farm solution only. (http://msdn.microsoft.com/en-us/library/ee231579.aspx)
You can use a Web Part item in a sandboxed solution or a farm solution. (http://msdn.microsoft.com/en-us/library/ee231579.aspx)
Web Parts are server-side controls that run inside a special type of page called a Web Part Page. (http://msdn.microsoft.com/en-us/library/ee231579.aspx)
- To create custom, reusable controls that can be consumed by application pages and Web Parts that run in SharePoint. These controls are called user controls. (http://msdn.microsoft.com/en-us/library/ee231577.aspx)





Walkthrough: Creating an Application Page
http://msdn.microsoft.com/en-us/library/ee231581.aspx

Sayfa geliştirme esnasında kullanacağımız kontroller:

Tarih Kontrolü:

People Pickup Kontrolü:

Sharepoint Kontrolleri:

Textbox kontrolü:

Checkbox kontrolü:


Validation kontrolleri:

List Item hakkında:
http://blog.mastykarz.nl/obtain-fields-values-splistitem/

Listeye Dosya Yükleme ve Kaydetme hakkında:
http://ktskumar.wordpress.com/2008/03/31/uploading-file-from-local-machine-to-sharepoint-listitem-as-an-attachment/
http://www.sharepointbriefing.com/spcode/article.php/3842976/Accessing-and-Saving-List-Item-Attachments.htm
http://msdn.microsoft.com/en-us/library/lists.lists.addattachment.aspx
http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spattachmentcollection.aspx
http://khdraft.blogspot.com/2011/07/how-to-update-spfile-splistitem.html
http://paulturner.is-a-geek.com/Lists/Posts/Post.aspx?List=fee45726-9f06-40bf-8758-f178bbe132bc&ID=42&RootFolder=%2A&Web=ede8e2b7-ce62-4de0-b0cc-758262aa96d9
http://www.mindfiresolutions.com/Adding-an-Attachment-to-a-List-Item-Programmatically-in-SharePoint-478.php
http://ranaictiu-technicalblog.blogspot.com/2010/06/sharepoint-2010-attach-files-to.html


Diğer:


List'deki Field'in Name bilgisinin karakter boyutu maksimum 32 karakter olmalıdır, internal name of the field olarak da geçer.
Sharepoint 2010 web ui ortamında kolon veya alan ilk oluşturmada ingilizce karakterle ve boşluksuz olrak eklenmelidir, sonra isim bilgisi farklı olarak değiştirilebilirsiniz, sonraki değiştirmelerde bu name bilgisi Display Name olarak atanır.
http://social.msdn.microsoft.com/Forums/en/sharepointdevelopment/thread/831ece40-9588-48da-bc9a-43454cb803a7
http://mscerts.programming4.us/sharepoint/sharepoint%202010%20%20%20add%20a%20column%20to%20a%20list%20or%20document%20library.aspx
http://msdn.microsoft.com/en-us/library/ms437580.aspx

File name, length and character restrictions for SharePoint
http://www.sysadminsblog.com/microsoft/file-name-length-and-character-restrictions-for-sharepoint/

List'in guid bilgisini alma:
http://weblogs.asp.net/jimjackson/archive/2008/02/11/get-a-sharepoint-list-guid-from-the-browser.aspx
http://weblogs.asp.net/soever/archive/2008/01/06/sharepoint-development-handy-little-utility-to-get-guid-s-and-attribute-names.aspx
http://www.albionresearch.com/misc/urlencode.php

Listlerde - Link Item and Link Item Menu olarak Title olmayan başka bir alanda yapma veya gösterme

SharePoint: Application page to display all sites a user can view
SharePoint 2010: Add Colors, Borders and Fonts to Web Parts
SharePoint: Which lists have event receivers?
SharePoint 2010 Application Pages and Modal Dialogs the easy way

UnsecuredLayoutsPageBase - Anonim erişimli sayfa yapmak için kullanılacak sınıf:

Creating Web Parts for SharePoint
Creating Reusable Controls for Web Parts or Application Pages

--

Northwind Office Business Application
These samples demonstrate a simple Office Business Application used by the new Northwind Traders that includes versions for both Visual Studio 2008 Service Pack 1 and Visual Studio 2010. It follows the workflow of accepting purchase orders through email all the way to shipping. It shows how to expose LOB data using Data Services as well as interact with it in Outlook, Word, Excel and SharePoint. 
http://archive.msdn.microsoft.com/OBANorthwind
http://blogs.msdn.com/b/bethmassi/archive/2010/01/28/creating-a-sharepoint-visual-web-part-using-visual-studio-2010.aspx

--
Creating a WCF web service and calling JSON objects from JQUERY – SharePoint 2010 C#
How do I create Visual Web Parts in SharePoint Foundation 2010 with Visual Studio 2010?
How do I create custom properties in Visual Web Parts?

--

SharePoint 2010 CSS Reference Chart

Updating list items without changing the Modified field

Install SharePoint Language Packs in Windows 7

Continuous integration (automated builds) for SharePoint 2010

SharePoint 2010 + ADFS 2.0

Anonymous access - login prompt

--

Adding an external DLL/assembly in Visual Studio 2010 SharePoint Project


How to change <trust> level of a SharePoint web application.