web browsersız .....
-
10 Haziran 2012 Pazar 04:54ben bi program yapmayı düşünüyorum program internet tabanlı olacak ve web browser olmayacak şöyleki.. mesela kullanıcı programı açıcak ( Win. Form programı olacak). kullanıcı burdan mesela bir makale yazdı diyelim bunu sql ver tabanına kaydedecek. daha sonra başka bilgisayardaki başka bir kullanıcı da bu makaleyi okuyabilecek . bu programı nasıl yapabilirim ve küçük bir örnekle açıklarsanız çok iyi olur
Tüm Yanıtlar
-
10 Haziran 2012 Pazar 05:46Tam olarak bilmiyorum . Bunun icin bir server a ihtiyacin var. Server olduktan sonra degil program dosyalarini neredeyse bilgisayardaki tum verileri paylasabilirsin. Server i da ag paylasimindaki ortak klasordeki dosyalar gibi dusunebililr sin. Kullanici okuma izni, yazma izni ve daha bir suru ayari var. Bende senin sorunun cevabini merak etmiyor degilim. Kolay gelsin.
Matrix_Reloaded
-
10 Haziran 2012 Pazar 06:27aslında ben onu sona saklıyorum ilk işim programı yapmak onun için nasıl yapılacağı mantığını anlatan küçük bir örnek verilirse çok iyi olur
-
10 Haziran 2012 Pazar 07:03Mesela sen su an bilgisayarin karsisinda oturuyorsun ve bir server daki benim az once yazdigim forumu okuyorsun. Msdn formu nu server al bizide kullanici olarak gorsen mantigin nasil oldugu biraz daha kafanda canlanir...... Kod kismini inan bende bilmiyorum. Bence bunun cevabini kimse vermez sana diyecekler ki git SQL server ogren. :) . Verirlerse cok iyi ...
Matrix_Reloaded
-
10 Haziran 2012 Pazar 07:42
merhaba bu okuma işlemi yine winform uygulaması içindemi olcak , yoksa uygulama içinden yalnız makale vs gönderimi yapıcaksınız ?
veya okumayı içerde yapcaksanız , winform un içinde açılacak bir browser dammı olcak yoksa gridview gibi ?
- Düzenleyen ANATOLIUM 10 Haziran 2012 Pazar 07:43
-
10 Haziran 2012 Pazar 07:43keşke :) biriler yardım etsin lütfen okul zamanında da sormadım ki ödev diye algılanmaması için :) yardıma ihtiyacım var ...
-
10 Haziran 2012 Pazar 08:14
anatolıum işlemler okuma ve makale ekleme işlemlerinin hepsi winform içinde gerçekleşecek browser olmayacak şey gibi hani sözlükler vardır interneti kullanarak çeviri yapan onlar gibi olacak
-
10 Haziran 2012 Pazar 16:51
merhaba ibrahim senin için ufak bir uygulama yaptım detayları hepsinin içinde yazılı ancak yine burdan açıkliyim
generic bir yapı oluşturdum,
bence bakarak yapmaya çalış yapmazsan
bu database
http://s2.dosya.tc/server15/BZ0cBf/ArticleDatabase.rar.html
bu proje
http://s2.dosya.tc/server15/NbnLCb/Article_Project.rar.html
senin için ekstra bir şey daha yaptım , login kontrolü yapıyor eğer doğruysa ikinci form açılıyor vd db ki kullanıcının bilgilerini ikinci forma yazıyor
eğilse aşağıdaki gibi hata ekranı açılmakta
ikinci form makalelerini gireceğin ekrandır burda direk db ye kayıt yapıyorsun
toplamda 5 fonksiyonun var
CreateArticle >> makale kayıt eder 1 generic arguman alır
CreateUser >> kullanıcı kayıt işlemi yapar 2 argüman alır ( fonksiyon hazır login create ekranı yaparsan çalışır)
GetArticles() >> tüm kayıtlı makaleleri ekrana getirir
GetUserId >> login olurken login olan kişinin adına göre userId ve yetkiId sini çeker
" burada ben username göre çek demişim ancak hata yaptım , onu sen mail kontrol olarak düzeltirsin sonuçda birden fazla isim olabilir bu durumda hata döner )
AuthenticationControl >> Login olan kişinin doğruluğunu kontrol eder ( şu an boşta ben kontrolü GetUserId fonksiyonunda join yaparak yaptığımdan bunu kullanmadım ama kullanırsanda çalışır)
Common Function Layer >> Function.cs
#region Create /// Yeni Üyelik Yaratır /// </summary> /// <param name="userName"></param> /// <param name="partial"></param> /// <returns>Bool</returns> public static bool CreateUser(string userName, string password) { DateTime nowDate = DateTime.Now; try { Users createUser = new Users { GUID = Guid.NewGuid(), PASSWORD = password, USERNAME = password, CREATE_DATE = nowDate, STATUS = (byte)Enums.StatusType.Active }; } catch (Exception) { return false; } return true; } public static bool CreateArticle(ArticleItem articleItems) { DateTime nowDate = DateTime.Now; ArticleDatabase entities = new ArticleDatabase(); try { Articles CreateArticle = new Articles { GUID = Guid.NewGuid(), ARTICLE_TOPIC = articleItems.ArticleTopic, ARTICLE_CONTENT = articleItems.ArticleContent, CREATE_DATE = nowDate, STATUS = 1, USER_ID = articleItems.UserId, AUTHORITY_ID = articleItems.AuhorityId }; entities.AddToArticles(CreateArticle); entities.SaveChanges(); } catch (Exception) { return false; } return true; } #endregion #region GetList /// <summary> /// Makaleleri çeker /// </summary> /// <returns></returns> public static List<ArticleItem> GetArticles() { ArticleDatabase articleEntities = new ArticleDatabase(); List<ArticleItem> ArticleItems = new List<ArticleItem>(); var query = from p in articleEntities.Articles select new ArticleItem { ArticleContent = p.ARTICLE_CONTENT, ArticleDate = p.CREATE_DATE, ArticleId = p.GUID, ArticleTopic = p.ARTICLE_TOPIC, AuhorityId = p.AUTHORITY_ID, UserId = p.USER_ID, Status = p.STATUS }; ArticleItems = query.ToList(); return ArticleItems; } public static UserItem GetUserId(string userName) { Guid userId = Guid.Empty; UserItem userItem = new UserItem(); ArticleDatabase articleEntities = new ArticleDatabase(); var query = (from p in articleEntities.Users join q in articleEntities.Authority on p.AUTHORITY_ID equals q.AUTHORITY_TYPE where p.USERNAME.Equals(userName) select new UserItem { UserId = p.GUID, Authentication_Name = q.AUTHORITY_NAME, Authentication_Type_Id = q.AUTHORITY_TYPE, }).SingleOrDefault(); userItem.Authentication_Name = query.Authentication_Name; userItem.UserId = query.UserId; userItem.Authentication_Type_Id = query.Authentication_Type_Id; return userItem; } public static bool AuthenticationControl(string userName, string password) { ArticleDatabase articleEntities = new ArticleDatabase(); var query = from p in articleEntities.Users where p.USERNAME.Equals(userName) && p.PASSWORD.Equals(password) select p; if (query.Count() > 0) { return true; } else { return false; } } #endregion }Bu Makaleleri istediğin yetkiye göre çekmesi için olan struct yapının tipleri
namespace Article_Project.Type { class AuthorityType { public static readonly Guid Admin = new Guid("B09DBC62-DED1-4853-8DEF-8B330AAB6AED"); // Admin public static readonly Guid Member = new Guid("1F34846E-9DC2-4738-A96A-ACF6FCFF9E99"); // Üye public static readonly Guid Editor = new Guid("C315A9C2-B902-4D79-B664-7CD79F598EB0"); // Editor } }
Burası makaleleri çekme ve yayınlama için olan generic yapı
" aşağıda onları list haline getirmedim ama illa fonksiyonlarda List<> yazmak istemezsen buraya ekleyebilirsin
namespace Article_Project.Type { class ArticleItem { public Guid ArticleId { get; set; } public string ArticleTopic { get; set; } public string ArticleContent { get; set; } public DateTime ArticleDate { get; set; } public short Status { get; set; } public Guid UserId { get; set; } public Guid AuhorityId { get; set; } } class AuthorityItem { public Guid AuhorityId { get; set; } public Guid Authority_Type { get; set; } public string Auhority_Name { get; set; } } class UserItem { public Guid UserId { get; set; } public string UserName { get; set; } public string Password { get; set; } public short Status { get; set; } public DateTime CreateDate { get; set; } public string Authentication_Name { get; set; } public Guid Authentication_Type_Id{ get; set; } } }Eğer generic list haline getirmek istersen bu kodları yukardaki kodların en altına ekle
böylece çekme yaparken aynı anda birden fazla veriyi tek bir list içersinde ayrıştırarak yada ayrı ayrı alabilirsin , tam generic bir yapı olmuş olur( zorunlu değil )
public class GenericList { public GenericList() { ArticLeItems = new List<ArticLeItem>(); UserItem = new List<UserItem>(); } public List<ArticLeItem> ArticLeItems{ get; set; } public List<UserItem> UserItems { get; set; } }Authentication Cs dosyası " giriş kontrolü yapar herşey ok ise ikinci forma bilgileri aktarır "
public partial class Authentication : Form { public Authentication() { InitializeComponent(); } private void Authentication_Load(object sender, EventArgs e) { SetStyle(ControlStyles.Opaque, false); } private void BtnLogin_Click(object sender, EventArgs e) { bool status = Functions.Functions.AuthenticationControl(txtUserName.Text, txtPassword.Text); UserItem userItem = new UserItem(); if (status) { ArtictleForm articleForm = new ArtictleForm(); articleForm.LblAuthentications.Visible = true; articleForm.LblUserName.Visible = true; articleForm.LblWelcome.Visible = true; articleForm.LblAuthentication.Visible = true; articleForm.LblAuthentications.Visible = true; userItem = Functions.Functions.GetUserId(txtUserName.Text); articleForm.LblUserName.Text = txtUserName.Text; articleForm.LblAuthentication.Text = userItem.Authentication_Name; articleForm.AuthorityId = userItem.Authentication_Type_Id; articleForm.LblUserName.Text = txtUserName.Text; articleForm.userId = userItem.UserId; articleForm.Show(); this.Visible = false; } else { picBoxWarning.Visible = true; LblControl.Visible = true; txtPassword.Clear(); txtUserName.Clear(); } } }
Makale Kayıt Dosyası loginden gelen bilgilere göre db ye kayıt yapar
public partial class ArtictleForm : Form { public Guid userId; public Guid AuthorityId; public ArtictleForm() { InitializeComponent(); } private void BtnCreate_Click(object sender, EventArgs e) { ArticleItem ArticleItem = new Type.ArticleItem { ArticleTopic = txtArtictleTopic.Text, ArticleContent = txtArtictle_Content.Text, AuhorityId = this.AuthorityId, UserId = this.userId }; bool status = Functions.Functions.CreateArticle(ArticleItem); if (status) { LblArticle.Visible = true; LblArticle.Text = "Makaleniz yayınlandı"; } else { LblArticle.Text = "Tekrar Deneyin..."; } }
yukardaki sql tabloları
toplamda 3 tablon var
Users > üyeleri kayıt eder
Article > makaleleri kayıt eder
Authority > yetki seviyesini ayarlar
aralarındaki ilişki

uygulama resimleri



aklına takılan olursa sorabilirsin
çekme için ortaya bir webbrowser koydum ancak sen bunları istediğin bir şeyin içine nasıl istersen alabilirsin kendi sql tablolarını benimkinden yola çıkarak düzenleyebilir , ve bunlara göre form içindeki kontrollere bu grid olabilir yada başka bir şey aktarabilirsin
kolay gelsin
-
10 Haziran 2012 Pazar 17:22
anatolıum ilk önce bu ilginden dolayı sana teşekkür ederim ve seni takdir ediyorum çünkü benim istediğim gibi anlatıyorsun. geniş açıklamalarla ve görsellerlede yazıları destekliyorsun bu tip anlatımlar bence daha anlaşır .
ve şu 2 tane link vermişsin onları tarayıcım indir dediğimde hata veriyor başka bir siteye yüklersen sevinirim.
1.http://s2.dosya.tc/server15/NbnLCb/Article_Project.rar.html
2.http://s2.dosya.tc/server15/BZ0cBf/ArticleDatabase.rar.html
- Düzenleyen Aithusa 10 Haziran 2012 Pazar 17:23 eksik yazım
-
10 Haziran 2012 Pazar 19:04
gerçi ben download ettim çalışıyor ,dediğin gibi başla yer up yaptım
http://www.upload.gen.tr/d.php/www/607xky2h/Article_Project.rar.html
http://www.upload.gen.tr/d.php/www/ieoxfg32/ArticleDatabase.rar.html
-
11 Haziran 2012 Pazartesi 08:23databse in uzantısı .bak olduğu için onu açamıyorum nasıl açabilirim
-
11 Haziran 2012 Pazartesi 10:26
Merhaba ibrahimmerlin;
Management Studio üzerinden yapılabileceği gibi (daha kolaydır) TSql ile de aşağıdaki kod parçacığı ile de yapabilirsin
RESTORE DATABASE olusturulacak_database_ismini_buraya_yaz FROM DISK = 'RestoreDosyaYoluBurayagele'
resimler için buyrun
1-

2 - paint terk 1 yazdığım yere oluşturmak istediğin database adını yaz

3-restore edilecek dosyayı (*.bak dosyasını seçiyoruz)

4 -

JESUS PROMISED THE END OF ALL WICKED PEOPLE,ODIN PROMISED THE END OF ALL ICE GIANTS. I DON'T SEE MANY ICE GIANTS AROUND... exe[nokta]cute[at]live[nokta]com
-
11 Haziran 2012 Pazartesi 11:25
if (query.Count() > 0) Bu bölümde
:The underlying provider failed on Open. Hatasını veriyor
CODER DESIGN Meddi-Cezir
-
11 Haziran 2012 Pazartesi 12:03bağlantı sorunu yaşıyorsun db ye bağlandığından emin ol