Service blocks implmentation

May 1, 2007 at 9:25 PM
one of the design principles is that project apply Service Oriented Architecture.I downloaded the source code but there's no source code for any Web service (asmx) within any solutions provided.Is there a reason for that? or am i in a wrong path ?

Developer
May 3, 2007 at 2:14 AM
Hi Tamer,

I'm not sure what you're saying with no Source Code for the asmx files. But we noticed recently that when we moved from TFS03 to TFS02, due to a crash on Codeplex, some of the code went missing. The good news is that we are working on this and will be shortly being updating the Source Control with the latest version of the code, including a set of new binaries that is more stable the the original release.

I will keep you posted about the progress of those tasks.

Cheers, Wagner.
Developer
May 21, 2007 at 9:48 PM

TAMER_DOTNET wrote:
one of the design principles is that project apply Service Oriented Architecture.I downloaded the source code but there's no source code for any Web service (asmx) within any solutions provided.Is there a reason for that? or am i in a wrong path ?




Hi Tamer,

We now uploaded the latest version of the codebase, so you will be able to download it if you need. The issues we had with codeplex, where some of the codebase was "lost in translation" between TFS03 and TFS02 is now solved.

Please let us now if you have any more problem.
May 23, 2007 at 12:23 AM
Hi Wagner,

Thanks , I did find the code now. I have some questions Regarding the PatientRegister:

1- Within PatientRegister Solution i found under http://localhost/PatientRegisterWS/ there is only a bin directory. Is there a reason for not include the WebService under HCE-2695\HCE2.1.1\PatientRegister\WebService.

2- The DB-Create.sql, it give me error when i run this script in QueryAnalyzer SQL 2000
*****Unclosed quotation mark before the character string 'databasename COLLATE Latin1GeneralCI_AS******

3- Also i have found that there is two identical versions under HCE-2695 one with HCE3.0 and the other one with HCE2.1.1. Is there extra features on HCE3.0 ? , Documentation within HCE3.0 is still the same titled with HCE2.1.1

Thanks
Regards
Tamer
May 23, 2007 at 8:20 PM
I'll let Wagner answer #1

#2: HCE 2.1.1 has been tested with SQL2005, that might be the issue.

#3: we have branched off for HCE 3.0 and have not posted documentation yet. What you see is a duplicate of the HCE 2.1.1 branch.
Developer
May 23, 2007 at 10:55 PM

tameraspx wrote:
Hi Wagner,

Thanks , I did find the code now. I have some questions Regarding the PatientRegister:

1- Within PatientRegister Solution i found under http://localhost/PatientRegisterWS/ there is only a bin directory. Is there a reason for not include the WebService under HCE-2695\HCE2.1.1\PatientRegister\WebService.


Hi Tamer,

I just cleaned up my working folders and forced a get latest version of Patient Register, and under web services I have the PatientRegisterWS.asmx and web.config, plus three folders - App_Code, Bin and Schemas. It might pay off if you try the same. Let me know if it doesn't work and we can try to sort something out.

Cheers, Wagner.
May 30, 2007 at 2:44 PM
Edited May 30, 2007 at 2:47 PM
Hi Wagner / Roberto,

1- Still the patientRegisterWS has only Bin directory .

2- I managed to run the DB-script on SQL 2005 , It gave some Error because script use [[database]] instead of [database] .

Also i found that i have to run the script for ServiceProviderRegister first before the script of PatientRegister as it doesn't include the script for creating the following tables:
- ServiceProviderType
- ServiceProvider
- ServiceProviderPool
- PoolServiceProviderType
- MessageType
- ServiceProviderTypeMessageType

3- In Patient Register Solution I found that database ConnectionString has been hard coded on :
Project:Common
. Properties
. Settings.settings
. Settings.Designer.cs

Data Source=SAKL61;Initial Catalog=HealthServicesDirectory;Persist Security Info=" +
"True;User ID=test;Password=test"

Is the design require to have the connectionstring harded coded on Settings.Designer.cs instead of app.config ?

Regards
Tamer
Developer
May 30, 2007 at 11:34 PM
Edited May 30, 2007 at 11:35 PM

TamerIbrahim wrote:
Hi Wagner / Roberto,

1- Still the patientRegisterWS has only Bin directory .

2- I managed to run the DB-script on SQL 2005 , It gave some Error because script use [[database]] instead of [database] .

Also i found that i have to run the script for ServiceProviderRegister first before the script of PatientRegister as it doesn't include the script for creating the following tables:
- ServiceProviderType
- ServiceProvider
- ServiceProviderPool
- PoolServiceProviderType
- MessageType
- ServiceProviderTypeMessageType

3- In Patient Register Solution I found that database ConnectionString has been hard coded on :
Project:Common
. Properties
. Settings.settings
. Settings.Designer.cs

Data Source=SAKL61;Initial Catalog=HealthServicesDirectory;Persist Security Info=" +
"True;User ID=test;Password=test"

Is the design require to have the connectionstring harded coded on Settings.Designer.cs instead of app.config ?

Regards
Tamer


Hi Tamer,

It is really good that you're going deep into HCE. The following are (hopefully) answers to your questions:

1) I will look at this and come back to you later. It might be something related to permissions, since as I said, I managed to clear my working folder (an by clear the working folder I meant - delete all the files on my working folder AND deleting my workspace, so I was sure that the file was not associated to my computer in any way)

2) The database scripts you find in all solutions of HCE are actually installation artefacts. They are used by the msi packages to create the databases during the installation run, replacing some variables (e.g. database name) by the values captured by the installation UI. That's why you have [databasename] in the SQL code. You should replace databasename by the name of your database (e.g. ServiceProviderRegister).

Any Service Provider (Patient Register included) will have a dependency on Routing Services and Service Provider Register, as those items are part of the core. That's why we have a installation order defined in the installation package. If you are trying to install Patient Register database manually, you definitely will need to install Service Provider Register database first.

3) The database values you saw within Settings.settings.Settings.Designer.cs were used at design time to generate some Datasets. They are not used at design time at all. So, no, the design don't require a connection string hard coded. Any connection with the database is handled by the DataAccess Application Block from the MS Enterprise Library and the connection string to instantiate those objects come straight from the configuration files.

I hope this helps,

Cheers, Wagner.
Developer
May 30, 2007 at 11:44 PM
One thing that I just realised about the web service. Did you change your working folder name by any reason? You thing I notice happens is that since the project is actually a web site - it will keep pointing to the virtual directory originally created by IIS, unless you remove the virtual directory. For example if you had your working folder originally pointing to:

D:\Working Folder\HCE - Codeplex Support\from Codeplex

Your Patient Register WS web site will point to:

D:\Working Folder\HCE - Codeplex Support\from Codeplex\PatientRegister\WebService

If later you changed your working folder to

D:\Working Folder\HCE - Codeplex Support\from Codeplex TFS02

You web site will still point to

D:\Working Folder\HCE - Codeplex Support\from Codeplex\PatientRegister\WebService

because that is the address under the virtual directory.

So you might need to go, kill the virtual folder and download the code again. But you will know that the right data exists if you look under <your working folder>\PatientRegister\WebService.

There you should ahve the following structured

App_Code (folder)
Bin (folder)
Schemas (Folder)
PatientRegisterWS.asmx (file)
Web.Config (file)

This is what I have on my working folder AND under HCE/HCE2.1.1/PatientRegister/WebService within the Source Control on TFS02.

Again, I hope this help you to sort this problem out.

Cheers, Wagner.
Developer
May 31, 2007 at 6:29 AM
Hi Tamer,

Regarding Q#3 : The connection string is never used at runtime and should be ignored.

I hope rest of the things you got clarified by Wagner's replies.

Let me know, if you need any more help.

Thanks and regards,
Sandeep Joshi

Jun 1, 2007 at 1:37 AM
Hi Guys,
1- For some reason i am not aware of. Solution didn't setup web service within IIS , this is why the web service folders wasn't showing on the solution I didn't move the folders at all , but when i setuped the web service manually in IIS and load the solution , i found Web serive and its folders within the solution.

2-Thanks Wagner for your clarification, when installing ChangeNotificationService package I got this Error
"An error occured while trying to create the change notification service instance, the install cannot continue"

and when i run Subscription Management Project within ChangeNotificationService Solution i got this error
The registry entries for the specified instance of Notification Services could not be found.


private void UpdateCmbSubscribers()
{
NSInstance hceInstance = new NSInstance("HCENotificationService");
is there a document give details about installing this package?

3- if connection with the database is handled by the DataAccess Application Block , then why the app.config
within DataAccess Project is empty. it has only the following :
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
</configuration>

also I noticed in PAtientRegiter you created a new user in DB using
CREATE USER PRUser FOR LOGIN PRUser WITH DEFAULT_SCHEMA=dbo

and in ServiceProviderRegister you created another database user
CREATE USER SPRUser FOR LOGIN SPRUser WITH DEFAULT_SCHEMA=dbo ??

Tamer
Developer
Jun 4, 2007 at 10:49 PM
Hi Tamer,

Did you downloaded the Deployment guide? You can find information about installing the Change Notification Service there. Notice that those packages are supposed to be installed in order since some of them have pre-requisites. The deployment guide discuss those pre-requisites and the order of installation.

About the data access project, the configuration is not there because it is not the final application. You will notice that all the applications (e.g. web services / windows forms, etc) that need to access the database will have the data access application block configuration entries setup there.

I hope this help you.

Cheers, Wagner.