From fhtapia at gmail.com Wed May 2 10:24:49 2012 From: fhtapia at gmail.com (Francisco Tapia) Date: Wed, 2 May 2012 08:24:49 -0700 Subject: [dba-VB] FYI: Microsoft embracing REST, ATOM and JSON by Open Data Protocol (OData) In-Reply-To: <003d01cadc79$cae613f0$6a01a8c0@nant> References: <003d01cadc79$cae613f0$6a01a8c0@nant> Message-ID: Shamil, Have you done any work on with oData? sounds like the Microsoft Irland's answer to a webservice protocol... j/k everyone :) In my day to day I've moved away from developing exclusively on microsoft products and into developing in SAP and now ObjectiveC (iPad apps). I had just crossed a horrible bridge and learning curve to figure out calling soap objects from iOS, a process where Apple can learn a thing or three from MS and their IDE. In C# I can consume a wsdl and begin using it almost right away after the wizard is complete. in ObjectiveC I need a third party product that will help me consume the WSDL and then create classes from it, so I can begin using it, the problem is everyone's class generator is different and there are vastly different approaches including a hand coded effort in pure xcode tools which while it's a good IDE, I think I'm just too familiar with MS. anyhow, this post was supposed to be more about oData, as the latest papers from SAP recommend using this protocol for interfacing between SAP and Third party products (MS applications, iOS, Android etc etc etc) is anyone else here interested in this type of discussion or familiar with it beyond the original post? Hope to hear back from someone! :) -Francisco http://bit.ly/sqlthis | Tsql and More... On Thu, Apr 15, 2010 at 1:58 AM, Shamil Salakhetdinov < shamil at smsconsulting.spb.ru> wrote: > > Hi All, > > I have just recently got the following site URL - is it well known > there/was > mentioned already here?: > > Open Data Protocol FAQ > http://www.odata.org/faq > > > Thank you. > > -- > Shamil > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From Gustav at cactus.dk Wed May 2 11:17:43 2012 From: Gustav at cactus.dk (Gustav Brock) Date: Wed, 02 May 2012 18:17:43 +0200 Subject: [dba-VB] FYI: Microsoft embracing REST, ATOM and JSON by Open Data Protocol (OData) Message-ID: Hi Francisco You just confirmed why I decided to stay off iOS (and Android for that matter); too little time for such stuff. I just went to a meeting today at Microsoft for an intro to Windows 8 Metro apps running on the new WinRT and learned that you just as well can get used to async communication for any serious task. The good news is that it is extremely easy to set up with the new API - just a few lines of code. We didn't reach oData. I would be interested in following this, though some have had some bad experiences: http://www.techrepublic.com/blog/programming-and-development/my-first-windows-8-application/5273 but I guess it is just a question of using it "right". /gustav >>> fhtapia at gmail.com 02-05-2012 17:24 >>> Shamil, Have you done any work on with oData? sounds like the Microsoft Irland's answer to a webservice protocol... j/k everyone :) In my day to day I've moved away from developing exclusively on microsoft products and into developing in SAP and now ObjectiveC (iPad apps). I had just crossed a horrible bridge and learning curve to figure out calling soap objects from iOS, a process where Apple can learn a thing or three from MS and their IDE. In C# I can consume a wsdl and begin using it almost right away after the wizard is complete. in ObjectiveC I need a third party product that will help me consume the WSDL and then create classes from it, so I can begin using it, the problem is everyone's class generator is different and there are vastly different approaches including a hand coded effort in pure xcode tools which while it's a good IDE, I think I'm just too familiar with MS. anyhow, this post was supposed to be more about oData, as the latest papers from SAP recommend using this protocol for interfacing between SAP and Third party products (MS applications, iOS, Android etc etc etc) is anyone else here interested in this type of discussion or familiar with it beyond the original post? Hope to hear back from someone! :) -Francisco http://bit.ly/sqlthis | Tsql and More... On Thu, Apr 15, 2010 at 1:58 AM, Shamil Salakhetdinov < shamil at smsconsulting.spb.ru> wrote: > > Hi All, > > I have just recently got the following site URL - is it well known > there/was > mentioned already here?: > > Open Data Protocol FAQ > http://www.odata.org/faq > > > Thank you. > > -- > Shamil From fhtapia at gmail.com Wed May 2 11:24:22 2012 From: fhtapia at gmail.com (Francisco Tapia) Date: Wed, 2 May 2012 09:24:22 -0700 Subject: [dba-VB] FYI: Microsoft embracing REST, ATOM and JSON by Open Data Protocol (OData) In-Reply-To: References: Message-ID: Gustav, Well it's a learning curve for sure, if you're a C programmer, then I think it's just trival, and something you can get past with not much effort, the problem is that I am not a C programmer, I am a developer/programmer/dba who can write webservices in C#, and write tsql code. I am also versed in asp and javascript. So I can figure things out well enough. ObjectiveC was the biggest learning curve and the biggest problem is that I would work with it then abandon it because I didn't have any projects, and all the demos and projects I did work on did not relate closely enough with my work and thus caused me to still cross the deadly SOAP calls bridge, as a hint for those here wanting to partake in the same leap-defying pratice, look up sudzc.com it was (for me at least) the most used third party class generator that allows you to consume and quickly use your webservice. It is easier than many of the other converters out there, but that being said I have not dealt with the oData client for Objective C and thus why I asked the question if anyone was using the client in .net, I don't, but was curious. Thanks, -Francisco http://bit.ly/sqlthis | Tsql and More... On Wed, May 2, 2012 at 9:17 AM, Gustav Brock wrote: > Hi Francisco > > You just confirmed why I decided to stay off iOS (and Android for that > matter); too little time for such stuff. > > I just went to a meeting today at Microsoft for an intro to Windows 8 > Metro apps running on the new WinRT and learned that you just as well can > get used to async communication for any serious task. The good news is that > it is extremely easy to set up with the new API - just a few lines of code. > > We didn't reach oData. I would be interested in following this, though > some have had some bad experiences: > > > http://www.techrepublic.com/blog/programming-and-development/my-first-windows-8-application/5273 > > but I guess it is just a question of using it "right". > > /gustav > > > >>> fhtapia at gmail.com 02-05-2012 17:24 >>> > Shamil, > Have you done any work on with oData? sounds like the Microsoft Irland's > answer to a webservice protocol... j/k everyone :) > > In my day to day I've moved away from developing exclusively on microsoft > products and into developing in SAP and now ObjectiveC (iPad apps). I had > just crossed a horrible bridge and learning curve to figure out calling > soap objects from iOS, a process where Apple can learn a thing or three > from MS and their IDE. In C# I can consume a wsdl and begin using it > almost right away after the wizard is complete. in ObjectiveC I need a > third party product that will help me consume the WSDL and then create > classes from it, so I can begin using it, the problem is everyone's class > generator is different and there are vastly different approaches including > a hand coded effort in pure xcode tools which while it's a good IDE, I > think I'm just too familiar with MS. > > anyhow, this post was supposed to be more about oData, as the latest papers > from SAP recommend using this protocol for interfacing between SAP and > Third party products (MS applications, iOS, Android etc etc etc) > > is anyone else here interested in this type of discussion or familiar with > it beyond the original post? > > > Hope to hear back from someone! :) > -Francisco > http://bit.ly/sqlthis | Tsql and More... > > > > > > On Thu, Apr 15, 2010 at 1:58 AM, Shamil Salakhetdinov < > shamil at smsconsulting.spb.ru> wrote: > > > > > Hi All, > > > > I have just recently got the following site URL - is it well known > > there/was > > mentioned already here?: > > > > Open Data Protocol FAQ > > http://www.odata.org/faq > > > > > > Thank you. > > > > -- > > Shamil > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From mcp2004 at mail.ru Wed May 2 13:01:15 2012 From: mcp2004 at mail.ru (=?UTF-8?B?U2FsYWtoZXRkaW5vdiBTaGFtaWw=?=) Date: Wed, 02 May 2012 22:01:15 +0400 Subject: [dba-VB] =?utf-8?q?FYI=3A_Microsoft_embracing_REST=2C_ATOM_and_JS?= =?utf-8?q?ON_by_Open_Data_Protocol_=28OData=29?= In-Reply-To: References: <003d01cadc79$cae613f0$6a01a8c0@nant> Message-ID: Hi Francisco - I have used SOAP Web Services for my customers apps since year 2008, and they all worked well but I have no experience with oData. Yes, I 'd be interested to participate in oData related discussion and I'd try to make some publicly available samples although I can't foresee how much time it will take to make such samples, e.g. publicly available test oData web service for our Northwind.NET sample database which I can publish on my test IIS/MS SQL hosting.... Thank you. -- Shamil Wed, 2 May 2012 08:24:49 -0700 ?? Francisco Tapia : > Shamil, > Have you done any work on with oData? sounds like the Microsoft Irland's > answer to a webservice protocol... j/k everyone :) > > In my day to day I've moved away from developing exclusively on microsoft > products and into developing in SAP and now ObjectiveC (iPad apps). I had > just crossed a horrible bridge and learning curve to figure out calling > soap objects from iOS, a process where Apple can learn a thing or three > from MS and their IDE. In C# I can consume a wsdl and begin using it > almost right away after the wizard is complete. in ObjectiveC I need a > third party product that will help me consume the WSDL and then create > classes from it, so I can begin using it, the problem is everyone's class > generator is different and there are vastly different approaches including > a hand coded effort in pure xcode tools which while it's a good IDE, I > think I'm just too familiar with MS. > > anyhow, this post was supposed to be more about oData, as the latest papers > from SAP recommend using this protocol for interfacing between SAP and > Third party products (MS applications, iOS, Android etc etc etc) > > is anyone else here interested in this type of discussion or familiar with > it beyond the original post? > > > Hope to hear back from someone! :) > -Francisco > http://bit.ly/sqlthis | Tsql and More... > > > > > > On Thu, Apr 15, 2010 at 1:58 AM, Shamil Salakhetdinov < > shamil at smsconsulting.spb.ru> wrote: > > > > > Hi All, > > > > I have just recently got the following site URL - is it well known > > there/was > > mentioned already here?: > > > > Open Data Protocol FAQ > > http://www.odata.org/faq > > > > > > Thank you. > > > > -- > > Shamil > > > > _______________________________________________ > > dba-VB mailing list > > dba-VB at databaseadvisors.com > > http://databaseadvisors.com/mailman/listinfo/dba-vb > > http://www.databaseadvisors.com > > > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From mcp2004 at mail.ru Wed May 2 17:03:41 2012 From: mcp2004 at mail.ru (=?UTF-8?B?U2FsYWtoZXRkaW5vdiBTaGFtaWw=?=) Date: Thu, 03 May 2012 02:03:41 +0400 Subject: [dba-VB] =?utf-8?q?FYI=3A_Microsoft_embracing_REST=2C_ATOM_and_JS?= =?utf-8?q?ON_by_Open_Data_Protocol_=28OData=29?= In-Reply-To: References: Message-ID: Hi Francisco and Gustav -- Here is a link, which seems to have good information how to make and how to communicate with oData (web) services: "Open Data Protocol by Example" by Chris Sells: http://msdn.microsoft.com/en-us/library/ff478141.aspx Thank you. -- Shamil Wed, 2 May 2012 09:24:22 -0700 ?? Francisco Tapia : > Gustav, > Well it's a learning curve for sure, if you're a C programmer, then I > think it's just trival, and something you can get past with not much > effort, the problem is that I am not a C programmer, I am a > developer/programmer/dba who can write webservices in C#, and write tsql > code. I am also versed in asp and javascript. So I can figure things out > well enough. > > ObjectiveC was the biggest learning curve and the biggest problem is that I > would work with it then abandon it because I didn't have any projects, and > all the demos and projects I did work on did not relate closely enough with > my work and thus caused me to still cross the deadly SOAP calls bridge, as > a hint for those here wanting to partake in the same leap-defying pratice, > look up sudzc.com it was (for me at least) the most used third party class > generator that allows you to consume and quickly use your webservice. It > is easier than many of the other converters out there, but that being said > I have not dealt with the oData client for Objective C and thus why I asked > the question if anyone was using the client in .net, I don't, but was > curious. > > Thanks, > -Francisco > http://bit.ly/sqlthis | Tsql and More... > > > > > > On Wed, May 2, 2012 at 9:17 AM, Gustav Brock wrote: > > > Hi Francisco > > > > You just confirmed why I decided to stay off iOS (and Android for that > > matter); too little time for such stuff. > > > > I just went to a meeting today at Microsoft for an intro to Windows 8 > > Metro apps running on the new WinRT and learned that you just as well can > > get used to async communication for any serious task. The good news is that > > it is extremely easy to set up with the new API - just a few lines of code. > > > > We didn't reach oData. I would be interested in following this, though > > some have had some bad experiences: > > > > > > http://www.techrepublic.com/blog/programming-and-development/my-first-windows-8-application/5273 > > > > but I guess it is just a question of using it "right". > > > > /gustav > > > > > > >>> fhtapia at gmail.com 02-05-2012 17:24 >>> > > Shamil, > > Have you done any work on with oData? sounds like the Microsoft Irland's > > answer to a webservice protocol... j/k everyone :) > > > > In my day to day I've moved away from developing exclusively on microsoft > > products and into developing in SAP and now ObjectiveC (iPad apps). I had > > just crossed a horrible bridge and learning curve to figure out calling > > soap objects from iOS, a process where Apple can learn a thing or three > > from MS and their IDE. In C# I can consume a wsdl and begin using it > > almost right away after the wizard is complete. in ObjectiveC I need a > > third party product that will help me consume the WSDL and then create > > classes from it, so I can begin using it, the problem is everyone's class > > generator is different and there are vastly different approaches including > > a hand coded effort in pure xcode tools which while it's a good IDE, I > > think I'm just too familiar with MS. > > > > anyhow, this post was supposed to be more about oData, as the latest papers > > from SAP recommend using this protocol for interfacing between SAP and > > Third party products (MS applications, iOS, Android etc etc etc) > > > > is anyone else here interested in this type of discussion or familiar with > > it beyond the original post? > > > > > > Hope to hear back from someone! :) > > -Francisco > > http://bit.ly/sqlthis | Tsql and More... > > > > > > > > > > > > On Thu, Apr 15, 2010 at 1:58 AM, Shamil Salakhetdinov < > > shamil at smsconsulting.spb.ru> wrote: > > > > > > > > Hi All, > > > > > > I have just recently got the following site URL - is it well known > > > there/was > > > mentioned already here?: > > > > > > Open Data Protocol FAQ > > > http://www.odata.org/faq > > > > > > > > > Thank you. > > > > > > -- > > > Shamil > > > > > > _______________________________________________ > > dba-VB mailing list > > dba-VB at databaseadvisors.com > > http://databaseadvisors.com/mailman/listinfo/dba-vb > > http://www.databaseadvisors.com > > > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From Gustav at cactus.dk Thu May 3 01:31:02 2012 From: Gustav at cactus.dk (Gustav Brock) Date: Thu, 03 May 2012 08:31:02 +0200 Subject: [dba-VB] FYI: Microsoft embracing REST, ATOM and JSON by Open Data Protocol (OData) Message-ID: Hi Shamil Thanks! That looks like a good article - and using Northwind as example data, I noticed. I will have a closer look in the weekend. /gustav >>> Salakhetdinov Shamil 03-05-2012 00:03 >>> Hi Francisco and Gustav -- Here is a link, which seems to have good information how to make and how to communicate with oData (web) services: "Open Data Protocol by Example" by Chris Sells: http://msdn.microsoft.com/en-us/library/ff478141.aspx Thank you. -- Shamil From hans.andersen at phulse.com Thu May 3 02:07:44 2012 From: hans.andersen at phulse.com (Hans-Christian Andersen) Date: Thu, 3 May 2012 00:07:44 -0700 Subject: [dba-VB] FYI: Microsoft embracing REST, ATOM and JSON by Open Data Protocol (OData) In-Reply-To: References: Message-ID: Just the mere fact that you need to use SOAP makes me feel sorry for you, regardless of IDE/language/platform etc. I've tried many of them and it is never a pleasant experience. Best regards, Hans-Christian Andersen On 2 May 2012, at 09:24, Francisco Tapia wrote: > Gustav, > Well it's a learning curve for sure, if you're a C programmer, then I > think it's just trival, and something you can get past with not much > effort, the problem is that I am not a C programmer, I am a > developer/programmer/dba who can write webservices in C#, and write tsql > code. I am also versed in asp and javascript. So I can figure things out > well enough. > > ObjectiveC was the biggest learning curve and the biggest problem is that I > would work with it then abandon it because I didn't have any projects, and > all the demos and projects I did work on did not relate closely enough with > my work and thus caused me to still cross the deadly SOAP calls bridge, as > a hint for those here wanting to partake in the same leap-defying pratice, > look up sudzc.com it was (for me at least) the most used third party class > generator that allows you to consume and quickly use your webservice. It > is easier than many of the other converters out there, but that being said > I have not dealt with the oData client for Objective C and thus why I asked > the question if anyone was using the client in .net, I don't, but was > curious. > > Thanks, > -Francisco > http://bit.ly/sqlthis | Tsql and More... > > > > > > On Wed, May 2, 2012 at 9:17 AM, Gustav Brock wrote: > >> Hi Francisco >> >> You just confirmed why I decided to stay off iOS (and Android for that >> matter); too little time for such stuff. >> >> I just went to a meeting today at Microsoft for an intro to Windows 8 >> Metro apps running on the new WinRT and learned that you just as well can >> get used to async communication for any serious task. The good news is that >> it is extremely easy to set up with the new API - just a few lines of code. >> >> We didn't reach oData. I would be interested in following this, though >> some have had some bad experiences: >> >> >> http://www.techrepublic.com/blog/programming-and-development/my-first-windows-8-application/5273 >> >> but I guess it is just a question of using it "right". >> >> /gustav >> >> >>>>> fhtapia at gmail.com 02-05-2012 17:24 >>> >> Shamil, >> Have you done any work on with oData? sounds like the Microsoft Irland's >> answer to a webservice protocol... j/k everyone :) >> >> In my day to day I've moved away from developing exclusively on microsoft >> products and into developing in SAP and now ObjectiveC (iPad apps). I had >> just crossed a horrible bridge and learning curve to figure out calling >> soap objects from iOS, a process where Apple can learn a thing or three >> from MS and their IDE. In C# I can consume a wsdl and begin using it >> almost right away after the wizard is complete. in ObjectiveC I need a >> third party product that will help me consume the WSDL and then create >> classes from it, so I can begin using it, the problem is everyone's class >> generator is different and there are vastly different approaches including >> a hand coded effort in pure xcode tools which while it's a good IDE, I >> think I'm just too familiar with MS. >> >> anyhow, this post was supposed to be more about oData, as the latest papers >> from SAP recommend using this protocol for interfacing between SAP and >> Third party products (MS applications, iOS, Android etc etc etc) >> >> is anyone else here interested in this type of discussion or familiar with >> it beyond the original post? >> >> >> Hope to hear back from someone! :) >> -Francisco >> http://bit.ly/sqlthis | Tsql and More... >> >> >> >> >> >> On Thu, Apr 15, 2010 at 1:58 AM, Shamil Salakhetdinov < >> shamil at smsconsulting.spb.ru> wrote: >> >>> >>> Hi All, >>> >>> I have just recently got the following site URL - is it well known >>> there/was >>> mentioned already here?: >>> >>> Open Data Protocol FAQ >>> http://www.odata.org/faq >>> >>> >>> Thank you. >>> >>> -- >>> Shamil >> >> >> _______________________________________________ >> dba-VB mailing list >> dba-VB at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/dba-vb >> http://www.databaseadvisors.com >> >> > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > From mcp2004 at mail.ru Thu May 3 06:46:13 2012 From: mcp2004 at mail.ru (=?UTF-8?B?U2FsYWtoZXRkaW5vdiBTaGFtaWw=?=) Date: Thu, 03 May 2012 15:46:13 +0400 Subject: [dba-VB] =?utf-8?q?FYI=3A_Microsoft_embracing_REST=2C_ATOM_and_JS?= =?utf-8?q?ON_by_Open_Data_Protocol_=28OData=29?= In-Reply-To: References: Message-ID: Hi Hans -- Using SOAP Web Services from .NET clients (2.0, 3.5, 4.0) works very smoothly - no issues at all here and for my customers for the last four years, and the customers host SOAP .NET WebServices all over the world. Yes, SOAP is a bit heavy protocol but it works very well for me. Hint: when creating/using SOAP web services you can define just one generic operation e.g.. string Run(...) with one parameter string xmlArgs and pass/return that generic operation parameters/attributes/results as XML/JSON/... text string, which can be parsed/serialized/deserialized on client and web service side by whatever serialization/deserialization method is more suitable for you - this way you'll have to make SOAP web service communication coding just one time. Not very elegant approach but it should work well for many real life apps. I do not use this approach as .NET SOAP Web Service proxy generation works very well but for ObjectiveC it would be useful? Anyway I do plan to switch to WCF/oData as being more open/easy to access by non MS/.NET client apps.... Thank you. -- Shamil Thu, 3 May 2012 00:07:44 -0700 ?? Hans-Christian Andersen : > Just the mere fact that you need to use SOAP makes me feel sorry for you, regardless of IDE/language/platform etc. I've tried many of them and it is never a pleasant experience. > > Best regards, > Hans-Christian Andersen > > > On 2 May 2012, at 09:24, Francisco Tapia wrote: > > > Gustav, > > Well it's a learning curve for sure, if you're a C programmer, then I > > think it's just trival, and something you can get past with not much > > effort, the problem is that I am not a C programmer, I am a > > developer/programmer/dba who can write webservices in C#, and write tsql > > code. I am also versed in asp and javascript. So I can figure things out > > well enough. > > > > ObjectiveC was the biggest learning curve and the biggest problem is that I > > would work with it then abandon it because I didn't have any projects, and > > all the demos and projects I did work on did not relate closely enough with > > my work and thus caused me to still cross the deadly SOAP calls bridge, as > > a hint for those here wanting to partake in the same leap-defying pratice, > > look up sudzc.com it was (for me at least) the most used third party class > > generator that allows you to consume and quickly use your webservice. It > > is easier than many of the other converters out there, but that being said > > I have not dealt with the oData client for Objective C and thus why I asked > > the question if anyone was using the client in .net, I don't, but was > > curious. > > > > Thanks, > > -Francisco > > http://bit.ly/sqlthis | Tsql and More... > > > > > > > > > > > > On Wed, May 2, 2012 at 9:17 AM, Gustav Brock wrote: > > > >> Hi Francisco > >> > >> You just confirmed why I decided to stay off iOS (and Android for that > >> matter); too little time for such stuff. > >> > >> I just went to a meeting today at Microsoft for an intro to Windows 8 > >> Metro apps running on the new WinRT and learned that you just as well can > >> get used to async communication for any serious task. The good news is that > >> it is extremely easy to set up with the new API - just a few lines of code. > >> > >> We didn't reach oData. I would be interested in following this, though > >> some have had some bad experiences: > >> > >> > >> http://www.techrepublic.com/blog/programming-and-development/my-first-windows-8-application/5273 > >> > >> but I guess it is just a question of using it "right". > >> > >> /gustav > >> <<< snip >>> From mcp2004 at mail.ru Thu May 3 07:03:36 2012 From: mcp2004 at mail.ru (=?UTF-8?B?U2FsYWtoZXRkaW5vdiBTaGFtaWw=?=) Date: Thu, 03 May 2012 16:03:36 +0400 Subject: [dba-VB] =?utf-8?q?FYI=3A_Microsoft_embracing_REST=2C_ATOM_and_JS?= =?utf-8?q?ON_by=09Open_Data_Protocol_=28OData=29?= In-Reply-To: References: Message-ID: Hi Gustav -- My pleasure! I have got a couple of other useful links http://www.codeproject.com/Articles/90365/An-overview-of-Open-Data-Protocol-OData http://www.codeproject.com/Articles/135490/Advanced-using-OData-in-NET-WCF-Data-Services Tried to use the second one (after changing all wed.config files to point to my sample MS SQL database) locally but it didn't work for me resulting in: "Resource not found for segment 'Employees'" error message when querying oData web service via sample .NET console app project provided within the second link test solution. Googling didn't give an immediate clue how to fix the issue. So I will have to go step by step trying to make the above or my own oData samples working, somewhere later this week, next week... Thank you. -- Shamil Thu, 03 May 2012 08:31:02 +0200 ?? "Gustav Brock" : > Hi Shamil > > Thanks! That looks like a good article - and using Northwind as example data, I noticed. > I will have a closer look in the weekend. > > /gustav > > > >>> Salakhetdinov Shamil 03-05-2012 00:03 >>> > Hi Francisco and Gustav -- > > Here is a link, which seems to have good information how to make and how to communicate with oData (web) services: > > "Open Data Protocol by Example" by Chris Sells: > http://msdn.microsoft.com/en-us/library/ff478141.aspx > > Thank you. > > -- Shamil > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From mcp2004 at mail.ru Thu May 3 08:10:02 2012 From: mcp2004 at mail.ru (=?UTF-8?B?U2FsYWtoZXRkaW5vdiBTaGFtaWw=?=) Date: Thu, 03 May 2012 17:10:02 +0400 Subject: [dba-VB] =?utf-8?q?FYI=3A_Microsoft_embracing_REST=2C_ATOM_and_JS?= =?utf-8?q?ON_by=09Open_Data_Protocol_=28OData=29?= In-Reply-To: References: Message-ID: Hi Gustav at all -- Just wanted to finish my first try of oData web services consumption on positive note and applied KISS-principle by writing a tiny oData client app - and I have got some progress here in consuming sample oData (?) service from Chris Sells article: http://services.odata.org/Northwind/Northwind.svc You can do the same - just: 1. Create VS2010 console application project - ConsoleApplication1 2. Add Service Reference to http://services.odata.org/Northwind/Northwind.svc and call it TestService 3. Copy & paste, compile, build, and run code from P.S. of this message - and you'll get the following test output: 5. Buchanan Steven - Sales Manager 1. Davolio Nancy - Sales Representative 9. Dodsworth Anne - Sales Representative 7. King Robert - Sales Representative 3. Leverling Janet - Sales Representative 4. Peacock Margaret - Sales Representative 6. Suyama Michael - Sales Representative Easy? Yes, it's. .NET 'magic' makes all the dirty work for you to parse web query ATOM result of http://services.odata.org/Northwind/Northwind.svc/Employees (try it in a web browser) into the above test output. Question to Francisco: does ObjectiveC have similar high level ATOM feeds consuming libraries and tools to generate strongly typed client APIs? (I should have I guess...) Thank you. -- Shamil P.S. using System; using System.Linq; using System.Data.Services.Client; namespace ConsoleApplication1 { public class DataModelProxy : DataServiceContext { public DataModelProxy(Uri serviceRoot) : base(serviceRoot) {} public IQueryable EmployeesList { get { return CreateQuery("Employees"); } } public IQueryable StronglyTypedEmployeesList { get { return CreateQuery("Employees"); } } } class Program { static void Main(string[] args) { var proxy = new DataModelProxy(new Uri(@"http://services.odata.org/Northwind/Northwind.svc/")); //var employees = from e in proxy.EmployeesList select e; var employees = from e in proxy.StronglyTypedEmployeesList where e.Title.StartsWith("Sales") orderby e.LastName select e; foreach (var e in employees) { Console.WriteLine("{0}. {1} {2} - {3}", e.EmployeeID, e.LastName, e.FirstName, e.Title); } } } } Thu, 03 May 2012 08:31:02 +0200 ?? "Gustav Brock" : > Hi Shamil > > Thanks! That looks like a good article - and using Northwind as example data, I noticed. > I will have a closer look in the weekend. > > /gustav > > > >>> Salakhetdinov Shamil 03-05-2012 00:03 >>> > Hi Francisco and Gustav -- > > Here is a link, which seems to have good information how to make and how to communicate with oData (web) services: > > "Open Data Protocol by Example" by Chris Sells: > http://msdn.microsoft.com/en-us/library/ff478141.aspx > > Thank you. > > -- Shamil > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From fhtapia at gmail.com Thu May 3 12:59:43 2012 From: fhtapia at gmail.com (Francisco Tapia) Date: Thu, 3 May 2012 10:59:43 -0700 Subject: [dba-VB] FYI: Microsoft embracing REST, ATOM and JSON by Open Data Protocol (OData) In-Reply-To: References: Message-ID: First, Thanks for the quick demo, I'm not moving along in ObjC this quick (yet) but I am working off of the userguide here, which is the opensource client from MS... it moved from their codeplex and is now hosted on github, but nonethe less the guide looks straightforward, I'll have time on saturday/sunday to put my demo together, again thanks for supplying a sample service :) http://odata.github.com/OData4ObjC/OData%20SDK%20for%20Objective-C%20User%20Guide.htm -Francisco http://bit.ly/sqlthis | Tsql and More... On Thu, May 3, 2012 at 6:10 AM, Salakhetdinov Shamil wrote: > Hi Gustav at all -- > > Just wanted to finish my first try of oData web services consumption on > positive note and applied KISS-principle by writing a tiny oData client app > - and I have got some progress here in consuming sample oData (?) service > from Chris Sells article: > > http://services.odata.org/Northwind/Northwind.svc > > You can do the same - just: > > 1. Create VS2010 console application project - ConsoleApplication1 > 2. Add Service Reference to > http://services.odata.org/Northwind/Northwind.svc and call it TestService > 3. Copy & paste, compile, build, and run code from P.S. of this message - > and you'll get the following test output: > > 5. Buchanan Steven - Sales Manager > 1. Davolio Nancy - Sales Representative > 9. Dodsworth Anne - Sales Representative > 7. King Robert - Sales Representative > 3. Leverling Janet - Sales Representative > 4. Peacock Margaret - Sales Representative > 6. Suyama Michael - Sales Representative > > Easy? Yes, it's. > > .NET 'magic' makes all the dirty work for you to parse web query ATOM > result of > > http://services.odata.org/Northwind/Northwind.svc/Employees > (try it in a web browser) > > into the above test output. > > Question to Francisco: does ObjectiveC have similar high level ATOM feeds > consuming libraries and tools to generate strongly typed client APIs? (I > should have I guess...) > > Thank you. > > -- Shamil > > P.S. > > using System; > using System.Linq; > using System.Data.Services.Client; > > namespace ConsoleApplication1 > { > public class DataModelProxy : DataServiceContext > { > public DataModelProxy(Uri serviceRoot) : base(serviceRoot) {} > > public IQueryable EmployeesList > { > get { return CreateQuery("Employees"); } > } > > public IQueryable > StronglyTypedEmployeesList > { > get { return > CreateQuery("Employees"); } > } > } > > class Program > { > static void Main(string[] args) > { > var proxy = new DataModelProxy(new Uri(@" > http://services.odata.org/Northwind/Northwind.svc/")); > > //var employees = from e in proxy.EmployeesList select e; > var employees = from e in proxy.StronglyTypedEmployeesList > where e.Title.StartsWith("Sales") orderby e.LastName select e; > > foreach (var e in employees) > { > Console.WriteLine("{0}. {1} {2} - {3}", e.EmployeeID, > e.LastName, e.FirstName, e.Title); > } > } > } > } > > > > Thu, 03 May 2012 08:31:02 +0200 ?? "Gustav Brock" : > > Hi Shamil > > > > Thanks! That looks like a good article - and using Northwind as example > data, I noticed. > > I will have a closer look in the weekend. > > > > /gustav > > > > > > >>> Salakhetdinov Shamil 03-05-2012 00:03 >>> > > Hi Francisco and Gustav -- > > > > Here is a link, which seems to have good information how to make and how > to communicate with oData (web) services: > > > > "Open Data Protocol by Example" by Chris Sells: > > http://msdn.microsoft.com/en-us/library/ff478141.aspx > > > > Thank you. > > > > -- Shamil > > > > > > _______________________________________________ > > dba-VB mailing list > > dba-VB at databaseadvisors.com > > http://databaseadvisors.com/mailman/listinfo/dba-vb > > http://www.databaseadvisors.com > > > > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From mcp2004 at mail.ru Thu May 3 13:20:57 2012 From: mcp2004 at mail.ru (=?UTF-8?B?U2FsYWtoZXRkaW5vdiBTaGFtaWw=?=) Date: Thu, 03 May 2012 22:20:57 +0400 Subject: [dba-VB] =?utf-8?q?FYI=3A_Microsoft_embracing_REST=2C_ATOM_and_JS?= =?utf-8?q?ON_by_Open_Data_Protocol_=28OData=29?= In-Reply-To: References: Message-ID: Hi Francisco, Thank you for your reply. I'm following (since yesterday) one of ObjectiveC-related project on CodePlex -?http://odataobjc.codeplex.com/,?which was moved to?https://github.com/OData/OData4ObjC Is it different from yours? >?I'll have time on saturday/sunday to put my demo together I'll wait for it... >?again thanks for supplying a sample service :) Don't mention it, ?that's Chris Sells to thank :) Thank you. -- Shamil Thu, 3 May 2012 10:59:43 -0700 ?? Francisco Tapia : First, ? Thanks for the quick demo, I'm not moving along in ObjC this quick (yet) but I am working off of the userguide here, which is the opensource client from MS... it moved from their codeplex and is now hosted on github, but nonethe less the guide looks straightforward, I'll have time on saturday/sunday to put my demo together, again thanks for supplying a sample service :) http://odata.github.com/OData4ObjC/OData%20SDK%20for%20Objective-C%20User%20Guide.htm -Francisco http://bit.ly/sqlthis?? | Tsql and More... On Thu, May 3, 2012 at 6:10 AM, Salakhetdinov Shamil wrote: Hi Gustav at all -- Just wanted to finish my first try of oData web services consumption on positive note and applied KISS-principle by writing a tiny oData client app - and I have got some progress here in consuming sample oData (?) service from Chris Sells article: http://services.odata.org/Northwind/Northwind.svc You can do the same - just: 1. Create VS2010 console application project - ConsoleApplication1 2. Add Service Reference to http://services.odata.org/Northwind/Northwind.svc and call it TestService 3. Copy & paste, compile, build, and run code from P.S. of this message - and you'll get the following test output: 5. Buchanan Steven - Sales Manager 1. Davolio Nancy - Sales Representative 9. Dodsworth Anne - Sales Representative 7. King Robert - Sales Representative 3. Leverling Janet - Sales Representative 4. Peacock Margaret - Sales Representative 6. Suyama Michael - Sales Representative Easy? Yes, it's. .NET 'magic' makes all the dirty work for you to parse web query ATOM result of http://services.odata.org/Northwind/Northwind.svc/Employees (try it in a web browser) into the above test output. Question to Francisco: does ObjectiveC have similar high level ATOM feeds consuming libraries and tools to generate strongly typed client APIs? (I should have I guess...) Thank you. -- Shamil P.S. using System; using System.Linq; using System.Data.Services.Client; namespace ConsoleApplication1 { ? ?public class DataModelProxy : DataServiceContext ? ?{ ? ? ? ?public DataModelProxy(Uri serviceRoot) : base(serviceRoot) {} ? ? ? ?public IQueryable EmployeesList ? ? ? ?{ ? ? ? ? ? ?get { return CreateQuery("Employees"); } ? ? ? ?} ? ? ? ?public IQueryable StronglyTypedEmployeesList ? ? ? ?{ ? ? ? ? ? ?get { return CreateQuery("Employees"); } ? ? ? ?} ? ?} ? ?class Program ? ?{ ? ? ? ?static void Main(string[] args) ? ? ? ?{ ? ? ? ? ? ?var proxy = new DataModelProxy(new Uri(@"http://services.odata.org/Northwind/Northwind.svc/")); ? ? ? ? ? ?//var employees = from e in proxy.EmployeesList select e; ? ? ? ? ? ?var employees = from e in proxy.StronglyTypedEmployeesList where e.Title.StartsWith("Sales") orderby e.LastName select e; ? ? ? ? ? ?foreach (var e in employees) ? ? ? ? ? ?{ ? ? ? ? ? ? ? ?Console.WriteLine("{0}. {1} {2} - {3}", e.EmployeeID, e.LastName, e.FirstName, e.Title); ? ? ? ? ? ?} ? ? ? ?} ? ?} } Thu, 03 May 2012 08:31:02 +0200 ?? "Gustav Brock" : > Hi Shamil > > Thanks! That looks like a good article - and using Northwind as example data, I noticed. > I will have a closer look in the weekend. > > /gustav > > > >>> Salakhetdinov Shamil 03-05-2012 00:03 >>> > Hi Francisco and Gustav -- > > Here is a link, which seems to have good information how to make and how to communicate with oData (web) services: > > "Open Data Protocol by Example" by Chris Sells: > http://msdn.microsoft.com/en-us/library/ff478141.aspx > > Thank you. > > -- Shamil > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com From mcp2004 at mail.ru Thu May 3 13:51:25 2012 From: mcp2004 at mail.ru (=?UTF-8?B?U2FsYWtoZXRkaW5vdiBTaGFtaWw=?=) Date: Thu, 03 May 2012 22:51:25 +0400 Subject: [dba-VB] =?utf-8?q?FYI=3A_Microsoft_embracing_REST=2C_ATOM_and_JS?= =?utf-8?q?ON_by=09Open_Data_Protocol_=28OData=29?= In-Reply-To: References: Message-ID: Hi All -- BTW, here is a fully dynamic (/"extra" late bound) sample oData web service client call - for the ones who likes such a level of risk/dynamism :) using System; using System.Linq; using System.Data.Services.Client; namespace ConsoleApplication1 { public class DataModelProxy : DataServiceContext { public DataModelProxy(Uri serviceRoot) : base(serviceRoot) {} public IQueryable EmployeesList { get { return CreateQuery("Employees"); } } //public IQueryable StronglyTypedEmployeesList //{ // get { return CreateQuery("Employees"); } //} } class Program { static void Main(string[] args) { var proxy = new DataModelProxy(new Uri(@"http://services.odata.org/Northwind/Northwind.svc/")); //var employees = from e in proxy.StronglyTypedEmployeesList where e.Title.StartsWith("Sales") orderby e.LastName select e; var employees = from e in ((proxy.EmployeesList).ToList()) where e.Title.StartsWith("Sales") orderby e.LastName select e; foreach (var e in employees) { Console.WriteLine("{0}. {1} {2} - {3}", e.EmployeeID, e.LastName, e.FirstName, e.Title); } } } } Thank you -- Shamil Thu, 03 May 2012 17:10:02 +0400 ?? Salakhetdinov Shamil : > Hi Gustav at all -- > > Just wanted to finish my first try of oData web services consumption on positive note and applied KISS-principle by writing a tiny oData client app - and I have got some progress here in consuming sample oData (?) service from Chris Sells article: > > http://services.odata.org/Northwind/Northwind.svc > > You can do the same - just: > > 1. Create VS2010 console application project - ConsoleApplication1 > 2. Add Service Reference to http://services.odata.org/Northwind/Northwind.svc and call it TestService > 3. Copy & paste, compile, build, and run code from P.S. of this message - and you'll get the following test output: > > 5. Buchanan Steven - Sales Manager > 1. Davolio Nancy - Sales Representative > 9. Dodsworth Anne - Sales Representative > 7. King Robert - Sales Representative > 3. Leverling Janet - Sales Representative > 4. Peacock Margaret - Sales Representative > 6. Suyama Michael - Sales Representative > > Easy? Yes, it's. > > .NET 'magic' makes all the dirty work for you to parse web query ATOM result of > > http://services.odata.org/Northwind/Northwind.svc/Employees > (try it in a web browser) > > into the above test output. > > Question to Francisco: does ObjectiveC have similar high level ATOM feeds consuming libraries and tools to generate strongly typed client APIs? (I should have I guess...) > > Thank you. > > -- Shamil > > P.S. > > using System; > using System.Linq; > using System.Data.Services.Client; > > namespace ConsoleApplication1 > { > public class DataModelProxy : DataServiceContext > { > public DataModelProxy(Uri serviceRoot) : base(serviceRoot) {} > > public IQueryable EmployeesList > { > get { return CreateQuery("Employees"); } > } > > public IQueryable StronglyTypedEmployeesList > { > get { return CreateQuery("Employees"); } > } > } > > class Program > { > static void Main(string[] args) > { > var proxy = new DataModelProxy(new Uri(@"http://services.odata.org/Northwind/Northwind.svc/")); > > //var employees = from e in proxy.EmployeesList select e; > var employees = from e in proxy.StronglyTypedEmployeesList where e.Title.StartsWith("Sales") orderby e.LastName select e; > > foreach (var e in employees) > { > Console.WriteLine("{0}. {1} {2} - {3}", e.EmployeeID, e.LastName, e.FirstName, e.Title); > } > } > } > } > > > <<< skip >>> From mcp2004 at mail.ru Fri May 4 04:18:29 2012 From: mcp2004 at mail.ru (=?UTF-8?B?U2FsYWtoZXRkaW5vdiBTaGFtaWw=?=) Date: Fri, 04 May 2012 13:18:29 +0400 Subject: [dba-VB] =?utf-8?q?FYI=3A_Microsoft_embracing_REST=2C_ATOM_and_JS?= =?utf-8?q?ON_by=09Open_Data_Protocol_=28OData=29?= In-Reply-To: References: Message-ID: Hi All -- Even more dynamic oData web service test call: using System; using System.Linq; using System.Data.Services.Client; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { var proxy = (new DataServiceContext(new Uri(@"http://services.odata.org/Northwind/Northwind.svc/")).CreateQuery("Employees")); var employees = from e in (proxy.ToList()) where e.Title.StartsWith("Sales") orderby e.LastName select e; employees.ToList().ForEach(e => Console.WriteLine("{0}. {1} {2} - {3}", e.EmployeeID, e.LastName, e.FirstName, e.Title)); } } } Just musing around mainstream tendency outlined here: http://www.hanselman.com/blog/BackToBasicsMovingBeyondForIfAndSwitch.aspx Thank you. -- Shamil Thu, 03 May 2012 22:51:25 +0400 ?? Salakhetdinov Shamil : > Hi All -- > > BTW, here is a fully dynamic (/"extra" late bound) sample oData web service client call - for the ones who likes such a level of risk/dynamism :) > > using System; > using System.Linq; > using System.Data.Services.Client; > > namespace ConsoleApplication1 > { > public class DataModelProxy : DataServiceContext > { > public DataModelProxy(Uri serviceRoot) : base(serviceRoot) {} > > public IQueryable EmployeesList > { > get { return CreateQuery("Employees"); } > } > > //public IQueryable StronglyTypedEmployeesList > //{ > // get { return CreateQuery("Employees"); } > //} > } > > class Program > { > static void Main(string[] args) > { > var proxy = new DataModelProxy(new Uri(@"http://services.odata.org/Northwind/Northwind.svc/")); > > //var employees = from e in proxy.StronglyTypedEmployeesList where e.Title.StartsWith("Sales") orderby e.LastName select e; > > var employees = from e in ((proxy.EmployeesList).ToList()) > where e.Title.StartsWith("Sales") > orderby e.LastName > select e; > > foreach (var e in employees) > { > Console.WriteLine("{0}. {1} {2} - {3}", e.EmployeeID, e.LastName, e.FirstName, e.Title); > } > } > } > } > > Thank you > > -- Shamil > <<< snip >>> From jwcolby at colbyconsulting.com Sat May 5 07:49:54 2012 From: jwcolby at colbyconsulting.com (jwcolby) Date: Sat, 05 May 2012 08:49:54 -0400 Subject: [dba-VB] Holding a SQL Server connection open Message-ID: <4FA521F2.4090205@colbyconsulting.com> My Address Validation program caches records in sql server into class instances, then updates properties on those records (in those classes) and in many cases writes the changes back to SQL Server immediately. What this means is that a specific field of the record is updated in the class and in SQL Server as some processing step is completed. I am having a connectivity issue in my network where every once in a while the flag write will not manage to open the connection to SQL Server before timing out. From a system design perspective I need guidance on what I am doing. ATM the flag actually opens a connection, writes the data to the field of the specific record then closes the connection. While that certainly works, it is causing (or finding) problems with the occasional "can't connect", plus it seems logical that it is slower than just having a shared connection that is kept open. I have been coached to keep connections open for the minimum time necessary, but I am wondering whether it would be appropriate in this case to get a connection, hold it open as long as the program is open, then share that connection. -- John W. Colby Colby Consulting Reality is what refuses to go away when you do not believe in it From jwcolby at colbyconsulting.com Sat May 5 08:22:10 2012 From: jwcolby at colbyconsulting.com (jwcolby) Date: Sat, 05 May 2012 09:22:10 -0400 Subject: [dba-VB] C# using everything in the world Message-ID: <4FA52982.3060102@colbyconsulting.com> When I build a class, C# throws in using qlink, using text etc. I have discovered that these aren't normally required. Does it slow down the build or execution of the program to have all this extraneous junk in every class I build? -- John W. Colby Colby Consulting Reality is what refuses to go away when you do not believe in it From Gustav at cactus.dk Sat May 5 09:09:08 2012 From: Gustav at cactus.dk (Gustav Brock) Date: Sat, 05 May 2012 16:09:08 +0200 Subject: [dba-VB] C# using everything in the world Message-ID: Hi John I don't think so, but you can right-click and pick refactor (or something) and clean up unused "using"s. /gustav >>> jwcolby at colbyconsulting.com 05-05-2012 15:22 >>> When I build a class, C# throws in using qlink, using text etc. I have discovered that these aren't normally required. Does it slow down the build or execution of the program to have all this extraneous junk in every class I build? -- John W. Colby Colby Consulting From fuller.artful at gmail.com Sat May 5 10:22:07 2012 From: fuller.artful at gmail.com (Arthur Fuller) Date: Sat, 5 May 2012 11:22:07 -0400 Subject: [dba-VB] C# using everything in the world In-Reply-To: References: Message-ID: I think that Gustav is correct. They are statements that advise the compiler where to look for various procedures and functions. Let's say that in an Access app you reference both DAO and ADO, but then within your code you use only DAO and place it above ADO in the references list. Doesn't cost you a nickel in performance, though perhaps a tad at compile time. Footnote to the above: Canada just manufactured its last penny; otherwise I might have written "Doesn't cost you a cent." This may be a job-creation program, and not least among the publishers of books on marketing. One of the oldest rules in that game was "$4.99" reads like 4, and people also have a habit of overlooking what the taxes are going to do to that number. A. On Sat, May 5, 2012 at 10:09 AM, Gustav Brock wrote: > Hi John > > I don't think so, but you can right-click and pick refactor (or something) > and clean up unused "using"s. > > /gustav > > From jwcolby at colbyconsulting.com Tue May 15 09:28:48 2012 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 15 May 2012 10:28:48 -0400 Subject: [dba-VB] System.Timers.Timer() Message-ID: <4FB26820.4040907@colbyconsulting.com> Is anyone using timers to periodically run processes? I am (was hopefully?) having problems with apparent deadlocks and I found this on the MS site: http://msdn.microsoft.com/en-us/library/system.timers.timer.stop.aspx which discusses deadlocks and provides a solution. I took the code and wrapped it in clsTimer making it fully instantiable so that I could use it in many places. The problem of course is that the code running in the timer's thread still has to cleanly return but with luck at least this (deadlock) part is handled. I am sharing my class so that anyone else doing this stuff can look it over, comment and hopefully find any bugs I might have created in implementation. Here is my version of the indicated code. Comments welcome. using System; using System.Timers; using System.Threading; using System.Windows.Forms; namespace projAccuzip2 { class clsTimer : IDisposable { #region Header // Timer. private bool timerBusy = false; private System.Timers.Timer cTimer = new System.Timers.Timer(); // This is the synchronization point that prevents events // from running concurrently, and prevents the main thread // from executing code after the Stop method until any // event handlers are done executing. private int syncPoint = 0; // Count the number of times the event handler is called, // is executed, is skipped, or is called after Stop. private int numEvents = 0; private int numExecuted = 0; private int numSkipped = 0; private int numLate = 0; // Count the number of times the thread that calls Stop // has to wait for an Elapsed event to finish. private int numWaits = 0; public clsTimer() { cTimer.Elapsed += new System.Timers.ElapsedEventHandler(cTimer_Elapsed); } public clsTimer(int TimerInterval) { cTimer.Interval = TimerInterval; cTimer.Elapsed += new System.Timers.ElapsedEventHandler(cTimer_Elapsed); } #endregion #region Properties public int pNumEvents { get { return numEvents; } } public int pNumExecuted { get { return numExecuted; } } public int pNumSkipped { get { return numSkipped; } } public int pNumLate { get { return numLate; } } public bool pTimerBusy { get { return timerBusy; } } public int pTimerInterval { set { cTimer.Interval = value; } } #endregion #region Events public delegate void delTimer(); public event delTimer evTimer; private void cTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e) { numEvents += 1; // This example assumes that overlapping events can be // discarded. That is, if an Elapsed event is raised before // the previous event is finished processing, the second // event is ignored. // // CompareExchange is used to take control of syncPoint, // and to determine whether the attempt was successful. // CompareExchange attempts to put 1 into syncPoint, but // only if the current value of syncPoint is zero // (specified by the third parameter). If another thread // has set syncPoint to 1, or if the control thread has // set syncPoint to -1, the current event is skipped. // (Normally it would not be necessary to use a local // variable for the return value. A local variable is // used here to determine the reason the event was // skipped.) // int sync = Interlocked.CompareExchange(ref syncPoint, 1, 0); if (sync == 0) { timerBusy = true; // numExecuted += 1; // No other event was executing. // The event handler now raises an event out in code evTimer(); // Release control of syncPoint. syncPoint = 0; timerBusy = false; } else { if (sync == 1) { numSkipped += 1; } else { numLate += 1; } } } #endregion #region Methods public void mTimerStart() { syncPoint = 0; cTimer.Enabled = true; } public void mTimerStop() { // Allow the timer to run for a period of time, and then // stop it. cTimer.Stop(); // The 'counted' flag ensures that if this thread has // to wait for an event to finish, the wait only gets // counted once. bool counted = false; // Ensure that if an event is currently executing, // no further processing is done on this thread until // the event handler is finished. This is accomplished // by using CompareExchange to place -1 in syncPoint, // but only if syncPoint is currently zero (specified // by the third parameter of CompareExchange). // CompareExchange returns the original value that was // in syncPoint. If it was not zero, then there's an // event handler running, and it is necessary to try // again. while (Interlocked.CompareExchange(ref syncPoint, -1, 0) != 0) { Application.DoEvents(); //Let Windows threads process // Give up the rest of this thread's current time // slice. This is a naive algorithm for yielding. Thread.Sleep(1); // Tally a wait, but don't count multiple calls to // Thread.Sleep. if (!counted) { numWaits += 1; counted = true; } } // Any processing done after this point does not conflict // with timer events. This is the purpose of the call to // CompareExchange. If the processing done here would not // cause a problem when run concurrently with timer events, // then there is no need for the extra synchronization. } #endregion #region Dispose private bool disposed = false; //Track whether Dispose has been called. ~clsTimer() { Dispose(true); } public void Close() { Dispose(true); // This object will be cleaned up by the Dispose method. // Therefore, you should call GC.SupressFinalize to // take this object off the finalization queue // and prevent finalization code for this object // from executing a second time. GC.SuppressFinalize(this); } // Implement IDisposable. // Do not make this method virtual. // A derived class should not be able to override this method. public void Dispose() { Dispose(true); // This object will be cleaned up by the Dispose method. // Therefore, you should call GC.SupressFinalize to // take this object off the finalization queue // and prevent finalization code for this object // from executing a second time. GC.SuppressFinalize(this); } // Dispose(bool disposing) executes in two distinct scenarios. // If disposing equals true, the method has been called directly // or indirectly by a user's code. Managed and unmanaged resources // can be disposed. // If disposing equals false, the method has been called by the // runtime from inside the finalizer and you should not reference // other objects. Only unmanaged resources can be disposed. private void Dispose(bool disposing) { if (!this.disposed) // Check to see if Dispose has already been called. { if (disposing) // If disposing equals true, dispose all managed and unmanaged resources. { mTimerStop(); cTimer = null; } } disposed = true; } #endregion } } -- John W. Colby Colby Consulting Reality is what refuses to go away when you do not believe in it From mcp2004 at mail.ru Tue May 15 12:48:01 2012 From: mcp2004 at mail.ru (=?UTF-8?B?U2FsYWtoZXRkaW5vdiBTaGFtaWw=?=) Date: Tue, 15 May 2012 21:48:01 +0400 Subject: [dba-VB] =?utf-8?b?U3lzdGVtLlRpbWVycy5UaW1lcigp?= In-Reply-To: <4FB26820.4040907@colbyconsulting.com> References: <4FB26820.4040907@colbyconsulting.com> Message-ID: Hi John -- Is it correct understanding that you have a set of tasks to run periodically, fired by specified timer intervals, and when one task is running all the others are blocked? Thank you. -- Shamil Tue, 15 May 2012 10:28:48 -0400 ?? jwcolby : > Is anyone using timers to periodically run processes? > > I am (was hopefully?) having problems with apparent deadlocks and I found this on the MS site: > > http://msdn.microsoft.com/en-us/library/system.timers.timer.stop.aspx > > which discusses deadlocks and provides a solution. I took the code and wrapped it in clsTimer > making it fully instantiable so that I could use it in many places. > > The problem of course is that the code running in the timer's thread still has to cleanly return but > with luck at least this (deadlock) part is handled. I am sharing my class so that anyone else doing > this stuff can look it over, comment and hopefully find any bugs I might have created in implementation. > > Here is my version of the indicated code. Comments welcome. > > using System; > using System.Timers; > using System.Threading; > using System.Windows.Forms; > namespace projAccuzip2 > { > class clsTimer : IDisposable > { > > #region Header > // Timer. > private bool timerBusy = false; > private System.Timers.Timer cTimer = new System.Timers.Timer(); > > // This is the synchronization point that prevents events > // from running concurrently, and prevents the main thread > // from executing code after the Stop method until any > // event handlers are done executing. > private int syncPoint = 0; > > // Count the number of times the event handler is called, > // is executed, is skipped, or is called after Stop. > private int numEvents = 0; > private int numExecuted = 0; > private int numSkipped = 0; > private int numLate = 0; > > // Count the number of times the thread that calls Stop > // has to wait for an Elapsed event to finish. > private int numWaits = 0; > > public clsTimer() > { > cTimer.Elapsed += new System.Timers.ElapsedEventHandler(cTimer_Elapsed); > } > public clsTimer(int TimerInterval) > { > cTimer.Interval = TimerInterval; > cTimer.Elapsed += new System.Timers.ElapsedEventHandler(cTimer_Elapsed); > } > #endregion > > #region Properties > public int pNumEvents { get { return numEvents; } } > public int pNumExecuted { get { return numExecuted; } } > public int pNumSkipped { get { return numSkipped; } } > public int pNumLate { get { return numLate; } } > public bool pTimerBusy { get { return timerBusy; } } > public int pTimerInterval { set { cTimer.Interval = value; } } > #endregion > > #region Events > > public delegate void delTimer(); > public event delTimer evTimer; > private void cTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e) > { > numEvents += 1; > > // This example assumes that overlapping events can be > // discarded. That is, if an Elapsed event is raised before > // the previous event is finished processing, the second > // event is ignored. > // > // CompareExchange is used to take control of syncPoint, > // and to determine whether the attempt was successful. > // CompareExchange attempts to put 1 into syncPoint, but > // only if the current value of syncPoint is zero > // (specified by the third parameter). If another thread > // has set syncPoint to 1, or if the control thread has > // set syncPoint to -1, the current event is skipped. > // (Normally it would not be necessary to use a local > // variable for the return value. A local variable is > // used here to determine the reason the event was > // skipped.) > // > int sync = Interlocked.CompareExchange(ref syncPoint, 1, 0); > if (sync == 0) > { > timerBusy = true; > // > numExecuted += 1; > > // No other event was executing. > // The event handler now raises an event out in code > evTimer(); > > // Release control of syncPoint. > syncPoint = 0; > timerBusy = false; > } > else > { > if (sync == 1) { numSkipped += 1; } else { numLate += 1; } > } > } > #endregion > > #region Methods > public void mTimerStart() > { > syncPoint = 0; > cTimer.Enabled = true; > } > public void mTimerStop() > { > // Allow the timer to run for a period of time, and then > // stop it. > cTimer.Stop(); > > // The 'counted' flag ensures that if this thread has > // to wait for an event to finish, the wait only gets > // counted once. > bool counted = false; > > // Ensure that if an event is currently executing, > // no further processing is done on this thread until > // the event handler is finished. This is accomplished > // by using CompareExchange to place -1 in syncPoint, > // but only if syncPoint is currently zero (specified > // by the third parameter of CompareExchange). > // CompareExchange returns the original value that was > // in syncPoint. If it was not zero, then there's an > // event handler running, and it is necessary to try > // again. > while (Interlocked.CompareExchange(ref syncPoint, -1, 0) != 0) > { > Application.DoEvents(); //Let Windows threads process > > // Give up the rest of this thread's current time > // slice. This is a naive algorithm for yielding. > Thread.Sleep(1); > > // Tally a wait, but don't count multiple calls to > // Thread.Sleep. > if (!counted) > { > numWaits += 1; > counted = true; > } > } > > // Any processing done after this point does not conflict > // with timer events. This is the purpose of the call to > // CompareExchange. If the processing done here would not > // cause a problem when run concurrently with timer events, > // then there is no need for the extra synchronization. > } > #endregion > > #region Dispose > private bool disposed = false; //Track whether Dispose has been called. > ~clsTimer() > { > Dispose(true); > } > public void Close() > { > Dispose(true); > // This object will be cleaned up by the Dispose method. > // Therefore, you should call GC.SupressFinalize to > // take this object off the finalization queue > // and prevent finalization code for this object > // from executing a second time. > GC.SuppressFinalize(this); > } > // Implement IDisposable. > // Do not make this method virtual. > // A derived class should not be able to override this method. > public void Dispose() > { > Dispose(true); > // This object will be cleaned up by the Dispose method. > // Therefore, you should call GC.SupressFinalize to > // take this object off the finalization queue > // and prevent finalization code for this object > // from executing a second time. > GC.SuppressFinalize(this); > } > // Dispose(bool disposing) executes in two distinct scenarios. > // If disposing equals true, the method has been called directly > // or indirectly by a user's code. Managed and unmanaged resources > // can be disposed. > // If disposing equals false, the method has been called by the > // runtime from inside the finalizer and you should not reference > // other objects. Only unmanaged resources can be disposed. > private void Dispose(bool disposing) > { > if (!this.disposed) // Check to see if Dispose has already been called. > { > if (disposing) // If disposing equals true, dispose all managed and unmanaged > resources. > { > mTimerStop(); > cTimer = null; > } > } > disposed = true; > } > #endregion > > } > } > > > > -- > John W. Colby > Colby Consulting > > Reality is what refuses to go away > when you do not believe in it > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From jwcolby at colbyconsulting.com Tue May 15 13:25:17 2012 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 15 May 2012 14:25:17 -0400 Subject: [dba-VB] System.Timers.Timer() In-Reply-To: References: <4FB26820.4040907@colbyconsulting.com> Message-ID: <4FB29F8D.8040503@colbyconsulting.com> > Is it correct understanding that you have a set of tasks to run periodically, fired by specified timer intervals, and when one task is running all the others are blocked? No. I actually have three main tasks (driven by timers) *possibly* running (which I call "stages"), but I have 6 timers *possibly* running plus the interface thread. None of the tasks block any of the other tasks. I use the timers in my clsRunState. The run state class may monitor the click event of a dedicated check box which is how I start and stop each of the main tasks. So by checking a check box, I start one of the three stages. Each stage has its own check box so I can have 0 to 3 stages running simultaneously. Stage1 exports data to disk files. Stage2 pushes the files exported by stage1 to 0 to 3 virtual machines for third party processing, and pulls it back out of the VMs when finished. Stage3 pulls the processed files back into SQL Server. The reason that there are 6 timers is that clsAZManager "manages" or schedules the stages. Its job is to select which supervisor is running at a given stage. So there are three timers in clsManager tied to check boxes on the form which just continuously look for work for the associated stage. However once clsManager selects a clsupervisor instance for stage1 (for instance) the supervisor has its own timer which it uses to perform the work for the indicated stage. So *potentially* three stage timers in clsManager all firing, and *potentially* three stage timers in clsSupervisor instances doing the actual work. None of these timers block any of the other timers, however the user interface (checkboxes) has to be able to start and stop any given stage. Stages 1 and 3 in particular can be long running processes, taking as long as 30 seconds to a minute or so to process from start to finish. So once a supervisor kicks off exporting a file to disk (stage1) it can't be shut down until that process finishes. Once a supervisor kicks off importing a file back in to sql server (stage 3) it can't shut down until that process finished. So I may "uncheck" the stage3 checkbox but it might be several minutes before the process actually stops for that supervisor. I was (apparently) very occasionally getting a race condition as I would try to stop a stage, thus the implementation of clsTimer which I use in place of a direct timer instance (which I was using). clsTimer implements the handshaking to prevent the race condition, and does so in a clean single location (OOP). John W. Colby Colby Consulting Reality is what refuses to go away when you do not believe in it On 5/15/2012 1:48 PM, Salakhetdinov Shamil wrote: > Hi John -- > > Is it correct understanding that you have a set of tasks to run periodically, fired by specified timer intervals, and when one task is running all the others are blocked? > > Thank you. > > -- Shamil > > > Tue, 15 May 2012 10:28:48 -0400 ?? jwcolby: >> Is anyone using timers to periodically run processes? >> >> I am (was hopefully?) having problems with apparent deadlocks and I found this on the MS site: From mcp2004 at mail.ru Tue May 15 15:12:50 2012 From: mcp2004 at mail.ru (=?UTF-8?B?U2FsYWtoZXRkaW5vdiBTaGFtaWw=?=) Date: Wed, 16 May 2012 00:12:50 +0400 Subject: [dba-VB] =?utf-8?b?U3lzdGVtLlRpbWVycy5UaW1lcigp?= In-Reply-To: <4FB29F8D.8040503@colbyconsulting.com> References: <4FB26820.4040907@colbyconsulting.com> <4FB29F8D.8040503@colbyconsulting.com> Message-ID: John -- So, you do not have any periodically (by given schedule) running main tasks (consisting of (three subtasks)) - what you have (a bit simplified in this description) are three main tasks, which can be activated/deactivated by using three check-boxes(/ or just one checkbox?), and every main task consists of three subtasks... ...I'm not sure what for timers are needed in your case at all? Timers (IMO) (as used in this subject thread rel life case) are a real bottleneck for (unlimited scaling) and a source of issues for multi-threading: for race conditions and maybe deadlocking etc. I'd use (out of the head with some googling - it have to be verified): - .NET Task Parallel Library (TPL) (http://msdn.microsoft.com/en-us/library/dd235608, http://www.codeproject.com/Articles/189374/The-Basics-of-Task-Parallelism-via-C) to run/cancel (by flag/checkbox or timeout) main as well as subtasks (read more carefully on CancellationToken); - ConcurrentQueue (http://msdn.microsoft.com/en-us/library/System.Collections.Concurrent) to post main task activation requests when "activation checkboxes" are clicked; ... .NET Windows Workflow Foundation (WF) should be also possible to use for your case but I have no experience with it yet to advise but I suppose that if you'd use/get experience with TPL then learning/using WF would be easier and "armored with WF" you'll get unlimited smooth scaling opportunity in your hands... If you will decide to go with .NET TPL classes as well as with System.Collections.Concurrent classes then be prepared for a steep learning curve - don't try to rewrite all your subject solution classes at once using TPL/Concurrent collections - go step by step - at least it was my case - I have TPL/concurrent collections used in several customer solutions running smoothly 24x7x365 with some long running tasks(threads) running for hours as well small tasks, all with UI interaction/running status display, immediate cancelling features etc. ... Thank you. -- Shamil Tue, 15 May 2012 14:25:17 -0400 ?? jwcolby : > > Is it correct understanding that you have a set of tasks to run periodically, fired by specified > timer intervals, and when one task is running all the others are blocked? > > No. I actually have three main tasks (driven by timers) *possibly* running (which I call "stages"), > but I have 6 timers *possibly* running plus the interface thread. > > None of the tasks block any of the other tasks. > > I use the timers in my clsRunState. The run state class may monitor the click event of a dedicated > check box which is how I start and stop each of the main tasks. So by checking a check box, I start > one of the three stages. Each stage has its own check box so I can have 0 to 3 stages running > simultaneously. > > Stage1 exports data to disk files. > > Stage2 pushes the files exported by stage1 to 0 to 3 virtual machines for third party processing, > and pulls it back out of the VMs when finished. > > Stage3 pulls the processed files back into SQL Server. > > The reason that there are 6 timers is that clsAZManager "manages" or schedules the stages. Its job > is to select which supervisor is running at a given stage. So there are three timers in clsManager > tied to check boxes on the form which just continuously look for work for the associated stage. > > However once clsManager selects a clsupervisor instance for stage1 (for instance) the supervisor has > its own timer which it uses to perform the work for the indicated stage. So *potentially* three > stage timers in clsManager all firing, and *potentially* three stage timers in clsSupervisor > instances doing the actual work. > > None of these timers block any of the other timers, however the user interface (checkboxes) has to > be able to start and stop any given stage. > > Stages 1 and 3 in particular can be long running processes, taking as long as 30 seconds to a minute > or so to process from start to finish. So once a supervisor kicks off exporting a file to disk > (stage1) it can't be shut down until that process finishes. Once a supervisor kicks off importing a > file back in to sql server (stage 3) it can't shut down until that process finished. So I may > "uncheck" the stage3 checkbox but it might be several minutes before the process actually stops for > that supervisor. > > I was (apparently) very occasionally getting a race condition as I would try to stop a stage, thus > the implementation of clsTimer which I use in place of a direct timer instance (which I was using). > clsTimer implements the handshaking to prevent the race condition, and does so in a clean single > location (OOP). > > John W. Colby > Colby Consulting > > Reality is what refuses to go away > when you do not believe in it > > On 5/15/2012 1:48 PM, Salakhetdinov Shamil wrote: > > Hi John -- > > > > Is it correct understanding that you have a set of tasks to run periodically, fired by specified timer intervals, and when one task is running all the others are blocked? > > > > Thank you. > > > > -- Shamil > > > > > > Tue, 15 May 2012 10:28:48 -0400 ?? jwcolby: > >> Is anyone using timers to periodically run processes? > >> > >> I am (was hopefully?) having problems with apparent deadlocks and I found this on the MS site: > > From jwcolby at colbyconsulting.com Wed May 16 12:57:58 2012 From: jwcolby at colbyconsulting.com (jwcolby) Date: Wed, 16 May 2012 13:57:58 -0400 Subject: [dba-VB] Something I REALLY needed - Yield Message-ID: <4FB3EAA6.7010806@colbyconsulting.com> http://msdn.microsoft.com/en-us/library/9k7k7cf0.aspx Man did it make my code soooo much easier. One of those "I knew it had to be possible" kinds of things I finally found the time to learn how to do. C# and .Net4 is pretty darned awesome. -- John W. Colby Colby Consulting Reality is what refuses to go away when you do not believe in it From mcp2004 at mail.ru Wed May 16 13:46:21 2012 From: mcp2004 at mail.ru (=?UTF-8?B?U2FsYWtoZXRkaW5vdiBTaGFtaWw=?=) Date: Wed, 16 May 2012 22:46:21 +0400 Subject: [dba-VB] =?utf-8?q?Something__I_REALLY_needed_-_Yield?= In-Reply-To: <4FB3EAA6.7010806@colbyconsulting.com> References: <4FB3EAA6.7010806@colbyconsulting.com> Message-ID: Hi John Try also to google on "A tutorial on functional programming in C# 3.0" by Eric White... Thank you. Shamil Wed, 16 May 2012 13:57:58 -0400 ?? jwcolby : > > http://msdn.microsoft.com/en-us/library/9k7k7cf0.aspx > > Man did it make my code soooo much easier. One of those "I knew it had to be > possible" kinds of > things I finally found the time to learn how to do. > > C# and .Net4 is pretty darned awesome. > > -- > John W. Colby > Colby Consulting > > Reality is what refuses to go away > when you do not believe in it > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com From jwcolby at colbyconsulting.com Thu May 17 07:29:36 2012 From: jwcolby at colbyconsulting.com (jwcolby) Date: Thu, 17 May 2012 08:29:36 -0400 Subject: [dba-VB] Cancel SQL Server requests initiated from C# Message-ID: <4FB4EF30.9030602@colbyconsulting.com> I automate SQL Server from C# using the command object to execute various queries. Some of them are long running, for example selecting a large recordset into a temp destination table from a source table. It is possible to shut down my C# program "in the middle" which leaves that query running out on SQL Server. Is it possible to somehow tell SQL Server to stop the activity? Perhaps encapsulate the SQL in transactions and tell the command object to stop the transaction? -- John W. Colby Colby Consulting Reality is what refuses to go away when you do not believe in it From jwcolby at colbyconsulting.com Sat May 19 07:26:40 2012 From: jwcolby at colbyconsulting.com (jwcolby) Date: Sat, 19 May 2012 08:26:40 -0400 Subject: [dba-VB] C# Timer_Elapsed interact Message-ID: <4FB79180.1010808@colbyconsulting.com> I have 6 timers set up and firing. However when I break point in one timer, all other timers stop firing. I had assumed that each timer would merrily fire away regardless of what is happening on any other timer's thread. What am I missing? -- John W. Colby Colby Consulting Reality is what refuses to go away when you do not believe in it From michael at ddisolutions.com.au Sat May 19 21:40:03 2012 From: michael at ddisolutions.com.au (Michael Maddison) Date: Sun, 20 May 2012 12:40:03 +1000 Subject: [dba-VB] C# Timer_Elapsed interact References: <4FB79180.1010808@colbyconsulting.com> Message-ID: <99266C61B516644D9727F983FAFAB46511BDD7@remote.ddisolutions.com.au> Hi John, I think that's only the IDE. Try a compiled version with a messagebox on some of the timers. I bet they keep running. Cheers Michael M -----Original Message----- From: dba-vb-bounces at databaseadvisors.com [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby Sent: Saturday, 19 May 2012 10:27 PM To: VBA Subject: [dba-VB] C# Timer_Elapsed interact I have 6 timers set up and firing. However when I break point in one timer, all other timers stop firing. I had assumed that each timer would merrily fire away regardless of what is happening on any other timer's thread. What am I missing? -- John W. Colby Colby Consulting Reality is what refuses to go away when you do not believe in it _______________________________________________ dba-VB mailing list dba-VB at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/dba-vb http://www.databaseadvisors.com ----- No virus found in this message. Checked by AVG - www.avg.com Version: 2012.0.2176 / Virus Database: 2425/5010 - Release Date: 05/19/12 From jwcolby at colbyconsulting.com Tue May 22 08:31:11 2012 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 22 May 2012 09:31:11 -0400 Subject: [dba-VB] That 'Minority Report' interface? It's now only $70 away - Gadgetbox on msnbc.com Message-ID: <4FBB951F.6060903@colbyconsulting.com> I want one. -- John W. Colby Colby Consulting Reality is what refuses to go away when you do not believe in it http://www.gadgetbox.msnbc.msn.com/technology/gadgetbox/minority-report-interface-its-now-only-70-away-784828 From hans.andersen at phulse.com Tue May 22 10:52:04 2012 From: hans.andersen at phulse.com (Hans-Christian Andersen) Date: Tue, 22 May 2012 08:52:04 -0700 Subject: [dba-VB] That 'Minority Report' interface? It's now only $70 away - Gadgetbox on msnbc.com In-Reply-To: <4FBB951F.6060903@colbyconsulting.com> References: <4FBB951F.6060903@colbyconsulting.com> Message-ID: The merits of the technology itself is pretty cool, but the utility of it is less than practical. Especially when talking about human-computer interfaces. Most of the problems stem from the same reason why Microsofts Kinect is an overhyped product that produces a laughably sub-par experience for users when playing games. There is no physical feedback and actions are easily misinterpreted. Computers are logical and precise, while humans are not, so the device cannot divine what the user actually meant to do and users will constantly have to struggle with accidentally closing windows or dragging them off screen and pressing the wrong buttons, etc. Then theres the whole issue of positioning. Does this device then force you to have to position yourself in front of a computer a certain way? What if you have two monitors or more (as most programmers do), will it still work? Probably not. This technology makes a whole lot more sense to use on a device that has a very simplified interface and sits at a distance away. For instance, channel surfing on your TV. Something basic. Nothing as complicated as interfacing with a computer though. Hans On 2012-05-22, at 6:31 AM, jwcolby wrote: > I want one. > > -- > John W. Colby > Colby Consulting > > Reality is what refuses to go away > when you do not believe in it > http://www.gadgetbox.msnbc.msn.com/technology/gadgetbox/minority-report-interface-its-now-only-70-away-784828 > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > From jwcolby at colbyconsulting.com Tue May 22 11:28:53 2012 From: jwcolby at colbyconsulting.com (jwcolby) Date: Tue, 22 May 2012 12:28:53 -0400 Subject: [dba-VB] That 'Minority Report' interface? It's now only $70 away - Gadgetbox on msnbc.com In-Reply-To: References: <4FBB951F.6060903@colbyconsulting.com> Message-ID: <4FBBBEC5.4090107@colbyconsulting.com> Yup, wholeheartedly agree. However it takes the availability of the tool to allow the developers to develop to the tool. John W. Colby Colby Consulting Reality is what refuses to go away when you do not believe in it On 5/22/2012 11:52 AM, Hans-Christian Andersen wrote: > > The merits of the technology itself is pretty cool, but the utility of it is less than practical. Especially when talking about human-computer interfaces. > > Most of the problems stem from the same reason why Microsofts Kinect is an overhyped product that produces a laughably sub-par experience for users when playing games. There is no physical feedback and actions are easily misinterpreted. Computers are logical and precise, while humans are not, so the device cannot divine what the user actually meant to do and users will constantly have to struggle with accidentally closing windows or dragging them off screen and pressing the wrong buttons, etc. > > Then theres the whole issue of positioning. Does this device then force you to have to position yourself in front of a computer a certain way? What if you have two monitors or more (as most programmers do), will it still work? Probably not. > > This technology makes a whole lot more sense to use on a device that has a very simplified interface and sits at a distance away. For instance, channel surfing on your TV. Something basic. Nothing as complicated as interfacing with a computer though. > > Hans > > > On 2012-05-22, at 6:31 AM, jwcolby wrote: > >> I want one. >> >> -- >> John W. Colby >> Colby Consulting >> >> Reality is what refuses to go away >> when you do not believe in it >> http://www.gadgetbox.msnbc.msn.com/technology/gadgetbox/minority-report-interface-its-now-only-70-away-784828 >> >> _______________________________________________ >> dba-VB mailing list >> dba-VB at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/dba-vb >> http://www.databaseadvisors.com >> > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > > From hans.andersen at phulse.com Tue May 22 11:35:34 2012 From: hans.andersen at phulse.com (Hans-Christian Andersen) Date: Tue, 22 May 2012 09:35:34 -0700 Subject: [dba-VB] That 'Minority Report' interface? It's now only $70 away - Gadgetbox on msnbc.com In-Reply-To: <4FBBBEC5.4090107@colbyconsulting.com> References: <4FBB951F.6060903@colbyconsulting.com> <4FBBBEC5.4090107@colbyconsulting.com> Message-ID: > However it takes the availability of the tool to allow the developers to develop to the tool. Ya, this is a good point, from a developers point of view. I wonder how they are marketing this overall product though. Perhaps it is still just in the stage of showing off what it can do in order to attract attention. Hans On 2012-05-22, at 9:28 AM, jwcolby wrote: > Yup, wholeheartedly agree. However it takes the availability of the tool to allow the developers to develop to the tool. > > John W. Colby > Colby Consulting > > Reality is what refuses to go away > when you do not believe in it > > On 5/22/2012 11:52 AM, Hans-Christian Andersen wrote: >> >> The merits of the technology itself is pretty cool, but the utility of it is less than practical. Especially when talking about human-computer interfaces. >> >> Most of the problems stem from the same reason why Microsofts Kinect is an overhyped product that produces a laughably sub-par experience for users when playing games. There is no physical feedback and actions are easily misinterpreted. Computers are logical and precise, while humans are not, so the device cannot divine what the user actually meant to do and users will constantly have to struggle with accidentally closing windows or dragging them off screen and pressing the wrong buttons, etc. >> >> Then theres the whole issue of positioning. Does this device then force you to have to position yourself in front of a computer a certain way? What if you have two monitors or more (as most programmers do), will it still work? Probably not. >> >> This technology makes a whole lot more sense to use on a device that has a very simplified interface and sits at a distance away. For instance, channel surfing on your TV. Something basic. Nothing as complicated as interfacing with a computer though. >> >> Hans >> >> >> On 2012-05-22, at 6:31 AM, jwcolby wrote: >> >>> I want one. >>> >>> -- >>> John W. Colby >>> Colby Consulting >>> >>> Reality is what refuses to go away >>> when you do not believe in it >>> http://www.gadgetbox.msnbc.msn.com/technology/gadgetbox/minority-report-interface-its-now-only-70-away-784828 >>> >>> _______________________________________________ >>> dba-VB mailing list >>> dba-VB at databaseadvisors.com >>> http://databaseadvisors.com/mailman/listinfo/dba-vb >>> http://www.databaseadvisors.com >>> >> >> >> _______________________________________________ >> dba-VB mailing list >> dba-VB at databaseadvisors.com >> http://databaseadvisors.com/mailman/listinfo/dba-vb >> http://www.databaseadvisors.com >> >> > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > From fhtapia at gmail.com Fri May 25 08:53:00 2012 From: fhtapia at gmail.com (Francisco Tapia) Date: Fri, 25 May 2012 06:53:00 -0700 Subject: [dba-VB] back at it again... Message-ID: so last week I completed my first ever for production mobile application on iOS. It was a great learning opportunity, and I was able to really get into the working concepts of Objective C. This little app allows users to barcode their orders, view the materials they need to gather for their task and review their pdf work instructions without needing to resort to paper, fumble through pages to get to their instructions, and lastly they can process their completed work from the iPad w/o having to go stand in line at the computer workstation to log their work. It was fun, and now that we have the demo units out and we are testing we are looking at other "mobile" opportunities. The company wants a device agnostic mobile, product (so HTML5). They have an idea concept of a Troubleshooting guide (McAfee, if you're reading this, yes, the idea is back). It's actually a simple concept, You visit the site, punch in your Serial Number so that the system can gather information about what you might be having trouble with and then you simply pick and choose from the array of questions and answers such as: SN: 12345 I am having trouble with my Machine Spindle (because the user punched in the SN, the questions would lead him straight to the group of questions that match his product, ie: A type Machine with Spindles that are in-line. the user is the presented with a group of choices / questions, ie: The spindle will not turn the spindle is noisy the spindle turns rough the spindle is hot to the touch each choice invokes a group of response until the final answer leads the user to a set of procedures. examples would be: Is the Spindle within Specs? > procedure: how to measure spindle temparture. *yes *no (and so forth) So my impulse idea is I need a star schema. I'd need dimension tables For Questions, Answers and Procedures. I think the trick is in my Fact table when I'm deciding to present the user with a result like the above... Question: ---Procedure Link Did you Test A (Here is the procedure to test A) Answers: *Yes *No this is really the first hash at this and any followup ideas are welcomed as I hope to invoke further discussion on decision-supports solutions... comments, questions, ideas? Thank you, -Francisco http://bit.ly/sqlthis | Tsql and More...