1

Konu: Exercise..

Bir web uygulaması ile (örneğin asp.net ile geliştirilmiş..) SQL Server' da bir kayıt oluşturdum, ve bu kaydın bir kısmını yine web uygulaması ile dolduruyorum. Kalan kısmını ise client (yani web sayfasını çağıran),  bir Windows Desktop uygulaması ile dolduracak.

Soru şu : SQL Server' da web uygulamasının açmış olduğu kaydın unique ID' sini Client' a (Desktop uygulamasına) otomatik olarak nasıl bildiririm ?

Not : Web sayfasında oluşturulan ID şudur falan demeyeceğim.

2

Re: Exercise..

Autoinct fieldlar için GetNextVal()  türevi bir fonksiyon olmalı.

Uğur
-------------------------------------------------------------------------------------------------------------
Hayat bir bisiklete binmek gibidir. Pedalı çevirmeye devam ettiğiniz sürece düşmezsiniz. Claude Peppeer
Kusuru söylenmeyen adam, ayıbını hüner sanır.  Türk Atasözü

3

Re: Exercise..

table da 1 adet guid pkey olan bir alanin olsun ornegin myguid , desktopta kaydi okuduğunda bu alani göster
eger yanlis anlamadi isem cozum böyle olmali

4

Re: Exercise..

Soykan, web uygulamasında guid'i oluşturuyorum. Bu web uygulaması desktop ugulamayı tetikliyor. Sorun bu guid' i desktop uygulamasına nasıl bildireceğim ?  Ayrıca ana uygulama olan web uygulamasının aynı anda bir çok kullanıcısı olabilir. Aynı anda bir çok guid oluşabilir. Hangi guid' i  hangi kullanıcı oluşturdu ?

Bu durumda web uygulamasını açan kullanıcıya ait guid yine kendi bilgisayarındaki Desktop uygulamaya bildirilmeli. Ama nasıl?

5

Re: Exercise..

SignalR kullan.
Messenger vari bir uygulama yazdığını düşün.
web uygulamnda , windows uygulamanda bir birine mesaj göndersin.

http://signalr.net/

6

Re: Exercise..

Aligocmen yazdı:

Bu web uygulaması desktop ugulamayı tetikliyor. Sorun bu guid' i desktop uygulamasına nasıl bildireceğim ?

Pardon ben mi yanlış anlıyorum bilmiyorum ama, eğer web uygulaması desktop uygulamasını tetikliyorsa istediğin ID yi parametre olarak desktop uygulamasına gönderemezmisin?

Tekin Başöz
Yapay Zeka Ltd.

7

Re: Exercise..

bu kodlar bir fikir verebilir diye dusunuyorum

koddan anlasilacagi uzere page_load ta ki deger session a aktariliyor o degerde label ve hyperlink e hyper link tiklandiginda wsh calistirip exeyi tetikliyor ve exeyi parametreye gonderiyor, senaryolar cogaltilabilir umarim faydali olur

NOT: test etmedim

C#
//Default.aspx.cs:

public partial class _Default : System.Web.UI.Page
  {
      protected void Page_Load(object sender, EventArgs e)
      {
          Session["UserName"] = "Administrator";
      }
  }
 
//Default.aspx:
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Get Session Value in JavaScript</title>
<script>
function LaunchApp() {
if (!document.all) {
  alert ("Available only with Internet Explorer.");
  return;
}
var myVar =  '<%= Session["UserName"] %>';
var ws = new ActiveXObject("WScript.Shell");
ws.Exec("C:\\Yourpath\\YourVFP.exe " + myVar);
}
</script>
 
    <script type="text/javascript">
        window.onload = function () {
            var userName = '<%= Session["UserName"] %>'
            document.getElementById("lbUserName").innerHTML = userName;
        };
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        Welcome,
        <label id="lbUserName">
    <asp:HyperLink id="hyperlink1"
                  NavigateUrl="javascript:LaunchApp();"
                  Text=""
                  runat="server"/>
        </label>
    </div>
    </form>
</body>
</html>

8

Re: Exercise..

Soykan kod ve zahmetin için teşekkürler. Bende benzer bir yola ulaştım. Ama açılan web sitesinin SessionId' sini kullandım. Web uygulamasının  oluşturduğu kayda bu SessionId' yi yazdım.
WebForm'un  CodeBehind' ında Sayfanın Title' ına bu sessionId değerini yazdım. Masaüstünde  çalışan VB.NET uygulaması açık tüm browserlardaki Title değerlerini taratıyorum.  Buradan aldığım sessionId değerine göre SQL' de ilgili kaydı bulup tamamlatıyorum.

C#
HTML:

<head runat="server">
    <title id="baslik" runat="server"></title>
    <link href="~/Styles/Site.css" rel="stylesheet" type="text/css" />
    <asp:ContentPlaceHolder ID="HeadContent" runat="server">
    </asp:ContentPlaceHolder>
</head>
 
CodeBehind:
baslik.Text = System.Web.HttpContext.Current.Session.SessionID
 
Desktop Uygulama:
 
Dim appName As String = "iexplore"
        Dim pList() As System.Diagnostics.Process = System.Diagnostics.Process.GetProcessesByName(appName)
        For Each proc As System.Diagnostics.Process In pList
            tit = proc.MainWindowTitle
            If proc.ProcessName = appName Then
 
                    uid = tit.Substring(tit.IndexOf("-") + 1, tit.LastIndexOf("-") - tit.IndexOf("-") - 1).Trim
                    Try
                        Dim bul = (From k In db.kayitlar Where k.userid = uid  Select k).First()
                        ekleid = bul.sira
                    Catch ex As Exception
                    End Try
 
                End If
        Next

9

Re: Exercise..

kodun yardimci olmasina sevindim smile

web uygulamalarinda Session candir smile

web config te asagidaki kod olayi cozuyor

<sessionState mode="InProc" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes" cookieless="true" timeout="20" />

ve session id url lede aliyor asagidaki gibi
http://localhost:62655/(S(rvuhjc0dd22o2xudvkdkhzql))/Login.aspx?ltype=lo

ve senin yaptigin gibi System.Web.HttpContext.Current.Session.SessionID isi bitiriyor