"Starting in January 2017, we will no longer serve banner ads to apps that use older advertising SDK releases from Microsoft. In order for your app to continue to receive banner ads in January 2017, you may need to update your app to use the latest advertising SDK and resubmit your app to the Store. To determine whether your app is affected by this change and learn how to update your app if necessary, see the instructions here.
To provide some additional context about this change, we are removing support for older advertising SDK releases that do not support a minimum set of capabilities, including the ability to serve HTML5 rich media via the Mobile Rich-media Ad Interface Definitions (MRAID) 1.0 specification from the Interactive Advertising Bureau (IAB). Many of our advertisers seek these capabilities, and we are making this change to help make our app ecosystem more attractive to advertisers and ultimately drive more revenue to you.
We recommend that you make the required updates soon to leave time to resolve any issue you encounter. Additionally, early completion means that your apps will be ready for the winter holiday season when we tend to have the highest advertising demand.
If you encounter any issues or you need assistance, please contact support. "
Today I recieved this mail from Microsoft Developer Commumications.It says that Microsoft wont serve ads to our applications which use older SDK (Anyhow,all of them were created by OLD System). After now It seems we need to upgrade our application to better systems. What do you mean with better system? I mean UWP(Universal Windows Platform),not Windows Phone 8.1 Project.I think the time came to build UWP application.
The migration of my applications is hard work for me to have not enough time.But I can create new applications for UWP.This is what i need to focus on after January 2017. Maybe i would change my apps status for getting paid.It might be an eve to work on cross-platform progrraming,windows universal app,monogame...
21 Eylül 2016 Çarşamba
25 Şubat 2016 Perşembe
Ve Microsoft Xamarin'i Satın Alır
Microsoft 2013'ten beri geliştiricilerin Visual Studio üzerinde en kolay şekliyle Native uygulamalar geliştirebilmeleri için Xamarin ile partnerlik yürütüyordu.Sonunda bu satın alma gerçekleşti.Xamarin,.C# dili ile(şu anda programlamaya nereden başlamalıyım sorusunun muhtemel cevabı olan dil) piyasada bulunan aklınıza gelebilecek bütün platformlara uygulama geliştirme imkanı sunuyor.Örnek olarak bazıları Windows,IOS,Android mobil uygulamaları,Linux,Windows,Mac masaüstü uygulamaları,ve Monogame(Eski XNA) ile neredeyse bütün oyun platformları.
2016 yıldır belkide uygulama geliştirmek için şu andan daha iyi bir zaman olmadı.Tabiki de öyle muhtemelen daha iyiside olacak.Ama şu an bizi bekleyen market potansiyeli ve SDK bolluğu yüzünden ne yapacağımızı şaşırmıyorda değiliz.Bence Android SDK mı yok Xamarin mi,yok Unity mi yok Unreal mı ... diye giden kıyaslara hiç girmeyin.Tüketim mi,üretim mi? Asıl mesele bu konuda taraf olmaktan ibaret.Dünya üzerinde çok güzel uygulamalar,web siteleri vs mevcut,bunları tüketmekte bir o kadar güzel ve eğlenceli.Ama bir kere üretim kısmına bulaşmış kimseler için işler tüketmek kadar kolay değil.O yüzden üretim kısmında isek bir şeyler tasarlamak istiyorsak zaten kısıtlı olan imkanlarımızı doğru kullanmaya çalışalım.Sadece Java ile uğraşmış tiplerin boşverin diğerlerini demesini veya .NET'çilerin tam tersini söylemesine aldırış etmeyin.Siz mümkünse hepsini deneyin çok fazla zamanınız yoksa bir taşla iki kuş vurma platformlarına bir göz atın.Xamarin bu durum için şu an piyasada en uygun konumda diyebiliriz.
Xamarin ile Visual Studio ortamında C# dili ile örneğin Android veya IOS için uygulama yazabiliyorsunuz.Performans şöyle böyle diyen kişilere kulaklarınızı tıkayınız.Biz bir şeyler üretebilmenin peşindeyiz.Eğer varsa Java ile bütün platformlara mobil uygulama yazabileceğimiz bir şeyler veya Objective-C ile Android veya Windows Phone onuda kullanırız.Microsoftun zaten birlikte çalıştığı Xamarin'i satın almasından sonra direk Visual Studio içerisinde bütün Xamarin platformlarına ekstra bir ücret ödemeden ulaşmamız en büyük temennim.
Beni en çok heyecanlandıran şey ise Monogame'in Visual Studio ortamında C# ile aklınıza gelebilecek bütün platformlara oyun programlama desteği verebilecek olması.Monogame'in 'Write once,Play everywhere' sloganı indie geliştiricilerin ağzını sulandırıyor.(XNA 5 mi geliyor?) Umarım bu konudada işler biz geliştiricilerin dilediği gibi gider.Android veya IOS için Monogame ile oyun geliştirmek C# bilenler için çokta zor olmayacaktır.
Bir sonraki Visual Studio sürümünü merakla bekliyor olacağız.O zamana kadar Windows 10 Universal Project konusunu incelemenizi öneririm.Artık eskisi gibi mobile ayrı masaüstüne ayrı tablete ayrı uygulama yazma devri bitiyor gibi.
Yazımı yazarken dinlediğim Metallica-Fade to Black şarkısıyla ve ayrıca ilk XNA oyunum Paint Trek'in örnek videosuyla bitiriyorum,hoşça kalın.
21 Aralık 2015 Pazartesi
Star Wars 2012
Star Wars(Yıldız Savaşları),George Lucas(1) tarafından tasarlanan efsane fim serisi.Sinema sektöründe altın harflerle yazılı bir çalışma.2015 yılını bitirmek üzere olduğumuz bu günlerde Türkiye'de bile gündem ışın kılıçları,Darth Vader ve stormtrooper maskeleri,uzay araçları,akan galaksi ekranı.Koca otomobil firmalarının para basıp reklamlarında kullandığı,BİM(2)'in bile bardağını,şapkasını,yastığını,tshirtlerini satarak nasiplendiği, bizim gibi ortadoğu ülkesi vatandaşlarını sevindirdiği günler yaşıyoruz.Evet yanlış duymadınız BİM,Star Wars ve BİM'den satın alınan kupaları,şapkaları ezik bulan ortadoğunun bağrından kopan züppeler...
Sosyal medya haftalarca Star Wars ablukası altındayken ( yeni filmi viyondayken https://www.youtube.com/watch?v=sGbxmsDFVnE ) bir an yakın geçmişim gözümün önüne geldi.Kütahya DPU son sınıf bitirme tezim,adı Star Wars 2012 olan.Hayatlarında kod yazdıkları meçhul insanlara proje beğendirmeye çalıştığımız günler.Üniversite hakkında fazla konuşmak istemiyorum,kantininde takılmak harici pek çekici gelmeyen bir mekandı.Tez konuma gelirsek,XNA Framework ile 2D oyun tasarımı.O zamanın şartlarına göre elimden geldiğince kendimi geliştirmeye çalıştığımı düşünüyorum.Şu an daha iyisini yapabilirdim diye söylensemde sınıf olarak yönlendirme konusunda sıkıntı çekiyorduk.Oyun yapımı konusunda kendime başlangıç noktası bulmuştum,XNA Framework.Şu sıralar MonoGame(3) çatısı altında yeniden hayat bulan proje Microsoft'un desteğini kaybetse bile Xamarin(4) ile yoluna devam etmektedir.Ama bu işe giriş yapmak için sağlam ve basit bir yapıya ihtiyaç duyanlara her zaman önerim olmuş ve olacaktır bu Framework.Oyunum 3 level'dan oluşmaktadır.O zaman ki bilgi ve birikimime göre kendi kendime iyi bir şeyler yapmaya çalıştığımı söyleyebilirim.Takdir sizin.
Source Codes : here
1) George Lucas and Star Wars
2) BIM
3)MonoGame
4)Xamarin
Sosyal medya haftalarca Star Wars ablukası altındayken ( yeni filmi viyondayken https://www.youtube.com/watch?v=sGbxmsDFVnE ) bir an yakın geçmişim gözümün önüne geldi.Kütahya DPU son sınıf bitirme tezim,adı Star Wars 2012 olan.Hayatlarında kod yazdıkları meçhul insanlara proje beğendirmeye çalıştığımız günler.Üniversite hakkında fazla konuşmak istemiyorum,kantininde takılmak harici pek çekici gelmeyen bir mekandı.Tez konuma gelirsek,XNA Framework ile 2D oyun tasarımı.O zamanın şartlarına göre elimden geldiğince kendimi geliştirmeye çalıştığımı düşünüyorum.Şu an daha iyisini yapabilirdim diye söylensemde sınıf olarak yönlendirme konusunda sıkıntı çekiyorduk.Oyun yapımı konusunda kendime başlangıç noktası bulmuştum,XNA Framework.Şu sıralar MonoGame(3) çatısı altında yeniden hayat bulan proje Microsoft'un desteğini kaybetse bile Xamarin(4) ile yoluna devam etmektedir.Ama bu işe giriş yapmak için sağlam ve basit bir yapıya ihtiyaç duyanlara her zaman önerim olmuş ve olacaktır bu Framework.Oyunum 3 level'dan oluşmaktadır.O zaman ki bilgi ve birikimime göre kendi kendime iyi bir şeyler yapmaya çalıştığımı söyleyebilirim.Takdir sizin.
14 Aralık 2015 Pazartesi
Cannot insert the value NULL into column 'columnName', table 'dbo.Table'; column does not allow nulls. INSERT fails. The statement has been terminated.
Veri tabanında içinde veriler olan tablonuz var ve siz bu tabloya yeni bir kolon eklemek istiyorsunuz.'Allow Nulls' seçeneğini kapatmak istiyorsunuz.Yani kolonun değerinin null olmasına izin vermek istemiyorsunuz.Bu sırada "Unable to modify table.Cannot insert the value NULL into column 'columnName', table 'dbo.Table'; column does not allow nulls. INSERT fails. The statement has been terminated." hatasıyla karşılaşacaksınız.Bu hatanın meydana gelme sebebi o an tablomuzda kayıtlı bulunan diğer verilere bu kolonun eklenmesi ve bunlarda ki değerlerin null olmasından kaynaklanıyor.Bundan kurtulmak için kolonun default value kısmını doldurabilirsiniz.Amacımız örneğin o an tablomuzda 100 adet kayıt varsa onların ilgili kolonunu(sonradan eklediğimiz) null olmayan bir değerle doldurmak.Benim örneğimde guid adında text tipinde veri tutan bir kolon ekliyorum.Allow nulls seçeneğini işaretliyorum ki bu hata ile karşılaşmayayım ve tablomu öncelikle bu haliyle kayıt etmiş olayım.Sonra bütün tablomun kayıtlarının guid kolonunu default bir değerle manuel olarak güncelleyeceğim.Bu işlemden sonra tablonun design modundan ilgili kolonun null değer alabilme iznini kapatabilirim.
9 Aralık 2015 Çarşamba
Breadcrumb (navigation,ekmek kırıntısı) Nedir?
Genellikle web sayfalarında kulanıcılara bulundukları sayfaya ulaşmak için hangi yollardan geçtiklerini hatırlatmaya yönelik bilgi linkidir.Aslında ana dizinden ilgili sayfaya ulaşmak için gezilmesi gereken sayfaları gösterir.Yazılımcılar bu işi meşhur Hansel ve Gretel kardeşlerden öğrenmiştir diyebiliriz.Eski toprak bu iki kardeşin web sayfalarında navigasyon konularına yönelik yaptıkları hizmetleri anmadan geçemeyeceğiz.(Tamam abartıyorum)Annelerinin veya üvey annelerinin yokluk yüzünden aç kalma tehlikesine karşı bulduğu dahiyane fikir sonucu iki kardeş kendilerini babaları tarafından ormana bırakılmış şekilde bulurlar.Ama kardeşler yol boyunca eve(ana sayfaya) dönüş yolunu bulabilmek için cakıl taşları ve ekmek kırıntıları(aha breadcrumbs) ile işaret bırakmışlar.(1)Burada masumların hesaba katmadıkları şey ise ormanda ki masum hayvanların masum bir şekilde kırıntılardan nasiplenmesidir.Tabi kardeşler dönüş yolunu kaybederler ve değişik maceralar yaşarlar.(2)Şaka bir yana bizler bu yapının benzerinin yapımı konusunda kafa yoruyor olacağız.
Breadcrumb(Ekmek kırıntısı) örneği aşağıdaki resimde göründüğü gibidir.Değişik kullanımları mevcuttur.(Genellikle e-ticaret sitelerinde karşılaşabileceğimiz bir yapıdır)
Son zamanlar artık SEO dostu tasarımlar ortaya koyma noktasında yarışa girişen yazılımcılar sayesinde zaten tarayıcımızda gördüğümüz linklerde nerede olduğumuz hakkında bizlere yeterli kırıntıları sunulmaktadır.
Örnek olarak,Dota 2 oyunuyla ilgili istatistik sunan bu sitede(3) Herolar/WitchDoctor/Items kısmından nerede olduğumu anlayabiliyorum.
Benim değinmek istediğim konu ise şu şekilde,elimde bir kategori sistemi var ve buna kategoriler eklemek istiyorum.Her kategorinin üst kategori(Parent Category,bir tane) ve alt kategoriler(Child Categories,birden fazla olabilir) diye alanları mevcuttur.Eğer bir kategorinin üst kategorisi null ise yani yoksa bu kategorimiz saygı değer üst kategoridir.Bunların ekleme veya ilişkilendirilme durumlarına değinmeyeceğim.Bunları hallettiğinizi varsayarak elinizde bir kategori listesinin bulunduğunu ve bu listenin her bir elemanının altında bulunduğu üst kategorisine doğru gezinti menüsünü oluşturmaya çalışacağız.
Elimizde 4 adet kategorinin olduğunu varsayalım.Heroes isimli kategori üst kategorimiz(parent category) olsun.Witch Doctor ve Timbersaw diyede alt kategoriler(child categories) olsun.Bu iki kategorinin parent i Heroes kategorisi olsun ve Witch Doctor bir adet alt(child) kategoriye sahip olsun.Onun adıda Items olsun.
Almamız gereken sonuç :
Heroes kategorisinin breadcrumb linki = Heroes
WitchDoctor kategorisinin breadcrumb linki = Heroes>>WitchDoctor
Timbersaw kategorisinin breadcrumb linki = Heroes>>Timbersaw
Items kategorisinin breadcrumb linki = Heroes>>WitchDoctor>>Items
Biz bu aldığımız sonuçları oluşturacağımız Category nesnelerimizin BreadCrumb(String) alanında saklayacağız.Her nesne kendi ekmek kırıntısıyla eve dönüş yapısını içnide saklayacak.Bunlarıda örnek olarak kategorilerimizin listelendiği tabloda veya diğer aklımıza gelen uygun yerlerde kullanabiliriz.Bunu oluşturan bir fonksiyon tasarlıyoruz.Recursive(4) olarak çalışacak olan bu yapı kategori listemizin her nesnesini dolaşıp o nesnenin üst kategorisini bulana kadar yani üst kategorisi null olan kategoriye denk gelene kadar ekmek kırıntılarını takip etmek olacaktır.Bu işlemi her bir liste elemanı için tekrar edeceğiz.
public class Category : BaseObject
{
string breadcrumbLink;
public Category Parent
{
get
{
return parent;
}
set
{
parent = value;
}
}
public string Name
{
get
{
return name;
}
set
{
name = value;
}
}
public string BreadcrumbLink
{
get
{
return breadcrumbLink;
}
set
{
breadcrumbLink = value;
}
}
List<Category> childList;
public List<Category> ChildList
{
get
{
return childList;
}
set
{
childList = value;
}
}
public string GetBreadcrumbLink(ref int counter, List<Category> categoryList, Category category)
{
if (counter == 0)
{
if (category.Parent == null)
{
BreadcrumbLink += "<strong>" + category.Name + "</strong>(" + category.ChildList.Count + ")";
}
else
{
if (category.ChildList.Count > 0)
BreadcrumbLink += category.Name + "(" + category.ChildList.Count + ")";
else
BreadcrumbLink += category.Name;
}
}
counter++;
if (category.Parent != null)
{
BreadcrumbLink = category.Parent.Name + ">>" + BreadcrumbLink;
GetBreadcrumbLink(ref counter, categoryList, category.Parent);
}
return BreadcrumbLink;
}
}
{
Category parent;
string name;string breadcrumbLink;
public Category Parent
{
get
{
return parent;
}
set
{
parent = value;
}
}
public string Name
{
get
{
return name;
}
set
{
name = value;
}
}
public string BreadcrumbLink
{
get
{
return breadcrumbLink;
}
set
{
breadcrumbLink = value;
}
}
List<Category> childList;
public List<Category> ChildList
{
get
{
return childList;
}
set
{
childList = value;
}
}
public string GetBreadcrumbLink(ref int counter, List<Category> categoryList, Category category)
{
if (counter == 0)
{
if (category.Parent == null)
{
BreadcrumbLink += "<strong>" + category.Name + "</strong>(" + category.ChildList.Count + ")";
}
else
{
if (category.ChildList.Count > 0)
BreadcrumbLink += category.Name + "(" + category.ChildList.Count + ")";
else
BreadcrumbLink += category.Name;
}
}
counter++;
if (category.Parent != null)
{
BreadcrumbLink = category.Parent.Name + ">>" + BreadcrumbLink;
GetBreadcrumbLink(ref counter, categoryList, category.Parent);
}
return BreadcrumbLink;
}
}
Örnek Category sınıfımız yukarıda göründüğü gibidir.İçeriğinde Category sınıfından bir Parent,alt kategoriler için ChildList adında Category Listesi,String tipinde Name alanı(kategori adı) ve BreadcrumbLink adında String tipinde ekmek kırıntısı linkimiz mevcuttur.
foreach (var category in categoryList)
{
int counter = 0;
category.GetBreadcrumbLink(ref counter, categoryList, category);
}
{
int counter = 0;
category.GetBreadcrumbLink(ref counter, categoryList, category);
}
Sistemimizde bulunan bütün kategorilerin geldiği listede her bir kategori nesnesi için yukarıda görüdüğümüz şekilde breadcrumblink alanını doldurabiliriz.
Ben benzer sistemin iki değişik kullanımını örnek vereceğim.ASP.NET MVC kullananlar için tanıdık gelecek bu Controller sayfasında elimde bulunan kategorileri tablo halinde listelenmesini istiyorum.BreadcrumbStyleTable fonksiyonumuz bizlere tablonun satır bilgilerini döndürmektedir.View sayfamızda Html.Raw ile alacağınız bu kısımda tablomuzda kategori adları yerine ilgili kategorinin kategori hiyerarşisindeki konumunu yazdırıyoruz.(Örnek : Futbol>>Takımlar>>Bursaspor).TreeMenu fonksiyonu ise aynı kategori hiyerarşisine ağaç görünümü ile bakmamıza olanak tanıyor.
public class PanelCategoryController : Controller
{
// GET: Category
public ActionResult Index()
{
var categories = Category.CategoryList;
string table = "";
int counter = 0;
BreadcrumbStyleTable(ref counter,ref table,categories);
ViewBag.table = table;
return View(categories);
}
public string BreadcrumbStyleTable(ref int counter,ref string table, List<Category> categoryList, int? parentId = null)
{
if(counter!=categoryList.Count)
table += "<tr>";
counter++;
foreach (var category in categoryList)
{
int? categoryParentId = null;
if (category.Parent != null)
{
categoryParentId = category.Parent.Id;
}
if (categoryParentId == parentId)
{
table += "<td><a href='Category/Details/"+category.Id+"'>" +category.BreadcrumbLink + "</a></td>";
table += " <td><a href='Category/Edit/"+category.Id+"'>Düzenle</a>/<a href='Category/Delete/"+category.Id+"'>Sil</a></tr>";
BreadcrumbStyleTable(ref counter,ref table, categoryList, category.Id);
}
}
return table;
}
public string TreeMenu(ref string table,List<Category> categoryList,int? parentId=null)
{
table += "<ul>";
foreach (var category in categoryList)
{
int? categoryParentId = null;
if(category.Parent!=null)
categoryParentId=category.Parent.Id;
if (categoryParentId == parentId)
{
table += "<li>" + category.Name;
TreeMenu(ref table, categoryList,category.Id);
table += "</li>";
}
}
table += "</ul>";
return table;
}
{
// GET: Category
public ActionResult Index()
{
var categories = Category.CategoryList;
string table = "";
int counter = 0;
BreadcrumbStyleTable(ref counter,ref table,categories);
ViewBag.table = table;
return View(categories);
}
public string BreadcrumbStyleTable(ref int counter,ref string table, List<Category> categoryList, int? parentId = null)
{
if(counter!=categoryList.Count)
table += "<tr>";
counter++;
foreach (var category in categoryList)
{
int? categoryParentId = null;
if (category.Parent != null)
{
categoryParentId = category.Parent.Id;
}
if (categoryParentId == parentId)
{
table += "<td><a href='Category/Details/"+category.Id+"'>" +category.BreadcrumbLink + "</a></td>";
table += " <td><a href='Category/Edit/"+category.Id+"'>Düzenle</a>/<a href='Category/Delete/"+category.Id+"'>Sil</a></tr>";
BreadcrumbStyleTable(ref counter,ref table, categoryList, category.Id);
}
}
return table;
}
public string TreeMenu(ref string table,List<Category> categoryList,int? parentId=null)
{
table += "<ul>";
foreach (var category in categoryList)
{
int? categoryParentId = null;
if(category.Parent!=null)
categoryParentId=category.Parent.Id;
if (categoryParentId == parentId)
{
table += "<li>" + category.Name;
TreeMenu(ref table, categoryList,category.Id);
table += "</li>";
}
}
table += "</ul>";
return table;
}
1)Sefaleti yaşarken ekmek kırıntısından navigasyon olayı iyimiş.Acaba anneleri,"ben sadece pirzola yemek istiyorum kuru ekmek benim yaşam tarzıma uygun değil" diyerek mi çocukları evden kovmayı düşünmüş diye insan kendi kendine sormuyor değil.Yani sorun burada açlık değilde pirzola yiyememek miydi?Çünkü götürüldükleri yerin eve uzaklığı boyunca bırakacakları ekmek kırıntıları için belkide fırın arabasıyla seyahat etmeleri daha makul görünen birşey.
2) https://tr.wikipedia.org/wiki/Hansel_ve_Gretel
3)http://www.dotabuff.com
4)https://en.wikipedia.org/wiki/Recursion_(computer_science) (Özyineleme)
29 Kasım 2015 Pazar
SQL Server: Invalid Column Name
Microsoft Sql Server Management Studio üzerinde çalışırken bazen sinir bozucu şekilde sorgu satırlarımızın altında kırmızı çizgilerin belirdiğini görürürüz.
Sql Server : Invalid Column Name
Msg 102, Level 15, State 1, Line 1
Incorrect syntax near 'S'.
Benzeri mesajlar görünür ama anlamadığımız kısım budur zaten.Bunun olma durumlarından iki tanesinden bahsedeceğim.Birincisi sorgu yazdığımızda sql de bizim hangi veritabanı üzerinde işlem yapacağımızı bildirmemiş olabiliriz.Bunu aşmanın yolu veritabanını seçmek.Üstteki resimde sol üst kısımdan NBA veritabanını seçtiğimizde sorunumuz çözülecektir.Diğer yol ise sql sorgularımızdan önce bir kere Use DatabaseName; dememiz yeterlidir.
İkinci durumda ise bir veritabanı üzerinde çalışırken seçtiğimiz tablomuzda,join yaptığımız tablolarda bir değişiklik olmuş olabilir veya bağlantılı sonuç getireceğimiz tablomuz bizim sorgu sayfamız açıldığında başlangıçta son halini almamış veya hiç varolmamışta olabilir.O yüzden sql Management Studio'yu kapatıp tekrar açabiliriz veya aşağıda ki yolu izleyerek sql sorgularımızda ki intellisense özelliğine bir yenileme komutu yollayabiliriz.İşlemin dizini Microsoft SQL Server Management Studio içerisinde Edit>>Intellisense>>Refresh Local Cache.
25 Kasım 2015 Çarşamba
Error : String or binary data would be truncated. The statement has been terminated.
Bir tablo oluşturmuşunuz ve Name isimli string alanını tutmak için VarChar(20) tipinde bir kolon eklediğinizi varsayalım.Veritabanına insert işlemi yaparken kullanıcının,sizin belirtiğiniz Size(20) değerinden fazla karakterli bir giriş yapmasına izin verdiğinizi varsayalım.Bu durumda 'String or binary data would be truncated. The statement has been terminated.' hatasıyla karşılaşırsınız.Kurallarınızı gözden geçirmenizde fayda var.Örneğin ilgili alana 20 karakterden fazla giriş yapılmamasını sağlayabilir veya ilgili alanın daha uzun karakterleri tutabilmesini sağlamak için ilgili tablodan ilgili kolonun Size ını artırabilirsiniz.
DevExpress XAF kullanıyorsanız,sınıfınızda örneğin String alanını oluşturup programı derlemeye geçtiğinizde tablolar çoktan oluşacağından dolayı ilgili kolonun boyutunu düzenlemek için sil-tekrar yükle işlemi veya tabloyu silip projemizi yeniden derleme yoluna gidebiliriz.(2.adım eğer tablo boş ise daha rahattır.) Yeniden oluşturma işleminden önce tabi ki gerekli ayarlamaları alanımız için yapmayı unutmayalım.
DevExpress XAF kullanıyorsanız,sınıfınızda örneğin String alanını oluşturup programı derlemeye geçtiğinizde tablolar çoktan oluşacağından dolayı ilgili kolonun boyutunu düzenlemek için sil-tekrar yükle işlemi veya tabloyu silip projemizi yeniden derleme yoluna gidebiliriz.(2.adım eğer tablo boş ise daha rahattır.) Yeniden oluşturma işleminden önce tabi ki gerekli ayarlamaları alanımız için yapmayı unutmayalım.
[Size(50)]
public string MyProperty
{
get { return _myProperty; }
set { SetPropertyValue("MyProperty", ref _myProperty, value); }
}
[Size(SizeAttribute.Unlimited)]
public string MyProperty
{
get { return _myProperty; }
set { SetPropertyValue("MyProperty", ref _myProperty, value); }
}
[DbType("nvarchar(max)")]
public string MyProperty
{
get { return _myProperty; }
set { SetPropertyValue("MyProperty", ref _myProperty, value); }
}
public string MyProperty
{
get { return _myProperty; }
set { SetPropertyValue("MyProperty", ref _myProperty, value); }
}
[Size(SizeAttribute.Unlimited)]
public string MyProperty
{
get { return _myProperty; }
set { SetPropertyValue("MyProperty", ref _myProperty, value); }
}
[DbType("nvarchar(max)")]
public string MyProperty
{
get { return _myProperty; }
set { SetPropertyValue("MyProperty", ref _myProperty, value); }
}
Kaydol:
Yorumlar (Atom)








