Recorded Webinars From Solid Works Assemblies to Sim Mechanics Models_rotatie
Assemblies
-
Upload
olea-zubcova -
Category
Documents
-
view
217 -
download
0
description
Transcript of Assemblies
4/27/2008 Capitolul 8 – Assemblies. Aplicatii - configurare, securizare, instalare, rulare 1
Medii Vizuale de Programare
Capitolul 8
Assemblies. Aplicatii - configurare, securizare, instalare, rulare
4/27/2008 Capitolul 8 – Assemblies. Aplicatii - configurare, securizare, instalare, rulare 2
Continutul cursului
0. Introducere
1. Prezentare .NET Framework si Visual Studio
2. C# - Tipuri de date si membri
3. Gestionarea interfetelor utilizator
4. Concepte POO in Visual Studio .NET
5. Testarea si debugging-ul aplicatiilor
6. GDI+. Controale utilizator.
7. Accesarea bazelor de date. ADO.NET
8. Assemblies. Aplicatii - configurare, securizare, instalare, rulare
9. Dezvoltarea de aplicatii ASP.NET
10. Web Services
11. .NET Framework 3.0 si 3.5
4/27/2008 3
Capitolul 8
8. Assemblies. Aplicatii - configurare, securizare, instalare8.1. Assemblies si resurse
8.1.1. Assembly-uri
8.1.2. Fisiere pentru resurse
8.1.3. Assembly-uri partajate
8.2. Configurarea si optimizarea aplicatiilor8.2.1. Fisiere de configurare
8.2.2. Optimizarea performantei aplicatiilor
8.3. Securitatea aplicatiilor8.3.1. Permisiuni
8.3.2. Permisiuni de accesare a codului
8.4. Instalarea si rularea aplicatiilor
Capitolul 8 – Assemblies. Aplicatii - configurare, securizare, instalare, rulare
4/27/2008 4
Cap. 8. Assemblies.
8.1. Assemblies si resurse
8.1.1. Assemblies
- Un assembly reprezinta unitatea primara de dezvoltare intr-o aplicatie Microsoft .NET
- Assembly-urile sunt auto-descriptive si contin toata informatia solicitata de CLR pentru a interpreta continutul si pentru a configura executia
- Un assembly este un proiect compilat intr-un fisier executabil (.exe) sau intr-un fisier DLL (.dll)
- Un assembly contine:- Un manifest (metadata)
- Metadata pentru tipuri
- Limbajul intermediar al assembly-ului
- Fisiere de resurse
Capitolul 8 – Assemblies. Aplicatii - configurare, securizare, instalare, rulare
4/27/2008 5
Cap. 8. Assemblies.
8.1. Assemblies si resurse
8.1.1. Assemblies- Manifestul assembly-ului
• Contine metadata care descrie assembly-ul in contextul CLR
• Poate contine urmatoarele:
• identitate : contine numele si numarul versiunii assembly-ului
• tipuri si resurse : lista tuturor tipurilor continute, precum si informatii despre modalitatea de accesare a tipurilor
• fisiere : lista tuturor fisierelor din assembly, precum si informatii legate de dependentele dintre acestea
• permisiuni de securitate : descriu restrictiile de securitate impuse la executia assembly-ului
- Identitatea unui assembly este continuta in fisierul AssemblyInfo.cs[assembly: AssemblyTitle("")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("")]
[assembly: AssemblyCopyright("")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
Capitolul 8 – Assemblies. Aplicatii - configurare, securizare, instalare, rulare
4/27/2008 6
Cap. 8. Assemblies.
8.1. Assemblies si resurse
8.1.1. Assemblies
-------------------------------------------------------------------------------------------
8.1.2. Fisiere pentru resurse- Resurse
• Reprezinta date neexecutabile partajate in cadrul aplicatiei
• Exemple de resurse: siruri de caractere vizualizate in cadrul interfetei utilizator sau un set de imagini
• Impachetarea acestor date in fisiere resursa permit modificarea datelor necesare programului fara a recompila intreaga aplicatie
• Fisierele pentru resurse pot fi:• Fisiere salvate ca fisiere binare de tip .resources
• Fisiere XML de tip .resx
- Fisierele pentru resurse pot fi compilate in assembly-uri separate
Capitolul 8 – Assemblies. Aplicatii - configurare, securizare, instalare, rulare
4/27/2008 7
Cap. 8. Assemblies.
8.1. Assemblies si resurse
8.1.1. Assemblies
-------------------------------------------------------------------------------------------
8.1.2. Fisiere pentru resurse
- Interogarea resurselor la run-time• Se utilizeaza clasa ResourceManager
• Fiecare instanta a clasei ResourceManager este asociat un assembly care contine resurse
• Pentru un obiect ResourceManager se specifica doi parametrii:
• Namespace-ul fisierului resursa – este namespace-ul care contine fisierul, urmat de numele fisierului, fara a specifica extensiile.
• De exemplu, un fisier resursa denumit fileResources.de-DE.resx intr-un namespace Namespace1 va avea Namespace1.fileResources
• Assembly-ul in care se gaseste acest fisier
Capitolul 8 – Assemblies. Aplicatii - configurare, securizare, instalare, rulare
4/27/2008 8
Cap. 8. Assemblies.
8.1. Assemblies si resurse
8.1.1. Assemblies
-------------------------------------------------------------------------------------------
8.1.2. Fisiere pentru resurse- Exemple:// crearea unui ResourceManager pentru a accesa fisiere resursa dintr-un fisier
// partajat myResources.resx intr-un namespace myNamespace si acelasi assembly
// in care se gaseste obiectul curent se utilizeaza System.Resources
ResourceManager myManager = new ResourceManager
("myNamespace.myResources", this.GetType().Assembly);
...
// daca resursele se gasesc in alt assembly
System.Reflection.Assembly myResources;
// numele assembly-ului ca parametru
myResources = System.Reflection.Assembly.Load("ResourceAssembly");
ResourceManager myManager = new ResourceManager("ResourceAssembly.Resources",
myResources);
...
System.Drawing.Image myImage;
myImage = (System.Drawing.Image)myManager.GetObject("ImageResource");
...
String s = myManager.GetString(“WindowTitle”);
Capitolul 8 – Assemblies. Aplicatii - configurare, securizare, instalare, rulare
4/27/2008 9
Cap. 8. Assemblies.
8.1. Assemblies si resurse
8.1.1. Assemblies
8.1.2. Fisiere pentru resurse
-------------------------------------------------------------------------------------------
8.1.3. Assembly-uri partajate- Assembly-urile pot fi private sau partajate:
• Un assembly privat este un assembly utilizat de o singura aplicatie
• Un assembly partajat poate fi utilizat de mai multe aplicatii
– Mai multe proiecte pot referentia acelasi DLL si utiliza tipurile pe care le contine
– Pentru ca mai multe aplicatii sa partajeze un assembly, acesta trebuie instalat in Global Assembly Cache. Avantaje:
• locatie partajata
• securitate (assembly-ul este instalat in directorul sistemului de operare)
• versionare (pot fi instalate mai multe versiuni ale aceleiasi assembly)
– Partajarea unui assembly si instalarea in GAC implica semnarea assembly-ului cu strong name
Capitolul 8 – Assemblies. Aplicatii - configurare, securizare, instalare, rulare
4/27/2008 10
Cap. 8. Assemblies.
8.1. Assemblies si resurse
8.1.1. Assemblies
8.1.2. Fisiere pentru resurse
-------------------------------------------------------------------------------------------
8.1.3. Assembly-uri partajate- Strong Naming
• Un strong name este un nume care garanteaza identitatea assembly-ului
• Contine informatii despre assembly, cum ar fi numele, numarul versiunii si o pereche de chei publica/privata
• Aceste informatii sunt incriptate utilizand cheia privata si pot fi decriptate folosind cheia publica
• Dezvoltatorul aplicatiei este singurul care detine cheia privata
– O pereche de chei poate fi generata cu aplicatia sn.exe• Exemplu:
sn k myKey.snk
– Pentru a semna un assembly:• In fisierul AssemblyInfo.cs: [assembly: AssemblyKeyFile("..\\..\\myKey.snk")]
– Instalarea in Global Assembly Cache gacutil /i mypath\myAssembly.dll
Capitolul 8 – Assemblies. Aplicatii - configurare, securizare, instalare, rulare
4/27/2008 11
Cap. 8. Assemblies.
8.1. Assemblies si resurse
-------------------------------------------------------------------------------------------
8.2. Configurarea si optimizarea aplicatiilor
8.2.1. Fisiere de configurare- Permit specificarea locatiei sau informatiilor legate de versiunea assembly-urilor si
permit configurarea proprietatilor aplicatiei
- Un fisier de configurare este un fisier XML
- Numele fisierului de configurare este <name>.<extension>.config, unde <name> este numele aplicatiei, iar <extension> este extensia aplicatiei (de exemplu .exe)
- Structura de baza:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<...elemente de configurare...>
</configuration>
Capitolul 8 – Assemblies. Aplicatii - configurare, securizare, instalare, rulare
4/27/2008 12
Cap. 8. Assemblies.
8.1. Assemblies si resurse
-------------------------------------------------------------------------------------------
8.2. Configurarea si optimizarea aplicatiilor
8.2.1. Fisiere de configurare- Schema fisierului de configurare .config
- <appSettings> - contine elemente <add> pentru definirea de perechi de tipul key/data
- <startup> - contine numai elementul <requiredRuntime>, care permite specificarea versiunii common language runtime utilizate
- <runtime> - permite configurarea informatiilor legate de executia assembly-ului si comportamentul garbage colectorului
- <system.runtime.remoting> - contine informatii despre configurarea canalelor de comunicatie si a obiectelor de tip remote
- <mscorlib> - contine un tag <cryptographySettings> care permite configurareaelementelor criptografice din cadrul aplicatiei
- <configSections> - contine configurari personalizate
- <system.diagnostics> - informatii de configurare a claselor Trace si Debug din cadrul aplicatiei
Capitolul 8 – Assemblies. Aplicatii - configurare, securizare, instalare, rulare
4/27/2008 13
Cap. 8. Assemblies.
8.1. Assemblies si resurse
-------------------------------------------------------------------------------------------
8.2. Configurarea si optimizarea aplicatiilor
8.2.1. Fisiere de configurare- Exemplu:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="Widget.Visible" value="True" />
<add key="Widget.Text" value="I love my Widget!" />
</appSettings>
</configuration>
...
// crearea unui obiect AppSettingsReader
System.Configuration.AppSettingsReader myReader = new
System.Configuration.AppSettingsReader();
// crearea unui obiect utilizator
Widget myWidget = new Widget();
myWidget.Text = myReader.GetValue("DynamicWidget.Text“,
typeof(System.String)).ToString();
Capitolul 8 – Assemblies. Aplicatii - configurare, securizare, instalare, rulare
4/27/2008 14
Cap. 8. Assemblies.
8.1. Assemblies si resurse
8.2. Configurarea si optimizarea aplicatiilor
8.2.1. Fisiere de configurare
-------------------------------------------------------------------------------------------
8.2.2. Optimizarea performantei aplicatiilor- Optimizare in faza de dezvoltare
- Evitarea utilizarii variabilelor globale
- Tratarea atenta a structurilor iterative
- Evitarea legarii tarzii (late binding)
- Optimizarea este un proces iterativ- Masurarea datelor de performanta
- Identificarea bottleneck-urilor
- Rafinarea codului
- Masurarea performantei- Se poate utiliza perform.exe care poate monitoriza o serie de parametrii legati de
performanta aplicatiei
Capitolul 8 – Assemblies. Aplicatii - configurare, securizare, instalare, rulare
4/27/2008 15
Cap. 8. Assemblies.
8.1. Assemblies si resurse
8.2. Configurarea si optimizarea aplicatiilor
8.2.1. Fisiere de configurare
-------------------------------------------------------------------------------------------
8.2.2. Optimizarea performantei aplicatiilor- Optimizare in faza de dezvoltare
- Evitarea utilizarii variabilelor globale
- Tratarea atenta a structurilor iterative
- Evitarea legarii tarzii (late binding)
- Optimizarea este un proces iterativ- Masurarea datelor de performanta
- Identificarea bottleneck-urilor
- Rafinarea codului
- Masurarea performantei- Se poate utiliza perform.exe care poate monitoriza o serie de parametrii legati de
performanta aplicatiei
Capitolul 8 – Assemblies. Aplicatii - configurare, securizare, instalare, rulare
4/27/2008 16
Cap. 8. Assemblies.
8.1. Assemblies si resurse
8.2. Configurarea si optimizarea aplicatiilor
-------------------------------------------------------------------------------------------
8.3. Securitatea aplicatiilor– Politica de securitate este definita de administratorul sistemului
– Politica de securitate, care stabileste daca un assembly poate fi rulat, nu poate fi suprascrisa in cod
8.3.1. Permisiuni- O permisiune este un obiect care reprezinta un utilizator, o identitate sau o
resursa
- Configurarea autorizarilor bazate pe roluri- Securitatea role-based reprezinta garantarea sau blocarea la o aplicatie pe baza unei
identitati sau rol al unui utilizator
- Configurarea securitatii accesului la cod- Securitatea accesarii codului previne executia apelurilor neautorizate catre anumite
fragmente de cod
Capitolul 8 – Assemblies. Aplicatii - configurare, securizare, instalare, rulare
4/27/2008 17
Cap. 8. Assemblies.
8.1. Assemblies si resurse
8.2. Configurarea si optimizarea aplicatiilor
-------------------------------------------------------------------------------------------
8.3. Securitatea aplicatiilor
8.3.2. Permisiuni de accesare a codului- Cele mai importante permisiuni (namespace-ul System.Security)
* DirectoryServicesPermission - controleaza accesul la Active Directory
* EnvironmentPermission - controleaza accesul la variabilele de mediu
* EventLogPermission - controleaza scrierea/citirea in/din loguri de evenimente
* FileDialogPermission - controleaza accesul la fisiere sau directoare prin intermediul
unei ferestre de dialog
* FileIOPermission - controleaza crearea, citirea si scrierea in sistemul de fisiere
* OleDbPermission - stabileste accesul la o baza de date OleDb
* PrintingPermission - controleaza accesul la dispozitivele de printare
* ReflectionPermission - controleaza abilitatea claselor din System.Reflection de a extrage informatii despre tipuri la run-time
* RegistryPermission - controleaza citirea/scrierea din/in registri
* SecurityPermission - stabileste drepturi, incluzand dreptul de a executa cod, controleaza manipularea firelor de executie si a obiectelor Principals, si apelurile de code unmanaged
* SQLClientPermission - stabileste accesul la baze de date Microsoft SQL Server
Capitolul 8 – Assemblies. Aplicatii - configurare, securizare, instalare, rulare
4/27/2008 18
Cap. 8. Assemblies.
8.1. Assemblies si resurse
8.2. Configurarea si optimizarea aplicatiilor
-------------------------------------------------------------------------------------------
8.3. Securitatea aplicatiilor
8.3.2. Permisiuni de accesare a codului- Crearea permisiunilor de acces la cod// permisiune care reprezinta acces
// nerestrictionat la sistemul de fisiere
FileIOPermission myPermission = new
FileIOPermission(PermissionState.Unrestricted);
// toti apelantii acestui cod au permisiune pentru
// acces nerestrictionat la sistemul de fisiere
myPermission.Demand();
...
// o permisiune care garanteaza accesul la un
// fisier specific
FileIOPermission myPermission = new
FileIOPermission(FileIOPermissionAccess.Write, "C:\\myFile.txt");
myPermission.PermitOnly();
Capitolul 8 – Assemblies. Aplicatii - configurare, securizare, instalare, rulare
4/27/2008 19
Cap. 8. Assemblies.
8.1. Assemblies si resurse
8.2. Configurarea si optimizarea aplicatiilor
8.3. Securitatea aplicatiilor
-------------------------------------------------------------------------------------------
8.4. Instalarea si rularea aplicatiilor– Instalarea aplicatiilor .NET se poate face in mai multe moduri:
• Utilizand comanda XCOPY
• Utilizand Visual Studio .NET (se pot creea Windows Installer setup projects). Un proiectde setup poate fi executat pe un calculator care are instalat Windows Installer
– Se pot configura (proprietatile Build): modalitatile de impachetare a fisierului, setarile de compresie, directorul de instalare, etc
– Aplicatiile de tip setup prezinta un nivel inalt de configurabilitate. Pot fi setateproperitatile care furnizeaza legate de originea aplicatiei care vor fi instalate sicomportamanetul aplicatiei la design-time
Capitolul 8 – Assemblies. Aplicatii - configurare, securizare, instalare, rulare
4/27/2008 20
Cap. 8. Assemblies.
8.1. Assemblies si resurse
8.2. Configurarea si optimizarea aplicatiilor
8.3. Securitatea aplicatiilor
-------------------------------------------------------------------------------------------
8.4. Instalarea si rularea aplicatiilor– Ferestre de configurare a unui proiect de tip setup
• File System Editor permite editarea sistemului de fisiere de pe masina pe care se instaleaza aplicatia (target)
• Registry Editor permite adaugarea/editarea intrarilor din registrii masinii target
• File Types Editor permite crearea asocierilor dintre fisiere si programe de pe masinatarget (exemplu: specificarea programului care va deschide implicit fisiere de tip .wav -Winamp, Media Player etc).
• User Interface Editor faciliteaza personalizarea interfetei programului de instalare
• Custom Actions Editor permite stabilirea unor actiuni personalizate pe duratainstalarii (fragmente de cod care se vor executa ca raspuns la anumite evenimente lansate pe durata instalarii)
• Launch Conditions Editor permite adaugarea de criterii/conditii de cautare si executie
Capitolul 8 – Assemblies. Aplicatii - configurare, securizare, instalare, rulare
4/27/2008 Capitolul 4 – Concepte POO in Visual Studio .NET 21
Continutul cursului
0. Introducere
1. Prezentare .NET Framework si Visual Studio
2. C# - Tipuri de date si membri
3. Gestionarea interfetelor utilizator
4. Concepte POO in Visual Studio .NET
5. Testarea si debugging-ul aplicatiilor
6. GDI+. Controale utilizator.
7. Accesarea bazelor de date. ADO.NET
8. Assemblies. Aplicatii - configurare, securizare, instalare, rulare
9. Dezvoltarea de aplicatii ASP.NET
10. Web Services
11. .NET Framework 3.0 si 3.5